Die wichtigsten IT-Security Basics für Kryptographie

bei

 / 26. June. 2020

Kryptographie ist ein wichtiger Bestandteil der heutigen IT Welt. Sie ist essenziell, um die Schutzziele Vertraulichkeit, Integrität und Authentizität sicherzustellen. Aktuelle Kryptographie-Algorithmen gelten als mathematisch sicher. Selbst wenn sich NSA, Google und Amazon zusammenschließen, würden sie mehrere Milliarden Jahre benötigen, um Algorithmen wie AES-128 zu knacken. Wieso liest man trotzdem immer wieder von Sicherheitslücken mit Kryptographie Bezug?

Das Problem liegt meist in der Implementierung und Konfiguration. Genauer gesagt, lassen sich die häufigsten Probleme in folgende Kategorien unterteilen:

Konfiguration und Wahl der Parameter

Konfigurationsfehler oder schlechte Parameterwahl können ein Kryptosystem schwächen. Hier zwei Beispiele für symmetrische und asymmetrische Kryptosysteme:

  1. AES (Advanced Encryption Standard – symmetrische Kryptographie) hat mehrere Verschlüsselungsmodi. Einer dieser Modi ist der Electronic Code Book (ECB) Modus. ECB verschlüsselt jeden Block mit demselben Schlüssel. Dies erlaubt das Erkennen von Mustern, hier am Beispiel einer Bilddatei.

  1. Bei RSA (Rivest–Shamir–Adleman – asymmetrische Kryptographie) gibt es vielerlei Fallstricke. So sollte darauf geachtet werden, dass die Nachricht m hoch e größer als der Modulus n ist, da dieser sonst keinen Effekt hat. In diesem Falle lässt sich ein Ciphertext entschlüsseln, in dem einfach die „e“-te Wurzel genommen wird. Da e Teil des Public Keys ist, ist e in der Regel bekannt.

Verwendung schwacher kryptographischer Algorithmen

Häufig werden noch alte kryptographische Algorithmen verwendet, um kompatibel mit alten Geräten und Software zu sein. So empfehlen Mozilla und das BSI den Einsatz von TLS 1.2 und 1.3. Dennoch verwenden viele aus Gründen der Abwärtskompatibilität noch TLS 1.0 oder sogar  SSLv3. Doch selbst TLS 1.0 kann noch ein akzeptables Sicherheitsniveau und dennoch eine große Kompatibilität bieten, wenn die unsicheren Ciphersuites entfernt werden. Chiffren, die Hash-Verfahren wie MD5, SHA1 oder Kryptoalgorithmen wie DES, RC4 und AES im ECB Modus verwenden, sollten nicht genutzt werden. Auf gar keinen Fall verwendet werden dürfen sogenannte Null, Anonymous oder Export-Verfahren. Null-Verfahren sind nur zu Testzwecken da, hier findet keinerlei Verschlüsselung statt. Anonymous-Verfahren authentifizieren den Server nicht. Dies kann sich ein Angreifer zunutze machen und sich unbemerkt in die Verbindung drängen (Man-in-the-Middle) und der anderen Seiten jeweils seine Public Keys übermitteln. Er kann nun den Inhalt der Nachrichten lesen und verändern, ohne dass dies auffällt. Export-Verfahren haben drastisch begrenzte Schlüsselgrößen und können mit entsprechender Hardware in wenigen Minuten geknackt werden.

Schlechte Pseudozufallszahlen

Moderne symmetrische Kryptographie baut auf der Verschlüsselungsidee des OneTimePad auf. Da es wenig praxistauglich ist, mit dem Empfänger erst einmal Schlüsselmaterial in der Länge der Nachricht auszutauschen, werden Pseudo Random Number Generator (PRNG) verwendet. Nicht ausreichend gute Zufallszahlen können jedoch dazu führen, dass die Verschlüsselung geknackt wird, wie beim Debian OpenSSH Debakel geschehen. Selbst wenn gute Zufallszahlen auf dem System generiert werden, müssen noch entsprechende Funktionen verwendet werden. Die meisten Programmiersprachen bieten mehrere Methoden an, um Zufallszahlen zu generieren. Nur Funktionen, die auf den Entropy-Pool des Betriebssystems zugreifen, eigenen sich für Kryptographie. In Java muss beispielsweise die Funktion java.security.SecureRandom anstelle von java.util.Random verwendet werden.

Das wohl bekannteste Beispiel für nicht verwendete Zufallszahlen ist die PlayStation 3. Zum Signieren ausführbarer Dateien nutzt diese den auf Elliptischer-Kurven-Kryptographie basierenden ECDSA (Elliptic Curve Digitial Signature Algorithm). In die Berechnung der Signatur fließt eine Nonce (zufällige Zahl, welche nur einmal verwendet werden sollte), k, ein. Diese zufällige Zahl k war bei der PlayStation 3 allerdings konstant. Gelingt es einem Angreifer zwei Signaturen mit gleichem k zu erhalten, so kann er den Wert von k ermitteln. Kennt er k, kann er den privaten Schlüssel berechnen. Somit kann der Angreifer eigene Programme signieren und im Falle der PlayStation die Beschränkung zur Nutzung offizieller Software umgehen.

Unpassender Algorithmus für den Anwendungszweck

Ein weiterer Fallstrick ist die Fülle verschiedener Algorithmen die existieren und unter denen sorgfältig ausgewählt werden muss. So sollten Passwörter beispielsweise gehasht und gesaltet gespeichert werden. Es gibt Hash Algorithmen wie Argon2 oder Scrypt, die extra für das sichere Hashen von Passwörtern entwickelt worden sind. Zum Hashen größerer Datenmengen sind diese allerdings aufgrund ihrer langsamen Geschwindigkeit ungeeignet.

Aufgrund der Vielzahl an möglichen Sicherheitslücken im Bereich der Kryptographie und des potenziell großen Schadens der entstehen kann, empfiehlt es sich, einen Experten hinzuziehen, der die Anwendung der Kryptographie im Produkt untersucht.

Seitenkanalangriffe

Kann ein Angreifer physisch auf die Hardware zugreifen, in der Kryptographie-Operationen stattfinden, so kann er Seitenkanalangriffe versuchen. Bei einer Seitenkanalattacke, wird nicht der Algorithmus selbst angegriffen, sondern dessen physische Implementierung: Der Angreifer versucht aus Daten, die der Chip bei Kryptographie Operationen erzeugt, Rückschlüsse auf den verwendeten Schlüssel oder den Klartext zu erlangen. Diese Daten können die Dauer (Timing Attack), der Stromverbrauch oder die elektromagnetische Abstrahlung während der Operation sein. Es ist sogar möglich, anhand der Geräusche, die der Chip erzeugt, Rückschlüsse zu ziehen. Folgende Bilddatei zeigt den Stromverbrauch bei einer Potenzrechnung.

Um diese möglichst schnell zu berechnen, wird häufig die binäre Exponentation angewandt. Hierbei wird der Exponent in Einsen und Nullen zerlegt und dann schrittweise durchgegangen. In diesem Bild ist der Exponent 11000 also 24 im Dezimalsystem. Für jede 1 wird quadriert und multipliziert. Bei einer 0 hingegen nur multipliziert. Dies benötigt unterschiedlich viel Strom bzw. dauert unterschiedlich lange. Mit geübtem Auge lässt sich somit anhand der Stromverbrauchsanalyse der Exponent ableiten. Exponenten spielen beispielsweise bei RSA eine große Rolle. Textbook RSA verschlüsselt eine Nachricht m wie folgt: c = me mod n. Die Entschlüsselung geschieht durch m = cd mod n. Durch die Analyse kann ein Angreifer e oder d herausfinden. Kann er eine Stromanalyse beim Entschlüsseln durchführen, so gelangt er in Besitz des Private Key d und kann die Nachricht entschlüsseln.

Noch effektiver ist die Differential Power Analysis. Diese beruht darauf, dass das Verarbeiten von Zahlen unterschiedlich viel Strom verbraucht. Je mehr Einsen enthalten sind, desto höher der Stromverbrauch. Dieser Effekt ist allerdings so minimal, dass die Schwankungen es unmöglich machen, dies zu erkennen. Führt man die Messung allerdings mehrere 100 Male aus, so kann man die Schwankungen herausrechnen. Damit ist es Beispielweise möglich, den 16 Byte Schlüssel von AES zurückzurechnen.

Die vorgestellten Seitenkanalangriffe lassen sich relativ leicht durch zufällige Dummy Operation massiv erschweren. Es gibt auch eine Reihe an Seitenkanalangriffe, welche auf Fehlerinduzierung beruhen, sowie Mitigationen dagegen.

Fazit

Trotz sicherer Kryptosysteme kommt es aufgrund vielerlei Dinge die beachtet werden sollten, doch häufig bei Entwicklern unbekannt sind, zu Fehlern. Auf keinen Fall sollten Entwickler allerdings resignieren und eigene Kryptographie Systeme entwickeln, da die Erfahrung zeigt, dass diese häufig noch Fehler anfälliger sind. Es müssen aktuelle, sichere  Kryptoalgorithmen verwendet und nach Best-Practice Richtlinien implementiert werden. Soll auf Nummer sicher gegangen werden, ist es ratsam dies später von externen Penetrationstestern und Kryptographen testen zu lassen.

 

Wilfried Kirsch ist seit 2016 als Berater im Bereich IT-Security bei der softScheck GmbH tätig. Seine beruflichen Schwerpunkte umfassen IT-Security Audits von Netzwerken, Soft- und Hardware Produkten

Prof. Dr. Hartmut Pohl ist als geschäftsführender Gesellschafter der IT-Sicherheitsberatung zuständig für taktische und strategische Sicherheitsberatung u.a. basierend auf BSI-Grundschutz, ISO 27000-Familie, COBIT, NIST SP 800, ITIL etc. inkl. Forensik