【发布时间】:2019-03-20 12:41:38
【问题描述】:
Python有专门比较HMAC来防止定时攻击的方法:https://docs.python.org/3.7/library/hmac.html#hmac.compare_digest
我在这里阅读了有关定时攻击的信息:https://security.stackexchange.com/questions/74547/timing-attack-against-hmac-in-authenticated-encryption
我的问题是,它怎么可能不是恒定时间?有必要计算实际的 HMAC 以便进行比较,而且您不能一次计算摘要 1 个字符,对吧?最后,它只是一个简单的字符串比较,比我测试中的实际 HMAC 计算快 2 个数量级。那么这里的攻击面到底在哪里呢?如果我不使用hmac.compare_digest(),有人可以举例说明实际漏洞在哪里吗?
【问题讨论】:
-
因为 Python
==相等性测试不能保证它是恒定时间。 -
所以基本上,你承认这是一个纯粹的技术正确性问题,实际上并不是一个实际问题......这和我想的差不多。
-
嗯,不,我不是。我告诉你,使用
==会使你面临预言机定时攻击。
标签: python-3.x security hmac timing-attack