1
A
回答
1
那么,你没有太多的选择。无论您将该密钥(数据库,代码,文件)放在哪里,只要其他人可以访问该机器,就可以轻松找到该密钥。
你可以做的是,你使用另一个密钥加密该密钥,该密钥基于某个密码(该密码不存储在任何地方,至少不是本地),并在应用程序启动时要求密码。这样,您可以将加密的AES_ENCRYPT密钥存储到您的数据库中,使用您的密码登录并解密,然后开始使用它。
1
如果您的网络服务器遭到入侵,那么攻击者无论存储在哪里都可以访问密钥 - 因为代码必须能够找到执行加密/解密的密钥 - 并且代码解释了它在哪里找到密钥。这增加了真正价值的唯一场景是保护应用程序之外的数据(例如在备份磁带上)。但是,由于您损害DBM优化查询和创建更大数据占用空间的能力,出于备份等目的,加密备份或文件系统更有意义 - 而不是单个数据项。
即使您使用的密钥不是永久存储在您的应用程序中(例如,通过SSL提供的HTTP基本身份验证密码),仍然存在很多数据会受到危害的风险 - 并且您遇到共享问题不同用户之间的数据。
为了提供一个合理的答案,我们需要知道威胁模型是什么,以及你是否有外部制约因素,如PCI-DSS
相关问题
- 1. 存储密钥
- 2. 存储密钥
- 3. 解密存储Java密钥存储
- 4. ECDSA密钥存储
- 5. 存储AES密钥
- 6. RSA加密,密钥存储
- 7. 加密密钥存储
- 8. 爪哇 - 如何存储密钥,密钥存储
- 9. Android的密钥存储提供商 - 如何存储密钥
- 10. Android密钥存储区存储令牌
- 11. 本地存储多个密钥存储
- 12. 对称密钥存储
- 13. Android密钥存储文件
- 14. wso2密钥存储问题
- 15. 存储Kerberos会话密钥
- 16. AWS密钥对存储
- 17. 在Android上存储密钥
- 18. 何处存储AES密钥?
- 19. 存储API密钥5
- 20. 安全存储AES密钥
- 21. MySql AES_ENCRYPT 256加密
- 22. 上传私钥到rundeck密钥存储
- 23. AES加密和密钥存储?
- 24. 如何存储加密密钥.NET
- 25. oracle存储过程加密密钥
- 26. 如何使用Android密钥存储提供程序存储密钥
- 27. 使用存储在Windows密钥存储区中的密钥作为OpenSSL中的预共享密钥
- 28. 如何在Java密钥库中存储Bouncy Castle PGP密钥?
- 29. 如何设计/创建密钥/值存储的密钥?
- 30. 导入现有的私有密钥到密钥存储BKS
正确的。我倾向于维护一个两级密钥,其中一半存储为数据库中的随机值,另一半存储在PHP脚本中。如果有人可以同时访问PHP脚本和数据库,那么没有其他任何事情可以做到。 – Ben
在数据库中存储一半数据是没有意义的,就像有人可以访问PHP一样,他也可以访问数据库。 – mgutt