的 AES 强>
AES是官方的“Avanced加密标准”,因此它仍然是对称密码的一个非常好的选择。较长的密钥大小的速度惩罚是 微不足道 与改进的安全性相比。
的 总体方法 强>
首先,这种方法本身似乎很合理。但是你应该记住数据库中加密数据引入的缺点:没有更高效的索引,没有查询优化,一般没有选择性查询......如果你打算加密数据库的大部分甚至整个数据库你应该更好地了解数据库本身提供的加密功能。如果使用此方法,则还应使用SSL / TLS保护与数据库的连接,这很容易被忽略。这保留了“普通”数据库的所有好处,同时提供了您正在寻找的额外安全性。
你丢失密钥是正确的:然后你遇到了大麻烦:)但是并非所有都丢失了,你仍然可以暴力破解JCEKS密钥库文件的密码......
什么把我们带到那个资源。密钥存储和密码确实是一个鸡蛋和蛋的问题。对此唯一真正干净的解决方案是每次启动应用程序/数据库时手动输入密码。但这往往是一个真正的问题(想想:半夜崩溃),所以人们倾向于将密码存储在文件系统的文本文件中。只要您遵循一些指导原则,这是可以接受的:
如果你真的想要严格(假设只有一两个人应该知道密码),那么你可以另外安装一个 秘密分享 计划,但根据您的要求可能是矫枉过正。这样的方案将允许具有(本身无用的)秘密部分的个体组合部分以恢复实际秘密。这样,您可以通过将零件分散到更大的组来降低损失风险。