Zufallsgeneratoren_IBB - IBB Ingenieurbüro Bergmann

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