# Replay-Angriff

Ein Replay-Angriff (Angriff durch Wiedereinspielung) ist eine kryptoanalytische Angriffsform auf die Authentizität von Daten in einem Kommunikationsprotokoll. Hierbei sendet der Angreifer zuvor aufgezeichnete Daten, um etwa eine fremde Identität vorzutäuschen.

## Beispiel

Angenommen, Alice will ihre Identität Bob gegenüber beweisen. Beide kennen Alices geheimes Passwort. Alice berechnet den Hashwert ihres Passworts mit einer kryptographischen Hashfunktion und sendet diesen an Bob. Bob vergleicht den Hashwert mit seiner Berechnung und akzeptiert. Währenddessen belauscht Mallory die Kommunikation und zeichnet den von Alice gesendeten Hashwert auf. Nachdem die Kommunikation beendet ist, verbindet sich Mallory mit Bob, gibt sich als Alice aus und sendet den aufgezeichneten Hashwert (Replay). Mallory kann dadurch erfolgreich Alices Identität vorgeben, obwohl sie das Passwort nicht kennt.
Das Needham-Schroeder-Protokoll ist in seiner ursprünglichen Form für einen Replay-Angriff anfällig.

## Gegenmaßnahmen

Eine Möglichkeit, Replay-Angriffe zu verhindern, ist die Nutzung einer Nonce: Alice fügt neben dem Passwort in die Hashwert-Berechnung zusätzlich eine zufällige Zahl ein (Nonce), die nur einmalig verwendet wird. Alice teilt Bob die Nonce im Klartext mit, damit Bob die Hashwert-Berechnung wiederholen kann. Bob merkt sich die erhaltene Nonce und verwirft Nachrichten, die eine bereits verwendete Nonce enthalten. Dieses Verfahren ist allerdings unpraktikabel, da Alice und Bob die verwendeten Nonces dauerhaft speichern müssen. Statt einer Nonce kann auch ein Zeitstempel verwendet werden. Der Vorteil eines Zeitstempels ist, dass man ihm ansieht, ob er veraltet und somit ungültig ist, ohne sich alte Werte merken zu müssen. Allerdings muss es immer einen Gültigkeitszeitraum geben, um Übertragungsverzögerungen und Zeitversatz zu tolerieren. In dem Gültigkeitszeitraum ist das Verfahren anfällig gegenüber Replay-Angriffen.
Eine abgewandelte Variante ist die Challenge-Response-Authentifizierung: hierbei sendet Bob die Nonce an Alice im Klartext (Challenge). Alice transformiert das Passwort zusammen mit der Nonce zu einem Hashwert und sendet das Ergebnis zurück an Bob (Response). Bob wiederum vollführt dieselbe Transformation und vergleicht sein Ergebnis mit Alice’ Ergebnis: wenn beide übereinstimmen, akzeptiert Bob die Identität von Alice. Wenn nun Mallory versucht, einen abgehörten Hashwert wiederzuverwenden, schickt Bob aber ein anderes Nonce; der ausspionierte Hashwert ist nun ungültig (da mit einem anderen Nonce generiert). Bob lehnt ab, da sein Ergebnis und der gelieferte (veraltete) Hashwert nicht übereinstimmen.
Um eine fortlaufende Datenübertragung über mehrere Datenpakete hinweg zu schützen, kann eine Sequenznummer verwendet werden, deren Authentizität wiederum von einem Message Authentication Code sichergestellt wird. Dies ist zum Beispiel bei IPsec sowohl beim Authentication Header als auch bei der Encapsulating Security Payload vorgesehen. Je nach Betriebsart kann auch eine mit einer Blockchiffre verschlüsselte Datenübertragung Schutz vor Replay-Angriffen bieten.
Einmalpasswörter, also Passwörter, welche nur kurz gültig sind und sich danach ändern, sind eine weitere Maßnahme zur Prävention.