-
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.