-
Die
Erfindung betrifft ein Verfahren und ein System zur Sicherung von
Datenobjekten.
-
Aufgrund
der zunehmenden Vernetzung von Computern und Kommunikationsgeräten hat
das Bedürfnis
nach Sicherheit in diesen Systemen in den letzten Jahren immer weiter
zugenommen. Daher haben sich verschiedene Firmen in der Trusted
Computing Group (TCG) zusammengeschlossen, um einen einheitlichen
Industriestandard zum Aufbau einer Trusted Platform zu entwickeln.
-
Zentrales
Element einer Trusted Platform ist das Trusted Platform Module (TPM),
ein zusätzlicher Computer-Sicherheitschip auf
der Hauptplatine beispielsweise eines Computers, der die elementaren Computer-Sicherheitsmechanismen
bereitstellt. Das Trusted Platform Modul hat zusammen mit dem Trusted
Software Stack (TSS) und der Core Root of Trust for Measurement
(CRTM) die Aufgabe, für
den mit anderen Systemen verbundenen, am Internet angeschlossenen
Computer einen nachweisbar vertrauenswürdigen Zustand zu gewährleisten.
Dazu muss der Computer bereits bei seiner Herstellung vertrauenswürdig sein.
Alle nachfolgenden Benutzer- und Programmaktionen müssen so
ausgeführt
werden, dass diese Vertrauenswürdigkeit über die
gesamte Betriebsdauer des Systems erhalten bleibt.
-
Um
diese Sicherheit zu gewährleisten
wird gemäß der Trusted
Computing Group Spezifikation ein generischer Ansatz verfolgt, um
das System beginnend von der untersten Ebene in einer ununterbrochenen
Sicherheitskette (Chain of Trust) bis zu den Applikationen aufzubauen.
Das Trusted Platform Module als zertifizierten Hardware-Sicherheitsbaustein
eines vertrauenswürdigen
Herstellers wird dabei a priori vertraut. Sobald jeweils die untere
Ebene über
eine stabile Sicherheitsreferenz verfügt, kann sich die nächste Ebene
darauf abstützen.
Jede dieser Ebenen baut auf der vorhergehenden auf und erwartet
damit, dass im Gesamtsystem jede Transaktion, interne Verbindung
und Geräteanbindung
vertrauenswürdig,
zuverlässig,
sicher und geschützt
ist. Das Trusted Platform Module als Hardware-Sicherheitsreferenz
stellt dabei die Wurzel (Root of Trust) der gesamten Sicherheitskette
dar. Zu Beginn wird bereits überprüft, ob sich
die Signatur und damit die Konstellation der Plattformkomponenten
verändert hat,
das heißt
ob eine der Komponenten beispielsweise Plattenspeicher, LAN-Anschluss usw. verändert wurde,
oder gar entfernt oder ersetzt wurde. Ähnliche Überprüfungsmechanismen verifizieren dann
mit Hilfe des Trusted Platform Module nacheinander beispielsweise
die Korrektheit des Bios, des Bootblocks und des Booten selbst,
sowie die jeweils nächst
höheren
Schichten beim Starten des Betriebssystems. Während des gesamten Startvorgangs
und auch später
ist damit der Sicherheits- und Vertrauenszustand des Systems über das
Trusted Platform Module abfragbar.
-
Eine
weitere Funktionalität,
die durch das Trusted Platform Module bereitgestellt wird, ist das sichere
Abspeichern von Datenobjekten. Das besondere hierbei ist, dass die
zu sichernden Daten in Abhängigkeit
von Zustandsabbildern der aktuellen Konfiguration von Soft- und
Hardware versiegelt werden (Sealing). Hierzu wird beispielsweise
ein Schlüssel zur
Verschlüsselung
der Daten auf Basis eines Storage Root Key (SRK) und eines Platform
Configuration Register (PCR) abgeleitet.
-
Jedes
Trusted Platform Module enthält
einen eindeutigen Storage Root Key (SRK). Der SRK dient zur Ableitung
weiterer Schlüssel,
so dass eine Schlüsselbaumstruktur
entsteht. Die Blätter
dieses Baumes werden zur Verschlüsselung
von Daten herangezogen. Der SRK wird erzeugt, sobald die Plattform
durch ihren Eigentümer
in Besitz genommen wird. Die Platform Configuration Register (PCR)
dienen zur Unterscheidung von Systemzuständen. Hierzu werden beispielsweise
Hashwerte in Abhängigkeit der
aktuellen Konfiguration von laufender Soft- und Hardware berechnet und diese in
einem PCR gespeichert.
-
Folglich
können
die verschlüsselten
Daten nur entschlüsselt
werden, wenn sich das System im selben Zustand wie bei der Verschlüsselung
befindet. Hat sich die Konfiguration von Soft- und Hardware seit
der Verschlüsselung
der Daten verändert,
stehen im PCR nicht mehr dieselben Werte wie bei der Verschlüsselung
zur Verfügung.
Demzufolge kann der Schlüssel
zur Entschlüsselung
der verschlüsselten Daten
durch das System in diesem Fall nicht mehr abgeleitet werden.
-
Probleme
treten hierbei auf, wenn verschiedene Applikationen auf das geschützte Datenobjekt zugreifen
wollen. Beispielsweise wird das Datenobjekt durch die Applikation
A bearbeitet und mit einem Schlüssel
SKA versiegelt, der aus dem der Applikation A zugrunde liegenden
Betriebszustand abgeleitet wurde. Gleichzeitig oder später möchte die
Applikation B auf das versiegelte Datenobjekt zugreifen, da es aber
nicht den in der Applikation A entstandenen Schlüssel SKA generieren kann, sondern
nur einen Schlüssel
SKB, welcher aus dem der Applikation B zugrunde liegenden Betriebszustand
abgeleitet wird, kann das versiegelte Datenobjekt durch die Applikation
B nicht entschlüsselt
werden.
-
Bisher
wird dieses Problem gelöst,
indem das zu schützende
Datenobjekt von der Applikation A nicht nur mit dem Schlüssel SKA,
sondern auch mit den Schlüsseln
SKB, SKC ... verschlüsselt
wird, je nachdem welchen Applikationen sonst noch Zugriff auf das
zu schützende
Datenobjekt gewährt
werden soll. Dies hat jedoch zum einen den Nachteil, dass ein zu
schützendes
Datenobjekt mehrmals parallel abgespeichert werden muss, abhängig davon
welchen anderen Applikationen man noch Zugriff auf das Datenobjekt
erlauben möchte.
Zum anderen hat das Verfahren den Nachteil, dass bei einem gleichzeitigen
oder nacheinander erfolgenden Zugriff auf das Datenobjekt durch
verschiedene Applikationen Synchronisationsprobleme auftreten.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren anzugeben,
bei dem die Sicherheitsvorteile eines an den Systemzustand gebundenen
Datenobjektes erhalten bleiben und gleichzeitig die beschriebenen
Speicherbedarfs- und Synchronisationsprobleme behoben werden.
-
Erfindungsgemäß wird diese
Aufgabe durch ein Verfahren und ein System mit den Merkmalen der Ansprüche 1 und
9 gelöst.
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Erfindungsgemäß werden
in einem Verfahren zur Sicherung von Datenobjekten die Datenobjekte
durch einen ersten Schlüssel
verschlüsselt.
Es wird zumindest ein zweiter Schlüssel bereitgestellt, der zumindest
einer Applikation auf einer Datenverarbeitungsvorrichtung zugeordnet
ist. Der zweite Schlüssel
wird abhängig
von die Applikation und die Datenverarbeitungsvorrichtung kennzeichnenden Parametern
ermittelt. Der erste Schlüssel
wird durch den zweiten Schlüssel
verschlüsselt.
Dieses Verfahren hat den Vorteil, dass ein zu sicherndes Datenobjekt
durch einen Schlüssel
verschlüsselt
wird, so dass mehrere Applikationen auch gleichzeitig auf das Datenobjekt
zugreifen können.
Zudem wird der erste Schlüssel
zur Verschlüsselung
des Datenobjekts durch die einzelnen Applikationen versiegelt, so
dass der Vorteil eines an den jeweiligen Systemzustand gebundenen
Datenobjekts weiterhin bestehen bleibt.
-
Gemäß einer
vorteilhaften Ausgestaltung der vorliegenden Erfindung wird zumindest
ein die Applikation und/oder die Datenverarbeitungsvorrichtung kennzeichnender
Parameter geändert.
Ein dritter Schlüssel
wird mit Hilfe der geänderten
die Applikation und die Datenverarbeitungsvorrichtung kennzeichnenden
Parameter ermittelt. Schließlich
wird der erste Schlüssel
durch den dritten Schlüssel
verschlüsselt.
Dies hat die vorteilhafte Wirkung, dass bei einer Änderung
des Systems, beispielsweise durch ein Softwareupdate oder den Aus tausch
eines Gerätetreibers,
ein erneutes Versiegeln (Resealing) mit einem erheblich reduzierten
Rechenaufwand und Speicherplatzbedarf vorgenommen wird, da lediglich die
betreffenden Schlüssel
zur Verschlüsselung
des ersten Schlüssels
modifiziert werden und der erste Schlüssel mit diesem neuen Schlüssel umgeschlüsselt wird.
Die verschlüsselten
Datenobjekte hingegen bleiben in dieser Ausgestaltung der Erfindung
unverändert.
-
Gemäß einer
Weiterbildung der vorliegenden Erfindung werden die verschlüsselten
Datenobjekte in einem vorgebbaren Speicherbereich eines Betriebssystems
gespeichert. Somit wird in vorteilhafter Weise eine geschützter Kanal
in Form eines Speicherbereiches in dem Betriebssystem geschaffen, über den
Prozesse kommunizieren können
(Interprocess Communication).
-
Gemäß einer
weiteren Ausgestaltung der vorliegenden Erfindung ist durch einen
berechtigten Benutzer vorgebbar, welche Datenobjekte durch den ersten
Schlüssel
verschlüsselt
werden. Dies hat die vorteilhafte Wirkung, dass beispielsweise eine
Gruppe von Applikationen vorgegeben werden kann, wie beispielsweise
Office Applikationen, die über
den gemeinsamen ersten Schlüssel
auf die vorgegebenen Datenobjekte zugreifen können, während anderen Applikationen
dieser Zugriff weiterhin verwehrt bleibt.
-
Gemäß dem erfindungsgemäßen System zur
Sicherung von Datenobjekten weist das System ein Trusted Platform
Module auf, mit dem folgende Schritte ausführbar sind: Die Datenobjekte
werden durch einen ersten Schlüssel
verschlüsselt.
Zumindest ein zweiter Schlüssel
wird bereitgestellt, der zumindest einer Applikation auf einer Datenverarbeitungsvorrichtung
zugeordnet ist. Der zweite Schlüssel
wird abhängig
von die Applikation und die Datenverarbeitungsvorrichtung kennzeichnenden
Parametern ermittelt. Der erste Schlüssel wird durch den zweiten
Schlüssel
verschlüsselt.
-
Die
vorliegende Erfindung wird nachfolgend an Ausführungsbeispielen anhand der
Zeichnungen näher
erläutert.
Es zeigen
-
1 in
einer schematischen Darstellung den Zugriff zweier Applikationen
auf ein verschlüsseltes
Datenobjekt mit einem an die jeweilige Applikation gebundenen Schlüssel,
-
2 in
einer schematischen Darstellung den Ablauf zur Abbildung eines Systemzustandes
in einem Trusted Platform Module.
-
1 zeigt
ein mit einem gemeinsamen Schlüssel
verschlüsseltes
Datenobjekt 101. Eine erste Applikation A 103 und
eine zweite Applikation B 105 greifen entweder gleichzeitig
oder zeitlich aufeinander folgend auf das verschlüsselte Datenobjekt 101 zu.
Um die Vorteile der Trusted Computing Group Specification zur Sicherung
von Datenobjekten aufrechtzuerhalten, ist der gemeinsame Schlüssel zusätzlich verschlüsselt, so
dass er einmal an den Systemzustand der Applikation A 103 und
einmal an den Systemzustand der Applikation B 105 gebunden ist.
Die Applikation A 103 greift nun beispielsweise auf das
Datenobjekt 101 zu, indem sie mithilfe eines Storage Root
Key und der im Platform Configuration Register gespeicherten Informationen
einen Schlüssel
zur Entschlüsselung
des gemeinsamen Schlüssels
ableitet und mit diesem Schlüssel
zunächst
den gemeinsamen Schlüssel
entschlüsselt.
Anschließend
wird mit Hilfe des entschlüsselten
gemeinsamen Schlüssels
das Datenobjekt 101 entschlüsselt. Die Applikation B 105 benutzt
zur Entschlüsselung des
Datenobjekts 101 den gleichen gemeinsamen Schlüssel, jedoch
leitet die Applikation aus dem Storage Root Key und den für ihren
Zustand im Platform Configuration Register gespeicherten Werten
einen weiteren Schlüssel
zur Entschlüsselung
des gemeinsamen Schlüssel
ab. Gemäß diesem
Ausführungsbeispiel
ist also lediglich ein verschlüsseltes
Datenobjekt 101 vorhanden, während der gemeinsame Schlüssel zur
Entschlüsselung
dieses Datenobjekts in Abhängigkeit
von der zugriffsberechtigten Applikation jeweils unterschied lich
verschlüsselt
ist und somit an den jeweiligen Systemzustand gebunden ist.
-
Die 2 zeigt
in einer schematischen Darstellung den Ablauf bei der Ermittlung
von Systemzuständen
durch das Trusted Platform Module 201. In diesem Ausführungsbeispiel
werden durch das Bios 202 Werte aus den ROMs 206 gemessen 204 und Werte
aus dem Operation System Loader 207 gemessen 205.
Die gemessenen Werte werden von dem Bios an das Trusted Platform
Module 201 übermittelt 203.
Der Operation System Loader 207 wiederum misst Werte 209 aus
dem Operation System 210 und übermittelt diese 208 an
das Trusted Platform Module 201. Das Operation System 210 wiederum
misst Werte 211 aus den einzelnen Applikation 212 und übermittelt
die gemessenen Werte 213 an das Trusted Platform Module 201.
Somit wird durch das Trusted Platform Module 201 für jede Applikation 212 ein
anderer Satz von Systemzustandswerten ermittelt, weshalb der gemeinsame
Schlüssel
zur Entschlüsselung
des Datenobjekts von einer Applikation nur dann ermittelt werden
kann, wenn sich die Konfiguration von Hard- und Software zu diesem
Zeitpunkt nicht geändert
hat.
-
In
einem weitern möglichen
Anwendungsbeispiel der vorliegenden Erfindung greifen zwei oder mehr
Applikationen gleichzeitig auf ein Datenobjekt zu. Für jede der
Applikationen wurde ein unterschiedlicher Systemzustand in dem Platform
Configuration Register gespeichert. In diesem Fall können sich
die Applikationen die Datenobjekte teilen, indem sie auf einem gemeinsamen
versiegelten Speicherbereich arbeiten oder über eine Interprocess Communication,
bei der auf Betriebssystemebene ein versiegelter Speicherbereich
als Kanal zur Kommunikation zwischen den Prozessen bereitgestellt
wird.
-
In
eine weitern Anwendungsbeispiel der vorliegenden Erfindung können mehrere
Applikationen auf ein Datenobjekt zugreifen, für die jeweils ein unterschiedlicher
Systemzustand im Platform Configuration Register hinterlegt ist.
Ist zumindest ein Teil dieser Applikationen nicht aktiv, während die
anderen aktiv sind, kann ein durch die unterschiedlichen Systemzustände versiegelter
Speicherbereich zum Austausch beziehungsweise zum Bearbeiten von
Datenobjekten dienen.
-
Gemäß einem
weiteren Anwendungsbeispiel der vorliegenden Erfindung sind für eine Applikation mehrere
Systemzustände
im Platform Configuration Register hinterlegt. Dies ist beispielsweise
der Fall, wenn eine Applikation mit unterschiedlichen Plugins erweiterbar
ist und für
jede dieser Erweiterungen jeweils ein Systemzustand im Platform
Configuration Register hinterlegt wird. Auch in diesem Fall können die
Datenobjekte mit einem gemeinsamen Schlüssel verschlüsselt werden,
wobei der gemeinsame Schlüssel
durch die jeweiligen Systemzustände
versiegelt gespeichert wird.
-
Eine
weitere interessante Anwendungsmöglichkeit
der vorliegenden Erfindung ergibt sich beispielsweise bei Dual Boot
Systemen, wenn das System über
zwei oder mehr Betriebssysteme verfügt. In diesem Szenario kann
es erforderlich sein, dass die einzelnen Betriebssysteme auf gemeinsame
Konfigurationsdateien zugreifen müssen. Auch hierbei ist es vorteilhaft,
diese Konfigurationsdateien mit einem gemeinsamen Schlüssel zu
sichern und den gemeinsamen Schlüssel
durch das jeweilige Betriebssystem zu versiegeln.
-
Weiterhin
kann das erfindungsgemäße Verfahren
zum sicheren Austausch von Daten auf Betriebssystemebene, sowie
zur gesicherten Interprocess Communication, beispielsweise bei Anwendungen
oder Protokollen, herangezogen werden.
-
Zur
Verteilung des gemeinsamen Schlüssels an
die einzelnen Applikationen bestehen mehrere Möglichkeiten. Beispielsweise
sind die betroffenen Applikationen gleichzeitig aktiv, so dass der
gemeinsame Schlüssel über andere
sichere Kommunikationsprotokolle, wie beispielsweise RPC oder RNI, ausgetauscht
wird. Eine andere Möglichkeit
ist eine dritte Partei vorzusehen, welche den gemeinsamen Schlüssel an
die einzelnen Applikationen verteilt. Weiterhin ist es möglich, dass
eine Applikation den gemeinsamen Schlüssel erzeugt oder übernimmt und
diesen gemeinsamen Schlüssel
mit dem eigenen Systemzustand versiegelt und zusätzlich mit den Systemzuständen der
anderen betroffenen Applikationen versiegelt.
-
Die
vorliegende Erfindung ist nicht auf die hier beschriebenen Ausführungsbeispiele
beschränkt.