WO2014180604A2 - Verschleiern von daten mittels eines prozessors - Google Patents

Verschleiern von daten mittels eines prozessors Download PDF

Info

Publication number
WO2014180604A2
WO2014180604A2 PCT/EP2014/056295 EP2014056295W WO2014180604A2 WO 2014180604 A2 WO2014180604 A2 WO 2014180604A2 EP 2014056295 W EP2014056295 W EP 2014056295W WO 2014180604 A2 WO2014180604 A2 WO 2014180604A2
Authority
WO
WIPO (PCT)
Prior art keywords
obfuscation
data
computer
puf
function
Prior art date
Application number
PCT/EP2014/056295
Other languages
English (en)
French (fr)
Other versions
WO2014180604A3 (de
Inventor
Rainer Falk
Steffen Fries
Wolfgang Klasen
Andreas Mucha
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Publication of WO2014180604A2 publication Critical patent/WO2014180604A2/de
Publication of WO2014180604A3 publication Critical patent/WO2014180604A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Die Erfindung betrifft ein Verfahren und eine Verwendung des Verfahrens zum Verschleiern von Daten mittels eines Prozessors. Dabei wird die Verschleierung in Abhängigkeit von einer Response einer Physical Unclonable Funktion, die spezifisch für einen Rechner oder ein Gerät ist, durchgeführt. Somit werden die Verschleierung und damit die korrekte Ausführung von einem Quellcode an ein spezifisches Gerät gekoppelt, das einen korrekten Verschleierungsparameter liefert.

Description

Beschreibung
Verschleiern von Daten mittels eines Prozessors Die Erfindung betrifft ein Verfahren und eine Verwendung des Verfahrens zum Verschleiern von Daten mittels eines Prozessors .
Auf dem Markt verfügbare Softwarelösungen, wie insbesondere Softwarekomponenten für eingebettete Systeme, oder elektronische Geräte werden im Rahmen des Verkaufes an einen Kunden weitergegeben. Sie sind dann einer Analyse durch den Kunden oder Nutzer ausgesetzt. Eine Software oder Teile einer Software eines Rechners, wie beispielsweise Algorithmen,
Optimierungen oder temporäre Daten der Software, können so einer Nachkonstruktion, einem sogenannten Reverse- Engineering, unterzogen werden.
Auf einem ausgelieferten Gerät kann ferner ein geheimer oder privater Schlüssel für kryptographische Operationen verwendet werden, beispielsweise zur Verschlüsselung, sicheren Kommunikation, Authentisierung oder bei ähnlichen kryptographischen Sicherheitsdiensten. Ein geheimer kryptographischer Schlüssel ist sicher auf einem System zu speichern, das heißt so zu speichern, dass er nicht praktikabel auslesbar ist. So kann gewährleistet werden, dass er unberechtigten Nutzern nicht zugänglich wird und geheim bleibt.
Aus dem Stand der Technik sind Speicher von Recheneinheiten bekannt, welche physikalisch tampergeschützt werden. Beispielsweise kann ein Speicher in Epoxidharz vergossen werden. Es können Tamper-Sensoren vorgesehen werden, welche eine mechanische Manipulation erkennen, beispielsweise in Form eines Gehäuse-Schalters oder einer Bohrschutzfolie. Es sind spezi- eile Hardware -Schutzmaßnahmen erforderlich, welche Kosten verursachen und in der Produktion sowie der Wartung aufwendig sind . Es sind physikalisch unklonbare Funktionen, sogenannte
Physical Unclonable Functions, bekannt. Mittels einer
Physical Unclonable Function werden insbesondere Eigenschaften eines physikalischen Systems, welche nicht praktikabel auf einem anderen physikalischen System reproduzierbar sind, vermessen. Es ist beispielsweise eine Chip-interne Bestimmung eines kryptographisehen Schlüssels mit Hilfe einer Schlüsselextraktionsfunktion und mittels einer Physical Unclonable Function bekannt. Dabei wird durch die Physical Unclonable Function gemeinsam mit der Schlüsselextraktionsfunktion ein Speicher für einen kryptographisehen Schlüssel realisiert.
Es ist eine Verschleierung, im Folgenden auch Obfuskation genannt, bekannt, um einen kryptographischen Schlüssel oder ei- ne kryptographische Berechnung in einer Software zu verstecken, so dass eine Analyse erschwert ist. Unter dem Begriff der White Box Cryptography wird die Verwendung kryptographi - scher Algorithmen in einer Umgebung verstanden, in welcher der Algorithmus von einem Nutzer beobachtbar, analysierbar und modifizierbar ist. Die Veröffentlichung von Brecht
Wyseur, "White-box cryptography: hiding keys in Software", MISC magazine, April 2012, stellt eine Obfuskationsmethode vor . Es besteht ein Bedarf, Daten auf einem Rechner, welche zur
Ausführung eines Quellcodes auf dem Rechner verwendet werden sollen, zu verschleiern und somit für einen vorsätzlichen oder versehentlichen Angreifer unzugänglich abzulegen. Diese Aufgabe wird durch ein Verfahren und eine Verwendung des Verfahrens zum Verschleiern von Daten mittels eines Prozessors gelöst. Vorteilhafte Ausführungsformen und Weiterbildungen sind in den Unteransprüchen angegeben. Die im Folgenden genannten Vorteile müssen nicht notwendigerweise durch die Gegenstände der unabhängigen Patentansprüche erzielt werden. Vielmehr kann es sich auch um Vorteile han- dein, welche lediglich durch einzelne Ausführungsformen oder Weiterbildungen erzielt werden.
Erfindungsgemäß umfasst ein Verfahren zum Verschleiern von Daten mittels eines Prozessors folgende Schritte:
- Bereitstellen einer für einen Rechner spezifischen, physikalisch unklonbaren Funktion; - Messen einer physikalischen Eigenschaft des Rechners in
Abhängigkeit von einem Aufforderungswert mittels der physikalisch unklonbaren Funktion zum Ermitteln eines Antwortwertes ; - Ermitteln eines Verschleierungsparameters für eine
Transformationsfunktion zum Transformieren der Daten in verschleierte Daten, wobei der Verschleierungsparameter in Abhängigkeit von dem Antwortwert ermittelt wird und wobei die verschleierten Daten zur Ausführung eines Quellcodes auf dem Rechner verwendet werden.
Durch das vorgeschlagene Verfahren wird eine Verschleierung, im Folgenden Obfuskation genannt, abhängig von einem rechnerspezifischen Parameter, der mithilfe einer physikalisch unklonbaren Funktion ermittelt wird, durchgeführt. Dafür wird die physikalisch unklonbare Funktion mit einem Aufforderungs - wert, auch Challenge genannt, beaufschlagt. Die physikalisch unklonbare Funktion liefert in Abhängigkeit von einer physikalischen Eigenschaft des Rechners, welche für den Rechner charakteristisch und spezifisch ist und nicht praktikabel reproduziert werden kann, einen Antwortwert, auch Response genannt .
Aus der Response wird der Verschleierungsparameter ermittelt, der nun für die Obfuskation verwendet wird und für den Rechner, auf welchem der Code ausgeführt wird, charakteristisch ist . Der Rechner kann dabei eine Komponente eines Gerätes sein. Ein Gerät ist insbesondere ein Satz von Komponenten. Für ein komplexes Gerät kann die Verschleierung komponentenweise durchgeführt werden. Beispielsweise geschieht in einer Basis- Station als Gerät die Obfuskation pro Kommunikationsboard separat und unabhängig voneinander.
Ein Ausführen der Transformationsfunktion auf einem anderen Rechner oder einem anderen Gerät zum Durchführen der
Obfuskation liefert ein abweichendes Ergebnis. Ein Kopieren der Daten auf einen anderen Rechner und das Ausführen der Transformationsfunktion auf diesem anderen Rechner ergibt folglich abweichende verschleierte Daten. Dies bedeutet ferner, dass eine De-Obfuskation, welche die Verschleierung von Daten mittels einer zur Transformations - funktion gehörenden Rücktransformationsfunktion rückgängig macht, nicht die ursprünglichen Daten liefert, falls die De- Obfuskation auf einem anderen Rechner ausgeführt wird als die Obfuskation. Zum De-Obfuszieren der Daten ist ein identischer Verschleierungsparameter zu ermitteln, der mit dem Verschleierungsparameter identisch ist, der in die Transformationsfunktion beim Verschleiern der Daten eingegangen ist. Damit ist ein geheimer Schlüssel nur ermittelbar oder eine kryptographische Operation unter Verwendung eines geheimen
Schlüssels nur durchführbar, falls die De-Obfuskation auf dem Rechner vorgenommen wird, auf welchem die Obfuskation vorgenommen wurde . Ferner ist das Ausführen eines Quellcodes, der in
obfuszierter Form vorliegt, nur auf dem Gerät möglich, dessen physikalische Eigenschaft in den Antwortwert der physikalisch unklonbaren Funktion und damit in den Verschleierungsparameter eingegangen ist.
Die Robustheit gegenüber Angriffen im Umfeld der White Box Cryptography wird somit verbessert, da die Obfuskation über die physikalisch unklonbare Funktion fest an eine bestimme Hardware gebunden ist. Ein zu dem Rechner gehörendes Gerät, welches beispielsweise durch einen Angreifer quasi identisch nachgebaut wurde und auf welchem der auf dem Rechner hinterlegte Quellcode ausgeführt werden soll, kann den Quellcode, beispielsweise eine Software oder Firmware, auf dem kopierten Gerät nicht ausführen. Der auf dem kopierten Gerät nicht verfügbare Verschleierungsparameter fehlt für eine korrekte De- Obfuskation. Beispielsweise kann nur ein vom ursprünglichen Verschleierungsparameter abweichender Verschleierungsparame- ter ermittelt werden.
Das vorgeschlagene Verfahren kann mittels des Prozessors auf dem Rechner ausgeführt werden. Es kann ferner ein Prozessor vorgesehen sein, welcher in einer anderen Hardware als der des Rechners realisiert ist. Die physikalische Eigenschaft wird dann von dem Rechner abgefragt und auf einer externen Recheneinheit werden der Antwortwert sowie der Verschleierungsparameter ermittelt. Unter einem Quellcode wird in der vorliegenden Anmeldung ein für einen Menschen lesbarer, in einer Programmiersprache geschriebener Text eines Computerprogrammes verstanden. Das Computerprogramm soll auf dem Rechner ausgeführt werden. Es kann sich dabei beispielsweise um einen Text in der Program- miersprache C++ handeln. Der somit in sogenannter Assemblersprache vorliegende Quellcode kann beispielsweise mittels eines Kompilierers in einen Maschinencode umgewandelt werden, welcher von einem Prozessor des Rechners ausführbar ist. Gemäß einer Ausführungsform wird durch das Transformieren der Daten in verschleierte Daten mindestens eine der folgenden Verschleierungen durchgeführt:
- Verschleierung eines Codes,
- Verschleierung eines kryptographischen Schlüssels; - Verschleierung einer kryptographischen Berechnung mit einem kryptographischen Schlüssel.
- Verschleierung von durch einen Code erzeugten temporären Daten.
In der vorliegenden Anmeldung wird unter einem Code ein Quellcode oder ein Maschinencode verstanden. Insbesondere kann der Code ein Abschnitt eines Quellcodes sein, der zur Ausführung eines Computerprogrammes dient.
Es kann also insbesondere ein gesamter für eine Ausführung eines Computerprogrammes benötigter Quellcode oder eine Firmware eines Gerätes auf dem Rechner des Gerätes in
obfuszierter Form vorliegen.
Ferner kann ein kryptographischer Schlüssel in den
obfuszierten Daten versteckt werden. Somit wird eine Analyse oder ein Auslesen eines Schlüssels trotz eines möglichen Zu- griffs auf einen Code, insbesondere einen Quellcode, während einer Ausführung eines Programmes erschwert. Ein De- Obfuszieren eines in obfuszierter Form gespeicherten Schlüssels gelingt nur, falls das De-Obfuszieren auf dem Rechner durchgeführt wird, dessen physikalische Eigenschaft in den Verschleierungsparameter eingegangen ist.
Alternativ kann eine kryptographische Berechnung mit einem kryptographischen Schlüssel durch das Transformieren der Daten in verschleierte Daten verschleiert werden. Somit ist die kryptographische Berechnung an den Rechner gekoppelt, dessen für den Rechner spezifischer Verschleierungsparameter in die Transformationsfunktion eingegangen ist.
Ferner können temporäre Daten, die durch einen Code, bei- spielsweise einen Programmcode, während der Laufzeit erzeugt werden, verschleiert werden. Gemäß einer weiteren Ausführungsform wird der Verschleierungsparameter mittels eines Eintrages einer Umsetzungstabelle ermittelt. Unter einer Umsetzungstabelle wird insbesondere im Folgenden eine aus dem Stand der Technik bekannte Look-Up-Table verstanden .
In dieser Ausführungsform gibt die Response der Physical Unclonable Function der Transformationsfunktion vor, in welcher Weise die Look-Up-Table zu verwenden ist. Die Response der Physical Unclonable Function wird also verwendet, um die Bearbeitung von Daten oder einen Ablauf einer Datenverarbeitung abhängig von den physikalischen Eigenschaften des Rech- ners, auf welchem die Daten bearbeitet werden, zu modifizieren. Damit wird wiederum eine Abhängigkeit des Verschleierungsparameters von einer Hardware oder einem Gerät erreicht, so dass eine korrekte Interpretation von verschleierten Daten nur auf einem dafür vorgesehenen Gerät möglich ist.
Gemäß einer weiteren Ausführungsform wird der Eintrag der Umsetzungstabelle mittels des Antwortwertes ausgewählt und/oder ermittelt . Der Antwortwert, das heißt die Response der Physical
Unclonable Function, kann damit insbesondere vorgeben, welcher Index einer Look-Up-Table gültig ist. Ein gültiger Index führt zu einer Auswahl des entsprechenden Eintrages der Look- Up-Table. Dieser Eintrag kann direkt als Verschleierungspara- meter in die Transformationsfunktion eingehen.
Es kann ferner in Abhängigkeit von dem Antwortwert der
Physical Unclonable Function eine Ableitungsfunktion beispielsweise für jeden der Tabelleneinträge einer Look-Up- Table bestimmt werden. Somit kann für jeden Tabelleneintrag eine spezifische Ableitung eines Verschleierungsparameters erfolgen, welche spezifisch ist für den Antwortwert der Physical Unclonable Function auf dem Rechner. Auf einem ande- ren Rechner ergibt sich somit für jeden Tabelleneintrag der Look-Up-Table ein anderer Wert.
Gemäß einer weiteren Ausführungsform wird der Verschleie- rungsparameter mittels eines Zustandes eines Zustandsautomaten ermittelt .
Das Modell des Zustandsautomaten kann dabei über eine virtuelle Maschine realisiert werden. Es kann dabei eine Zustands- tabelle definiert werden, die Eingabeaktionen und Zustands- übergänge beschreibt. Ein Zustandsübergang führt ausgehend von einem aktuellen Zustand und einer Eingabe zu einem nächsten Zustand. Dabei kann der Antwortwert der physikalisch unklonbaren Funktion einen Zustand oder eine Eingabe beein- flussen, sodass eine korrekte Auswertung einer Zustandsüber- gangstabelle nur bei Zugriff auf die physikalisch unklonbare Funktion und damit die Response einer Challenge möglich ist. Eine solche beschriebene abstrakte Tabelle kann an die Anforderungen der Verschleierung angepasst werden, indem der Ein- fluss der physikalisch unklonbaren Funktion auf einen Zustandsübergang vorgebbar ist.
Gemäß einer Weiterbildung hängt die Transformationsfunktion ferner von einem Schlüssel ab, der in verschleierter Form vorliegt.
Somit kann auf vorteilhafte Weise beispielsweise das Einspielen einer Firmware in obfuszierter Form kombiniert werden mit einer Verschlüsselung. Der dazu verwendete Schlüssel liegt wiederum in obfuszierter Form gespeichert vor.
Gemäß einer Ausführungsform wird das Messen während einer Herstellungsphase des Rechners durchgeführt und ein Messergebnis gespeichert .
Somit kann in einer Variante beispielsweise eine Firmware eines Gerätes eingespielt werden, die einen nicht an das Gerät gebundenen verschleierten Code enthält. Ein zunächst nicht Geräte-gebundenes Firmware -Image kann abhängig von einem Geräte-gebundenen Verschleierungsparameter, der in Abhängigkeit von dem Antwortwert der Physical Unclonable Function ermittelt wird, modifiziert werden. Der Antwortwert der Physical Unclonable Function oder ein Rohwert, der Informationen über die Physical Unclonable Function und die physikalische Eigenschaft des Rechners enthält, kann somit schon in der Herstellungsphase gemessen und hinterlegt werden und erst zu einem späteren Zeitpunkt verwendet werden. Dadurch können bei einem vorhandenen Zugriff auf das hinterlegte Messergebnis für ein spezifisches Gerät auch nachträglich individualisierte Firmware-Updates erzeugt und bereitgestellt werden. Dies reduziert den Aufwand, welcher für die je Gerät vorgenommene Verschleierung entsteht.
Gemäß einer Ausführungsform wird das Messen während eines Einspielens des Quellcodes durchgeführt.
Somit wird ein für den Rechner individualisiertes Firmware - Image während des Speicherns in den Flash-Speicher in Abhängigkeit von dem Antwortwert der Physical Unclonable Function modifiziert. Somit wird das Firmware-Image nicht in einer un- verschleierten Form in den Flash-Speicher geschrieben. Für einen Angreifer ist die Firmware also nicht in Klartext ver- fügbar.
Es kann eine im Gerät, insbesondere im Rechner, vorhandene feste Routine einen Code eines Firmware- Images direkt ersetzen. Es kann ferner ein Code eines Firmware- Images durch eine vorgebbare Modifikationsfunktion modifiziert werden, beispielsweise durch eine Exclusiv-Oder-Verknüpfung mit einem auf dem Rechner hinterlegten Verknüpfungscode.
Gemäß einer Ausführungsform wird die physikalisch unklonbare Funktion als eine Delay-PUF, eine Arbiter-PUF, eine SRAM-PUF, eine Ring-Oscillator-PUF, eine Bistable-Ring-PUF, eine Flip- Flop-PUF, eine Glitch-PUF, eine Cellular-Non-linear-Network- PUF oder eine Butterfly-PUF ausgebildet. So kann abhängig von den Randbedingungen, wie beispielsweise der verfügbaren Schaltungsfläche, einer physikalischen Realisierung der integrierten Halbleiter-Schaltkreiseinheit, einer Anforderung an Stromverbrauch oder Laufzeit oder von dem geforderten Sicherheitsniveau eine geeignete Variante einer physikalisch unklonbaren Funktion ausgewählt werden.
Die Erfindung umfasst ferner eine Verwendung des erfindungs- gemäßen Verfahrens oder des Verfahrens nach einer der Ausführungsformen oder Weiterbildungen zum Verschleiern von Daten mittels eines Prozessors zum Erschweren einer unberechtigten Nachkonstruktion eines Quellcodes. Die Erfindung wird nachfolgend mit Ausführungsbeispielen anhand der Figuren näher erläutert.
Es zeigen: Figur 1 Eine schematische Darstellung des Verfahrens zum
Verschleiern von Daten gemäß einem ersten Ausführungsbeispiel der Erfindung;
Figur 2 Eine schematische Darstellung des Verfahrens zum
Verschleiern von Daten gemäß einem zweiten Ausführungsbeispiel der Erfindung.
Figur 1 zeigt anhand von schematischen Komponenten eines Rechners 100, wie Daten 10 mittels eines Prozessors P in ver- schieierte Daten 10' transformiert werden. Dazu weist der Rechner 100 eine physikalisch unklonbare Funktion 20, eine sogenannte Physical Unclonable Function, auf. Diese Physical Unclonable Function kann mit einem Aufforderungswert 21, auch Challenge genannt, beaufschlagt werden und liefert einen Ant- wortwert 22, auch Response genannt, zurück. Für eine auf dem Prozessor P realisierte Transformationsfunktion TF, welche mittels eines Eingabeparameters, nämlich eines Verschleierungsparameters 11, die Daten 10 in verschleierte Daten 10' transformiert, wird die physikalisch unklonbare Funktion 20 mit dem Aufforderungswert 21 beaufschlagt. Der Antwortwert 22 geht in die Ermittlung des Verschleierungsparameters 11 ein. Somit können Daten 10, welche auf dem Rechner 100 gespeichert werden, in verschleierter Form gespeichert werden. Beispielsweise wird dann in einer kryptographischen Berechnung ein kryptographischer Schlüssel mit einbezogen, der in
obfuszierter Form vorliegt und dem kryptographischen Algo- rithmus in obfuszierter Form übergeben wird. Es kann sich bei der kryptographischen Berechnung insbesondere um eine Schlüsselableitung handeln.
Während der Ausführung des Algorithmus wird zu Zwecken der De-Obfuskation auf eine Rücktransformationsfunktion zurückgegriffen, welche ebenso wie die Transformationsfunktion TF den Verschleierungsparameter 11 verwendet. Da dieser von den für den Rechner spezifischen Eigenschaften, welche durch die physikalisch unklonbare Funktion 20 ermittelt werden, abhängt, ist eine De-Obfuskation des kryptographischen Schlüssels nur möglich, sofern der Algorithmus auf dem ursprünglichen Rechner, beispielsweise einem Originalgerät, ausgeführt wird.
Eine Analyse eines Algorithmus zu Zwecken des Reverse - Engineering ist somit neben einer durch die Transformationsfunktion TF festgelegten Obfuskations -Methode weiterhin erschwert, da die Analyse an den ursprünglichen Rechner oder das Originalgerät fest gebunden ist . Der Prozessor P zur Durchführung der Verschleierung kann auf einer separaten Hardware als Prozessoreinheit PE realisiert sein oder Bestandteil des Rechners 100. Mittels Kommunikationsschnittstellen Kl, K2 kann die Prozessoreinheit PE zur Übertragung der Daten 10 und zur RückÜbertragung der ver- schieierten Daten 10' mit dem Rechner kommunizieren. Ferner werden die Challenge und die Response beispielsweise über die Kommunikationsschnittstellen Kl, K2 übertragen. Für eine Ausgestaltung, bei der der Prozessor P Bestandteil der Hardware des Rechners 100 ist, kann die Physical Unclonable Function insbesondere durch eine physikalische Eigenschaft des Prozessors P vorgegeben werden. Figur 2 zeigt, wie ein Verschleierungsparameter 11 mittels einer Umsetzungstabelle LUT, auch Look-Up-Table genannt, ermittelt wird. Eine Transformationsfunktion TF transformiert Daten 10 in transformierte Daten 10 ' . Dazu geht ein Verschleierungsparameter 11 in die Transformationsfunktion TF ein. Der Verschleierungsparameter 11 dient als Modifikator zu Zwecken der Obfuskation.
Ein Modifikator kann im Stand der Technik beliebig kompliziert ermittelbar sein und insbesondere die Transformations- funktion TF für einen Menschen praktikabel nicht nachvollziehbar sein. Der Modifikator ist allerdings im Stand der Technik unveränderlich. Er wird beispielsweise bei jeder Ausführung eines Quellcodes mittels einer Umsetzungstabelle auf die gleiche Art ermittelt und ist bei jeder Ausführung gleich.
In einem zweiten Ausführungsbeispiel der Erfindung wird ein Eintrag 1 einer Umsetzungstabelle LUT durch eine physikalisch unklonbare Funktion 20 festgelegt. Dafür wird insbesondere die physikalisch unklonbare Funktion 20 mit einem Aufforderungswert 21, der in dem Eintrag 1 hinterlegt ist, beaufschlagt. Der Antwortwert 22 wird dann beispielsweise einer dem Eintrag 1 zugeordneten Funktion übergeben. Der so ermittelte Funktionswert des Eintrages 1 wird als Verschleierungs - parameter 11 an die Transformationsfunktion TF übergeben. Die mittels der Transformationsfunktion TF transformierten Daten 10 liegen nun als verschleierte Daten 10' vor. Nur bei einem Zugriff auf die physikalisch unklonbare Funktion, die beispielsweise einen Rechner 100 charakterisiert, sind die ver- schieierten Daten 10' interpretierbar.
Bei dem Rechner 100 kann es sich insbesondere um ein eingebettetes System, ein sogenanntes Embedded-System, handeln. Die physikalisch unklonbare Funktion kann als Delay-PUF ausgestaltet sein. Eine Delay-PUF nutzt Verzögerungen in Schaltelementen eines Schaltkreises, die nicht durch den Herstel- lungsprozess des Schaltkreises steuerbar sind und eine cha- rakterisierende Eigenschaft des Schaltkreises darstellen. Diese Eigenschaft kann nicht gezielt auf einem nachgebauten Schaltkreis eingebaut werden.
In die Transformationsfunktion können in einer Variante wei- tere Parameter wie insbesondere umgebungsspezifische Parameter eingehen. Dies kann beispielsweise die Media-Access - Control -Adresse eines Gerätes oder dessen Seriennummer sein.
Mithilfe des beschriebenen Verfahrens kann eine Firmware ei- nes Gerätes, welches durch den Rechner 100 charakterisiert wird, in obfuszierter Form eingespielt werden, ohne dass Firmware in einem Quellcode, der für einen Menschen nachvollziehbar ist, vorliegt. Der Quellcode liegt stattdessen von Beginn an in obfuszierter Form auf dem Gerät vor, beispiels- weise in Form eines obfuszierten Quellcodes in einer Assemblersprache wie beispielsweise C. Die Ausführung des Quellcodes auf dem Gerät geschieht dann jeweils unter Zuhilfenahme der physikalisch unklonbaren Funktion 20 des Rechners 100. Während einer Laufzeit eines Programmes wird der Antwortwert 22 ermittelt, so dass auf einem Originalgerät eine Ausführung des Quellcodes sichergestellt ist. Obwohl ein Angreifer den in verschleierter Form vorliegenden Quellcode nicht interpretieren kann, kann der Rechner 100 unter Einbeziehung des Verschleierungsparameters den korrekten Quellcode ermitteln, in Maschinensprache umsetzen und ein Programm entsprechend ausführen .
Im Falle einer Softwarepiraterie, wo eine Software beispielsweise auf einem Gerät ausgeführt werden soll, für das ein Nutzer keine Lizenz erworben hat, ist dagegen eine korrekte
Ausführung des Quellcodes nicht möglich, da die Transformationsfunktion TF nicht auf einen korrekten Verschleierungsparameter 11 zugreifen kann.

Claims

Patentansprüche
1. Verfahren zum Verschleiern von Daten (10) mittels eines Prozessors, umfassend folgende Schritte:
- Bereitstellen einer für einen Rechner (100) spezifischen physikalisch unklonbaren Funktion (20);
- Messen einer physikalischen Eigenschaft des Rechners (100) in Abhängigkeit von einem Aufforderungswert (21) mittels der physikalisch unklonbaren Funktion (20) zum Ermitteln eines Antwortwertes (22) ;
- Ermitteln eines Verschleierungsparameters (11) für eine Transformationsfunktion (TF) zum Transformieren der Daten
(10) in verschleierte Daten (10') , wobei der Verschleierungs - Parameter (11) in Abhängigkeit von dem Antwortwert (22) ermittelt wird und wobei die verschleierten Daten (10') zur Ausführung eines Quellcodes auf dem Rechner (100) verwendet werden.
2. Verfahren nach Anspruch 1, wobei durch das Transformieren der Daten (10) in verschleierte Daten (10') mindestens eine der folgenden Verschleierungen durchgeführt wird:
- Verschleierung eines Codes;
- Verschleierung eines kryptographisehen Schlüssels;
- Verschleierung einer kryptographisehen Berechnung mit einem kryptographischen Schlüssel;
- Verschleierung von durch einen Code erzeugten temporären Daten.
3. Verfahren nach Anspruch 1 oder 2, wobei der Verschleierungsparameter (11) mittels eines Eintrages (1) einer Umsetzungstabelle (LUT) ermittelt wird.
4. Verfahren nach Anspruch 3, wobei der Eintrag (1) der Umsetzungstabelle (LUT) mittels des Antwortwertes (22) ausgewählt und/ oder ermittelt wird.
5. Verfahren nach Anspruch 1 oder 2, wobei der Verschleierungsparameter (11) mittels eines Zustandes eines Zustandsautomaten ermittelt wird.
6. Verfahren nach Anspruch 5, wobei der Zustand des Zustandsautomaten durch einen in Abhängigkeit von dem Antwortwert (22) ermittelten Zustandsübergang ermittelt wird.
7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Transformationsfunktion (TF) ferner von einem Schlüssel abhängt, der in verschleierter Form vorliegt.
8. Verfahren nach einem der vorstehenden Ansprüche, wobei das Messen während einer Herstellungsphase des Rechners (100) durchgeführt wird und ein Messergebnis gespeichert wird.
9. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Messen während eines Einspielens des Quellcodes durchgeführt wird.
10. Verfahren nach einem der vorstehenden Ansprüche, wobei die physikalisch unklonbare Funktion als eine Delay-PUF, eine Arbiter-PUF, eine SRAM-PUF, eine Ring-Oscillator-PUF, eine Bistable-Ring-PUF, eine Flip-Flop-PUF, eine Glitch-PUF, eine Cellular-Non- linear-Network-PUF oder eine Butterfly-PUF ausgebildet wird.
11. Verwendung eines Verfahrens nach mindestens einem der An- Sprüche 1 bis 10 zum Verschleiern von Daten (10) mittels eines Prozessors zum Erschweren einer unberechtigten Nachkonstruktion eines Quellcodes.
PCT/EP2014/056295 2013-05-06 2014-03-28 Verschleiern von daten mittels eines prozessors WO2014180604A2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102013208293.2 2013-05-06
DE201310208293 DE102013208293A1 (de) 2013-05-06 2013-05-06 Verschleiern von Daten mittels eines Prozessors

Publications (2)

Publication Number Publication Date
WO2014180604A2 true WO2014180604A2 (de) 2014-11-13
WO2014180604A3 WO2014180604A3 (de) 2015-02-19

Family

ID=50473271

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2014/056295 WO2014180604A2 (de) 2013-05-06 2014-03-28 Verschleiern von daten mittels eines prozessors

Country Status (2)

Country Link
DE (1) DE102013208293A1 (de)
WO (1) WO2014180604A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547201A (zh) * 2018-12-14 2019-03-29 平安科技(深圳)有限公司 一种根密钥的加密方法、计算机可读存储介质及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011048126A1 (en) * 2009-10-21 2011-04-28 Intrinsic Id B.V. Distribution system and method for distributing digital information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRECHT WYSEUR: "White-box cryptography: hiding keys in software", MISC MAGAZINE, April 2012 (2012-04-01)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547201A (zh) * 2018-12-14 2019-03-29 平安科技(深圳)有限公司 一种根密钥的加密方法、计算机可读存储介质及终端设备
CN109547201B (zh) * 2018-12-14 2023-04-14 平安科技(深圳)有限公司 一种根密钥的加密方法、计算机可读存储介质及终端设备

Also Published As

Publication number Publication date
WO2014180604A3 (de) 2015-02-19
DE102013208293A1 (de) 2014-11-06

Similar Documents

Publication Publication Date Title
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
EP1946481B1 (de) Verfahren zur erzeugung einer fortgeschrittenen elektronischen signatur eines elektronischen dokuments
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
EP2515499B1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
DE102007057900B4 (de) Authentifikation von verdächtigen Daten unter Verwendung von Schlüsseltabellen
DE102012205689A1 (de) Anweisungsverschlüsselungs-/-entschlüsselungsanordnung und -verfahren mit iterativer Verschlüsselungs-/Entschlüsselungsaktualisierung
DE102014208838A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE102014208851A1 (de) Verfahren zum Verhindern eines unbefugten Betriebs eines Kraftfahrzeugs
EP2913772A1 (de) Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
EP1798653A1 (de) Verfahren und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
EP3928463A1 (de) Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
CN103309819A (zh) 嵌入式系统及其中的内存安全管理方法
EP2911080A1 (de) Verfahren und Vorrichtung zum sicheren Initialisieren eines Computers
EP2434424B1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online-Diensten
WO2014180604A2 (de) Verschleiern von daten mittels eines prozessors
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP2491513B1 (de) Verfahren und system zum bereitstellen von edrm-geschützten datenobjekten
DE102014208848A1 (de) Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
EP1839136A1 (de) Erzeugen von programmcode in einem ladeformat und bereitstellen von ausf]hrbarem programmcode
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
DE102020206039A1 (de) Erstellen einer Container-Instanz
DE102005038106A1 (de) Verfahren zur Absicherung der Authentisierung eines tragbaren Datenträgers gegen ein Lesegerät über einen unsicheren Kommunikationsweg
DE102021110768B3 (de) Forensik-Modul und eingebettetes System

Legal Events

Date Code Title Description
122 Ep: pct application non-entry in european phase

Ref document number: 14716260

Country of ref document: EP

Kind code of ref document: A2