![无需安全模块即可最安全地存储 TLS 私钥的方法](https://linux22.com/image/149627/%E6%97%A0%E9%9C%80%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9D%97%E5%8D%B3%E5%8F%AF%E6%9C%80%E5%AE%89%E5%85%A8%E5%9C%B0%E5%AD%98%E5%82%A8%20TLS%20%E7%A7%81%E9%92%A5%E7%9A%84%E6%96%B9%E6%B3%95.png)
我正在使用运行 Debian 的 BeableBone Black 设备,该设备使用签名证书通过 TLS 与 AWS 服务器安全通信。
我需要将我的私钥安全地存储在设备上。存储这些内容的最佳方法是使用连接到 BeagleBone 的单独硬件安全模块或 TPM(我目前还没有)。
仅通过使用可用的闪存,我可以存储密钥的最安全的方式是什么?我的应用程序当然需要在没有任何用户干预的情况下访问密钥。
加密密钥是否有意义,例如使用 dm-crypt?我想解密密钥需要密码,但是这个密码也必须安全存储吗?加密分区怎么样?
答案1
对于您的要求,没有真正安全的解决方案。尤其是当任何人能够物理访问该设备时。
你所做的一切都会是纯洁的“默默无闻的安全”。
您可以从定义“威胁模型”开始。您想具体防范哪些场景?物理访问?远程利用?可克隆性?一旦您澄清了这一点,就可以更轻松地了解是否可以缓解特定威胁。
最终,如果您已经考虑使用 TPM,那么您很可能最终会在分线板上使用 AT97SC3205T + 振荡器。这是一种与 BBB 结合使用的已知工作装置。而且芯片本身很便宜,已经在“连体衣”中售价 2-3 美元。