我正在编写一个Web应用程序,它通过Web交换签名的xml。我的问题是在哪里安全地存储我的私钥以及如何在我的Java代码中访问它们?我正在Google应用引擎云上部署,我的应用程序可以根据服务器负载自动扩展。
这样做的行业最佳做法是什么?
答案 0 :(得分:2)
从谁那里安全?国家安全局?谷歌管理员?脚本小子?
理想情况下,您购买HSM并将其存储在那里。我不知道GAE是否有HSM。 AWS确实如此,但并不便宜。
您还可以使用非常有限且锁定的API创建一个简单的服务器,并将密钥存储在其中,让服务器为您签名,而不会泄露您的密钥。
您的下一个最佳选择是将密钥存储在文件或envar中,只有用户可以读取您的应用程序正在运行的文件。