1. Introduction and Overview (Einführung und Überblick)
1. Introduction and Overview (Einführung und Überblick)
Software-Kryptographie wird immer häufiger verwendet, obwohl es noch ein weiter Weg ist, bis sie allgegenwärtig wird. Systeme wie SSH, IPSEC, TLS, S/MIME, PGP, DNSSEC und Kerberos reifen heran und werden Teil der Netzwerklandschaft [SSH] [IPSEC] [TLS] [S/MIME] [MAIL_PGP*] [DNSSEC*]. Zum Vergleich: Als die vorherige Version dieses Dokuments [RFC1750] im Jahr 1994 veröffentlicht wurde, war die einzige Internet-Kryptographie-Sicherheitsspezifikation in der IETF das Privacy Enhanced Mail-Protokoll [MAIL_PEM*].
Diese Systeme bieten erheblichen Schutz vor Ausspähen und Spoofing. Es gibt jedoch einen potenziellen Fehler. Im Herzen aller kryptographischen Systeme steht die Erzeugung geheimer, nicht erratbarer (d.h. zufälliger) Zahlen.
Das Fehlen allgemein verfügbarer Einrichtungen zur Erzeugung solcher Zufallszahlen (d.h. das Fehlen einer allgemeinen Verfügbarkeit wirklich unvorhersehbarer Quellen) bildet eine offene Wunde im Design kryptographischer Software. Für den Softwareentwickler, der eine Schlüssel- oder Passwortgenerierungsprozedur erstellen möchte, die auf einer breiten Palette von Hardware läuft, ist dies ein sehr reales Problem.
Beachten Sie, dass die Anforderung für Daten besteht, bei denen ein Gegner eine sehr geringe Wahrscheinlichkeit hat, sie zu erraten oder zu bestimmen. Dies kann leicht fehlschlagen, wenn Pseudo-Zufallsdaten verwendet werden, die nur traditionelle statistische Tests auf Zufälligkeit erfüllen oder die auf Quellen mit begrenztem Bereich wie Uhren basieren. Manchmal können solche Pseudo-Zufallsgrößen von einem Gegner erraten werden, der einen peinlich kleinen Raum von Möglichkeiten durchsucht.
Dieses Best Current Practice-Dokument beschreibt Techniken zur Erzeugung zufälliger Größen, die resistent gegen Angriffe sein werden. Es empfiehlt, dass zukünftige Systeme Hardware-Zufallszahlengeneratoren einschließen oder Zugriff auf vorhandene Hardware bieten, die für diesen Zweck verwendet werden kann. Es schlägt Methoden zur Verwendung vor, wenn solche Hardware nicht verfügbar ist, und gibt einige Schätzungen der Anzahl der erforderlichen Zufallsbits für Beispielanwendungen.