-
Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem zur sicheren Verarbeitung von Nutzerdaten eines Benutzers in einem ungesicherten Programmmodul und ein entsprechendes Verfahren.
-
Stand der Technik
-
Computerbasierte Dienste werden heute in einer Vielzahl von Varianten und für eine Vielzahl von Anwendungen angeboten. Dabei kann ein solcher Dienst z.B. eine Anwendung sein, die in einer Cloud ausgeführt wird.
-
Solche Dienste können Dienste, wie z.B. eine Fahrzeugnavigation, Kommunikationsdienste, wie z.B. E-Maildienste oder Instant Messaging oder dergleichen aufweisen.
-
Prinzipiell kann die vorliegende Erfindung aber mit jeder Art von Anwendung genutzt werden, welcher Daten eines Benutzers verarbeitet.
-
Beispielsweise kann auch bei einfachen Anwendungen, wie einem Navigationsdienst der Nutzer wünschen, dass sein Ziel nicht öffentlich bekannt wird oder dass durch den Anbieter des Navigationsdienstes kein Bewegungsprofil über ihn erstellt wird.
-
Bei Kommunikations-Diensten, die dem Benutzer die Kommunikation mit anderen Personen ermöglichen, liegt es auf der Hand, dass der Benutzer ein Interesse daran hat, seine Daten bzw. die Kommunikationsinhalte geheim zu halten.
-
Durch die voranschreitende Vernetzung und die immer höheren Datenübertragungsraten, welche sowohl in stationären Systemen als auch in mobilen Systemen, z.B. Smartphones, zur Verfügung stehen, werden immer mehr Dienste von darauf spezialisierten Geräten, wie z.B. Navigationssystemen, auf Server ausgelagert, von welchen diese Dienste abgerufen werden können.
-
Dadurch wird es für den Benutzer aber immer schwieriger die Kontrolle über seine eigenen Daten zu behalten bzw. zu kontrollieren, was mit diesen Daten geschehen soll.
-
Heute ist es üblich, dass einzelne Anwendungen von Zertifizierungsstellen zertifiziert werden, welche bestätigen, dass die jeweilige Anwendung die Daten des Nutzers entsprechend der Behauptung des jeweiligen Herstellers behandelt.
-
Beispielsweise kann ein Hersteller bzw. Anbieter eines Datenablagedienstes versichern, dass die Daten des Benutzers von dem Anbieter bzw. dem Hersteller nicht eingesehen werden und nur auf europäischen Servern gelagert werden.
-
Ist die Anwendung nicht zertifiziert, muss sich der Anwender auf diese Aussage verlassen. Durch ein Zertifikat einer vertrauenswürden Zertifizierungsstelle kann der Anwender sich zumindest darauf verlassen, dass diese Behauptung des Herstellers zum Zeitpunkt der Zertifizierung tatsächlich eingehalten wird.
-
Der Anwender kann also entscheiden, ob er lediglich Dienste nutzt, welche eine solche Zertifizierung durch eine vertrauenswürden Zertifizierungsstelle besitzen, oder ob er seine Daten nicht zertifizierten Diensten anvertraut.
-
Ein Nachteil solcher Zertifizierungen ist, dass sie lange Zeit benötigen und damit die innovativen Ideen nach der Umsetzung und Zertifizierung nicht mehr aktuell sind.
-
Offenbarung der Erfindung
-
Die vorliegende Erfindung offenbart ein Datenverarbeitungssystem mit den Merkmalen des Patentanspruchs 1 und ein Verfahren mit den Merkmalen des Patentanspruchs 10.
-
Demgemäß ist vorgesehen:
-
Ein Datenverarbeitungssystem zur sicheren Verarbeitung von Nutzerdaten eines Benutzers in einem ungesicherten Programmmodul, mit einer Recheneinrichtung, welche ausgebildet ist, das Programmmodul auszuführen und zu überwachen, dass das Programmmodul die Nutzerdaten nicht kompromittiert, und mit einer Datenverschlüsselungsvorrichtung, welche ausgebildet ist, ein digitales Sicherheitszertifikat der Recheneinrichtung zu prüfen und nur bei positiver Prüfung des digitalen Sicherheitszertifikats die Nutzerdaten zu verschlüsseln und an die Recheneinrichtung zu übertragen.
-
Ferner ist vorgesehen:
-
Ein Verfahren zum sicheren Verarbeiten von Nutzerdaten eines Benutzers in einem ungesicherten Programmmodul, aufweisend Ausführen des Programmmoduls in einer Recheneinrichtung, Überwachen in der Recheneinrichtung, dass das Programmmodul die Nutzerdaten nicht kompromittiert, Prüfen in einer Datenverschlüsselungsvorrichtung eines digitalen Sicherheitszertifikats der Recheneinrichtung, welches bestätigt, dass die Recheneinrichtung geeignet ist, zu überwachen, dass das Programmmodul die Nutzerdaten nicht kompromittiert und den verschlüsselten Austausch von Daten mit der Datenverschlüsselungsvorrichtung beherrscht, und Verschlüsseln der Nutzerdaten in der Datenverschlüsselungsvorrichtung und Übertragen der Nutzerdaten an die Recheneinrichtung nur bei positiver Prüfung des digitalen Sicherheitszertifikats.
-
Vorteile der Erfindung
-
Die der vorliegenden Erfindung zu Grunde liegende Erkenntnis besteht darin, dass heute für Benutzer nur schwer sicherzustellen ist, dass jeder Dienst den ein Benutzer verwendet seine Daten vertraulich behandelt. Insbesondere muss der Benutzer jedem einzelnen Anbieter eines Dienstes vertrauen.
-
Die der vorliegenden Erfindung zu Grunde liegende Idee besteht nun darin, dieser Erkenntnis Rechnung zu tragen und eine Möglichkeit vorzusehen, bei welcher die Verantwortung für die Sicherheit der Daten des Benutzers nicht mehr bei dem Anbieter des Dienstes liegt. Vielmehr sieht die vorliegende Erfindung eine Infrastruktur vor, welche die sichere Ausführung eines Programmmoduls und den sicheren Datenaustausch zwischen dem Benutzer und dem Programmmodul ermöglicht.
-
Dazu sieht die vorliegende Erfindung ein Datenverarbeitungssystem vor, dass eine speziell abgesicherte Recheneinrichtung aufweist, welche das gewünschte Programmmodul ausführt. Gleichzeitig stellt die Recheneinrichtung sicher, dass das Programmmodul die Nutzerdaten nicht kompromittiert. Unter kompromittieren ist in diesem Zusammenhang zu verstehen, dass die Nutzerdaten auf eine andere Art genutzt oder an andere Empfänger weitergeleitet werden, als dem Benutzer vorher zugesichert wurde. Das Kompromittieren weist also jede andere Art der Datennutzung auf, als dem Benutzer zugesichert.
-
Um dem Benutzer eine Möglichkeit zu bieten, die Recheneinrichtung zu prüfen bzw. sicherzustellen, dass die Recheneinrichtung das Programmmodul daran hindert, die Nutzerdaten abweichend von den entsprechenden Vorgaben zu verwenden, sieht die vorliegende Erfindung ein Sicherheitszertifikat vor. Bei dem Sicherheitszertifikat kann es sich z.B. um ein mit kryptographischen Mitteln gesichertes Zertifikat handeln, welches von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wird.
-
Dabei stellt die Zertifizierungsstelle das Sicherheitszertifikat erst nach einer intensiven Überprüfung der Recheneinrichtung aus.
-
Die vorliegende Erfindung sieht nun eine Datenverschlüsselungsvorrichtung vor, welche das Sicherheitszertifikat für die jeweilige Recheneinrichtung überprüft. Verläuft die Prüfung des Sicherheitszertifikats positiv, nimmt die Datenverschlüsselungsvorrichtung eine verschlüsselte Kommunikation mit der Recheneinrichtung auf und übermittelt dieser die Nutzerdaten in verschlüsselter Form. Die Datenverschlüsselungsvorrichtung empfängt von der Recheneinrichtung auch die Ergebnisse der Berechnungen des Programmmoduls. Diese werden ebenfalls verschlüsselt übertragen.
-
Die vorliegende Erfindung ermöglicht folglich die Ausführung beliebiger unsicherer bzw. ungeprüfter Programmmodule in der einmalig zertifizierten Recheneinrichtung, wobei durch die Recheneinrichtung sichergestellt ist, dass die Nutzerdaten nicht missbraucht werden. Dadurch kann der Benutzer eine Vielzahl von Diensten nutzen, welche von unterschiedlichen Programmmodulen bereitgestellt werden. Dabei muss sich der Benutzer nicht darum sorgen, dass eines der Programmmodule seine Daten missbräuchlich weiterleiten könnte, da dies durch die Recheneinrichtung verhindert wird.
-
Der Benutzer muss folglich lediglich einmalig dem Sicherheitszertifikat der Recheneinrichtung vertrauen. Es kann auch für die Datenverschlüsselungsvorrichtung eine Zertifizierung durchgeführt werden, welche dem Benutzer bestätigt, dass auch die Datenverschlüsselungsvorrichtung seine Daten nicht missbräuchlich verwendet.
-
Vorteilhafte Ausführungsformen und Weiterbildungen ergeben sich aus den Unteransprüchen sowie aus der Beschreibung unter Bezugnahme auf die Figuren.
-
In einer Ausführungsform weist die Recheneinrichtung eine Ein-/Ausgabeschnittstelle auf, welche ausgebildet ist, alle von der Recheneinrichtung an die Datenverschlüsselungsvorrichtung ausgegebenen Daten automatisch zu verschlüsseln und alle von der Datenverschlüsselungsvorrichtung empfangenen Daten zu entschlüsseln. Es wird auf diese Art dem Programmmodul ermöglicht, Daten mit dem Benutzer auszutauschen. Gleichzeitig wird verhindert, dass ein externer Anwender, z.B. ein Angreifer, die Daten nutzen kann, da der den Schlüssel zum Entschlüsseln der Daten nicht besitzt.
-
In einer Ausführungsform weist die Recheneinrichtung eine Verschleierungseinrichtung auf, welche ausgebildet ist, Datenabfragen der Recheneinrichtung aus Speichern und/oder von weiteren Recheneinrichtungen zu verschleiern, insbesondere deren Reihenfolge zu verändern und/oder zufällige Datenabfragen einzufügen. Dadurch wird es möglich sogenannte Seitenkanalangriffe zu verhindern, die darauf beruhen, dass aus dem von außen beobachtbaren Verhalten der Recheneinrichtung auf die Daten bzw. Vorgänge innerhalb der Recheneinrichtung geschlossen werden kann.
-
In einer Ausführungsform bestätigt das Sicherheitszertifikat, dass die Recheneinrichtung geeignet ist, zu überwachen, dass das Programmmodul die Nutzerdaten nicht kompromittiert und den verschlüsselten Austausch von Daten mit der Datenverschlüsselungsvorrichtung beherrscht. Ein solches Zertifikat sichert dem Benutzer sowohl die vertrauliche Verarbeitung als auch die vertrauliche Übertragung seiner Daten zu.
-
In einer Ausführungsform ist die Recheneinrichtung als eine softwarebasierte Recheneinrichtung, insbesondere als eine virtuelle Maschine, ausgebildet, welche auf einem Computersystem ausgeführt wird. Dies ermöglicht es, die Recheneinrichtung auf beliebigen Computersystemen einzusetzen. Beispielsweise kann die Recheneinrichtung auf einem Server, welcher über das Internet erreichbar ist, installiert sein oder die Recheneinrichtung kann lokal auf einem Smartphone oder dergleichen installiert sein.
-
In einer Ausführungsform weist das Computersystem ein Modul für eine vertrauenswürdige Ausführung der softwarebasierten Recheneinrichtung, insbesondere ein Trusted Platform Module nach dem Standard der Trusted Computing Group Spezifikation, auf. Ein solches Modul stellt sicher, dass lediglich eine unveränderte und dem Sicherheitszertifikat entsprechende Version der softwarebasierten Recheneinrichtung ausgeführt wird. Die Ausführung einer modifizierten Version der softwarebasierten Recheneinrichtung unterbindet ein solches Modul.
-
In einer Ausführungsform sind die Recheneinrichtung und die Datenverschlüsselungsvorrichtung ausgebildet, basierend insbesondere auf dem Sicherheitszertifikat und/oder in dem Sicherheitszertifikat enthaltenen Schlüsseln, kryptographische Schlüssel, insbesondere für jede Sitzung erneut, für die verschlüsselte Datenübertragung zu bestimmen. Insbesondere kann für jede Sitzung ein symmetrisches Verschlüsselungsverfahren eingesetzt werden und kryptographische Schlüssel für ein symmetrisches Verschlüsselungsverfahren vereinbart werden. Ein solches symmetrisches Verschlüsselungsverfahren kann sehr effizient umgesetzt werden. Werden temporäre Sitzungsschlüssel generiert, dürfen lediglich Benutzer-spezifische Schlüssel für die Speicherung der Daten verwendet werden. Ansonsten sind die Daten, die in einer Sitzung gespeichert worden sind, in einer anderen Session nicht lesbar.
-
In einer Ausführungsform weist die Recheneinrichtung ein Freigabemodul auf, welches ausgebildet ist, dem ungesicherten Programmmodul den Zugriff auf außerhalb der Recheneinrichtung bereitgestellte Dienste freizugeben. Dadurch wird es möglich, dem Programmmodul gezielt eine Kommunikation mit weiteren Diensten zu ermöglichen. Beispielsweise kann es sein, dass ein Programmmodul, welches einen Navigationsdienst anbietet, Zugriff auf einen weiteren Dienst benötigt, welche Kartendaten bereitstellt.
-
In einer Ausführungsform ist das Freigabemodul ausgebildet, eine Freigabe zu verweigern, wenn ein Sicherheitszertifikat für den außerhalb der Recheneinrichtung bereitgesellten Dienst ungültig ist. Auf diese Weise kann verhindert werden, dass das Programmmodul die Nutzerdaten an einen Dienst übermittelt, welcher nicht die gewünschten Sicherheitskriterien erfüllt.
-
In einer Ausführungsform ist das Freigabemodul ausgebildet, eine Freigabe zu erteilen, wenn der außerhalb der Recheneinrichtung bereitgesellte Dienst auf einem weiteren erfindungsgemäßen Datenverarbeitungssystem bereitgestellt wird. Wird der außerhalb der Recheneinrichtung bereitgesellte Dienst ebenfalls als Programmmodul in einer erfindungsgemäßen Recheneinrichtung bereitgestellt, ist sichergestellt, dass die Nutzerdaten vertraulich behandelt werden.
-
In einer Ausführungsform ist das Freigabemodul ausgebildet, eine Freigabe zu erteilen, wenn der Benutzer sein Einverständnis für die Freigabe erteilt. Dies ermöglicht es dem Benutzer selbst zu entscheiden, ob er seine Nutzerdaten z.B. an einen nicht zertifizierten Dienst übermitteln will.
-
Die obigen Ausgestaltungen und Weiterbildungen lassen sich, sofern sinnvoll, beliebig miteinander kombinieren. Weitere mögliche Ausgestaltungen, Weiterbildungen und Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmalen der Erfindung. Insbesondere wird dabei der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der vorliegenden Erfindung hinzufügen.
-
Kurze Beschreibung der Zeichnungen
-
Die vorliegende Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnungen angegebenen Ausführungsbeispiele näher erläutert. Es zeigen dabei:
-
1 ein Blockschaltbild einer Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems;
-
2 ein Ablaufdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens;
-
3 ein Blockschaltbild einer weiteren Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems; und
-
4 ein Blockschaltbild einer weiteren Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems.
-
In allen Figuren sind gleiche bzw. funktionsgleiche Elemente und Vorrichtungen – sofern nichts Anderes angegeben ist – mit denselben Bezugszeichen versehen worden.
-
Ausführungsformen der Erfindung
-
1 zeigt ein Blockschaltbild einer Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems 1-1.
-
Das Datenverarbeitungssystem 1-1 der 1 weist eine Recheneinrichtung 5-1 auf, welche ausgebildet ist, ein Programmmodul 4-1 auszuführen. Ferner weist die 1 eine Datenverschlüsselungsvorrichtung 6-1 auf, welche ausgebildet ist, der Recheneinrichtung 5-1 Nutzerdaten 2-1 eines Benutzers 3-1 bereitzustellen, wenn ein Sicherheitszertifikat 7-1 der Recheneinrichtung 5-1 positiv geprüft wird, in 1 durch einen steuerbaren Schalter dargestellt. Die Datenverschlüsselungsvorrichtung 6-1 ist folglich für jede Kommunikation bzw. Datenübertragung zwischen dem Benutzer 3-1 und der Recheneinrichtung 5-1 zuständig. Die Datenverschlüsselungsvorrichtung 6-1 verschlüsselt dabei diejenigen Nutzerdaten 2-1, welche an die Recheneinrichtung 5-1 übermittelt werden, und entschlüsselt diejenigen Nutzerdaten 2-1, welche sie von der Recheneinrichtung 5-1 erhält.
-
Die Recheneinrichtung 5-1 und die Datenverschlüsselungsvorrichtung 6-1 können in einer Ausführungsform basierend auf Passwörtern des Benutzers, dem Sicherheitszertifikat 7-1, in dem Sicherheitszertifikat 7-1 enthaltenen Schlüsseln oder dergleichen, kryptographische Schlüssel 12 (siehe 3), insbesondere symmetrische Schlüssel 12, für die verschlüsselte Datenübertragung bestimmen. Dazu kann z.B. eine sog. KDF oder „Key Derivation Function“ genutzt werden. Solche Schlüssel 12 sind dann nur der Recheneinrichtung 5-1 und der Datenverschlüsselungsvorrichtung 6-1 bekannt.
-
Zur Überprüfung des Zertifikats und z.B. zur Bestimmung der kryptographischen Schlüssel 12 kann in der Recheneinrichtung 5-1 und/oder dem Programmmodul 4-1 ein geheimer Schlüssel gespeichert sein, welcher lediglich der Recheneinrichtung 5-1 und/oder dem Programmmodul 4-1 zur Verfügung steht.
-
In einer Ausführungsform kann der kryptographische Schlüssel 12 auf der Client Seite bzw. der Datenverschlüsselungsvorrichtung 6-1 mit Hilfe der Key Derivation Function (KDF) aus einem Benutzerpasswort abgeleitet und dann mit Hilfe eines im Sicherheitszertifikat 7-1 abgelegten Public Key verschlüsselt an das Programmmodul 4-1 kommuniziert werden, welches in der Lage ist diesen zu entschlüsseln und den symmetrischen Schlüssel 12 zu extrahieren.
-
Die Datenverschlüsselungsvorrichtung 6-1 kann ferner anhand des Sicherheitszertifikats 7-1 überprüfen, dass diejenige Recheneinrichtung 5-1, zu welcher die Datenverschlüsselungsvorrichtung 6-1 eine Verbindung aufbaut, auch die in dem Sicherheitszertifikat 7-1 angegebene Recheneinrichtung 5-1 ist. Dazu können z.B. asymmetrische kryptographische Verfahren, z.B. Public-Key-Verfahren, genutzt werden.
-
Die Recheneinrichtung 5-1 stellt dem Programmmodul 4-1 eine eingeschränkte Eingabe- und Ausgabefunktionalität zur Verfügung, sodass dieses die Nutzerdaten 2-1 nicht kompromittiert, also z.B. an einen unbefugten Empfänger übermittelt. Unter dem Begriff kompromittieren ist zu verstehen, dass die Nutzerdaten 2-1 auf eine andere, als der dem Benutzer 3-1 mitgeteilten Art, genutzt werden. Es ist also jede Art der Datenverwendung als Kompromittieren der Nutzerdaten 2-1 zu verstehen, welche ohne Wissen des Benutzers 3-1 bzw. ohne eine Möglichkeit für den Benutzer 3-1, die Verwendung der Daten zu beeinflussen, erfolgt.
-
Das Sicherheitszertifikat 7-1 bestätigt dabei, dass die Recheneinrichtung 5-1 die Überwachung des Programmmoduls 4-1 korrekt durchführt und die nicht autorisierte Weitergabe der Nutzerdaten 2-1 durch das Programmmodul 4-1 verhindert. Das Sicherheitszertifikat 7-1 kann z.B. von einer Zertifizierungsstelle 20 (siehe 3) ausgegeben werden, welcher der Benutzer vertraut. Die Zertifizierungsstelle 20 kann vor der Ausstellung des Sicherheitszertifikats 7-1 z.B. die Hardware- bzw. die Softwarekomponenten der Recheneinrichtung 5-1 untersuchen und auf korrekte Funktionalität überprüfen. Als Zertifizierungsstelle 20 können z.B. vertrauenswürdige Stellen, wie der TÜV oder das Bundesamt für Sicherheit in der Informationstechnologie, auftreten.
-
Es wird dadurch möglich, dass lediglich eine Komponente des Datenverarbeitungssystems 1-1, die Recheneinrichtung 5-1, zertifiziert werden muss, um eine beliebige Anzahl von Programmmodulen 4-1 unter kontrollierten Bedingungen bezüglich der Nutzerdaten 2-1 zu betreiben. Es entfällt damit die Aufwändige Zertifizierung der einzelnen Programmmodule 4-1, da diese ähnlich dem „Sandbox“-Konzept durch die Recheneinrichtung 5-1 von der Außenwelt abgekapselt werden. In einer Ausführungsform kann auch die Datenverschlüsselungsvorrichtung 6-1 zertifiziert werden, sodass für den Benutzer 3-1 ersichtlich wird, dass auch diese seine Nutzerdaten 2-1 nicht kompromittiert.
-
Bei der Zertifizierung wird überprüft und damit durch das Sicherheitszertifikat 7-1 bestätigt, dass alle Ein- und Ausgangsschnittstellen 8-1, 8-2, 17 (siehe 4) die nötigen Schutzmechanismen aufweisen. Ferner kann überprüft werden, ob zusätzliche Schutzmechanismen vorgesehen sind, die die Nutzerdaten 2-1 vor sog. Seitenkanalangriffen schützen. Ferner kann überprüft werden, dass das Programmmodul 4-1 keinen Zugriff auf die Schutzmechanismen hat, um diese z.B. zu umgehen. Schließlich kann durch das Sicherheitszertifikat 7-1 bestätigt werden, dass die Recheneinrichtung 5-1 keine Funktion zur Preisgabe der geheimen Schlüssel 12 aufweist. Dies kann z.B. durch eine Analyse des Quellcodes der Recheneinrichtung 5-1 und der Datenverschlüsselungsvorrichtung 6-1 erfolgen, welche insbesondere zur Begutachtung z.B. durch Benutzer 3-1 offengelegt werden können.
-
Nach der ersten Anfrage an der Recheneinrichtung 5-1 erhält die Datenverschlüsselungsvorrichtung 6-1 einen öffentlichen Schlüssel der Recheneinrichtung 5-1 und das entsprechende Sicherheitszertifikat 7-1, insbesondere kann der öffentliche Schlüssel in dem Sicherheitszertifikat 7-1 enthalten sein. Diese werden genutzt, um z.B. ein Passwort des Benutzers oder einen daraus abgeleiteten Schlüssel 12 zu verschlüsseln und an die Recheneinrichtung 5-1 bzw. das Programmodul 4-1 zu übertragen.
-
Zusätzlich kann die Datenverschlüsselungsvorrichtung 6-1 z.B. durch eine PIN-Nummer vor fremdem Zugriff geschützt werden.
-
Ist die Recheneinrichtung 5-1 als hardwarebasierte Recheneinrichtung 5-1 ausgebildet, können die Implementierungsdetails analysiert und zertifiziert werden. Eine solche hardwarebasierte Recheneinrichtung 5-1 kann nur schwer manipuliert werden. Um die geheimen Schlüssel der Recheneinrichtung 5-1 abzulegen, kann z.B. ein nichtflüchtiger Speicher vorgesehen sein, welcher den geheimen Schlüssel beinhaltet. In einer hardwarebasierte Recheneinrichtung 5-1 kann ferner die Verschlüsselung und Entschlüsselung der Nutzerdaten 2-1 hardwarebasiert direkt an den Schnittstellen erfolgen. Ein übergehen der Verschlüsselung durch Ausnutzen z.B. eines Softwarefehlers oder Exploits wird dadurch verhindert.
-
Die Recheneinrichtung 5-1 kann in einer Ausführungsform als eine softwarebasierte Recheneinrichtung 5-1, z.B. als eine virtuelle Maschine 5-1 oder eine Laufzeitumgebung, ähnlich der JAVA-Laufzeitumgebung oder der .NET-Laufzeitumgebung, ausgebildet sein. Eine solche virtuelle Maschine 5-1 kann z.B. eigene Funktionen und einen eigenen Befehlssatz aufweisen, in welchem die Programmmodule 4-1 geschrieben werden können. In einer solchen Ausführungsform kann der Programmcode der softwarebasierten Recheneinrichtung 5-1 signiert und zertifiziert werden.
-
Wird die Recheneinrichtung 5-1 z.B. in einem Computersystem 10-1, 10-2 (siehe 3 und 4) betrieben, kann auch das Computersystem 10-1, 10-2 bei der Überprüfung durch die Zertifizierungsstelle 20 überprüft werden. Das Sicherheitszertifikat 7-1 gilt in solch einer Ausführungsform für die Kombination aus Computersystem 10-1, 10-2 und Recheneinrichtung 5-1.
-
Die Recheneinrichtung 5-1 kann in einer Ausführungsform ausgebildet sein, alle Nutzerdaten 2-1 zu verschlüsseln, bevor diese die Recheneinrichtung 5-1 verlassen. Die Nutzerdaten 2-1 können also z.B. auch verschlüsselt werden, wenn diese auf einem Festplattenspeicher oder in einem Arbeitsspeicher abgelegt werden. Dadurch kann sichergestellt werden, dass lediglich innerhalb der Recheneinrichtung 5-1 auf die Nutzerdaten 2-1 zugegriffen werden kann.
-
Die Recheneinrichtung 5-1 und die Datenverschlüsselungsvorrichtung 6-1 können in einer Ausführungsform an unterschiedlichen Orten angeordnet sein. Beispielsweise kann die Recheneinrichtung 5-1 auf einem Server angeordnet sein, welcher über das Internet erreichbar ist. Die Datenverschlüsselungsvorrichtung 6-1 kann z.B. bei einem Benutzer 3-1 bzw. an dessen Computer, Smartphone oder dergleichen angeordnet sein.
-
In einer Ausführungsform können die Recheneinrichtung 5-1 und die Datenverschlüsselungsvorrichtung 6-1 aber auch in einem einzelnen System angeordnet sein. Beispielsweise können die Recheneinrichtung 5-1 und die Datenverschlüsselungsvorrichtung 6-1 gemeinsam in einem Smartphone oder dergleichen eines Benutzers 3-1 angeordnet sein und den Ablauf von Anwendungen oder „Apps“ überwachen, die der Benutzer 3-1 installiert.
-
2 zeigt ein Ablaufdiagramm einer Ausführungsform eines erfindungsgemäßen Verfahrens zum sicheren Verarbeiten von Nutzerdaten 2-1–2-3 eines Benutzers 3-1–3-3 in einem ungesicherten Programmmodul 4-1–4-3.
-
Das Verfahren sieht das Ausführen, S1, des Programmmoduls 4-1–4-3 in einer Recheneinrichtung 5-1–5-3 vor. Ferner wird in der Recheneinrichtung 5-1–5-3 überwacht, S2, dass das Programmmodul 4-1–4-3 die Nutzerdaten 2-1–2-3 nicht kompromittiert.
-
Das Verfahren sieht ferner das Prüfen, S3, eines digitalen Sicherheitszertifikats 7-1–7-2 der Recheneinrichtung 5-1–5-3 vor, welches bestätigt, dass die Recheneinrichtung 5-1–5-3 geeignet ist, zu überwachen, dass das Programmmodul 4-1–4-3 die Nutzerdaten 2-1–2-3 nicht kompromittiert und den verschlüsselten Austausch von Daten mit der Datenverschlüsselungsvorrichtung 6-1–6-3 beherrscht. Dies kann, in der Datenverschlüsselungsvorrichtung 6-1–6-3 selbst erfolgen.
-
Schließlich werden nur bei positiver Prüfung des digitalen Sicherheitszertifikats 7-1–7-2 die Nutzerdaten 2-1–2-3 in der Datenverschlüsselungsvorrichtung 6-1–6-3 verschlüsselt an die Recheneinrichtung 5-1–5-3 übertragen, S4.
-
In einer Ausführungsform werden zur Sicherung der Nutzerdaten 2-1–2-3 alle von der Recheneinrichtung 5-1–5-3 an die Datenverschlüsselungsvorrichtung 6-1–6-3 ausgegebenen Daten verschlüsselt und alle von der Datenverschlüsselungsvorrichtung 6-1–6-3 an die Recheneinrichtung 5-1–5-3 gesendeten Daten verschlüsselt.
-
Zur Übertragung der Daten können dabei, basierend z.B. auf einem Passwort des Benutzers 3-1–3-3, dem Sicherheitszertifikat 7-1–7-2, oder dergleichen kryptographische Schlüssel 12, insbesondere für jede Sitzung erneut, für die verschlüsselte Datenübertragung zwischen der Recheneinrichtung 5-1–5-3 und der Datenverschlüsselungsvorrichtung 6-1–6-3 bestimmt werden.
-
Zur Vermeidung von Seitenkanalangriffen können Datenabfragen der Recheneinrichtung 5-1–5-3 aus Speichern 15 und/oder von weiteren Recheneinrichtungen, insbesondere durch Verändern der Reihenfolge der Datenabfragen und/oder Einfügen zufälliger Datenabfragen verschleiert werden.
-
In einer Ausführungsform kann die Recheneinrichtung 5-1–5-3 als eine softwarebasierte Recheneinrichtung 5-1–5-3, insbesondere als eine virtuelle Maschine, auf einem Computersystem 10-1, 10-2 ausgeführt werden. Dabei kann in dem Computersystem 10-1, 10-2 mittels eines Moduls 11 für eine vertrauenswürdige Ausführung der softwarebasierten Recheneinrichtung 5-1–5-3, insbesondere ein Trusted Platform Module nach dem Standard der Trusted Computing Group Spezifikation, überwacht werden, dass die softwarebasierte Recheneinrichtung 5-1–5-3 dem Sicherheitszertifikat 7-1–7-2 entspricht.
-
In einer Ausführungsform wird dem ungesicherten Programmmodul 4-1–4-3 ein Zugriff auf außerhalb der Recheneinrichtung 5-1–5-3 bereitgestellte Dienste 14-1–14-n verweigert, wenn ein Sicherheitszertifikat 7-1–7-2 für den jeweiligen außerhalb der Recheneinrichtung 5-1–5-3 bereitgesellten Dienst 14-1–14-n ungültig ist. Dem ungesicherten Programmmodul 4-1–4-3 kann ferner ein Zugriff auf außerhalb der Recheneinrichtung 5-1–5-3 bereitgestellte Dienste 14-1–14-n erteilt werden, wenn der außerhalb der Recheneinrichtung 5-1–5-3 bereitgestellte Dienst 14-1–14-n nach dem erfindungsgemäßen Verfahren abgesichert wird. Schließlich kann dem ungesicherten Programmmodul 4-1–4-3 ein Zugriff auf außerhalb der Recheneinrichtung 5-1–5-3 bereitgestellte Dienste 14-1–14-n erteilt werden, wenn der Benutzer 3-1–3-3 sein Einverständnis für die Freigabe erteilt.
-
3 zeigt ein Blockschaltbild einer weiteren Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems 1-2.
-
Das Datenverarbeitungssystems 1-2 der 3 basiert auf dem Datenverarbeitungssystems 1-1 der 1 und unterscheidet sich von diesem dahingehend, dass die Recheneinrichtung 5-2, die das Programmmodul 4-2 ausführt, in einem Computersystem 10-1 angeordnet ist, welches neben der Recheneinrichtung 5-2 einen Prozessor 16-1 aufweist, der für die Kommunikation zwischen der Recheneinrichtung 5-2 und der Datenverschlüsselungsvorrichtung 6-2 zuständig ist. Dabei übernimmt der Prozessor 16-1 aber keine Verschlüsselungsaufgaben. Wie in 3 zu erkennen ist, wird der gleiche Schlüssel 12 zwischen der Datenverschlüsselungsvorrichtung 6-2 und dem Prozessor 16-1 verwendet, wie zwischen dem Prozessor 16-1 und der Recheneinrichtung 5-2. Die Nutzerdaten 2-2 werden also durch den Prozessor 16-1 lediglich weitergeleitet.
-
In 3 ebenfalls dargestellt ist die Zertifizierungsstelle 20, welcher der Benutzer r direkt vertrauen muss, was durch einen gestrichelten Pfeil von dem Benutzer 3-2 zu der Zertifizierungsstelle 20 dargestellt ist. Dem Computersystem 10-1 muss der Benutzer dagegen indirekt über das Sicherheitszertifikat 7-2, welches von der Zertifizierungsstelle 20 für das Computersystem 10-1 ausgestellt wird, vertrauen, was ebenfalls durch einen gestrichelten Pfeil dargestellt ist.
-
Durch die Abschottung des Programmmoduls 4-2 in dem Computersystem 10-1 und die ausschließlich verschlüsselt stattfindende Übertragung der Nutzerdaten 2-2 kann ein Angreifer 18 keinen Zugriff auf die Nutzerdaten 2-2 erlangen.
-
4 zeigt ein Blockschaltbild einer weiteren Ausführungsform eines erfindungsgemäßen Datenverarbeitungssystems 1-3.
-
Das Datenverarbeitungssystems 1-3 der 4 basiert auf dem Datenverarbeitungssystems 1-2 der 3 und unterscheidet sich von diesem in der Ausgestaltung des Computersystems 10-2 bzw. der Recheneinrichtung 5-3.
-
In 4 ist ein Benutzer 3-3 dargestellt, der eine Datenverschlüsselungsvorrichtung 6-3 nutzt, um mit dem Computersystem 10-2 zu kommunizieren. Das Computersystem 10-2 weist neben der Recheneinrichtung 5-3 einen Prozessor 16-2, welcher über eine Eingabeschnittstelle 8-2 und eine Ausgabeschnittstelle 8-1 mit der Recheneinrichtung 5-3 gekoppelt ist, auf, welcher z.B. die Kommunikationsaufgaben in dem Computersystem 10-2 übernehmen kann. Das Computersystem 10-2 weist ferner einen Speicher 15 auf, welcher ebenfalls über eine Eingabeschnittstelle 8-2 und eine Ausgabeschnittstelle 8-1 mit der Recheneinrichtung 5-3 gekoppelt ist. Der Prozessor 16-2 ist ebenfalls mit dem Speicher 15 gekoppelt und kann in diesem z.B. Daten ablegen.
-
Das Computersystem 10-2 weist ferner ein Modul 11 für eine vertrauenswürdige Ausführung der softwarebasierten Recheneinrichtung 5-3 auf. Solch ein Modul 11 kann z.B. eine kryptographische Signatur der Recheneinrichtung 5-3 prüfen und deren Ausführung in dem Computersystem 10-2 verhindern, wenn die Überprüfung der kryptographischen Signatur fehlschlägt. Auf diese Weise kann sichergestellt werden, dass die Recheneinrichtung 5-3 z.B. nicht ausgetauscht bzw. nicht manipuliert wird. Das Modul 11 kann in einer Ausführungsform als ein Trusted Platform Module nach dem Standard der Trusted Computing Group Spezifikation ausgebildet sein.
-
Die Recheneinrichtung 5-3 weist neben dem Programmmodul 4-3 und den Eingabeschnittstellen 8-2 bzw. den Ausgabeschnittstellen 8-1 ferner ein Freigabemodul 13 und eine Schnittstelle 17 zu weiteren Diensten 14-1–14-n auf. Über die Schnittstelle 17 kann die Recheneinrichtung 5-3 Daten mit den weiteren Diensten 14-1–14-n austauschen. Diese Dienste können dabei beliebige Dienste 14-1–14-n sein, welche dem Programmmodul 4-3 zu dessen Ablauf benötigte Daten bereitstellen können.
-
Beispielsweise kann das Programmmodul 4-3 ein Navigationsprogramm 4-3 sein, welches eine Route zu einem Ziel bestimmt. Um dem Benutzer 3-3 diese Route anzeigen zu können, benötigt das Navigationsprogramm 4-3 z.B. topographische Kartendaten. Diese kann das Navigationsprogramm 4-3 in einer Ausführungsform z.B. über einen der weiteren Dienste 14-1–14-n beziehen.
-
Das Freigabemodul 13 gibt den Zugriff auf die weiteren Dienste 14-1–14-n aber lediglich unter vorgegebenen Bedingungen frei. Beispielsweise kann das Freigabemodul 13 den Zugriff freigeben, wenn der jeweilige Dienst 14-1–14-n ebenfalls in einem erfindungsgemäßen Computersystem 10-1, 10-2 ausgeführt wird. Alternativ kann das Freigabemodul 13 eine Freigabeerlaubnis des Benutzers 3-3 abfragen und den Zugriff auf den jeweiligen Dienst 14-1–14-n basierend auf der Freigabeerlaubnis freigeben.
-
Das Freigabemodul 13 kann ferner ausgebildet sein, ein Zertifikat des jeweiligen Dienstes 14-1–14-n zu prüfen und den Zugriff auf den jeweiligen Dienst 14-1–14-n unterbinden, wenn das Zertifikat ungültig ist.
-
Durch das Freigabemodul 13 kann dem Programmmodul 4-3 der kontrollierte Zugriff auf weitere Dienste 14-1–14-n ermöglicht werden, ohne dass die Sicherheit der Nutzerdaten 2-3 gefährdet würde.
-
Die Recheneinrichtung 5-3 weist ferner einen Schlüsselspeicher 19 auf, der mit den Ausgabeschnittstellen 8-2 gekoppelt ist. Dies verdeutlicht, dass lediglich verschlüsselte Informationen aus der Recheneinrichtung 5-3 ausgegeben werden, welche basierend auf den in dem Schlüsselspeicher 19 abgelegten geheimen kryptographischen Schlüsseln 12 automatisch verschlüsselt werden können. Dem Programmmodul 4-3 ist es dadurch nicht möglich, unverschlüsselte Nutzerdaten 2-3 auszugeben.
-
Die Recheneinrichtung 5-3 weist ferner eine Verschleierungseinrichtung 9 auf, welche die Nutzerdaten 2-3 vor sog. Seitenkanalangriffen schützt. Dazu kann die Verschleierungseinrichtung 9 Datenabfragen der Recheneinrichtung 5-3 aus Speichern 15 und/oder von den weiteren Diensten 14-1–14-n z.B. verschleiern, indem sie deren Reihenfolge verändert oder zufällige Datenabfragen einfügt. Ist das Programmmodul 4-3, wie oben bereits beschrieben, als Navigationsprogramm ausgebildet, kann die Verschleierungseinrichtung 9 die Anfragen nach topographischen Daten z.B. umkehren, also z.B. vom Ziel zum Start abfragen. Auf diese Weise wird ein Beobachter der Anfragen nach topographischen Daten über das eigentliche Ziel getäuscht. Zusätzlich oder alternativ kann die Verschleierungseinrichtung 9 unter die Anfragen nach topographischen Daten noch weitere Anfragen nach topographischen Daten mischen, welche aber nicht der eigentlichen Route entsprechen. Diese zusätzlichen Daten können dabei zufällig verteilt sein oder gezielt ein falsches Ziel bzw. eine falsche Position des Benutzers 3-3 vortäuschen. Auf diese Weise kann nicht nur verhindert werden, dass ein Beobachter aus den abgefragten Daten auf die Nutzerdaten 2-3 schließen kann. Es kann auch verhindert werden, dass das Programmmodul 4-3 durch eine gezielte Gestaltung der Datenabfragen die Nutzerdaten 2-3 kompromittiert.
-
Durch die Verschleierungseinrichtung 9 können ferner zusätzliche Rechenoperationen oder dergleichen in den Ablauf des Programmmoduls 4-3 eingeschleust werden, um Seitenkanalangriffe zu verhindern, die z.B. auf einer Strommessung, einer Leistungsmessung, einer Laufzeitmessung oder dergleichen beruhen. Weitere Maßnahmen durch die Verschleierungseinrichtung 9 sind ebenfalls möglich.
-
Obwohl die vorliegende Erfindung anhand bevorzugter Ausführungsbeispiele vorstehend beschrieben wurde, ist sie darauf nicht beschränkt, sondern auf vielfältige Art und Weise modifizierbar. Insbesondere lässt sich die Erfindung in mannigfaltiger Weise verändern oder modifizieren, ohne vom Kern der Erfindung abzuweichen.