 Guter Sharing, das bringt mich zum nächsten Gespräch. Wir brauchen eine Sicherheitskonzept, für keine Guter Sharing. Willkommen zur deutschen Übersetzung von Wegfahrsperren von Wota Borgslag, live vom 36.K.Kommunikation-Kongress in Leipzig. Alle Talks am Kongress werden live zwischen Deutsch und Englisch und eine weitere Sprache übersetzt. Weitere Details und Informationen, wie die Streams genutzt werden können, besucht c3lingo.org. Wir freuen uns über eure Rückmeldung bevorzugt mit Hashtag C3T. Besetzung für diesen Talks sind Qui, Mr. Brown und Bate. Danke für die Einleitung. Ich freue mich, dass noch ein paar von euch dabei sind. Ich habe ein Thema, was ich in meiner Masterarbeit behandelt habe, im Juli 2017. Ich habe eine Menge Zeit im Verbracht, alle möglichen Systeme zu analysieren. Ich habe ein bisschen was zurückgeschrieben, und wenn man die Gäste hat, dann ist das eine gute Frage. Das ist ein Thema, was ich in meiner Masterarbeit behandelt habe, im Juli 2017. Ich habe eine Menge Zeit im Verbracht, alle möglichen Systeme zu analysieren. Ich habe ein bisschen was zurückgeschrieben, und wenn man die ganze Geschichte lesen möchte, kann man auch mal meine Masterarbeit lesen, die ist dort in dem Link. Da sind mehr Details drin. Ich arbeite zur Zeit in der Fahrzeugbranche, als Sicherheitsingenieur. Und man kann mir auch E-Mail schreiben. Also als erstes, das muss ich natürlich dazu sagen. Ganz wichtig, aber ich, genau, das Wichtigste zu sagen ist, ich habe alle Firmen, die sich mit der Beschäftigung tatsächlich schon vorher kontaktiert, und zwar noch bevor ich meine Verteidigung meiner Masterarbeit gemacht habe, und habe also einen Detail, ein paar Konferenz-Calls mit den Herstellern gehabt, und ich bin sogar zu einem dort hingefahren, um zu demonstrieren, dass das, was ich gewonnen habe, tatsächlich stimmt. Ich musste zu sagen, dass das, was ich recherchiert habe, auf etwas älteren Autos gewesen ist, so von 2009, aber für drei der Fälle, die, wo ich in Tiefel gegangen bin, da konnten wir bestätigen, dass es die gleichen Systeme sind, die in tatsächlich noch zur Zeit produzierten Modellen drin ist. Aber das ist überraschend. Man denkt Autos, Elektronik, Sicherheit ist eine schnelle Industrie, aber nein, nicht wirklich. Also, alles, was in den Autos in 2009 war, wenn es zumindest ein Dreisystem war, dann kann man heutzutage auch noch in Autos finden. Und ich werde zwar sagen, dass die Autos, mit denen ich zugehabt habe, das ist schon relevant. Ich hoffe, die können mich vergeben. Aber bitte, habt Respekt davor, dass ich nicht sagen kann, dass es nicht die Autos sind, die noch produziert werden. Ich möchte hier mit keine Diebstahl vereinfachen. Als erstes werde ich über ein paar Standard-Sachen in Mobilitätssystemen sprechen. Und dann werde ich über Computernetze in Weekend sprechen. Und dann werde ich etwas sagen, wie ich an die Sache herangegangen bin für alle drei Modelle. Alle Modelle haben ähnliche Verheiten an den Tag gelegt. Dann werde ich über die drei Protokolle sprechen in Peugeot, Fiat und Opel. Als Letztes werde ich meine Sachen zusammenfassen. Und am Ende gibt es Zeit für Fragen. In modernen Vehicles ist sehr viel Elektronik und Computersysteme verbaut. Und sie arbeiten hauptsächlich unabhängig, verbunden über Bussysteme mit vielen verschiedenen Systemen. Es gibt viele verschiedene Standards. Und alle Hersteller wollen es selbst implementieren. Also selbst wenn alle Standards liest, wird trotzdem jedes Fahrzeug anders sein. Es gibt verschiedene praktische Ansätze, die man benutzen kann. Jedes Auto hat einen OBD-2-Port. Das ist gesetzlich vorgeschrieben, sowohl in USA als auch in Europa. Schon für eine längere Zeit. Und es muss leicht zu erreichen sein. Normalerweise im Fahrgastraum. Alle Autos mit verbrenner Motor müssen einen besitzen. Auch elektronische Fahrzeuge müssen einen besitzen. Aber die Fähigkeiten sind eingeschränkt bei elektronischen Vehikeln. Man muss zum Beispiel verbrauchswerte auslesen können. Viele Hersteller sehen das als Chance für Werkstätten, um Fehler kurz auszulesen. Oder zum Beispiel, um neue Schlüssel anzulernen. Wenn man eine Abschleppstange an sein Auto anbringt, kann man so dem Auto mitteilen, dass die Angründer das Auto anbringt. Wenn man eine Abschleppstange an sein Auto anbringt, kann man so dem Auto mitteilen, dass sie angebracht ist. Weil es ein Kanbus ist, kann man es direkt über den UDB-Konnektor verbinden. Und viele verschiedene Komponenten können darüber kommunizieren. Der Motorsteuerungseinheit ist eine. Der Motorsteuerungsmodul, das ist ein anderes, das Body-Control-Modul, BCM Aufbaustellung. Natürlich auch das Airbag, das Entertainment-System, irgendwie spannende Innenbeleuchtung, andere Kontrollsysteme. Weitere Funktionen von einem Bus sind natürlich, dass man die interkomponenten Kommunikationen sehen kann. Wenn das Instrumentenpanel, zum Beispiel mit dem Aufbaustellungsmodul reden möchte, dann kann man natürlich auch Pakete über den Kanbus übertragen sehen. All meine Forschung hat sich auf diesen OBD2-Konnektor fokussiert, was man von dort aus sehen kann und machen kann. Das ist also unsere Perspektive. Wegversperren sind heutzutage eine Voraussetzung in Fahrzeugen, die müssen umgesetzt werden in den europäischen Staaten und in den Vereinigten Staaten und Europa, wo du das Gesetz festgelegt. Das Ziel war natürlich, das Risiko von Fahrzeugdiebstellen zu senken. Das hat sich als erfolgreich gezeigt. Es gibt zumindest Studien, die zeigen, dass die Diebstahlraten ungefähr 40 % eingebrachten sind. Über mehrere Jahre hinweg waren diese Studien angelegt. Ich glaube, über 12 Jahre. Das ist, weil Fahrzeugdiebstahl früher sehr, sehr einfach war. Man hat einfach einen Kurzschluss gemacht. Man hat den Motor gestattet und die Wegversperre war quasi ausgehebelt. Die Wegversperre hat natürlich einen neuen Schritt dazu gemacht. Die Motorsteuereinheit steuert natürlich den Motor. Wenn du jetzt also eine Versicherung halt, dass der Schlüssel, der ja represent ist, auch wirklich gültig ist, dann kannst du den Motor starten. Die ersten Generationen dieser Sicherheitstransponder wurden viel untersucht und haben sich oft als unsicher herausgestellt. Natürlich, wenn es unsicher ist, dann macht es keine Sicherheit dazu und Autos können geklaut werden. Es gibt natürlich irgendwie einen Kampf in diesem Bereich. Die Transponder sind aber heutzutage sehr viel besser geworden. Dein Auto benutzt vielleicht sogar AES, um den Schlüssel zu validieren, den du ins Zündschluss steckst. Und wenn das tatsächlich ein richtiges Schlüssel ist, den das Fahrzeug erkennt, dann ist es okay. Das ist auch wirklich nötig, weil Autodiebsteller haben gezeigt, dass sie ziemlich gute Technologie benutzen und manchmal benutzen sie sogar offizielle Werkzeuge, die sie ungedachten Wegen benutzen. Eine Möglichkeit ist hier gezeigt. Für bestimmte Range Rover-Modelle haben sie einen Blind-Sport-Sensor, um zu sehen, ob jemand im toten Winkel fährt. Wenn man da ein 12-Volt-Batterie anschließt, von dem Batterie, dann kann man den Cannbus anschließen und ein Schlüssel anlernen durchs Fenster. Dann wird der Schlüssel als gültiger Schlüssel programmiert. Und das ist natürlich nicht nötig zu sagen, dass das kein Verhalten war, was angedacht war. Aber das hatte Konsequenzen für Konsumer. Weil Versicherungsfirmen haben gesehen, dass diese Autos häufiger geglaut wurden. Das sind sehr, sehr teure Autos. Sie haben also Anforderungen dazu gefügt, bevor sie die erlaubt haben, dieses Auto zu versichern. Und das bedeutet dann natürlich, deine Versicherung wird teurer. Oder du kriegst keine Versicherung, wenn du es nicht mal bei dir zu Hause zum Beispiel in einen abgesicherten Bereich parken kannst. Da gibt es einen großen Fehler, wie Wegversperren funktionieren in der Annahme. Die meisten Leute nehmen da etwas Falsches an. Deswegen wollte ich diesen Vortrag geben, dass es wichtig ist, zu realisieren, dass ein Wegversperrer etwas komplizierter ist als ein einzelner kriptografischer Schritt, der vielleicht logisch erscheint. Was du vielleicht denkst, ist, dass das Motorsteuerungsmodul eine Challenge an den Aufbausteuerungsmodul schickt. Das implementiert den Radio-Layer. Und dann kann es weiterleiten, die Challenge an den Schlüssel. Der Schlüssel kann die entsprechende Antwort auf dem gemeinsam geteilten Seedgrid mit dem ECM ausrechnen und zurück senden. Und das ECM könnte das weiterleiten an das ECM. Der ECM kann das dann verifizieren, ob das gültig ist. Und wenn das die richtige Antwort ist, dann kann die Wegversperre ausgeschnitten werden und das Auto kann weggefahren werden. Das klingt gut und klingt toll, aber das ist nicht mehr so in modernen Autos. Was man wirklich kennt, ist, dass es da einen zweiten Schritt gibt. Das ECM, der Engine Control Modul, sendet was zum BCM. Das BCM macht dann tatsächlich die Identisierung mit dem Schlüssel. Das heißt, wenn der Schlüssel sozusagen AES benutzt, zum Beispiel, dann wird es ein AES-Schlüssel und ein AES-Schlüssel zwischen dem BCM und dem Schlüssel. Das BCM, wenn es tatsächlich die echt harte Schlüssel validiert, sendet dann eine Antwort zum Engine Control Modul. Aber das ist eine andere Verbindung mit einer anderen Verschlüsselung, mit einem anderen Schlüssel regelmäßig, wenn ich mir nicht sicher. Aber am wichtigsten, das ist bis jetzt noch nicht abgedeckt worden. Das heißt, in der wissenschaftlichen Literatur gibt es quasi keine Diskussion, dass man diesen Schritt gefunden hat und man findet manchmal ein paar Hinweise, dass dieses Schritt funktioniert, aber es gibt sozusagen keine Dokumentation, was dort eigentlich passiert, tatsächlich. Also, das ist eine offene Frage und das müssen wir uns durch genauer angucken. Also, machen wir das. Wir schauen uns mal zwei von dem CANBUS, die wir dann gerne ab. Wir setzen uns dort in den Mittel. Wir können vielleicht auch welchen modifizieren. Wir können den Traffic auf diesem CANBUS identifizieren. Wir können gucken, was dort für Nachrichten verschickt werden. Wir können natürlich aus den Nachrichten nicht direkt in Algorithmus finden. Regelmäßig, das heißt, wir müssen entweder einen firmware-Image haben oder etwas anderes haben, um den Code genauer zu untersuchen und zu verstehen, wo die Magie dort liegt. Wenn wir wissen, wo der Algorithmus ist, dann können wir verstehen, ob der gut ist oder nicht. Und wenn wir da sind, dann können wir dann testen, ob die Annahmen, die wir gemacht haben, korrekt sind und ob das tatsächlich funktioniert, wie man glaubt, es funktioniert. Also, der erste Schritt ist die Portfolientifizierung. Die ist relativ einfach. Also, wir haben da ja schon ein bisschen Wissen. Wir wissen, es ist ein Nachrichtenaustausch, der passiert, wenn man den Motor anschaltet über den Schlüssel. Wir wissen, dass es zwei Nachrichten mit einer hohen Entropie ist, weil natürlich die Herausforderung unterschiedlich sein muss und die Ausgabe, ein Ergebnis von einer kryptografischen Funktion ist. Außerdem, wenn man sie einmal anschaltet und dann ist kann das man näher, dann müsste man etwas erkennen, dass da ein Unterschied passierte und das müsste wahrscheinlich irgendwann sein, weil vorher weiß das Auto gar nicht, dass dort kein vernünftiger Transponder ist. Also, wenn wir ein bisschen rumfummeln, dann gehe ich jetzt durch die Traffic-Logs. Das kann man sich alles anschauen. Genau der nächste Schritt ist tatsächlich ein Image von der Firmware zu kommen, wo man die eigentlichen kryptografischen Protokolle findet. Also, es gibt dort verschiedene Möglichkeiten. Also, wir haben die ja schon mal, auf einem ECU, die entweder in meinem Tisch liegt oder eben im Fahrzeug drin und dann können wir versuchen, dort einfach aus dem Gerätehaus zu bekommen. Das hilft manchmal, die Bucking Headers zu nutzen, einmal das J-Tech Interface, ein BDM oder OU-Art, manchmal aber manchmal sind die deaktiviert, weil funktionieren sie nicht, manchmal ist es sehr, sehr teuer, da an die richtigen Werkzeuge heranzukommen. Manche Hersteller haben dort Möglichkeiten, um dort Informationen runterzuladen über das Fahrzeug, auf Basis der Windnummer. Man kann da eine Menge Konfigurationen über das Fahrzeug, vielleicht einige Teil- oder vollständige Firmware finden, zum Teil verstüsselt, aber nicht immer. Und dann ist natürlich die Tuning-Szene. Na ja, dann denkt man normalerweise auch über Neonlicht, aber diese Leute haben manchmal schon echt eine Ahnung über die Fahrzeuge und vor allem über Altermodelle und da findet man vielleicht mal ein vollständiges Image oder Teile davon oder ein besonders Modell, dass da irgendwie sehr ähnlich ist. Und das ist ja schon ein ganz guter Ansatz, um daran an die Firmware zu kommen. Aber auch ziemlich gut ist einfach die Funktionalität, sich aus der ECU selber zu holen. Die ECU erlaubt, dass man dort die Gnosekommandos schickt, die Adresse von einem Speicher zu lesen, ein Upload, Requesten. Also das ist von der ECU Perspektive, dass man einen Daten sendet. Vielleicht kann man dort auch einfach die gesamte Summe dampen oder den Speicherdampen oder bestimmte Teile der Internats abzulegen. Und dann gibt es natürlich ein weiter Möglichkeit, ein zweiter Bootloader. Das ist eine Art Standard, die eine Herstellerharte implementiert, aber einige machen das schon. Und das erlaubt, einem Binärdaten zu der ECU zu senden und dann da hinzuspringen. Das ist sehr, sehr praktisch. Als Konstantität, es ist manchmal relativ anstrengend, das zum Laufen zu bekommen, aber das ist im Grunde freie Codecution bis auf die Sonderzuseit, dass man sie manchmal authentifizieren muss, bevor man sie benutzen kann. Und das lasst sie vielleicht denn wir wissen ja nicht, wenn man sie nicht mehr kann, man kennt den Algorithmus gar nicht. Und als Letztes, da gibt es zum Teil firmware-Updates, ja, also die kann man zum Teil nutzen, vielleicht kann man hier die offiziellen Systeme von dem Hersteller nutzen, manchmal kann man die Daten vom Canvas abzweigen und man versucht abzudaten und man kann mal gucken, ob man von einem Canvas-Chef die firmware konstruieren kann und das ist dort in Weitmessages durch, aber man kommt damit irgendwie durch. Also wenn man diese Firmware hat, dann muss man jetzt herausfinden, wo der kryptografische Algorithmus ist. Ja, und die Zufirmware sind meistens zwischen 1,5 und 2 Megabyte groß und das ist eine Menge, wenn man sich das als Assembler vorstellt. Die Informationsdichte ist sehr niedrig und die, bei Linien, die Zeile, bei Zeilen zu machen, ein paar Tricks anwenden. Wir sind hier auf einer Konferenz, wo man eine Menge Reverse-Engineen sieht. Das wird nicht deswegen der Fokus von meinem Talk werden, aber ich, da gibt es vielleicht andere, die euch helfen können. Sie kennen das Protokoll, Sie haben ja schon geguckt, wie der Canvas funktioniert und man kann sich in den Protokoll anschauen, was dort, zum Beispiel bestimmte Datentypen laufen. Wo seien in der Firmware? Aus dem Wissen wir ja, das Krypto normalerweise XOR Instruktion braucht und man wird sich anschauen, wie wenig XOR-Extrakten dort eigentlich sind. Manchmal kann man schon einen großen Anzahl der Einzelbitflips rausschmeißen oder die Umkehrung eines Gisters anschauen und dann gibt es, wenn man XOR Instruktionen mit seltsamen Konstanten oder Variablen, und als letztes kann man sich bestimmte Voraussetzungen vorstellen für die Struktur eines Krypto-Algorithmus. Also zum Beispiel keine Eingabeausgabe, keine komplexen Referenzen, manchmal initialisieren oder sowas, mal ein paar Schleifen drinnen. Manchmal kann man die Länge des Challenges erkennen, manchmal auch die Länge der Response erkennen. Dann gucken wir uns das mal genauer. Ich habe da mal einen Pischot 207 Reverse-Engineered, das ist wirklich nicht der allerneuste. Und das war mein Test-Setup gewesen. Es sieht nicht nach viel aus, aber alles, was für mich relevant ist, ist mit drinnen, und man kann die Zündung ausmachen, Licht geht an, und sonst sind die anderen alle mit M-Candles verbinden und die sind dann auch die Connected. Ich habe dann ein Tool gefunden, das ein paar besondere Funktionen hat, und zwar kann man die Fahrzeugpin, die man also in eine Geheimnisse nutzen kann, um auf die Zündung zu kommen, und dann kann man damit ein paar Meter Zündung regieren. Es gibt einem dann ein Gefühl, dass da tatsächlich die Wegversperre mit drinnen verbunden ist, weil tatsächlich das ja auch was mit der Zündung Schaltung zu tun hat, und vielleicht kann man das in bestimmten Weise dann daraus den Pin herausfinden kann. Für diesen Peugeot, also für diese meisten Fahrzeuge von PSA ist die Pin eine vierzahl große Buchstaben numerischer Code, außer O und I. Also es heißt 1,3 Millionen Kies, was für Kryptografie ja quasi sehr wenig ist. Ich habe also den Reverse ingeniert, und er ist tatsächlich im Engine und im Body-Control-Molio. Und der wichtigste Teil sieht so aus. Also das ist das Protokoll. Wenn man sich den CanTraffic anguckt, dann kann man sehen, dass die CanID 72 dort eine Nachricht setzert, die mit einer Doppelnull beginnt, und dann kommt eine 4-Bit Challenge. Wenn die PCM diesen Key versteht, dann antwortet sie mit 0,4, und dann eine 4-Bit Response. Also das ist ein sehr kleines und sehr simples, direktes Protokoll. Also im Grade genau das tut, was halt notwendig ist. Ein der ersten Dinge, die ich gemacht habe, ist, dass ich dort selber Challenges eingespügt habe vom PCM zu PCM und mal gucken, was dann die Antwort ist. Und wenn ich aus nullen Punkte mache, dann ist ein sehr, sehr, sehr klares Muster erkennbar. Also der ideale Fall, dass man ein einziges Bitflip zu einem 50-50 Chains im Bitflip in jeder Antwort führt, ist nicht tatsächlich klar. Man sieht den Effekt für das Ende des Challenges ein sehr, sehr lokal Effekt hat. Ein weiterer Seltsam Effekt, den man nicht so ganz klar erkennen kann, die man letzten sehr leicht sehen könnte, war das im Durchschnitt, wenn man sich einen Durchschnitt anschaut, also zufällige Challenges sendet, dass dann 75% ungefähr ein, das ist also ein sehr starker Bayes, und das hat mich tatsächlich etwas gewundert, was für ein kryptografischer Grundsatz war es mir klar, das ist die Hauptfunktion des Algorithmus. Und es gibt eine Transformfunktion, die ich herausgelassen habe, die macht ein paar Multiplikationen und Divisionen über Modular und das sind mathematische Operationen. Es teilt die Challenge in zwei Teile, und den Fahrzeugpin in zwei Teile. Alle vier Teile sind genutzt für diese Transformfunktion. Und wir bekommen dann ein Transform-Links, Transform-Rechts für den Pin-Links und Rechts Transform-Teil. Dann passiert etwas Spannendes. Denn der linken Teil der Transformation ist Go, wird also mit einer OR-Transformation genutzt mit einem Teil der Pin. Und diese OR-Operation liegt zu ungefähr 75% festen Ergebnis. Das erklärt, dass etwas jetzt mal verhalten, was wir vorhin gesehen haben. Ja, strange. Vielleicht ein etwas nicht so schlaues Verhalten. Weil wir können die Challenge uns angucken, die als Eingabe für diesen Algorithmus genutzt wird. Also wenn du die Challenge kennst, dann kennt man auch die Transform-Mete-Challenge. Und wenn man die Transform-Mete-Challenge kennt, kennt man auch den Output. Weil wenn die Transform-Challenge ein 1-Bit hat, hat auch die Response ein 1-Bit an dieser Stelle. Die Transform-Funktion hat noch eine andere Eigenschaft. Und zwar wenn die eine 0 hat, wenn die Eingabe eine 0 ist, ist der Ausgabe auch eine 0. Es gibt auch ein paar andere Eigenschaften, die sind nicht so wichtig, weil wenn eine Eingabe eine 0 ist, ist die Ausgabe auch eine 0. Also wenn die Challenge eine 0 ist, dann wirst du eine veränderte Challenge haben, die auch 0 hat. Das bedeutet, wenn du das OR machst, dann verodorst du mit nix und die Ausgabe kommt komplett ein Pin ab. Eine andere Eigenschaft ist, dass der Pin der einfach numerischer Pin ist. Den kannst du invertieren. Lass das mich nochmal anfangen. Transform, wenn es ein Pin als Eingang genut, dann kann der Ausgang invertiert werden. Es gibt nur ein Pin-Teil als Eingabe, der auf einen Teil der Ausgabe der Transform-Funktion gemappt wird. Wenn du den Fahrzeug eine Challenge mit 0 gibst, dann kriegst du eine Response, die du mit der du komplett das Geheimnis der GH das Auto zurückbekommst als zu den Pin. Das kannst du dann zum Beispiel benutzen, um dich für Diagnosen zu authentifizieren oder Kis anzulernen, Füsse anzulernen. Wenn du nicht die Challenge kontrollieren kannst, dann kannst du natürlich ein paar zufällige Challenges hinschmeißen und so den Pin herausbekommen. Das ist schlecht, aber was noch schlechter ist, ist, dass die Bits, die in den Challenge gesetzt werden, die dann transformiert werden, transformieren Bits in den Transform. Eine Challenge, die viele Einzelnen hat, wird viele Pins akzeptieren als richtige Eingang und in derselben Antwort antworten. Da ist also eine einfache Angriff, den wir machen können. Wir nehmen einfach eine Challenge für Fahrzeugs ohne einen gültigen Key und für diese Challenge rechnen wir aus, mit welcher Antwort wir rechnen und einige Pins werden Entschuldigung, einige Antworten werden generiert durch viele verschiedene Pins, 2.000 oder 3.000 Pins, die dieselben Challenge verursachen. Also nimmt man einfach den meistwahrscheinlichen Antwort und schickt die und entweder das funktioniert und die Werkversperre wird abgeschalten oder nicht. Aber wenn es nicht tust, dann weißt du für 3.000 Pins, das ist nicht das war. Also es gibt jedenfalls viel, viel weniger als 4.000 Versuche und weit unter 15 Minuten Zeit, die du brauchst. Ich weiß es nicht ganz genau. Ich habe es ein paar Mal versucht, aber ich war eigentlich immer in der Lage die Werkversperre zu entfernen, manchmal unter 3 Minuten, einmal 10 Minuten und danach, wenn du das aktivierst, dann würde das Auto starten, ohne dass der Transponder gegenwärtig war. Okay. Das war nicht so gut. Die nächste Situation ist der Fiat, der grande Punto, den ich angeguckt habe. Ich habe die PCM Gewürze interniert. Das ist auf der Neck Architektur V850S aufgebaut. Das ist eine 32-Bit Risk Architektur. Das kann man ziemlich gut lesen. Da gibt es mehrere Informationsdichte. Ich war nicht so sicher, was die richtige Krypto gemacht hat. Also habe ich in ein ECM investiert. Überraschenderweise war ich dann in der Lage, das Stopp zu finden und dann bin ich sofort zurück zum D-Welt 50 gegangen, weil da konnte ich wenigstens den Code lesen. Das Protokoll ist wie folgt. Es hat eine 32-Bit Challenge, dann eine 4-Bit Challenge. Es gibt 4-Bit Challenge, dann 2-Bit Proof of Knowledge. Das ist ein interessantes Feature, weil wir auf diese Art und Weise dem Engine-Control-Modul dem Body-Control-Modul beweisen können, dass wir den Tristle tatsächlich kennen. Du kannst also nicht einfach die Challenge spammen und eine Antwort darauf bekommen. Du musst schon beweisen, dass du das Geheimnis kennst. Dann kriegst du wieder zurück und wenn die zurück ist, dann wird das ECM das akzeptieren und das Fahrzeug kann starten. Das scheint ein nettes Sicherheitsfeature zu sein, dass man da schon mal beweisen muss, dass man den Schlüssel kennt, aber das scheint das Problem dieses Systems zu sein, wie es hessisch herausstellt. Das Ziffer ist ein lineares, viel Shift-Register-Based Schiffer. Der Key ist mit dem Challenge zusammen verbunden. Es macht 38 Runden. Ich zeige euch gleich in der nächsten Früh, was das bedeutet. Dann generiert es den Beweis, das sind 12 Runden, also 12-Bit Ausgabe. Wenn man zurück in das Protokoll guckt, dann sieht man das auch. Das 1. Nibble ist nicht 0, es ist also irgendwie nicht 16, sondern nur 12-Bit. Und nachdem werden wir noch mal 16-Bit geladen, und dann wird ein 14-Bit Antwort generiert. Das ist ein Standard-Krypto. Das ist ein Standard-Ding, und da gibt es aber auch ein Standard-Angriff. Was wir hier sehen, ist ein LFSR, 32-Bit Register. Es operiert in Runden. Also es wird geladen, initial mit dem geheimen Zustand des Algorithmus. Wenn ich laufe, nimmt es 4-Bit und die werden miteinander verx-ordert. Das ganze Register schiebt sich 1 nach links. Mit 0 wird zu 1, 1 zu 2 und so weiter. Das Bit Nummer 31 geht raus und das davor x-ordierte Bit kommt in die 0-Position. Das ist der Weg, wie es durchrotiert und es aktualisiert ständig seinen internen Zustand. Dann gibt es eine Ausgabe. Die nimmt 8-Bit Input und jedes Mal kreiert es ein Bit. Unten links kann man die Outboot generierte Tabelle sehen. Im wesentlichen zählt es einfach durch, wenn die 8-Bit aktualisieren zu A2, dann nimmst du Bitposition A2 in dieser Tabelle. Die 8-Bit wird als Proof und als Beweis dafür, dass du etwas kennst. Was wir hier sehen, ist, dass es tatsächlich 8-Bits gibt im LSFR. Die Ausgabe wird tatsächlich bestimmen. Diese 8-Bit sind von diesen 8-Bit sie generieren 256 verschiedene Werte. Es gibt 256 verschiedene Kombinationen, aber nur die Hälfte werden das beobachtete Bit generieren. Es gibt quasi nur 128 Valido-Optionen für dieses Bit um zu generieren, Beweis zu generieren. Das ist sehr interessant und du kannst es natürlich benutzen um eine Angriff zu konstruieren. Du machst also eine Annahme für den Status. Wir haben 128 Kandidaten für interne Stadi und dann machen wir eine Runde. Wir schieben die Bit in eine Position nach links. Wir machen die Feed-Belt-Funktion und dann evaluieren wir das zweite Bit, was rauskommt. Für das zweite Bit hast du schon ein bisschen Wissen, weil du vorher Annahmen getroffen hast. Die grünen Kontrate bedeuten die Bit, die wir schon kennen. Und du siehst, dass durch die Runden, durch jede Runde können wir ein paar Kandidaten eliminieren, weil sie dieses falsche Output generieren. Und du musst immer weniger und weniger raten, um den Zustand auszufüllen und diese Eliminierung kulturell nicht statt. Und das führt dazu, dass wir das sehr, sehr viel effizienter machen können, als einfach nur ein Brutal-Force. Also die totale Komplexität ist 2 auch 21, das ist größer und kleiner als ein ein Brut-Force-Angriff. Okay. Das ist okay. Das ist eher ein Standardzeug im Krypto-Bereich. Jetzt gibt es aber ein anderes Problem. Und zwar, wie Sie das implementiert haben, weil Sie da ein paar geheimene Releases gemacht haben. Das Geheimnis, was genutzt wird, um den Beweis zu generieren, ist in gewisser Weise der Fahrzeugpin. Und wenn man diesen 32-Bit Geheim-Input-Wert nimmt und die fünften recht mal relegenden Nibbles nimmt und die Buchstaben zu zahlen macht und dann einen neuen Abziehst, dann kriegst du eine 5-stellige Zahl und diese Nummer ist der Pin. Was wir jetzt haben, ist ein Angriff, ein paar Challenges beobachtet zusammen mit dem Proof of Knowledge, das immer da ist und das kriegst du einfach kostenlos, wenn du die ECU mit Power versorgst, mit Spannung versorgst, wenn du dann einen Angriff drauflaufen lässt, der vielleicht sechs Sekunden auf einem Single Core mit einer nicht optimierten Anwendung, du kannst aber bestimmt besser werden. Also es dauert nur ein paar Sekunden und was du bekommst, ist der Pin. Du kannst also immer noch nicht eines ECM identifizieren, aber du kennst den Pin, du kannst den verwenden für Diagnose-Services, für Memory, Sprecher auslesen oder nochmal Schlüssel anlernen und da gibt's absolut Möglichkeiten, das noch auszuheben und weiter auszunutzen, um das Auto dann am Ende zu starten. Der dritte Fall, den ich mein guck habe, war ein Opel-Astraha und ich habe den kryptografischen Teil rausgemacht, weil ich nicht hacken konnte und ich möchte für euch nicht, damit langweilen mit ziemlich komplizierten Algorithmen dann aber nicht sagen, wie ich sie angreifen konnte. Also wenn du dich interessiert, es steht auch in meiner Master-Tese drin. Aber es gibt immerhin noch einige paar interessante Dinge, die man hier vielleicht sagen sollte. Also erstens, ich habe das ECM Recoveringverse-Engineered, das war basiert auf einem PowerPC, Mikrocontroller und das ist ziemlich gut, da gibt's einen Compiler für und da kann man die Assembly relativ relativ gut den CSPAN-C-Code bekommen. Das war gut, aber das war nicht genug. Deswegen habe ich einen Tool gekauft um die ECM Interface zu nutzen, von der ECU zu nutzen, welches aktiv und nutzbar war und es hat mich eine Zimme Zeit gedauert, bis ich das zum Laufmucom habe und habe ich Windows interessiert und alles Mögliche andere gemacht habe und dann konnte ich Speicherlesen und Register verändern auf der tatsächlichen ECU verändern und das hat mir eine Menge geholfen beim Debuggen und den tatsächlichen Funktionen zu finden. Also hier ist das Protokoll, das ich gefunden habe. Es hat ein 2-byte Upcode und ein 2-byte Status Data, ein 4-byte Challenge und dann gibt's zumal zu weit für eine Antwort und 4-byte für die Antwort. Hier gibt's kein Wissensbeweis, kein Proof Knowledge, da gibt's nur 32 bits, 32 bits und das war es dann. Es war lustig, wenn ich den Algorithmus herausgefunden habe, das ist ein Algorithmus von Opel, sondern es ist ein Algorithmus der von einem Security Transponder von den PCF 79, 35 Sicherheits Transponder. Das ist der Forkinger von Hightech 2, den ihr vielleicht kennt. Er nutzt 128-Bit Geheimnis und das ist ein ziemlich, ziemlich großes Geheimnis. Und ein 32-Bit internen Zustand, als ich 2 das bin internisch und habe gesagt, dann muss man doch hinkriegen können. Nein, was nicht. Weil es dort eine Menge rund macht zwischen den, nein, nicht die bei dem 4 hat eine, sondern es macht 34 Runden und dann kommen 2 Bit heraus und dann macht es noch mal 34 Runden und 2 weitere Bit. Das ist eine Mischung zwischen den 128 Bit zu dem State und da ist so viel Distanz zwischen diesen Momenten, dass es sehr, sehr schwer ist hier irgendwelche Informationen irgendwie zu nutzen oder irgendwelche nutzlichen Dinger ausnehmen, die man so neue Mischungen dann noch überleben. Also ich habe mein Bestes dran gemacht, ich habe ein paar Sachen gefunden, ich könnte meine Masterarbeit lesen, wenn ihr da noch weiter interessiert seid. Ich finde es interessant, dort eine Implementierung eines dann Sicherheitsinsponder zu finden innerhalb einer Engine, obwohl man dann jedes Eigenindustrie Engine, die Motor gar nicht mit dem Transporter redet und dann habe ich ein anderes, was man guckt, und zwar ein Corsa C und dann habe ich herausgefunden, dass dort es anders war, nein, tatsächlich der Motor eine Kommunikation mit dem Schlüssel und was wahrscheinlich passiert ist, dass sie das wollten, dass sie die Motorentwicklung und die Fahrzeugentwicklung trennen wollten, dass die Sicherheitsinsponder erneuern können, ohne tatsächlich die Fahrzeuge und deren Fahrzeugframeworks zu tauschen. Ich glaube, dass das doch passiert ist und das ist warum sie sich dann entschieden haben, die Sicherheitsinsponder in dem Engine Control Modell zu haben um getrannt zu haben. Das klingt wie eine ganz praktische Lösung. Es ist mit Abstand die stärkste Algorithmusik, die ich hier gesehen habe, von allen drei Volts Autoscopes, weil ich mich tatsächlich nur auf die kriptografischen Grundlagen konzentriert habe, vielmehr aus, dass ein Random Number Generator nicht so gut ist. Sie nutzen einen Tick-Counter der CPU als Quelle für Zufall und wenn man sich dann ein bisschen googletanfindet, man hier den Netscape Random Number Generator. Als wir das zusammenfassen, wir finden heraus, Peugeot nutzt einen winzigen Schlüsselraum mit nur 1,3 Millionen Pin-Codes. Die Informationen werden sehr leicht rausgelegt, wenn man dort eine Null-Challenge ausbekommen bekommt. Es gibt eine Menge Kollisionen, die wirklich nicht sehr robust gegen einen Angriff sind. Ja, Phea hat ein Algorithmus, der im Stuhlbuch steht. Es ist zwar eine gute Idee, dann eine gegenseite Orientierung zu haben, aber in diesem Kontext hilft es nicht, sondern in dem Falle schadet es so, kann sie nutzen den Teil dieses Schlüssel als ein Fahrzeugpin im Gegensatz zu anderen Teilen, die generiert wird, um die Antwort zu machen. Wenn das der Wege-Pin gewesen wäre, dann hätte ich die Satecke nicht durchführen können. Und das letzte ist Oble. Sie haben einen alten Nachfolger. Der Nachfolger war ziemlich schlecht, aber dieser nicht. Also ich habe meinen Master nicht ein Krypto-Analyse. Ich bin mir nicht ganz sicher, aber ich glaube, der war definitiv deutlich besser als die beiden anderen. Und vielleicht auch interessant in alle drei Systeme, auch noch in neuen Fahrzeugen, die 2019 auskommen sind, oder welche, die jetzt da auf dem Markt sind. Und ich bin sehr interessiert daran zu sehen, wie das mit anderen Herstellern im Kontext steht. Und ich glaube, es wäre ganz spannend zu sehen, wie das dort ausschaut und zu sehen, was es sonst noch so gibt. Also um dann noch ein paar Lektionen mitzunehmen, macht nicht eurer eigenen Krypto. Das sagen viele, und man kann es auch nicht standardisierte kryptografische Komponenten und Versuchte oder Leute zu finden, die wirklich Sicherheits-Experten sind, das sind mit ihren Anstanden einfach nur aus Besten zu hoffen. Nutzt nicht die Geheimnisse mehrmals. Es gibt viele, viele Beweise auch hier, dass die Wiederholung von Kies, das deutlich leichten Macht zu knacken und ersetzt Teile in dem grundsätzlich ansetzten Eure Kryptografie öfter sie wieder nutzt und so häufiger auch die Wahrscheinlichkeit, dass sie leicht zu retten. Es hat tatsächlich so eine Art Verrüstungskrieg, Errüstungsaufwettbewerbe in den Transpondern und wenn man jetzt hier überlegt, wie man Protokolle bauen kann, die dort tatsächlich gut funktionieren können, wenn man sich jetzt anguckt, diese Protokolle von 1995 sind immer noch und sind nicht ersetzt und entweder hat sie niemand sich genau anguckt und es gibt andere gute Gründe, die genauso zu lassen wie sie vorher waren. So, ich hoffe, das war interessant und vielleicht auch ein bisschen Entertainment und ich nehme gerne Eure Fragen an. So, es gibt schon ein paar Fragen, die Mikrofone 1 bis 8 und das Internet hat auch Fragen bereits so, also fangen wir den Internet an. Warum benutzen Autos nicht mehr Ringlayer Security? Oh ja, also das ist einfach so, das ist so, das ist so, das ist so, das ist eingebettete Sicherheit, das sind nicht PC oder Smartphone Sicherheit, das ist Einbettesicherheit und KFZ-Hersteller machen schon ihr Westes, aber das ist nicht ihr Spielfeld und dann gibt es eine ganze Menge an Ansätzen, das sicherer zu machen, aber das haben sie nicht getan. Und ich kann nicht wirklich sagen, warum man es nicht besser, aber ich glaube, man kann verstehen, dass sie vielleicht dort ein bisschen bei diesem Spielfeld tatsächlich ein bisschen zurücklegen, was für sie verhältsmässig neu ist. Hallo, vielen Dank für deinen Vortrag. Meine Frage ist, ob du kleinere oder interessantere Fehler gefunden hast in anderen Teilen des Autos? Ja, also ich hab da ein paar andere Sachen gefunden, außer den Drei, die ich nicht gemacht habe. Da hab ich ja auch ein paar andere von den Diagnostiken, die Autofizirusmechanismen angeguckt haben. Ich hab sie nicht in meine Masterarbeit geparkt, weil es ganz schön ist, da eine klare Nachricht und eine klare Forschungslinie zu zeigen, aber ich habe dort Autofizirusemdie tatsächlich manchmal sehr lächerlich sind, wie zum Beispiel ein Challenge und Sequent und dann Abzug und dann die Response. Answered? Hallo, vielen Dank für deinen Vortrag. Ich habe zwei kleine Fragen. Wie hast du genau diese Autos ausgewählt und welche Teile dieser Sicherheitsfehler sind verbesserbar? Ja, gut. Also ich hab diese Autos ausgewählt, vor allem deswegen, weil sie verfügbar waren. Ich hab mir nicht jetzt nicht besonders ausgesucht, ich hab einfach da, wo ich gerade gearbeitet hab, mein Praktikum gemacht habe, da hatte ich einige Plattformsymbolen spielen. Ihr habt ja meine tollen, lustigen PSA-Setups gesehen, das war das professionellste, das ich hatte. Das ist, was ich hatte. Wir haben endlich herausgefunden, das sind diejenigen, die noch später relevant sind, aber das war gar nicht so schlecht. Es scheint eine gute Entscheidung gewesen zu sein. Und deine zweite Frage war Können diese Fehler in einem Update gefixt? Ja, es gibt nicht wirklich Infrastruktur, die Updates auszurollen. Also die Autos, die dort stehen, ich glaube, dass man dort nicht wirklich was machen kann. Ja, man kann das machen, dass das dauert und es ist ja für den Hersteller keine große Kosten. Aber was man tun könnte, das wäre zum Beispiel im Timeouts beim PSK zu nutzen, um es zu sicherststellen, dass es nicht zu einfach ist, dass man eine sehr, sehr hohe Anzahl von Autos versuchen machen kann. Es ist ja keine Reparatur, das repariert das ja nicht wirklich, aber es macht so, es ist ein bisschen schwieriger. Man kann nicht wirklich den gesamten Algorithmus ändern. Das sind ja verschiedene Motoren und ich glaube, das wäre ziemlich schwierig. Da muss man das Protokoll ändern. Danke schön. Sind die Schlüssel eindeutig für das Auto oder wie wird es behandelt, wenn die Sachen ersetzt werden müssen? Die Secrets sind tatsächlich ein Auto einmalig und der Austausch, da gibt es also bestimmte Prozessuren, um neue ECUs mit den aktuellen Themen zu verkoppeln. Da muss man die ECUs reinstecken und dann den Fahrzeugpin eingeben. Das ist wahrscheinlich auch der Grund, dass sie dieses Secret Reusen, wenn es ein Unterschiedliches gewesen wäre, hätte man eine bestimmte Methode von Secret Sharing und Protokoll nutzen müssen und eine neue ECU tatsächlich dort einsetzen müssen und das wäre wirklich schwieriger. Guten Tag. Was ich nicht ganz verstehe, ist warum müssen wir die Kommunikation trennen? Ich denke, dass die ECU für neue Schlüssel angelehnt werden kann aber warum machen wir das anstatt die ECU direkt anzulernen? Warum lädt die ECU nicht einfach den Schlüssel vom Transponder? Wenn ich die Frage richtig verstehe, dann geht es darum, dass wir uns fragen, warum wir dort zwei verschiedene Intensivsysteme haben zwischen Engine und BCM und dann dem Schlüssel zwischen dem ECU und nicht der Schlüssel in den Firmen gemacht wird. In die gleiche Engine kann man in vielen verschiedenen Fahrzeugen benutzen, vielleicht sogar von verschiedenen Fahrzeugen, in verschiedenen Bereichen und es ist kompliziert diesen Autos unterschiedlicher Fernwest zu geben, also das ist sicherlich möglich, aber man möchte einfach eine Engine bauen und ein Auto bauen und dann möchte man es beide zusammenarbeiten und das Auto in den Firmen in den Firmen einrichtet und sollte auch funktionieren. Das hat etwas damit zu tun, wie die Fahrzeugentwicklungsprozesse funktionieren. Aber sollte dann nicht Ich gehe davon aus, dass der Teil, der mit dem Transponder spricht immer noch mit der Motorstellung sprechen muss. Muss der Fahrzeughersteller nicht immer noch mit dem Motorprotokoll sprechen ohne es auf den Key zu tun? Ja, das ist eine große Spekulierung von meiner Seite. Ich habe da jetzt nicht genau Insiderinformationen, warum das so gemacht worden ist. Aber ich kann ich kann mir vorstellen Ansätze, dass man das reparieren kann. Also warum sie das nicht machen. Also ich glaube, dass normalerweise was dazu zu tun hat mit Kompetibilität und man könnte dort ja 5 Algorithmen in der BCM einbetten und dann einfach und dann durch die Konfiguration die nutzen, die für das Fahrzeug passt. Ich weiß nicht, warum sie das nicht machen. Also das sind nicht Software Firmen, das sind Auto Firmen. Vielen Dank. Vielen Dank für die tolle Vorstellung. Wenn wir OBD ins Internet angeschlossen haben Siehst du damit weitere Probleme, die man mit dem Hacken des Autos damit verbinden könnte? Ja, also OBD zum Internet verbinden, naja, nein, nicht wirklich. Also wenn man OBD Zugriff hat, dann kann man den OBD-Port benutzen und dann kann man eine Menge machen. Also es gibt Autos, die nutzen, ein Gateway und das ist ein Art Filter, wo muss man sich autorizieren, bevor man die genauen Fahrzeuge innen reingreifen kann. Das hat etwas mit dem Auto und mit dem Modell und mit dem Hersteller zu tun, wieviel man dort manövrieren kann in den Daten. Also manchmal ist es etwas einfach, manchmal ist es schwieriger, für manche mag es unmöglich sein, aber auf jeden Fall hat man da einen sehr, sehr guten Ansatz mit. Vielen Dank. Guten Tag. Welche Anti-Blood Force Maßnahmen festgestellt? Meine zweite Frage ist, offensichtlich hattest du Einfluss auf die internen Kommunikation zwischen Motor und Steuergerät, aber die Angriffe, die bei 4. Peugeot funktioniert haben, sind die möglichen mit dem OBD-2-Port oder braucht man da auch die internen Kommunikation? Also ich habe das am Anfang meines Calls, man Stalks dann schon gesagt, also nur, ich habe nur die Attacken durchgeführt, die ich präsentiert habe, da mich nur auf die OBD möglichen Angriffe konzentriert. Also ja, ich habe ein paar Dinge auf der Hardware der ECUs gemacht, aber das war nur zum Recherchieren. Also die meine Angriffe sind halt tatsächlich ausschließlich über OBD durchführbar. Okay, vielen Dank. Die erste Frage war schon teilweise beantwortet. Also man wird nicht nach fünf schlechten Versuchen ausgeschlossen, oder? Ja, also ich habe da schon was gefunden, dass etwas seltsam in den PSA-Fall gewesen ist und das ist tatsächlich wenn man, ja, das mal nachdenken, also es gibt tatsächlich eine Ratenbegrenzung bei PSA implementiert in dem Motor-Kontrollmodul, nee, nein, gar nicht wahr, also auf dem Fahrzeugkontrollmodul. Also dort, wenn man dort ein Spam quasi von diesen Challenges durchführt, dann wird es dann irgendwann keine Antwort mehr geben. Das klingt vielleicht nach einer gute Idee, ja, Ratenbegrenzung, aber Sie haben es auf der falschen Seite gemacht. Gut, vielen Dank. Hast du irgendwelche Beziehungen zwischen Public Identifiers von den Auto und den Secret Uses von den Gateways? Ja, also wenn die Fahrzeug-Initiationsnummer tatsächlich dort im Binckort im K, ja, ich weiß, wo, nein, aber das habe ich so nicht gesehen. Okay, vielen Dank. Fragen aus dem Internet? Keine weiteren Fragen. In diesem Fall, ladies and gentlemen, vielen Dank. Für die deutsche Übersetzung von