Kryptografische Verfahren benötigen prinzipiell zwei Komponenten: den (meist) veröffentlichten Verschlüsselungsalgorithmus und den geheimen Schlüssel. In IT-Sicherheitsapplikationen werden die geheimen Schlüssel mittels Zufallsgeneratoren erzeugt. Diese Schlüssel dürfen unter keinen Umständen vorhersagbar oder rekonstruierbar sein. Schwächen oder Manipulationen verwendeter Zufallsgeneratoren, vor allem in professionellen IT-Sicherheitsapplikationen, sind in Publikationen vielfältig illustriert. In Deutschland hat die Regulierungsbehörde für IT-Sicherheit (Bundesnetzagentur BNetzA) verbindliche Vorgaben über die Verwendung von Zufallsgeneratoren der Funktionalitätsklassen PTG.3 und DRG.4 in ITSicherheitsapplikationen festgelegt. Im Folgenden werden hybride Zufallsgeneratoren der Klasse PTG.3 des Autors vorgestellt, die als einzige, der auf dem kommerziellen Markt verfügbaren Zufallsgeneratoren, diese Anforderungen erfüllen. IBB Ing.-Büro Bergmann www.ibbergmann.org 1 Schlagzeilen zu Zufallsgeneratoren in professionellen Applikationen • • • • • • • • • • • • RSA Security warnt vor NSA-Zufallsgenerator NIST rät von Dual_EC_DRBG wegen möglicher NSA-Backdoor ab NetBSD erzeugt schwache Schlüssel Mathematiker entlarvt schwache DKIM-Schlüssel MIPS-Router mit Entropieproblemen OpenSSL erzeugt zu oft den gleichen Zufall Apache-Tool erzeugt Passwort-Hashes mit vorhersagbaren Salts Misstrauen bei RNGs von Intel und VIA NSA-Affäre: Generatoren für Zufallszahlen unter der Lupe fork-libressl hat Zufallsprobleme unter linux Windows Verschlüsselung offen für US-Geheimdienst und weitere 70 Meldungen im Kontext… IBB Ing.-Büro Bergmann www.ibbergmann.org 2 In Deutschland hat die Regulierungsbehörde für IT-Sicherheit (Bundesnetzagentur BNetzA) folgende Verbindlichkeiten im „Algorithmenkatalog 2014“ festgelegt: „Für Zertifizierungsdienstanbieter wird die Verwendung von Zufallsgeneratoren der Funktionalitätsklassen PTG.3 und DRG.4 im Grundsatz ab 2015 verpflichtend werden, sowohl allgemein bei der Erzeugung von Langzeitschlüsseln als auch bei der Erzeugung von Ephemeralschlüsseln.“ Bemerkungen: • Hybride Zufallszahlengeneratoren vereinen Sicherheitseigenschaften von deterministischen und physikalischen Zufallszahlengeneratoren. • Hybride physikalische Zufallszahlengeneratoren der Klasse PTG.3 besitzen neben einer starken Rauschquelle eine starke kryptographische Nachbearbeitung mit Gedächtnis. • PTG.3 stellt die stärkste Funktionalitätsklasse dar. Alle aktuellen Lösungen des IBB entsprechen den Definitionen der Klasse PTG.3 im Kontext mit den AIS31-Anforderungen. IBB Ing.-Büro Bergmann www.ibbergmann.org 3 Grundlage der im Folgenden vorgestellten Lösungen zur Klasse PTG.3 ist ein stochastisches Modell, mit dem die Leistungsfähigkeit zur Generierung kryptografisch sicherer Zufallszahlen begründet wird. Dieses Modell erklärt: • die robuste und hohe Entropie der Rauschquelle • das Prinzip der Abtastung des analogen Rauschsignals • die permanente Überwachung der Rauschquelle durch Frequenzmessung • die kryptografische Nachbearbeitung durch Mayer-Einwegfunktionen (Schema) • den permanenten statistischen Online-Test der Zufallsrohdaten Durch die Firma IBB wurde eine patentierte (EU-Patent EP 150 98 38), stabile und reproduzierbare Lösung für die Generierung von echtem Zufall auf Basis physikalischer Rauschquellen mit hoher und stabiler Entropie (>7,997 Bit/Byte) entwickelt. Keine der weltweit bekannten reproduzierbaren, kommerziellen Applikationen erreicht diesen Wert. Die Lösung der Firma IBB besteht damit erstmalig die vom BSI vorgegebenen AIS31-Normen. IBB Ing.-Büro Bergmann www.ibbergmann.org 4 Zufallsgeneratoren der Klassen PTG.2 (physikalischer Zufall) und PTG.3 (physikalischer Zufall mit kryptografischer Nachbearbeitung) PRG310-4 (USB-Stick) PRG320-4 (USB-Stick) PRG310-51 (USB intern) PRG320-51 (USB intern) PRG260 (Raspberry Pi, UART) PRG310-52 (USB intern) PRG320-52 (USB intern) PRG600 (Modul, sync. Interface) IBB Ing.-Büro Bergmann www.ibbergmann.org 5 Ursachen des verwendeten Halbleiterrauschens Unter Rauschen versteht die Physik allgemein eine Störgröße mit breitem unspezifischem Frequenzspektrum. Es kann daher als eine Überlagerung vieler harmonischer Schwingungen oder Wellen mit unterschiedlicher Amplitude und Frequenz beziehungsweise Wellenlänge interpretiert werden. Rauschen wurde als physikalisches Phänomen, nämlich als messbare unregelmäßige Stromschwankungen, erstmals 1918 durch Walter Schottky beschrieben. Der Strom durch einen in Sperrrichtung gepolten Halbleiter ist durch den Diffusionsstrom von Minoritätsladungsträgern am Rand der Raumladungszone und durch den Generationsstrom aus der Raumladungszone bestimmt. In beiden Fällen erzeugt die Drift der Ladungsträger in der Raumladungszone eine Kette von näherungsweise unabhängigen Strompulsen, deren Mittelwert den Gleichstrom und deren Schwankungen Rauschen bewirkt. Das mit der Diffusion von Ladungsträgern in die Raumladungszone (pn-Übergang) hinein verknüpfte Rauschen sei mit “Diffusions-Rauschen“, das mit der Generation von Ladungsträgern in der Raumladungszone verknüpfte Rauschen als “Generations-Rauschen“ bezeichnet. IBB Ing.-Büro Bergmann www.ibbergmann.org 6 Prinzipschaltung und Messsignale (PRG260, PRG310, PRG320) Rauschquelle Verstärkung IBB Ing.-Büro Bergmann www.ibbergmann.org Digitalisierung 7 Rauschsignal verwendeter Halbleiter für den PRG600(610) Oszillograph FFT Mittlere Frequenz ca. 2MHz Signalamplitude >600mV keine Artefakte messbar IBB Ing.-Büro Bergmann www.ibbergmann.org 8 PRG600/610: physikalischer Zufall und kryptografische Nachbearbeitung Prinzip stochastisches Modell: IBB Ing.-Büro Bergmann www.ibbergmann.org 9 Entropie Auf Grund der sehr hohen Entropie der robusten Rauschquellen von >7,997 Bit/Byte wurden Funktionen verschiedener Applikationen für die Klassen PTG.2 und/oder PTG.3 entwickelt. Kein bekannter kommerzieller Zufallsgenerator weltweit erreicht die hohen Entropiewerte der IBB-Applikationen. Die HalbleiterBauelemente sind Standardtypen und müssen nicht ausgemessen werden. Folgende Tabellen zeigen reproduzierbare Entropiewerte verschiedener Applikationen: PRG310/320 PRG600 IBB Ing.-Büro Bergmann www.ibbergmann.org 10 Kryptografische Nachbearbeitung (PTG.3) Die kryptografische Nachbereitung der IBBApplikationen nach PTG.3 nutzt zwei Prinzipien des Entropiesammelns: das Aufxorieren der Rohdaten für z1 und die Glättung durch Aufxorieren des mit zufälligem Schlüssel verschlüsselten Zustands für z2. Beide Komponenten nutzen die Mayer-Einwegfunktion AES(k,s) xor k um den vorangegangenen inneren Zustand zu schützen. Durch die XOR-Summe der Zwischenwerte kann nicht auf den inneren Zustand geschlossen werden. Dadurch werden auch bei einem kurzzeitigen Ausfall oder Manipulation der Rauschquellen statistisch gleichverteilte Zufallsdaten ausgegeben. IBB Ing.-Büro Bergmann www.ibbergmann.org 16 Byte 16 Byte 11 Kontrollsystem Tot-Test: Es ist ein Kontrollsystem installiert, welches das digitalisierte Rauschsignal am Eingangs-Pin des Mikrocontrollers überwacht. Unmittelbar vor jeder Byte-Generierung und vor jeder Ausgabe durch die verschiedenen Funktionen der Zufallsgenerierung wird eine Routine aufgerufen, die folgende Aufgabe hat: • Es wird die Zeit ermittelt die erforderlich ist, um vier wechselnde Flanken des digitalisierten Rauschsignals zu erfassen • Wird nach 16µs (= 125 KHz) diese Bedingung nicht erfüllt, wird eine Fehlermeldung generiert, die zur sofortigen Einstellung aller Zufallsausgaben führt • Dieser Zustand ist nur durch einen „Intensiven Selbsttest“ oder PON aufzulösen , bzw. wird solange weitergetestet, bis der Test fehlerfrei ist (PRG320, PRG600) • Typische Zeiten um die Bedingung zu erfüllen sind 4..6µs Tot-Test Abtastung (8x) des digitalisierten Rauschsignals IBB Ing.-Büro Bergmann www.ibbergmann.org Kontrollsystem Online-Test: Im permanenten Halbbytetest (zyklisch jede Sekunde) zur Kontrolle der statistischen Qualität der Zufallsrohdaten werden 512 Halbbytes aus Zufallsrohdaten generiert und statistisch bewertet: • Sind die Werte innerhalb der statistischen Vorgaben, wird kein Fehler generiert • Sind die Werte außerhalb der statistischen Vorgaben, aber noch innerhalb von weitestgehend gleichverteilten Zufallsdaten, wird ein Fehlerzähler inkrementiert und beide Leuchtdioden blinken im Sekundentakt • Ist einer der 16 Werte im Halbbytetest gleich Null, wird von einem Totalausfall mindestens einer Rauschquelle ausgegangen und jede Zufallsausgabe blockiert. Dieser Zustand kann nur durch PON oder Aufruf des intensiven Selbsttest mit positivem Ergebnis beendet werden. • Alternativ wird beim PRG320 und PRG600 solange weitergetestet, bist alle Parameter wieder im vorgegebenen Bereich sind Der permanente Online-Test dauert 7,12ms (links) Im Abstand von 1 Sekunde (rechts) IBB Ing.-Büro Bergmann www.ibbergmann.org 13 Sicherheitsfunktionen (stochastisches Modell) • Permanenter Online-Test pro Sekunde Erkennung Ausfall der Rauschquelle (< 1 Sekunde) • Tot-Test: permanente Überwachung der Rauschquelle Erkennung Ausfall der Rauschquelle IBB Ing.-Büro Bergmann www.ibbergmann.org 14 Statistische Analysen Für die die Bewertung der Zufallsdaten wurde eine Vielzahl von statistischen Untersuchungen durchgeführt. Dabei wurden folgende Schwerpunkte gesetzt: • • Generierung von Rohdaten und statistische Untersuchung nach Kriterien der AIS31-Dokumente und weiterer Analysen der Zufallsrohdaten Generierung von Zufallsdaten mit digitaler Nachbearbeitung XOR3 (PTG.2) und Untersuchung mit folgenden Testprogrammen – NIST-Testsuite – Diehard-Test – Eigener statistischer Basistest • Generierung von Zufallsdaten und digitaler Nachbearbeitung mit AES128Algorithmus (PTG.3) und Untersuchung mit folgenden Testprogrammen – NIST-Testsuite – Diehard-Test – Eigener statistischer Basistest IBB Ing.-Büro Bergmann www.ibbergmann.org 15 Statistische Analysen Weiterhin wurden Zufallsdaten (jeweils 10MByte) ohne und mit digitaler Nachbearbeitung unter verschiedenen Umgebungstemperaturen erzeugt und analysiert. In einer Klimakammer wurden Applikationen mit der beschriebenen Hardware mit ausgewählten Temperaturen von –60°C bis +110°C untersucht. Zusammenfassend wurde festgestellt: • • • Keine Applikation hatte einen Funktionsausfall Alle Zufallsrohdaten bestanden die Tests nach AIS31-Anforderungen Alle Zufallsdaten mit Nachbearbeitung bestanden die relevanten Tests Verschiedene Applikationen wurden auch in problematischer Umgebung auf Zuverlässigkeit und statistische Eigenschaften getestet: • stromversorgt auf einem hoch getakteten Mainboard • unmittelbar in einem starken elektromagnetischen Feld (belastetes 600WSchaltnetzteil) IBB Ing.-Büro Bergmann www.ibbergmann.org 16 Zusammenfassung aktueller PRG-Applikationen PRG310-4 PRG320-4 PRG600 PRG610 PRG260 X - - X X Klasse PTG.2 X [1] - - X [2] X [1] Klasse PTG.3 X X X X X Permanenter Online-Test X X X X X Überwachung Rauschen X X X X X Kommando-Interface Ja Nein Nein Ja Ja USB 921Kbit/s USB 921Kbit/s Synchron UART 115Kbit/s UART 115Kbit/s 330 Kbit/s 330 Kbit/s 40/4 Kbit/s 115Kbit/s 115Kbit/s Versorgungsspannung 5V 5V 3,3V 3,3V 5V Max. Stromaufnahme 30mA 30mA 4mA/15µA 7mA 30mA 70x23x9 70x23x9 10x10x2 22x13x12 45x19x10 60 € 39 € 20 € 20 € 49 € Zufallsrohdaten Interface Max. Datenrate Abmessungen über alles Einzelpreis netto [1] wählbar XOR2, XOR3, vonNeumann, Rohdaten [2] nur Rohdaten IBB Ing.-Büro Bergmann www.ibbergmann.org 17 Literatur • • • • • • • • • Common Criteria for Information Technology Security Evaluation, Part 1: Introduction and General Model; CCMB-2012-09-001, Version 3.1, Revision 4, September 2012 Common Criteria for Information Technology Security Evaluation, Part 2: Security Functional Components; CCMB-2012-09-002, Version 3.1, Revision 4, September 2012 Common Criteria for Information Technology Security Evaluation, Part 3: Security Assurance Requirements; CCMB-2012-09-003, Version 3.1, Revision 4, September 2012 Common Methodology for Information Technology Security Evaluation, Evaluation Methodology; CCMB-2012-09-004, Version 3.1, Revision 4, September 2012 AIS20: Functionality classes and evaluation methodology for deterministic random number generators, Version 2.1, 02.12.2011, Bundesamt für Sicherheit in der Informationstechnik AIS31: Functionality classes and evaluation methodology for true (physical) random number generators, Version 2.1, 02.12.2011, Bundesamt für Sicherheit in der Informationstechnik Killmann, W. Schindler, „A proposal for: Functionality classes for random number generators“, Version 2.0, September 18, 2011 Evaluation of random number generators, Version 0.8, Bundesamt für Sicherheit in der Informationstechnik www.bundesnetzagentur.de: 2016Algorithmenkatalog.pdf IBB Ing.-Büro Bergmann www.ibbergmann.org 18
© Copyright 2024 ExpyDoc