DE112011105688T5 - Ent- und Verschlüsselung von Anwendungsdaten - Google Patents

Ent- und Verschlüsselung von Anwendungsdaten Download PDF

Info

Publication number
DE112011105688T5
DE112011105688T5 DE112011105688.5T DE112011105688T DE112011105688T5 DE 112011105688 T5 DE112011105688 T5 DE 112011105688T5 DE 112011105688 T DE112011105688 T DE 112011105688T DE 112011105688 T5 DE112011105688 T5 DE 112011105688T5
Authority
DE
Germany
Prior art keywords
application data
decrypted
computer
encrypted
data
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
DE112011105688.5T
Other languages
English (en)
Inventor
Roland M. Hochmuth
Robert P. Martin
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112011105688T5 publication Critical patent/DE112011105688T5/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00217Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source
    • G11B20/00246Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier the cryptographic key used for encryption and/or decryption of contents recorded on or reproduced from the record carrier being read from a specific source wherein the key is obtained from a local device, e.g. device key initially stored by the player or by the recorder
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00478Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier wherein contents are decrypted and re-encrypted with a different key when being copied from/to a record carrier

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

In den Beispielen wird ein Entschlüsselungs-, Validierungs- und Verschlüsselungsverfahren beschrieben. Im Einzelnen umfasst die Erfindung die Entschlüsselung erster verschlüsselter Anwendungsdaten zur anschließenden Validierung ihrer Integrität. Hierzu gehört auch die Verschlüsselung der entschlüsselten Anwendungsdaten mittels einer anderen Methode, als zur Erstellung der ersten verschlüsselten Anwendungsdaten angewendet wurde, und die anschließende Speicherung der verschlüsselten Anwendungsdaten.

Description

  • HINTERGRUND
  • Im EDV-Bereich gibt es immer mehr Anwendungen. Rechnerbenutzer verlassen sich auf diese Anwendungen, um zahlreiche Aspekte ihres Alltags zu verwalten. Mit der Mehrung der Anwendungen sind auch Sicherheitsbesorgnisse für die Rechner entstanden.
  • Hierzu gehört die Besorgnis, dass die Anwendungen Viren oder sonstige Infektionen enthalten. Beispielsweise kann die Anwendung vor oder während des Herunterladens und der Installation für Malware, Viren und sonstige Manipulationen anfällig sein. Der Rechner kann von diesen Anwendungsmängeln korrumpiert werden.
  • Eine weitere Besorgnis ist die Möglichkeit, dass ein unbefugter Benutzer ungeschützten Code in einer Anwendung einsehen und/oder kopieren könnte, um sich Zugriff auf die Anwendung zu verschaffen. Außerdem kann der Unbefugte die Anwendung auf weitere Unbefugte übertragen. Während des Downloads oder vor oder nach der Ausführung der Anwendung kann der Anwendungscode für andere einsehbar sein, die diesen kopieren und/oder auf einen Benutzer übertragen können, der zur Verwendung der Anwendung nicht befugt ist.
  • Bestehende Sicherheitsmaßnahmen schützen Anwendungen jedoch nicht vor Manipulationen, Malware und unbefugtem Zugriff.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • In den beigefügten Zeichnungen sind gleichartige Komponenten und Blöcke mit gleichen Bezugszeichen versehen. Die nachfolgende ausführliche Beschreibung bezieht sich auf die Zeichnungen, die zeigen:
  • 1 ist ein Blockdiagramm eines Beispielrechners zum Empfang verschlüsselter Anwendungsdaten;
  • 2 ist ein Kommunikationsdiagramm einer beispielhaften Kommunikation, die zwischen dem Rechner und der vertrauten Quelle erfolgen kann;
  • 3 ist ein Blockdiagramm beispielhafter Anwendungsdaten;
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Speicherung zweiter verschlüsselter Anwendungsdaten durch einen Rechner;
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Ausführung der zweiten entschlüsselten Anwendungsdaten durch einen Rechner; und
  • 6 ist ein Blockdiagramm eines Beispielrechners zum Empfang einer auszuführenden verschlüsselten Komponente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Wie oben beschrieben, kann sich ein unbefugter Benutzer durch Einsehen verwandter Anwendungsdateien, z. B. des Quellcodes, Zugriff auf eine Anwendung verschaffen. In der Umgebung eines mobilen Rechners wird z. B. die Sicherheit gut aufrecht erhalten und klar definiert. In einer Desktop-Umgebung kann es aber sein, dass ein Benutzer nicht befugt ist, den Quellcode einer Anwendung einzusehen und trotzdem ohne weiteres Administratorrechte, z. B. Einsehen des Quellcodes der Anwendung, erhalten. Der unbefugte Zugriff auf eine Anwendung kann auch dann problematisch sein, wenn die verwandten Anwendungsdateien manipuliert worden sind, da es dann zur Korruption des Rechners kommen kann.
  • Um diese Probleme zu lösen, verhindern verschiedene vorliegend beschriebene Beispiele den Zugriff auf die Anwendungsdaten, um so die Korruption des Rechners zu verhindern. Die Anwendungsdaten umfassen mindestens eine zur Anwendung gehörende Datei, z. B. eine Konfigurationsdatei, ausführbare Datei, Medien, Bibliothek, Quellcode oder Metadaten. Insbesondere wird von den Beispielen ein Rechner beschrieben, der erste verschlüsselte Anwendungsdateien von einer vertrauten Quelle empfängt. Der Rechner kann die ersten verschlüsselten Anwendungsdaten dann entschlüsseln, um ihre Integrität zu validieren. Außerdem kann der Rechner die entschlüsselten Anwendungsdateien nach einem anderen Verfahren, als für die ersten verschlüsselten Anwendungsdaten verwendet wurde, verschlüsseln, um sie dann in einem Speicher zu speichern. Gemäß einer Ausführungsform können die ersten verschlüsselten Anwendungsdaten mit einem Verschlüsselungsalgorithmus verschlüsselt werden, und die andere Methode kann zur Verschlüsselung der entschlüsselten Anwendungsdaten einen Schlüssel einsetzen, und umgekehrt. Gemäß einer weiteren ausführungsform können die ersten verschlüsselten Anwendungsdaten mittels eines Schlüssels verschlüsselt werden, während die entschlüsselten Anwendungsdaten mit einem anderen Schlüssel verschlüsselt werden können.
  • Auf diese Weise wird die Integrität der entschlüsselten Anwendungsdaten validiert, um sicher zu gehen, dass keine Manipulation oder Veränderung der Anwendungsdaten erfolgt ist, die die Anwendung und/oder den Rechner korrumpieren könnte. Außerdem kann mittels einer weiteren Ent- und Verschlüsselung mit anderen Methoden als die erste Verschlüsselung der Anwendungsdaten das unbefugte Zugreifen, Kopieren und Einsehen der Anwendungsdaten verhindern. In beiden Fällen wird die Sicherheit der Anwendungsdaten und des Rechners gewährleistet.
  • In den Zeichnungen ist 1 ein Blockdiagramm eines Beispielrechners 102 zum Empfang verschlüsselter Anwendungsdaten 106 von einer vertrauten Quelle 104. Der Rechner 102 kann z. B. ein Client-Gerät, PC, Laptop, mobiles Gerät, tragbares Gerät oder ein sonstiger Rechner sein, der zum Empfang verschlüsselter Anwendungsdaten 106 geeignet ist. Außerdem versteht sich, dass obwohl der Rechner die abgebildeten Komponenten umfasst, dieser nicht auf die in 1 dargestellten Komponenten beschränkt ist. Beispielsweise kann der Rechner 102 ferner einen zu sätzlichen Prozessor und/oder Speicher, usw. umfassen.
  • Die Quelle 104 sendet die verschlüsselten Anwendungsdaten 106 an den Rechner 102. Im Einzelnen empfängt eine Kommunikationsplattform 108 des Rechners 102 die verschlüsselten Anwendungsdaten 106. Die Quelle 104 kann ein Netzwerkserver, Anwendungsdatenbank, Webserver, Fileserver oder ein sonstiger Rechner sein, der zum Übermitteln der verschlüsselten Anwendungsdaten 106 geeignet ist. Die Quelle 104 kann die verschlüsselten Anwendungsdaten 106 mit einem ersten Verschlüsselungsverfahren verschlüsseln; in einer Ausführungsform wird der Rechner 102 im Wege eines Austausches von Zertifikaten oder Benutzernamen und Passworten zwischen Rechner 102 und Quelle 104 von der vertrauten Quelle 104 verifiziert, bevor die verschlüsselten Anwendungsdaten 106 gesendet werden. In diesem Sinne werden die Quelle 104 und der Rechner 102 einander gegenüber als vertraut verifiziert. Außerdem kann die Quelle 104 die Anwendungsdaten verschlüsseln, um vor der Übertragung die verschlüsselten Anwendungsdaten zu erstellen. Das Verschlüsselungsverfahren kann eine kryptographische Funktion oder einen sonstigen Verschlüsselungsprozess zur Umwandlung von Informationen umfassen.
  • Die Kommunikationsplattform 108 auf dem Rechner 102 empfängt die verschlüsselten Anwendungsdaten 106. Die Kommunikationsplattform 108 kann eine Netzwerkschnittstelle, Netzwerkkommunikation oder sonstiges Kommunikationsnetz sein, das zur Verbindung des Rechners 102 mit einer vertrauten Quelle 104 geeignet ist.
  • Die verschlüsselten Anwendungsdaten 106 umfassen eine eine zur Anwendung gehörende Datei, z. B. eine ausführbare Datei, Konfigurationsdatei, Medien, Bibliothek, Metadaten, Quellcode oder sonstige Anwendungsdatei. Außerdem können die verschlüsselten Anwendungsdaten 106 eine Kombination aus einer ausführbaren Datei, Konfigurationsdatei, Medien, Bibliothek, Metadaten, Quellcode, usw. umfassen. Die Anwendung umfasst alle Dateien, die erforderlich sind, damit ein Programm eine konkrete Funktion, z. B. Dokumentbearbeitung, Medien, Spiele, usw. ausführen kann. In diesem Fall können die verschlüsselten Anwendungsdaten kleiner als die Anwendung sein. Beispielsweise können die Anwendungsdaten den Quellcode einer Spielanwendung enthalten, der vor der Übermittelung an den Rechner 102 verschlüsselt wird, während die Anwendung alle Dateien enthalten kann, die zum Spielen des Spiels, z. B. die ausführbaren Dateien, Konfigurationsdateien, usw., erforderlich sind. Weitere Ausführungsformen der verschlüsselten Anwendungsdaten 106 umfassen eine Anwendungsdateien, Anwendungsdaten, -komponenten, -software oder einen sonstigen Teil der Anwendung.
  • In einem Beispiel können die verschlüsselten Anwendungsdaten an den Prozessor 110 gesendet werden; in einem weiteren Beispiel können sie an den maschinenlesbaren Datenträger 112 gesendet werden. In einem weiteren Beispiel kann der Prozessor 110 die verschlüsselten Anwendungsdaten 106 von der Kommunikationsplattform 108 abrufen. In noch einem weiteren Beispiel sendet die Plattform 108 die verschlüsselten Anwendungsdaten 106 an den Prozessor 110.
  • Der Prozessor 110 entschlüsselt die Anwendungsdaten 114, validiert die Integrität 116 der Anwendungsdaten 118 und verschlüsselt sie, um sie im Speicherbereich 120 abzulegen. Der Prozessor 110 kann z. B. eine CPU, Mikroprozessor oder sonstiges programmierbares Gerät umfassen, dass zur Entschlüsselung, Validierung und Verschlüsselung von Anwendungsdaten geeignet ist.
  • Der maschinenlesbare Datenträger 112 umfasst ausführbare Befehle, Firmware und/oder Softwaremodule, die vom Prozessor ausführbar sind, um Anwendungsdaten 114 zu entschlüsseln, deren Integrität 116 zu validieren und Anwendungsdaten 118 zu verschlüsseln. Beim maschinenlesbaren Speichermedium 112 kann es sich um eine elektronische, magnetische, optischer Speicher, Flash-Speicher oder sonstige physische Speichervorrichtung handeln, die ausführbare Befehle enthält bzw. speichert. So kann es bei einem maschinenlesbaren Datenträger 112 beispielsweise um einen RAM-Speicher, einen EEPROM-Speicher, eine Festplatte, ein CD-ROM oder dergleichen handeln. So kann es sich beim maschinenlesbaren Datenträger 112 um einen nicht flüchtigen Speicher handeln. In weiteren Ausführungsformen kann der Rechner 102 eine Anwendung und/oder Firmware umfassen, der unabhängig von und/oder in Verbindung mit dem Prozessor 110 zum Abruf, Decodieren und oder Ausführung der Befehle 114, 116 und 118 auf dem maschinenlesbaren Datenträger 112 oder an einer anderen Stelle im Rechner 102 verwendet werden kann. In einer weiteren Ausführungsform umfasst der maschinenlesbare Datenträger 112 114, 116 und 118; er kann ferner weitere Befehle enthalten.
  • Der Prozessor 110 entschlüsselt die verschlüsselten Anwendungsdaten 108, um entschlüsselte Anwendungsdaten zu ergeben. Der Prozessor 110 kann die verschlüsselten Anwendungsdaten 106 mithilfe eines Schlüssels, Entschlüsselungsprogramms oder einer sonstigen geeigneten kryptographischen Funktion entschlüsseln.
  • Mit den resultierenden entschlüsselten Anwendungsdaten validiert der Prozessor 110 die Integrität 116 der entschlüsselten Anwendungsdaten. Gemäß einer Ausführungsform validiert der Prozessor 110 die Integrität der entschlüsselten Anwendungsdaten mittels eines Prüfsummenprogramms, -funktion, kryptographischen Hashfunktion oder sonstigen Integritätsprüfung. Gemäß einer weiteren Ausführungsform kann der Prozessor 110 die Integrität der entschlüsselten Anwendungsdaten durch Berechnen eines Datenwerts auf den Anwendungsdaten und Abgleichen mit einem auf dem Rechner 102 oder in einem dezentralen Speicher, z. B. der Quelle 104, gespeicherten Wert validieren. Beispielsweise verschlüsselt der Prozessor nach der Entschlüsselung der Anwendungsdaten 106 einen Hashwert wie z. B. ”18$#”, der dann mit vorher berechneten Hashsfunktionen abgeglichen wird, die die konkrete Anwendung und sonstige Anwendungen darstellen. Der Abgleich des Werts ”18$#” mit einem entsprechenden Hashwert gewährleistet, dass keine Manipulationen der Anwendungsdaten erfolgt sind.
  • Nach der Validierung der entschlüsselten Anwendungsdaten verschlüsselt der Prozessor 110 die Anwendungsdaten mit einem anderen Verschlüsselungsverfahren als das von der vertrauten Quelle 104 zur Verschlüsselung der Anwendungsdaten 106 verwendete Verfahren wieder. In diesem Sinne ist das zur Erstellung von 106 verwendete Verschlüsslungsverfahren die Erstverschlüsselung; dabei gilt die bei 118 verwendete Verschlüsselung als Zweitverschlüsselung. Beispielsweise kann die Erstverschlüsselung eine kryptographische Funktion verwenden, während die zweite die Anwendungsdaten mit dem privaten Schlüssel verschlüsseln kann. In einem weiteren Beispiel kann die Erstverschlüsselung den Einsatz eines Schlüssels durch die vertraute Quelle zur Verschlüsselung der Anwendungsdaten umfassen, während die zweite einen anderen Schlüssel verwendet. Gemäß einer weiteren Ausführungsform kann der Benutzer des Rechners 102 oder der Rechner selbst die Anwendungsdaten 118 verschlüsseln. Gemäß dieser Ausführungsform kann die Verschlüsselung der Anwendungsdaten den Einsatz eines Benutzer- oder rechnerspezifischen privaten Schlüssels umfassen. Da die vor der Übertragung der verschlüsselten Anwendungsdatei 106 verwendete Verschlüsselungsmethode als Erstverschlüsselung bezeichnet wird und die bei 118 verwendete Methode als Zweitverschlüsselung bezeichnet wird, werden die verschlüsselten Anwendungsdaten jeweils als 1. und 2. Daten bezeichnet. Sobald die 2. Daten erstellt worden sind, werden diese vom Prozessor 110 im Speicher 120 gespeichert.
  • Der Speicher 120 kann z. B. ein Speicher oder verschiedene physische Datenträger sein. Beispielsweise kann der Speicher 120 eine oder mehrere Festplatten, SSD-Laufwerke, Bandlaufwerke, Flash-Laufwerke, Nanolaufwerke, holographische Speicher oder eine Kombination davon sein.
  • 2 zeigt die Kommunikation zwischen einer vertrauten Quelle 204, der Kommunikationsplattform 208, dem Prozessor 210 und dem Speicher 220. Wie oben ausgeführt, sind Plattform 208, Prozessor 210 und Speicher 220 Komponenten des Rechners 102. In diesem Sinne zeigt 2 die Kommunikationen zwischen der vertrauten Quelle 204 und dem Rechner 102.
  • Die Quelle 204 überträgt oder sendet eine erste verschlüsselte Anwendungsdatei an die Plattform 208. Die Quelle 204 kann eine Netzwerkkommunikation umfassen, die zur Kommunikation mit einem Rechner geeignet ist, z. B. ein WAN, Bluetooth, usw. Wie oben ausgeführt, kann die erste verschlüsselte Anwendungsdatei mindestens eine zur Anwendung gehörende Datei, z. B. eine ausführbare Datei, Konfigurationsdatei, Medien, Bibliothek, Quellcode oder sonstige Anwendungsdatei umfassen. In einer Ausführungsform kann die Quelle 204 auch einen Verschlüsselungsschlüssel an einen Rechner senden, der verschlüsselt und gespeichert wird. Gemäß einer weiteren Ausführungsform sendet die Quelle 204 den Schlüssel nach den 1. Daten, während gemäß einer weiteren Ausführungsform die Quelle 204 den Schlüssel vor den 1. Daten sendet. In diesen Ausführungsformen werden die 1. Daten mithilfe des Schlüssels vom Prozessor 210 entschlüsselt.
  • Die Kommunikationsplattform 208 empfängt die 1. Daten, damit diese vom Prozessor 210 entschlüsselt werden können. Wie bereits oben beschrieben, umfasst die Kommunikationsplattform 208 eine Netzwerkschnittstelle, Netzwerkkommunikation oder sonstiges Kommunikationsnetz, das zur Verbindung des Rechners mit einer vertrauten Quelle 204 geeignet ist. Beispielsweise kann die Plattform 208 ein WLAN, ein drahtloses Funkgerät, Bluetooth oder ein sonstiges drahtloses oder verkabeltes Kommunikationsgerät umfassen, um mit der Quelle 204 zu kommunizieren.
  • Der Prozessor 210 entschlüsselt die ersten verschlüsselten Anwendungsdaten, um ihre Integrität zu validieren. Nach der Validierung der Integrität verschlüsselt der Prozessor 210 die 1. Daten, was die 2. Daten ergibt, die im Speicher 220 gespeichert werden. In einer Ausführungsform werden die 1. Daten vom Prozessor 210 mithilfe des von der Quelle 204 gesendeten Schlüssels entschlüsselt, verschlüsselt, und im Speicher 220 mit den 2. Daten zusammen gespeichert. Beispielsweise entschlüsselt der Prozessor 210 die 1. Daten mithilfe des Schlüssels. Wie oben ausgeführt, wird mit den entschlüsselten Anwendungsdaten ein Hashwert berechnet, um deren Integrität mithilfe eines Prüfsummenprogramms, -funktion, kryptographischen Hashfunktion oder einer sonstigen Integritätsprüfung zu validieren. Gemäß einer Ausführungsform kann der Prozessor 210 die Integrität der entschlüsselten Anwendungsdaten durch Berechnen eines Datenwerts aus den Anwendungsdaten und Abgleichen mit einem auf dem Rechner oder in der Quelle 204, gespeicherten Wert validieren. Beispielsweise verschlüsselt der Prozessor 210 nach der Entschlüsselung der Anwendungsdaten einen Hashwert wie z. B. ”18$#”, der dann mit vorher berechneten Hashsfunktionen abgeglichen wird, die die konkrete Anwendung und sonstige Anwendungen darstellen. Durch den Abgleich des Werts ”18$#” mit einem entsprechenden Hashwert wird gewährleistet, dass keine Manipulation der Anwendungsdaten erfolgt ist, sofern der Hashwert einem vorher berechneten Hashwert ist, wird die Integrität der Anwendungsdaten in dem Sinne gewährleistet, dass sie nicht manipuliert worden sind. Die 1. Daten und der Schlüssel werden denn vom Prozessor mit einem anderen Verfahren, als zur Erstellung der 1. Daten verwendet wurde, neu verschlüsselt. Hierdurch werden die 2. Daten erstellt. Dann werden die 2. Daten und der verschlüsselte Schlüssel im Speicher 220 gespeichert.
  • Der Speicher 220 speichert die 2. Daten. Der Speicher 220 kann z. B. ein Speicher oder verschiedene physische Datenträger sein, die zur Speicherung verschlüsselter Anwendungsdaten geeignet sind. Beispielsweise kann der Speicher in Verbindung mit einem Datenträger oder Prozessor, oder auch selbständig funktionieren.
  • Wie oben ausgeführt, kann der Speicher 220 gemäß einer weiteren Ausführungsform auch den Schlüssel speichern. Der Prozessor 210 kann die 2. Daten vom Speicher 220 abrufen, um deren Integrität zu überprüfen. Dabei ruft der Prozessor 210 die 2. Daten ab, um sie zu entschlüssen, was die 2. entschlüsselten Daten ergibt. Gemäß einer Ausführungsform validiert der Prozessor 210 außerdem die Integrität der 2. entschlüsselten Daten, um zu gewährleisten, dass diese nicht manipuliert worden sind. In diesem Fall gewährleistet die zusätzliche Validierung der Integrität der 2. entschlüsselten Datei, dass die 2. entschlüsselten Daten im Speicher 220 nicht entschlüsselt worden sind. Sobald die Integrität der 2. entschlüsselten Datei validiert worden ist, kann ein Status der 2. entschlüsselten Daten von der Quelle 204 an den Prozessor 210 gesendet werden. Beispiele für den Status sind insbesondere Rückruf, Aktualisierung erforderlich, Warten, Ausführen und/oder ein sonstiger Anwendungsstatus, mit dem der Zustand der 2. entschlüsselten Daten angegeben wird. Beispielsweise kann der Prozessor einen Status zum Festhalten der 2. entschlüsselten Daten empfangen; dann führt der Prozessor 210 die Daten erst dann aus, wenn ein entsprechender Status empfangen wird. In diesem Sinne hängt die Ausführung der 2. Daten durch den Prozessor 210 vom Status der 2. Daten ab.
  • Wenn der Prozessor 210 die 2. Daten ausführt, ruft er die 2. Daten vom Speicher 220 ab, um diese zu entschlüsseln, was die 2. entschlüsselten Daten ergibt. Der Prozessor 210 validiert dann die Integrität der 2. entschlüsselten Daten und empfängt einen aktualisierten Status, um mit der Ausführung der Anwendung fortzufahren. Der Prozessor 210 kann die 2. entschlüsselten Daten dann ausführen.
  • 3 ist ein Blockdiagramm 300 beispielhafter Anwendungsdaten 304. Im Einzelnen zeigt das Blockdiagramm 300 die Anwendungsdaten 304, die eine ausführbare Datei 306, Konfigurationsdatei 308, Medien 310, Bibliothek 312 und/oder Quellcode 314 enthalten können. Beispielsweise können die Anwendungsdaten 304 eine ausführbare Datei 306 oder mehrere Konfigurationsdateien 308 und mehrere ausführbare Dateien 306 und/oder Metadaten enthalten. Außerdem zeigt das Blockdiagramm 300 die Anwendungsdaten ohne Rücksicht auf deren Verschlüsselungszustand. In diesem Sinne können die verschlüsselten Anwendungsdaten 304 ver- oder entschlüsselt sein.
  • Die Anwendungsdaten 304 können auf einem Rechner ver- oder entschlüsselt sein. Wie oben ausgeführt, umfassen Beispiele der verschlüsselten Anwendungsdaten 304 umfassen eine Anwendungsdatei, Anwendungsdaten, -komponenten, -software oder einen sonstigen Teil der Anwendung, und können in diesem Sinne gleichbedeutend verwendet werden. Obwohl 3 Anwendungsdaten 304 zeigt, die die ausführbare Datei 306, Konfigurationsdatei 308, Medien 310, Bibliothek 312, Metadaten und/oder Quellcode 314 umfassen, ist dies nicht als Einschränkung aufzufassen, da auch Anwendungsdaten anderer Art enthalten sein können, die nicht in 3 dargestellt sind. Auf diese Weise können die Anwendungsdaten 304 eine oder mehrere mit einer herunterzuladenden oder auszuführend Anwendung verwandte Dateien umfassen. Wie oben erwähnt, sendet die vertraute Quelle verschlüsselte Anwendungsdaten 304 an einen Rechner. Die verschlüsselten Anwendungsdaten 304 können die Anwendungsdaten in verschlüsselter Form sein und eine oder mehrere von 306, 308, 310, 312 und 314 umfassen. Die verschlüsselte Anwendungsdatei 304 wird vom Rechner empfangen und kann dort entschlüsselt werden. Wie oben ausgeführt, kann ein Prozessor außerdem die Anwendungsdaten 304 können die Anwendungsdaten ausführen, die eine oder mehrere von 306, 308, 310, 312 und 314 umfassen können.
  • 4 ist ein Flussdiagramm eines beispielhaften Verfahrens 400 zur Speicherung zweiter verschlüsselter Anwendungsdaten durch einen Rechner; Obwohl die Ausführung des Verfahrens 400 unter Bezugnahme auf die Elemente der 1 beschrieben wird, sind weitere geeignete Komponente für den Fachmann ersichtlich. Das Verfahren 400 kann in Form ausführbarer Befehle ausgeführt werden, die auf einem maschinenlesbaren Speichermedium wie z. B. dem Datenträger 112 gespeichert werden, und/oder in Form elektronischer Schaltungen ausgeführt werden.
  • Bei 402 sendet eine vertraute Quelle erste verschlüsselte Anwendungsdaten. Bei 402 kann z. B. ein Rechner sich gegenüber einer vertrauten Quelle authentifizieren, und umgekehrt. Gemäß einer Ausführungsform kann die Quelle die Anwendungsdaten vor der Übertragung oder auch im Transit verschlüsseln, um die 1. Daten zu erstellen, die der Rechner empfängt. Eine Kommunikationsplattform 108 des Rechners empfängt die ersten verschlüsselten Anwendungsdaten bei 404.
  • Bei 404 werden dann die 1. Daten bei 404 von [sic] entschlüsselt, um erste entschlüsselte Anwendungsdaten zu ergeben. Bei 404 erzeugt ein Prozessor mithilfe einer Entschlüsselungsmethode die 1. entschlüsselten Anwendungsdaten. Der Schritt 404 kann mithilfe einer Entschlüsselungsmethode, eines Schlüssels, Entschlüsselungsprogramms oder einer sonstigen geeigneten kryptographischen Funktion ausgeführt werden. In einem weiteren Beispiel des Schritts 404 wird von der Quelle ein Verschlüsselungsschlüssel empfangen, mit diesem die 1. Daten entschlüsselt, der Schlüssel verschlüsselt und anschließend auf dem Rechner gespeichert. In noch einem weiteren Beispiel des Schritts 404 wird nur ein Teil der 1. Daten entschlüsselt. In noch einem weiteren Beispiel des Schritts 404 werden die 1. Daten in eine Systemdatei entschlüsselt, die für einen Benutzer des Rechners nicht sichtbar ist. Beispielsweise werden bei 404 die 1. Daten in einen unsichtbaren Speicher oder Cache entschlüsselt. Im Einzelnen ist dieser Speicher für einen Benutzer des Rechners unsichtbar, damit die entschlüsselten Anwendungsdaten nicht kopiert und/oder übertragen werden können.
  • Bei 406 validiert der Prozessor die Integrität der 1. entschlüsselten Daten. Wie oben ausgeführt, verwendet ein Prozessor bei 406 eine Prüfsummenfunktion, -programm, -funktion, kryptographische Hashfunktion oder eine sonstigen Integritätsprüfung, um die Integrität der 1. entschlüsselten Daten zu validieren. Gemäß einer Ausführungsform kann der Prozessor die Integrität der entschlüsselten Anwendungsdaten durch Berechnen eines Datenwerts aus den entschlüsselten Anwendungsdaten und Abgleichen mit einem auf dem Rechner oder in der vertrauten Quelle, gespeicherten vorher berechneten Hashwert validieren. Beispielsweise wird nach der Verschlüsselung eines Hashwerts durch den Prozessor dieser Wert mit vorher berechneten Hashwerten abgeglichen, die die konkrete Anwendung und sonstige Anwendungen darstellen, um die Integrität der 1. entschlüsselten Daten zu validieren. In einem weiteren Beispiel kann ein Hashwert der 1. entschlüsselten Daten ”89&*?!” sein, in diesem Schritt kann ein Rechner, z. B. der Rechner 102 in 1, einen entsprechenden vorher berechneten Hashwert in einer Datenbank oder einem Katalog suchen, um die Integrität der 1. entschlüsselten Daten zu validieren. Die Datenbank oder Katalog kann sich auf dem Rechner oder in einem dezentralen Speicher, z. B. der vertrauten Quelle befinden. In diesem Sinne validiert der Prozessor, dass die Anwendungsdaten nicht manipuliert worden sind. Gemäß einer Ausführungsform werden die Anwendungsdaten nicht ausgeführt, wenn keine Validierung der Integrität der 1. entschlüsselten Daten erfolgt ist. Gemäß einer weiteren Ausführungsform können die Anwendungsdaten aus dem Rechner gelöscht werden.
  • Bei 408 verschlüsselt der Prozessor die 1. entschlüsselten Daten. Außerdem verwendet der Prozessor eine andere Verschlüsselungsmethode, als von der Quelle zur Verschlüsselung der 1. verschlüsselten Anwendungsdaten verwendet wurde, um die 2. Daten zu erzeugen. In diesem Sinne werden die bei 402 oder 404 empfangenen 1.
  • Daten mit einer ersten Methode verschlüsselt, während bei 408 eine 2. Verschlüsselungsmethode verwendet wird. Beispielsweise kann die Erstverschlüsselung eine kryptographische Funktion verwenden, während die zweite die Anwendungsdaten mit dem privaten Schlüssel verschlüsseln kann. In einem weiteren Beispiel kann die Erstverschlüsselung den Einsatz eines Schlüssels durch die vertraute Quelle zur Verschlüsselung der Anwendungsdaten umfassen, während die zweite einen anderen Schlüssel verwendet. In einer weiteren Ausführungsform umfasst die zweite Methode den Einsatz eines Benutzer- oder rechnerspezifischen Schlüssels. Auf diese Weise basiert die Verschlüsselungsmethode mindestens auf dem Benutzer oder dem Rechner.
  • Bei 410 werden die 2. Daten gespeichert. Wie z. B. in 1 gezeigt, werden die 2. Daten im Speicher 120 gespeichert.
  • 5 ist ein Flussdiagramm eines beispielhaften Verfahrens 500 zur Ausführung zweiter verschlüsselter Anwendungsdaten durch einen Rechner; Außerdem umfasst das Verfahren 500 die Beendung der 2. Daten. Obwohl die Ausführung des Verfahrens 500 unter Bezugnahme auf die Elemente der 1 beschrieben wird, sind weitere geeignete Komponente für den Fachmann ersichtlich. Das Verfahren 500 kann in Form ausführbarer Befehle ausgeführt werden, die auf einem maschinenlesbaren Speichermedium wie z. B. dem Speichermedium 112 gespeichert werden, oder in Form elektronischer Schaltungen ausgeführt werden.
  • Beispielsweise ist der Schritt 512 die Fortsetzung des Verfahrens 400 der 4 und beginnt nach der Speicherung der 2. Daten im Schritt 410. Bei 512 ruft der Prozessor die 2. Daten aus einem Speicher ab. In einer weiteren Ausführungsform kann ein Benutzer den Prozessor auffordern, die zweite verschlüsselte Anwendung abzurufen.
  • Bei 514 werden dann die 2. Daten bei 404 entschlüsselt, um zweite entschlüsselte Anwendungsdaten zu ergeben. Bei 514 können verschlüsselten Anwendungsdaten mithilfe einer Entschlüsselungsmethode, eines Schlüssels, Entschlüsselungsprogramms oder einer sonstigen geeigneten kryptographischen Funktion entschlüsselt werden. Beispielsweise werden bei 514 die 2. Daten in einen unsichtbaren Speicher oder Cache entschlüsselt. Im Einzelnen ist dieser Speicher für einen Benutzer des Rechners unsichtbar. In diesem Sinne wird die Vervielfältigung der Anwendungsdaten verhindert.
  • Bei 514 werden die im Schritt 516 erzeugten 2. entschlüsselten Daten zur Integritätsprüfung verwendet. Dadurch wird gewährleistet, dass die 2. Daten im Speicher nicht manipuliert worden sind. Bei 516 wird z. B. ein Hashwert mittels einer kryptographischen Hashfunktion berechnet. Mit den 2. entschlüsselten Anwendungsdaten wird ein Hashwert berechnet, um deren Integrität mithilfe eines Prüfsummenprogramms, -funktion, kryptographischen Hashfunktion oder einer sonstigen Integritätsprüfung zu validieren. Gemäß einer Ausführungsform umfasst der Schritt 516 die Berechnung eines Datenwerts und dessen Abgleich mit anderen vorher berechneten Hashwerten auf dem Rechner oder der vertrauten Quelle. Der Abgleich dieses berechneten Hashwerts mit anderen vorher berechneten Hashwerten ermittelt, ob ein entsprechender Hashwert vorliegt, um die Integrität der Anwendungsdaten zu validieren. Nach der Validierung können die 2. entschlüsselten Daten ausgeführt werden. In weiteren Beispielen können die Anwendungsdaten aus dem Speicher entfernt oder nicht ausgeführt werden, wenn die Integrität nicht validiert worden ist. Bei 518 wird eine Statusaktualisierung der 2. entschlüsselten Daten empfangen. Beispielsweise können bei 518 Befehle hinsichtlich des aktuellen Status der 2. entschlüsselten Daten von der vertrauten Quelle empfangen werden. Hierzu kann gehören, dass die Anwendungsdaten zurückgerufen, aktualisiert, festgehalten, ausgeführt werden und/der das auf eine sonstige Weise verfahren wird. Beispielsweise kann nach der Validierung der Integrität bei 516 der Rechner von der Quelle die Statusaktualisierung empfangen, die Anwendungsdaten zurückzurufen, da der Benutzer womöglich nicht mehr befugt ist, die konkrete Anwendung auszuführen. Also werden bei 518 die Anwendungsdaten gelöscht.
  • Bei 520 werden die 2. entschlüsselten Daten ausgeführt. Beispielsweise führt der Rechner 102 bei 520 die 2. entschlüsselten Daten nach der Integritätsprüfung und dem Eingang eines aktualisierten Status zur Ausführung der Anwendung aus. In einem weiteren Beispiel umfasst der Schritt 520 die Ausführung der Anwendungsdaten, Konfigurationsdateien und ausführbaren Dateien zur Ausführung einer Anwendung.
  • Bei 522 werden die 2. entschlüsselten Daten beendet. Beispielsweise werden bei 522 alle verwandten entschlüsselten Komponenten der Anwendung aus dem Speicher entfernt. In einem weiteren Beispiel wird bei 522 die Aufforderung zur Beendung der 2. entschlüsselten Anwendungsdatei und zu ihrer Entfernung aus dem Speicher empfangen. Beispielsweise kann der Benutzer des Rechners die Sitzung der Anwendung beenden und diese schließen. Der Rechner empfängt eine Aufforderung zur Beendung der 2. entschlüsselten Anwendungsdatei und entfernt diese dann aus dem Speicher.
  • 6 zeigt ein Blockdiagramm eines Beispielrechners 602 zur Speicherung und Ausführung der 2. Anwendungsdaten. Obwohl der Rechner 602 den Prozessor 610 und den maschinenlesbaren Datenträger 612 umfasst, kann er auch andere Komponenten umfassen, die nach dem Kenntnisstand des Fachmanns geeignet sind. Beispielsweise kann der Rechner 602 ferner einen Speicher und/ oder einen zusätzlichen Prozessor, Eingabegerät, usw. umfassen. Außerdem kann der Rechner 602 z. B. ein Client-Gerät, PC, Laptop, mobiles Gerät, tragbares Gerät oder ein sonstiger Rechner sein, der zum Empfang und zur Speicherung verschlüsselter Anwendungsdaten geeignet ist.
  • Der Prozessor 610 kann Befehle 614, 616, 618, 620, 622, 624, 626, 628 und 630 abrufen, decodieren und ausführen. Der Prozessor 610 kann eine CPU, Mikroprozessor oder sonstiges programmierbares Gerät umfassen, dass zur Entschlüsselung, Validierung, Verschlüsselung, Speicherung, Aktualisierung und Ausführung der Anwendungsdaten geeignet ist. Im Einzelnen empfängt der Prozessor 610 Befehle bezüglich der 1. Daten 614, des Entschlüsselungsverfahrens 616, der Integritätsvalidierung 616 der 1. Daten, Verschlüsselung 620 zur Erzeugung der 2. Daten sowie der Speicherung 622. Außerdem ruft der Prozessor 610 die 2. Daten von einem Speicher ab, um die Entschlüsselungsbefehle 624, Validierungsbefehle 626 der 2. Daten, Aktualisierungsbefehle 628 und Ausführungsbefehle 630 auszuführen.
  • Der maschinenlesbare Datenträger 612 kann die Befehle 614, 616, 618, 620, 622, 624, 626, 628 und 630 zum Abruf, Decodieren und Ausführen durch den Prozessor 610 enthalten. Beim maschinenlesbaren Datenträger 612 kann es sich um eine elektronische, magnetische, optischer Speicher, Flash-Speicher oder sonstige physische Speichervorrichtung handeln, die ausführbare Befehle enthält bzw. speichert. So kann es beim maschinenlesbaren Datenträger 612 beispielsweise um einen RAM-Speicher, einen EEPROM-Speicher, eine Festplatte, ein CD-ROM oder dergleichen handeln. So kann es sich beim maschinenlesbaren Datenträger 612 um einen nicht flüchtigen Speicher handeln. In weiteren Ausführungsformen kann der Rechner 602 eine Anwendung und/oder Firmware umfassen, der unabhängig von und/oder in Verbindung mit dem Prozessor zum Abruf, Decodieren und oder Ausführung der Befehle verwendet werden kann. Die Anwendung und/oder Firmware kann auf dem maschinenlesbaren Datenträger 612 und/oder an einer anderen Stelle des Rechners 602 gespeichert werden.
  • Die vorliegend ausführlich beschriebenen Ausführungsformen verhindern die unbefugte Benutzung einer Anwendung und stellen einen Sicherheitsmechanismus für Anwendungen und Benutzer durch die Reduzierung von Manipulationen von Anwendungen bereit.

Claims (15)

  1. Verfahren zur Verhinderung des unbefugten Zugriffs auf Anwendungsdaten, umfassend: Entschlüsseln 1. verschlüsselter Anwendungsdaten aus einer vertrauten Quelle zur Erzeugung erster entschlüsselter Anwendungsdaten; Validierung der Integrität der ersten entschlüsselten Anwendungsdaten. Verschlüsseln der ersten entschlüsselten Anwendungsdaten mit einer anderen Verschlüsselungsmethode, als bei den ersten verschlüsselten Anwendungsdaten verwendet wurde, um 2. verschlüsselte Anwendungsdaten zu erzeugen; und Speichern der zweiten verschlüsselten Anwendungsdaten in einem Speicher des Rechners.
  2. Verfahren nach Anspruch 1, wobei die Verschlüsselungsmethode auf dem Rechner ein Verschlüsselungsprogramm ist, bei dem ein mindestens Benutzer- oder rechnerspezifischer Schlüssel verwendet wird.
  3. Verfahren nach Anspruch 1, wobei die Validierung der Integrität der ersten entschlüsselten Anwendungsdaten ferner umfasst: Berechnen eines Hashwerts der ersten entschlüsselten Anwendungsdaten und Abgleichen des Hashwerts mit einem vorgegebenen Hashwert; Ermitteln, ob der Hashwert dem vorgegebenen Hashwert entspricht, um die Integrität der ersten entschlüsselten Anwendungsdaten zu gewährleisten.
  4. Verfahren nach Anspruch 1, ferner umfassend: Entschlüsseln der zweiten verschlüsselten Anwendungsdaten, um zweite entschlüsselte Anwendungsdaten zu erzeugen; Validieren der Integrität der zweiten entschlüsselten Anwendungsdaten; Empfangen einer Statusaktualisierung der zweiten entschlüsselten Anwendungsdaten von der vertrauten Quelle; und Ausführen der zweiten entschlüsselten Anwendungsdaten auf dem Rechner.
  5. Verfahren nach Anspruch 4, wobei der Empfang der Statusaktualisierung der zweiten entschlüsselten Anwendung mindestens eines von nicht ausführbar, Rückruf, Aktualisierung erforderlich und Festhalten umfasst.
  6. Verfahren nach Anspruch 4, ferner umfassend: Beenden der zweiten entschlüsselten Anwendungsdaten durch Entfernen einer oder mehrerer mit den zweiten entschlüsselten Anwendungsdaten aus dem Speicher des Rechners.
  7. Rechner, umfassend: eine Kommunikationsplattform, die von einer vertrauten Quelle erste verschlüsselte Anwendungsdaten empfängt, wobei die vertraute Quelle eine erste Verschlüsselung verwendet; einen Prozessor, der: die ersten verschlüsselten Anwendungsdaten zur Erzeugung erster entschlüsselter Anwendungsdaten entschlüsselt; die Integrität der ersten entschlüsselten Anwendungsdaten validiert; die ersten entschlüsselten Anwendungsdaten mit einem zweiten Verschlüsselungsverfahren verschlüsselt, das sich von der ersten Verschlüsselung unterscheidet, um zweite verschlüsselte Anwendungsdaten zu ergeben; und einen Speicher, der die zweiten verschlüsselten Anwendungsdaten speichert.
  8. Rechner nach Anspruch 7, wobei zur Entschlüsselung der ersten verschlüsselten Anwendungsdaten der Prozessor außerdem: einen Verschlüsselungsschlüssel von der vertrauten Quelle empfängt; den Verschlüsselungsschlüssel verschlüsselt; und den Verschlüsselungsschlüssel speichert.
  9. Rechner nach Anspruch 7, wobei die Anwendungsdaten mindestens eine ausführbare Datei, Konfigurationsdatei, Medien, Metadaten, Quellcode oder sonstige mit der Anwendung verwandte Software enthalten.
  10. Rechner nach Anspruch 7, wobei die zweite Verschlüsselung eine Verschlüsselungsmethode ist, bei der ein mindestens benutzer- oder rechnerspezifischer Schlüssel verwendet wird.
  11. Rechner nach Anspruch 7, wobei der Prozessor außerdem: die zweiten entschlüsselten Anwendungsdaten aus dem Speicher abruft; die zweiten verschlüsselten Anwendungsdaten entschlüsselt, um zweite entschlüsselte Anwendungsdaten zu erzeugen; die Integrität der zweiten entschlüsselten Anwendungsdaten validiert; eine Statusaktualisierung der zweiten entschlüsselten Anwendungsdaten von der vertrauten Quelle empfängt; und auf die Statusaktualisierung hin die zweiten entschlüsselten Anwendungsdaten auf dem Rechner ausführt.
  12. Rechner nach Anspruch 11, wobei zum Abruf der zweiten verschlüsselten Anwendungsdaten aus dem Speicher der Prozessor auf eine Aufforderung des Benutzers reagiert.
  13. Rechner nach Anspruch 11, ferner umfassend einen Speicher des Prozessors, der: die zweiten entschlüsselten Anwendungsdaten im Speicher zwischenspeichert; einen Befehl zur Beendung der zweiten entschlüsselten Anwendungsdaten empfängt; und die zweiten entschlüsselten Anwendungsdaten aus dem Speicher entfernt.
  14. Nicht flüchtiger, maschinenlesbarer Datenträger, umfassend Befehle, die im Falle ihrer Ausführung einen Prozessor dazu veranlassen: mit einer ersten Verschlüsselung verschlüsselte erste Anwendungsdaten zu empfangen; die ersten verschlüsselten Anwendungsdaten mithilfe eines empfangenen Verschlüsselungsschlüssels zu entschlüsseln, um ersten entschlüsselte Anwendungsdaten zu erzeugen; die Integrität der ersten entschlüsselten Anwendungsdaten zu validieren; zweite entschlüsselten Anwendungsdaten durch Verschlüsseln der ersten entschlüsselten Anwendungsdaten mit einem zweiten Verschlüsselungsverfahren, das sich von der ersten Verschlüsselung unterscheidet; und die zweiten verschlüsselten Anwendungsdaten in einem Speicher des Rechners zu speichern.
  15. Nicht flüchtiger, maschinenlesbarer Datenträger, umfassend Befehle nach Anspruch 14, die im Falle ihrer Ausführung einen Prozessor ferner dazu veranlassen: die zweiten verschlüsselten Anwendungsdaten zu entschlüsseln, um zweite entschlüsselte Anwendungsdaten zu erzeugen; die Integrität der zweiten entschlüsselten Anwendungsdaten zu validieren; eine Statusaktualisierung der zweiten entschlüsselten Anwendungsdaten von der vertrauten Quelle zu empfangen; und die zweiten entschlüsselten Anwendungsdaten auf dem Rechner auszuführen.
DE112011105688.5T 2011-09-29 2011-09-29 Ent- und Verschlüsselung von Anwendungsdaten Withdrawn DE112011105688T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054078 WO2013048418A1 (en) 2011-09-29 2011-09-29 Decryption and encryption of application data

Publications (1)

Publication Number Publication Date
DE112011105688T5 true DE112011105688T5 (de) 2014-07-17

Family

ID=47996160

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105688.5T Withdrawn DE112011105688T5 (de) 2011-09-29 2011-09-29 Ent- und Verschlüsselung von Anwendungsdaten

Country Status (5)

Country Link
US (1) US9489520B2 (de)
CN (1) CN103946858A (de)
DE (1) DE112011105688T5 (de)
GB (1) GB2509422B (de)
WO (1) WO2013048418A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2203815B1 (de) * 2007-09-20 2015-08-12 Uniloc Luxembourg S.A. Installieren eines geschützten softwareprodukts unter verwendung eines ungeschützten installationsbildes
JP5121542B2 (ja) * 2008-04-09 2013-01-16 キヤノン株式会社 アプリケーションパッケジング装置、その制御方法、プログラム
WO2013182376A1 (en) * 2012-06-06 2013-12-12 Nec Europe Ltd. Method and system for executing a secure application on an untrusted user equipment
US9215067B2 (en) * 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US9246676B2 (en) 2013-11-22 2016-01-26 Cisco Technology, Inc. Secure access for encrypted data
FR3017226B1 (fr) * 2014-02-03 2016-01-29 St Microelectronics Sa Procede de securisation d'un code programme, systeme et processeur correspondants
US9405925B2 (en) 2014-02-09 2016-08-02 Microsoft Technology Licensing, Llc Content item encryption on mobile devices
CN105450620B (zh) 2014-09-30 2019-07-12 阿里巴巴集团控股有限公司 一种信息处理方法及装置
EP3032453B1 (de) 2014-12-08 2019-11-13 eperi GmbH Datenspeicherung in einem Server-Computer mit aufsetzbarer Infrastruktur zum Verschlüsseln und Entschlüsseln
US10205710B2 (en) * 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
CN106411830B (zh) * 2016-01-25 2019-06-21 平安科技(深圳)有限公司 防止访问数据被篡改的方法及移动终端
GB2561374B (en) * 2017-04-11 2022-04-06 Secure Thingz Ltd Storing data on target data processing devices
US10642970B2 (en) * 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
US11113409B2 (en) * 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11443048B2 (en) * 2019-05-06 2022-09-13 Microsoft Technology Licensing, Llc Install-time procedural content generation for encrypted packages
DE102019003674A1 (de) * 2019-05-24 2020-11-26 Giesecke+Devrient Mobile Security Gmbh Verfahren zum einrichten eines subskriptions-profils, verfahren zum bereitstellen eines subskriptions-profils, teilnehmeridentitätsmodul
CN110321500B (zh) * 2019-06-24 2021-07-23 维沃移动通信有限公司 一种网页内容显示方法及装置
FR3098613A1 (fr) * 2019-07-09 2021-01-15 STMicroelectronics (Grand Ouest) SAS Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant
DE102020006075A1 (de) 2020-10-05 2022-04-07 Daimler Ag Verfahren zur Absicherung von gespeicherten Nutzdaten

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7298851B1 (en) * 1992-12-09 2007-11-20 Discovery Communications, Inc. Electronic book security and copyright protection system
US7263722B1 (en) * 1999-05-12 2007-08-28 Fraunhofer Crcg, Inc. Obfuscation of executable code
JP2001337865A (ja) * 2000-05-25 2001-12-07 Minolta Co Ltd ファイル生成方法およびファイル管理方法ならびにファイル
EP1328866A1 (de) 2000-10-17 2003-07-23 BRITISH TELECOMMUNICATIONS public limited company Mobile programme
JP2002319230A (ja) * 2001-01-25 2002-10-31 Sony Computer Entertainment Inc 記録媒体、情報処理装置、コンテンツ配信サーバ、方法、プログラム、その記録媒体
US20030009681A1 (en) * 2001-07-09 2003-01-09 Shunji Harada Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus
US20050021948A1 (en) * 2001-10-17 2005-01-27 Kamperman Franciscus Lucas Antonius Johannes Secure single drive copy method and apparatus
US7124445B2 (en) 2002-06-21 2006-10-17 Pace Anti-Piracy, Inc. Protecting software from unauthorized use by converting source code modules to byte codes
US7930537B2 (en) 2002-08-13 2011-04-19 Nokia Corporation Architecture for encrypted application installation
US6986041B2 (en) * 2003-03-06 2006-01-10 International Business Machines Corporation System and method for remote code integrity in distributed systems
KR100585095B1 (ko) 2003-06-26 2006-05-30 삼성전자주식회사 데이터 전송 시스템에서의 데이터 보호 방법 및 장치
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
US9020854B2 (en) * 2004-03-08 2015-04-28 Proxense, Llc Linked account system using personal digital key (PDK-LAS)
JP4856081B2 (ja) * 2004-10-08 2012-01-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Drmシステム用のユーザ・ベースのコンテンツ鍵暗号化
EP1662788A1 (de) * 2004-11-24 2006-05-31 Nagravision SA Verfahren und Vorrichtung für die Zugangskontrolle von Audio/Video-daten
GB2424557A (en) 2005-03-24 2006-09-27 Sony Uk Ltd FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run
US8086871B2 (en) 2005-04-26 2011-12-27 International Business Machines Corporation Method for fast decryption of processor instructions in an encrypted instruction power architecture
DE102005045852A1 (de) 2005-09-26 2007-04-05 Siemens Ag Verfahren und System zum Schutz von Quellcode
CN101005699A (zh) * 2006-01-22 2007-07-25 华为技术有限公司 管理终端开放平台权限信息的方法和系统
US7925250B2 (en) 2006-03-27 2011-04-12 International Business Machines Corporation Reuse of a mobile device application in a desktop environment
JP2008102618A (ja) * 2006-10-17 2008-05-01 Toshiba Corp 電子機器およびファームウェア保護方法
US8522042B2 (en) * 2006-10-31 2013-08-27 Hewlett-Packard Development Company, L.P. Method and apparatus for enforcement of software licence protection
WO2008100030A1 (en) 2007-02-12 2008-08-21 Mobiletop Co., Ltd. Method of downloading mobile contents
US7971261B2 (en) * 2007-06-12 2011-06-28 Microsoft Corporation Domain management for digital media
US8627079B2 (en) * 2007-11-01 2014-01-07 Infineon Technologies Ag Method and system for controlling a device
US8462954B2 (en) * 2008-05-30 2013-06-11 Motorola Mobility Llc Content encryption using at least one content pre-key

Also Published As

Publication number Publication date
GB2509422A (en) 2014-07-02
CN103946858A (zh) 2014-07-23
GB201404999D0 (en) 2014-05-07
US9489520B2 (en) 2016-11-08
WO2013048418A1 (en) 2013-04-04
US20140237255A1 (en) 2014-08-21
GB2509422B (en) 2020-12-30

Similar Documents

Publication Publication Date Title
DE112011105688T5 (de) Ent- und Verschlüsselung von Anwendungsdaten
EP2515499B1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
DE112015006149B4 (de) Verfahren zum Speichern einer Datendatei eines Datenendgeräts in einer Speichereinheit und System sowie Proxyeinheit hierfür
DE112011104325B4 (de) Computerlesbare Speichermedien zum Verschlüsseln und Entschlüsseln einer virtuellen Platte
DE102017205948A1 (de) Nachrichtenauthentifizierung mit sicherer Codeverifikation
DE102008006759B4 (de) Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit
DE112016006123T5 (de) Handshake zur Dienstautorisierung
DE112014000584T5 (de) Erreichen von Speichereffizienz bei durchgängiger Verschlüsselung unter Verwendung von nachgelagerten (Downstream-)Decryptern
DE112013007574T5 (de) Softwareaktualisierungsvorrichtung und Software-Aktualisierungsprogramm
DE102013105042A1 (de) Sicheres Flashprogrammieren eines sekundären Prozessors
DE102011010613A1 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE112010005874T5 (de) Verwalten gemeinschaftlich verwendeter Daten unter Verwendung einer virtuellen Maschine
DE102012210368A1 (de) Hinterlegung und Optimierung von Quellcode für trusted Computing
DE202014011089U1 (de) System zum Kopieren von Dateien zwischen verschlüsselten und unverschlüsselten Datenspeichereinrichtungen
DE60318633T2 (de) Verwaltung digitaler rechte
DE112021005968T5 (de) Krypto-löschung von in einer „key per io“-fähigen einheit gespeicherten daten über eine interne aktion
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112020000238T5 (de) Wiederherstellungsschlüssel zum entriegeln einer datenspeicherungsvorrichtung
EP2442251B9 (de) Individuelle Aktualisierung von Computerprogrammen
DE112012004308B4 (de) Verfahren, System, Vermittlungsserver, Client und Computerprogramm zum Löschen von Daten zum Aufrechterhalten einer Sicherungsstufe
US20090307780A1 (en) Using trusted third parties to perform drm operations
DE102013210837B4 (de) Startanwendung kryptographischer Schlüsselspeicher
EP2394232B1 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
EP3629516A1 (de) Dezentralisierte identitätsmanagement-lösung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021100000

R082 Change of representative

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER & PAR, DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: HOFFMANN - EITLE PATENT- UND RECHTSANWAELTE PA, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee