Seit der Einführung von PAL-Bausteinen in den 1970er-Jahren haben programmierbare Logikbausteine (PAL) in der Elektronikindustrie zunehmend an Bedeutung gewonnen. Dank des Mooreschen Gesetzes ist die Kapazität eines einzelnen PAL-Chips von anfänglich nur wenigen Dutzend Gattern auf Millionen von Gattern angewachsen; seine Anwendungsbereiche haben sich von einfacher Verbindungslogik bis hin zu komplexen SoC-Designs erweitert; und sein Preis ist von einigen Dutzend Gattern pro Dollar auf knapp unter einen Dollar gesunken. Mit der zunehmenden Skalierung der Designs und den sinkenden Gerätepreisen machen die Entwicklungskosten einen immer größeren Anteil der Systemimplementierungskosten aus. Daher ist der effektive Schutz der Urheberrechte an Kundendesigns zu einem entscheidenden Faktor für programmierbare Bausteine geworden. Denn bei der Entwicklung programmierbarer FPGAs oder kundenspezifischer ASICs liegen die Unterschiede zwischen Produkten oft in den entworfenen Chips. Wird die Designsicherheit nicht ausreichend gewährleistet, kann das Design von Wettbewerbern oder Hackern kopiert und als deren eigene Produkte wieder auf den Markt gebracht werden. Dieser Artikel stellt die Sicherheitsmerkmale verschiedener Chips und mögliche Techniken zum Kopieren von Designs (Reverse Engineering und Klonen) vor und erörtert die Rolle der patentierten Vialink-Technologie von Quicklogic im Bereich der Designsicherheit. Reverse Engineering von integrierten Schaltungen umfasst folgende Schritte: 1. Entfernen des Chipgehäuses durch chemisches Ätzen und Polieren; 2. Ist der Chip intakt, kann er mit einem Spannungskontrastmikroskop gescannt werden, um die Veränderungen seines Spannungspegels im Zeitverlauf zu beobachten. Anschließend können Techniken zum Ablösen der physikalischen Schichten (Physical Layer Stripping, PLS) zur Analyse der einzelnen Schichten eingesetzt werden; 3. Die Metallverbindungsschichten des Chips werden fotografiert und nacheinander abgelöst, um die Chipstruktur zu erhalten; 4. Nach dem Ablösen jeder Schicht kann die Netzliste und der Schaltplan mithilfe von Mustererkennungssoftware verarbeitet oder manuell verifiziert werden. Mehrere Unternehmen bieten derzeit Dienstleistungen zum Scannen von Standardzellen-/Gate-Chips und zur automatischen Generierung von Netzlisten an; 5. Mithilfe der in den vorherigen Schritten gewonnenen Informationen werden neue integrierte Schaltungen hergestellt. Einige auf Reverse Engineering spezialisierte Unternehmen behaupten, mit ausreichend finanziellen Mitteln und Zeit die Sicherheitsmaßnahmen jedes Chips knacken zu können. Die Kosten für solche Arbeiten liegen zwischen 10.000 und 1 Million US-Dollar. Glücklicherweise gibt es Methoden, um Reverse Engineering zu verhindern oder wirtschaftlich unrentabel zu machen. Dieser Artikel beschreibt einige dieser Methoden. Klonen und Replikation: Klonen bezeichnet die exakte Replikation des Chipinhalts. Bei SRAM-FPGAs genügt es, die Konfigurationsdaten aus dem externen, nichtflüchtigen Konfigurationsspeicher des FPGAs auszulesen. Bei kundenspezifischen integrierten Schaltungen besteht die einzige Klonmethode darin, das bereits erwähnte Verfahren des Chip-für-Chip-Strippings und der fotografischen Kopie zu verwenden, um den Schaltplan zu extrahieren und anschließend zu kopieren. Bei FPGAs mit Metall-zu-Metall-Antifuse-Technologie sind diese Methoden jedoch nicht anwendbar; die einzige Möglichkeit, den Chip zu kopieren, besteht darin, die Designdateien zu erhalten. Sicherheitsprobleme bei SRAM-basierten FPGAs: Von allen FPGA-Typen lassen sich Designs auf SRAM-FPGAs am einfachsten kopieren. Die Designinformationen von SRAM-FPGAs werden als digitaler Datenstrom in einem externen PROM- oder Flash-Speicher gespeichert. Beim Herunterladen von Daten vom externen PROM/Flash-Speicher auf das FPGA können diese mit Standardmessgeräten verfolgt und aufgezeichnet werden. Zudem lässt sich der PROM/Flash-Speicher selbst leicht kopieren. Hersteller von SRAM-FPGAs haben daher verschiedene Lösungen entwickelt, um das Kopieren von Designs zu verhindern. Eine Sicherheitsmethode ist die Verwendung eines batteriegepufferten Datenspeichers. Dabei wird der Datenstrom während der Produktherstellung in den Chip geladen. Nach dem Abschalten des Systems werden die Konfigurationsinformationen des FPGAs von der Batterie versorgt, um Datenverlust zu vermeiden. Gehen die Konfigurationsinformationen jedoch verloren, muss das Produkt zur Reparatur an den Hersteller zurückgesendet werden. Ein Batterieausfall erfordert nicht nur das erneute Laden der Daten, sondern auch den Austausch der Batterie. Darüber hinaus erhöht die zusätzliche Batterie die Kosten von SRAM-FPGAs. Eine andere Methode zur Verschlüsselung des Datenstroms besteht darin, den Schlüssel in einem speziellen RAM innerhalb des Chips zu speichern. Auch diese Methode benötigt eine Backup-Batterie. Flash-basierte FPGAs bieten eine höhere Sicherheit als SRAM-FPGAs, da die Konfigurationsinformationen in einer nichtflüchtigen Flash-Struktur gespeichert werden. Dadurch wird die Verwendung leicht lesbarer digitaler Datenströme für die Chipkonfiguration vermieden. Flash-FPGAs ermitteln die Kontinuität zweier Metallverbindungen durch Laden und Entladen der Floating Gates von Konfigurationstransistoren. Diese Verbindungsinformation ist nichtflüchtig und bleibt auch nach einem Stromausfall erhalten. Das Kopieren eines Designs von einem Flash-FPGA ist zwar etwas schwieriger, aber es gibt dennoch Methoden. Eine Methode besteht darin, das Potenzial an den Floating Gates der Konfigurationstransistoren elektrisch zu prüfen, um Verbindungsinformationen zu gewinnen. Eine andere Methode ist, den eingeschalteten Flash-FPGA-Chip in eine Vakuumkammer zu legen und anschließend seine Strahlung mit einem Elektronenmikroskop zu untersuchen. Diese Methoden sind zwar schwierig umzusetzen, können aber dennoch von Angreifern erfolgreich ausgenutzt werden, um das Design zu kopieren. Die Sicherheit von ASICs liegt zwischen der von SRAM-FPGAs und Flash-FPGAs. Obwohl ASICs relativ sicher sind, sind sie dennoch anfällig für Angriffe. Reverse Engineering von ASICs ist aufgrund der teuren Werkzeuge und der langen Bearbeitungszeiten kostspielig. Die Methoden für Reverse Engineering von ASICs sind vielfältig und reichen von gängigen bis hin zu hochentwickelten Verfahren. Eine gängige Methode besteht darin, Siliziumschichten schichtweise abzutragen, die Oberfläche zu fotografieren und anschließend den Schottky-Effekt zu nutzen, um N- und P-dotierte Bereiche sichtbar zu machen. Eine andere Methode beinhaltet das Aufbringen einer dünnen Gold- oder Palladiumschicht auf die Siliziumoberfläche, um Dioden zu erzeugen, die unter einem Elektronenstrahl sichtbar gemacht werden können. Nachdem die Bilder jeder Chipschicht in einen Computer eingelesen und mit Grafiksoftware verarbeitet wurden, lassen sich die grundlegenden Chipparameter, die Maske, das Schaltbild und die Liste der Bibliothekszellen bestimmen. Diese Methode wurde erfolgreich für das Reverse Engineering des Intel 80386-Prozessors eingesetzt. Branchenexperten halten die Antifuse-Technologie für die zuverlässigste Sicherheitstechnologie auf dem Markt. Im Folgenden wird der Sicherheitsmechanismus der patentierten Antifuse-Technologie ViaLink von QuickLogic für programmierbare Bausteine beschrieben. ViaLink ist eine extrem schnelle, energiesparende und nichtflüchtige Verbindungstechnologie, die in QuickLogic-Bausteinen verwendet wird. Diese Technologie nutzt Antifuse-Drähte aus Metallelektroden und amorphem Silizium, wobei das amorphe Silizium als programmierbares Material dient. Unprogrammierte ViaLinks weisen eine extrem hohe Impedanz auf, programmierte ViaLinks hingegen eine extrem niedrige, ähnlich wie Metall-Metall-Verbindungen. Alle Konfigurationsinformationen der ViaLink-Technologie sind intern im Chip gespeichert, wodurch ein Diebstahl des Designs durch Konfiguration des Bitstreams unmöglich ist. Eine QuickLogic-Designdatei ist eine ASCII-Datei mit Programmierverbindungsinformationen. Der Programmierer gleicht diese Datei mit einer spezifischen Datenbank ab, übersetzt alle Verbindungsnamen in ihre Positionen auf dem Chip und legt fest, welche Verbindungen fusioniert werden sollen. Zum Klonen eines solchen Chips benötigt der Programmierer sowohl die Programmierdatei als auch einen leeren Chip. Standardmethoden des ASIC-Reverse-Engineerings sind für QuickLogic-Bausteine schlichtweg ungeeignet. Aufgrund der extrem geringen Größe der ViaLinks (ca. 0,3 μm Durchmesser) und der metallähnlichen chemischen Eigenschaften ihrer Spitzen kann jede Position ein normaler Kanal, ein programmierter oder ein unprogrammierter ViaLink sein. Programmierte und unprogrammierte ViaLinks weisen nahezu identische Oberflächenprofile auf. Ätz- und fotografische Identifizierungsmethoden sind ineffektiv. Chemisches Ätzen ist eine Methode des Reverse Engineering. Allerdings wird dadurch die Struktur der ViaLink-Programmierpunkte zerstört. Der Zustand jeder einzelnen Sicherung lässt sich nur durch Längsteilung des Chips beobachten – ein teures Verfahren namens fokussiertes Ionenstrahlschneiden, das jedoch mit hoher Wahrscheinlichkeit andere Teile des Chips beschädigt. Um einen QuickLogic-Chip erfolgreich zu knacken, muss der Angreifer zudem die Position aller ViaLinks kennen. Theoretisch können die Verbindungspunkte erst nach der Bestimmung ihrer Position mit einem Rasterelektronenmikroskop untersucht werden. Selbst dann ist die Unterscheidung zwischen programmierten und unprogrammierten ViaLinks nicht einfach. Eine weitere Schwierigkeit ergibt sich aus der schieren Anzahl der ViaLinks im Chip. QuickLogic-Chips enthalten zwar viele ViaLinks, aber typischerweise ist nur ein kleiner Teil davon programmiert, und jede programmierte Verbindung hat erhebliche Auswirkungen auf die Funktionalität des gesamten Designs. Beispielsweise enthält der QL7180 Eclipse Plus-Chip ca. 8.000.000 ViaLink-Verbindungen, von denen in einem typischen Design jedoch nur 2 % bis 4 % genutzt werden. Das bedeutet, dass üblicherweise nur 160.000 bis 320.000 ViaLink-Verbindungen programmiert werden. Von diesen programmierten Verbindungen werden drei Viertel zum Kurzschließen ungenutzter Logikeinheiten verwendet, und nur ein Viertel (ca. 40.000 bis 80.000) dient dem eigentlichen Design. Ein einziger falsch gelesener ViaLink kann Fehlfunktionen im geklonten Chip verursachen. Daher dauert das Scannen und Lokalisieren aller ViaLink-Positionen oft Jahre, was Reverse Engineering von QuickLogic-Chips praktisch unmöglich macht. Bislang ist es noch keinem erfolgreichen Beispiel gelungen, einen QuickLogic-Antifuse-FPGA zu knacken.