Co-Autor von Nate Cote und Emmett Jorgensen
Allzu oft stellen wir als Sicherheitsexperten nicht alle richtigen Fragen, wenn wir ein neues Produkt oder eine neue Dienstleistung bewerten. Wir haben alle von „256-Bit-AES“-Verschlüsselung und Produkten gehört, die mit RSA-Schlüsseln der Größe „x“ gesichert sind. Die Größe von Verschlüsselungsschlüsseln ist zu gängigen Maßstäben für die Bewertung von Sicherheitsprodukten geworden, die Kryptografie nutzen – und wird oft zu einer der wichtigsten Informationen, die die Produktakzeptanz in einer Organisation vorantreiben. Eine ernsthafte Frage, die wir uns bei kryptografischen Produkten stellen sollten, betrifft jedoch die Wirksamkeit des Zufallszahlengenerators (Random Number Generator, RNG).
Wie viele Personen sammeln wirklich Informationen über die Zufälligkeit der in einem Produkt oder Modul implementierten Kryptografie? Gibt es genauer gesagt eine Analyse der Wirksamkeit des RNG? Dies ist schließlich der Motor des gesamten Prozesses und vielleicht der kritischste Teil eines Produkts, das kryptografische Funktionen nutzt. Leider werden diese Informationen fast nie diskutiert, da die meisten Menschen die Bedeutung der RNG-Qualität nicht verstehen und daher nicht danach fragen.
Was bedeutet das wirklich im Alltag? Die allgemeine Sicherheit eines Geräts oder Produkts, das kryptografische Funktionen verwendet, hängt direkt von der Qualität des in der Lösung implementierten RNG ab. Der „Verschlüsselungsschlüssel“, der normalerweise die Daten in einem Modul schützt, wird von einem robusten Zufallszahlengenerator generiert, der wirklich zufällig ist. Die Idee dahinter ist, dass jemand, der die verschlüsselten Daten angreifen möchte, mit der vollen Stärke des Schutzes (z. B. der gesamten 256-Bit-Sicherheit) angreifen muss.
Das Risiko bei der Verwendung eines RNG, der nicht wirklich zufällig ist, ergibt sich aus der Fähigkeit eines Angreifers, die verschlüsselten Daten zu analysieren und möglicherweise Muster in der Verschlüsselung zu entdecken. Dies könnte eine Art Reverse Engineering der verschlüsselten Daten oder Schlüssel ermöglichen. Auch wenn das Gerät über eine „256-Bit-AES-Verschlüsselung“ verfügt, verfügt es möglicherweise nicht annähernd über dieses Maß an effektiver Sicherheit. Möglicherweise zeichnen sich Muster ab, und bei der Entschlüsselung der Informationen kann jeder Schritt einfacher werden als der nächste, wodurch es einfacher wird, den Rest der Punkte zu verbinden. Je zufälliger dieser Anfangswert ist, desto sicherer dürften der Schlüssel, der Chiffretext und andere kritische Komponenten sein und desto schwieriger ist es für einen Angreifer, einen einfachen Weg zu finden, das Modul anzugreifen.
Wie kann man also eigentlich verstehen, ob ein Produkt letztendlich über einen starken RNG verfügt?
Es gibt einige Zertifizierungen verschiedener Prüfstellen, die dabei helfen, sicherzustellen, dass das Produkt bei der Implementierung des Zufallszahlengenerators mindestens ein angemessenes Maß an Festigkeit erreicht hat. Das National Institute of Standards and Technology (NIST) bietet ein Testprogramm für den Federal Information Processing Standard (FIPS 140-2) an, das auf einige akzeptable Implementierungen von Zufallszahlengeneratoren wie ANSI X9.31 verweist (das allerdings schon seit geraumer Zeit verwendet wird). (die etwas älter werden) sowie eine Vielzahl von Optionen innerhalb des NIST SP800-90-Leitliniensatzes, die weithin als robuster gelten. Darüber hinaus gehen die Common Criteria, ein internationaler Standard für die Computersicherheitszertifizierung, oft viel tiefer in die Analyse ein, wie gut der RNG ist, als andere Akkreditierungsprogramme.
Die Verwendung eines dieser Zertifizierungsprozesse ist ein hervorragender Ausgangspunkt für die Bestimmung der Gesamtsicherheit eines Produkts und trägt dazu bei, die Verwendung eines gut implementierten RNG sicherzustellen.
Letztendlich ist die Zusammenarbeit mit einem Sicherheitsanbieter, der diese Zertifizierungsstellen engagiert hat und in der Branche einen guten Ruf genießt, ein guter Anfang. Wenn Sie immer noch Bedenken haben, fragen Sie einen Anbieter, wie zufällig seine Krypto ist, und sehen Sie, ob Sie eine beruhigende Antwort oder einen fragenden Blick erhalten – es kann Ihnen helfen, die Antwort zu finden, nach der Sie die ganze Zeit gesucht haben.