【问题标题】:Is sha1 necessary in cookie-signature on github?github上的cookie签名中是否需要sha1?
【发布时间】:2015-06-01 12:22:20
【问题描述】:

我不知道为什么第 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吗?

【问题讨论】:

    标签: node.js security cookies cryptography sha1


    【解决方案1】:

    它可以帮助防止定时攻击。字符串比较将在第一个不同的字符上返回 false。因此,比较花费的时间越长,字符串匹配开头的字符就越多。攻击者可以尝试猜测第一个字符,然后是下一个字符,以此类推。

    当然,这样的攻击并不容易。但是,如果延迟足够低并且可以以高速率进行足够多的尝试,这可能是个问题。

    通过采用散列,比较实际上变成了常数时间。

    【讨论】:

    • 一个更强大的结构是 HMAC,它在数据上带有一个随机密钥。
    猜你喜欢
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多