我有一个包含敏感信息的数据库。在读写操作时,我可以对数据进行加密/解密。问题是我需要在应用程序中存储密钥。如果有人已经黑入了数据库并能够访问它,那么他们也可以获取应用程序(Java),反编译它并提取密钥。
这似乎只是一个小障碍。还有哪些其他解决方案可用?
我有一个包含敏感信息的数据库。在读写操作时,我可以对数据进行加密/解密。问题是我需要在应用程序中存储密钥。如果有人已经黑入了数据库并能够访问它,那么他们也可以获取应用程序(Java),反编译它并提取密钥。
这似乎只是一个小障碍。还有哪些其他解决方案可用?
了解密钥库。
要求用户输入密码才能访问其数据。在代码中隐藏密钥是安全性的假象。
将密钥存储在CSP容器中。可以考虑使用Java CSP。这是我个人认为最安全的方法。但是您也可以考虑将密钥存储在文件中,并使用某种ACL来保护操作系统。
要求用户使用强密码登录;使用密码作为对称加密算法的密钥来解密非对称数据库密钥
在应用程序运行时将数据库密钥保存在安全内存中(如果有这个选项)
对密钥进行加密(使用DPAPI),将其放入文件中,对该文件设置ACL等...