我正在寻求提高在负载下花费大量处理时间的应用程序在身份验证过程中的性能(用户名/密码验证)。
我对应用程序密码的存储和验证方式感到满意(通过多次迭代进行盐水和散列),问题是验证过程缓慢且CPU耗尽(应该是这样)。
应用程序获取消息突发,并且每个进入的消息都经过身份验证。 具体来说,我正在做的是实现一个短期缓存(120秒),如果用户名/密码成功通过身份验证,那么在缓存窗口中使用相同用户名/密码进入的任何其他请求都将被验证,而无需经历了缓慢的许多迭代认证过程。
基本流程将是:
缓存将是内存缓存,但问题是我需要如何'安全'来生成我放在缓存中的数据(用户名/密码)。它在性能和安全性之间进行权衡......以及安全性如何足够安全。
例如,以下是用于缓存的合理密钥:
答案 0 :(得分:0)
我怀疑你真正想要做的是发出一个有效的下一个'n'秒的令牌/票证。令牌将被加密/签名,以便您可以单独验证它并检查到期时间(从而防止重放攻击)