在Web应用程序中隐藏非常敏感的凭据的正确方法

时间:2017-06-26 09:39:22

标签: java spring security credentials password-protection

我目前正在开发一个spring boot web应用程序。它是一个REST api代理,使用一些非常敏感的凭据连接到另一个api。凭证目前是硬编码的,但显然它们不应该是。隐藏它们的正确方法是什么?

我考虑使用一些库,比如 jasypt 对它们进行编码并将编码值放在属性文件中,将键隐藏在某个地方,也许是在系统变量中,(但它只是另一层)混淆,不是吗?)

如何正确隐藏这些敏感凭据?

2 个答案:

答案 0 :(得分:3)

您可以使用服务器环境隐藏属性。只需使用真实凭据存储在生产服务器application.properties上并保护访问权限,只有您的应用程序才能访问属性文件。

答案 1 :(得分:2)

根本问题是,如果您需要在计算机程序的内存中以明文保存安全凭证,并且有些人具有相当于“root”访问权限的机器,然后其中一个人可以获得证书的访问权。

因此,您需要设计安全性,以便永远不需要将凭据保存在服务器的内存中。

如果您真的认真解决这个问题,则需要调查Hardware Security Modules。但是,HSM方法将变得复杂且昂贵,并且可能需要您重新设计身份验证协议。