 Willkommen zu dem Vortrag Million von Luggegatter verstehen von Kitty in der deutschen Übersetzung von Florian und Pink Dispatcher live vom 36C3 in Leipzig. Ja, um geht es darum, was, warum sollte es ein interessieren und was kann man machen, um Chips oder Hardware auf ISC-Leibniveau zu reverse-engineern? Begrüßt unsere Sprecherinnen mit einer Runde Applaus. Hallo, danke für die Einführung. Ich hoffe, ihr mögt meine pinken Katzen. Ich habe versucht, sie auf mein Haarfarbe anzupassen, aber es ist nicht ganz geklappt. Und ja, ich werde über Reverse-Engineering vom Gate machen. Kurz vor diesem Talk gab es gerade einen über die Grundlagen von Hardware-Reverse-Engineering. Deshalb werde ich über die Grundlagen hier nicht aufgehen. Worüber ich nicht rübergehen, ist nicht über irgendwelche PCBs oder irgendwelche Prozessanalysen, oder ich werde auch nicht irgendwas über elektrische Proben machen. Das ist nicht mal ein Spezialgebiet. Ich mache auch keine Prozessanalyse. Also ich gucke keine Rastatode-Mikroskome, um graus zu kunden, wie Chips gemacht werden. Und ich gucke, mache auch keine Fault-Injection und ähnliches. Worüber ich reden möchte, worüber ich getrackt bin, was zum Teufel ist, dieser Chip. Es kann zum Beispiel auch ein Offener-Chip, ein Open-Source-Chip sein, aber heißt, dass wir tatsächlich wissen, was da drin ist. Und nein, wir haben ein paar Lücken davon. Wir kennen die RTL-Diskription, Beschreibung, aber ganz einen Haufen von Herstellungsdaten, die kennen wir einfach nicht. Und ich würde gerne alles über diesen Chips wissen. Das wäre echt cool. Also lass uns rausfinden, was in dem Chip drin ist. So ja, wer hatten diese Idee bevor, mit welchem Software gibt es das auch schon? Wenn man nach Software-Reverse-Engineering gesucht, dann kriegt man ganz riesige Liste. Dann kriegt man diese Listen, die 12 festen, die 9 besten Tools davor. Wenn man das Gleiche mit Hardware-Reverse-Engineering macht, dann kriegt man gerade die Wikipedia-Seite mit dem Titel Hardware-Reverse-Engineering. Und vielleicht ein paar Vorträge oder ein bisschen akademische Forschung, aber man gibt keine Werkzeuge und keine Anleitung und so. Das ist ein bisschen ein Problem für mich. Und das möchte ich ändern. Ja, hatten wir einen Überblick dafür, wie ein Chip hergestellt ist. Man hat einen Design, also einen Wender. Dann gibt es diese RTL-Beschreibung, dann wird es synthesisiert, dann wird es gelay-out. Dann geht es in eine Fabrik irgendwo auf der Welt, dann kriegt man ein paar Wafers zurück. Die testet man. Und dann hat man einen Chip und dann, ja, werden Sie gepackt. Dann hat man so ein bisschen Life-Cycle-Management. Dann ist der Chip jetzt fertig, oder ist er tot und dann recycelt man ihn oder nicht. So, ja, worüber macht sich eine Firma sorgen, wenn Sie einen Chip designen. Sie möchten nicht, dass die Foundry, die Chip, fertig sich den Chip klaut. Das wollen Sie nicht. Sie wollen auch nicht, dass schlecht getechtete Chips, also Chips, die nicht die Anforderungen erführt, dass die rausgehen. Also, zum Beispiel, wenn die Foundry feststellt, dass 90 % okay sind und die letzten 10 % sind nicht gut, dann sagt die Foundry, okay, wir schmeißen sie weg, aber ja, ja, macht sie das tatsächlich. Und das möchte natürlich der Hersteller nicht, dass solche recycelten, möglicherweise schlechten Chips in den Markt kommen, weil das kostet Geld. Also, das die Hersteller interessieren sich dafür, dass die Chip sicher ist. Was du als Anhänder dir Sorgen machst, das sind andere Dinger, zum Beispiel, dass die Chips, dass du sowas sind sollen, dass da kein irgendwelche, welche andere drin sind. Zum Beispiel, wenn es im Auto ist oder in deinem Kernkraftwerk oder so, möchte man nicht, dass da irgendwelche Funktionen drin sind, die da sind. Oder es kann auch sein, dass das Design-Team, dass den Chip entworfen hat, irgendein Fehler gemacht hat oder irgendwas in dem Design versteckt hat, die nicht in der Spezifikation stehen oder man findet irgendwann komische Dinge in einem Chip findet, die nicht dokumentiert sind. Und wir sind natürlich auch darüber besorgt, dass die Foundry irgendwas darin versteckt hat, dass der eigentliche Auftraggeber nicht da drin haben wollte. Also wir als Anwender wollen Chips, die funktionieren und die keine bösen Dinge enthalten. Und das heißt natürlich auch, wir wollen keine Chips haben, die deinem Testen durchgefallen sind. So, was ist das Leben eines Testchips? Also ja, es kommt aus der Foundry und dann holen wir das aus dem Gehäuse raus, dann tragen wir die einzelnen Schichten ab und machen Bilder davon. Und dann am Ende haben wir eine Art und eine Liste von Verbindungen. Dann findet man in den Bildern und dann macht man ein Bild verarbeitet und dann brauchst du finden, wo genau die Verbindung ist. Dann identifiziert man Standardzellen und da geht man dadurch, dann hat man so ja ein paar Hundert Zellen davon. Und dann findet man zum Beispiel durch Mustererkennung die restlichen paar Teile. Das ist nicht trivial, das ist komplex, aber wir wissen, wie das geht. Bildverarbeitung kennen wir, ist einigermaßen bekannt. Und am Ende haben wir diese Netlist und wir fragen uns, was bedeutet sie eigentlich? Ich hoffe, ihr habt sowas zu Hause, wenn ihr reverse Engineering macht. Das steht in der Garage bei euch. Nein, es war nur ein Scherz, man braucht das nicht. Es gibt Unternehmen, die das für einen machen. Und das Interesse, was da passiert, wenn man die Netzliste hat, dann braucht man davon überhaupt nichts mehr. Dann lass uns über die Probleme reden, die uns eigentlich interessieren. Was ist der interessante Teil vom Netlist Reverse Engineering oder Netlist Abstraktion? Wie kommt man aus diesen Millionen von Knoten und sowas zu etwas, das man verstehen kann? Also das Erste, was man tut, und wir hatten das in der vorherigen Tagwand-Vortrag, man versucht die Hierarchie zu finden. Man guckt, welche Module hat man dazu? Wo sind die Grenzen zwischen diesen Modulen? Das wäre hier das Partizionierung, bei der Synthesie Partizionierung, um das Layout zu machen und bei der Reverse Engineering machen wir das, um Single zu klettseln. Hier haben wir schon echten Fehler drin, das Spoiler für später, das ist nicht gut. Und dann versuchen wir zu identifizieren, was etwas ist. Und hier kommt zum Beispiel, hier was könnte sein, das könnte ein Kryptokor sein, aber hier ist noch, und hier kommen wir zu dem vorliegenden Vortrag zurück. Bilderkennung für Netlist-Analyse ist schwierig, es ist tatsächlich ein Risk-5-Kern. Wie macht man das, wenn du einen Netlist hast? Ich gebe euch einen Überblick darüber, was wir in der Universität machen. In großen Unternehmen haben wir einfach ein Haufen Spezialisten, ein paar hundert Spezialisten, die darauf gucken. Wir haben das vor 20 Jahren designed, und ich weiß es hier, und wir aus dem vorherigen Tag wissen, da gibt es überhaupt keine Automatisierung hier. Also lass uns über Partizionierungsmethoden reden. Wir haben einen Chip, das macht irgendwas, und wir gucken irgendeinen Datenfahrt an. Man hat irgendein Multiplizierer für 32-Bit, und man hat zwei 32-Bit-Inputs. Und jeder Input hat das Gleiche, wenn man mit einem Pist passiert das Gleiche 32-mal. Dann klassifizieren das als ein Datenwort, und dann versuchen wir, wo diese Worte liegen, und dann propagieren wir sie durch das ganze Design, und dann kommen wir irgendwann von einem Input zu einem Output, und man weiß dann, okay, das sind die Grenzen zwischen einem von den Modulen, das ist die Grenze des Moduls, und man hat den Multiplizierer und man hat einen Bus, und dann hat man eine 32-Bit-Architektur, und dann sieht man zum Beispiel hier ein Anstattwert, Entwort, und das dazwischen ist alles mein Modul. Das andere, was man machen kann, ist die grafische Analyse. Das hier ist etwa eine voll, voll parallelisierte AIS-Implementation in Hardware. Das kann man sehen, weil das genau 256-S-Boxen, also wenn ihr tatsächlich mal sowas designed macht, macht das nicht so, das können wir sehr einfach erkennen, dass das eine AIS-Implementation ist. Und ja, und wenn man dann halt eine grafische Cluster-Analyse mache, dann, wenn du sowas rauskommst, ist relativ einfach zu sehen, dass das ein AIS ist. Es gibt verschiedene Arten, Dinge zu partitionieren. Es ist relativ schwierig, und wir würden am liebsten jede Zelle genau in einen Design partitionieren, und das geht meistens nicht. Typischerweise kriegen wir so 80, 90 Prozent, was normal ganz gut wäre, aber hier ist das leider nicht genug. Der zweite Teil, den wir haben, nun haben wir unsere Module, und wollen wir wissen, was ist das Modul? Und jetzt, was wir typischerweise machen, ist, wie vergleichen es ist. Also hoffentlich haben wir irgendwo eine Datenbank mit allen Bekannten entwürfen, und wir vergleichen unser unbekanntes, unbekannte Design mit irgendetwas in unserer Datenbank. Also, ja, man versucht wirklich, viele Beispiele zu kriegen, zum Beispiel eine Design-Library oder Open-Course oder Libre-Course, oder als eine Unternehmen hat wir vermutlich auch Zugriff auf IP, das ihr hier benutzen könnt. Und dann gucken wir, wenn wir irgendetwas, eine unbekannte Netliste haben und wir die Inputs an, und dann die Outputs, und wenn wir zu jedem Input, den man reinsteckt und der gleiche Output rauskommt, wir bekannten, dann ist es vermutlich genau dasselbe, und das ist ganz nett. Ja, wir brauchen eine perfekte Abbildung, ein perfekter Match, und beim Deep Packaging und Delay-Ring, ja, man kann natürlich Staub da drauf haben, und dann sieht man manche Gatter nicht und manche Verbindungen nicht, und dann funktioniert es nicht mehr, das ist nicht mehr perfekte Übereinstimmung. Und wenn man ganz viele Gates haben, dann hat man ganz viele Polygone und das, man überhaupt keine Probleme hat, die Wahrscheinlichkeit ist sehr, sehr gering. Das heißt, diese Methode funktioniert nicht. Wenn man eine perfekte Netlist-Extraktion hat, dann im FPGA funktioniert das vielleicht, aber man braucht eine perfekte Partitionierung und man muss das alles perfekt beschreiben können, damit dies funktioniert. Man braucht auch die bekannte Netlist. Wenn man die auch nicht hat, ist das natürlich ein Problem. Man, also in der akademischen Welt, funktioniert dies aber nicht in der echten Welt. Die zweite Methode ist, etwas ist grafbasiert und wir benutzen Unscharfer-Methoden, Fasi-Methoden. Ich habe einige Designs hier, dann kann man vielleicht erkennen, dass manche ähnlich sind und man kann eine Graf-Analyse machen und einen Fingerabdruck davon, wie es aussieht. Man kann sehen, diese drei sind alle IS-Implementierungen und diese beiden hier sind Ketchup-Implementationen, also Schadrei. Man kann so diese Unscharfe-Vergleiche machen in der Graftheorie und wenn du nicht mit Graftheorie auskannst, das ist genau dein Ding hier. Man kann fein herausfinden, was eine strukturelle Ähnlichkeit ist und die erste Frage ist immer, die mir gestellt wird und du weißt nicht, ob die Optimisierung andere benutzen in deinem Design. Man weiß nicht, was für eine Zellenlibrerie die benutzen und wie kann man das dann vergleichen und was wir wirklich gemacht haben ist, wir haben drei verschiedene Zellenbibliotheken und Synthesetools untersucht für verschiedene Design und das ist hier eine IS-Runde und wie die am Ende aussahen, das war schon ziemlich ähnlich. Also wenn man nur mit den Augen draufgut, sieht man schon, dass das ähnlich ist. Um das mit einer KI zu machen, ist das schwierig. Wir haben es schon gemacht, aber es ist trotzdem und zum Machine Learning, das funktioniert also auch, es ist möglich, das zu machen. Ja, das ist cool. Jetzt haben wir eine Ausgabe, wir haben eine Art Hierarchie, wir haben herausgefunden, dass dies unsere Module sind und wir haben herausgefunden, was sie tun und das ist schon total cool. Das heißt, wir können alles reverseingenieren, das ist total cool. Wenn es um die Probleme geht, können wir auch machen, das ist natürlich echt doof. Und an Leuten können reverseingenieren machen und können Hardware Trojaner reinbauen, wir können unsere IP klauen und das wollen wir natürlich alles nicht. Und es gibt einige Gegenmaßnahmen, die Leute sich ausgedacht haben. Das erste ist, haben wir schon drüber gesprochen, Logic Locking und es gibt Split Manufacturing und Tarnung und es gibt noch andere und ich sage schon vorher, die sind alle ziemlich kaputt. Das erste ist, haben andere gemacht, das habe ich nicht ich gemacht, ist Forschung von anderen Leuten. Wir machen das so, wir verschlüsseln einfach die Funktionalität. Das heißt, wir haben einen Schlüssel und haben Schlüsselgatter und diese kleine Netzliste und dann bauen wir noch 2 Gatter dazu und wenn man nicht den richtigen Schlüssel benutzt, dann ist die Funktionalität nicht da und dann macht der Chip auch nicht das, was er machen soll. Das ist ganz nett und wir haben verschiedene Wege, indem man das machen kann. Wir machen das einfach nur zufällig. Bauen wir solche Keygatter ein und das funktioniert dann auch nicht. Wir haben da irgendwie eine smartere Methode, eine schlaue Methode und haben etwas, was noch schlauer war. Starkes Logic Locking. Das war auch kaputt irgendwann dann. Dann haben wir etwas noch besser machen. Das ist dann satt, resistent Locking und jetzt haben wir noch was Smarteres und es ist eine Art Katz- und Maus Spiel und ich rede da gleich noch drüber, aber erstmal, warum funktioniert das? Diese Schlüsselgatter sind einfach, ziemlich einfach zu finden. Es gibt ein Papier, ein Paper dazu und hier sind die Keygates und es gibt XOR Gates oder XNOR Gates und die sind relativ einfach zu finden und selbst wenn wir eine Optimierung machen, danach sind die mehr oder weniger versteckt diese XOR oder XNOR Gates und es ist relativ einfach, sie zu diversionieren und es ist relativ logisch und voraussagbar, wie das gemacht wird und man kann diese Schlüsselgatter, diese Keygates immer noch finden und das versagt auch, weil die Struktur nicht richtig, nicht wirklich sich ändert und wenn man diese Phaseanalyse macht dann haben wir immer noch eine AIS-Runde und wenn man die Keygates reinbaut verändert sich das kaum ist das immer noch AIS wenn man das mit KI macht sagt er vielleicht dann ist die KI vielleicht kaputt aber wir können immer noch diese Strukturanalyse ganz einfach machen auch wenn man diese Keygatter drin hat, das ist also ziemlich doof wir haben noch andere Angriffe auf ganz spezifische Sachen ein Logic Locking Schema und wir haben in Blau diese Schema und in Rot alles, was es kaputt macht und es gibt einige die sind nicht ganz kaputt das sind aber die sehr aufwendigen das ist auch blöd und das nächste ist, wir haben natürlich praktische Probleme wir müssen einige Schlüssel da drin haben und wir müssen Schlüssel sicher aufbewahren das ist schwierig, wir brauchen sichere Aufbewahrung oder irgendeine andere Methode damit umzugehen wir müssen viel overhead mit dem wir uns beschäftigen müssen und die Verifizierung Teams werden dich auch hassen und für die NASA NASA macht es zum Beispiel nicht weil es unmöglich zu verifizieren ist und das heißt ist auch funktioniert also auch nicht und wir haben aber eine Situation in der jemand sagt, ja, wir machen mal Chip Security und wir machen Logic Locking und denkt länger darüber nach und wir haben einige Informationen gekriegt über FSM oder Sequenzialis Locking in dem vorhergehenden Talk und ich will nur einige anderes Screens einführen dieses hier basiert auf Black Boxes auf SSMs und in der Mitte hat man einen originalen FSM und von jedem Status kommt man in diese schwarzen Zustände aus denen man nicht wieder rauskommt und das passiert, wenn man den falschen Schlüssel einsetzt und man das war zu schnell wenn man in diesen Ursprünglichen hat muss man den richtigen Schlüssel nehmen und wenn man das nicht macht hat man einen falschen FSM und das funktioniert auch nicht weil wir in verschiedenen vorherigen gesehen haben das ist ein reverse engineered FSM und man kann das auch durch hingucken einfach angucken wo diese schwarzen Zustände sind diese Black Box Zustände auf den eigenen Schlüssel anwendet dann wird das auch jetzt war was anderes also Logic Locking ist kaputt auf Hardware das funktioniert nicht und in Deutschland zum Beispiel wir können vielleicht 3 oder 4 Nanometer produzieren 4 oder 4 oder 4 und 8 funktioniert in Deutschland aber nicht und wir haben Angst dass die Fabrikation irgendwas mit unserem Design macht und das untere ist 8 Nanometer Technologie und wir geben den das und die bauen das und wir kriegen das zurück in unsere eigenen Produktion bauen wir den Rest die Verbindung und die Metallschichten und die Idee ist wie man hier sieht ohne die Verbindung wissen wir die Verbindung die Funktion nicht weil wir das nicht reverse engineern können weil wir die Netlisten nicht ganz kriegen und das funktioniert auch nicht warum zuerst mal wir haben normalerweise einfach physische Nachbarschaft zwischen den Gattern und man verbindet normalerweise nicht Gatter die ganz weit entfernt sind auf diesem Chip von unten links nach oben rechts das heißt wenn man diese hat dann wird das wahrscheinlich zu einem von diesen verbunden wir haben auch normalerweise nicht so viele Schleifen drin und das Sachen zurück in sich selbst gehen außer in einigen Fällen haben wir nicht und diese Gatter können nur ganz bestimmte maximale Anzahl andere Zellen treiben, also haben wir da auch schon Beschränkungen und das geht dann in unseren Attack unseren Angriffsschema ein und dann können wir auch ein bisschen rausfinden durch Brutforce wie das hier funktioniert und das funktioniert manchmal funktioniert auch nicht, weil wir auch schlechte Designer haben und dann nimmt man einfach die Metallschichten dann hat man sowas hier, hat das Sourcegate und hat eine unverbundene Verbindung und dann sitzt man da ich frage mich, ob das vielleicht nach A oder nach B verbunden werden soll und ich glaube das ist auch kein großes Geheimnis das ist wahrscheinlich Gate A und der Raum funktioniert das auch wirklich schlecht und das letzte die letzte Gegenmaßnahme, über die ich reden möchte ist Zeltarnung wenn wir die Verbindung nicht verstecken können dann wollen wir wenigstens die Funktionalität verstecken, wenn man diese sehen das ist eine Nand- und eine Nordzelle die sehen verschieden aus, das Metall sieht verschieden aus oder die Dotierung sieht verschieden aus und wir haben Zellen designt, wo das Metall gleich aussieht hier haben wir diese verschleierten Nand- und Nordzellen und auf dem Papier sehen die genau gleich aus, aber die haben verschiedene Funktionalität und die Idee ist wenn man nicht weiß, was die Funktionalität ist, dann kann man den auch nicht reverse ingenieren, den Chip wir haben damit aber auch Probleme das erste ist diese Zellen sind riesengroß und die Flächen-Overhead ist einfach sehr groß, das heißt die Chips werden teurer, man hat Wärmeprobleme unter Umständen und man mag es auch Hersteller finden, die produzieren können, was heißt man braucht spezielle Technologie, um das zu machen man braucht irgendwie andere Zellen, Bibliotheken und ihr wisst wie Firmen damit umgehen Fabriken damit umgehen, man muss wir haben versucht auch ent Verschleierungsangriffe zu machen, also was wäre normal hier das zu haben im reverse ingenieren oder mit rootforce auch das zu machen das kann nur ein Nand oder ein Nord sein, es gibt zwei Optionen und wir probieren beide aus mit rootforce und dann gibt es das Problem, dass die SCMs die Scanning Elektronen-Mikroskope die können unterscheiden, die können die Dotierungen unterscheiden wenn die unterschiedlich sind das kann man sehen im SCM-Bild hier im optischen Mikroskop sind diese Punkte, die können die nicht unterscheiden, aber das SCM haben wir dunkle und helle Punkte und auch in FIB-Bildern kann man die Unterschiede sehen, je nachdem mit welcher Technologie wir die Bilder machen, für ganz kleine Dotierungen funktioniert das nicht, aber für große Dotierungsänderungen kann man das auch die verschleierten GATTA reverse engineering ist cool, oder? wir haben IP-Schutz für die Firmen, wir können rausfinden ob irgendwas in unserem Design ist, was wir nicht wollen irgendwelche bösartige Logik wir wollen natürlich nicht das Atomkraftwerk explodieren weil die Chips kaputt sind und irgendwo hingeschickt werden aber die Fabriken benutzen Techniken, um rauszufinden wo sie die Sachen platzieren und wenn sie die Funktionalität kennen dann können sie auch sagen wir tun das einfach in den Kryptokern und wir wollen, dass das da ist und wenn man die Funktionalität nicht kennt dann wissen sie nicht, wo sie den Trojan hinbauen sollen, das heißt unsere Gegenmaßnahmen sind eigentlich alle kaputt wir haben nichts, was wirklich gut dagegen um uns vor reverse Engineering zu schützen und das hässliche ist, wir haben nicht Tools und Werkzeuge es gab ein Talk dazu und wir haben auch wirklich nichts, was kommerziell verwendbar ist für einen tatsächlichen Chip das heißt, wenn man die 6000 Gattas und den tatsächlichen Chip haben der hat dann 2 Millionen Gattas und es funktioniert aber nicht mehr und wir haben auch keine formalen Methoden das ist auch doof, denn wir können nicht wirklich beweisen dass irgendwas so ist und es ist nicht beweisbar sicher ob sich auch niemand dafür interessiert oh Meltdown ist wirklich schlimm ja schon, aber wenn deine Chips in der Hardware unsicher sind dann hat man ein viel größeres Problem und das ist noch viel schwieriger diese zu ersetzen das ist etwas traurig manchmal aber was kannst du machen ja, die beiden Hauptprobleme die ich erwähnt habe die Passionierung und die Identifizierung dafür braucht man keine spezielle Hardware, keine speziellen Tools alles was ich hier viele Dinge, die man benutzen kann sind Open Source, ich hab Open Course und Liberal Course erwähnt, ihr könnt alles runterladen ihr könnt uns alles mit offenen Tools synthesieren wie Joseph oder Q-Flow, das ist etwas wir machen könnt und ihr könnt neue Methoden finden um Dinge zu partitionieren um z.B. alles hier mit einem normalen Laptop zu umgehen und man braucht einfach nichts weiteres das ist ganz nett insbesondere wäre es gut wenn ihr Interesse in Grafentheorie habt oder in Funktionen, Nala, Analyse also wir suchen nach Software-Engineuren oder Forschungserfahrung die wissen wie man Grafen oder wie man besser passionieren kann wie man Fehler da besser finden kann das wäre ganz nett und dafür ja kontaktiert mich gern wenn ihr das Rastatone Mikroskop in deinem Garage habt sagt mir auch Bescheid ich würde es mir gerne angucken aber wenn ihr Ideen habt wie man das besser machen kann dann lasst es das nur wissen ich hoffe ihr habt ein paar Fragen das war wie man Millionen Gatter versteht von Kitty übersetzt von Florian und Pink Dispatcher und ihr könnt uns gerne Feedback über Twitter geben unter dem Hashtag C3T oder per Mail an hello at c3lingo.org und jetzt zu den Fragen welche großartige Software benutzt du um solche Grafen zu visualisieren ja wir versuchen wir benutzen verschiedene, wir benutzen Graftool das finden wir ganz toll und GraphWiz, das kann man sich auch angucken für die extrem großen Grafen haben wir ganz tolle Sachen mit Gefi gemacht zum Beispiel diese Sachen kann man Gefi kann verschiedene Grafalgorithmen anwenden auf deinen Graf in Echtzeit und vielleicht braucht man ein bisschen mehr Speicher manchmal aber wir haben bis zu eine Million Gatter benutzt und Graftool ist auch ziemlich cool ich habe zwei Fragen die erste ist mit dem Raster-Elektronen-Mikroskop soweit ich weiß kann man den Chip tatsächlich arbeiten sehen wenn man ein SEM benutzt wenn man die Elektronen-Ladungen sehen kann und den Transistoren so warum braucht man all diese Tarnung sagt wenn man es sehen kann ja warum machen wir überhaupt diese Tarnung es gibt um Tarnung Verschleierung in den Chip-Design das habe ich mich auch selbst gefragt es ist so klein dass man es nicht mehr bei der Arbeit sehen kann und Camouflage funktioniert in sehr sehr kleiner Technologie und das kann man auch nicht mehr wirklich visualisieren und es ist wirklich schwierig die Bilder zu kriegen für das Reverse Engineering und das zum Funktionieren zu kriegen um zu gucken was innen drin funktioniert und man kann es immer ausprobieren und reinzugucken was es tut die zweite Frage ist das würde nicht mit der Foundry funktionieren aber das physikalische Methoden zum Beispiel spezielle Beschichtung die man nicht entfernen kann und das Silizium zu zerstören ja es ist was in der Richtung ausprobiert worden es gibt eine Beschichtung und man kann auch versuchen in die Metallschicht was reintun dass wenn man das physisch entfernt dann verkratzt man das und solche Möglichkeiten gibt es und das ist ein physisches Problem das machen die Materialleute und soweit ich weiß haben sie nichts gefunden wo das wirklich ein Problem wäre es gibt keine weitere Fragen ja doch noch eine kennst du ein Werkzeug um zum Beispiel Klokgruppen aus einer Netliste rauszukriegen wie man zum Beispiel sieht da ist irgendwie TuckGating und da gibt es Klokgruppierung ist das erste was man versucht rauszufinden man guckt erstmal an das Zeitsignal und erkennt die und dann geht man weiter und versucht das zu teilen und soweit ich weiß macht all das aber ich weiß nicht ob es andere Tools gibt die das machen es wäre einfach ein Netz ein Tool zu haben dass einfach die Netliste ein liest und dann einfach sagt diese Gates gehören zu der Tuckgruppe und so weiter ja ich glaube Hall macht das das ist möglich mit Hall kannst du sagen wie viel overhead man durch das die Verschleierung kriegt und wie häufig das tatsächlich leicht umgehen kann es wird das häufig benutzt ja Leute Design Chips in ungefähr zwei Jahren und wenn dies das neuste und tollste war und wir werfen den jetzt auf den Markt mit dem Logic Locking drin und der overhead hängt davon ab wie man das implementiert man benutzt ja nicht 100% Schlüsselgatter sondern nur für die wichtigen Sachen oder für die CPU und der overhead hängt einfach davon ab und reden wir jetzt von Logic Locking oder von Verschleierung und Tarnung das ist nämlich etwas verschieden und bei dem einen kommt es auf die Cell Bibliothek an die man benutzt und für die Verschleierung gibt es sehr viele verschiedene Ideen wie man das gut machen kann und die Schwierigeren wenn es schwieriger ist dann hat man viel mehr overhead und es ist viel schwerer so viel und das ist nicht der ganze Chip sondern das ist nur der Teil der interessant ist und für Logic Locking benutzt man vielleicht noch ein bisschen Raum über und dann benutzt man vielleicht 5% Logic Locking für dieses und dann hat man noch ein paar mehr Möglichkeiten auszuwählen, wo man das macht ich frage mich wenn man mit der zukünftigen Entwicklung wie 3D Stacking anguckt beim Packaging wie siehst du die Zukunft deines Feldes wir haben also mit 3D-Printern in der Vergangenheit gearbeitet und da können vielleicht mehr Informationen noch finden aber es ist nicht wirklich ein physischer Prozess der gemacht werden muss sondern meine Forschung geht um diese High Level Analysen und ich würde annehmen dass solange wir Chips testen müssen solange haben wir auch die Tools um die zu analysieren und auch mit 3D Stacking ist das immer noch so dass wir wirklich in den Chip reingehen müssen und die Bilder machen können und für die Fehlanalyse brauchen wir das und solange wir es für Fehlanalyse brauchen wir können das auch mit FPGAs machen ja mit FPGAs das werden die Leute aus Bochum die haben das gemacht und soweit ich weiß ist diese ganze Clustering-Geschichte auf der ersten Ebene es funktioniert für FPGAs genauso aber ich weiß nicht ob Camouflaging, Verschleierung in FPGAs funktioniert aber Keylocking kann man machen, Logiclocking das Problem ist dass man das Design an die Foundry schickt und dann irgendwelche veränderte Sache zurück kriegt wie ist der Status davon in der wirklichen Welt ist das ein wirkliches Problem ist das können Unternehmen tatsächlich verifizieren dass sie das zurückkriegen was sie hingeschickt haben oder müssen sie blind vertrauen tatsächlich wirklich ja so eine Frage funktioniert ist das in der Praxis wirklich ein Problem und wenn das in der Strysow wäre würden sie es mir wahrscheinlich nicht sagen wenn das wirklich passiert wäre der Overhead den die Foundrys haben die Fabriken haben ist ziemlich groß tatsächlich und das ist nicht etwas was eine Einzelperson machen kann sondern dann braucht man ein wirklich ein Staat vielleicht und ich weiß dass Firmen daran arbeiten die Produkte zu überprüfen und ich weiß von großen Chipherstellern die sowas machen wenn die die Chips zurückkriegen dann werden die reverse engineered und ich glaube das ist noch in den Kinderschuhen aber irgendwann werden wir vielleicht eine Art Zertifizierung bekommen wir haben jetzt eine Zertifizierung für Chips und vielleicht haben die das reverse engineered das wird reverse engineered wenn er zurückkommt und dann kann er zertifiziert werden wenn ich vermuten sollte wenn ein staatlicher Akter ein Design an einen Foundry schickt und dann ein ein staatlicher Aktor da irgendwie Änderung macht wer wird gewinnen ja ich denke das hängt vom Staat ab in Amerika wird die ganze Forschung von DARPA finanziert und die haben sehr viel Geld und ich glaube ich lasse das einfach so stehen Thank you very much for your talking and for answering all the questions Ja, danke für den Tag und danke für die Antwort