使用 sha1 进行 AWS S3 签名真的安全吗?

Coo*_*kie 2 security sign amazon-s3 amazon-web-services

签名元素是请求中所选元素的 RFC 2104 HMAC-SHA1。

https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#ConstructingTheAuthenticationHeader

但是维基百科说 sha1 不再安全了:

到 2020 年,针对 SHA-1 的选择前缀攻击现在已经实用[8],因此建议尽快从产品中删除 SHA-1,并使用 SHA-256 或 SHA-3。在用于签名的地方替换 SHA-1 是紧迫的。

https://en.wikipedia.org/wiki/SHA-1

还有一个基准测试,一个家伙以 68771.0 MH/s 的速度暴力破解 sha1! https://gist.github.com/epixoip/a83d38f412b4737e99bbef804a270c40

Den*_*aub 5

SHA-1 和 HMAC-SHA1 不是一回事,在某些用例中,HMAC-SHA1 仍然被认为是安全的。看看这个问题:https : //crypto.stackexchange.com/questions/26510/why-is-hmac-sha1-still-thinked-secure

  • 这是正确的,但由于完全不同的原因,仍然不应该使用该算法。正如 AWS 文档页面顶部所述,只有最古老的 AWS 区域才支持它...因此,例如,依赖于此算法的代码可以在 us-east-1 中运行,但不能在 us-east-2 中运行。 (3认同)