Was ist eine kryptografische Nonce? Definition & Bedeutung

Es handelt sich um eine (scheinbar) willkürlich gewählte Zahl, mit deren Hilfe Kommunikation verschlüsselt werden kann. Diese willkürlich generierte Zahl kann nur einmal verwendet werden. Oftmals wird sie sogar mit einem Zeitstempel versehen. 

Eine kryptographische Nonce soll Replay-Angriffe verhindern, indem sie sicherstellt, dass Hacker keinen Zugriff auf alte Mitteilungen erhalten. Kryptographische Nonces werden in Authentisierungs-protokollen, Hashfunktionen und Initialisierungsvektoren verwendet.

Was ist eine kryptografische Nonce?

Kryptographische Nonces werden zufällig generiert und schützen Kommunikation, die über eine Live-Datenübertragung stattfindet. Damit tragen sie zum Schutz vor Replay-Angriffen bei. Nonce bedeutet in der Kryptographie so viel wie „Nummer zur einmaligen Verwendung“. Die zufällig gewählte Zahl wird nur einmal genutzt, um kryptographische Kommunikation zu schützen.

Eine Nonce wird oft mit einem Zeitstempel versehen. Das bedeutet, dass sie nur innerhalb eines bestimmten Zeitraums gültig ist – und somit nur ein einziges Mal verwendet werden kann. Wurde der Nonce kein Zeitstempel beigefügt, muss sie mit genügend Zufallsbits generiert werden. So kann mit nahezu hundertprozentiger Wahrscheinlichkeit verhindert werden, dass derselbe Wert zweimal generiert wird.

Beispiele einer Nonce

Eine Nonce kann in einem Authentifizierungsprotokoll eingebunden werden, um einen Replay-Angriff zu verhindern. So wird sichergestellt, dass alte Mitteilungen nicht wiederverwendet werden. Mithilfe der Nonce lässt sich nachweisen, dass eine Mitteilung auch wirklich vom angegebenen Absender stammt – und nicht etwa von einem Hacker, der sie abgefangen und erneut verschickt hat. Eine Nonce sollte sowohl aus fortlaufenden als auch zufälligen Elementen bestehen. So kann optimaler Schutz gewährleistet werden.

Hier einige Anwendungsbeispiele:

  • Authentisierungsprotokolle: Mithilfe einer Nonce kann der MD5-Digest des Kennworts bei einer HTTP-Digest-Authentifizierung berechnet werden. Die Nonce ist jedes Mal anders, wenn ein Fehlercode 401 erzeugt wird. Das ist besonders bei Online-Transaktionen wichtig. So weiß der User, dass die jeweilige Transaktion seriös ist.

Die Verwendung einer Nonce zur Authentifizierung verhindert, dass alte Mitteilungen erneut verwendet werden. So kann beispielsweise eine E-Commerce-Website für jeden Kaufvorgang eines Kunden eine Nonce generieren. So lässt sich verhindern, dass Hacker die Kundendaten einer Bestellung nutzen, um eine erneute Bestellung aufzugeben.

  • Asymmetrische Kryptographie: Nonces können in der Public-Key-Kryptographie verwendet werden, wie beim SSL/TLS-Handshake (Secure Socket Layer/Transport Layer Security), bei dem zwei individuelle Nonces erzeugt und ausgetauscht werden. Sowohl Client als auch Server generieren Nonces, die durch den privaten und den öffentlichen Schlüssel validiert werden.
  • Digitale Signaturen: Nonces können mithilfe von E-Signature-Tools digitale Signaturen erstellen, vergleichen und verifizieren.
  • Identitätsmanagement: Diverse Identity-Management-Features wie SSO (Single Sign-on), 2FA (Zwei-Faktor-Authentisierung) und Account-Recovery nutzen Nonces.
  • Hashing: Über eine Nonce in einem Proof-of-Work-System kann der Input für eine kryptographische Hash-Funktion so angepasst werden, dass sie beliebige Bedingungen mit einem gewünschten Schwierigkeitsgrad erfüllt.
  • Initialisierung: Ein Initialisierungsvektor, der für die Verschlüsselung von Datenverkehr eingesetzt wird, ist ebenfalls eine Nonce. Oftmals ist sie (anscheinend) zufällig gewählt und kann innerhalb einer Sitzung nur einmal verwendet werden.
  • Kryptowährungen: Mithilfe einer Nonce kann ein kryptographischer Hash erstellt werden, der eine Verbindung zu einer Bitcoin-Blockchain aufbaut. Oftmals wird dem zu hashenden Wert beim Bitcoin-Mining eine Nonce beigefügt – so kann der Hash-Algorithmus, der dabei erstellt wird, beeinflusst und geändert werden.

Vorzüge einer kryptographischen Nonce

Die Verwendung einer Nonce dient als Nachweis für die Echtheit einer Nachricht. Nonces können außerdem sicherstellen, dass alte Nachrichten nicht noch einmal verwendet werden – so wie es bei Replay-Angriffen üblich ist.

Bei einem Replay-Angriff infiltriert ein Hacker die Kommunikation zwischen zwei Parteien und fängt eine Nachricht ab. Diese verwendet er im Anschluss, um sich unautorisiert Zugang zu verschaffenEin Beispiel: Ein User sendet eine Anfrage an einen Server und ein Hacker fängt die Nachricht ab. Im Anschluss sendet der Hacker dieselbe Anfrage an genau den gleichen Server und verschleiert somit seine Identität. In der Praxis sieht das dann so aus, als kämen die Daten von Ihrem Browser.

Wurde die Kommunikation zwischen User und Server jedoch mit einer Nonce versehen, kann eine Nachricht oder Anfrage ruhig von einem Hacker abgefangen werden – der Server wird eine erneut gesendete Anfrage in keinem Fall akzeptieren. Die Nonce ist nur einmal gültig. Sollte eine Nachricht oder Anfrage also mehrfach gesendet werden, blockt der Server ab. Die Tatsache, dass eine Nonce zufällig generiert wird und dass sie in manchen Fällen sogar mit einem Zeitstempel versehen wird, macht es für einen Hacker sehr viel schwerer die Identität eines legitimen Users anzunehmen.

Weitere Ressourcen

Das National Institute of Standards and Technology (NIST) hat eine Reihe aufschlussreicher Ressourcen zu Nonces, ihren Best Practices und ihren Use Cases veröffentlicht Beim Bitcoin-Mining bezeichnet der Begriff „Golden Nonce“ einen Hash-Wert, der kleiner als der Zielwert ist. The Blockchain Council has more information on blockchain and how nonces can be applied.

Referenzen

Replay Attack. National Institute of Standards and Technology (NIST).

Nonce. National Institute of Standards and Technology (NIST).

What Is a Golden Nonce and What Is Its Usage in Blockchain? (2022). Blockchain Council.