我想减慢攻击者的速度,这些攻击者会暴露我的应用程序泄漏帐户信息的部分内容。 (例如,如果您使用正在使用的用户ID访问注册页面,则页面响应会告诉您用户ID可以随后进行字典攻击。)
适当的算法使连续失败的尝试更慢更慢是什么?真实世界的例子是iPhone上的连续不良密码。
我正在用PHP实现,但任何伪代码响应都会受到赞赏。答案的关键部分是:
不好尝试N,将响应延迟X.
一个非常好的答案将包括:
M次尝试在我们对人为错误的容忍度范围内,因此曲线“曲棍球棒”接近M + 1
答案 0 :(得分:0)
对于拥有常见名称的人来说,简单的几何感觉过于严苛。 (John Smith可能需要尝试几次才能找到未占用的用户ID。)
sleep(pow(2,$failed_attempts));
也许我选择了一个愚蠢的常数?