假设我们有一组id / signature对,如:
https://picasaweb.google.com/${ID1}?authkey=${SIGNATURE1}
https://picasaweb.google.com/${ID2}?authkey=${SIGNATURE2}
https://picasaweb.google.com/${ID3}?authkey=${SIGNATURE3}
https://picasaweb.google.com/${ID4}?authkey=${SIGNATURE4}
....
这是picasa共享链接的一种方式,因此它们都是持久的。
如果我们可以收集成千上万的ID /签名对,是否会使私钥容易受到攻击?我们可以为任何新ID生成签名吗?
(假设加密方法是sha1或sha256。如果有盐,怎么办?)
(picasa只是一个例子,请不要以picasa为目标。这是一个普遍的问题,因为我们看到很多网站都在使用这种方法。)
(假设签名是由这种方法生成的:HMAC SHA1 Signature in Java)
答案 0 :(得分:0)
那么问题的真正原因是签名哈希是否实际上“泄漏”了用于签署哈希的密钥的任何信息。假设有一个强密钥和一个好的哈希函数,即使明文已知,HMAC也不会泄漏关于密钥的信息。
这是一个关于密码学stackexchange的类似问题的链接,答案很好: