2014-04-15 8 views
7

Richtig, ich weiß, wie oauth funktioniert, aber ich weiß nicht, warum wir oauth_nonce brauchen.Brauchen wir wirklich "oauth_nonce"?

Die Spezifikation sagt Timestamp/Nonce muss einzigartig sein, um Replay-Angriffe zu lösen, aber was ist, wenn consumer_key einzigartig genug ist?

Wenn consumer_key nicht eindeutig ist, wie findet es entsprechende oauth_nonce?

Antwort

10

Schlüssel sind einzigartig, ändern sich aber nicht oft. Ein Nonce auf der anderen Seite muss auf Anfrage eindeutig sein.

Stellen Sie sich das folgende Szenario vor. Voraussetzungen sind: Ein Angreifer kann Ihre Kommunikation ausspionieren, kennt aber keine Geheimnisse. Wenn es keine Nonce gibt, kann er einen Replay-Angriff ausführen: Er kann Ihre vorherigen Anfragen einfach duplizieren und erneut senden, da er weiß, dass die Anforderungen, die Sie bereits gesendet haben, gültig sind.

Eine Nonce verhindert dies, da der Server alle zuletzt verwendeten Nonces (there is a time limit) überprüft und keine Nonce zweimal akzeptiert.

+0

Vielen Dank für Ihre Antwort! Jetzt weiß ich es. Ich kann nicht Schlüssel verwenden, um den Verbraucher zu identifizieren, weil der Verbraucher erneut anfordern kann, wenn Nonce verwendet wird, können wir eine einmalige Nonce verwenden, um Wiederholungsangriff zu vermeiden, aber wenn ich consumer_key statt nonce aufzeichne, kann es nicht einmal eine normale Anfrage machen weil ich es bereits consumer_key als bereits besucht aufzeichnen – user2234995