Python中的时间攻击弹性比较< 2.7.7

时间:2014-08-25 10:10:33

标签: python security python-2.7

在python 2.7.7中引入hmac.compare_digest,旨在提供对时间攻击具有弹性的字符串比较。

可悲的是,2.7.7仍然是最新的,许多系统都有旧版本,包括Ubuntu 14.04。

有没有办法比较此类系统中的身份验证字符串,而无需用户从源代码编译Python(并定期重新编译以保持安全更新)?

1 个答案:

答案 0 :(得分:1)

您需要避免短路。像

这样的东西
sum(i != j for i, j in zip(hmac1.digest(), hmac2.digest()))

compare_digest相同的警告适用:

  

注意:如果a和b的长度不同,或者发生错误,则a   定时攻击理论上可以揭示有关类型的信息   和a和b的长度 - 但不是它们的值。