 Wir mögen doch alle unsere Bequemlichkeit, oder? Heutzutage ist es einfach zu umständlich, einen Schlüssel in einen normalen Schlüssel einzuführen. Unsere Lampen sollen sich selbst regulieren, indem wir den Schalt des Epidemises umständlich. Aber wir vergessen, dass dieser Automatisierung einen Preis hat und dieser Preis ist unsere Sicherheit, unsere Privatsphäre. Unsere Redner heute, Markus Hüller und Markus Kamerstetter, reden über ein Device, das sehr viel versprochen hat, das aber dann durch eine ziemlich einfaches Implimationsprobleme im Grunde kaputt gemacht wurde. Und es wird also eine Demo geben. Hier seht ihr die Hardware. Super. Alle, die im Talk nicht dabei waren, ihr werdet das bereuen. Also, Applaus für Markus und Markus. Ja, und willkommen für die deutschen Übersetzung dieses Talks. Eure Übersetzer sind Zebalis. André. Und wir haben gerne Feedback. C3Lingo ist unser Twitter-Account. Hashtag C3T. Okay. Zwei weitere Kollegen, die auch involviert waren, sind auch noch im Publikum, Christian Cordera und Daniel Ubrrian. Und zusammen sind wir von der Sicherheitskonn-Beratungsfirma Trustworks. Also, zunächst mal eine Idee, eine Beschreibung, wer wir eigentlich sind. Wie gesagt, wir sind eine Sicherheitsberatungsfirma. Security Consulting ist also unser Geschäft. Und wir machen auch Engineering und Forschung. Und die Beratungsdienstlisten gibt es 2005. Die Firma ist 2012 gegründet. Und wir machen also Sicherheitsanalysen von Websites, Web-Applikationen. Mehr oder weniger das, was alle möglichen Leute tun. Wir haben aber auch einen starken Fokus auf eingebetteten Geräten. Und mit unserem Hardware-Sicherheits-Label können wir auch bis zum Microchip-Level heruntergehen. Also, einfach nur eine Idee, was wir tun. Wir machen also auch Hochgeschwindel, Skriptografie und Embedded Security Engineering. Dies ist das Laboratorium, das wir haben. Man kann hier also richtig tief runtergehen. Wir haben hier eine, was wir oft tun im Laboratorium ist, die Analysen in Sachen von Seitenkanal-Angriffen. Wir können auch wirklich invasive Angriffe gegen den Microchip ausführen. Und die Idee hier ist also, dass wir sehr gutes Equipment haben. Und das erlaubt es uns, die Analysen in schneller Zeit durchzuführen. Ein normaler Angreifer hätte nicht all diese Tools und hat üblicherweise aber mehr Zeit, um einen Angriff auszuführen. Die Frage also ist, wie zur Helle sind wir nun auf Garagentüren gekommen? Und ihr wisst vielleicht, dass vielleicht viele Garagentüren, die es da draußen gibt, sind bekannterweise unsicher, weil sie meistens statische oder sehr einfache rollierende Code-Schämen, Verschlüsselungsschämen, keine Verschlüsselung, also Codierungsschämen. Und das macht dann Replay-Attacken und Cloning sehr einfach. Das ist ziemlich bekannt. Nun, im Kontrast dazu gibt es dieses System Hermann-Biesekur, ein bekanntem IS-Algorithmus, also ein Hoch-Sicherheitssystem, das etabliert ist. Und wenn ihr das vergleicht mit den klassischen Systemen, die wirklich sehr einfach darüber hin sind, ist dies schon eine sehr große Verbesserung der Sicherheit. Und also die Frage zu beantworten, wie wir jetzt wirklich zu diesem System kamen. Es ist so, dass zwei unserer Analysten, die beide hier sitzen, dieses System tatsächlich bei sich zu Hause haben. Und deswegen fragten sie, ist dieses System wirklich in der Praxis auch sicher? Ist die Implementierung sicher? Nutzt das System wirklich den IS-Algorithmus und benutzt es ihn auf eine sichere Weise. Wie wird das Schlüsselmaterial generiert und wie wird es benutzt? Ist das Schlüsselmaterial verschieden oder gibt es vielleicht geteiltes Schlüsselmaterial zwischen verschiedenen Systemen? Wie sehen die Nachrichten aus auf dem Radio-Kanal? Und zuletzt die Frage folgt das System im Kerckhoff-Prinzip. Wenn also ein Angreifer wirklich sehr genau weiß, wie das System funktioniert und nur den Schlüsseln nicht hat, dann sollte das System immer noch sicher sein. Und dies war der Punkt, an dem wir uns entschlossen, eine Sicherheitsbeprüfung an Audits durchzuführen. Und wie haben wir das Audit durchgeführt auf einem solchen System, einem drahtlosen System mit all diesen Hand-Transmittern und dem Receiver, der typischerweise in der Garage steht? Wir begannen mit den Handübertransmittern. Wir hatten ein paar und haben noch einige weitere dazu gekauft und damit hatten wir verschiedene Modelle, verschiedene Herstellungsdaten, einige der älteren hatten Transmitter, die wir schon 2015 gekauft hatten, einiger andere wurden erst 2017 gekauft. Allgemein kann man sagen, dass die Analyse auch einen größeren Bereich in Hinblick auf die Modelle abdeckt. Wir haben zunächst mal eine Analyse der Radio-Signale durchgeführt. Was im Handbuch wussten wir bereits, dass das System irgendwo im Bereich 868 MHz operiert. Wir nutzen nun ein Soft-Bloody-Find-Radio, Late-RF. Und das Ziel hier war nur herauszufinden, was ist die genaue Frequenz, mit der das System arbeitet? Wie ist das Motilationsschema, dass das System benutzt, um die Daten zu betragen? Wie werden die Kanäle codiert und nachdem wir das beantwortet haben, hoffentlich können wir einige Radio-Frames dekodieren, Daten-Frames. Und man hat nun ein solches System. Was kann man tun, um die genaue Frequenz herauszufinden? Das ist eigentlich ziemlich einfach. Man kann einfach die GNU-Radio-Suite benutzen oder eine Spektratenanalyse durchführen. Wir hatten also unser Soft-Bloody-Find-Radio auf 868 MHz eingestellt mit ausreichend Bandbreite, sodass man wirklich ein Signal sehen kann. Und dann müssen wir nur einen Water-4-Platte erstellen. Und was wir hier sehen, ist, wenn man den Knopf auf dem Hand-Transmitter drückt, sieht man etwas, was ungefähr so aussieht. Ein normales Wasserfalldiagramm zeigt das Spektrum über die Zeit hinweg. Und man kann hier sehen, dass es einen Signal gibt mit einer zentralen Frequenz von 868,330 MHz. Wir haben also die Frequenz schon gefunden, das ist gut. Was wir aber auch sehen, auf der linken und rechten Seite seht ihr diese Peaks. Wenn also das Signal übertragen wird, benutzt es tatsächlich zwei Frequenzen und schaltet zwischen den beiden hin und her, switched. Und das ist ein sehr starker Hinweis, dass hier Frequenz-Shift-Keying benutzt wird. Die ist also, man hat einen Null-Bit, das überträgt man auf der geringeren Frequenz und ein Eins-Bit auf einer höheren Frequenz. Ziemlich einfach. Und wir wissen schon, dass FSK-Modulation benutzt wird. Der nächste Schritt dann ist, dass wir wissen möchten, wie der Kanal, wie das Channel-Coding ist. Wir haben also die Daten-Bits, diese Daten-Bits sind dabei immer noch in einem Kanal-Coding, Channel-Coding. Und wir müssen herausfinden, welches Coding-Schema benutzt wird. Wir schauten uns also das Signal an und im ersten Schritt war es notwendig, zu der richtigen Symbolrate zu kommen. Das typische Symbol startet mit einem Synchronisierungsblock. Das ist also einfacher, mit einem ständig wechselnden hohen und tiefen Signal und das erlaubt dem Receiver seine Symbolrate zum Transmitter zu synchronisieren. Das haben wir dann also auch durchgeführt und wir konnten dann eben auch mit dem Signal synchronisieren. Es gibt ein Bild, auf dem ihr das sehen könnt. Links seht ihr diesen Synchronisationsblock und danach kommt der eigentliche Datenblock. Wir sind hier wieder auf deiner Zeitachse und wir können auch sehr schnell sehen, dass FSK-Modulation benutzt wird. Wir haben diese kurzperiodischen und die langperiodischen Signale. Das ist FSK-Modulation. Und wenn ihr eine Google-Suche ausführt nach GNU-Radio, FSK-Demodulation, gibt es viele Beispiele von demodulierten Blocks. Wir schauten uns also an, wie das typische Demodulationsschema aussieht und haben einige weitere Blocks hinzugefügt, die für unser System spezifisch waren und wir haben dann die Tune, die die Blocks dann zu unserem System auf unser System eingestellt. Die Blocks sind also hier spezifisch und wir haben diesen Block hier, wir haben den ursprünglichen Synchronisationsblock herausgeschnitten und haben jetzt wirklich nur die demodulierten Datenbits und damit können wir dann hoffentlich analysieren und herausfinden, wie das Channelcoding aussieht. Und das haben wir gerade getan. Wir haben also das Dumpffeil, das wir aufgezeichnet haben, analysiert und wir haben gesehen, dass es immer entweder Sequenzen mit den Symbolen 0,1 gibt oder 1,0. Also immer dieser Abfolge. Und dies weiß daraufhin, dass das Manchester Encoding benutzt wird. Ein sehr einfaches Bild hier aus der Wikipedia. Es werden also eigentlich zwei Symbole benötigt, um einen Datenbit zu transportieren. Wenn ihr zum Beispiel zuerst eine 1, eine 0 habt, dann ist das Datenbit einfach einer 1 und umgekehrt ein Bit mit zuerst 0, ein Trimbul, das zuerst mit dem Bit 0 und dann mit dem 1 aus dem Bit 1 besteht, stellt einen Datenbit 0 dar. Und an diesem Stelle kann man bereits versuchen, die Datenframes zu dekodieren. Wir schreiben uns ein Python Script mit dem GNU Radio Framework. Unsere Annahme, was außerdem das typischerweise am Ende eines Frames eine Art von Prüfsumme noch übertragen wird. Der Receiver muss ja am Ende überprüfen können, ob die Übertragung fehlerfrei war, ob es irgendwelche Verfälschungen gab. Und man kann das herausfinden, indem wir eine Prüfsumme ausrechnen und die dann mit der empfangenen Prüfsumme vergleichen. Und was wir dann mehr gefunden haben, ist dieses Halbwetter dargestellt hier. Wir hatten neun verschiedene Handtransmitter und zunächst mal haben wir sie getestet und wir haben uns angeschaut, wie die Frames eben aufgebaut sind. Und an dem Punkt konnten wir sehen, dass die Frames immer mit entweder hexadecimal 7.0 oder 5.0 starteten. Dann folgte eine Seriennummer, die für jeden Transmitter und die individuell war, aber für den Transmitter stets konstant blieb. Dann gab es ein verschlüsseltes Datenfeld. Wir wussten also, dass das System AIS Verschlüsselung benutzt. Und es war hier dieses sehr lange Block, der sich jedes Mal endete. Also offensichtlich ist dies wohl die verschlüsselten Daten. Und wir nahmen an, waren aber nicht sicher, dass das letzte Beid wohl eine Prüfsumme ist. Okay, wir haben das also entschlüsselt können. Wir haben eine ziemlich gute Annahme, wie das Signal aussieht. Aber wir haben immer noch die Hauptfrage, wie funktioniert das System? Wie arbeitet das Verschlüsselungsschema? Der nächste Schritt war deswegen eine Hardware-Analyse. Wir öffneten einfach einen Transmitter. Hier sieht ihr das auf einem Bild. Ich glaube, es ist von einem einigen Transmitter ziemlich klein. Und wenn ihr das öffnet, dann seht ihr also hier das PCB und die Platine. Und dann seht ihr einige Testpads hier. Und tatsächlich, der Chip mit diesem kleinen Aufkleber ist tatsächlich ein Microcontroller. Wir hatten also, schaut uns diese Chips also an und die Markierungen und konnten dann herausfinden, dass es einen Transmitter Schaltkreis gibt, den SX1230 Radio Chip. Es gibt ein öffentliches Datasheet dafür, Datenblatt. Und mehr interessant war allerdings der, interessanter war allerdings der Microcontroller. Denn der Microcontroller enthält die eigentliche Systemimmitierung. Wenn wir also die Firmware analysieren können, werden wir auch genau herausfinden können, wie das System arbeitet und ob es Sicherheitsschrächen enthält. Und wir hatten uns in diesem Fall also diesen Microcontroller angeschaut. Und was wir sehen konnten ist das Microchip-Logo. Das ist also das Logo des Herstellers. Und wir nahmen an, das ist wahrscheinlich ein Pick Microcontroller ist. Aber leider ist es so, dass die genau Modellnummer nicht aufgeschrieben war. Stattdessen gab es einen sehr langen Hersteller-Code. Ihr merkt vielleicht, wenn ihr euch einen Microcontroller kauft in großen Stückzahlen, bekommt ihr manchmal auch eigenen Chip-Markierungen. Wir hatten offensichtlich so etwas vorliegen und konnten also nicht wissen, was für eine Art Microcontroller es ist. Wir wussten nur, dass es wahrscheinlich ein Pick Microcontroller ist. Aber was sonst wussten wir? Wir wussten, dass es 28 Pins gibt an dem Chip. Wir wussten, dass der Chip in einem QFN-Paket ist. Und wir wussten auch, dass der Chip wohl älter als drei Jahre war. Denn das Biscuit-System ist seit schon sehr langer Zeit auf dem Markt. Und erst vor kurzer Zeit hat Microchip Erdmehl gekauft, so dass es also in Zukunft vielleicht Erdmehl-Chips geben wird, die jetzt ein Microchip-Logo haben. Aber bisher kann das nicht sein. Und durch die Platine wussten wir, dass die Masse auf den Pins 5 und 16 ist. Und ihr saht auch diese ganzen Testpoints und wir nahmen an, dass diese Testpunkte wahrscheinlich auch zu den Programmierpins des Biscuit-Controllers gehen. Um nun den Controller zu erkennen, ist es das erste, was wir uns überlegten. Wir machen eine einfache Suche bei einem Komponent-Händler, Komponentenhändler. Wir suchten also nach einem Manufacturer Microchip und 28 Pins und Chips, die in einem QFN-Paket erhältlich sind. Die Ergebnisse waren dann nur vier verschiedene Modelle. Das PIC 16, F18, F24, F32 und F31, sodass wir in dieser Stelle mit diesen vier Kandidaten uns einfach die Datenblätter angeschaut haben. Und es zeigt sich, dass der PIC 24 und PIC 32 nicht nur ein sehr großer Microcontroller ist, sondern er braucht auch die Masse auf PIN 24. Das ist also etwas, was wir nicht auf unserer Platine hatten. Wir können also annehmen oder haben dann angenommen, dass es sich entweder um ein PIC 16F oder ein PIC 18F handelt. Was wir als nächstes dann taten, war zu identifizieren, was die Programmingpins sind. Wenn man einen PIC-Bike-Controller programmieren will, braucht man die Programmierpins, also MCNA, PGT, PGC und VDD und Masse. Und sowohl der PIC 16F als auch der PIC 18F haben die Programmierpins an der gleichen Stelle. Es ist also jetzt ziemlich einfach. Unter dieser Stelle können wir uns einfach verbinden und haben ein Programmable-Device. Das ist das Bild vom PCP und jetzt könnt ihr in rot sehen die Testpunkte und auf der Tabelle recht. Wir sehen, dass die Programmierpins sind an diese Testpads verbunden, also haben wir ein kleines Breakoutboard gemacht, um das abzunehmen. Wir wollten wissen, welcher Microcontroller das eigentlich ist, mit dem wir es zu tun haben. Und das Tool hat uns erzählt, das ist ein PIC 18F 26K Microcontroller, aber was es uns noch gesagt hat, was wir schon angenommen hatten, dass alle Flashblocks gelockt waren. Also Code Protection Pits, um da können Sie nicht einfach die Form wäre auslesen, sie ist Lockdown. Aber was wir auch gesungen haben, dass das E-Prom hinten nicht gelockt war. Also konnten wir den E-Prom down dampen, aber da werden die Form wäre nicht drin. Wir wollten eine Form-Ware-Analyse machen, weil in der Form wäre es die ganze Systemimplementierung drin und nur so können wir finden, wie das System funktioniert und ob er so sicher ist. Die Form-Ware ist lockt. Die sind normalerweise mit einer Sicherung besiegt, aber wir konnten die Form-Ware nicht dampen. Das war mal ein Punkt, wo wir nicht werden müssten. Wir müssten den Manufacturer einfach glauben, dass sein System sicher ist. Wir haben ein Hardware-Security-Libs, haben wir verschiedene Methoden, die wir da ansetzen können, um auch eine Security-Audit auf der Hardware-Ebene zu ziehen. Und wie ist die Logik der Security-Sicherung auf diesem PIC Microcontroller installiert? Und was brauchen wir genau, um eventuell das dort zu umgehen? Und da haben wir gesagt, wir machen eine ESC-Entkapselung, um den Chip aufzumachen und dann machen wir eine ganz kurze, mikroskopische Analyse. Das ist eigentlich ein relativ einfacher Prozess. Du lötest einfach den Chip aus, dann tun wir mit chemisch die Abdeckung abtragen und dann siehst du am letzten Bild, der Chip würde immer noch funktionieren, aber wir können jetzt sehen, wo er gedeiht ist, also wo er gegäbt ist, wo er eingeätzt ist. Nächste Analyse wirken jetzt Mikroskop und das ist was wir sehen konnten. Das ist ein PIC 18 Microcontroller, eine ganz große Flash-Ere, hat einen Messer, einen Masser, einen Ebrom auf der rechten Seite und auf der rechten Seite haben wir vermutet, warum vermuten wir das nur, dass dort die Sicherungen für Security sind? Auf heutigen Microcontrollen kann man das heute leicht erkennen, was ein kleines Metallplättchen. Da gab es früher eine Angriffsmethode, wenn du siehst wie set ist mit UV-Licht, konnte man die Security-Fuses mit UV-Licht löschen und dann einfach den Chip runter dampen. Als Gegenmaßnahme haben die Erzeuger einfach so kleine Schilder eingebaut und jetzt kann man dort auf diesen kleinen Schildern erkennen, wo wahrscheinlich die Security-Fuss sitzt. Wir haben gewusst, also was wir da müssen, wo es gegenübersehen und wir saßen im Lab und haben uns überlegt, was man denn so machen könnte. Erster Methode, die uns eingefallen ist, es ist so schon offen, wir könnten eine FIPSurge-Edit machen, die haben schon FIPS, die haben schon aufgemacht, der Approach würde wahrscheinlich so funktionieren, wir müssten die Security-Fuse-Logic identifizieren, eventuell STP tiefer hineinschauen, wie die Logic funktioniert und dann könnten wir wahrscheinlich die Fuse umgehen mit einer Pick-Edit, Circuit-Edit. Was wäre der Vorteil von seinem Approach und der Nachteil, der Vorteil, wenn es gelingt, dann funktioniert das Vorlebure. Der Nachteil war, wir hatten noch nie so etwas gemacht und es hätte uns sehr lange gebracht, wie die Security-Fuse-Logic funktioniert. Um das zu zeigen, wie wir das gemacht hätten, das ist unsere Fit-Maschine, das ist, was man damit machen kann. Das ist praktisch wie ein Löt-Eisen auf einem Chip, auf mikroskopischer Basis. Die Maschine erlaubt ihr, die Spuren zu geschnitten und neue auch aufzulöten, wir hätten dort den Track-Gecut, den Output geschnitten oder zu Ground oder so wie die die und dann hätten wir den fixen Output und könnten den Fit-Edit umgehen. Zweiter Methode, da hätten ein bisschen mehr Research gemacht, die bekannte Bunny-Attacke. Ich habe euch schon vorher gesagt, dass gegen die UV-Fleschung der Erzeuger, die mit kleinen Metallplätschen abdeckt. Bunny Huang wollte das auf einem anderen Pick-Controller machen und was er gefunden hat, wenn du das UV-Licht sehr schräg von der Seite einführst und das wird hin und her reflektiert und auch dann kann man mit genug UV-Licht drinnen sein, dass man die Fuse löschen kann, die Sicherung. Das wäre nett, Vorteil ist, der Chip ist schon offen, das müsste vielleicht funktionieren. Bunny hat das auf einem anderen Chip-Modell gemacht, wir wussten nicht, ob wir dieselbe Sicherung haben und ob das hier funktioniert. Da gibt es auch andere, die heißen Interviews. Wenn die UV-Licht bestrahlt werden, dann brennen sie sich ein und man muss das Flash-Memory mit einem permanent Marker oder mit einem, weil sonst löst du auch das Flash-Memory und das hat uns ein bisschen Sorge gemacht, dass wir den Chip zerstören und uns war nicht klar, ob diese Methode funktionierte. Der dritte Methode hat es schon mehrmals vorgekommen, das ist Voltage-Caching. Wir haben also einen Verstärker, wo wir Kitchen-Attack machen können, mit hoher Pulse und hohem Strom, mit zwölf Nanosegunden. Vorteil wäre einfach zu machen und wir hatten keine Ahnung, ob es funktionieren würde und wir haben das dort noch nie gemacht und ob es auf dem PC 18F funktionieren würde. Und dann war noch eine vierte Methode und das war die einfache Methode, die jeder mit ein bisschen Technik zu Hause machen kann, ohne den ganzen fancy Tools, die wir da oben angeführt haben. Ein ganz trivialer Designfehler in der Logik des Chip-Pick 18F, der Controller hat fünf Memory-Blocks und jeder dieser Memory-Blocks hat ein individuelles Locking-Bit. Was man machen kann, du löscht einfach ein Locking-Bit, da löscht du natürlich auch den Inhalt, aber die Programmierung der anderen verbleibenden Block wäre breit, dann kannst du einen Dumpcode uploaden zu diesem Block, und der Dumpcode wird die anderen gelockten Blocks noch aufstehen, das wurde schon vorgeführt in 2010 bei Miele Schmeriak in seinem Talk auf dem 27C3. Um das zu machen, haben wir eine Funby Extraction Tool, also ein Download-Tool für ein PIC, das ist ein kleines Board, ein FCD-Eye-Board, einer so einen USB-Zus-Serial-Converter, ein Schotern-Radius-Skipt, Softworks-Skipt geschrieben, und dieses Setup hat es uns ermöglicht mit dem PIC-Microcontroller direkt zu sprechen. So schaut das auch, ja, 5 Memory-Block, der erste Block ist der Bootblock, dann ist der erste Codeblock, ein bisschen Keller bei der Bootblock nach dem Pass weg nimmt, und dann hast du noch 3 16 Codeblocks, und alle sind jetzt verschlossen. Was du machst ist, wir haben in diesem Fall den Bootblock weggenommen und gelöscht. Die anderen 4 bleiben gleich, und dann schreiben wir selbst einen eigenen Dumpcode und schreiben ihn in den Bootblock hinein, und wenn der Chip dann hochfährt, und der Bootblock wird ganz glücklich, alle anderen 4 Bootblocks einfach dampen, und da ist es offen. Was wir da nicht haben, ist den Bootblock, weil wir haben ihn überschrieben und der Inhalt ist weg. Was tun wir da? Wie kriegen wir den? Also, wir kaufen noch einen zweiten PIC-Programmier, es ist Code, Chip verzerrt, das haben wir gemacht, haben wir einen anderen Codeblock auf dem zweiten Chip gelöscht, das war der erste, denselben, und da haben wir dort den Dumpcode eingeführt, und jetzt hat dieser dann den Bootblock gedampft. Also, bitte erinnert euch dann, die Exekution, also der Hochfahren fährt ein Bootblock an, und wir wissen nicht auf welchen Punkt in unserem Block, für den Einsprung, Informationen, und wir wissen auch nicht, wo die Exekution hinspringt und wo sie, verwendest du einen Knopfslide, und am Ende des Knopfsplats hast du deinen Bootblock. Da hast du zwei teilweise Dumps von den PICs, die kombinierst du, und dann hast du den Hohlen alle, da kannst du sie reflechen, beide, und dann werden sie beide das Originalprogramm wieder haben. Bei diesem Punkt hat mir die firmware extrahiert, und konnten uns die firmware mal anschauen. Die haben das Ida Pro Tool verwendet, dass die PIC-Artektur unterstützt, und so haben wir uns angeschaut, wie das System funktioniert. Also, das gibt uns einen tiefen Blick auf das Protocol, die Checksum-Kompatierung, welche Verschlüsselungsmethoden einverwandert wurden. Und richtig, wir konnten auch hier verstehen, dass das letzte Beit eine Checksum enthielt, um nur eine Idee zu geben, das ist das Ergebnis der Firmware-Analyse mit dem inkriptografischen Schema und die Schlüsselgenerierung. Links ist die Seriennummer, die heißt, ist individuell, für jeden Hand-Transmitter, Hand-Sender anders. Und in der Mitte des Inkriptionalgorithmus ist ein IS 128 Algorithmus, und darum herum ist ein bisschen Herman Magic, das ist Side-Channel-Attacks, nehmen wir mal an. Und links ist ein Random-Seat, und der ganze Block erzeugt einen neuen Random-Seat. Aber rechts ist ein statischer Wert, der auf allen Hand übersendern gleich ist. Random-Seat wird als Schlüssel verwendet und es definiert den Ausgabeschlüssel. Im Endeffekt wird dieser Schlüssel immer überall verwendet, um Wireless Frames zu übertragen. Und das ist also, was wir entdeckt haben mit der Analyse der Radiosignale. Ja, das ist also das, was wir erhalten. Wir wissen nun die Seriennummer. Die Seriennummer wird übertragen im Klartext und wir haben also den Input dieses Verschlüsselungsschemas, die Seriennummer. Das nächste, was wir haben, ist, wir kennen den statischen Wert, der eingesetzt wird. Der ist in der Firma einprogrammiert und ist nun allen Hand-Transmittern gemein. Wir wissen außerdem, wie die Verschlüsselung mit dem IS-Algorithmus eben Kern funktioniert, denn sie ist in der Firma implementiert. Und was wir nun herauswanden war, wir haben also nun den ursprünglichen Zufall-Seat und natürlich ist dieser ursprüngliche Zufall-Seat auch im Hand-Transmitter drin sein. Was wir nun leider herausfanden, ist, dass dir selbe initiale Zufall-Seat auf allen Hand-Transmittern, die wir analysiert haben, benutzt wurde. In anderen Worten hatten wir also alle notwendigen Daten, um einen Kommunikationsschlüssel zu generieren aus der Seriennummer. Wie können wir diese Verwundbarkeit nun angreifen? Um eine Attacke auszuführen, können wir zum Beispiel eine einfache Software-defined-Radio benutzen, zum Beispiel das vom CCC, vom Sommercamp 2015 oder das HackRF. Aber wie gesagt, wir haben das CCC-Radio benutzt. Wir waren beim Camp 2015 und dort war es frei erhältlich als ein Konferenz-Badge. Und was wir nun also traten, um das auszuführen, war, wir zeichnen die Radio-Übertragung aus von dem CCC Hand-Transmitter einmalig. Wir brauchen das nur einmal zu tun. Und was wir dann also erhalten, ist ein Frame von der Radio-Kommunikation. Wir sollten hier zwischenwissen, wie so ein Frame aussieht. Und im nächsten Schritt benutzen wir die Informationen, die wir erhalten haben durch die Firmware-Analyse und die Informationen aus diesem Radio-Frame. Das sieht nun so aus. Wir wissen nun, wie alles, was wir brauchen, um den Kommunikationsschlüssel, den Langzeitschlüssel zu berechnen. Und das ist etwas, was wir im nächsten Schritt tun. Wir berechnen einen Kandidaten für den Kommunikationsschlüssel. Dieser Kandidat ist korrekt, wenn wir das Paket damit entschlüsseln und wir einen bekannten Ursprungstext dann bekommen. Sonst müssen wir den Prozess wiederholen. Warum muss das sein? Warum ist es überhaupt nötig, etwas zu wiederholen? Das ist nötig, wenn der User manuell einen neuen Schlüssel erzeugt hat. Das System stellt diese Funktion zur Verfügung. Und wenn der Benutzer das getan hat, dann müssen wir vielleicht diesen Prozess ein oder zweimal wiederholen. Und danach wissen wir nun den Langzeit-Kommunikationsschlüssel kennen ihn und können deswegen die verschlüsselten Nachricht von den Radio-Frames entschlüsseln. Und wir können den Counter um eins erhöhen, die Nachricht wieder verschlüsseln mit dem erhaltenen Kommunikationsschlüssel. Und dann im letzten Schritt benutzen wir zum Beispiel das TCC-Radio, um einen Frame zurück zu übertragen. Und dafür haben wir eine Live-Demo vorbereitet, die hoffentlich funktionieren wird. Ich bitte jetzt die Video-Mercru hier zu Markus umzuschalten, zum anderen Markus. Ja, danke. Wir haben für diese Demonstration ein kleines Set abgebaut. Dies hier ist also das wirklich das Array eines Garagentour-Öffnisses. Das wird also in der Decke der Garage installiert. Und das zieht jetzt diese Flagge herauf und herunter. Hier haben wir den Operator, dass also der, dass den eingetragenen Empfänger enthält. Und wir können dies nun bedienen mit einer Fernbedienung. So, soll ich mal drücken um das zu demonstrieren? Ja, wenn du magst. Also wenn ich das drücke, dann bewegt es sich. Also wir können sagen, dass die Garagentour jetzt senkt. Okay. Und nun beginnen wir den Angriff. Wir haben einen Sniffer, der die Reitepakete jetzt on air sich anhört. Das ist nicht synchronisiert mit der Tür, aber wir können Pakete sehen. Wenn also irgendjemand jetzt ein Receiver hat, könntet ihr den drücken und wir würden die Pakete sehen. Ah, da gibt es sogar einen. Vielen Dank, dass ihr eure Schlüssel mitgeteilt habt. Sehr schön. Der Sniffer ist also konfiguriert, dass er aufhört, wenn wir das Signal von Handtransmitter mit der richtigen Seriennummer bekommen. Wenn Markus jetzt also diesen Knopf nochmal drückt, ich drücke den Knopf und die Tür öffnet sich, es gibt Bewegung und wir bekommen ein Paket, das wir für unsere Berechnung brauchen. Dies ist also das Paket. Und jetzt haben wir das Skript, das alles berechnet, was wir brauchen. Wir haben hier also das Paket. Wir haben den Input für unser Skript. Das ist das Paket und die Seriennummer wird als nächstes ausgegeben und es wird der Kommunikationsschlüssel berechnet. Dann wird das Paket entschlüsselt, das wir hier nicht zeigen wollen, denn wir haben uns, wir haben vereinbart, dass wir die Struktur ins Klartextpaket nicht zeigen. Das war vereinbar mit dem Hersteller. Wir zeigen einfach nur den Wert des Countess, erhöhen den um eins, können dann einen Paket wieder verschlüsseln mit dem Kommunikationsschlüssel und das in einen Frame einbauen und das ist dann also fertig, um wieder übertragen zu werden. Mit einem Weitranskript können wir das dann also übertragen mit unserem Radio. Wenn ich also jetzt den Knopf drücke, sollte die Tür sich öffnen, ohne dass Markus irgendetwas tut. Schauen wir mal, ob das funktioniert. Applaus. Und nun können wir wieder den Sniffer starten und schauen, was passiert, wenn Markus den Knopf aus deiner Feinde, wenn er nun noch einmal drückt. Ich drücke ihn. Und ja, wir haben dein Paket und es ist genau das selbe Paket, das wir berechnet haben und außerdem zusätzlich dazu hat sich die Tür nicht bewegt, weil dieses Paket bereits empfangen worden ist und es reicht also hier nicht aus, einfach das Paket neu abzuspielen. Der Zähler muss noch einmal erhöht werden, wenn also Markus den Knopf noch einmal drückt, wird sich die Tür bewegen. Ich drücke den Knopf noch einmal und ja, es funktioniert wieder. Okay, das ist also nun unsere Live-Demo. Markus wird nun mit der Folgenabschätzung fortfahren. Danke. Kannst du wieder zurückschalten bitte, Video Crew? Ja, danke. Also, nachdem wir nun herausgefunden haben, wie die Verwundbekeid 14 wollten wir auch eine Folgenabschätzung machen. Wir haben also eine Beobachtung durchgeführt und bemerkt, dass die Seriennummer des selben Modells des Handtransmitters, das wir gekauft haben, dass die also, dass die 10 Nummern von so kurz, so ähnlichen Zeiten gekauften Transmittern, sich nahe beieinander lagen. Wir hatten also die Vorstellung, dass hier diese Seriennummer sequenziell vergeben werden und unsere Annahme ist, dass es Millionen von Geräten tatsächlich gibt da draußen, aber das ist nur unsere Einschätzung. Wir wissen nicht wirklich, ob wir hier richtig geraten haben. Die nächste Frage ist, wie können wir die Verwundbekeid reparieren? Und das ist relativ einfach. Die Handtransmitter haben seit alle den gleichen Zufallzieht und die Lösung ist ganz einfach, dass jeder Transmitter seine eigenen individuellen Zufälligensied-Werte verwenden muss, weil dieser zufällige Zied in diesem Einfall, in diesem Fall dann nicht mehr gemein ist allen Handtransmittern der Angreifer kennt, also nicht mehr den Anfangs-Seed und muss dann sowas wie eine Blutforce-Attacke starten auf diesem Random-Seed. Das haben wir also getan, als wir diese Verwundbekeid bemerkt haben und wie es hier heißt, in Fall einer Schwachstelle bitte verantwortlich bekannt geben. Wir haben also einen Veröffentlichungsprozess befolgt. Am 4. Oktober haben wir das nationale SIRD-Team von Österreich involviert als Koordinator. Wir haben dann diese Sicherheitsschwachstelle ihnen berichtet mit einem detaillierten Ratschlag und einem vorgeschlagenen, an der vorgeschlagenen Reparatur. Ende Oktober erhielten wir dann eine Bestätigung vom SIRD-Team, dass der Hersteller die Information erhalten hat und dass er das Sicherheitssystem anerkannt hat. Und dann hatten wir verschiedene E-Mails und Phone-Kommunikationen mit dem Hersteller. Und Ende November 2017 hat der Hersteller uns auch besucht in unserem Laboratorium. Wir haben die Schwachstelle noch einmal demonstriert und die vorgeschlagene Reparatur. Und im Dezember 2017 haben wir auch die Information bekommen, dass der Fix jetzt auch implementiert ist und sich in der Testphase befindet. Ja, um also nun zum Schluss zu kommen, wir haben eine verwendbare Methode präsentiert, mit der man radiosysteme, drahtlose Radiokommunikationssysteme analysieren kann, die Microcontroller einsetzen. Natürlich denken wir, dass der Hersteller ein wirklich sicheres System haben möchte. Ich denke, es ist wichtig, auch unabhängige Sicherheitsautos durchzuführen. Das ist also ein wesentliches Werkzeug, um ein hohes Sicherheitsniveau zu bekommen. Denn ihr wisst, wir haben dann diesen Blickpunkt von außen und wenn dann Schwachstellen gefunden werden können, kann man sie zu einer frühen Zeit auch reparieren. Außerdem, wenn es um Hardware geht, wenn es zu Hardware und Hardware Security kommt, ist es, wenn du eine Hardware Security Unterstützung hast bei der Hand, es gibt verschiedene Methoden, die man verwenden kann. Es ist nicht so, dass du das System vorhast und du machst deinen Security Audit und dann sagst du okay, jetzt kann ich die nicht die firmware ist, jetzt kann ich keine firmware Security reden mal. Wenn du mehr Optionen hast, ist das wesentlich einfacher. Wir sind auch dem Responsible Decosa Process gefolgt und haben den Erzeuger, den Hersteller unterrichtet und haben ihm auch geholfen, die Verletzbarkeit zu analysieren, zu verstehen und auch zu reparieren und wir werden das natürlich auch öffentlichen. Nachdem wir diesen Tag gehalten, gibt er den CDID und einen CVS-Score. Der CVS-Score ist ziemlich hoch. Wir glauben, es ist ein signifikanter Vulnerability. Danke für Ihre Aufmerksamkeit. Ich hoffe, dass ihr euch unser Tag gefallen habt. Wenn ihr eigentlich Fragen habt, Applaus. Yeah, so if you have any questions, we have four microphones as one, two, three and four line up behind those questions. Okay, auf der Frage Antwort. To define what a question actually is, is like one or two one or two sentences that actually end with a mark. Bitte nicht mehr als zwei Sätze und mit einem Fragezeichen dahinter. Keine langen Geschichten zur Mikrofonenz. Ja, also du hast gesagt, dass der Hersteller einen Fix vorgestellt hat. Heißt das nun, dass die Kunden neue Geräte kaufen müssen oder wird es ihnen möglich sein, die Software zu aktualisieren? Können sie das austauschen? Das wissen wir nicht, was die geplant haben, aber wir haben gerade ein Field bekommen, dass es einen Security Fix gibt. Es kommt auf den Erzeuger an, den Hersteller wird das implementiert und wird das mit seinen Kunden absinkt. Ist Internet eine Frage? Ja, also die erste Frage ist, die ich ziemlich früh schon bekam, die die schon früh zu die Früh im Talk kamen, CBM User bemerkte, dass es ein relativ teuer aussieht von einem geldlichen, zeitlichen Aufwand. Perspektive her, wer hat das bezahlt? Diese Arbeit war eigentlich ein Spaßprojekt. Die meiste Arbeit, die wir machen, ist bezahlte Arbeit und das können wir natürlich nicht, wir könnten es nicht erzeugen können. Also es war unsere Arbeit, wurde nicht bezahlt und der kann ich sie auch präsentieren. Okay, Mikrofon 1. Großer Talk, großartiger Talk. Wie viele dieser Garagentüröffner haben tatsächlich verwenden, tatsächlich eine Verschlüsselung? Ist das Ausnahme oder Standard? Ich denke mir, es ist, ich glaube, das Hermannsystem mit IS ist eher eine Ausnahme, das übliche System, das wir gesehen haben. Wir haben auch ein paar andere Freunde, die Garagentore haben uns auch angeschaut mit einem Software Defined Radio und üblicherweise findest du entweder statische Nachrichten mit einem statischen Code. Du brauchst nur einen einfachen Tag vor und die Tür geht auf. Das ist hier ein anderer Level. Die Mehrzahl des Systemes ist also wahrscheinlich ziemlich schwach. Mikrofon 2, meine Frage, ihr erhört den Counter, wenn man die Counter weiter erhöht, könnte man durch die Tür immer blockieren? Ja, das kann der Mann tun. Diese akzeptierte Wert und der Empfänger, um damit der Replay Attack verhindert, muss diesen Counter nach vorne bewegen. Und wenn ich deine Attacke starte und ich es wesentlich weiter nach vorne bewege und dann kannst du hundertmal draufdrucken auf den Hand-Transmitter, bevor du da wieder hinkommst. Wir haben das vorher gerade ausprobiert und nachdem den Frame schon verwendet wäre, hat das nicht funktioniert, habt ihr in der Demo gesehen, das war aber nur einmal. Okay, Mikrofon 1, danke für eure Arbeit. Sorry, das ist ein Missverstand, aber das Prinzip ist also jetzt, die Lösung ist, also diesen statischen Installationsvektor zu verändern pro Gerät. Wie bestoppt das dann den gezielten Angriff, wenn man also den Schlüssel eines Invitums kennt? Das würde der Angreifer ursprünglich den initialen Einschwungssektor nicht wissen. Wo soll er denn herkriegen? Wenn der Erzeuger es weiß und das Seed wäre dort gespeichert, dann vielleicht kannst du ihn dort bekommen. Aber wenn das Seed im nur im Hand-Transmitter gestohlt ist, dann müsst du deine Frame-Reaction auf dem Receiver, dann müsst du an dem Receiver vorher weg, den Center vorher wegnehmen und verzerren. Ich dachte vielleicht, dass das Produkt so in einem Back-Abschüssel hat, also vielleicht zwei Transmitter und einer könnte verloren gehen. Nein, das wären verschiedene, auch wenn er zwei hätte, wären nicht dieselben. Okay, danke. Das enthält dann eine Frage? Ja, TNT möchte wissen, ob der Seed, wenn der Seed zufällig ist, heißt das, dass man keine neuen Key fobs in ein Exteriosystem auch registrieren kannst und verwenden kann. Ja, man könnte es registrieren, würde gut funktionieren. Wir haben uns nicht angeschaut, wie das Tatsächel, wie das Tatsächel im Baring-Prozess funktioniert, wird dann nur einmal gemacht wird. Ja, aber im generellen, egal welcher Seed da drin ist, da muss irgendein Austausch stattfinden, wo der Schlüssel mit dem Empfänger verglichen wird. Das wäre nicht wirklich ein Problem. Mikrofon 1, das Problem war der nicht zufällige Seed. Wenn man also zufällige Seeds bekommt, das wäre, dann wäre das einzige, was man wohl noch hat, sagt, hat ihr für einen Attacker es Blutforce, könntest du einen Hinweis geben, wie lange eine sohe Blutforce angestraufen würde? 80 bits, ziemlich lang, zum Beispiel. Wir haben ein FGA Cluster, den wir ausverwenden, um das zu erkunden und wir haben so ähnliche Algorithmen darauf angewendet, 80 bits, ein paar Monate mindestens, mindestens. Mikrofon 1 wieder, hi, danke für eure Arbeit. Und das Ding ist, wenn man die Garagetür jetzt mit einem SDA Transmitter nun zu jammt und dann die Codes aufzeichnet von dem Transmitter und eine Replayattacke durchführt, wird das dann funktionieren oder nicht wegen des rollierenden Codes? Wenn du den Knopf drückst, siehst du den valablen Frame aus und wenn der Frame den Receiver nicht bekommt, könntest du den Frame noch verwenden später. Ja, aber das Ding ist, wenn der Frame nicht benutzt wird, wenn der Frame gesendet wird und der alte Frame, wäre der alte Frame noch aktiv? Nein, nein, das würde den Frame ungültig machen, da gibt es nicht einen Gegenwert in den anderen und alle Gegenvalues vorher, es werden ungültig geschehen. Okay, danke, das Internet wieder? Ja, eine ziemlich beliebte Frage, du hast angemerkt, dass es Reparatoren ein Fix geben wird, dass es Updates geben wird für dieses Gerät. Werden diese Devices nun Geräte automatisch aktualisiert oder müssen die Kunden dann zum Garagentor gehen und wenn es sich automatisch aktualisiert ist, sind diese Türen dann mit dem Internet verbunden? Nein. Werden die Türen noch der Sender hängen am Internet? Wir haben keine Ahnung, wie das sich der Erzeuger vorstellt, aber übers Internet werden sie automatisch, das wird es nicht spielen. Microphone 1? Gibt es irgendwelche anderen Erkenntnisse im Code, die gedammt habt, Synchronisationscode oder irgendetwas in dieser Art, Aktualisierung der Firmware, irgendetwas? Nein, wir haben uns nur angeschaut, wie das geben, welches Schema verwendet wird und nachdem wir diese Verletzbarkeit gefunden haben. Wir haben dort aufgehört, weil das System schon geknackt ist. Danke. Ja, ich glaube, wir haben keine weiteren Fragen mehr, außer jetzt ist jemand sehr schnell. Also ich bin wirklich froh, dass meine Garage kein automatisches System hat und damit würde ich gerne, dass ihr mir helft, Markus und Markus zu danken für diesen Fantasticen Talk und macht das wirklich hörbar. Danke. Ja, danke auch für das Anhörende der Übersetzung. Ich hoffe, es hat euch auch in der Deutschen Wessonschafts Spaß gemacht.