2014-09-26 101 views

回答

12

secure_compare doctring:

比较两个字符串,同时防止Timing Attacks

通过迫使每一个人物的评价攻击者无法利用它了猜测,其中的时间差异发生 - 在第一次差异时立即返回的“正常”实施,这将是可能的。

语义计数器result &= c1 == c2(成功时,他们都是一样的)实际上是return c1 != c2(失败/中止的第一个区别),而不是提出条件的问题。

现在,result &= c1 == c2相同result = result & (c1 == c2),其中&(也称为bitwsie-AND)是严格逻辑与过布尔。这意味着当且仅当的结果先前为真且同情也为真时,结果累加器的使用才会保持为真

+0

我真的会对装配产生兴趣,它的设置方式看起来好像可以减少为每个for循环的半原子函数。这将有助于进一步保持行动线程安全的安全。 – 2014-09-26 19:26:51

+0

它仍然使它在某个时刻编译。所以它仍然是一个可行的理由去思考。 – 2014-09-26 19:28:49

+0

@JeffLangemeier:由于字符串是不可变的,因此首先没有线程安全问题。 – Blckknght 2014-09-26 19:28:56

相关问题