Secret 3G Chip

Viele modernere 64-Bit Prozessoren verfügen über einen 3G-Funkchip, der die Fernwartung ermöglicht. Der 3G-Funkchip ist in das Chip-Layout des eigentichen Prozessors eingebettet und läßt sich auch im ausgeschalteten Zustend des Computers aktivieren. Das Aktivieren des 3G-Funkchips läuft auf der BIOS-Ebene des Computers ab und ist dadurch unabhängig vom installierten Betriebssystem, oder unabhängig, ob überhaupt ein Betriebssytem installiert ist. Der 3G-Funkchip hat ein eigenes kleines persistentes auf dem Chip untergebrachtes Betriebsystem. Über den 3G-Funkchip wird die Fernwartung durch externe Administratoren auch im ausgeschalteten Zustand möglich. Der externe Administrator hat dadurch den vollen Zugriff auf alle Hardware-Komponenten des Computers. Die Aktivitäten eines aktivierten 3G-Funkchips lassen sich nicht protokollieren, da sie auf der BIOS-Ebene, und damit außerhalb des Betriebssystems ablaufen. Es gibt zahlreiche Veröffentlichungen im Internet, aus denen hervorgeht, dass der 3G-Funkchip geheime Funktionen besitzt (Secret 3G-Chip).


Special Boards für Experten

Es gibt etliche Boards, bzw. Board-Machines die in der Lage sind, unterschiedliche Chiffre-Methoden bzw. Techniken wie

zu brechen. Die Boards basieren meist auf FPGAs, ASICs oder GPUs. Die Leistungsfähigkeit der Boards, bzw. Board-Maschines wie CAESAR, COPACOBANA, etc. wird auf vielen Seiten des Internets beschrieben. Man kann sich leicht vorstellen, dass die noch leistungsfähigeren Boards bzw. Board-Machines, die, über die man im Internet nichts liest, um etliche Größenordnung schneller sind. Erreicht wird das auch durch Verwendung von Spezial-CPUs auf den Boards, die ganze Verarbeitungsschritte von Verschüsselungsalgorithmen, wie SubBytes-Ops, ShiftRows-Ops, etc. in wenigen Taktzyklen auf Matrix-Registern ausführen.


Chip AES

Moderne CPUs bieten häufig hardware-imlementiert die AES-Verschlüsselung (Advanced Encryption Standard) an. Während es bisher notwendig war, Kryptographie-Software vollständig in einer Programmiersprache, wie C, C++, Ada, etc. zu programmieren, ist es auf modernen CPUs moglich, den algorithmischen Teil der Verschlüsselung direkt auf der CPU auszuführen. Moderne CPUs besitzen hierfür zusätzliche Befehle für die AES-Verschlüsselung zusätzlich zum Standardbefehlssatz die die Berechnung bzw. Verschlüsselung direkt auf der CPU bewerkstelligen. Das bedeutet, dass die Verschlüsselung mit Codes und Daten des CPU-Herstellers, implementiert auf der CPU, ablaufen.

Das symetrische Verschüsselungsverfahren AES mit mit 128 Bits, 192 Bits und 256 Bit Schlüssellänge gilt als recht sicher.

Die CPUs werden meist in Ländern produziert mit sehr restriktiven Exportbestimmungen. Für symetrische Verschlüsselungsvefahren mit einer Schlüssellänge von über 56 Bits ist in der Regel für den Export eine Genehmigung notwendig. Falls eine Genehmigung erteilt wird, sind häufig Erklärungen, wie Endverbleibserklärung, zu unterzeichnen.

Einerseits gibt es die sehr restriktiven Exportbestimmungen für Kryptographie- bzw. Verschlüsselungsverfahren, andererseits kann jeder einen PC kaufen, ohne dass er gefragt wird, was er damit macht, oder ob er den PC weiterverkauft nach .., oder an den Neffen in .. verschenkt. Wie das Ganze zusammen passt, wird mir nicht ganz klar.


Chiper Modes

Die Sicherheit einer Verschlüsselung wird durch das verwendete Verschlüsselungsverfahren bzw. die verwendeten Algorithmen bestimmt. Für die Sicherheit einer Verschlüsselung sind aber auch der verwendete, oder die verwendeten Betriebsmodi verantwortlich. Ein sicheres Versclüsselungsverfahren kann durch einen ungeeigneten Betriebsmodus komprementiert werden. Häufig verwendete Betriebsmodi sind:

Wesentlich ist, dass für ein sicheres Versclüsselungsverfahren auch ein sicherer Betriebsmodus gewählt wird.


Zufallszahlen Standard DUAL_EC_DRBG

Zufallszahlen werden für unterschiedliche Verschlüsselungsverfahren benötigt. Der Zufallszahlenstandard DUAL_EC_DRBG des National Institute of Standards and Technology (NIST) hat, so vermuteten es die Forscher Niels Ferguson und Dan Shumow auf der Konferenz CRYTO 2007 eine Backdoor, welche gezielt eingebracht wurde.


https-Protokol

Vertrauliche Internet-Verbindungen werden über das https-Protokol aufgebaut. Viele Server nutzen für https-Verbindungen RSA.Verschlüsselung mit einer Schlüssellänge von 1024 Bits. Es gibt zahlreiche Veröffentlichungen im Internet, dass RSA mit einer 1024 Bit Schlüssellänge von "Experten" entschlüsselt wird.


Passwortverkürzung

Es besteht die Möglichkeit starke Algorithmen durch Passwortverkürzung zu schwächen. Eine sehr einfache Passwortverkürzung könnte bespielweise so aussehen:


Mein Passwort:
ASDFGHJKLyxcvbnm1234

Bei einem 8-Bit Zeichensatz hat das vom Benutzer eingegebene Passwort 20 * 8 Bit, also 160 Bits. Teilt man das Passwort in fünf Teil-Strings zu vier Bytes auf, und benutzt man nur den ersten Teil-String (4 Bytes bzw. 32 Bits) und nimmt von den folgenden vier Teil-Strings nur die Quersumme eines oder mehrerer Teil-Strings, dann würde das substituierte Passwort folgende effektive Länge haben:

ASDF -> 32 Bits,
GHJK -> ASCII 71 + 72 + 74 + 75 = SUMME_ASCII 292 (0..1023, 10 weitere Bits)
Lyxcvbnm1234 -> ASCII 76+121+120+99+118+98+110+109+49+50+51+52 = SUMME_ASCII 1053 (0..3071, 12 weitere Bits)
die effektive Passwortlänge ist dann 54 Bits

In den aller meisten Fällen führt die Änderung des Passworts an einer beliebigen Stelle bei gleichen Klartext zu einem anderen Geheimtext. Eine 54 Bit-Verschlüsselung ist nicht sicher. Ob in einer Krypto-Software die volle Passwortlänge genutzt wird, oder ob eine Passwortkürzung vor der Verschlüsselung stattfindet, läßt sich für den Endanwender in der Regel nicht Verifizieren.


Zufallszahlengenerator RDRAND

Zufallszahlen werden für unterschiedliche Verschlüsselungsverfahren benötigt. Der Zufallszahlengenerator RDRAND ist ein Chip-basierter Zufallszahlengenerator der in vielen Computern verbaut wurde und verbaut wird. Die Zuverlässigkeit von Chip-basierten Lösungen läßt sich durch den Endanwender nicht verifizieren.


RSA akustische Kryptoanalyse

RSA ermöglicht eine Kryptoanalyse durch Auswertung der akustischen Emmisionen eines Computers im hörbaren Bereich und Ultraschallbereich. Detailierte Informationen finden sich im Bericht:

Daniel Genkin, Adi Shamir und Eran Tromer, "RSA Key.Extraction via Low-Bandwidth Acoustic Cryptoanalysis", 18. Dezember 2013


RSA Software/Hardware Kryptoanalyse

RSA wird unter anderm zum Aufbau von https-Verbindungen benutzt. Es gibt im Internet sehr viele Veröffentlichung, dass 1024-Bit-RSA von Experten teilweise nahezu in Echtzeit auch im Massendatenbetrieb entschlüsselt werden kann. Für 2048-Bit-RSA bewirken die sensiblen RSA-Parameter bei falscher Handhabung oft eine erhebliche Schwächung. Zum Entschlüsseln von RSA werden sowohl Hardware-Boards, wie Softwarelösungen eingesetzt. Im Internet finden sich sehr viele Berichte zu dieser Thematik.


Software Blackbox

Moderne Betriebssysteme speichern Daten und Programme auf am Computer angeschlossene Device-Einheiten, wie Festplatten, SD-Cars, USB-Sticks, etc.. Das Betriebssystem des Computers (jeweiliges Operating-System + BIOS) besteht hauptsächlich aus ausführbaren Programmen und Libraries. Ausführbare Programme laufen nach dem Start mit bestimmten Privilegien, welche es den Programmen erlauben nach definierten Regel Daten zu lesen, zu schreiben, oder weitere Programme aufzurufen. Programme des Betriebssystem, oder nachinstallierte Programme aus dem Internet bedürfen der Vertrauenswürdigkeit, und der Benutzer geht davon aus, dass sie Dinge tun, die im Sinne des Benutzers sind. Für Programme des Betriebssystems im Originalzustand trifft das in der Regel zu. Werden jedoch Programme aus dem Internet geladen und ausgeführt, explizit per Download, oder indirekt beabsichtigt oder nicht beabsichtigt als Email-Anhang, besteht die Gefahr, dass derartige Programme Dinge ausführen oder verändern, die nicht im Sinne des Benutzers sind. Beispielsweise könnten Device-Einheiten nach bestimmten Kriterien untersucht werden, Benutzerdaten oder Konfiguationsdaten verändert, hinzugefügt oder gelöscht werden, oder Socket-Verbindungen aufgebaut werden, um die verdeckte Kommunikation zu anderen Computern zu ermöglichen. Teilweise hat man die Möglichkeit derartige Manipulationen zu bemerken, wenn sie z. B. auf Betriebssystemebene ablaufen - via Netzwerkmonitor, etc.. Oft ist es jedoch nicht möglich, oder nur mit erheblichen Aufwand möglich Manipulationen zu bemerken.

Für Kryptographie-Systeme bzw. Kryptographie-Software bedeutet das, dass Sie einer installierten Software - kommerziell oder Freeware - blind vertrauen müssen. Üblicherweise hat man keine Möglichkeit zu prüfen, ob die Software tatsächlich so funktioniert, wie es die Spezifikation vorgibt, oder ob die Software noch weitere Zusatzfunktionen hat, die vom Benutzer nicht gewollt sind.

Häufig wird empfohlen Kryptographie-Systemen bzw. Kryptographie-Software nur aus Open-Source Ursprung zu benutzen. Unter der Voraussetzung, dass man die Sourcen vorher algorithmisch analysiert hat, manche Sourcen sehen auf den zweiten Blick etwas merkwürdig aus, und man auch unterschiedlichen Betriebsarten und Einstellungen beurteilen kann, ist das oft ein gangbarer Weg, um ein einiger Maßen sicheres System zu bekommen.


Zufallszahlen

Zufallszahlen werden für verschiedene Verschlüsselungsverfahren wie Stromchiffre-Verfahren oder die One-Time-Pad Verschlüsselungen benötigt. Für die One-Time-Pad Verschlüsselungen sind Zufallszahlen von zentraler Bedeutung. One-Time-Pad Verschlüsselungen sind nur sicher, wenn der verwendete Zufallszahengenerator kryptologisch sichere Zufallszahlen liefert. Unter der Voraussetzung, dass die erzeugten Zufallszahlen kryptologisch sicher sind, sind One-Time-Pad Verschlüsselungen nicht entschlüsselbar.

Um Zahlszahlen zu erzeugen, gibt es grundsätzlich zwei verschiedene Möglichkeiten. Zufallszahlen können durch Aufzeichnen von zufälligen Ereignissen in der Natur erzeugt werden, wie beispielsweise die Messung der Zeitabstände der einzelnen Zerfälle eines radioaktiven Nuklids, die gesamplelten Werte einer zufälligen akustischen Quelle (Wasserfall, Verkehrslärm, ..), etc, oder quasi zufällig durch Erzeugen mittels mathematischer Generatoren (Pseudo-Zufallzahlen-Generator). Zufällige Ereignisse der Natur sind für den normalen Benutzer nicht verwendbar (radioaktiver Zerfall), oder sind bei größeren Datenvolumen kaum handhabbar (z. B. akustische Quellen). Die zweite Möglichkeit Zufallszahlen durch Pseudo-Zufallzahlen-Generatoren zu erzeugen, ist bei nicht fachgerechter Anwendung, oder bei der Wahl der falschen Generatoren ein riskantes Unterfangen. Es gibt eine Reihe von Pseudo-Zufallzahlen-Generatoren (PRNG) die Zufallszahlen unterschiedlicher Qualität erzeugen. Grob kann man sie in drei Gruppen einteilen:

Die erste Gruppe der PRNGs ist für kryptologische Anwendungen ungeeignet. In der zweiten Gruppe werden oft PRNGs als kryptologisch sichere PRNGs gelistet, was aber nur teilweise korrekt ist. Eine PRNG mit einer sehr hohen Periodendauer, welcher auch keine Pattern nach den verschiedensten Kriterien erzeugt, muss damit noch nicht kryptologisch sicher sein. Hat der PRNG zu wenige Freiheitsgrade kann die boolsche Dekomposition gelingen. Weiterhin besteht die Möglichkeit durch Vorhaltung der möglichen erzeugten Zufalls-Streams und der XOR-Verknüpfung mit natürlichsprachlichen Standtexten in unterschiedlichen häufig verwendeten Sprachen dem verwendeten PRNG sowie seiner Konfiguration näher zu kommen. Experten verfügen oftmals über derartige Datenbanken (Big-Data-DBs mit vielen 19-Zoll-RAID-Array-Schränken) um diese Möglichkeiten auszuschöpfen. Neben dem "Druchprobieren" gibt es auch für vermeintlich kryptologisch sichere PRNGs algebraische Möglichkeiten die bei erheblichen Rechenaufwand zum Erfolg führen können.

Wegen der hohen Bedeutung von sicheren Zufallszahlen für kryptografische Verfahren, kann man sich gut vorstellen, dass es Organisationen gibt, die eine Vielzahl von Mitarbeitern nur mit der Aufgabe beschäftigen, PRNGs zu entwerfen und Argorithmen zur Dekomposition, etc. zu tüfteln. Das kann z. B. bedeuten, dass so mancher genial entwickelter neuer PRNG seit Jahren in Expertenkreisen bekannt ist, und dass es dazu mehrere Dutzend Verfahren und Codes gibt, um ihn zu dekomponieren bzw. zu entschlüsseln.