是的,我知道oauth是如何运作的,但我不知道为什么我们需要oauth_nonce
。
规范说时间戳/ nonce必须是唯一的才能解决重放攻击,但是如果consumer_key
足够独特呢?
如果consumer_key
不唯一,它如何找到相应的oauth_nonce
?
答案 0 :(得分:12)
钥匙是独一无二的,但不经常改变。另一方面,nonce需要根据请求是唯一的。
请考虑以下情形。先决条件是:攻击者可以监视您的通信,但不知道任何秘密。如果没有nonce,他可以进行重播攻击:他可以简单地复制并重新发送您之前的任何请求,因为他知道您已经发送的请求是有效的。
nonce会阻止这种情况,因为服务器检查所有最近使用的nonce(there is a time limit)并且不接受任何两次nonce。