Wie funktioniert Heartbleed: Der Code hinter dem Internet Security Alptraum


Nun Sie sicherlich Heartbleed gehört haben, verschlüsselt das Loch in der Internetsicherheit, die unzählige ausgesetzt Transaktionen zu jeder Angreifer, der wusste, wie man es zu missbrauchen. Aber wie funktioniert es eigentlich? Sobald Sie es brechen, ist es eigentlich unglaublich einfach. Und ein wenig komisch. Aber vor allem erschreckend.

Überblick über unsere Heartbleed lesen hier, aber im Allgemeinen Bedingungen Sie, was, die es ein Fehler im so genannten OpenSSL, ein Sicherheitsprotokoll ist, mit dem Computer und einem Server wissen, dass sie, sie sagen, sie sind. Es verließ Sehenswürdigkeiten wie Yahoo, Flickr und Imgur anfällig für Datendiebstahl für Jahre. Es ist ziemlich beängstigend Zeug, und lohnt sich ein genauerer Blick. Glücklicherweise ist es draußen für jedermann zu sehen.

Die Schönheit der Open-Source-Projekt wie OpenSSL ist, dass jeder Code betrachten kann; Es gibt keine Möglichkeit, alles drin mit Absicht verbergen. In der Tat sehen Sie genau wo Heartbleed geboren wurde und wo es behoben wurde, obwohl Sie möglicherweise nicht in der Lage, Kopf oder Zahl davon zu machen.

Das macht es so überraschend, dass Heartbleed für so lange unbemerkt. Zwei Jahre in der Schusslinie, selbst erfahrene Programmierer unsichtbar versteckt. Aber einmal schneiden Sie ins Herz der was falsch gelaufen, das Problem ist so klar wie Tag und umwerfend einfach.

Mein Herzschlag hören

Heartbleed ist kein Problem mit TLS/SSL-Technologien, die das Internet zu verschlüsseln. Es ist nicht einmal ein Problem mit wie OpenSSL in der Theorie funktioniert. Es ist nur eine dumme Codierung Fehler.

Wenn zwei Server bereit, einen verschlüsselten Handshake zu machen, führen sie etwas, nennt einen Herzschlag, ein Akt von der der Fehler seinen unglaublich schrecklichen Namen erhält.

Takte sind eine Möglichkeit für zwei Computer, die miteinander um sicherzustellen, dass der andere noch am Leben, ist so, dass wenn etwas während eines Prozesses schiefgeht, es gehen nicht zu sprechen sind. Sie tun dies, indem Sie Daten hin und her zu einander.

An den Server sendet der Client (das bist du) seinen Herzschlag (Ihre Bank sagen), und der Server übergibt es gleich wieder. So, wenn etwas schief läuft während der Transaktion (z. B. wenn ein Computer buchstäblich explodiert) voneinander wissen, weil die Herztöne synchron bekommen. Es ist wie dafür sorgen, dass beide Spindeln in eine Kassette bewegen, wenn du es spielst. Wenn eine Spindel aufhört und die andere hält geht, bricht etwas.

Es ist ein einfaches Verfahren, replizierte Millionen Mal am Tag auf der ganzen Welt. Aber irgendwie genervt Versionen von OpenSSL gelang es vermasseln. Sean Cassidy erklärt es wunderbar – und verrückte eingehend – auf seinem Blog Typ Existenzkrise. Aber die tatsächliche Verletzung, die das Internet in die Knie zu bringen ist passiert in diesem winzigen Codezeile:

Memcpy (bp, pl, Nutzlast);

Festhalten Sie dies wird noch ein wenig technisch, aber wir werden follow-up mit einer plumpen Metapher zu versuchen und klare Dinge ein wenig an Ihren Hintern.

Einfach (soweit möglich), Memcpy ist ein Befehl, der Daten kopiert, und es erfordert drei Stücke von Informationen an die Arbeit zu erledigen; Das sind die Begriffe in Klammern. Das erste Bit der Info ist das endgültige Ziel der Daten, die kopiert werden soll. Das zweite ist der Speicherort der Daten, die kopiert werden soll. Die dritte ist, dass die Menge der Daten des Computers wird zu finden, wenn es geht um die Kopie zu machen. In diesem Fall der bp ist ein Ort auf dem Servercomputer, pl ist, wo die eigentlichen Daten Clients gesendet wie ein Herzschlag, und Nutzlast ist eine Zahl, die wie große pl sagt.

Wichtig zu wissen, dass das Kopieren von Daten auf Computern schwieriger als es ist scheint denn es wirklich keine solche Sache wie "leer" Speicher gibt. Bp, die Stelle wo der Kundendaten ist kopiert werden, ist also nicht wirklich leer. Stattdessen ist es voll von Daten, die in diesem Teil des Computers vor saß. Der Computer wird nur als leer da, die Daten zum Löschen markiert wurde. Bis es mit neuen Daten gefüllt ist, ist das Ziel bp eine Reihe von alten Daten, die abgesegnet worden ist, um überschrieben werden. Es ist immer noch da.

Jetzt wenn Memcpy die Daten von pl nimmt und es in bp schlägt, deckt im Idealfall es auf alles, was alt, Datenmüll in bp. Immerhin sagt Nutzlast wie groß pl ist, und der Raum bei bp wurde geschaffen, um genau die gleiche Größe; eine perfekte Passform. Wenn es ohne eine Anhängevorrichtung losgeht, ist alles, die früher bei bp zerstört und mit der pl -Daten gefüllt. Und das ist, was an den Client gesendet wird: genau das, was sie in erster Linie geschickt. Was du mit Links ist ordentlich, die kleinen 1:1 Transaktion wo was geht auch wieder herauskommt.

Es funktioniert super – es sei denn, Nutzlast liegen. Wenn Nutzlast sagt, dass pl 64 KB ist, wenn es wirklich 0 KB, Sie haben ein Problem. Memcpy schafft eine große 64 KB Größe Landebahn bei bp , das voll von Datenmüll, aber dann bekommt keiner von den alten Daten bei bp überschrieben, denn es nichts gibt um es zu ersetzen, da pl tatsächlich leer ist. In der Praxis wird das bedeutet was Altdaten in bp vor den Herzschlag saß zurück an den Client übergeben. Manchmal, dass die Daten ist harmlos, manchmal ist es Ihre Banking-Passwort. So oder so, es landet irgendwo sollte es nicht.

Ich hab es? Kurzum: Lol Hoppla!

Eine ungeschickte Metapher

Okay, das ist verwirrend. Hier ist eine einfachere Möglichkeit, es zu verstehen, nehmen den Code aus ihm heraus völlig.

Stellen Sie sich vor, Sie haben eine ganze Reihe von Fotos, und du wirst zu einem Geschäft für ein Feld, um sie zu halten. Der Mann, der Laden läuft, sehr dumm und kann gar nicht zählen.

Sie gehen in diesem Shop mit 100 Fotos, und Sie schlagen sie auf die Theke zu sagen "Ich habe 100 Fotos." Der Besitzer Augen leuchten vor Freude. "Ich habe eine Box für alle!", sagt er. "Ich habe eine 100 Foto-Box!" Er zieht eine Schachtel unter der Theke hervor und sagt "hier ist es! Jemand ließ es hier voller Fotos, aber niemand braucht sie nicht mehr. "

Dann er ein Foto aus der Box nimmt, es brennt, stellt eines Ihrer Fotos in. Er tut dies immer wieder, bis er aus Fotos zu setzen in ist. Am Ende dieses Prozesses die Box ist jetzt voll von Ihren Fotos, und er schiebt es an Sie zurück. Sie haben Ihre Kiste voller Fotos und die alten Fotos werden zerstört. Hurra! Ein ordentlich wenig 1:1 Austausch.

Aber stellen Sie sich vor, Sie gab ihm nur eine anstelle von 100 Fotos. Sie Fuß bis zur Theke, eine schurkische Grinsen Grinsen, schlagen Sie Ihr ein Foto und sagen "Ich habe 100 Fotos." Wieder, der Besitzer hat eine Box für Sie, und zieht eine Kiste voll mit 100 Fotos, die jemand übrig. Wieder, er nimmt ein Foto out of the Box, brennt es und bringt Ihnen in. Dann – nach nur einem Foto – er ist alles aus Fotos, und weil er sehr dumme und kann garnicht zählen, er nimmt dadurch seinen Job getan und er schiebt die Box zurück zu Ihnen, mit Ihr ein Foto und 99 von jemand anderem. Er hat dein Wort für es, trotz aller Beweise entgegen genommen.

Dies bedeutet, dass Sie zu Fuß mit 99 Fotos, die Ihnen nicht gehören, und vielleicht einer von ihnen einer nackten Person ist! Punktzahl! Noch besser ist, ist dieser Kerl so dumme er sogar Null Fotos aus einer Null-Menge an Fotos unterscheiden kann. Wenn Sie nur sagen, Sie haben 100 Fotos und geben ihm buchstäblich nichts, geben er immer noch eine Schachtel mit 100 Fotos Ihnen, das jemand anderem gehört.

Im Falle von Heartbleed sind die Fotos Datenbits. Manchmal passen diese Datenmengen zusammen um eine e-Mail oder ein Kennwort oder ein Benutzername sein. Manchmal passen sie sogar zusammen um zu sein, eine große Website Passwort, einen Signaturstempel mit seinem Namen drauf und den Schlüsselcode zu seinem Sicherheitssystem. Die Auswahl von Botschaften, die Sie erhalten ist zufällig, aber Sie können es so oft wie Sie wollen, und schließlich Sie etwas gutes bekommen tun. Nur immer wieder gefragt, für Boxen.

Heartbleed bewusst ruchlosen Leute tun können: halten Sie fragt einen Server Informationen über und über, bis es wieder etwas saftig sendet.

Kleine Fehler bekommt ein kleines Update

Das Update? So einfach wie der Fehler.

* Art und Nutzlast Länge zuerst lesen * /

Wenn (1 + 2 + 16 > s-> s3-> rrec.length)

Return 0;

/ * schweigend verwerfen * /

Hbtype = * p ++;

N2S (p, Nutzlast);

Wenn (1 + 2 + Nutzlast + 16 > s-> s3-> rrec.length)

Return 0;

/ * schweigend verwerfen / RFC 6520 Sek. 4 * /

PL = p;

Dieses Stück Code hat zwei sehr einfache Jobs, erklärt Sean Cassidy. Die erste ist gegen Nulllänge Herzschläge zu überprüfen; stellt sicher, dass wenn Sie sagen, dass Sie die Server-Fotos geben, die du es eine Zahl ungleich Null von Fotos gibst. Der zweite Teil stellt sicher, dass du gibst die Anzahl der Fotos, was Sie sagen, dass du bist. Das war's.

Diese Art von Fehler ist üblich. Es hat sogar einen Namen: einen Puffer zu lesen Fehler. Wenn Sie jemals Code geschrieben haben, wissen Sie, dass "vergessen, eine offensichtliche Sache, Benutzereingaben zu überprüfen, die nie wirklich wahrscheinlich falsch zu tun" ist einer der häufigsten Fehler, die Sie jemals machen werde. Ich erinnere mich noch meine C++ Gymnasiallehrer pochen auf uns, die Länge der Eingabe des Benutzers zu überprüfen. Immer. Nur weildas ist, warum.

Zum Glück dieser OpenSLL Fehler ist einfach und die Lösung ist einfach ausrollen, obwohl, das ist sehr wenig, um den Schaden zu beheben, die bereits getan. Am Ende kommt es an diesem schrecklich und wunderbar Grundsatz des Rechnens, dass wir alle kommen gegen an einem Punkt oder anderen haben: ein Computer tut genau das, was Sie sagen, es zu tun, nichts weniger nicht mehr. Und weil dieser Computer vollkommen gehorsam ist und daher auch stumm wie die Hölle, Sie nicht leisten können.

Dank Ryan Giglio und Nathan Halabuda um Hilfe Auffrischung meiner Erinnerung wie Code funktioniert. Sie können in die Tiefe mit tollen Erklärer des Sean Cassidy noch tiefer tauchen.

Verwandte Artikel

Rücklauf-TV: Andy Murray: der Mann hinter dem Schläger; Geheimnisse aus dem Arbeitshaus; Hannibal; Indien: Ein gefährlicher Ort, eine Frau – sein überprüfen

Das rebranding von Sulky-Schubladen Murray hatte eine aussichtslose Start, während eine Mahnung der Arbeitshaus Unmenschlichkeiten machte mächtig Betrachtung Andy Murray: der Mann hinter dem Schläger (BBC1) | iPlayer Geheimnisse aus dem Arbeitshaus (ITV)...

Wie man Ihre Sex-Tape aus dem Internet

Der Film Sex Tape steht und fällt mit seiner Führung paar finden es unmöglich, ihre schlüpfrige hausgemachten Porno aus den scheinbar unergründlichen Tiefen der iCloud zu entfernen. Ihre missliche Lage ist ansprechend modern, wenn nicht allzu realistisch...

Der Papst hinter dem Vorhang

Karol Wojtyla, Papst Johannes Paul II; und wer seinen Namen im Auge den letzten Tagen trägt haben steigt in ihren Nachbarn ansehen. Das Konklave Kapazität für Sprung ins Ungewisse, oder zumindest die relativ unbekannte außer unter den studentischen Brüder...

Willkommen in der Fake-Stadt dem Homeland Security seine Drohnen testet

Hat Homeland Security haben einen Sinn für Humor? Dies ist Liberty City, Grand Theft Auto "urbanen Hindernislauf" wo die Abteilung Drohnen für öffentliche Sicherheit Anwendungsmöglichkeiten testet inspiriert. Mit Dokumenten durch eine FOIA-Anfra...

"Instagram Husbands" Video zeigt, was es wirklich ist, der Mann hinter der Kamera

Ach ja, Instagram. Es ist die social Media Plattform, die wir einfach nicht genug bekommen! Diese kleinen Boxen – kuratiert in Perfektion – eine hübsche Geschichte für Freunde, Familie und fremden sagen. Aber sagen Sie diese Quadrate die ganze Geschichte?...

Verbotenen Buckyballs, bekommen Ihr Sex-Tape aus dem Internet, und vieles mehr

Happy Samstag Freunde! Es war eine tolle Woche hier auf dem guten Schiff Gizmodo. Wir Zunder Trainer ausprobiert, habe einen exklusiven Test des weltweit ersten Motorradhelm mit einem Heads-up-Display und blickte zurück auf einen amerikanischen Expo im Ka...

Nadya Suleman eröffnet, um den Schutz ihrer Kinder aus dem Internet, Private Schule & immer ein persönlicher Trainer

"Octomom" Nadya Suleman erneut, diesmal nach Perez Hiltonzu öffnen ist, und reden, wie sie ihre 14 Kinder aus dem Internet schützen will Privatschulen, und warum sie einen persönlichen Trainer werden will! Hier ist ein Auszug aus dem Interview:...

9 Dinge über Antwaun Cook-der Mann hinter der Fantasia-Überdosis (Foto)

Diese Woche Fantasia Barrino versucht alles zu beenden. The American Idol Sänger war offenbar so aufgeregt über Behauptungen von ihr on-again-off wieder (verheirateten) Freund der Frau, dass sie eine nicht-tödliche Mischung aus Aspirin und schlafen Aids n...

Wie man Fotos von Ihren nackten Körper aus dem Internet

Wenn Sie in den letzten 48 Stunden zu jedem Zeitpunkt bewusst gewesen sind, haben Sie wahrscheinlich über die ganze Reihe von schlüpfrig Promi-Selfies, die ihren Weg rund um das Internet gehört. Es habe nicht so sein; Trotz allem Anschein nach Sie können...

Wireless Strom? Wie funktioniert der Tesla-Spule

Unter seinen zahlreichen Neuerungen davon geträumt Nikola Tesla eine Möglichkeit zur Stromversorgung der Welt ohne Bespannung Drähte auf der ganzen Welt zu schaffen. Der Erfinder kam nah an dies zu erreichen, wenn seine "mad Scientist" Experimen...

Wie schützt ein gescheiterten Versuch, Pornos aus dem Internet bekommen Airbnb aus dem Gesetz

Die Geschichte Airbnbs aktuelle Schlacht mit San Francisco Überregulierung beginnt eigentlich mit ein Senator, betete, "Verschmutzung" der Internet-Pornografie zu kontrollieren Airbnb, ist wie Pornografie, ein Unternehmen mit Sitz auf den Verkau...

Sonderausgabe zum Vatertag. Wie das Frühstück im Bett, auf dem Internet. Für die Väter. Juni 2009.

Vatertag 2009 Wie das Frühstück im Bett, auf dem Internet. von Babble-Redaktion 19. Juni 2009 Hier bei Babble haben wir eine Menge über Väter sagen. Denn wir sind Väter. Okay, nun, das ist nicht ganz richtig-gibt es eine ganze Reihe von Mütter sich hier....

Die wahre Geschichte hinter dem "Dach der Welt"

Es nennt sich das "Dach der Welt" mit gutem Grund – das tibetische Plateau steht über 3 Meilen über dem Meeresspiegel und ist umgeben von imposanten Bergketten, die beiden höchsten Gipfel der Welt, Mount Everest und K2 beherbergen. Während die w...

10 Möglichkeiten immer ein Kleinkind aus der Schnuller ist wie immer ein Crack Addict aus dem Rohr

Ich ging hinaus, um einige Schnuller neulich zu kaufen, weil meine 1-Jahr-alte Tochter Pfingstrose eine Sportart zu werfen, die neun ich in ihrem Kinderbett pro Nacht macht, habe Teils, weil sie, es denkt lustig ist zu um beobachten, mich für sie etw...