我一直在使用AWS CloudHSM构建一个产品,并且在POC中运行得很好。
现在我想转移到生产,我已经意识到,将有一个身份验证与HSM,以便让它签署的私钥,它持有的消息。
这个清单显示的问题是,似乎总是需要在软件中保留私钥。
例如,对于我的签名经理,我必须将私钥保存在基于软件的密钥存储库中!
这是否一开始就侵蚀了使用HSM的价值?什么是最佳实践?
发布于 2022-01-02 14:52:30
您所工作的系统是否完全包含在AWS中?如果您试图访问某些高风险的HSM操作,比如添加一个全新的私钥,也许您可以尝试要求来自YubiKey之类的身份验证。这将是一种基于硬件的解决方案,但也会带来自己的一系列问题,比如决定在高速电机中授权多少个YubiKeys (用于硬件故障时的冗余),以及在不使用时将YubiKeys保存在何处。
类似地,如果您的整个系统中有一个前置组件(即.在AWS之外的服务器将与CloudHSM通信),那么您可以类似地添加一个硬件组件来验证该特定服务器。如果该服务器被破坏,那么黑客可以使用该服务器的硬件向CloudHSM发出请求,但前提是他们能够保持与该服务器的主动连接。他们不可能在任何时候窃取密钥并允许自己从世界上任何地方访问CloudHSM系统。
如果您正在开发的系统完全在AWS中,并且不能添加任何硬件,那么仍然可以使用一些策略来添加某种级别的控制,尽管这些策略在很大程度上取决于应用程序的具体情况。例如,用于将密码货币存储在“冷钱包”中的正方形开发了一个系统,其中控制冷钱包私钥的HSM具有自定义编程,限制HSM签署任何密码货币事务,但将加密货币传输到.属于广场的“热钱包”。如果黑客能够破坏服务器并迫使HSM签署交易,就不会允许他们直接从冷钱包中窃取任何东西。
我不确定AWS CloudHSM是否允许您在HSM的安全飞地中运行自定义代码,但这是我能想到的唯一选项。
https://security.stackexchange.com/questions/210109
复制相似问题