Apache Httpd 基本身份验证功能是否具有恒定时间密码比较?

Apache Httpd 基本身份验证功能是否具有恒定时间密码比较?

当我使用 Apache Httpd 的基本身份验证功能时,有时我会注意到检查错误密码似乎比检查正确密码花费更长的时间。

Apache Httpd 是否有恒定时间密码比较的选项?

答案1

密码失败时可能会出现人为延迟,但此处的测试并未揭示正确密码和错误密码之间的时间差异(它们的时间混合在一起)。

不过,我要指出的是,即使存在这样的差异,也是无关紧要的。重要的是两次错误的密码没有基于他们的时间差异距离正确的密码。

鉴于 Apache 使用哈希密码,因此糟糕的实现不可能揭露这一点。在最坏的情况下,攻击者如果也知道盐值(在这种情况下,他也会同时获得密码哈希值),就可以发现哈希密码……如果他能够计算(部分)原像(即打破哈希函数)。

由于 Apache 不使用可行的密码哈希函数,因此不可能利用这种时间差异。即使 Apache 没有在恒定时间内比较哈希值(它可能正在这样做)。

相关内容