Beim Wort "Kryptographie" erinnern sich einige an ihr WLAN-Passwort, ein grünes Schloss neben der Adresse ihrer Lieblingsseite und daran, wie schwierig es ist, in die E-Mails anderer zu gelangen. Andere erinnern sich an eine Reihe von Schwachstellen der letzten Jahre mit Abkürzungen (DROWN, FREAK, POODLE ...), stilvollen Logos und einer Warnung, die den Browser dringend aktualisiert.
Die Kryptographie deckt all dies ab, aber das
Wesentliche ist anders. Das Endergebnis liegt zwischen einfach und komplex. Einige Dinge sind einfach zu tun, aber schwer zurückzubekommen: zum Beispiel ein Ei zu zerbrechen. Andere Dinge sind einfach zu erledigen, aber schwer zurückzugewinnen, wenn ein kleiner, entscheidender Teil fehlt: Zum Beispiel eine verschlossene Tür zu öffnen, wenn der „kritische Teil“ der Schlüssel ist. Die Kryptographie untersucht diese Situationen und wie man sie in der Praxis anwendet.
In den letzten Jahren hat sich die Sammlung kryptografischer Angriffe in einen Zoo auffälliger Logos voller wissenschaftlicher Artikelformeln verwandelt und ein allgemein düsteres Gefühl erzeugt, dass alles kaputt ist. Tatsächlich basieren viele der Angriffe auf mehreren allgemeinen Prinzipien, und die endlosen Seiten mit Formeln lassen sich oft auf leicht verständliche Ideen zurückführen.
In dieser Artikelserie werden verschiedene Arten von kryptografischen Angriffen mit Schwerpunkt auf Grundprinzipien behandelt. Im Allgemeinen und nicht ganz in dieser Reihenfolge, aber wir werden Folgendes sagen:
- Grundlegende Strategien: Brute Force, Frequenzanalyse, Interpolation, Downgrade und Cross-Protokolle.
- Sicherheitslücken in der Marke: FREAK, CRIME, POODLE, DROWN, Logjam.
- Fortgeschrittene Strategien: Oracle-Angriffe (Woden-Angriff, Kelsey-Angriff); Methode des Treffens in der Mitte (Treffen in der Mitte), Angriff auf Geburtstage, statistische Verzerrung (differenzielle Kryptoanalyse, integrale Kryptoanalyse usw.).
- Angriffe von Drittanbietern und ihre nahen Verwandten, Methoden zur Fehleranalyse.
- Angriffe auf die Kryptographie mit öffentlichem Schlüssel: Kubikwurzel, Rundfunk, verwandte Nachricht, Kupferschmiedeangriff, Polyg-Hellman-Algorithmus, numerisches Sieb, Wiener-Angriff, Bleichenbacher-Angriff.
Dieser Artikel behandelt das obige Material bis zu Kelseys Angriff.
Grundlegende Strategien
Die folgenden Angriffe sind insofern einfach, als sie ohne spezielle technische Details fast vollständig erklärt werden können. Wir erklären jede Art von Angriff auf einfachste Weise, ohne auf komplexe Beispiele oder fortgeschrittene Anwendungsfälle einzugehen.
Einige dieser Angriffe haben größtenteils an Relevanz verloren und werden seit vielen Jahren nicht mehr eingesetzt. Andere sind Oldtimer, sie schleichen sich im 21. Jahrhundert immer noch regelmäßig an ahnungslose Kryptosystementwickler heran. Wir können davon ausgehen, dass die Ära der modernen Kryptographie mit dem Aufkommen von IBM DES begann - der ersten Chiffre, die allen Angriffen auf diese Liste standhielt.
Einfache rohe Gewalt

Das Verschlüsselungsschema besteht aus zwei Teilen: 1) einer Verschlüsselungsfunktion, die eine Nachricht (Klartext) in Kombination mit einem Schlüssel empfängt und dann eine verschlüsselte Nachricht erstellt - Chiffretext; 2) eine Entschlüsselungsfunktion, die einen Chiffretext und einen Schlüssel verwendet und Klartext erstellt. Sowohl die Verschlüsselung als auch die Entschlüsselung sollten mit dem Schlüssel leicht zu berechnen sein - und ohne ihn schwer.
Angenommen, wir sehen Chiffretext und versuchen, ihn ohne zusätzliche Informationen zu entschlüsseln (dies wird als Nur-Chiffretext-Angriff bezeichnet). Wenn wir auf magische Weise den richtigen Schlüssel finden, können wir leicht überprüfen, ob er tatsächlich korrekt ist, wenn das Ergebnis eine vernünftige Nachricht ist.
Beachten Sie, dass es zwei implizite Annahmen gibt. Erstens, dass wir wissen, wie man eine Entschlüsselung durchführt, dh wie das Kryptosystem funktioniert. Dies ist eine Standardannahme bei der Diskussion der Kryptographie. Das Ausblenden von Details der Verschlüsselungsimplementierung vor Eindringlingen scheint eine zusätzliche Sicherheitsmaßnahme zu sein. Sobald ein Angreifer diese Details herausfindet, geht diese zusätzliche Sicherheit unsichtbar und irreversibel verloren. Dies ist das
Prinzip von Kerchhoffs : In die Hände des Feindes zu fallen sollte keine Unannehmlichkeiten verursachen.
Zweitens gehen wir davon aus, dass der richtige Schlüssel der einzige Schlüssel ist, der zu einer angemessenen Entschlüsselung führt. Dies ist auch eine vernünftige Annahme; Es wird ausgeführt, wenn der Chiffretext viel länger als der Schlüssel ist und gut gelesen wird. In der Regel geschieht dies in der realen Welt, mit Ausnahme von
riesigen unpraktischen Schlüsseln oder
anderen Betrügereien, die besser beiseite gelassen werden (wenn Ihnen das nicht gefällt, haben wir die Erklärungen verworfen, siehe Satz 3.8
hier ).
Vor diesem Hintergrund ergibt sich eine Strategie: Überprüfen Sie jeden möglichen Schlüssel. Dies nennt man Brute Force, und ein solcher Angriff funktioniert garantiert gegen alle praktischen Chiffren - am Ende. Zum Beispiel reicht rohe Gewalt aus, um
Caesars Chiffre zu knacken, eine alte Chiffre, bei der der Schlüssel ein Buchstabe aus dem Alphabet ist, was etwas mehr als 20 mögliche Schlüssel impliziert.
Unglücklicherweise für Kryptoanalytiker schützt das Erhöhen der Schlüsselgröße vor roher Gewalt. Mit zunehmender Schlüsselgröße nimmt die Anzahl der möglichen Schlüssel exponentiell zu. Bei modernen Schlüsselgrößen ist eine einfache Brute Force überhaupt nicht praktikabel. Um zu verstehen, was wir meinen, nehmen wir Mitte 2019 den schnellsten bekannten Supercomputer: IBMs
Summit mit einer Spitzenleistung in der Größenordnung von 10 bis
17 Vorgängen pro Sekunde. Heutzutage beträgt eine typische Schlüssellänge 128 Bit, was
2.128 mögliche Kombinationen bedeutet. Um alle Schlüssel aufzulisten, muss der Summit-Supercomputer etwa 7800-mal so alt sein wie das Universum.
Sollte rohe Gewalt als historische Kuriosität betrachtet werden? Überhaupt nicht: Es ist eine notwendige Zutat im Kryptoanalyse-Kochbuch. Selten werden so schwache Chiffren gefunden, dass sie nur mit einem intelligenten Angriff geknackt werden können, ohne dass bis zu dem einen oder anderen Grad Gewalt angewendet wird. Viele erfolgreiche Hacks verwenden die algorithmische Methode, um zuerst die Zielverschlüsselung zu schwächen und dann Brute Force auszuführen.
Frequenzanalyse

Die meisten Texte sind kein Kauderwelsch. Zum Beispiel gibt es in englischen Texten viele Buchstaben 'e' und Artikel 'the'; in Binärdateien - viele Null-Bytes als Platzhalter zwischen Informationen. Die Frequenzanalyse ist jeder Angriff, der diese Tatsache ausnutzt.
Ein kanonisches Beispiel für eine für diesen Angriff anfällige Chiffre ist eine einfache Substitutions-Chiffre. In dieser Chiffre ist der Schlüssel eine Tabelle, in der alle Buchstaben ersetzt werden. Zum Beispiel wird 'g' durch 'h', 'o' durch j ersetzt, sodass das Wort 'go' zu 'hj' wird. Diese Chiffre ist schwer zu vereinfachen, da es so viele mögliche Nachschlagetabellen gibt. Wenn Sie sich für Mathematik interessieren, beträgt die effektive Schlüssellänge etwa 88 Bit: dies
log2(26!) . Aber die Frequenzanalyse erledigt den Job normalerweise schnell.
Betrachten Sie den folgenden Chiffretext, der mit einer einfachen Substitutions-Chiffre verarbeitet wurde:
XDYLY ALY UGLY XDWNKE WN DYAJYN ANF YALXD DGLAXWG XDAN ALY FLYAUX GR WN OGQL ZDWBGEGZDO
Da
Y
häufig vorkommt, auch am Ende vieler Wörter, können wir vorläufig annehmen, dass dies der Buchstabe
e
:
XDeLe ALe UGLe XDWNKE WN DeAJeN ANF eALXD DGLAXWG XDAN ALe FLeAUX GR WN OGQL ZDWBGEGZDO
Das
XD
Paar wird am Anfang einiger Wörter wiederholt. Insbesondere die Kombination von XDeLe impliziert explizit das Wort this oder
there
, also fahren wir fort:
theLe ALe UGLe thWNKE WN heAJeN ANF eALth DGLAtWG als ALe FLeAUt GR WN OGQL ZDWBGEGZDO
Angenommen,
L
entspricht
r
,
A
-
a
und so weiter. Sie werden wahrscheinlich mehrere Versuche unternehmen müssen, aber im Vergleich zu voller roher Gewalt stellt dieser Angriff den Quelltext so schnell wie möglich wieder her:
Es gibt mehr Dinge im Himmel und auf Erden, als in Ihrer Philosophie geträumt werden
Für einige ist die Lösung solcher „Kryptogramme“ ein faszinierendes Hobby.
Die Idee der Frequenzanalyse ist grundlegender, als es auf den ersten Blick scheint. Und es gilt für viel komplexere Chiffren. Im Laufe der Geschichte haben verschiedene Chiffrendesigns versucht, einem solchen Angriff durch "polyalphabetische Substitution" standzuhalten. Hier ändert sich beim Verschlüsselungsprozess die Buchstabenersetzungstabelle auf komplexe, aber vorhersehbare Weise, die vom Schlüssel abhängen. Alle diese Chiffren galten einst als schwer zu knacken; und doch besiegte eine bescheidene Frequenzanalyse sie alle.
Die ehrgeizigste und wahrscheinlich berühmteste polyalphabetische Chiffre in der Geschichte war die Enigma-Chiffre im Zweiten Weltkrieg. Es war im Vergleich zu seinen Vorgängern relativ komplex, aber aufgrund langer und harter Arbeit haben britische Kryptoanalytiker es mithilfe der Frequenzanalyse geknackt. Natürlich konnten sie keinen eleganten Angriff entwickeln, wie oben gezeigt; Sie mussten bekannte Paare offener und verschlüsselter Texte vergleichen (der sogenannte „Klartext-Angriff“) und sogar Enigma-Benutzer dazu bringen, bestimmte Nachrichten mit einer Analyse des Ergebnisses zu verschlüsseln („Angriff basierend auf ausgewähltem Klartext“). Dies erleichterte jedoch nicht das Schicksal der besiegten Armeen von Feinden und versunkenen U-Booten.
Nach diesem Triumph verschwand die Frequenzanalyse aus der Geschichte der Kryptoanalyse. Die Chiffren des modernen digitalen Zeitalters sind so konzipiert, dass sie mit Bits und nicht mit Buchstaben arbeiten. Noch wichtiger ist, dass diese Chiffren mit einem düsteren Verständnis dessen entworfen wurden, was später als
Schneiers Gesetz bekannt wurde : Jeder kann einen Verschlüsselungsalgorithmus erstellen, den er selbst nicht knacken kann. Es reicht nicht aus, dass das Verschlüsselungssystem kompliziert erscheint: Um seinen Wert zu beweisen, muss es eine rücksichtslose Sicherheitsüberprüfung durch viele Kryptoanalytiker durchlaufen, die alles tun, um die Verschlüsselung zu knacken.
Vorberechnungen

Nehmen Sie die hypothetische Stadt Precom Heights mit 200.000 Einwohnern. In jedem Haus der Stadt gibt es Wertsachen im Durchschnitt 30.000 US-Dollar, aber nicht mehr als 50.000 US-Dollar. Der Sicherheitsmarkt in Precom wurde von ACME Industries monopolisiert, das die legendären Türschlösser der Coyote (tm) -Klasse herstellt. Laut Expertenanalyse kann nur eine sehr komplexe hypothetische Maschine ein Schloss der Coyote-Klasse aufbrechen, dessen Erstellung etwa fünf Jahre und Investitionen in Höhe von 50.000 US-Dollar erfordert. Ist die Stadt sicher?
Höchstwahrscheinlich nicht. Am Ende wird ein ziemlich ehrgeiziger Verbrecher auftauchen. Er wird so argumentieren: „Ja, ich werde große Vorabkosten verursachen. Fünf Jahre Patientenerwartung und 50.000 US-Dollar. Aber nach Abschluss der Arbeit werde ich Zugang zu
all dem Reichtum dieser Stadt haben . Wenn ich meine Karten richtig spiele, zahlt sich diese Investition um ein Vielfaches aus. “
Ähnlich in der Kryptographie. Angriffe auf eine bestimmte Chiffre werden einer rücksichtslosen Analyse von Kosten und Nutzen unterzogen. Wenn das Verhältnis günstig ist, tritt der Angriff nicht auf. Aber die Angriffe, die viele potenzielle Opfer sofort angreifen, zahlen sich fast immer aus. In diesem Fall ist es die beste Entwurfspraxis, davon auszugehen, dass sie vom ersten Tag an begonnen haben. Wir haben im Wesentlichen eine kryptografische Version von Murphys Gesetz: "Alles, was das System wirklich kaputt machen kann, wird das System kaputt machen."
Das einfachste Beispiel für ein Kryptosystem, das mit vorläufigen Berechnungen für einen Angriff anfällig ist, ist eine Verschlüsselung mit einem konstanten Algorithmus ohne Verwendung eines Schlüssels. Dies war bei
der Caesar-Chiffre der Fall, bei
der jeder Buchstabe des Alphabets einfach um drei Buchstaben nach vorne verschoben wird (die Tabelle wird geloopt, sodass der letzte Buchstabe des Alphabets mit dem dritten verschlüsselt wird). Auch hier zeigt sich das Kerchhoffs-Prinzip: Sobald das System gehackt wird, wird es für immer gehackt.
Das Konzept ist einfach. Selbst ein unerfahrener Kryptosystementwickler ist sich der Bedrohung wahrscheinlich bewusst und bereitet sich entsprechend vor. Wenn Sie sich die Entwicklung der Kryptographie ansehen, waren solche Angriffe für die meisten Chiffren ungeeignet, angefangen bei den ersten verbesserten Versionen von Caesars Chiffre bis hin zum Niedergang der polyalphabetischen Chiffren. Solche Angriffe kehrten erst mit dem Aufkommen der modernen Ära der Kryptographie zurück.
Diese Rendite ist auf zwei Faktoren zurückzuführen. Zunächst tauchten schließlich recht komplexe Kryptosysteme auf, bei denen die Möglichkeit der Ausbeutung nach dem Hacken nicht offensichtlich war. Zweitens ist die Kryptografie so weit verbreitet, dass täglich Millionen von Laien entscheiden, wo und welche Teile der Kryptografie wiederverwendet werden sollen. Es dauerte einige Zeit, bis die Experten die Risiken erkannten und Alarm schlugen.
Erinnern Sie sich an den Angriff mit Vorberechnungen: Am Ende des Artikels werden wir zwei kryptografische Beispiele aus dem wirklichen Leben betrachten, bei denen er eine wichtige Rolle spielte.
Interpolation
Hier ist der berühmte Detektiv Sherlock Holmes, der einen Angriff mit Interpolation auf den unglücklichen Dr. Watson ausführt:
Ich habe sofort vermutet, dass Sie aus Afghanistan gekommen sind ... Meine Gedanken waren wie folgt: „Diese Person ist ein Arzt von Typ, aber er hat eine militärische Bedeutung. Also ein Militärarzt. Er war gerade aus den Tropen gekommen - sein Gesicht ist dunkel, aber dies ist kein natürlicher Farbton seiner Haut, da seine Handgelenke viel weißer sind. Das abgemagerte Gesicht litt offensichtlich sehr und litt unter der Krankheit. Er wurde in seiner linken Hand verwundet - er hält sie bewegungslos und ein wenig unnatürlich. Wo in den Tropen könnte ein britischer Arzt Schwierigkeiten haben und eine Wunde bekommen? Natürlich in Afghanistan. “ Der ganze Gedankengang dauerte keine Sekunde. Und so sagte ich, dass Sie aus Afghanistan kamen und überrascht waren.
Holmes konnte aus jedem Beweis einzeln nur sehr wenige Informationen extrahieren. Er konnte nur zu seiner Schlussfolgerung kommen, indem er sie alle zusammen untersuchte. Der Interpolationsangriff funktioniert ähnlich und untersucht die bekannten Paare offener und verschlüsselter Texte, die durch Anwenden desselben Schlüssels erhalten wurden. Aus jedem Paar werden separate Beobachtungen extrahiert, die es uns ermöglichen, eine allgemeine Schlussfolgerung über den Schlüssel zu ziehen. Alle diese Schlussfolgerungen sind vage und nutzlos, bis sie plötzlich eine kritische Masse erreichen und zu der einzig möglichen Schlussfolgerung führen: Egal wie unglaublich es sein mag, es muss wahr sein. Danach wird entweder der Schlüssel geöffnet oder der Entschlüsselungsprozess wird so ausgereift, dass er dupliziert werden kann.
Wir veranschaulichen anhand eines einfachen Beispiels, wie Interpolation funktioniert. Angenommen, wir möchten das persönliche Tagebuch unseres Feindes Bob lesen. Er verschlüsselt jede Zahl in seinem Tagebuch mit Hilfe eines einfachen Kryptosystems, das er aus einer Anzeige in der Zeitschrift „Mockery of Cryptography“ kennengelernt hat. Das System funktioniert wie folgt: Bob wählt zwei Zahlen aus, die er mag:
M und
N . Von nun an, um eine beliebige Nummer zu verschlüsseln
x er rechnet
Mx+N . Zum Beispiel, wenn Bob es wählte
M=3 und
N=4 dann die Figur
2 verschlüsselt als
3∗2+4=10 .
Angenommen, wir haben am 28. Dezember bemerkt, dass Bob etwas in seinem Tagebuch kratzte. Wenn er fertig ist, nehmen wir es leise und sehen den letzten Eintrag:
Datum: 235/520
Liebes Tagebuch,
Heute war ein guter Tag. Nach 64
Tagen habe ich ein Date mit Alice, die in Wohnung 843
lebt. Ich denke wirklich, dass sie 26
!
Da wir sehr ernsthaft beabsichtigen, Bob bei seinem Date zu folgen (in diesem Szenario sind wir 15 Jahre alt), ist es wichtig, das Datum sowie die Adresse von Alice herauszufinden. Glücklicherweise stellen wir fest, dass Bobs Kryptosystem für einen Interpolationsangriff anfällig ist. Wir können nicht wissen
M und
N , aber wir kennen das heutige Datum, also haben wir zwei Paare von "Klartext - Chiffretext". Das wissen wir nämlich
12 verschlüsselt in
235 und
27 - in
520 . Was wir schreiben:
M∗12+N=235
M∗27+N=520
Seit wir 15 Jahre alt sind, kennen wir bereits das System zweier Gleichungen mit zwei Unbekannten, was in dieser Situation ausreicht, um es zu finden
M und
N ohne Probleme. Jedes "Klartext-Chiffretext" -Paar legt eine Einschränkung für Bobs Schlüssel fest, und zwei Einschränkungen zusammen reichen aus, um den Schlüssel vollständig wiederherzustellen. In unserem Beispiel die Antwort
M=19 und
N=7 (at 19x+7=26 x=1 , also 26
im Tagebuch entspricht dem Wort "der Eine", das heißt "das Gleiche" - ca. per.) .
Interpolationsangriffe sind natürlich nicht auf solche einfachen Beispiele beschränkt. Jedes Kryptosystem, bei dem es sich um ein gut verstandenes mathematisches Objekt und eine Liste von Parametern handelt, ist einem Interpolationsangriff ausgesetzt. Je verständlicher das Objekt ist, desto höher ist das Risiko.
Anfänger beklagen sich oft darüber, dass Kryptographie "die Kunst ist, so hässliche Dinge wie möglich zu entwerfen". Interpolationsangriffe sind wahrscheinlich weitgehend schuld. Bob kann entweder ein elegantes mathematisches Design verwenden oder die Vertraulichkeit eines Datums mit Alice wahren - aber leider kann man normalerweise nicht beides bekommen. Dies wird sehr deutlich, wenn wir uns endlich dem Thema Kryptographie mit öffentlichen Schlüsseln zuwenden.
Protokollübergreifendes / Downgrade

In dem Film „Die Illusion der Täuschung“ (2013) versucht eine Gruppe von Illusionisten, den gesamten Zustand des korrupten Versicherungsmagnaten Arthur Tressler zur Täuschung zu verleiten. Um Zugang zu Arthurs Bankkonto zu erhalten, müssen Illusionisten entweder seinen Benutzernamen und sein Passwort angeben oder ihn persönlich in der Bank erscheinen lassen und am Programm teilnehmen.
Beide Optionen sind sehr schwierig; Die Jungs sind es gewohnt, auf der Bühne aufzutreten und nicht an Geheimdienstoperationen teilzunehmen. Deshalb wählen sie die dritte Option: Ihr Komplize ruft die Bank an und gibt vor, Arthur zu sein. Die Bank stellt verschiedene Fragen zur Überprüfung der Identität, z. B. den Namen des Onkels und den Namen des ersten Haustieres. Unsere Helden im Voraus
erhalten diese Informationen leicht von Arthur mit Hilfe von cleverem Social Engineering . Von nun an spielt eine hervorragende Passwortsicherheit keine Rolle mehr.
(Einer Stadtlegende zufolge, die wir persönlich überprüft und bestätigt haben, stieß der Kryptograf Eli Behem einmal auf einen Bankangestellten, der darauf bestand, eine geheime Frage zu stellen. Als die Kassiererin nach dem Namen der Großmutter ihrer Mutter fragte, begann Beeham zu diktieren: „Hauptstadt X, kleines y, drei ... ").
In der Kryptografie ist es dasselbe, wenn zwei kryptografische Protokolle parallel verwendet werden, um dasselbe Asset zu schützen, während eines viel schwächer als das andere ist. Das resultierende System wird für einen protokollübergreifenden Angriff anfällig, wenn ein schwächeres Protokoll angegriffen wird, um zum Preis zu gelangen, ohne ein stärkeres zu berühren.
In einigen komplexen Fällen reicht es nicht aus, den Server nur über ein schwächeres Protokoll zu kontaktieren, und die unfreiwillige Teilnahme eines legitimen Clients ist erforderlich. Dies kann durch einen sogenannten Downgrade-Angriff organisiert werden. Nehmen wir an, unsere Illusionisten haben eine schwierigere Aufgabe als im Film, um diesen Angriff zu verstehen. Angenommen, ein Bankangestellter (Kassierer) und Arthur hatten einige unvorhergesehene Umstände, aufgrund derer es einen solchen Dialog gab:
Einbrecher: Hallo? Das ist Arthur Tressler. Ich möchte mein Passwort zurücksetzen.
Kassierer: Großartig. Bitte werfen Sie einen Blick auf Ihr persönliches Geheimcodebuch, Seite 28, Wort 3. Alle folgenden Nachrichten werden mit diesem bestimmten Wort als Schlüssel verschlüsselt. PQJGH. LOTJNAM PGGY MXVRL ZZLQ SRIU HHNMLPPPV ...
Cracker: Hey hey, warte eine Minute. Ist es wirklich notwendig? Können wir nicht einfach wie normale Menschen reden?
Kassierer: Ich rate nicht dazu.
Cracker: Ich ... hör nur zu, ich hatte einen miesen Tag, okay? Ich bin ein VIP-Kunde und nicht in der Stimmung, mich mit diesen dummen Codebüchern zu beschäftigen.
Kassierer: Gut. Wenn Sie darauf bestehen, Herr Tressler. Was willst du
Cracker: Bitte, ich möchte mein gesamtes Geld an den Arthur Tressler National Victims Fund überweisen.
(Pause)
Kassierer: Okay. Bitte geben Sie Ihren PIN-Code für große Transaktionen an.
Cracker: Mein was?
Kassierer: Für Transaktionen dieser Größe ist auf persönliche Anfrage eine PIN für große Transaktionen erforderlich. Dieser Code wurde Ihnen bei der Kontoeröffnung gegeben.
Cracker: ... ich habe ihn verloren. Ist es wirklich notwendig? Können Sie den Deal nicht einfach genehmigen?
Kassierer: Keine. Es tut mir leid, Herr Tressler. Auch dies ist die von Ihnen angeforderte Sicherheitsmaßnahme. Wenn Sie möchten, können wir einen neuen PIN-Code an die Mailbox senden.
Unsere Helden verschieben die Operation. Sie hören sich mehrere wichtige Tressler-Transaktionen an und hoffen, einen PIN-Code zu hören. Aber jedes Mal verwandelt sich das Gespräch in einen verschlüsselten Kauderwelsch, bevor dort etwas Interessantes klingt. Schließlich wird eines Tages der Plan in Kraft gesetzt. Sie warten geduldig auf den Moment, in dem Tressler eine größere Transaktion telefonisch abschließen muss, sich mit der Leitung verbindet und dann ...
Thressler: Hallo. Ich möchte bitte eine Remote-Transaktion ausstellen.
Kassierer: Großartig. Bitte werfen Sie einen Blick auf Ihr persönliches Geheimcodebuch, Seite ...
(Der Cracker drückt den Knopf; die Stimme des Kassierers wird zu einem unhörbaren Geräusch.)
Kassierer: - # @ $ # @ $ # * @ $$ @ # * wird mit diesem Wort als Schlüssel verschlüsselt. AAAYRR PLRQRZ MMNJK LOJBAN ...
Thressler: Entschuldigung, ich habe es nicht ganz verstanden. Noch einmal? Welche Seite? Was ist das Wort?
Kassierer: Dies ist die Seite @ # $ @ # * $) # * # @ () # @ $ (# @ * $ (# @ *).
Thressler: Was?
Kassierer: Wort Nummer zwanzig @ $ # @ $ #% # $.
Thressler: Im Ernst! Genug ist genug! Sie und Ihr Sicherheitsprotokoll sind eine Art Zirkus. Ich weiß, dass du einfach normal mit mir reden kannst.
Kassierer: Ich rate nicht ...
Thressler: Und ich rate Ihnen nicht, meine Zeit zu verschwenden. Ich möchte erst mehr darüber erfahren, wenn ich die Probleme mit meiner Telefonleitung behoben habe. Können wir diesen Deal arrangieren oder nicht?
Kassierer: ... ja. Gut. Was willst du
Thressler: Ich möchte 20.000 USD an Lord Business Investments überweisen, Kontonummer ...
Kassierer: Nur einen Moment bitte. Das ist eine große Sache. Bitte geben Sie Ihren PIN-Code für große Transaktionen an.
Thressler: Was? Oh, sicher. 1234.
Hier ist der Sturzangriff. Das schwächere Protokoll „nur direkt sprechen“ war im Notfall als
Option gedacht. Und doch sind wir hier.
Sie können die Frage stellen, wer bei klarem Verstand ein reales System wie "sicher, bis etwas anderes gefragt wird" entwirft, das oben beschrieben wurde. Aber genau wie eine fiktive Bank Risiken eingeht, um Kunden zu retten, die Kryptografie nicht mögen, tendieren Systeme als Ganzes häufig zu Anforderungen, die gleichgültig oder sogar offen gegen die Sicherheit sind.
Dies ist genau die Geschichte, die 1995 mit SSLv2 passiert ist. Die US-Regierung hat lange begonnen, Kryptographie als eine Waffe zu betrachten, die am besten von externen und internen Feinden ferngehalten wird. Die Codefragmente wurden einzeln für den Export aus den USA zugelassen, was häufig einer absichtlichen Schwächung des Algorithmus unterlag. Netscape, der Entwickler des beliebtesten Browsers Netscape Navigator, erhielt die SSLv2-Berechtigung nur mit einem anfangs anfälligen RSA-Schlüssel von 512 Bit (und 40 Bit für RC4).
Bis zum Ende des Jahrtausends waren die Regeln weicher geworden und der Zugang zu moderner Verschlüsselung wurde allgemein verfügbar. Clients und Server unterstützen jedoch seit vielen Jahren eine geschwächte "Export" -Kryptografie aufgrund derselben Trägheit, die die Unterstützung für veraltete Systeme aufrechterhält. Kunden dachten, sie könnten auf einen Server stoßen, der nichts anderes unterstützt. Server haben das gleiche getan. Natürlich schreibt SSL vor, dass Clients und Server niemals ein schwaches Protokoll verwenden sollten, wenn das beste verfügbar ist. Die gleiche Prämisse galt jedoch für Tressler und seine Bank.
Diese Theorie fand Anwendung in zwei hochkarätigen Angriffen, die die Sicherheit des SSL-Protokolls im Jahr 2015 nacheinander erschütterten und sowohl von Microsoft- als auch von
INRIA- Forschern entdeckt wurden. Zuerst, im Februar, wurden die Details des FREAK-Angriffs enthüllt, und drei Monate später ein weiterer ähnlicher Angriff namens Logjam, den wir genauer diskutieren werden, wenn wir uns Angriffen auf die Kryptographie mit öffentlichen Schlüsseln zuwenden.

Sicherheitslücke
FREAK (auch als "Smack TLS" bekannt) trat auf, als Forscher die Implementierung des Client / Server-TLS analysierten und einen merkwürdigen Fehler fanden. Wenn der Client in diesen Implementierungen nicht einmal nach einer schwachen Exportkryptografie fragt, der Server jedoch weiterhin mit solchen Schlüsseln antwortet, sagt der Client "Okay" und wechselt zu einem schwachen Satz von Chiffren.
Zu dieser Zeit betrachteten alle die Exportkryptografie als veraltet und verboten, daher war der Angriff ein echter Schock und betraf viele wichtige Bereiche, darunter die Standorte des Weißen Hauses, des US-Finanzamtes und der NSA. Schlimmer noch, es stellte sich heraus, dass viele anfällige Server die Leistung optimierten, indem sie dieselben Schlüssel wiederverwendeten, anstatt für jede Sitzung neue zu erstellen. Dies ermöglichte es, nach dem Verringern des Protokolls einen Angriff mit Vorberechnung durchzuführen: Das Hacken eines Schlüssels blieb relativ teuer (100 USD und 12 Stunden zum Zeitpunkt der Veröffentlichung), aber die praktischen Kosten für den Angriff auf die Verbindung wurden erheblich reduziert. Es reicht aus, den Serverschlüssel einmal abzuholen und die Chiffren für alle nachfolgenden Verbindungen von nun an zu knacken.
Und bevor wir weitermachen, müssen wir einen fortgeschrittenen Angriff erwähnen ...
Oracle-Angriff
Moxie Marlinspike ist am bekanntesten als der Vater des plattformübergreifenden Signal Crypto Messenger.
aber persönlich mögen wir eine seiner weniger bekannten Innovationen - das Prinzip des kryptografischen Untergangs (Cryptographic Doom Principle). Um es leicht zu paraphrasieren: Wir können sagen: "Wenn das Protokoll eine kryptografische Operation für eine Nachricht aus einer potenziell böswilligen Quelle ausführt und sich je nach Ergebnis unterschiedlich verhält, ist dies zum Scheitern verurteilt." Oder in einer schärferen Form: "Nehmen Sie keine Informationen vom Feind zur Verarbeitung, und wenn Sie mussten, zeigen Sie zumindest nicht das Ergebnis."Lassen Sie Pufferüberläufe, Anweisungsinjektionen und dergleichen beiseite; Sie gehen über den Rahmen dieser Diskussion hinaus. Ein Verstoß gegen das "Doom-Prinzip" führt zu schwerwiegenden Hackerangriffen auf die Kryptographie, da sich das Protokoll genau so verhält, wie es sollte.Nehmen Sie beispielsweise ein fiktives Design mit einer anfälligen Substitutions-Chiffre und demonstrieren Sie dann einen möglichen Angriff. Obwohl wir bereits einen Angriff auf eine Substitutions-Chiffre mithilfe der Frequenzanalyse gesehen haben, ist dies nicht nur „eine andere Möglichkeit, dieselbe Chiffre zu brechen“. Umgekehrt sind Orakelangriffe eine viel modernere Erfindung, die auf viele Situationen anwendbar ist, in denen die Frequenzanalyse fehlschlägt, und wir werden dies im nächsten Abschnitt demonstrieren. Hier wird nur eine einfache Chiffre gewählt, um das Beispiel klarer zu machen.Also kommunizieren Alice und Bob mit einer einfachen Substitutions-Chiffre unter Verwendung eines Schlüssels, der nur ihnen bekannt ist. Sie sind sehr streng in Bezug auf die Länge von Nachrichten: Ihre Länge beträgt genau 20 Zeichen. Daher waren sie sich einig, dass jemand, der eine kürzere Nachricht senden möchte, am Ende der Nachricht einen Dummy-Text einfügen sollte, der genau 20 Zeichen umfasst. Nach einiger Diskussion, beschlossen sie , dass sie nur den folgenden Blindtext akzeptieren würden: a
, bb
, ccc
, dddd
, usw. So wird der bekannte Blindtext beliebiger Länge ...Wenn Alice oder Bob die Nachricht erhalten, überprüfen sie zuerst, ob die Nachricht die richtige Länge (20 Zeichen) hat und das Suffix der richtige Dummy-Text ist. Ist dies nicht der Fall, antworten sie mit der entsprechenden Fehlermeldung. Wenn die Länge des Textes und der fiktive Text in Ordnung sind, liest der Empfänger die Nachricht selbst und sendet eine verschlüsselte Antwort.Während des Angriffs gibt der Angreifer vor, Bob zu sein, und sendet gefälschte Nachrichten an Alice. Nachrichten - völliger Unsinn - Der Angreifer hat keinen Schlüssel und kann daher keine aussagekräftige Nachricht fälschen. Da das Protokoll jedoch gegen das Prinzip des Untergangs verstößt, kann ein Angreifer Alice trotzdem fangen, sodass sie Informationen über den Schlüssel preisgibt, wie unten gezeigt.: PREWF ZHJKL MMMN. LA
: .
: PREWF ZHJKL MMMN. LB
: .
: PREWF ZHJKL MMMN. LC
: ILCT? TLCT RUWO PUT KCAW CPS OWPOW!
, , , C
a
, .: REWF ZHJKL MMMN. LAA
: .
: REWF ZHJKL MMMN. LBB
: .
…
: REWF ZHJKL MMMN. LGG
: .
: REWF ZHJKL MMMN. LHH
: TLQO JWCRO FQAW SUY LCR C OWQXYJW. IW PWWR TU TCFA CHUYT TLQO JWFCTQUPOLQZ.
Wieder hat der Cracker keine Ahnung, was Alice gerade gesagt hat, stellt jedoch fest, dass H mit b übereinstimmen muss, da Alice den Dummy-Text akzeptiert hat.Und so weiter, bis der Angreifer die Bedeutung jedes Charakters herausfindet.Auf den ersten Blick ähnelt die Methode einem Angriff, der auf ausgewähltem Klartext basiert. Am Ende nimmt der Angreifer Chiffretexte auf und der Server verarbeitet sie gehorsam. Der Hauptunterschied, der diese Angriffe in der realen Welt möglich macht, besteht darin, dass der Angreifer keinen Zugriff auf die eigentliche Entschlüsselung benötigt - nur die Antwort des Servers, selbst so harmlos wie "Falscher fiktiver Text", reicht aus.Obwohl dieser spezielle Angriff aufschlussreich ist, sollte man sich nicht zu sehr auf die Besonderheiten des Schemas für „fiktiven Text“, das jeweils verwendete Kryptosystem oder die genaue Reihenfolge der vom Angreifer gesendeten Nachrichten konzentrieren. Die Hauptidee ist, wie Alice basierend auf den Eigenschaften des Klartextes unterschiedlich reagiert und dies tut, ohne zu überprüfen, ob der entsprechende verschlüsselte Text tatsächlich von einer vertrauenswürdigen Partei empfangen wird. Auf diese Weise ermöglicht Alice einem Angreifer, geheime Informationen aus ihren Antworten zu extrahieren.In diesem Szenario gibt es viel zu ändern. Die Charaktere, auf die Alice reagiert, oder der Unterschied in ihrem Verhalten oder sogar das verwendete Kryptosystem. Aber das Prinzip wird dasselbe bleiben und der Angriff als Ganzes wird in der einen oder anderen Form lebensfähig bleiben. Die grundlegende Implementierung dieses Angriffs hat dazu beigetragen, mehrere Sicherheitsfehler zu erkennen, die wir in Kürze beheben werden. Aber zuerst sollten einige theoretische Lektionen gelernt werden. Wie kann man dieses fiktive „Alice-Skript“ bei einem Angriff verwenden, der an einer echten modernen Chiffre arbeiten kann? Ist das überhaupt möglich, auch theoretisch?Der Schweizer Kryptograf Daniel Bleichenbacher hat diese Frage 1998 bejaht. Er demonstrierte einen Orakelangriff in einem weit verbreiteten RSA-Kryptosystem mit öffentlichem Schlüssel unter Verwendung eines bestimmten Nachrichtenschemas. In einigen RSA-Implementierungen antwortet der Server mit unterschiedlichen Fehlermeldungen, je nachdem, ob der Klartext mit dem Schema übereinstimmt oder nicht. das war genug, um einen Angriff zu starten.Vier Jahre später, im Jahr 2002, demonstrierte der französische Kryptograf Serge Vaudenay einen Orakelangriff, der fast identisch mit dem in Alices Drehbuch oben beschriebenen war - außer dass er anstelle einer fiktiven Chiffre eine ganze respektable Klasse moderner Chiffren knackte, die Menschen wirklich verwenden. Insbesondere zielt Wodenes Angriff auf Chiffren mit einer festen Eingabegröße ("Blockchiffren") ab, wenn sie im sogenannten "CBC-Verschlüsselungsmodus" und mit einem bestimmten beliebten Auffüllschema verwendet werden, das im Wesentlichen dem in Alices Skript entspricht.Ebenfalls im Jahr 2002 wurde der amerikanische Kryptograf John Kelsey, Co-Autor von Twofish- schlug verschiedene Orakelangriffe auf Systeme vor, die Nachrichten komprimieren und dann verschlüsseln. Am auffälligsten unter ihnen war der Angriff, bei dem häufig die ursprüngliche Länge des Klartextes aus der Länge des Chiffretextes abgeleitet werden konnte. Theoretisch ermöglicht dies einen Orakelangriff, bei dem Teile des ursprünglichen Klartextes wiederhergestellt werden.Als nächstes geben wir eine detailliertere Beschreibung der Woden- und Kelsey-Angriffe (wir werden eine detailliertere Beschreibung des Bleichenbacher-Angriffs geben, wenn wir zu Angriffen auf die Kryptographie mit öffentlichem Schlüssel übergehen). Trotz aller Bemühungen wird der Text etwas technisch; Wenn Ihnen das oben Genannte ausreicht, überspringen Sie daher die nächsten beiden Abschnitte.Angriff von Woden
Um den Woden-Angriff zu verstehen, müssen Sie zunächst etwas mehr über Blockchiffren und Verschlüsselungsmodi sprechen. Eine "Blockverschlüsselung" ist, wie bereits erwähnt, eine Verschlüsselung, die einen Schlüssel akzeptiert und eine bestimmte feste Länge ("Blocklänge") eingibt und einen verschlüsselten Block derselben Länge erzeugt. Blockchiffren sind weit verbreitet und gelten als relativ sicher. Das jetzt pensionierte DES, das als erste moderne Chiffre angesehen wurde, war blockig. Wie oben erwähnt, gilt dies auch für AES, das heute weit verbreitet ist.Leider haben Blockchiffren eine krasse Schwäche. Eine typische Blockgröße beträgt 128 Bit oder 16 Zeichen. Offensichtlich erfordert die moderne Kryptographie das Arbeiten mit größeren Eingabedaten, und hier erscheinen Verschlüsselungsmodi. Der Verschlüsselungsmodus ist im Wesentlichen ein Hack: Es ist eine Möglichkeit, eine Blockverschlüsselung, die Eingabedaten nur einer bestimmten Größe akzeptiert, auf Eingabedaten beliebiger Länge anzuwenden.Der Woden-Angriff konzentriert sich auf den beliebten CBC-Betriebsmodus (Cipher Block Chaining, Ciphertext Block Coupling-Modus). Der Angriff sieht die Basisblock-Chiffre als magische uneinnehmbare Black Box und umgeht ihre Sicherheit vollständig.Hier ist ein Diagramm, das zeigt, wie der CBC-Modus funktioniert:
Das eingekreiste Plus kennzeichnet die XOR-Operation (exklusives ODER). Zum Beispiel wird der zweite Chiffretextblock empfangen:- Durchführen einer XOR-Operation für den zweiten Klartextblock mit dem ersten Chiffretextblock.
- Verschlüsseln Sie den empfangenen Block mit einer Blockverschlüsselung mit einem Schlüssel.
Da CBC die binäre XOR-Operation so intensiv nutzt, nehmen wir uns einen Moment Zeit, um einige seiner Eigenschaften in Erinnerung zu rufen:- Idempotenz: A ⊕ 0 = A.
- Kommutativität: A ⊕ B = B ⊕ A.
- Assoziativität: A ⊕ ( B ⊕ C ) = ( A ⊕ B ) ⊕ C.
- Selbstreversibilität: A ⊕ A = 0
- Byte-Byte: Byte n von ( A ⊕ B ) = (Byte n vonA. ) ⊕ (Byte n vonB. )
In der Regel implizieren diese Eigenschaften, dass eine Gleichung, die XOR-Operationen und eine unbekannte enthält, gelöst werden kann. Zum Beispiel, wenn wir das wissenA ⊕ X = B mit unbekanntX und berühmtA. und
B , dann können wir uns auf die obigen Eigenschaften verlassen, um die Gleichung für zu lösenX. .
Anwenden von XOR auf beiden Seiten der Gleichung mit A bekommen wirX = A ⊕ B. .
In einem Moment wird all dies sehr relevant werden.Es gibt zwei kleine Unterschiede und einen großen Unterschied zwischen unserem Alice-Skript und dem Woden-Angriff. Zwei Moll:- In dem Szenario Alice erwartet , dass das offene Ende im Text
a
, bb
, ccc
und so weiter. Bei einem Woden-Angriff erwartet das Opfer stattdessen, dass Klartext N-mal mit Byte N endet (d. H. Hexadezimal 01 oder 02 02 oder 03 03 03 usw.). Dies ist ein rein kosmetischer Unterschied.
- In Alices Skript war es leicht zu sagen, ob Alice die Nachricht als Antwort auf "Falscher gefälschter Text" erhalten hatte. Beim Woden-Angriff sind weitere Analysen erforderlich, und eine genaue Umsetzung auf der Seite des Opfers ist wichtig. Der Kürze halber nehmen wir jedoch an, dass diese Analyse noch möglich ist.
Der Hauptunterschied:Dies ist der Hauptunterschied - das letzte Puzzleteil, das den Woden-Angriff versteht. Denken wir also einen Moment darüber nach, warum und wie Sie einen Orakelangriff auf CBC organisieren können.Angenommen, ein CBC-Chiffretext von 247 Blöcken wird angegeben, und wir möchten ihn entschlüsseln. Wir können gefälschte Nachrichten an den Server senden, so wie wir zuvor gefälschte Nachrichten an Alice senden konnten. Der Server entschlüsselt die Nachrichten für uns, zeigt jedoch nicht die Entschlüsselung an. Stattdessen meldet der Server, wie im Fall von Alice, nur eine Information: Ist im Klartext die gültige Füllung oder nicht.Beachten Sie, dass wir in Alices Szenario die folgenden Beziehungen hatten:Wir nennen dies die Alice-Gleichung. Wir haben den Chiffretext kontrolliert; Der Server (Alice) hat vage Informationen über den empfangenen Klartext zusammengeführt. Dadurch konnten wir Informationen über den letzten Faktor anzeigen - den Schlüssel. Wenn wir eine solche Verbindung für das CBC-Skript finden, könnten wir analog auch dort einige geheime Informationen extrahieren.Glücklicherweise gibt es wirklich Beziehungen, die wir nutzen können. Betrachten Sie die Ausgabe des letzten Aufrufs der Blockverschlüsselungsentschlüsselung und bezeichnen Sie diese Daten alsW. .
Bezeichnen Sie auch Klartextblöcke P 1 , P 2 , . . . und ChiffretextblöckeC 1 , C 2 , . . . .
Schauen Sie sich das CBC-Diagramm noch einmal an und stellen Sie fest, dass es sich herausstellt:C 246 ≤ W = P 247
Wir nennen dies die "CBC-Gleichung".In Alices Szenario konnten wir durch Überwachen des Chiffretextes und Beobachten des Informationslecks über den entsprechenden Klartext einen Angriff organisieren, der den dritten Term der Gleichung wiederherstellte - den Schlüssel. Im CBC-Szenario steuern wir auch den Chiffretext und beobachten Informationslecks im entsprechenden Klartext. Wenn eine Analogie gilt, können wir Informationen darüber erhaltenW. .
Angenommen, wir haben wirklich restauriert W , was dann? Dann können wir sofort den gesamten letzten Klartextblock drucken (P 247 ) durch einfaches TippenC 246 (die wir haben) underhaltenW in der CBC-Gleichung. Wir sind also optimistisch in Bezug auf den allgemeinen Angriffsplan und es ist Zeit, die Details zu erarbeiten. Wir achten genau darauf, wie der Server Klartextinformationen verliert. In Alices Skript ist ein Leck aufgetreten, weil Alice die richtige Nachricht nur dann beantwortet hat, wennendete mit einer Zeile a
(oder bb
so weiter, aber die Wahrscheinlichkeit, dass diese Zustände versehentlich ausgelöst wurden, war sehr gering). Ähnlich wie bei CBC akzeptiert der Server genau dann das Auffüllen, wennC 246 ⊕ W endet hexadezimal. Versuchen wir also den gleichen Trick: Senden Sie gefälschte Chiffretexte mit unseren eigenen falschen Werten01
C 246 bis der Server die Füllung akzeptiert. Wenn der Server das Auffüllen einer unserer gefälschten Nachrichten akzeptiert, bedeutet dies:C 246 ⊕ W = Daten mit Hex 01 am Ende
Verwenden Sie nun die XOR-Byte-Eigenschaft:( letztes Byte von C 246 ) ⊕ ( letztes Byte von W ) = hex 01
Wir kennen das erste und dritte Mitglied. Und wir haben bereits gesehen, dass Sie damit das verbleibende Mitglied wiederherstellen können - das letzte Byte vonW. ::
( letztes Byte von W ) = ( letztes Byte von C 246 ) ⊕ ( hex 01 )
Es gibt uns auch das letzte Byte des letzten Klartextblocks durch die CBC-Gleichung und die Byte-Eigenschaft.Wir könnten damit enden und uns davon überzeugen, dass wir eine theoretisch robuste Chiffre angegriffen haben. Tatsächlich können wir aber noch viel mehr tun: Wir können den gesamten Text wirklich wiederherstellen. Dies erfordert einen bestimmten Trick, der nicht im ursprünglichen Skript von Alice enthalten war und nicht in den Voraussetzungen für einen Orakelangriff enthalten ist, aber die Methode ist immer noch eine Erkundung wert.Um dies zu verstehen, beachten Sie zunächst, dass als Ergebnis der Ableitung des korrekten Werts des letzten BytesW wir haben eine neue Fähigkeit. Wenn wir nun Chiffretexte fälschen, können wir das letzte Byte des entsprechenden Klartextes steuern. Dies ist wiederum auf die CBC-Gleichung und die Byte-Eigenschaft zurückzuführen:( letztes Byte von C 246 ) ⊕ ( letztes Byte von W ) = letztes Byte von P 247
Da wir jetzt den zweiten Term kennen, können wir unsere Kontrolle über den ersten verwenden, um den dritten zu kontrollieren. Wir berechnen nur:( Letztes Byte von Fake C 246 ) = ( Gewünschtes letztes Byte von P 247 ) ⊕ ( Letztes Byte von W )
Wir konnten dies vorher nicht tun, da wir noch nicht das letzte Byte hatten W. .
Wie wird uns das helfen? Angenommen, wir erstellen jetzt alle Chiffretexte so, dass in den entsprechenden Klartexten das letzte Byte gleich ist 02
. Jetzt akzeptiert der Server das Auffüllen nur, wenn der Klartext mit endet 02 02
. Da wir das letzte Byte korrigiert haben, geschieht dies nur, wenn das vorletzte Klartextbyte ebenfalls 02 ist. Wir senden weiterhin gefälschte Chiffretextblöcke und ändern das vorletzte Byte, bis der Server das Auffüllen für eines von ihnen akzeptiert. In diesem Moment bekommen wir:( Vorletztes Byte von Fake C 246 ) ⊕ ( vorletztes Byte von W ) = hex 02
Und wir stellen das vorletzte Byte wieder her W genau das gleiche wie zuletzt restauriert. Wir fahren auf die gleiche Weise fort: Wir korrigieren die letzten zwei Bytes des Klartextes, wiederholen diesen Angriff für das dritte Byte ab dem Ende des Bytes und so weiter, um schließlich vollständig wiederherzustellen03 03
W. .
Was ist mit dem Rest des Textes? Bitte beachten Sie, dass der WertW ist eigentlich .
Wir können stattdessen jeden anderen Block setzen C 247 , und der Angriff wird weiterhin erfolgreich sein. Tatsächlich können wir den Server darum bittenfür alle Daten. Zu diesem Zeitpunkt ist das Spiel beendet - wir können jeden Chiffretext entschlüsseln (sehen Sie sich noch einmal das CBC-Entschlüsselungsdiagramm an, um dies zu sehen; und beachten Sie, dass Vektor IV öffentlich verfügbar ist).Diese besondere Methode spielt eine entscheidende Rolle beim Angriff des Orakels, dem wir später begegnen werden.Greife Kelsey an
Ein engstirniger John Kelsey legte die Prinzipien dar, die vielen möglichen Angriffen zugrunde liegen, und nicht nur die Details eines bestimmten Angriffs auf eine bestimmte Chiffre. Sein Artikel aus dem Jahr 2002 befasst sich mit möglichen Angriffen auf verschlüsselte komprimierte Daten. Sie dachten, dass für einen Angriff Informationen allein nicht ausreichen und die Daten vor der Verschlüsselung komprimiert wurden? Es stellt sich heraus genug.Dieses erstaunliche Ergebnis beruht auf zwei Prinzipien. Erstens besteht eine starke Korrelation zwischen der Länge des Klartextes und der Länge des Chiffretextes; für viele Chiffren exakte Gleichheit. Zweitens besteht bei der Komprimierung auch eine starke Korrelation zwischen der Länge der komprimierten Nachricht und dem Grad des „Rauschens“ des Klartextes, dh dem Anteil nicht wiederholter Zeichen (der Fachbegriff lautet „große Entropie“).Betrachten Sie zwei Klartexte, um das Prinzip in Aktion zu sehen:Klartext 1: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Klartext 2: ATVXCAGTRSVPTVVULSJQHGEYCMQPCRQBGCYIXCFJGJ
Angenommen, beide Klartexte werden komprimiert und dann verschlüsselt. Sie erhalten zwei resultierende Chiffretexte und müssen raten, welcher Chiffretext zu welchem Klartext passt:Chiffretext 1: PVOVEYBPJDPVANEAWVGCIUWAABCIYIKOOURMYDTA
Chiffretext 2: DWKJZXYU
Die Antwort ist klar. Unter Klartexten konnte nur Klartext 1 auf die magere Länge des zweiten Chiffretextes komprimiert werden. Wir haben es herausgefunden, ohne etwas über den Komprimierungsalgorithmus, den Verschlüsselungsschlüssel oder sogar die Verschlüsselung selbst zu wissen. Im Vergleich zur Hierarchie möglicher kryptografischer Angriffe ist dies eine Art Wahnsinn.Kelsey weist ferner darauf hin, dass dieses Prinzip unter bestimmten ungewöhnlichen Umständen auch zur Durchführung eines Orakelangriffs verwendet werden kann. Insbesondere beschreibt er, wie ein Angreifer geheimen Klartext wiederherstellen kann, wenn er den Server zwingen kann, Formulardaten (Klartext, gefolgt von Klartext) zu verschlüsselnX während er kontrolliertX und kann irgendwie die Länge des verschlüsselten Ergebnisses überprüfen). Wie bei anderen Orakelangriffen haben wir auch hier das Verhältnis:Verschlüsselung ( Komprimierung ( Klartext gefolgt von X ) ) = Chiffretext
Wieder kontrollieren wir ein Mitglied ( X ) sehen wir ein kleines Informationsleck über ein anderes Mitglied (Chiffretext) und versuchen, dieses wiederherzustellen (Klartext). Trotz der Analogie ist dies eine etwas ungewöhnliche Situation im Vergleich zu den anderen Orakelangriffen, die wir gesehen haben.Um zu veranschaulichen, wie ein solcher Angriff funktionieren kann, verwenden wir das fiktive Komprimierungsschema, das wir uns gerade ausgedacht haben: TOYZIP. Es sucht nach Textzeilen, die bereits früher im Text erschienen sind, und ersetzt sie durch drei Platzhalterbytes, die angeben, wo eine frühere Instanz der Zeile zu finden ist und wie oft sie dort erscheint. Beispielsweise kann eine Zeichenfolgemit einerLänge von 13 Bytes im Vergleich zu den ursprünglichen 15 Byteskomprimiert werden.Angenommen, ein Angreifer versucht, den Klartext eines Formulars wiederherzustellenhelloworldhello
helloworld[00][00][05]
password=...
wo das Passwort selbst unbekannt ist. Gemäß dem Angriffsmodell von Kelsey kann ein Angreifer den Server auffordern, Formularnachrichten (Klartext, gefolgt von) zu komprimieren und anschließend zu verschlüsselnX ) woX ist Freitext. Wenn der Server fertig ist, gibt er die Länge des Ergebnisses an. Der Angriff läuft wie folgt ab:Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext ohne Füllung.
Server: Ergebnislänge 14.
Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=a
.
Server: Ergebnislänge 18.
Der Cracker bemerkt: [Original 14] + [drei Bytes, die ersetzt wurden password=
] +a
Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=b
.
Server: Länge des Ergebnisses 18.
Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=
.
Server: Länge des Ergebnisses 17.
Der Cracker bemerkt: [Original 14] + [drei Bytes, die ersetzt wurden password=c
]. Dies setzt voraus, dass der ursprüngliche Klartext eine Zeichenfolge enthält password=c
. Das heißt, das Passwort beginnt mit einem Buchstabenc
Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=a
.
Server: Ergebnislänge 18.
Der Cracker bemerkt: [Original 14] + [drei Bytes, die ersetzt wurden password=
] +a
Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=b
.
Server: Ergebnislänge 18.
(... einige Zeit später ...)Cracker: Bitte komprimieren und verschlüsseln Sie den Klartext, den Sie hinzugefügt haben password=
.
Server: Länge des Ergebnisses 17.
Der Cracker bemerkt: [Original 14] + [drei Bytes, die ersetzt wurden password=co
]. Nach der gleichen Logik kommt der Cracker zu dem Schluss, dass das Passwort mit den Buchstabenco
usw. beginnt, bis das gesamte Passwort wiederhergestellt ist.Dem Leser wird vergeben, dass dies eine rein akademische Übung ist und ein solches Angriffsszenario in der realen Welt niemals auftreten wird. Leider ist es, wie wir bald sehen werden, in der Kryptographie besser, nicht zu versprechen.Sicherheitslücken in der Marke: KRIMINALITÄT, POODLE, DROWN
Nach einer detaillierten Untersuchung der Theorie können wir schließlich sehen, wie diese Methoden bei echten kryptografischen Angriffen eingesetzt werden.KRIMINALITÄT
Wenn der Angriff auf den Browser und das Netzwerk des Opfers abzielt, ist etwas einfacher und etwas komplizierter. Zum Beispiel ist es einfach, den Verkehr des Opfers zu sehen: Setzen Sie sich einfach mit ihr in dasselbe Café mit WLAN. Aus diesem Grund wird potenziellen Opfern (d. H. Jedem) normalerweise empfohlen, eine verschlüsselte Verbindung zu verwenden. Es wird schwieriger, aber es ist weiterhin möglich, HTTP-Anforderungen im Namen des Opfers an eine Website eines Drittanbieters (z. B. Google) auszuführen. Der Angreifer muss das Opfer mit einem Skript, das die Anfrage stellt, auf eine böswillige Webseite locken. Der Webbrowser stellt automatisch das entsprechende Sitzungscookie bereit.Das scheint großartig. Wenn sich Bob angemeldet hat evil.com
, kann das Skript auf dieser Website Google einfach bitten, das Passwort von Bob per E-Mail an zu sendenattacker@evil.com
? , , . (
Cross-Site Request Forgery , CSRF), 90-. ,
evil.com
, Google ( ) : «, CSRF … …
. , ». « » (same-origin policy), A , - B.
evil.com
google.com
, .
Wir müssen betonen, dass all diese Schutzmaßnahmen bedeutungslos sind, wenn Bob keine verschlüsselte Verbindung verwendet. Ein Angreifer kann einfach den Datenverkehr von Bob lesen und das Sitzungscookie von Google wiederherstellen. Mit diesem Cookie öffnet er einfach einen neuen Google-Tab, ohne seinen eigenen Browser zu verlassen, und gibt sich als Bob aus, ohne auf störende Richtlinien mit demselben Ursprung zu stoßen. Aber leider für den Cracker wird dies immer seltener. Das Internet als Ganzes hat unverschlüsselten Verbindungen seit langem den Krieg erklärt, und Bobs ausgehender Datenverkehr ist wahrscheinlich verschlüsselt, ob er es mag oder nicht. Darüber hinaus wurde der Datenverkehr von Anfang an vor der Verschlüsselung komprimiert . Es war üblich, die Latenz zu reduzieren.Hier kommt CRIME ins Spiel .(Kompressionsverhältnis Infoleak Made Easy, einfaches Leck durch Kompressionsverhältnis). Die Sicherheitslücke wurde im September 2012 von den Sicherheitsforschern Juliano Rizzo und Thai Duong aufgedeckt. Wir haben bereits die gesamte theoretische Basis untersucht, um zu verstehen, was sie getan haben und wie. Ein Angreifer kann den Browser von Bob zwingen, Anfragen an Google zu senden und dann in komprimierter, verschlüsselter Form auf Antworten im lokalen Netzwerk zu warten. Deshalb haben wir:Webverkehr = Verschlüsselung ( Komprimierung ( Anfrage und Cookie ) )
Hier steuert der Cracker die Anforderung und hat Zugriff auf den Verkehrs-Sniffer, einschließlich der Paketgröße. Kelseys fiktives Szenario wurde wahr.Um die Theorie zu verstehen, haben CRIME-Autoren einen Exploit erstellt, mit dem Sitzungscookies für eine Vielzahl von Websites gestohlen werden können, darunter Google Mail, Twitter, Dropbox und Github. Die Sicherheitsanfälligkeit betraf die meisten modernen Webbrowser. Infolgedessen wurden Patches veröffentlicht, die die Komprimierungsfunktion in SSL stillschweigend vergruben, sodass sie überhaupt nicht verwendet wurde. Der einzige, der vor dieser Sicherheitsanfälligkeit geschützt war, war der ehrwürdige Internet Explorer, der überhaupt keine SSL-Komprimierung verwendete.POODLE
Im Oktober 2014 sorgte das Google-Sicherheitsteam für Aufsehen in der Sicherheitsgemeinschaft. Sie konnten die Sicherheitslücke im SSL-Protokoll ausnutzen, das vor mehr als zehn Jahren behoben wurde.Es stellte sich heraus, dass, obwohl das neue TLSv1.2 auf den Servern ausgeführt wird, viele die Unterstützung für veraltetes SSLv3 aus Gründen der Abwärtskompatibilität mit Internet Explorer 6 verlassen haben. Wir haben bereits über Downgrade-Angriffe gesprochen, sodass Sie sich vorstellen können, was passiert. Gut organisierte Sabotage des Handshake-Protokolls - und die Server sind bereit, zum guten alten SSLv3 zurückzukehren, wodurch die letzten 15 Jahre der Sicherheitsforschung im Wesentlichen abgebrochen werden.Für den historischen Kontext finden Sie hier eine kurze Zusammenfassung des SSL-Verlaufs bis zur Version 2 von Matthew Green :Transport Layer Security (TLS) — . [..] , , TLS. [..] TLS TLS. Netscape Communications "Secure Sockets Layer" SSL. , SSL , -. , SSL SSL 2 . , [..] 90-, « ». , , . SSLv2 , — , SSLv2 .
Nach diesen Ereignissen hat das frustrierte Unternehmen Netscape 1996 SSL von Grund auf neu gestaltet. Das Ergebnis war SSL Version 3, mit der mehrere bekannte Sicherheitsprobleme für den Vorgänger behoben wurden .Zum Glück für Cracker bedeutet "wenige" nicht "alles". Im Allgemeinen lieferte SSLv3 alle erforderlichen Bausteine, um den Woden-Angriff zu starten. Das Protokoll verwendete eine Blockverschlüsselung im CBC-Modus und ein unsicheres Auffüllschema (dies wurde in TLS behoben; daher trat ein Downgrade-Angriff auf). Wenn Sie sich an das Füllmuster in unserer ursprünglichen Beschreibung des Woden-Angriffs erinnern, ist das SSLv3-Muster sehr ähnlich.Aber leider für Cracker bedeutet "ähnlich" nicht "identisch". Das SSLv3-Auffüllschema ist "N beliebige Bytes, gefolgt von der Nummer N". Versuchen Sie unter diesen Bedingungen, einen imaginären Chiffretextblock auszuwählen und alle Phasen des ursprünglichen Wodene-Schemas zu durchlaufen: Sie werden feststellen, dass der Angriff das letzte Byte erfolgreich aus dem entsprechenden Klartextblock extrahiert, aber nicht weiter geht. Das Entschlüsseln jedes 16. Bytes Chiffretext ist ein ausgezeichneter Trick, aber kein Sieg.Angesichts des Scheiterns griff das Google-Team auf die extreme Option zurück: Sie wechselten zu einem leistungsfähigeren Bedrohungsmodell - dem in CRIME verwendeten. Angenommen, der Angreifer ist ein Skript, das auf der Browser-Registerkarte des Opfers ausgeführt wird und Sitzungscookies extrahieren kann, bleibt der Angriff trotzdem beeindruckend. Obwohl das breitere Bedrohungsmodell weniger realistisch ist, haben wir bereits im vorherigen Abschnitt gesehen, dass dieses spezielle Modell machbar ist.Angesichts dieser leistungsstärkeren Cracker-Funktionen kann der Angriff nun fortgesetzt werden. Beachten Sie, dass der Angreifer weiß, wo das verschlüsselte Sitzungscookie im Header angezeigt wird, und die Länge der vorhergehenden HTTP-Anforderung steuert. Daher kann die HTTP-Anforderung so bearbeitet werden, dass das letzte Byte des Cookies entsprechend dem Ende des Blocks ausgerichtet wird. Jetzt ist dieses Byte zur Entschlüsselung geeignet. Sie können der Anfrage einfach ein Zeichen hinzufügen, und das vorletzte Byte der Cookies bleibt an derselben Stelle und kann nach derselben Methode ausgewählt werden. Der Angriff wird auf diese Weise fortgesetzt, bis das Cookie vollständig wiederhergestellt ist. Dies wird als POODLE bezeichnet: Oracle wird auf eine herabgestufte Legacy-Verschlüsselung aufgefüllt, wodurch das Orakel mit einer reduzierten veralteten Verschlüsselung gefüllt wird.Ertrinken
Wie bereits erwähnt, hatte SSLv3 Mängel, unterschied sich jedoch grundlegend von seinem Vorgänger, da undichtes SSLv2 ein Produkt einer anderen Ära war. Dort war es möglich, die Nachricht in der Mitte zu unterbrechen:
verwandelt in
; Der Client und der Server könnten sich im Internet treffen, Vertrauen aufbauen und Geheimnisse vor den Augen des Angreifers austauschen, der dann leicht vorgab, beides zu sein. Es gibt auch ein Problem mit der Exportkryptografie, das wir bei der Betrachtung von FREAK erwähnt haben. Dies waren kryptografische Sodom und Gomorrah.Im März 2016 kam ein Forscherteam aus verschiedenen technischen Bereichen zusammen und machte eine überraschende Entdeckung: SSLv2 wird immer noch in Sicherheitssystemen verwendet. Ja, Angreifer konnten moderne TLS-Sitzungen nicht mehr auf SSLv2 herunterstufen, da diese Lücke nach FREAK und POODLE geschlossen wurde. Sie können jedoch weiterhin eine Verbindung zu Servern herstellen und SSLv2-Sitzungen selbst initiieren.Sie fragen, was kümmert es uns, was sie dort tun? Sie haben eine anfällige Sitzung, dies sollte jedoch keine Auswirkungen auf andere Sitzungen oder die Serversicherheit haben - richtig? Nun, nicht wirklich. Ja, so sollte es theoretisch sein. Aber nein - denn die Generierung von SSL-Zertifikaten stellt eine gewisse Belastung dar, wodurch viele Server dieselben Zertifikate und folglich dieselben RSA-Schlüssel für TLS- und SSLv2-Verbindungen verwenden. Schlimmer noch, aufgrund des OpenSSL-Fehlers in dieser beliebten SSL-Implementierung funktionierte die Option "SSLv2 deaktivieren" nicht wirklich.Dies ermöglichte einen protokollübergreifenden Angriff auf TLS namens DROWN(Entschlüsseln von RSA mit veralteter und geschwächter eNcryption, Entschlüsseln von RSA mit veralteter und schwacher Verschlüsselung). Denken Sie daran, dass dies nicht dasselbe ist wie ein Sturzangriff. Ein Angreifer muss nicht als „Person in der Mitte“ agieren und keinen Client für die Teilnahme an einer unsicheren Sitzung engagieren. Angreifer initiieren einfach eine unsichere SSLv2-Sitzung mit dem Server selbst, greifen ein schwaches Protokoll an und stellen den privaten RSA-Serverschlüssel wieder her. Dieser Schlüssel gilt auch für TLS-Verbindungen. Von nun an wird er durch keine TLS-Sicherheit vor Hacking geschützt.Das Hacken erfordert jedoch einen funktionierenden Angriff gegen SSLv2, mit dem Sie nicht nur bestimmten Datenverkehr, sondern auch den geheimen RSA-Serverschlüssel wiederherstellen können. Obwohl dies eine komplizierte Produktion ist, konnten Forscher jede Sicherheitsanfälligkeit auswählen, die nach SSLv2 vollständig geschlossen wurde. Am Ende fanden sie eine geeignete Option: den Bleichenbacher-Angriff, den wir bereits erwähnt haben und der im nächsten Artikel ausführlich erläutert wird. SSL und TLS sind vor diesem Angriff geschützt, aber einige zufällige SSL-Funktionen, kombiniert mit Kurzschlüsseln in der Kryptografie mit Exportqualität, ermöglichten eine spezifische Implementierung von DROWN .Zum Zeitpunkt der Veröffentlichung der DROWN-Sicherheitsanfälligkeit waren 25% der Top-Internetseiten betroffen, und der Angriff konnte mit bescheidenen Ressourcen durchgeführt werden, die selbst für schelmische Einzelhacker verfügbar waren. Das Abrufen des RSA-Serverschlüssels dauerte acht Stunden und 440 US-Dollar, und SSLv2 änderte seinen Status von "veraltet" in "radioaktiv".Warten Sie, was ist mit Heartbleed?
Dies ist kein kryptografischer Angriff im oben beschriebenen Sinne. Dies ist ein Pufferüberlauf.Machen Sie eine Pause
Wir haben mit einigen grundlegenden Methoden begonnen: Brute Force, Interpolation, Downgrade, Cross-Protocol und Vorberechnung. Dann untersuchten sie eine fortschrittliche Technik, vielleicht die Hauptkomponente moderner kryptografischer Angriffe: Dies ist der Angriff des Orakels. Wir haben es lange herausgefunden - und nicht nur das Prinzip im Kern verstanden, sondern auch die technischen Details zweier spezifischer Implementierungen: Wodenes Angriffe auf den CBC-Verschlüsselungsmodus und Kelseys Angriffe auf Verschlüsselungsprotokolle mit vorläufiger Komprimierung.Bei der Überprüfung von Downgrade-Angriffen und mit vorläufigen Berechnungen haben wir kurz den FREAK-Angriff skizziert, bei dem beide Methoden verwendet werden, da die Zielseiten auf schwache Schlüssel fallen und dann dieselben Schlüssel wiederverwenden. Für den nächsten Artikel haben wir einen (sehr ähnlichen) Logjam-Angriff hinterlassen, der auf Algorithmen mit öffentlichen Schlüsseln abzielt.Dann haben wir drei weitere Beispiele für die Anwendung dieser Prinzipien untersucht. Erstens CRIME und POODLE: Zwei Angriffe, die auf der Fähigkeit des Crackers beruhten, beliebigen Klartext neben den Zielklartext einzufügen, dann die Antworten des Servers zu untersuchen und dann mithilfe der Angriffsmethode des Orakels diese mageren Informationen zu verwenden, um den Klartext teilweise wiederherzustellen. CRIME ging den Weg von Kelseys Angriff auf die SSL-Komprimierung, während POODLE stattdessen den Woden-Angriff auf CBC mit demselben Effekt verwendete.Dann haben wir unsere Aufmerksamkeit auf den protokollübergreifenden Angriff DROWN gerichtet, der mithilfe des veralteten SSLv2-Protokolls eine Verbindung zum Server herstellt und dann die geheimen Serverschlüssel mithilfe des Bleichenbacher-Angriffs wiederherstellt. Zu diesem Zeitpunkt haben wir die technischen Details dieses Angriffs übersehen. Wie Logjam muss sie warten, bis wir die Kryptosysteme mit öffentlichen Schlüsseln und ihre Schwachstellen gründlich untersucht haben.Im nächsten Artikel werden wir über fortgeschrittene Angriffe sprechen - wie die Meet-in-the-Middle-Methode, die differenzielle Kryptoanalyse und den „Geburtstag“ -Angriff. Wir werden einen kurzen Angriff auf Angriffe über Kanäle von Drittanbietern durchführen und dann das köstlichste übernehmen - Kryptosysteme mit einem öffentlichen Schlüssel.