2014-04-15 122 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