Physikalisch nicht klonbare Funktionen: Schutz der Elektronik vor illegalem Kopieren


Quelle: Die gefälschte Online-Wirtschaft : Unterhaltungselektronik, ein Bericht von CSC aus dem Jahr 2017

In den letzten 10 Jahren hat sich die Anzahl gefälschter Waren weltweit verdoppelt. Diese Daten wurden in der jüngsten Überprüfung der Rechte an geistigem Eigentum zum Jahresende durch das US-Heimatschutzministerium im Jahr 2016 veröffentlicht (das aktuellste nachverfolgte Jahr). Ein Großteil der Fälschungen stammt aus China (56%), Hongkong (36%) und Singapur (2%). Die Hersteller von Originalwaren erleiden erhebliche Verluste, von denen einige auf dem Elektronikmarkt auftreten.

Viele moderne Produkte enthalten elektronische Komponenten: Kleidung, Schuhe, Uhren, Schmuck, Autos.
Im vergangenen Jahr beliefen sich die direkten Verluste durch das illegale Kopieren von Unterhaltungselektronik und elektronischen Bauteilen bei der Zusammensetzung anderer Waren auf etwa 0,5 Billionen US-Dollar.

Wie kann man dieses Problem lösen?

Dieses Problem kann durch verschiedene Methoden zum Schutz der digitalen Elektronik vor illegalem Kopieren, Ändern und Reverse Engineering gelöst werden: Hardwareverschlüsselung (AES, RSA usw.), Hashing (z. B. SHA-256, MD-5), Einführung von Digital Wasserzeichen und Fingerabdrücke in der Designbeschreibung, lexikalische und funktionale Verschleierung, formale Überprüfung und andere.

In diesem Artikel werden wir über eine der kostengünstigsten Schutzmethoden in Bezug auf die Hardwarekosten sprechen - physikalische nicht klonbare Funktionen (PUF).

Der Nachteil der meisten der oben genannten Verfahren sind erhebliche Hardwarekosten und infolgedessen ein hoher Stromverbrauch.

Mit dem Aufkommen des Konzepts des Internet der Dinge (Internet of Things, IoT) werden die Anforderungen an den Bereich, den ein digitales Gerät auf einem Chip einer integrierten Schaltung einnimmt, sowie an den Stromverbrauch strenger, da die Größe der Geräte dramatisch abnimmt von Jahr zu Jahr.

Physikalische nicht klonbare Funktionen (PUF)


Eine Möglichkeit, digitale Geräte zu identifizieren und zu authentifizieren, sind physisch nicht klonbare Funktionen, deren Implementierung viel wirtschaftlicher ist als die oben genannten Schutzmethoden.

Was ist PUF? Es ist schwierig, zwei absolut identische Objekte unter den materiellen Objekten um uns herum zu finden. Selbst in der Massenproduktion ist jedes Objekt aufgrund von Ungenauigkeiten und Unfällen einzigartig. Diese Merkmale jedes einzelnen Objekts können registriert und als eindeutige Kennung verwendet werden, eine Art „Fingerabdruck“.

Ein gutes Beispiel ist optisches PUF . Nehmen Sie ein Stück geschmolzenes Glas, fügen Sie Luftblasen hinzu, kühlen Sie diese Masse ab und schneiden Sie sie in gleiche Riegel. Die Chance, zwei absolut identische Balken zu erhalten, ist vernachlässigbar. Luftblasen im Inneren werden ungleichmäßig verteilt. Wir können diese Unterschiede beheben, indem wir einen Laserstrahl an den Balken senden (Anforderung) und am Ausgang nach der Brechung (Antwort) ein eindeutiges Interferenzmuster der Strahlungsstrahlen empfangen. Als Ergebnis erhalten wir eine physikalisch nicht klonbare Funktion, die die Abhängigkeit der Antwort von der Eingabeanforderung bestimmt. Natürlich handelt es sich bei dieser Funktion nicht um eine analytische Funktion, sodass weder der rechtmäßige Eigentümer des Objekts noch ein Angreifer dies im Voraus herausfinden können. Sie können nur einen Produktstapel testen und eine Tabelle mit Eingabe- und Ausgabewerten erstellen, die als Kriterien für die Bestimmung der Authentizität von Objekten dienen.

PUF zum Schutz der Elektronik basiert auf der Verwendung von Herstellungsprozessvariationen während der Herstellung von integrierten Schaltkreisen: zum Beispiel genaue Werte für Schwellenspannungen, Signalausbreitungsverzögerungen, die Häufigkeit des Komponentenbetriebs usw. Im Standard-Designprozess versuchen Elektronik-Konstrukteure, die Auswirkungen von Variationen auf das Endprodukt zu reduzieren. Für PUF hingegen wird dieses unkontrollierte Phänomen verwendet, um die Zufälligkeit und Einzigartigkeit eines digitalen Geräts zu extrahieren.

Tatsächlich ähnelt PUF Hardware-Implementierungen von Hash-Funktionen. Der einzige Unterschied besteht darin, dass die Eindeutigkeit des Ausgabewerts der PUF auf der Eindeutigkeit einer bestimmten integrierten Schaltung und nicht auf einem mathematischen Algorithmus basiert.

Das PUF-Eingabeargument (Anfrage) wird als Challenge (CH) bezeichnet, und der Ausgabewert ist die Antwort ®. Auf diese Weise wird für einige integrierte Schaltkreise - ICk - der Satz von Herausforderungen - {CH 0 , ..., CH N-1 } - eindeutig auf den Satz von Antworten {R 0 , ..., R N-1 } mit PUF abgebildet ::

Ri=PUF(CHi)



Ein Satz von Challenge-Response-Paaren (CRP) {(CH 0 , R0), ..., (CH N-1 , R N-1 )} charakterisiert den ICk der integrierten Schaltung eindeutig und kann selbst für eine absolut identische Entwurfsbeschreibung nicht kopiert werden ( siehe Abbildung unten).


Einzigartigkeit von integrierten Schaltkreisen (IC) zwischen Chips und Chips

Wie im Diagramm gezeigt, sind bei der Implementierung einer identischen Entwurfsbeschreibung des PUF auf verschiedenen integrierten Schaltkreisen die Antworten (R i ) auf die gleichen Herausforderungen (CH i ) für jede Kopie eindeutig (signifikant voneinander verschieden). Dieses Phänomen wird als Eindeutigkeit zwischen Chips bezeichnet, d. H. Die Fähigkeit, integrierte Schaltkreise unter Verwendung von PUF voneinander zu unterscheiden. Wenn identische Realisierungen von PUF auf einem einzelnen Chip verwendet werden, um beispielsweise verschiedene Komponenten des geistigen Eigentums (IP) zu identifizieren, wird das Phänomen der Eindeutigkeit pro Chip beobachtet. Da sich die Realisierungen der PUF innerhalb eines Chips zumindest in ihrer gegenseitigen Anordnung unterscheiden, ist die Eindeutigkeit pro Chip oder die eindeutigen Signaturen pro Chip in der Regel ausgeprägter als die zwischen den Chips.

Bestehende Implementierungen von PUF und deren Verwendung


Derzeit gibt es viele PUF-Implementierungen, die auf folgenden Kriterien basieren:

  1. Signalausbreitungsverzögerungen . Unter Verwendung des Binärwerts von Herausforderungen wird die Konfiguration von symmetrischen Pfaden festgelegt, entlang derer mehrere Kopien eines Signals verteilt werden. Die Antwort des PUF ist das Ergebnis des Vergleichs der Verzögerungen des Ausbreitungssignals.
  2. Frequenzen der Komponenten . Die Basis dieser PUF ist ein Vergleich von Paaren identischer Komponenten mit einer eindeutigen Frequenz. Herausforderungen sind alle Arten von Indexpaaren verschiedener Komponenten, und die Antworten sind das Ergebnis eines Vergleichs der Häufigkeit ihrer Arbeit.
  3. Speicherstatus . Infolge des Einschaltens und / oder Zurücksetzens des Zustands statischer Speichergeräte (SRAM) ist der ursprünglich in jedem der Speicherelemente (0 oder 1) gespeicherte Wert eindeutig und zufällig. Die Herausforderung für diese PUF ist das Ein- und Ausschalten, und die Antwort ist der beobachtete Zustand jedes der Speicherelemente, der die integrierte Schaltung, auf der die PUF implementiert ist, eindeutig charakterisiert.
  4. CMOS-Bildsensor . Jedes mit Hilfe einer lichtempfindlichen Matrix (Bildsensor) erstellte Bild weist eine konstante Rauschkomponente auf, die die Einzigartigkeit der implementierten Matrix kennzeichnet. Das Funktionsprinzip dieser PUF ähnelt der PUF, die auf dem Vergleich von Frequenzen basiert, mit dem einzigen Unterschied, dass der Vergleich gemäß den Werten der Schwellenspannung jedes der Elemente der Matrix durchgeführt wird.
  5. Transistorschwellenspannung . Diese Art von PUF kann nur analog implementiert werden, da ein Ingenieur in diesem Fall Zugriff auf die Schwellenspannungswerte hat. Die Basis für diese PUF ist, wie die PUF auf der Basis von Frequenzen, der Vergleich der Eigenschaften mehrerer in der integrierten Schaltung verwendeter Transistoren.
  6. Aktueller Spiegel . Diese PUF-Klasse basiert auf der Implementierung eines Arrays aktueller Spiegel. Die Spannungswerte an den Knoten dieses Arrays charakterisieren die integrierte Schaltung eindeutig. Die Herausforderung besteht in diesem Fall in der Anzahl der Spalten und Zeilen der Elemente, welche Spannungswerte Sie vergleichen möchten. Dementsprechend ist die Antwort das Ergebnis des Vergleichs der Spannungsunterschiede in einem Knotenpaar mit einem Schwellenwert.
  7. Externer Druck auf einem Smartphone-Bildschirm . In dieser Implementierung besteht die Herausforderung des PUF in einer Benutzeraktion, bei der ein Finger nach einem bestimmten Muster über einen Bildschirm gestrichen wird (wie bei einem Grafikschlüssel in Smartphones). Basierend auf den Druckwerten eines Benutzers auf dem Smartphone-Bildschirm wird ein eindeutiger Antwortwert berechnet, der den Benutzer und das Smartphone charakterisiert und somit zur Authentifizierung verwendet werden kann.
  8. Papierstruktur . Diese Implementierung des PUF basiert auf der Einzigartigkeit der Papierstruktur aufgrund der Abweichungen während des Herstellungsprozesses. Dementsprechend kann ein bestimmtes Papiermedium als Quelle für eindeutige kryptografische Schlüssel verwendet werden.

Wie oben gezeigt, gibt es eine Vielzahl von Arten von PUFs, die sowohl auf digitalen Geräten als auch unter Verwendung anderer Technologien (optisch, magnetisch, Papier usw.) implementiert werden können.

Die erste kommerzielle Implementierung von PUF im Jahr 2008 waren Hochfrequenzkennungen, die von der Verayo Company hergestellt wurden. Derzeit verwenden viele FPGA-Hersteller - beispielsweise Xilinx und Altera (Intel) - PUFs als eingebettete nicht klonende FPGA-Kennung.

Da PUFs als kryptografische Grundelemente (Zufallszahlengeneratoren, eindeutige Kennungen, Hardware-Hash-Funktionen) verwendet werden, legen viele Hersteller die Verwendung von PUFs nicht offen, um die Details der Implementierung ihrer Sicherheitsprotokolle vor Eindringlingen geheim zu halten.

Beispiel eines PUF-basierten Speichers (SRAM)


Als Beispiel für PUF verwenden wir die Implementierung des auf Speicher basierenden PUF mit dem Xilinx Spartan 3E FPGA, das Teil des Digilent Nexys-2-Entwicklungsboards ist. Die Speicherelementemulation wurde als bistabiles Element implementiert, und das Ein- und Ausschalten wurde durch Neuprogrammierung des FPGA unter Verwendung derselben Konfigurationsdatei modelliert.

Die folgende Abbildung zeigt die Kennungen zweier identischer FPGAs, die aufgrund ihrer Programmierung mit derselben Bitdatei erhalten wurden. Die schwarze Farbe kennzeichnet „Speicherelemente“, die aufgrund von 100 Neuprogrammierungen den Wert 0 beibehalten, die weiße Farbe kennzeichnet den Wert 1. Die Graustufen sind diejenigen, die den Wert von Start zu Start ändern. Dementsprechend wurden je mehr Schwarz in der "Element" -Farbe als Ergebnis der Neuprogrammierung mehr Werte von 0 erzeugt.


Die 64-Bit-Kennungen zweier identischer FPGAs

Wie aus der Abbildung ersichtlich, unterscheidet sich die "Speicherkarten" -Methode erheblich: Der Hamming-Abstand für 64-Bit-Bezeichner beträgt etwa 20. Dementsprechend ist die Wahrscheinlichkeit, dass der Bezeichner auf verschiedenen FPGAs gleich ist, mit weniger als 0,01 recht gering. Die oben genannten "Speicherkarten" können auf zwei Arten verwendet werden: zur Identifizierung des FPGA und als Quelle der Zufälligkeit aufgrund des Vorhandenseins nicht permanenter Elemente.

Für eine zuverlässige Identifizierung müssen Fehlerkorrekturcodes (ECC) verwendet werden , um die beobachteten „Speicherkarten“ zu stabilisieren. In diesem Artikel haben wir die Mehrheitsauswahlmethode verwendet . Um einen Zufallszahlengenerator zu implementieren, ist im Gegenteil die "Reproduktion" der Zufälligkeit jener "Speicherelemente" erforderlich, deren Werte instabil sind. Zu diesem Zweck haben wir die Signaturanalyse als Algorithmus zur Komprimierung von Verlustdaten verwendet. Standard-Hashing-Algorithmen (z. B. SHA-256) können auch verwendet werden, wenn die Hardwarekostenbeschränkungen nicht sehr eng sind.

Bestehende Probleme und Perspektiven für PUF


Trotz der relativen Neuheit dieses Konzepts feiert der Begriff PUF in diesem Jahr seinen 17. Geburtstag.
In dieser Zeit ist es der wissenschaftlichen Gemeinschaft bereits gelungen, sowohl die Probleme als auch mögliche Anwendungen von PUF zu untersuchen.

Eines der Hauptprobleme, das am Beispiel des auf Speicher basierenden PUF demonstriert wird, ist die Instabilität einiger Werte, was wiederum einen Ingenieur dazu zwingt, Fehlerkorrekturcodes und zuverlässigere PUF-Architekturen zu verwenden.

Andererseits gefährdet die sehr hohe Stabilität die PUF durch maschinelle Lernmethoden einem kryptografischen Angriff, dh die Konstruktion ist ausreichend genau - mehr als 95% - ein mathematisches Modell der PUF, das ursprünglich (bis 2010) als unmöglich angesehen wurde die wissenschaftliche Gemeinschaft.
Die Verwendung von PUF in modernen kommerziellen Anwendungen als kryptografisches Grundelement beweist jedoch das Versprechen der Forschung auf diesem Gebiet auf der Suche nach neuen PUF-Architekturen sowie der Verbesserung der Eigenschaften bestehender Implementierungen.

Source: https://habr.com/ru/post/de446304/


All Articles