"CVAX - wenn du hübsch wirst, stiehl das Beste."Die Inschrift amerikanischer Ingenieure für sowjetische Kollegen in der Mikroprozessortopologie.
Das Reverse Engineering von Mikrochips bereitet Herstellern bereits in den ersten Jahren des Bestehens der Mikroelektronik Kopfzerbrechen. Die gesamte sowjetische Elektronik wurde zu einem bestimmten Zeitpunkt darauf aufgebaut, und jetzt tun sie im Himmlischen Reich das Gleiche und nicht nur in viel größerem Maßstab. Tatsächlich ist Reverse Engineering in den USA, in der Europäischen Union und an vielen anderen Orten absolut legal, mit dem Ziel (ich zitiere das amerikanische Recht), „die Konzepte oder Techniken zu lehren, zu analysieren oder zu bewerten, die in der Maskenarbeit oder in den Schaltkreisen implementiert sind“.
Die gebräuchlichsten rechtlichen Verwendungszwecke für Reverse Engineering sind Patent- und zugelassene Gerichte. Industriespionage ist ebenfalls weit verbreitet, zumal elektrische Schaltkreise (insbesondere analoge) häufig ein wichtiges geistiges Eigentum sind und selten patentiert werden - nur um die Offenlegung von geistigem Eigentum und die Teilnahme an Patentgerichten als Ankläger zu vermeiden. In einer Situation, in der Sie Ihr geistiges Eigentum schützen müssen, ohne es zu patentieren, versuchen Entwickler und Hersteller natürlich, Wege zu finden, um das Kopieren ihrer Entwicklungen zu verhindern.
Ein weiterer nicht weniger (oder sogar noch wichtigerer) Bereich zum Schutz von Mikrochips vor Reverse Engineering ist die Gewährleistung der Sicherheit der im Speicher gespeicherten Informationen. Solche Informationen können sowohl FPGA-Firmware (dh wiederum das geistige Eigentum des Entwicklers) als auch beispielsweise ein PIN-Code von einer Bankkarte oder ein Verschlüsselungsschlüssel für ein sicheres Flash-Laufwerk sein. Je mehr wertvolle Informationen wir der Welt um uns herum vertrauen, desto wichtiger ist es, diese Informationen auf allen Ebenen der Verarbeitungssysteme zu schützen, und die Hardwareebene ist keine Ausnahme.
Das Wichtigste zuerst: eine wichtige Sache zu verstehen. Wenn Sie sowohl vom Reverse Engineering als auch vom Schutz vor dem Kopieren von Daten sprechen, müssen Sie verstehen, dass es keine absolut stabilen Schutzmethoden gibt. Alles, was real ist, ist, den Prozess so lang und / oder teuer zu machen, dass er wirtschaftlich unzweckmäßig wird.Vor vielen Jahren war die Arbeit eines Reverse Engineers oder eines mikroelektronischen Piraten viel einfacher als heute. Schauen Sie sich zum Beispiel dieses Bild an (danke an
BarsMonster für unsere glückliche Kindheit und die guten Fotos): Mit einem grundlegenden Verständnis der Technologie dauert die Wiederherstellung eines Stromkreises mehrere Stunden.
Abbildung 2. Eine Momentaufnahme der Topologie des OPA134PA-Operationsverstärkers. Quelle - zeptobars.comHier gibt es übrigens ein Beispiel für das Reverse Engineering des TL431-Chips von Ken Shirriff anhand von Fotos von BarsMonster. Und hier ist die russische Übersetzung. Kens Blog hat viele coole Sachen, wenn Sie sich für das Thema Amateur-Reverse Engineering interessieren.Und hier (Vorsicht, Verkehr!) Ist ein Bericht aus dem Reverse Engineering des Zilog Z80-CTC-Chips, der 1979 fast unmittelbar nach der Veröffentlichung des Chips erstellt wurde. Nun, dies ist ein einzigartiges historisches Dokument, und dann waren es Informationen, die von enormem kommerziellem Wert waren und erhalten wurden (gemessen an mehreren Verweisen auf militärische Standards), wahrscheinlich im Zuge der Zertifizierung eines Mikroschaltkreises für spezielle Anwendungen.Aber wir leben im Jahr 2019 und nicht im Jahr 1979, und jetzt ist es eine Frage von vielen Monaten oder Jahren, das vollständige Schema eines neuen Intel-Mikroprozessors umzukehren, selbst bei einem guten Automatisierungsgrad des Prozesses (ganz zu schweigen von der Tatsache, dass sogar die Topologie mit Designstandards in einer akzeptablen Auflösung entfernt wird 14) -10-7 nm ist eine sehr schwierige Aufgabe). Was ist Intel? Vergleichen Sie den Arbeitsaufwand für das Reverse Engineering oder die Analyse des Verstärkers anhand des obigen Bildes und des Baikal-T1-Prozessors, der gemäß dem sehr beliebten und relativ erschwinglichen 28-nm-Herstellungsverfahren durchgeführt wurde. Ein vollständiges Reverse Engineering derart großer Produkte ist äußerst selten. Oft ist es interessant, einige spezifische und relativ kleine Blöcke zu betrachten. Zum Beispiel, um herauszufinden, ob sie Ihr Patent verletzen, oder um Ihre Entscheidung mit den Produkten von Wettbewerbern zu vergleichen und zu verstehen, warum es besser oder schlechter ist. Um dies herauszufinden, haben die Chipentwickler diese oder jene Funktionalität selbst implementiert oder Ihren IP-Block ausgeliehen.
Abbildung 3. Eine Momentaufnahme der Topologie des Baikal-T1-Prozessors. Quelle - zeptobars.comHier kommen wir zum nächsten wichtigen Teil in der Geschichte des Reverse Engineering. In der Antike wurde der gesamte Chip von Anfang bis Ende in einem Unternehmen entwickelt, manchmal sogar von einem sehr kleinen Team oder einem brillanten Einzelgänger wie Bob Widlar. Moderne Mikroschaltungen sind voll von IP-Blöcken, deren Verkauf und Kauf ein riesiger Markt ist, auf dem natürlich auch Urheberrechtskontrolle, Industriespionage und Piraterie stattfinden. Daher ist es möglich und notwendig, das Problem des Schutzes vor unbefugtem Kopieren nicht nur aus Sicht des Entwicklers des Endprodukts, sondern auch aus Sicht des IP-Entwicklers zu betrachten, für den der Produktentwickler auch ein Pirat sein kann.
Im Falle von Hacking ist die interne Struktur des Eindringlings für den Empfang von Daten normalerweise uninteressant, und es wird (wenn überhaupt) ein teilweises Reverse Engineering durchgeführt, um Schwachstellen zu finden und diese Schwachstellen entweder durch direkte Verbindung oder mithilfe anderer Methoden auszunutzen. Die Aufgabe des Entwicklers gegen Hacking besteht darin, die Verwendung potenziell schwacher Stellen zu verhindern und bei Bedarf sensible Daten beim Hacking zu zerstören.
SCHAUSPIELER
Lassen Sie uns zunächst herausfinden, wer das Design des Chips davor schützen kann. Die folgenden Entitäten sind an der Kette von der Idee bis zur Anwendung beteiligt und haben unterschiedliche Arten des Zugriffs auf Informationen über den Inhalt der Mikroschaltung.
- IP-Blockentwickler. Es enthält alle Informationen, alle erforderlichen Dateien, Messmethoden usw. usw.
- Chip-Entwickler. Im Fall von Soft IP hat Verilog / VHDL einen Blockcode, im Fall von Hard IP kann es entweder eine Topologie oder eine Black Box haben. Wenn sich programmierbare oder Software-Teile im Gerät befinden, hat es auch Zugriff darauf.
- Fabrik Hat Zugriff auf GDSII-Topologiedateien, hat jedoch keinen Zugriff auf den softwareabhängigen Teil des Chips (z. B. auf die PROM-Firmware).
- Verpackung und Testproduktion. Es hat Zugriff auf den Chip sowie auf Testmethoden und Firmware-Karten für einmalig programmierbaren Speicher. Selten verteidigt sich jemand gezielt gegen sie, aber sie sollten auf der Liste stehen, da einige der Methoden, die zum Schutz vor der Fabrik geeignet sind, nicht gegen sie wirken.
- Konkurrent / Cracker. Es hat nur Zugriff auf das fertige Produkt und die Benutzerdokumentation.
Im einfachsten Fall möchte sich der Chipdesigner (2) vor dem Kopieren durch einen Konkurrenten (5) schützen oder einen Chip mit Speicher herstellen, der vor unbefugtem Lesen geschützt ist. In einem etwas komplizierteren Fall möchte der IP-Entwickler (1) sicherstellen, dass der Entwickler den Chip (2) der Lizenzvereinbarung einhält. Es kommt auch vor, dass der Entwickler des Chips (2) der Fabrik (3) nicht vertraut und vermutet, dass er in der Nachtschicht zu Fälschungen führen kann.
Ich habe vor einiger Zeit ausführlich darüber geschrieben, was IP in integrierten Schaltkreisen ist, daher werde ich diesen Artikel nicht wiederholen. Es gibt auch ein bisschen darüber, wie IP-Entwickler ihr geistiges Eigentum schützen. Kurz gesagt, um die Topologie zu schützen, nimmt die Fabrik normalerweise als Dritter teil, und der Käufer erhält nicht die richtige Topologie, und zum Schutz von Verilog-Code werden Verschleierungstechniken verwendet, die der Verschleierung eines anderen Codes ähneln.WERKZEUGE
Welche Tools zur Analyse von Mikrochips gibt es? Die erste Stufe ist etwas Säure, um zuerst das Gehäuse der Mikroschaltung zu öffnen und dann die Schichten nacheinander zu entfernen, sowie ein normales optisches Mikroskop mit einer Kamera. Es ist kostengünstig, es ist einfach, mit ihnen zu arbeiten, und für die Analyse einfacher Schaltungen, die mit nicht den neuesten Technologien hergestellt wurden, ist dies völlig ausreichend.
Für größere Schemata gibt es spezielle CAD-Systeme, mit denen die Wiederherstellung von Daten aus der Topologie auf die eine oder andere Weise automatisiert werden kann. Dadurch erhält der Reverse Engineer eine bequemere Schnittstelle für die Arbeit als nur das Zeichnen von Linien in einem grafischen Editor. Die Automatisierung wird auch durch die Tatsache vereinfacht, dass alle modernen digitalen Schaltungen aus Bibliotheken aufgebaut sind und nach dem Reverse Engineering von Bibliothekselementen zum Zusammenbau einer Schaltung eine Frage der Zeit (oder der verfügbaren Verarbeitungsleistung) ist.
Die nächste Stufe, die für Amateure unzugänglich ist, aber in spezialisierten Labors vorhanden ist, ist ein Rasterelektronenmikroskop (REM). Es wird ein fokussierter Elektronenstrahl anstelle eines Lichtstrahls verwendet. Die SEM-Auflösung kann bis zu 1 nm und sogar etwas niedriger sein, was ausreicht, um moderne integrierte Schaltkreise zu analysieren.
FIB ist ein Analogon von SEM und verwendet nur einen Strahl schwererer Ionen anstelle eines Elektronenstrahls. Tatsächlich ist FIB ein fokussierter Ionenstrahl. Der Hauptunterschied zwischen FIB und SEM besteht darin, dass Sie mit seiner Hilfe den Mikrokreislauf nicht nur analysieren, sondern auch modifizieren können, z. B. Schnitte ausführen (um den Querschnitt des Mikrokreislaufs zu sehen oder ein Stück zu entfernen) oder Sprühmaterial (um dort eine Verbindung herzustellen) wo es nicht ist). FIBs werden von Entwicklern und Herstellern von Mikroschaltungen häufig für die Arbeit mit Testproben verwendet, da die Behebung des Fehlers viel Zeit in Anspruch nimmt, aber immer noch viel schneller und billiger ist als der Neustart einer experimentellen Charge. Für einen Reverse Engineer ist dies auch eine einzigartige Möglichkeit, zu den Teilen des Kristalls zu gelangen, die gemäß der Absicht des Entwicklers nicht verfügbar sein sollten. Und beim Entwerfen eines Chips, der vor Hacking geschützt ist, muss dies ebenfalls berücksichtigt werden.
Abbildung 4. Querschnitt einer mit FIB hergestellten Mikroschaltung. Quelle - SERESSA-2015 (vorsichtig, viel Verkehr im PDF vom Link).
Abbildung 5. Hergestellt durch FIB-Modifikation des Chips, wobei mehrere Verbindungen geändert wurden.Ein weiteres unverzichtbares Werkzeug für einen Reverse Engineer ist ein Satz Laser. Lüfter können leistungsstarke Laser verwenden, mit denen sie Mikrokreise in Kunststoffgehäusen öffnen und Zugang zum Kristall erhalten können. Bei professionellen Lasern können abhängig von der Wellenlänge einige Teile des Mikroschaltungsdesigns transparent und andere nicht transparent sein. Auf diese Weise können Sie beispielsweise einen Laser verwenden, um Passivierung und Isolierung genau zu öffnen, sodass Sie später die Metallleitung bequem verbinden können, ohne das Risiko einzugehen, sie mit ihren Nachbarn kurzzuschließen. Mit anderen Parametern können Sie Metall schneiden oder einzelne Transistoren verbrennen. Die dritte besteht darin, Strom in Transistoren durch Schalten von Cache-Zellen oder einer Art logischer Leitungen zu induzieren. Die letztere Option wird universell als kostengünstige Simulation der Auswirkungen schwer geladener Teilchen verwendet. Im Prinzip können Fehlfunktionen in einem funktionierenden Mikrokreislauf jedoch auch nützlich sein, um die darin enthaltenen Informationen zu gefährden. Zum Beispiel kann es interessant sein, ein Flag in die Registerdatei umzuschreiben oder den Betrieb des Zufallszahlengenerators leicht zu korrigieren.
Abbildung 6. Erscheinungsbild des Lasers zur Untersuchung der Auswirkung einzelner Fehler auf Mikroschaltungen. Quelle - SERESSA-2015.
Abbildung 7. Ein Beispiel für die Empfindlichkeit eines Teils einer Mikroschaltung gegenüber einem einzelnen Fehler und Ausfall, der mit einer Laserkarte erzielt wurde. Quelle - SERESSA-2015.In fortgeschrittenen Reverse Engineering-Labors finden Sie viele andere interessante Werkzeuge. Beispielsweise kann ein digitales Signal bis zu mehreren zehn MHz in Echtzeit überwacht werden, indem ein kleines Stück Lithiumniobat auf die entsprechende Leitung gelegt und erneut mit einem Laser beleuchtet wird.
Fall 1: Unzuverlässige Fabrik
Was könnte der Grund dafür sein, dass Sie der Fabrik, in der Sie Ihre Kristalle herstellen, nicht vertrauen? In einer idealen Welt werden Sie natürlich nicht in eine Fabrik verwickelt, der Sie nicht vertrauen, aber manchmal zwingen Sie kommerzielle Überlegungen, Risiken einzugehen. Es kann auf zwei Arten minimiert werden:
- Die sogenannte Split-Fertigung oder auf einfache Weise die Produktion in zwei Fabriken. Aber nicht parallel (wie es normalerweise getan wird, um das Risiko von Engpässen bei unvorhergesehenen Produktionsverzögerungen zu minimieren), sondern Teil des Betriebs in einem Werk und Teil eines anderen. Dies ist für alle Teilnehmer des Prozesses ziemlich unpraktisch (und sicherlich wird nicht jede Fabrik dem zustimmen), aber dies wird die unzuverlässige Fabrik dazu zwingen, zumindest den Rest des Chipdesigns umzukehren und die fehlenden Masken selbst herzustellen. (was im Idealfall dazu führen sollte, dass das Spiel die Kerze nicht wert ist). Der Hauptnachteil dieses Ansatzes besteht darin, dass die oberen Schichten des Chips Metallisierung sind, was Reverse Engineering recht einfach ist. Die geteilte Herstellung kann jedoch in Kombination mit technologischem Know-how in Metallen, das eine unzuverlässige Fabrik nicht reproduzieren kann, sehr effektiv sein. Zum Beispiel, wenn die zweite Fabrik Ihrer Wahl in der Lage ist, nichtflüchtigen Speicher (MRAM, Memristoren oder ähnliches) in der oberen Metallisierungsschicht zu erzeugen, ohne den das gesamte Design seine Bedeutung verliert.
- Wenn Sie kein technologisches Know-how haben, besteht der einfache und zuverlässige Weg darin, den Chip ohne weitere Programmierung bedeutungslos zu machen. Programmierbare Blöcke können unabhängig voneinander mithilfe des Konfigurationsspeichers oder in Form eines Blocks basierend auf einem eingebetteten FPGA erstellt werden (es gibt solche IPs auf dem Markt). Mit dem Konfigurationsspeicher als Schutz können Sie sicher sein, dass die Fabrik Ihren Chip nicht einfach unter Umgehung nehmen und produzieren kann. Aber Sie können den Konfigurationsspeicher lesen, oder? Ja, aber das Vorhandensein eines Konfigurationsspeichers zwingt eine unzuverlässige Fabrik anstelle einer einfachen Möglichkeit zur Erhöhung des Produktionsvolumens dazu, dasselbe Reverse Engineering wie alle anderen Angreifer durchzuführen.
Unabhängig davon stelle ich fest, dass beide beschriebenen Methoden zum Schutz vor einer unzuverlässigen Fabrik gegen unbefugtes Kopieren helfen, aber nicht vor in engen Kreisen beliebten „Lesezeichen“ speichern. Darüber hinaus werde ich etwas weiter darüber sprechen, wie die Topologie selbst mit einem Lesezeichen versehen werden kann.
FALL 2: SPEICHERSCHUTZ
Das Vorhandensein programmierbarer Blöcke und des Konfigurationsspeichers im Chip ist ein nahezu unverzichtbares Merkmal jedes modernen Designs, sowohl digital als auch analog. Mit abnehmenden Designstandards nimmt die Verbreitung von Parametern von Chip zu Chip zu, und die digitale Abstimmung ist der einfachste und zuverlässigste Weg, dies zu überwinden. Und digitale Schaltungen (zum Beispiel Mikrocontroller) speichern normalerweise Daten direkt auf dem Chip und können eine mehrstufige Speicherstruktur aufweisen, von der verschiedene Teile unterschiedliche Zugriffs- und Schutzstufen haben. Daher erscheint es logisch, erstens das Tool zu verwenden, mit dem wir bereits die Sicherheit und Rissbeständigkeit erhöhen müssen, und zweitens die Idee, sorgfältig darüber nachzudenken, welche Art von Speicher verwendet werden soll.
Firmware mit Metallanschlüssen (Mask ROM). Normalerweise sieht es so aus, als ob zwischen zwei Metallleitungen ein Kontakt besteht oder nicht, etwas seltener - wie das Vorhandensein oder Fehlen eines Transistors zwischen ihnen. Die meisten Eichen werden in Basismatrixkristallen (BMC) verwendet - nicht nur in der alten Verteidigungsindustrie, wie Sie vielleicht denken, sondern auch in recht modernen Lösungen, beispielsweise in Hilfschips in Xeon-Prozessoren. Darüber hinaus werden unter Verwendung eines solchen Speichers Familien von Mikroschaltungen hergestellt (hauptsächlich Mikrocontroller), da das Flashen des Speichers im Werk durch Ändern einer Maske billiger ist als die universelle Firmware jedes auf einer Platte oder in einem Gehäuse hergestellten Kristalls. Das Masken-ROM lässt sich mit einem Mikroskop und genauem Ätzen sehr leicht lesen. Zu Hause können Sie damit umgehen.
Abbildung 8. ROM-Firmware mit Metallverbindungen auf einem gefälschten FTDI FT232RL-Chip. Quelle - zeptobars.com
Hierbei ist auch zu beachten, dass es möglich ist, Speicher nicht nur mit einer Kontaktschicht zwischen Metallen zu flashen, sondern auch mit der Anwesenheit und Abwesenheit von Metall (optisch leicht ablesbar), der Anwesenheit oder Abwesenheit von Dotierung (optisch leicht ablesbar) oder beispielsweise der Schwellenspannung eines Transistors, der durch den Dotierungspegel gesteuert wird (schlecht) optisch lesen). Im Prinzip geht im Masken-ROM also nicht alles verloren, wenn Sie den Inhalt wirklich verbergen möchten.
Speicher auf ausgebrannten Jumpern (Fuse ROM). Es ermöglicht eine Aufzeichnung (einschließlich der Aufzeichnung durch den Benutzer auf dem fertigen Gerät) und eine unbegrenzte Anzahl von Messwerten. Es ist sehr einfach herzustellen und zu programmieren und daher für alle Arten von Konfigurationsspeicher und Firmware beliebt.
Abbildung 9. Zwei Zustände des Sicherungs-ROM. Quelle - semiengineering.comWie Sie sehen können, ist der Zustand eines gewöhnlichen schmelzbaren Jumpers (Sicherung) durch ein Mikroskop sehr leicht zu erkennen, das heißt, es ist einfach unmöglich, sich davor zu schützen, einen Kristall damit zu öffnen. Nun, und neben allem anderen ist der klassische ausgebrannte Jumper ziemlich groß (mehrere Quadratmikrometer) und daher nicht für große Speichermengen geeignet.
Flash-Speicher und andere EPROM- und EEPROM-Optionen basierend auf Floating-Gate-Transistoren.
Abbildung 10. Flash-Aufzeichnungsschema. Quelle - techreport.comDas Funktionsprinzip dieses Speichertyps ist recht einfach: Ein "schwebendes" Gate befindet sich in einer dicken Schicht eines Dielektrikums. Eine elektrische Ladung kann durch Tunneln in diesen Verschluss eingebracht werden, wobei eine Hochspannung an ihn angelegt wird. Und wenn Sie keine Hochspannung anlegen, kann die Ladung sehr lange im „schwebenden“ Verschluss gespeichert werden.
Was ist mit Sicherheit?
Die gute Nachricht ist, dass der Zustand des EEPROM mit einem Mikroskop nicht sichtbar ist. Schlecht? Es gibt mehrere von ihnen gleichzeitig.Die erste schlechte Nachricht ist, dass das EEPROM nicht nur durch Hochspannung, sondern auch durch ultraviolette Strahlung gelöscht wird (Oldtimer erinnern sich wahrscheinlich an Quarzglas-Chips). Wenn Sie die Topologie sorgfältig mit einem Mikroskop betrachten, können Sie möglicherweise den gesamten Speicher mit einem undurchsichtigen Material abdecken, mit Ausnahme der wenigen Bits, die einen Leseschutz und nach der Belichtung Ihren Chip enthalten. Moral: Verwenden Sie EEPROM in Ihrem Projekt und bedecken Sie es mit Metall. Und es ist nicht nur mit einer festen Abschirmung gegen Strahlung wünschenswert, sondern auch mit einigen signifikanten Linien, so dass die Abschirmung nicht genau geätzt werden kann. Hier ist jedoch auch ein Hinterhalt versteckt (dies ist die zweite schlechte Nachricht), da im Prinzip ein Mikroschaltkreis oder seine Einzelteile von unten hervorgehoben werden können. Dies ist nicht einfach, da höchstwahrscheinlich der Chip aus dem Gehäuse entfernt werden muss undzum Beispiel Ätzen des Bodens des Substrats, aber möglich. Solche Techniken sind zum Testen von Einzelchip-Mikroschaltungen beliebt, da die Metallisierung sowohl für UV- als auch für Laser undurchlässig ist und das Siliziumsubstrat nahezu transparent ist. Die Frage ist, wie der Strahlungsstrahl korrekt fokussiert werden kann, wenn eine lokale Belichtung erforderlich ist.Alternativ können Sie die Ein / Aus-Bits des Schutzes so konfigurieren, dass durch das Löschen der Schutz aktiviert und nicht deaktiviert wird.Die dritte schlechte Nachricht ist, dass es Sensoren gibt, die die elektrische Ladung in einem schwimmenden Tor oder seinen Überresten nach einem Löschvorgang ablesen können. Darüber hinaus muss der Chip zum elektrischen Lesen des Speichers im Allgemeinen nicht mit Strom versorgt werden, dh es besteht kein Risiko, die eingebauten Mechanismen zur Zerstörung von Informationen einzuschalten.Mram, obwohl relativ selten, verdient aber auch unsere Aufmerksamkeit. Es kann wie ein Blitz nicht optisch betrachtet werden. MRAM kann natürlich nicht mit ultraviolettem Licht gelöscht werden, aber es existieren Magnetfeldsensoren mit einer Auflösung, die hoch genug ist, um die oberen Metalle zu erfassen und den Speicher Stück für Stück zu lesen. Gute Nachrichten? Es ist unwahrscheinlich, dass ein potenzieller Angreifer sie schnell und kostengünstig findet. Im Allgemeinen ist MRAM unter Sicherheitsgesichtspunkten eine gute Alternative zu Flash. Bisher ist es jedoch nicht allgemein verfügbar und wurde nur mit Technologien für Fabless-Unternehmen in die Massenproduktion aufgenommen. Antifuse ROMgilt heute als der am besten vor Reverse Engineering geschützte Speicher.. Wie der Name schon sagt, handelt es sich um einen bestimmten Antipoden verbrannter Jumper, nämlich einen hohen Widerstand in einem nicht programmierten Zustand und einen niedrigen in einem programmierten Zustand. Wie wird das erreicht? Mit dem Durchbruch des Gate-Gate-Dielektrikums eines Transistors mit hoher Spannung. Der Durchbruchbereich ist so klein, dass er weder im Mikroskop noch im Schnitt auf der FIB von oben sichtbar ist, sondern auch eine gute und zuverlässige Widerstandsänderung um mehrere Größenordnungen liefert, was für ein zuverlässiges Ablesen des Speicherzustands auf regelmäßige Weise völlig ausreicht. Eine solche Speicherzelle kann jedoch gelesen werden, indem sie direkt mit dem Gate und der Source des Speichertransistors verbunden wird. Eine ungebrochene Zelle verhält sich wie ein Kondensator, eine zusammengefügte Zelle verhält sich wie ein Widerstand.
Abbildung 11. Zellabschnitt eines Antifuse-Speichers. Dargestellt sind mehrere Bereiche eines möglichen Durchbruchs des Transistors. Dies kann das Leseschema erschweren.Natürlich gibt es neben der visuellen Überprüfung der Zellen auch andere Möglichkeiten, den Inhalt des Speichers zu lernen. Am einfachsten ist es, mit FIB eine direkte Verbindung zu den entsprechenden Leseleitungen herzustellen und ihnen alle Steuersignale zu senden, die gesendet werden müssen, um Informationen zu lesen, auf die auf normale Weise nicht zugegriffen werden kann. Zuvor konnten Sie den Leseschutz deaktivieren, indem Sie die Zeilen, die zu den entsprechenden Speicherbits führen, physisch abschneiden. Wie können Sie sich davor schützen? Nachdem Sie die Topologie Ihres Chips richtig entworfen und möglicherweise einige zusätzliche Funktionen integriert haben. Hier ist ein Beispiel dafür, wie Cypress dies tut:It is possible to configure the nvSRAM to provide password protected access. In this configuration, instead of performing the normal power up recall sequence on power up, the part waits for the user to enter a 5-byte password followed by an End Password Entry soft sequence. The End Password Entry soft sequence is a specific seven-address read sequence. If you enter the correct password, the part completes the boot up sequence and is ready for the normal nvSRAM operations. If you enter the incorrect password three times or you do not enter the right password within a specified period of time, the part locks up or fills the SRAM memory with random data, as the application requirement may be. The part can be configured to additionally destroy the functionality and cause physical damage to the chip.Normalerweise geschieht dies: Der Speicher wird von oben durch ein Gitter aus Erd- und Stromleitungen abgedeckt, und alle Signalleitungen befinden sich streng darunter. In diesem Fall muss darauf geachtet werden, dass sich die Stromleitungen einerseits nicht duplizieren (dh wenn einer von ihnen abgeschnitten wird, funktioniert ein Teil der Mikroschaltung nicht mehr), und andererseits, dass jeder von ihnen viele Speicherbits bedient und das Einsetzen eines Amperemeter in die Stromleitung konnte es uns nicht ermöglichen, den Speicherzustand durch Verbrauch im Lesemodus abzuschätzen (der sich für verschiedene logische Zustände in den meisten Speichertypen unterscheidet). Bei einer solchen Organisation der oberen Schichten des Chips ist es für einen Angreifer äußerst schwierig, einen Teil der Metallisierung zu öffnen, um eine Verbindung zu dem herzustellen, wo er benötigt wird.Selbst im Netz von Grundstücken und Stromversorgungen sind zusätzliche Schutzleitungen so angeordnet, dass eine Unterbrechung (oder ein Kurzschluss zu Strom oder Masse) bei der Stromversorgung des Chips das vollständige Löschen des Inhalts des geschützten Speichers (oder, wie wir oben gesehen haben, eine physische Beschädigung auslöst) Chip). Solche Schutzleitungen, die sich neben den Land- und Stromleitungen befinden, erschweren die Arbeit der Angreifer erheblich, da Operationen mit der FIB nach den Standards der aktuellen technologischen Prozesse einen greifbaren Platz erfordern. Aufgrund der kegelförmigen Form des vom Mikroskop erzeugten Ausschnitts gilt außerdem: Je niedriger die Schicht, mit der Sie eine Verbindung herstellen möchten, desto mehr Fläche muss darüber gereinigt werden.Tatsächlich benötigt ein Angreifer jedoch häufig nicht den genauen Wert des Speicherinhalts, und es kann durchaus ausreichen, die Anzahl der Sortieroptionen um mehrere Größenordnungen zu verringern. Wenn beispielsweise eine Speicherzelle beim Lesen einer logischen Einheit X und beim Lesen einer logischen Null 100 * X verbraucht, wird beim Lesen eines Bytes eines solchen Speichers je nach Speicherinhalt ein unterschiedlicher Verbrauch erzielt:0 - 800 * X1,2,4, ..., 64, 128 - 701 * X3, 6, 7, ..., 160, 192 - 602 * X....255 - 8 * X.Wenn wir den Speicher nicht berühren, benötigen wir insgesamt 256 Versuche, um das darin enthaltene Kennwort auszuwählen. Und wenn wir wissen, dass der Verbrauch im Lesemodus 701 * X beträgt, gibt es nur acht. Praktisch, nicht wahr? Der einfachste Weg, um dieses Problem zu lösen, besteht darin, die Daten in Form eines Werts und ihrer Inversion in einer benachbarten Zelle zu speichern. dann hängt der Verbrauch einer beliebigen Speichermenge im Lesemodus nicht von den gespeicherten Informationen ab. Es erfordert zwar doppelt so viel Speicher, aber Sicherheit ist uns wichtig, oder?FALL 3: OHNE SPEICHER
Was aber, wenn Ihr Chip keinen Konfigurationsspeicher oder nur wenige Bits enthält, die sich nicht verbergen lassen? Warum? Es ist also viel billiger (nicht so sehr durch Reduzierung der Kosten für Masken für die Lithographie, sondern durch einen einfacheren Prozess des Verpackens und Testens), und für die meisten einfachen Chips ist der Preis ein ernstzunehmender Wettbewerbsvorteil.
Apropos Testen. Das Zurückweisen von Kristallen auf Wafern und das Flashen des Konfigurationsspeichers wird häufig ausgelagert, insbesondere von kleinen Unternehmen, da die entsprechende Ausrüstung für Startups normalerweise nicht erschwinglich ist und die Qualität sichergestellt werden muss. Wenn also die Produktion von Drittanbietern mit Ihren Testmethoden auf dem neuesten Stand ist und über eine Firmware für den Konfigurationsspeicher verfügt, ist es für Sie besser, diesen Personen vollkommen zu vertrauen. Oder Sie verfügen über zusätzliche Schutzmethoden gegen Reverse Engineering, die nicht an den Konfigurationsspeicher gebunden sind.
Was tun, wenn der Konfigurationsspeicher keine Schutzoption ist oder nicht ausreicht?
Der Hauptnachteil sowohl eines optischen Mikroskops als auch eines REM besteht darin, dass es sehr schwierig ist, zwischen Arten der Dotierung von Silizium zu unterscheiden. Das heißt, das Vorhandensein von Legierungen ist sichtbar, der Typ jedoch nicht. Daher wird bei der Analyse der Topologie und der Extraktion der Schaltung die Art der Dotierung aus dem Kontext und der implizierten Logik der Schaltung wiederhergestellt (n-Kanal-Transistoren sind mit Masse verbunden, p-Kanal-Transistoren sind mit Strom verbunden usw. usw.). Wenn Sie die Topologie Ihres Mikroschaltkreises so gezeichnet haben, dass sie nicht mit der intuitivsten und wahrscheinlichsten Option übereinstimmt, können Sie das Blut eines Reverse Engineers sehr gut verderben. Vor allem, wenn Sie mehrere verschiedene Schemata verwenden, die als gleich getarnt sind. Mit etwas Geschicklichkeit können Sie nicht nur die Analyse Ihrer Schaltung erschweren, sondern auch das Gerät (oder zumindest das Modellieren, aber es macht mehr Spaß, wenn es produziert wird) mithilfe der wiederhergestellten Topologie etwas Bestimmtes tun lassen, vom Kurzschließen des Bodens mit Strom bis zur Ausgabe obszöner Wörter an alle Ausgänge. Das deterministische Verhalten eines falsch gestohlenen Designs kann übrigens nicht nur nützlich sein, um Piraten ein Oszilloskop zu verbrennen, sondern auch, damit Sie ihnen, wenn frustrierte Benutzer Ihrer Chips später zu Ihnen kommen, klar zeigen können, dass sie gekauft haben Fälschung.
Abbildung 12. Schnitt von drei Strukturen, die mit einem Mikroskop nicht zu unterscheiden sind. Der linke ist ein pMOSFET, der mittlere ist ein Kurzschluss, der rechte ist eine in Sperrrichtung vorgespannte Diode (Lücke).
Abbildung 13. Topologie von drei digitalen Bibliothekszellen, die mit einem Mikroskop nicht zu unterscheiden sind. Der linke ist der Wechselrichter, der mittlere ist die direkte Verbindung von Eingang und Ausgang, der rechte ist die logische Ausgabeeinheit.Jede der Zellen in der obigen Abbildung sieht fast wie der gewöhnlichste Wechselrichter aus, kann jedoch tatsächlich ein Wechselrichter, Repeater oder Generator einer logischen Null oder einer logischen Einheit sein. Nur unsere Kontakte zur Diffusion von Ein- und Ausgang geben unseren „Wechselrichter“ aus. Wenn wir sie jedoch aufgeben, erhalten wir eine völlig ununterscheidbare von der Standardschaltung als Gegenleistung für die Unfähigkeit, die Eingangs- und Ausgangsverbindung zu implementieren (wir können jedoch zwei Wechselrichter für diesen Zweck verwenden). Mit der Fähigkeit, ein Signal mit derselben Zelle zu invertieren oder nicht zu invertieren, ist der Kampf gegen einen Angreifer jedoch viel interessanter, da Versuche, Probleme mit einem ungewohnten Design wie einem zusätzlichen Wechselrichter irgendwo in der Uhr oder im Ein / Aus-Stromkreis zu lösen, nichts erschweren.
Obwohl nein, passiert es. Eine gut aufgebaute Hand-Topologie wird normalerweise gut gelesen. Ein gutes
Beispiel ist Ken Schirriffs bereits erwähnter Blog.
Abbildung 14. Arithmetische Logikeinheit (ALU) des Intel 8008-Chips. Es werden separate Ziffern angezeigt.In der Topologie der ALU Intel 8008 sind acht identische Schaltkreise perfekt sichtbar - gemessen an der Anzahl der Bits. Wenn Sie wissen, dass dies ALU ist, können Sie das Topologieschema problemlos wiederherstellen. Wenn einige der darin enthaltenen Elemente falsch sind, wird dies Ihre Arbeit etwas komplizieren, aber nicht mehr. Und das alles, weil die Topologie gut in die Grundidee der Schnittstellen zwischen den Bestandteilen passt. Um einen Angreifer so zu verwirren, dass er Reverse Engineering-Versuche aufgibt, muss die Topologie unvorhersehbar und nicht wiederholend gemacht werden. Am einfachsten ist es, keine Blöcke manuell zu erstellen, sondern die gesamte Netzliste des Chips mit CAD zu erstellen. Auto-Tracer leisten trotz der enormen Zeitersparnis beim Erstellen einer Topologie (im Vergleich zu manueller Arbeit) hervorragende Arbeit bei der Erstellung einer nicht intuitiven Anordnung von Elementen und stellenweise völlig verrückten Verbindungen. Und je größer das Design ist, dessen Topologie als Ganzes synthetisiert wurde, desto schwieriger ist es, ein Reverse Engineering durchzuführen.
Dies ist jedoch der einfachste Weg. Es gibt interessantere Optionen. Verwenden Sie beispielsweise einen Satz von Chamäleonzellen als einen Satz von Generatoren logischer Nullen und Einsen für die Eingänge des Multiplexers, während Sie eine beliebige logische Funktion realisieren. Auf diese Weise sind die Elemente des FPGA, LUT (Look-Up Table) angeordnet.
Abbildung 15. Implementierung einer LUT mit drei Eingängen. QuelleIndem wir mehrere solcher LUTs an verschiedenen Stellen der Schaltung platzieren und einige Signale an die Eingänge der „Speicherzellen“ bringen, lösen wir mehrere Probleme gleichzeitig:
- Wenn unser Manöver ungelöst bleibt, können wir festlegen, wie genau sich die rückentwickelte Schaltung verhält. Optionen - beliebig, nur durch Ihre Vorstellungskraft begrenzt.
- Die Verwendung beliebiger Signale von anderen Blöcken als "Eingabe" für die Zellen, die eine logische Null und Eins erzeugen, erschwert den Prozess der visuellen Trennung des Entwurfs in Blöcke.
- Selbst wenn der Reverse Engineer erkennt, dass wir solche geschützten LUTs verwenden, muss er viele Optionen sortieren, um die Funktionalität der Schaltung gemäß der Topologie wiederherzustellen, sodass selbst eine relativ kleine Anzahl geschützter Zellen das Reverse Engineering unnötig zeitaufwändig machen kann. Mein Favorit ist es, eine Zustandsmaschine an solchen LUTs zu montieren, die die Übergänge der Mikroschaltung von einer Betriebsart in eine andere steuert.
TESTDIAGRAMME
Gute Ingenieure testen ihre Chips sehr gerne umfassend. Und mit „umfassend“ meine ich - ungefähr so wie beim TI DC / DC-Wandler in der folgenden Abbildung. Dutzende kleiner Kontaktflächen, an die Sie sich anschließen können, bevor Sie die Platte in einzelne Kristalle schneiden, um alle erforderlichen Parameter und den Status wichtiger interner Leitungen zu überprüfen, zu entscheiden, ob der Chip geeignet ist oder nicht, und gegebenenfalls die Ursache der Probleme herauszufinden.
Abbildung 16. Topologie von Texas Instruments TPS 62321. Quelle - zeptobars.comEine gute Abdeckung mit Testpads für Teststarts und Prototypen ist besonders wichtig, aber für die Serienproduktion werden sie häufig ausgeschaltet (durch Korrektur von ein oder zwei Masken oder brennbaren Jumpern), um die Auswirkungen auf das Verhalten des Produkts zu minimieren. Also, wovon rede ich? Testkontaktfelder sind Ihre große Hilfe für einen Angreifer, da Sie nicht nur wichtige Punkte im Design selbst hervorheben, sondern auch bequemen Zugriff darauf gewähren. Der ausgebrannte Jumper kann auf FIB leicht wiederhergestellt werden, und voila! Im Idealfall erfordert die Sicherheit das vollständige Entfernen der Testpads vom seriellen Chip. Wenn diese Option irrational ist (z. B. müssen Sie in der Serienproduktion auch auf einer Platte testen), stellen Sie zumindest sicher, dass der Mechanismus zum Trennen von Teststellen nicht wiederherstellbar ist. Er befindet sich beispielsweise direkt unter der Plattform und wurde so gezeichnet, dass die Lücke entsteht konnte nicht bequem angeschlossen werden.
Ich möchte nicht einmal damit beginnen, dass alle modernen digitalen Designs über einen integrierten JTAG zum Testen verfügen, mit dem Sie den Status eines Triggers auf einem Chip direkt anzeigen können. Die Testeignung ist eines der Hauptmerkmale eines jeden Designs. Aufgrund dieser Tatsache ist es äußerst wichtig, alle Testschnittstellen sicher und dauerhaft zu deaktivieren, bevor der Chip die Wände des Herstellers verlässt.
Noch immer platzieren gute Ingenieure gerne Testschaltungen für die nächsten Revisionen an der Peripherie des Chips. Normalerweise sind dies ziemlich wichtige Schemata. Warum sollten Sie sonst Zeit und Mühe damit verschwenden, ihre Tests zu organisieren? "Die wichtigen Schaltkreise, die Ihr geistiges Eigentum ausmachen und für die Funktion des Chips entscheidend sind?" Sorgfältig vom gesamten Design getrennt? Vielen Dank!" - Der Reverse Engineer wird Ihnen ein solches königliches Geschenk mitteilen. Wenn Sie nicht möchten, dass Testfälle einem Angreifer helfen, Ihr Design zu studieren und zu kopieren, stellen Sie sicher, dass sie nicht in Kristalle für die Massenproduktion gelangen oder nach dem Testen auf Platten während des Schneidens von Platten zu Kristallen zerstört werden.
Eine kleine Praxis
Um noch einmal zu demonstrieren, wie dies funktioniert, wurde das
Beispiel der Öffnung des Mikrocontrollers PIC12C508A, das in der Dissertation von Sergei Skorobogatov beschrieben wurde, 2004 in Cambridge verteidigt. Die Übersetzung ist kurz und ziemlich kostenlos:
Es ist notwendig, das Gehäuse zu öffnen und auf dem Chip einen durch ultraviolette Strahlung gelöschten Schutzspeicher zu finden. Dies geschieht ganz einfach durch Betrachten der Zeilen, die zum Chip-Programmierstift führen. Anschließend bedecken Sie den Hauptspeicher mit einem undurchsichtigen UV-Material. Nach fünf bis zehn Minuten Belichtung können Sie den Speicher als normalen Programmierer betrachten. Eine andere Möglichkeit - nachdem Sie den Kopierschutzspeicher gefunden haben, schneiden Sie einfach den Metallpfad ab, der zu diesem Chip führt, der sich aus irgendeinem Grund weit von anderen Linien entfernt befindet - so weit, dass Sie ihn nicht nur mit FIB, sondern nur mit einer Nadel schneiden können.
Abbildung 17. Und hier ist die sehr unglückliche Linie. In der Tat befindet es sich in der Mitte eines leeren Raums, in keiner Weise geschützt, es kann geschnitten werden.SCHLUSSFOLGERUNG
Natürlich ist es unmöglich, die Unermesslichkeit zu erfassen, da die Technologie und das Reverse Engineering von Mikroschaltungen und der Schutz dagegen nicht stillstehen und ständig verbessert werden. Das Thema Informationssicherheit ist einer der Schlüssel im Design für das Internet der Dinge, daher widmen Entwickler dem Thema große Aufmerksamkeit, und Reverse Engineers können keine so einfache Extraktion wie vor fünfzehn oder zwanzig Jahren erwarten. Dennoch sollte man immer daran denken, dass ein schlecht geschütztes System potenzielle Verluste, große Verluste oder sogar das Leben von Menschen bedeutet und der Schutz vor unbefugtem Zugriff und Reverse Engineering auf allen Betriebsebenen Teil des Systems sein sollte, ohne die Hardware auszuschließen .