首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac (OS X)上使用智能卡或RFID访问加密数据库的用户身份验证

在Mac (OS X)上使用智能卡或RFID访问加密数据库的用户身份验证
EN

Security用户
提问于 2016-03-04 00:08:24
回答 1查看 649关注 0票数 2

我正在开发一个在本地网络环境中处理隐私敏感数据的软件,使用Mac计算机,只有特定的一组人可以访问该软件。

我需要理解,我如何能够提供安全和个性化的访问(相同的)数据由每个授权人。

数据存储在SQL数据库中(目前是Sqlite,但最终可能是Postgresql),并且应该在数据库文件中进行加密。DB引擎应该能够解密数据,以便能够轻松地搜索数据,也就是说,我不想加密客户端上的数据。

因此,我认为在打开数据库时,需要提供解密密钥,因为数据库无法单独管理它。这意味着访问服务器的计算机必须知道密钥。根据我到目前为止所了解到的,这是这样做的:

每个授权用户都有一个密码--该密码用于创建哈希代码。然后,哈希代码用于加密和解密秘密数据,在本例中是数据库的密钥。这意味着,对于我创建的每个用户帐户,我必须用用户的密码加密相同的DB密钥。

此外,为了防止人们轻易泄露密码,应使用物理密钥对每个用户进行身份验证。可能是一些钥匙卡系统。

我不知道任何密钥卡系统,也从未研究过任何身份验证系统(例如,我怀疑Kerberos与此相关,但我从未使用过它,因此这方面的“专业知识”是我的水平)。

我的问题是:

  • 如何使用钥匙卡进行身份验证?我从读卡器得到的输出是什么,这样我就可以用它对用户进行身份验证了?最后,我确实需要一个哈希码来解密用户的加密数据。
  • 在我的场景中,我可以使用什么类型的Mac卡来进行自定义用户身份验证?我想我需要一套可编程卡吗?在最坏的情况下,我想我可以使用任何基于USB的卡系统,只要它的USB级别的API是公开记录的(我曾经设法为Mac编写USB驱动程序)。但我甚至不知道该找什么。我应该找的系统是什么?例如,我遇到过RSA,但我甚至无法从他们的市场营销网站上判断这是否适合我的目的。
  • 我刚刚了解到RFID标签--它们实际上是带有固定UUID的卡片。这是行不通的,因为他们可以很容易地扫描和复制,我认为。所以我更需要在里面运行一点CPU的东西来执行一些秘密的挑战-响应过程。就像有人指出的那样,我想那应该是“智能卡”吧。

更新1

我还有一些关于使用RFID卡的想法。虽然它们可以很容易地复制,但我可以将它们与让用户输入个人密码结合起来,然后使用RFID的唯一ID和密码创建一个哈希代码,然后我用它来解码数据库的加密密钥。因此,攻击者需要两样东西--卡和用户的密码,在我的情况下,这就足够好了。这种技术有意义吗?

EN

回答 1

Security用户

发布于 2016-03-04 23:34:14

我不确定你关于数据库加密的想法是否最有效。但只是想给你一个想法,你需要使用第二个因素的加密。

设备或应用程序,如谷歌身份验证使用一次密码算法。这是基于对称密钥的。这种算法和设备不能用于加密。

您希望使用非对称键(>= RSA2048)执行以下操作。在智能卡上创建私钥和公钥的密钥对。私钥不离开智能卡。公钥可以。因为它是公开的。私钥在硬件中是唯一的,因为它不离开硬件。

使用对称AES密钥加密数据库。

现在,您可以用公钥加密对称AES密钥。每次用户想访问数据库时,您都可以解密智能卡中加密的AES密钥(带有私钥),并且可以使用AES加密密钥对数据库进行解密。当然,您需要注意对称AES加密密钥不会泄漏。

但是现在您可以使用自己的非对称密钥对添加新用户。对于每个用户,可以使用用户的公钥对AES加密密钥进行加密。因此,只有这个用户可以用他的私钥解密AES加密密钥。您可以管理哪个用户将能够解密数据库。

...if,你想这么做,你还有很长的路要走!玩得开心;-)

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/116454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档