Minimales Chiffriersystem

Autor: Dipl. Ing. Frank Gerlach(frankgerlach.tai@gmx.de)

Version: 2.9

Sichere Informatik aus Deutschland

1. Das Problem

Radarsatellit SAR-Lupe der Bundeswehr. Quelle: OHB Umspannwerk eines Stromversorgers Wasserwerk

Satelliten, Server im Rechenzentrum, Firewalls, industrielle Steuerungssysteme (Wasserversorgung, Umspannwerke, Kläranlagen usw), Sensoren und deren Steuerrechner müssen aus der Ferne kontrolliert und bedient werden. Auch das Remote Desktop-Protokoll und X11 zählen zu diesen Anwendungen. Es ist offensichtlich, dass solche Befehls-Schnittstellen gegen unbefugten bzw. feindlichen Zugriff geschützt werden müssen. Allerlei private und staatliche kybernetische Akteure ("Hacker", Cyber-Soldaten) müssen abgewehrt werden. Glücklicherweise ist es jedoch nicht notwendig, potenziell feindliche Datensätze auf der Anwendungsebene zu verarbeiten. Damit kann das Sicherheitsproblem vollständig auf ein chiffriertechnisches Problem reduziert werden. Die Chiffriertechnik wiederum sollte minimalistisch und damit mathematisch als korrekt beweisbar gestaltet sein.

2. Die Chiffriertechnik

Libelle Feistel-Chiffre Funktionsprinzip Substitutions-Permutations-Chiffre (SPN)

Als chiffriertechnische Grundlage wird typischerweise eine Blockchiffre wie AES, 3DES, LIBELLE o.ä. eingesetzt. Diese sind sehr gut erforscht und somit als sicher anzusprechen. Grundsätzlich sind jedoch auch starke Stromchiffren denkbar. In Folgenden wird die Blockchiffre AES-256(32 Oktets Schlüssel) angenommen.

SchluesselText = AES(Symmetrischer_Schlüssel, Klartext)

Mit Hilfe des Davies-Meyer-Ansatzes wird aus der Blockchiffre auch noch eine starke Prüfsumme/Hash Message Authentication Code(HMAC) konstruiert, welcher die Integrität des Klartextes sichert.

DAVIES_MEYER[i] = AES(Klartext[i],DAVIES_MEYER[i-1])

DAVIES_MEYER[-1] = 0

GesicherterKlartext = Klartext DAVIES_MEYER(Klartext)

Neben der Vertraulichkeit und Integrität/Authentizität gilt es noch zwei weitere Eigenschaften des Chiffrierverfahrens darzustellen: Schutz gegen Abspielangriffe(Replay Attack) und Unterschiedliche Chiffrierung identischer Klartexte. Dies kann sehr leicht durch Sitzungsschlüssel und AES im Zählerbetrieb gewährleistet werden. Dabei wird für jede Fernmelde-Sitzung ein neuer, (pseudo-)zufallsbestimmter Sitzungsschlüssel erzeugt und mittels symmetrischer Chiffrierung sicher ausgetauscht.

   Sitzungs_Schlüssel_verschlüsselt = AES(Symmetrischer_Schlüssel,zufall_32_oktet)

   zufall_32_oktet kommt z.B. aus /dev/random oder aus einem abgespeicherten Zähler:

         zufall_32_oktet = AES(GeräteSchlüssel,persistenterZaehler++)

	 GeräteSchlüssel kommt aus physikalischem Zufall und wird z.B. mit JTAG 
	 oder RS232 in den Flash-Speicher geladen. Der persistente Zähler muss unmittelbar
	 inkrementiert und wieder gespeichert werden. Die physikalisch bedingte maximale Zahl 
	 von Flashvorgängen je Flash-Page ist dabei zu beachten.

   Dieser Schlüssel wird von jeweiligen Gegenseite erzeugt. 

   AES_ZAEHLER[i] = AES(Sitzungs_Schlüssel,i)

   SCHLUESSELTEXT[i] = GesicherterKlartext[i] XOR AES_ZAEHLER[i]

   BEFEHLS_TELEGRAMM = Sitzungs_Schlüssel_verschlüsselt SCHLUESSELTEXT

Für die genannten Anwendungen ist in der Regel ein asymmetrischer Schlüsseltausch(Public Key, RSA o.ä.) nicht erforderlich und würde nur eine unnötige Komplexität (=Angriffsfläche) erzeugen. Public Key verdoppelt zudem die mathematische Angriffsfläche. Sollte doch ein automatische Erzeugung von Sitzungsschlüsseln nötig sein, wird stattdessen KVZ(Kryptomittel-Verteiler-Zentrale) empfohlen.

Das beschrieben Verfahren lässt sich in weniger als 2000 Zeilen C++ realisieren und ist somit durch einen erfahrenen Informatiker/Chiffrier-Mathematiker überprüfbar. Schlimme Sicherheitsvorfälle wie bei Heartbleed(SSL) sind somit auszuschließen.

2.2 Realisierung der Minimalen Chiffriertechnik

Die folgende Realisierung unterscheidet sich im technischen Ansatz leicht vom oben beschriebenen Verfahren, hat aber dieselben Sicherheitseigenschaften: Minimal Secure Transport

3. Die Anwendungsebene

Das oben beschrieben Chffrierverfahren stellt sicher, dass nur der Besitzer des symmetrischen Schlüssels gültige Datenpakete an die Anwendungsebene schicken kann. Auch ein Abspielangriff (Replay Attack) wird vom Chiffrierverfahren abgewehrt. Damit kann die Anwendungsebene auch gefahrlos Sicherheitslücken wie Pufferüberläufe, Use-After-Free, SQL Injektionsschwächen, ungenaue Scanner und Parser, Logikfehler usw. enthalten.

Der legitime Bediener/Operateur hat kein Interesse an der Störung/Zerstörung des Systems und wird diese Sicherheitslücken nicht ausnutzen. Zudem kann der Bediener/Systemadministrator/Maschinenführer/Satellitenführer auch ohne Sicherheitslücken gefährliche Befehle ("rm -rf /" oder "volle Kraft Steuerdüse bis Treibstoff erschöpft" ) ausführen. Das Vertrauen in den Bediener ist somit "vollständig".

Folglich reduziert sich also das Sicherheitsproblem auf die minimale Chiffrierbibliothek von weniger als 2000 Zeilen C++. Diese muss genau einmal geprüft werden und kann danach in tausenden verschiedenen Systemen und Millionen Installationen genutzt werden. Aus volkswirtschaftlicher und praktischer Sicht ist dies sehr effizient.

4. Behörden und Institutionen

Es ist naheligend, dass die genannte Chiffriertechnik von fachkundigen Behörden und Institutionen geprüft werden. Folgende Behörden und Institutionen kommen dabei in Betracht:

  • Deutschland: Bundesamt für Sicherheit in der Informationstechnik/BSI
  • Großbritannien: Communications Electronics Security Group/CESG
  • USA: National Security Agency/NSA
  • Frankreich: Agence Nationale de la Sécurité des Systèmes d'Information/ANSSI
  • IETF Crypto Forum Research Group
  • 5. Stichworte und Sätze für Suchmaschinen

    "praktische Absicherung von Fernwirksystemen"
    
    "industrial control systems"
    
    "SCADA systems"
    
    "securing scada systems"
    
    "encryption of command links"
    
    "Mathematic validation of cryptosystem"
    
    "Mathematischer Korrektheitsbeweis eines Chiffriersystems"
    
    "Speicherprogrammierbare Steuerung"
    

    6. Vergleich mit vorhandenen Systemen

    System Mängel
    OpenSSL und alle anderen SSL-Bibliotheken
  • 400 000 Zeilen Quellcode
  • vielfache und lange Geschichte von Sicherheitslücken wie HEARTBLEED
  • schwer bis gar nicht überprüfbar.
  • mathematischer Korrektheitsbeweis vermutlich unmöglich.
  • doppelt so große mathematische Angriffsfläche wie MST+KVZ.
  • OpenSSH
  • etwa 140 000 Zeilen Quellcode; somit wesentlich komplexer in der Prüfung als MST+KVZ.
  • mathematischer Korrektheitsbeweis vermutlich unmöglich.
  • doppelt so große mathematische Angriffsfläche wie MST+KVZ.
  • OpenVPN
  • etwa 1 000 000 Zeilen Quellcode, somit wesentlich komplexer in der Prüfung.
  • mathematischer Korrektheitsbeweis vermutlich unmöglich.
  • doppelt so große mathematische Angriffsfläche wie MST+KVZ.
  • Windows Remote Desktop Protocol Vielfache ausnutzbare Sicherheitslücken auch ohne gültiges Login in der Vergangenheit.
    Kommerzielle Firewalls von CISCO, Palo Alto Networks und anderen Herstellern Vielfache ausnutzbare Sicherheitslücken, weil umfangreiche Applikationsebenen oberhalb SSL/TLS auch ohne gültigem Login als Angriffsfläche zugänglich waren.
    Kommerzielle Virtual Private Networks Vielfache ausnutzbare Sicherheitslücken, auch ohne gültigem Login. Unnötig große Angriffsfläche.

    7. Sicherheit gegen Quantenrechner-Entzifferung

    Starke symmetrische Chiffren mit 32 Oktet oder mehr Schlüsselraum sind nach den heutigen Erkenntnissen nicht von Quantenrechner-Kryptanalyse betroffen. MST und KVZ nutzen nur eine einzige symmetrische Chiffre und sind somit Quantenrechner-sicher.

    8. Zusammenfassung

    Sichere Fernwirkverbindungen sind kein Hexenwerk. Über das öffentliche Internet, über ISDN, X.25, ATM, Kurzwelle, Richtfunk oder Satellitenfunk können diese betrieben werden. Grundlage dafür ist eine sehr kompakte Chiffrierbibliothek, deren Korrektheit mittels mathematischem Beweis dargestellt wird. Alle anderen Ansätze wie z.B. auf OpenSSL basierende VPNs sind nur eine Problemverschiebung und keine Lösung. Auch die Nutzung von vermeintlich sicheren "dedizierten Leitungen" gaukelt nur Sicherheit vor, die nicht wirklich existiert. Ende-zu-Ende Verschlüsselung ist die Lösung des Fernwirkproblems.

    8.2 Bedeutung für die Sicherheit von Rechnernetzen

    Firewalls, Router, Switches(insbesondere virtuelle LANs) sind von entscheidender Bedeutung für die Abschirmung von Rechnern im Rechenzentrum, in Produktionsanlagen, Führungssystemen und an den Arbeitsplätzen der Mitarbeiter.

    Zudem ist bei der Netz-Überwachung und Investigation von Sicherheitsvorfällen das Vertrauen in Firewalls, Router und Switches von größter Bedeutung für die EDV-Sicherheit. Administratoren und EDV-Sicherheitsleute müssen sich bei der Aufklärung feindlicher Netzverkehre auf diese Netzelemente verlassen können.

    Daraus folgt, dass die genannten Netzelemente hochsichere Management-Schnittstellen brauchen. Die Absicherung dieser Schnittstellen sollte ebenfalls durch eine minimale Chiffre erfolgen.

    8.3 Volkswirtschaftliche und Staatliche Bedeutung

    Die Absicherung von Fernwirksystemen und von Rechnernetzen gegen kybernetischen Angriff ist offensichtlich von großer volkswirtschaftlicher und staatlicher Bedeutung. Die bislang verwendeten Chiffren sind unnötig umfangreich und hatten deshalb in der Vergangenheit schwere Sicherheitslücken.

    Der einmalige Korrektheitsbeweis für weniger als 2000 Zeilen C++ Programmcode ist vernachlässigbar im Vergleich zu den möglichen Schäden durch kybernetische Schadwirkung auf die Volkswirtschaft.

    Kontakt

    Datenschutz