DE102007045743A1 - Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes - Google Patents

Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes Download PDF

Info

Publication number
DE102007045743A1
DE102007045743A1 DE200710045743 DE102007045743A DE102007045743A1 DE 102007045743 A1 DE102007045743 A1 DE 102007045743A1 DE 200710045743 DE200710045743 DE 200710045743 DE 102007045743 A DE102007045743 A DE 102007045743A DE 102007045743 A1 DE102007045743 A1 DE 102007045743A1
Authority
DE
Germany
Prior art keywords
machine code
specific key
tpm
module
encrypted
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.)
Ceased
Application number
DE200710045743
Other languages
English (en)
Inventor
Konrad Schwarz
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 DE200710045743 priority Critical patent/DE102007045743A1/de
Priority to PCT/EP2008/061279 priority patent/WO2009040207A1/de
Priority to EP08803305A priority patent/EP2193471A1/de
Priority to US12/679,758 priority patent/US8843766B2/en
Publication of DE102007045743A1 publication Critical patent/DE102007045743A1/de
Ceased legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes mit den Schritten: (a) Verschlüsseln eines Maschinencodes mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM(Trusted Platform Module)-Modul bereitgestellt wird, (b) Speichern des verschlüsselten Maschinencodes in einem Speicher des Geräts, (c) wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommenen Manipulation nicht mehr aus dem TPM-Modul auslesbar ist.

Description

  • Die Erfindung betrifft ein Verfahren und ein System zum Schutz eines Maschinencodes, beispielsweise eines Java-Byte-Codes, gegen einen unbefugten Zugriff durch einen Dritten.
  • Java ist eine von der Firma Sun Microsystems zunächst für den Internetbereich entwickelte objektorientierte Programmiersprache. Java wird inzwischen jedoch als universelle Programmiersprache eingesetzt. Alle Programmobjekte sind in Java in sog. Klassen definiert. Eine Eigenschaft von Java besteht darin, dass ausführbare Java-Programme vollständig portabel sind. Dies wird dadurch erreicht, dass der Java-Compiler keinen rechnerarchitekturspezifischen Maschinencode, sondern einen architekturneutralen sog. Java-Byte-Code generiert. Dieser Java-Byte-Code wird bei der Ausführung des Java-Programms interpretiert oder während der Ausführung in den architekturspezifischen Maschinencode der jeweiligen CPU durch einen JIT(Just In Time)-Compiler übersetzt. Eine Abhängigkeit von dem jeweiligen Betriebssystem oder der jeweiligen Fensteroberfläche wird bei Java durch Verwendung von Programmbibliotheken weitgehend vermieden.
  • Bei herkömmlichen Geräten, die Java-Quelldateien verwenden, wird der Java-Quellcode bzw. Uni-Code durch einen Compiler kompiliert und in einem Speicher des Gerätes, bei dem es sich beispielsweise um einen Steuerrechner handelt, abgelegt bzw. gespeichert. Die in dem Speicher abgelegten Java-Object-Files (.-Class-Files) können nach Auslieferung bzw. Verbreitung des Gerätes durch unbefugte Dritte relativ leicht ausgelesen und zu Reverse Engineering Zwecken dekompiliert werden.
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein System zum Schutz gegen einen unbefugten Zugriff auf einen Maschinencode eines Gerätes zu schaffen.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den im Patentanspruch 1 angegebenen Merkmalen gelöst.
  • Die Erfindung schafft ein Verfahren zum Schutz gegen einen Zugriff auf einen Maschinencode eines Geräts mit den Schritten:
    • (a) Verschlüsseln eines Maschinencodes mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM(Trusted Plattform Module)-Modul bereitgestellt wird,
    • (b) Speichern des verschlüsselten Maschinencodes in einem Speicher des Geräts,
    • (c) wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommenen Manipulation nicht mehr aus dem TPM-Modul auslesbar ist.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der Maschinencode durch einen Java-Byte-Code gebildet.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der gerätespezifische Schlüssel durch eine AIK(Attestation Identity Key)-Schlüssel des TPM-Moduls gebildet.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens entschlüsselt ein Class-Loader einer Java Virtual Machine den in dem Speicher des Gerätes gespeicherten und verschlüsselten Maschinencode mittels des aus dem TPM-Modul ausgelesenen gerätespezifischen Schlüssels und stellt den entschlüsselten Maschinencode einer Ausführeinheit des Geräts bereit.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der gerätespezifische Schlüssel von dem TPM-Modul über ein Netzwerk zu einer Verschlüsselungseinheit übertragen, die den Maschinencode mittels des gerätespezifischen Schlüssels verschlüsselt. Diese Verschlüsselungseinheit kann sich auch in dem Gerät befinden.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der entschlüsselte Maschinencode durch die Ausführeinheit des Gerätes ausgeführt oder interpretiert.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens wird der Maschinencode durch MP3-Daten gebildet.
  • Bei einer Ausführungsform des erfindungsgemäßen Verfahrens werden verschlüsselte MP3-Daten mittels eines aus dem TPM-Modul ausgelesenen gerätespezifischen Schlüssels entschlüsselt und einem MP3-Decoder des Gerätes bereitgestellt.
  • Die Erfindung schafft ferner ein System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes, wobei der Maschinencode mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM-Modul bereitgestellt wird, verschlüsselt und in einem Speicher des Gerätes gespeichert wird, wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommenen Manipulation nicht mehr aus dem TPM-Modul auslesbar ist.
  • Die Erfindung schafft ferner ein Gerät mit zugriffsgeschütztem Maschinencode mit:
    • (a) einem Speicher zum Speichern eines verschlüsselten Maschinencodes MC;
    • (b) einem Class-Loader zum Entschlüsseln des verschlüsselten Maschinencodes mittels eines aus einem TPM-Modul ausgelesenen gerätespezifischen Schlüssels; und mit
    • (c) einer Ausführeinheit zum Ausführen des entschlüsselten Maschinencodes;
    • (d) wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommnen Manipulation von dem TPM-Modul gesperrt wird.
  • Bei einer Ausführungsform des erfindungsgemäßen Gerätes ist der Speicher ein nicht flüchtiger Speicher.
  • Bei einer Ausführungsform des erfindungsgemäßen Geräts weist der nicht flüchtige Speicher eine Festplatte auf.
  • Bei einer Ausführungsform des erfindungsgemäßen Geräts ist die Ausführeinheit in einer JVM (Java Virtual Machine) vorgesehen.
  • Bei einer Ausführungsform des erfindungsgemäßen Geräts ist die Ausführeinheit ein Decoder.
  • Die Erfindung schafft ferner ein Programm mit Programmbefehlen zur Durchführung eines Verfahrens zum Schutz gegen einen Zugriff auf einen Maschinencode eines Geräts mit den Schritten:
    • (a) Verschlüsseln eines Maschinencodes mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM(Trusted Plattform Module)-Modul bereitgestellt wird,
    • (b) Speichern des verschlüsselten Maschinencodes in einem Speicher des Geräts,
    • (c) wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommenen Manipulation nicht mehr aus dem TPM-Modul auslesbar ist.
  • Die Erfindung schafft ferner einen Datenträger zum Speichern eines Programms mit Programmbefehlen zur Durchführung eines Verfahrens zum Schutz gegen einen Zugriff auf einen Maschinencode eines Geräts mit den Schritten:
    • (a) Verschlüsseln eines Maschinencodes mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM(Trusted Plattform Module)-Modul bereitgestellt wird,
    • (b) Speichern des verschlüsselten Maschinencodes in einem Speicher des Geräts,
    • (c) wobei der gerätespezifische Schlüssel nach einer an dem Gerät vorgenommenen Manipulation nicht mehr aus dem TPM-Modul auslesbar ist.
  • Im Weiteren werden bevorzugte Ausführungsformen des erfindungsgemäßen Verfahrens und des erfindungsgemäßen Systems zum Schutz gegen einen Zugriff auf einen Maschinencode unter Bezugnahme auf die beigefügten Figuren zur Erläuterung erfindungswesentlicher Merkmale beschrieben.
  • Es zeigen:
  • 1: ein Ablaufdiagramm zur Darstellung einer Ausführungsform des erfindungsgemäßen Verfahrens;
  • 2: ein Blockschaltbild zur Darstellung eines Verschlüsselungsvorgangs bei einer Ausführungsform des erfindungsgemäßen Verfahrens;
  • 3: ein Blockschaltbild einer möglichen Ausführungsform eines Geräts mit zugriffsgeschütztem Maschinencode gemäß der Erfindung.
  • Das erfindungsgemäße Verfahren ist zum Schutz gegen einen Zugriff auf einen Maschinencode eines Geräts vorgesehen, um insbesondere ein Auslesen von Dateien und deren Dekompilierung zu Reverse-Engineering Zwecken zu verhindern.
  • Bei dem Maschinencode kann es sich beispielsweise um einen Java-Byte-Code handeln. Java-Programme werden nach ihrer Er stellung zunächst kompiliert. Dabei wird der sog. Byte-Code erstellt.
  • Eine Java Virtual Machine (JVM) besteht aus Computerprogrammen und Datenstrukturen, die ein spezifisches virtuelles Maschinenmodell implementieren. Dieses virtuelle Maschinenmodell akzeptiert in Java-Zwischencode bzw. Java-Byte-Code, welche durch den Java-Compiler generiert wird. Die Java Virtual Machine ist eine Software, die für jede Plattform gesondert entwickelt wird und für fast jede denkbare Kombination aus Betriebssystem und Hardware verfügbar ist. Die JVM Virtual Machine stellt eine Schnittstelle zwischen dem plattformunabhängigen Java-Byte-Code und dem System, auf dem dieser Java-Byte-Code ausgeführt wird, dar. Der Java-Quelltext eines Java-Programms wird zunächst kompiliert und anschließend wird der erzeugte Byte-Code auf einem Zielrechner durch die JVM Virtual Machine interpretiert. Dies bietet den Vorteil einer Portabilität und einer Plattformunabhängigkeit des Java-Quelltextes. Auch andere Systeme verwenden Zwischencodes, die anschließend interpretiert werden. Java-Byte-Code oder MSIL (Microsoft Intermediate Language) können dabei auf verschiedenen Plattformen nicht nur basierend auf der gleichen Sprache erzeugt werden, sondern auch basierend auf verschiedenen Sprachen erzeugt werden.
  • Wie man aus 1 erkennen kann, wird bei dem erfindungsgemäßen Verfahren zum Schutz gegen einen Zugriff ein Maschinencode MC, beispielsweise einen Java-Byte-Code, in einem Schritt S1 verschlüsselt. Die Verschlüsselung erfolgt mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät enthaltenes TPM-Modul bereitgestellt wird. Bei dem TPM-Modul (Trust Platform Modul) handelt es sich beispielsweise um einen Chip, der in dem Gerät eingebaut ist. Bei einer möglichen Ausführungsform ist das TPM-Modul aktiv und überprüft den Bootcode vor dessen Ausführung. Vor der Ausführung des Betriebssystems stellt sich der Bootcode dem TPM-Modul den Betriebssystemcode zur Überprüfung bereit. Ebenso stellt das Betriebssystem vor Ausführung der JVM dem TPM-Modul den JVM-Code zur Überprüfung bereit. Hierdurch werden Manipulationen, insbesondere Änderungen am Code, erkannt.
  • Das TPM-Modul besitzt eine eindeutige Kennung und dient u. a. zur Identifizierung des Gerätes. Das TPM-Modul verfügt über verschiedene Schlüssel, nämlich einen sog. Endorsement-Key (EK), der dem TPM-Modul eindeutig zugeordnet ist und Attestation Identity Keys (AIK). Weiterhin verfügt das TPM-Modul über einen sog. Storage-Root-Key (SRK), der dazu dient, weitere benutzte Schlüssel, beispielsweise private Schlüssel, zu verschlüsseln und stellt somit die Wurzel eines TPM-Schlüsselbaums dar. Aus Sicherheitsgründen darf der Endorsement-Key (EK) das TPM-Modul niemals verlassen, so dass auch ein Back-up des Endorsement-Keys (EK) ausgeschlossen ist. Die Erzeugung des Endorsement-Keys (EK) kann hingegen extern erfolgen. Das Auslesen des Endorsement-Keys kann mit einem Kommando blockiert werden, wobei diese Blockierung endgültig ist und nicht mehr aufgehoben werden kann.
  • Die Attestation Identiy Keys (AIK) können zur Attestation bzw. Beglaubigung eingesetzt werden. Die AIK-Schlüssel sind beispielsweise RSA-Schlüssel mit einer festgelegten Länge von 2048 Bit. Die AIK-Schlüssel sind nicht migrierbar und werden von dem TPM-Modul für die Signatur bzw. Beglaubigung von Daten eingesetzt. Die Attestations-Identity-Keys (AIK) werden von dem TPM-Modul bereitgestellt, weil der Endorsement-Key (EK) eines TPM-Moduls für die Beglaubigung einer Plattformintegrität (Attestation) eingesetzt werden kann. Daher werden die AIK-Schlüssel und das TPM-Modul für Beglaubigungsprozesse verwendet und können in beliebiger Anzahl erzeugt bzw. generiert werden. Zur Sicherstellung, dass nur gültige AIK-Schlüssel erstellt werden, können diese Schlüssel durch eine vertrauenswürdige dritte Partei (Trusted Third Party), die auch als Privacy CA bezeichnet werden kann, bestätigt werden. Diese Bestätigung erfolgt in Form eines AIK-Zertifikats (Credential).
  • Die Schlüssel werden innerhalb des TPM-Moduls erzeugt, benutzt und sicher abgelegt, um sie vor Softwareangriffen zu schützen. Das TPM-Modul ist derart ausgelegt, dass eine physische Manipulation, die unweigerliche Zerstörung der Daten, insbesondere der darin enthaltenen kryptographischen Schlüssel, zur Folge hat.
  • In Schritt S1 des in 1 dargestellten Verfahrens wird der Maschinencode MC, beispielsweise der Java-Byte-Code, in einer Ausführungsform mittels eines AIK-Schlüssels, der durch ein in dem Gerät vorhandenes TPM-Modul bereitgestellt wird, verschlüsselt.
  • Der verschlüsselte Maschinencode wird anschließend im Schritt S2 in einem Speicher des Gerätes abgelegt. Der gespeicherte verschlüsselte Maschinencode kann nur entschlüsselt werden, wenn man über den zugehörigen AIK-Schlüssel verfügt. Dieser AIK-Schlüssel kann allerdings nur ausgelesen werden, solange das TPM-Modul, in dem sich der AIK-Schlüssel befindet, nicht manipuliert wird.
  • Wird im Schritt S3 festgestellt, dass eine Manipulation an dem TPM-Modul erfolgt ist, werden bei einer möglichen Ausführungsform die in dem TPM-Modul enthaltenen Schlüssel irreversibel zerstört und sind nicht mehr auslesbar, d. h. der Schlüssel, insbesondere der AIK-Schlüssel, werden im Schritt S4 gesperrt.
  • 2 zeigt ein Blockschaltbild zur Verdeutlichung einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens.
  • Ein Compiler 2 kompiliert einen Java-Quellcode 1 zur Erzeugung eines Java-Byte-Codes bzw. interpretierbaren Uni-Codes oder Zwischencode. Eine Verschlüsselungseinheit 3 liest einen gerätespezifischen Schlüssel K aus einem Gerät 4 aus. Bei dem gerätespezifischen Schlüssel handelt es sich beispielsweise um einen AIK(Attestation Identity Key)-Schlüssel. Das Gerät 4 bei dem in 2 dargestellten Ausführungsbeispiel weist eine Java Virtual Machine 4A, einen Speicher 4B und ein TPM-Modul 4C auf. Bei dem Speicher 4B handelt es sich beispielsweise um einen nicht flüchtigen Speicher, der durch eine Festplatte gebildet wird. Bei dem Gerät 4 kann es sich beispielsweise um einen Steuerungsrechner für eine Anlage handeln. Die Verschlüsselungseinheit 3 liest einen gerätespezifischen AIK-Schlüssel (KAIK) aus dem TPM-Modul 4C des Gerätes 4 aus und verschlüsselt mit diesem Schlüssel den Maschinencode bzw. den Java-Byte-Code. Bei dem Maschinencode MC muss es sich nicht notwendigerweise um einen Java-Byte-Code handeln. In alternativen Ausführungsformen kann es sich bei dem Maschinencode um einen beliebigen Maschinencode MC eines beliebigen Prozessors, auch um MP3-Daten handeln. Der von der Verschlüsselungseinheit 3 verschlüsselte Maschinencode wird von der Verschlüsselungseinheit 3 in den Speicher 4B des Gerätes 4 eingeschrieben. Der in den Speicher 4B eingeschriebene, verschlüsselte Maschinencode ist in dieser Form noch nicht ausführbar, dafür aber sicher gegen Dekompilieren zu Reverse-Engineering Zwecken. Nach Einschreiben des verschlüsselten Maschinencodes in den Speicher 4B des Gerätes 4 kann das Gerät an Kunden ausgeliefert werden.
  • Ein unbefugter Dritter, der nicht über den gerätespezifischen Schlüssel verfügt, kann den verschlüsselten Maschinencode, beispielsweise den verschlüsselten Java-Byte-Code, nicht dekompilieren, da dieser verschlüsselt in dem Speicher 4B abgelegt ist. Um an den gerätespezifischen Schlüssel zu gelangen, müsste ein unbefugter Dritter Manipulationsversuche an dem TPM-Modul 4C vornehmen, wobei allerdings der gerätespezifische Schlüssel bei einer an dem TPM-Modul 4C vorgenommene Manipulation durch das TPM-Modul 4C automatisch gesperrt bzw. die Schlüsseldaten zerstört werden.
  • 3 zeigt ein Blockschaltbild des ausgelieferten Gerätes 4 zur Verdeutlichung der Entschlüsselung des Maschinencodes MC bei einem befugten Abnehmer des Gerätes 4. Die JVM-Maschine 4A weist einen sog. Class-Loader 4A-1 und eine Ausführeinheit 4A-2 auf. Die JVM 4A ermöglicht es, einen benutzerdefinierten Class-Loader zu erstellen und einzusetzen. Die JVM 4A erzeugt standardmäßig ein Exemplar einer Klasse, den sog. System-Class-Loader. Dieser System-Class-Loader kann Klassen aus .-Class-Dateien in einem lokalen Datensystem laden.
  • Ein anwendungsdefinierter Class-Loader ist mit dem System-Class-Loader verkettet, entweder direkt oder indirekt über andere Class-Loader.
  • Ein Class-Loader erhält durch den Aufruf einer Methode Loadclass () die Aufforderung, eine bestimmte Klasse zu laden. Der Class-Loader leitet dann die Anfrage zunächst an einen übergeordneten Class-Loader weiter. Nur wenn dieser die Klasse nicht findet, versucht der Class-Loader selbst, die Klasse zu laden.
  • Bei dem in 3 dargestellten Gerät ist der Class-Loader 4A-1 ein benutzer- bzw. anwendungsdefinierter Class-Loader, den man auch als Trusted-Class-Loader bezeichnen kann. Wenn der Trusted-Class-Loader 4A-1 eine Klasse lädt, erhält er zunächst eine verschlüsselte Form einer Datei aus dem Speicher 4B und entschlüsselt anschließend mit Hilfe des aus dem TPM-Modul 4C ausgelesenen AIK-Schlüssels Daten der geladenen Datei. Der Class-Loader 4A-1 der JVM entschlüsselt den in dem Speicher 4B des Gerätes 4 gespeicherten und verschlüsselten Maschinencode, beispielsweise den verschlüsselten Java-Byte-Code, mittels des aus dem TPM-Modul 4C ausgelesenen gerätespezifischen Schlüssels und stellt den entschlüsselten Maschinencode MC der Ausführeinheit 4A-2 der JVM zur Verfügung. Wird das in 3 dargestellte, ausgelieferte Gerät bei einem Abnehmer bzw. Kunden eingeschaltet, prüft das TPM-Modul 4C zunächst ob eine Manipulation stattgefunden hat oder nicht. Nur wenn keine Manipulation vorgenommen wurde, wird der gerätespezifische Schlüssel (KAIK) zur Verfügung gestellt. Der benutzerdefinierte Class-Loader führt die Entschlüsselung mit Hilfe des ausgelesenen gerätespezifischen Schlüssels durch.
  • Zum Einlesen eines Byte-Codes wird die von dem Class-Loader bereitgestellte Methode Define Class () aufgerufen, um aus dem Byte-Code ein Class-Object zu erzeugen. Anschließend wird der Byte-Code von der Java Virtual Machine JVM als Klasse registriert.
  • In einer möglichen Ausführungsform wird die Ausführeinheit 4A-2 durch eine außerhalb der JVM-Maschine vorgesehene Ausführeinheit, beispielsweise durch eine CPU gebildet.
  • In einer weiteren Ausführungsform wird die Ausführeinheit 4A-2 durch einen Decoder, insbesondere einen MP3-Daten-Decoder, gebildet.
  • In einer möglichen Ausführungsform wird der gerätespezifische Schlüssel von dem TPM-Modul 4C über ein Netzwerk zu der Verschlüsselungseinheit 3 übertragen, die den Maschinencode MC mittels des gerätespezifischen Schlüssels verschlüsselt.

Claims (16)

  1. Verfahren zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes (4) mit den Schritten: (a) Verschlüsseln eines Maschinencodes mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät (4) enthaltenes TPM(Trusted Platform Module)-Modul (4C) bereitgestellt wird, (b) Speichern des verschlüsselten Maschinencodes in einem Speicher (4B) des Geräts (4), (c) wobei der gerätespezifische Schlüssel nach einer an dem Gerät (4) vorgenommenen Manipulation nicht mehr aus dem TPM-Modul (4C) auslesbar ist.
  2. Verfahren nach Anspruch 1, wobei der Maschinencode (MC) durch einen Java-Byte-Code gebildet wird.
  3. Verfahren nach Anspruch 1, wobei der gerätespezifische Schlüssel durch einen AIK(Attestation Identity Key)-Schlüssel (KAIK) des TPM-Moduls (4C) gebildet wird.
  4. Verfahren nach Anspruch 1, wobei ein Class-Loader (4A-1) einer Java Virtual Machine (4A) den in dem Speicher (4B) des Gerätes (4) gespeicherten verschlüsselten Maschinencode mittels des aus dem TPM-Modul (4C) ausgelesenen gerätespezifischen Schlüssels entschlüsselt und einer Ausführeinheit (4A-2) bereitstellt.
  5. Verfahren nach Anspruch 1, wobei der gerätespezifische Schlüssel von dem TPM-Modul (4C) über ein Netzwerk zu einer Verschlüsselungseinheit (3) übertragen wird, die den Maschinencode (MC) mittels des gerätespezifischen Schlüssels verschlüsselt.
  6. Verfahren nach Anspruch 4, wobei der entschlüsselte Maschinencode durch die Ausführeinheit (4A-2) ausgeführt oder interpretiert wird.
  7. Verfahren nach Anspruch 1, wobei der Maschinencode (MC) durch MP3-Daten gebildet wird.
  8. Verfahren nach Anspruch 7, wobei verschlüsselte MP3-Daten mittels eines aus dem TPM-Modul (4C) ausgelesenen gerätespezifischen Schlüssels entschlüsselt und einem MP3-Decoder bereitgestellt werden.
  9. System zum Schutz gegen ein Zugriff auf einen Maschinencode eines Gerätes (4), wobei der Maschinencode (MC) mittels eines gerätespezifischen Schlüssels, der durch ein in dem Gerät (4) enthaltenes TPM-Modul (4C) bereitgestellt wird, verschlüsselt und in einem Speicher (4B) des Gerätes (4) gespeichert wird, wobei der gerätespezifische Schlüssel nach einer an dem Gerät (4) vorgenommenen Manipulation nicht mehr aus dem TPM-Modul (4C) auslesbar ist.
  10. Gerät mit zugriffsgeschützten Maschinencode mit: (a) einem Speicher (4B) zum Speichern eines verschlüsselten Maschinencodes (MC); (b) einem Class-Loader (4A-1) zum Entschlüsseln des verschlüsselten Maschinencodes mittels eines aus einem TPM-Modul (4C) ausgelesenen gerätespezifischen Schlüssels; und mit (c) einer Ausführeinheit (4A-2) zum Ausführen des entschlüsselten Maschinencodes; (d) wobei der gerätespezifische Schlüssel nach einer an dem Gerät (4) vorgenommnen Manipulation von dem TPM-Modul (4C) gesperrt wird.
  11. Gerät nach Anspruch 10, wobei der Speicher (4B) ein nicht flüchtiger Speicher ist.
  12. Gerät nach Anspruch 11, wobei der nicht flüchtige Speicher (4B) eine Festplatte aufweist.
  13. Gerät nach Anspruch 10, wobei die Ausführeinheit (4A-2) in einer JVM (Java Virtual Machine) vorgesehen ist.
  14. Gerät nach Anspruch 10, wobei die Ausführeinheit (4A-2) ein Decoder ist.
  15. Programm mit Programmbefehlen zur Durchführung des Verfahrens nach Anspruch 1–8.
  16. Datenträger zum Speichern des Programms nach Anspruch 15.
DE200710045743 2007-09-25 2007-09-25 Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes Ceased DE102007045743A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE200710045743 DE102007045743A1 (de) 2007-09-25 2007-09-25 Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes
PCT/EP2008/061279 WO2009040207A1 (de) 2007-09-25 2008-08-28 Verfahren und system zum schutz gegen einen zugriff auf einen maschinencode eines gerätes
EP08803305A EP2193471A1 (de) 2007-09-25 2008-08-28 Verfahren und system zum schutz gegen einen zugriff auf einen maschinencode eines gerätes
US12/679,758 US8843766B2 (en) 2007-09-25 2008-08-28 Method and system for protecting against access to a machine code of a device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200710045743 DE102007045743A1 (de) 2007-09-25 2007-09-25 Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes

Publications (1)

Publication Number Publication Date
DE102007045743A1 true DE102007045743A1 (de) 2009-04-02

Family

ID=40345035

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200710045743 Ceased DE102007045743A1 (de) 2007-09-25 2007-09-25 Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes

Country Status (4)

Country Link
US (1) US8843766B2 (de)
EP (1) EP2193471A1 (de)
DE (1) DE102007045743A1 (de)
WO (1) WO2009040207A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246487A1 (en) * 2009-11-13 2012-09-27 Irdeto Canada Corporation System and Method to Protect Java Bytecode Code Against Static And Dynamic Attacks Within Hostile Execution Environments

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402448B2 (en) * 2008-09-18 2013-03-19 Infineon Technologies Ag Compiler system and a method of compiling a source code into an encrypted machine language code
US8417965B1 (en) * 2010-04-07 2013-04-09 Xilinx, Inc. Method and circuit for secure definition and integration of cores
US9087196B2 (en) * 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
CN102360412B (zh) * 2011-09-26 2014-07-02 飞天诚信科技股份有限公司 Java源代码的保护方法和系统
US9021271B1 (en) * 2011-12-27 2015-04-28 Emc Corporation Injecting code decrypted by a hardware decryption module into Java applications
CN104573425B (zh) * 2014-12-31 2018-01-30 上海格尔软件股份有限公司 一种基于对称算法和专用加载模块的Python程序模块加密方法
US11323259B2 (en) * 2016-09-22 2022-05-03 Telefonaktiebolaget Lm Ericsson (Publ) Version control for trusted computing
CN111159661B (zh) * 2018-11-08 2022-07-12 迈普通信技术股份有限公司 一种防止反编译方法、装置、电子设备及存储介质
CA3192527A1 (en) * 2020-09-05 2022-03-10 Icu Medical, Inc. Identity-based secure medical device communications
US11550883B2 (en) * 2020-09-08 2023-01-10 Assured Information Security, Inc. Code protection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114683A1 (en) * 2003-11-26 2005-05-26 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
WO2006134304A2 (fr) * 2005-06-14 2006-12-21 France Telecom Procede de protection d'un code-source en langage semi-interprete

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301772A (ja) 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
GB2341461B (en) * 1998-09-10 2003-03-12 Ibm Program component distribution
US6477540B1 (en) * 1999-12-22 2002-11-05 Ncr Corporation Method and apparatus for using Java as a stored procedure language and as an embedded language on a client
JP2005227995A (ja) * 2004-02-12 2005-08-25 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US9171161B2 (en) * 2006-11-09 2015-10-27 International Business Machines Corporation Trusted device having virtualized registers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050114683A1 (en) * 2003-11-26 2005-05-26 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
WO2006134304A2 (fr) * 2005-06-14 2006-12-21 France Telecom Procede de protection d'un code-source en langage semi-interprete

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246487A1 (en) * 2009-11-13 2012-09-27 Irdeto Canada Corporation System and Method to Protect Java Bytecode Code Against Static And Dynamic Attacks Within Hostile Execution Environments
US9213826B2 (en) * 2009-11-13 2015-12-15 Irdeto B.V. System and method to protect Java bytecode code against static and dynamic attacks within hostile execution environments

Also Published As

Publication number Publication date
US8843766B2 (en) 2014-09-23
US20100205459A1 (en) 2010-08-12
WO2009040207A1 (de) 2009-04-02
EP2193471A1 (de) 2010-06-09

Similar Documents

Publication Publication Date Title
DE102007045743A1 (de) Verfahren und System zum Schutz gegen einen Zugriff auf einen Maschinencode eines Gerätes
EP3259698B1 (de) Autonom bootendes system mit einem sicherheitsmodul
DE102008021567B4 (de) Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
DE60303476T2 (de) Verfahren und server für eine programm-aktualisierung
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE60302844T2 (de) Halbleitervorrichtung mit Verschlüsselung, Halbleitervorrichtung mit externer Schnittstelle, und Inhaltswiedergabeverfahren
DE102007057900B4 (de) Authentifikation von verdächtigen Daten unter Verwendung von Schlüsseltabellen
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
EP2006792A2 (de) Verschlüsselungs- und Entschlüsselungsverfahren und PLC-System, das diese Verfahren benutzt
DE10392528T5 (de) Microcode-Patch-Authentifizierung
DE102009041176B4 (de) Compiler-System und Verfahren zum Kompilieren eines Quellencodes zu einem verschlüsselten Maschinensprachcode
DE60308990T2 (de) Schutz eines gerätes gegen unerwünschte verwendung in einem sicheren umfeld
CN107430650A (zh) 保护计算机程序以抵御逆向工程
DE112010004580T5 (de) Sichere Pin-Verwaltung einer für Benutzer vertrauenswürdigen Einheit
DE102015113468A1 (de) Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe
EP2434424B1 (de) Verfahren zur Erhöhung der Sicherheit von sicherheitsrelevanten Online-Diensten
DE102015201298A1 (de) Verfahren zum kryptographischen Bearbeiten von Daten
DE102016204684A1 (de) Verfahren und Einrichtung zum Bereitstellen einer kryptographischen Sicherheitsfunktion für den Betrieb eines Geräts
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
DE102009048756B4 (de) Verfahren und Schlüsselgerät zur Verbesserung der Sicherheit eines verschlüsselten Datenspeichers, von dem ein Computer bootet
EP3248136B1 (de) Verfahren zum betreiben einer computereinheit mit einer sicheren laufzeitumgebung sowie eine solche computereinheit
DE102020206039A1 (de) Erstellen einer Container-Instanz
DE102010006432A1 (de) Verfahren und System zum Bereitstellen von EDRM-geschützten Datenobjekten
DE102014113441A1 (de) Schutz vor Software-Komponenten mittels Verschlüsselung
EP3251281B1 (de) Intrinsische authentifizierung von programcode

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection