Nonce (kryptografischer Einmalwert)
Was ist eine Nonce (kryptografischer Einmalwert)?
Eine Nonce ist eine zufällige oder halbzufällige Zahl, die für einen bestimmten Zweck generiert wird. Sie steht im Zusammenhang mit kryptografischer Kommunikation und Informationstechnologie (IT). Der Begriff steht für „number used once“ oder „number once“ und wird allgemein als kryptografische Nonce bezeichnet.
In der Regel ist eine Nonce ein Wert, der sich mit der Zeit ändert, um sicherzustellen, dass bestimmte Werte nicht wiederverwendet werden. Eine Nonce kann ein Zeitstempel, ein Besucherzähler auf einer Website oder eine spezielle Markierung sein, die dazu dient, die unbefugte Wiedergabe oder Reproduktion einer Datei einzuschränken oder zu verhindern.
Arten von Nonce-Werten
Eine Nonce kann je nach ihrer Erzeugung kategorisiert werden, entweder zufällig oder sequenziell. Eine zufällige Nonce wird durch Aneinanderreihen beliebiger Zahlen erzeugt. Eine sequenzielle Nonce wird schrittweise erzeugt. Durch die Verwendung der sequenziellen Nonce-Methode wird sichergestellt, dass Werte nicht wiederholt werden, nicht erneut verwendet werden können und keinen unnötigen Speicherplatz beanspruchen.
Die Verwendung der zufälligen Nonce-Methode schützt vor Angreifern, die mehrere Schlüssel innerhalb eines Systems abfangen. Im Idealfall besteht eine Nonce sowohl aus zufälligen als auch aus sequenziellen Teilen.
Zum Beispiel wäre ein Zeitstempel von 15:01 Uhr am 17.09.2020 eine sequenzielle Nonce, da sie inkrementell erzeugt wird. Es ist höchst unwahrscheinlich, dass der Wert zuvor aufgetreten ist oder jemals wieder auftreten wird. Er ist einigermaßen vorhersehbar. Ein Hacker könnte das Muster der Generierung von zeitgestempelten Schlüsseln erlernen und den Wert des nächsten Schlüssels erraten.
Ein Pseudo-Zufallszahlengenerator kann unvorhersehbarere Nonces erzeugen. Allerdings wäre es weniger wahrscheinlich, dass diese einzigartig sind, da die Möglichkeit besteht, dass dieselbe Zufallszahl mehrmals generiert wird.
Wie man eine Nonce verwendet
Nonce-Werte können für eine Vielzahl von IT-Anwendungen verwendet werden, darunter die folgenden:
Authentifizierung. Nonce wird von Authentifizierungsprotokollen verwendet, um sicherzustellen, dass alte Übermittlungen nicht erneut verarbeitet werden können.
Hashing. Proof-of-Work-Systeme verwenden Nonce-Werte, um die Eingabe in eine kryptografische Hash-Funktion zu variieren. Dies hilft, beliebige Bedingungen zu erfüllen und eine gewünschte Komplexität zu erreichen.
Initialisierung. Ein Initialisierungsvektor ist eine Nonce, der für die Datenverschlüsselung verwendet wird. Er wird in jeder Sitzung nur einmal verwendet und verhindert, dass sich Sequenzen im verschlüsselten Text wiederholen. Das Erkennen von Wiederholungen kann einem Angreifer dabei helfen, eine Chiffre zu entschlüsseln.
Identitätsmanagement. Kontowiederherstellung, Zwei-Faktor-Authentifizierung oder Single Sign-On sind Identitätsmanagement-Funktionen, die Nonce-Werte verwenden können.
Elektronische Signaturen. Geheime Nonce-Werte werden manchmal von E-Signatur-Tools verwendet, um Signaturen zu erstellen, zu vergleichen und zu überprüfen.
Kryptowährung. In bestimmten Kryptowährungen wird eine Nonce verwendet, um einen kryptografischen Hash zu erstellen, der mit einer Blockchain verbunden ist.
Asymmetrische Verschlüsselung. In bestimmten Fällen der Kryptografie mit öffentlichem Schlüssel, wie zum Beispiel SSL/TLS-Handshake, werden zwei eindeutige Nonce-Werte ausgetauscht. Ein Wert wird vom Client bereitgestellt, während der andere vom Server bereitgestellt wird. Dies wird als asymmetrische Verschlüsselung bezeichnet und schützt jede Verbindung vor Angriffen oder Eingriffen.

Beispiele für kryptografische Nonce-Werte
Kryptografische Nonce werden in Authentifizierungsprotokollen verwendet, um sich gegen Replay-Angriffe zu schützen. Bei Replay-Angriffen fängt ein Angreifer Authentifizierungsdaten während der Übertragung ab und verwendet sie später, um Zugriff auf das geschützte Netzwerk zu erhalten.
E-Commerce-Websites verwenden in der Regel eine Nonce, um jedem Kauf eine Originalität zuzuweisen. Ohne diese könnte ein Angreifer die verschlüsselten Informationen potenziell beliebig oft erneut abspielen und zusätzliche Bestellungen unter Verwendung desselben Kontonamens und derselben Kaufinformationen aufgeben.
Nonce-Verwendung in Kryptowährungen
Kryptowährungen nutzen das Blockchain-Mining, ein Peer-to-Peer-Verfahren, um die Sicherheit und Authentizität des Blockchain-Ledgers zu gewährleisten. Im Rahmen dieses Verfahrens zeichnen Blockchain-Miner Transaktionen in digitalen Währungen auf und erstellen neue Bitcoins oder andere Kryptowährungen. Miner validieren die Vertrauenswürdigkeit von Transaktionen und fügen dem globalen öffentlichen Ledger vergangener Transaktionen neue Transaktionsdaten hinzu, wodurch die Blockchain entsteht.
Miner verwenden ausgeklügelte Software und Algorithmen, um komplexe Probleme zu lösen. Der erste Miner, der ein Problem löst, erhält einen neuen Block der Kryptowährung, mit der er arbeitet. Nonce ist die willkürliche Zahl, die Miner sich ausdenken müssen – im Grunde genommen raten – um eine Zahl zu erzeugen, die kleiner oder gleich dem Ziel-Hash ist.
Die Lösung für die Nonce erfordert Versuch und Irrtum, da es sich um eine zufällige Zeichenfolge handelt. Die Miner erraten die Nonce, fügen sie dem Hash des aktuellen Blockheaders hinzu, rehashen den Wert und prüfen, ob er kleiner oder gleich dem Wert des Ziel-Hashs ist.