Was ist eine Replay Attack?
Bei einer Replay-Attack verwendet ein Angreifer zuvor gesammelte Daten für den Zugriff auf geschützte Dateien. Eine fremde Identität wird vorgetäuscht, um mit dieser auf deren Datenbestände zuzugreifen. Um an die Authentifizierungsdaten zu kommen, kann ein Man-in-the-Middle-Angriff erfolgen. Zur Identifizierung sendet eine Person A einen Hashcode an eine andere Person B. Der Hashcode wird mit einer kryptologischen Hash-Funktion aus dem Passwort berechnet. Wird der Hashcode von einer Person C abgefangen, kann dieser zur Identifizierung genutzt werden. Eine Kenntnis des Passworts ist dazu nicht notwendig.
Wie wird eine Replay-Attack verhindert?
Die Verwendung eines Nonce ist eine Abwehrmöglichkeit zur Verhinderung einer Replay-Attack. Dabei sendet die Person B einen einmaligen Code (Nonce) an Person A. Mit dem Code transformiert Person A ihr Passwort und sendet das Ergebnis zurück an Person B. Person B führt dieselbe Transformation durch und vergleicht das eigene Ergebnis mit dem der Person A. Stimmen beide Ergebnisse überein, akzeptiert Person B die Identität von Person A. Versucht die unbefugte Person C nun einen abgefangenen Hashcode wiederzuverwenden, verschickt Person B ein anderes Nonce. Dieser geklaute Hashcode ist jedoch ungültig, da dieser mit einem anderen Nonce generiert wurde. In der Folge lehnt Person B die Identifizierung ab, das selbst berechnete Ergebnis stimmt nicht mit dem gelieferten und jetzt veralteten Hashcode überein.
Eine Alternative ist die Verwendung eines Zeitstempels anstelle eines Nonce. Dabei sollte Person A der Person B Datum und Uhrzeit mitteilen, da es bei der Übertragung zu einer Verzögerung kommen kann. Für die geschützte Übertragung mehrerer Datenpakete kann zudem eine Sequenznummer eingesetzt werden. Die Echtheit stellt dabei ein Message Authentication Code sicher. Die Verwendung einer Sequenznummer ist zum Beispiel bei IPsec, bei der Encapsulating Security Payload und beim Authentication Header vorgesehen. Abhängig von der eingesetzten Betriebsart kann eine per Blockchiffre verschlüsselte Übertragung von Daten vor einer Replay-Attack schützen. Der Schutz vor solch einer Attacke spielt unter anderem bei den Cryptowährungen und der dahinterliegenden Blockchain eine wichtige Rolle.