我正在开发一个类似 CMDB 的应用程序,我必须在其中存储我们的安全凭证(服务器用户名和密码,...)。
我正在寻找使用这些约束安全存储它们的最佳方法:
- 大多数用户将无法访问所有凭据(取决于用户角色)
- 我们不希望所有密码都使用相同的密钥加密(已经尝试过:当用户离开公司时,更改密钥很痛苦......)
- 事实上,我们不希望任何私钥被硬写在应用程序源中,甚至存储在任何地方(在我们之前的版本中,私钥存储在我们的耳朵之间......)
- 我们需要实现密码强度审计(即从脚本中解析解密的密码)
- 在任何情况下我们都不能再访问我们的凭据(丢失的密钥,...)=>我们不希望未经授权的人查看它们,但我们也不想丢失它们=>解决方案约束可能是定期导出到物理储物柜...
我不是在询问应用程序(https,...)或数据库(没有公共访问权限,...)安全问题本身,而只是关于存储方面(甚至可能不在数据库中......?加密文件或其他东西) ...) :是否有可能阻止某人,即使可以访问应用程序代码或数据库内容(最坏的情况),也能够读取解密的凭据?
我知道我正在寻求一些神奇的解决方案,但我想知道它是否存在;o)