对于黑客马拉松,我正在为医疗保健设计一个信息交换系统。医疗保健数据存储在不安全的系统上。尽管如此,我还是要确保这些数据的机密性、完整性和真实性。为了允许多个人访问相同的数据,我想使用像openPGP这样的系统(没有电子邮件/漏洞),其中我使用AES256对称密钥(CBC,PCKS5填充?)它使用每个授权用户的公钥用RSA-2048加密加密。
对称密钥的加密版本将与数据一起存储。随着时间的推移,新的文件将被添加到数据中,所以我不想在每个文件中创建一个对称密钥,因为撤销或授予对新用户的访问意味着每次我们这样做时都需要重新加密所有文件的对称密钥。
为了保证文件的完整性和真实性,我希望使用RSA 256-RSA授权用途之一的私钥对它们进行签名。公钥将存储在PKI上,但公钥有效性将在面对面的联系中得到验证。
我的问题是双重的。
发布于 2018-08-12 18:05:48
与每次更改的会话密钥相比,使用静态对称密钥进行加密的风险是什么?
您可以做的是用主密钥加密会话密钥。这可能不是更安全,但它确实允许您保持主密钥的安全,可能在一个更安全的系统或设备中。
您可以使用的另一个选项是使用密钥派生函数或从主键派生会话密钥的KDF。这样,操作模式的局限性就可以减少。您也可以使用任何类型的信息,而不是使用特定的IV。KDF还解决了前向保密的问题,因为您不能导出主密钥或给定会话密钥的任何其他密钥。这样,您就不必存储任何会话密钥;但是,您不会获得与包装(加密)会话密钥相同的灵活性。
这种设置一般有多好/有多坏?在这个设置中,我忽略了其他问题吗?
这是一个非常宽泛的问题。我不会考虑OpenPGP。这并不是因为协议不好,但它根本就没有为这种操作而设计。此外,它是一个相当老的协议,没有被更新,以支持最新的/最伟大的算法。更重要的是,我不认为分配密钥的PGP方法对主要用于医院的相当等级的设置是公平的。X.509可能更有意义。
RSA 2048不再被认为是安全的,它的安全强度约为112位。请参阅keylength.com,查看一些可比较的关键优势。将它与AES-256一起使用会给您和您的用户一种虚假的安全感。您可能需要使用椭圆曲线密码,最好是非对称的后量子密码算法来提供256位的安全性。毕竟,这可能需要长期安全。
关于算法,我认为您应该了解新的操作模式,例如AEAD操作模式。使用AES-CBC充满危险,我不认为CBC模式是最好的品种。
发布于 2018-08-15 23:09:13
代理重新加密(PRE)允许每个文件都有一个单独的会话密钥,而无需每次您想授予或撤销用户的访问权限时重新加密该密钥。您避免拥有一个系统范围的密钥,这样您就可以授予对单个文件的不同访问权限,并且不需要在整个系统中进行相同的访问。
我们有一篇关于我们如何做这个这里的论文。
https://crypto.stackexchange.com/questions/61450
复制相似问题