2014-04-15 81 views
7

好吧,我知道如何OAuth的作品,但我不知道为什么我们需要oauth_nonce我们真的需要“oauth_nonce”吗?

规范说时间戳/临时值必须是唯一的解决重放攻击,但怎么样,如果consumer_key够独特之处?

如果consumer_key不是唯一的,它是如何找到相应oauth_nonce

回答

10

键是唯一的,但不经常更改。另一方面,随机数需要在每个请求中都是唯一的。

请考虑以下情况。先决条件是:攻击者可以监视你的通信,但不知道任何秘密。如果没有随机数,他可以进行重播攻击:他可以简单地复制并重发以前的任何请求,因为他知道您已发送的请求是有效的。

随机数可以防止这种情况,因为服务器会检查所有最近使用的随机数(there is a time limit),并且不会接受任何随机数两次。

+0

感谢您的答复!现在我知道了。我不能使用key而不是nonce来标识消费者,因为消费者可能会再次请求,如果使用nonce,我们可以使用唯一的nonce来避免重放攻击,但是如果我记录consumer_key而不是nonce,它甚至不能执行正常的请求因为我已经将consumer_key记录为已经访问过 – user2234995