如何处理/存储加密密钥以双向加密来加密用户密码?

时间:2016-10-27 07:27:10

标签: java security encryption cryptography passwords

我有点蠢,我有一个服务器应用程序需要登录用户的邮件服务器。

用户给我mailserver用户名/密码,服务器应用程序将登录邮件服务器,并以一定的间隔进行操作。

这意味着我确实需要普通密码,因此我无法使用安全措施来安全地存储密码。

从研究来看,我似乎需要使用2路加密(服务器可以加密但也可以解密)。使用加密密钥完成加密。

处理/存储此加密密钥的最佳方法是什么?

我想到的一件事是将加密密钥存储在另一台服务器上,因此如果我的应用程序服务器和数据库被黑客攻击,他们仍然没有加密密钥。虽然如果应用程序服务器可以访问其他服务器,黑客可以在我的应用程序服务器上模拟(反编译,编译)我的应用程序,并以这种方式获取加密密钥。

这是一个难题!

1 个答案:

答案 0 :(得分:1)

这是一个好的解决方案的开始。

在第二台服务器(加密服务器)上进行加密和解密。将密码传递给加密服务器进行加密,并返回加密密码以存储在数据库中。需要密码时,将加密密码传递给加密服务器进行解密。

让加密服务器监控请求活动,如果收到异常数量的请求,则发出警报,并在极端情况下停止处理请求。

使第二台服务器非常安全。无法访问Internet,访问帐户最少,双因素身份验证。

加密服务器成为穷人的HSM(硬件加密模块)。