DE102013208293A1 - Verschleiern von Daten mittels eines Prozessors - Google Patents

Verschleiern von Daten mittels eines Prozessors Download PDF

Info

Publication number
DE102013208293A1
DE102013208293A1 DE201310208293 DE102013208293A DE102013208293A1 DE 102013208293 A1 DE102013208293 A1 DE 102013208293A1 DE 201310208293 DE201310208293 DE 201310208293 DE 102013208293 A DE102013208293 A DE 102013208293A DE 102013208293 A1 DE102013208293 A1 DE 102013208293A1
Authority
DE
Germany
Prior art keywords
obfuscation
data
puf
computer
parameter
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
DE201310208293
Other languages
English (en)
Inventor
Rainer Falk
Steffen Fries
Wolfgang Klasen
Andreas Mucha
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
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 AG filed Critical Siemens AG
Priority to DE201310208293 priority Critical patent/DE102013208293A1/de
Priority to PCT/EP2014/056295 priority patent/WO2014180604A2/de
Publication of DE102013208293A1 publication Critical patent/DE102013208293A1/de
Withdrawn legal-status Critical Current

Links

Images

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

  • 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 spezielle 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 kryptographischen 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 kryptographischen Schlüssel realisiert.
  • Es ist eine Verschleierung, im Folgenden auch Obfuskation genannt, bekannt, um einen kryptographischen Schlüssel oder eine kryptographische Berechnung in einer Software zu verstecken, so dass eine Analyse erschwert ist. Unter dem Begriff der White Box Cryptography wird die Verwendung kryptographischer 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 handeln, 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 Aufforderungswert, 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 Basisstation 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 Transformationsfunktion 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 Verschleierungsparameter 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 Programmiersprache 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 Zugriffs 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, beispielsweise 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 Rechners, 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 Verschleierungsparameter 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 anderen Rechner ergibt sich somit für jeden Tabelleneintrag der Look-Up-Table ein anderer Wert.
  • Gemäß einer weiteren Ausführungsform wird der Verschleierungsparameter mittels eines Zustandes eines Zustandsautomaten ermittelt.
  • Das Modell des Zustandsautomaten kann dabei über eine virtuelle Maschine realisiert werden. Es kann dabei eine Zustandstabelle 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 beeinflussen, sodass eine korrekte Auswertung einer Zustandsübergangstabelle 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 Einfluss 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 unverschleierten Form in den Flash-Speicher geschrieben. Für einen Angreifer ist die Firmware also nicht in Klartext verfü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 erfindungsgemäß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:
  • 1 Eine schematische Darstellung des Verfahrens zum Verschleiern von Daten gemäß einem ersten Ausführungsbeispiel der Erfindung;
  • 2 Eine schematische Darstellung des Verfahrens zum Verschleiern von Daten gemäß einem zweiten Ausführungsbeispiel der Erfindung.
  • 1 zeigt anhand von schematischen Komponenten eines Rechners 100, wie Daten 10 mittels eines Prozessors P in verschleierte 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 Antwortwert 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 Algorithmus 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 K1, K2 kann die Prozessoreinheit PE zur Übertragung der Daten 10 und zur Rückübertragung der verschleierten Daten 10' mit dem Rechner kommunizieren. Ferner werden die Challenge und die Response beispielsweise über die Kommunikationsschnittstellen K1, 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.
  • 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 Transformationsfunktion 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 Verschleierungsparameter 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 verschleierten 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 Herstellungsprozess des Schaltkreises steuerbar sind und eine charakterisierende Eigenschaft des Schaltkreises darstellen. Diese Eigenschaft kann nicht gezielt auf einem nachgebauten Schaltkreis eingebaut werden.
  • In die Transformationsfunktion können in einer Variante weitere 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 eines 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, beispielsweise 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.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Brecht Wyseur, "White-box cryptography: hiding keys in software", MISC magazine, April 2012 [0006]

Claims (11)

  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 Verschleierungsparameter (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 kryptographischen Schlüssels; – Verschleierung einer kryptographischen 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 Ansprüche 1 bis 10 zum Verschleiern von Daten (10) mittels eines Prozessors zum Erschweren einer unberechtigten Nachkonstruktion eines Quellcodes.
DE201310208293 2013-05-06 2013-05-06 Verschleiern von Daten mittels eines Prozessors Withdrawn DE102013208293A1 (de)

Priority Applications (2)

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

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
DE102013208293A1 true DE102013208293A1 (de) 2014-11-06

Family

ID=50473271

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (1)

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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2491510B1 (de) * 2009-10-21 2016-08-24 Intrinsic ID B.V. Verteilungssystem und verfahren zur verteilung von digitalen informationen

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

Also Published As

Publication number Publication date
WO2014180604A3 (de) 2015-02-19
WO2014180604A2 (de) 2014-11-13

Similar Documents

Publication Publication Date Title
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
EP2899714B1 (de) Gesichertes Bereitstellen eines Schlüssels
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102007057900B4 (de) Authentifikation von verdächtigen Daten unter Verwendung von Schlüsseltabellen
CN103136458B (zh) 一种Linux操作系统动态库代码保护方法及其装置
DE102012205689A1 (de) Anweisungsverschlüsselungs-/-entschlüsselungsanordnung und -verfahren mit iterativer Verschlüsselungs-/Entschlüsselungsaktualisierung
EP2515499A1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
EP2913772A1 (de) Verfahren und Computersystem zum Schutz eines Computerprogramms gegen Beeinflussung
DE102014208838A1 (de) Verfahren zum Betreiben eines Steuergeräts
EP1798653B1 (de) Verfahren, Computerprogrammprodukt 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
DE102014210282A1 (de) Erzeugen eines kryptographischen Schlüssels
DE102016204684A1 (de) Verfahren und Einrichtung zum Bereitstellen einer kryptographischen Sicherheitsfunktion für den Betrieb eines Geräts
DE102013208293A1 (de) Verschleiern von Daten mittels eines Prozessors
DE202012101671U1 (de) Sichere elektronische Unterzeichnung von Information
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP3121992A1 (de) Sichere elektronische unterzeichnung von information
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
DE102014019090A1 (de) Verfahren zum Bereitstellen einer sicherheitskritischen Softwareapplikation auf einer Computereinheit
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
WO2006061141A1 (de) Erzeugen von programmcode in einem ladeformat und bereitstellen von ausführbarem programmcode
DE102006053450A1 (de) Signaturerweiterung
DE102013221764A1 (de) Verfahren zur Erzeugung einer elektronischen Signatur
DE102008040623A1 (de) Modul für eine Tastatur sowie System und Verfahren zur Identifizierung einer Person anhand ihres Tippverhaltens unter Verwendung des Moduls
DE102023116901A1 (de) Zertifikatlose Authentifizierung von ausführbaren Programmen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee