github 上的 cookie 签名是否需要 sha1?
Is sha1 necessary in cookie-signature on github?
我不知道为什么第42行使用sha1
在 https://github.com/tj/node-cookie-signature/blob/master/index.js
在index.js的第42行可以看到
return sha1(mac) == sha1(val) ? str : false;
我试过将其更改为
return mac == val ? str : false;
而且 sign 和 unsign 函数似乎仍然可以正常工作。
这里使用sha1的原因是什么?这是一种安全问题吗?这里需要sha1吗?
它可以帮助防止定时攻击。字符串比较将 return false 第一个不同的字符。因此,比较时间越长,字符串开头匹配的字符就越多。攻击者可以尝试猜测第一个字符,然后是下一个字符,依此类推。
当然,这样的攻击并不容易。但是,如果延迟足够低并且可以以高速率进行足够多的尝试,那么这可能是一个问题。
通过散列,比较有效地变成常数时间。
我不知道为什么第42行使用sha1 在 https://github.com/tj/node-cookie-signature/blob/master/index.js
在index.js的第42行可以看到
return sha1(mac) == sha1(val) ? str : false;
我试过将其更改为
return mac == val ? str : false;
而且 sign 和 unsign 函数似乎仍然可以正常工作。
这里使用sha1的原因是什么?这是一种安全问题吗?这里需要sha1吗?
它可以帮助防止定时攻击。字符串比较将 return false 第一个不同的字符。因此,比较时间越长,字符串开头匹配的字符就越多。攻击者可以尝试猜测第一个字符,然后是下一个字符,依此类推。
当然,这样的攻击并不容易。但是,如果延迟足够低并且可以以高速率进行足够多的尝试,那么这可能是一个问题。
通过散列,比较有效地变成常数时间。