Beschreibung
Verfahren für das Konfigurieren eines Sicherheitsmoduls mit mindestens einem abgeleiteten Schlüssel
Moderne Datenverarbeitungsanlagen benötigen für kryptographi- sche Operationen wie Verschlüsselung von Daten oder Authenti- fizierung von Systemen oder ( Software- ) Modulen untereinander sogenannte Vertrauensanker (Trust Anchor) . Ein Trust Anchor oder Trust Point bildet die Basis für den Schutz von Geräten, z.B. IOT-Geräte oder Feldgeräte bzw. Datenverarbeitungsanla gen wie beispielsweise Embedded Systemen oder Steuerrechnern. Mittels eines Trust Anchors kann das Vertrauen in das unkom- promittierte Funktionieren der Datenverarbeitungsanlage beim Systemstart und/oder während des laufenden Betriebs gewähr leistet werden. Ein Trust Anchor kann einen kryptographischen Schlüssel umfassen, der beispielsweise für einen sicheren Boot-Vorgang oder für die Authentisierung der Datenverarbei tungsanlage oder für das Nutzen einer Schlüsseldatei der Da tenverarbeitungsanlage oder für das Bestätigen eines Be triebszustands der Datenverarbeitungsanlage oder für das Überprüfen einer Aktualisierungsdatei (Firmware Update) ver wendbar ist. Die Bezeichnung "Anchor" (deutsch: Anker) rührt daher, dass Sicherheits- oder Vertrauensstellungskonzepte der Datenverarbeitungsanlagen den Trust Anchor als Basis nutzen und dabei vorausgesetzt wird bzw. werden muss, dass der Trust Anchor selbst sicher und unkompromittiert ist.
Ein bekannter Trust Anchor ist beispielsweise das durch
ISO/IEC 11889 im Jahre 2009 spezifizierte Trusted Platform Module (TPM) , das in jedem modernen PC vorhanden ist und von modernen Betriebssystemen für bestimmte kryptographische Ope rationen zwingend vorausgesetzt wird. Beispielsweise fußt die Festplattenverschlüsselung "BitLocker" des weitverbreiteten Betriebssystems "Windows" auf einem TPM. Es sind jedoch viel fältige andere Realisierungen eines Trust Anchors denkbar, beispielsweise ein Kryptocontroller, ein Authentisierungsbau-
stein oder ein in eine CPU integriertes Sicherheitselement (Secure Element) .
Es ist möglich, ein Sicherheitsmodul mit n>2 Schlüsseln zu betreiben. Es kann iterativ für alle l<i<n ein Schlüssel der Generation i aus dem Schlüssel der Generation i-1 abgeleitet und in einem Speicherabschnitt i gespeichert werden. Es kön nen damit nach Klassen geordnete kryptographische Operationen durchgeführt werden, wobei kryptographische Operationen der k-ten Klasse mit dem im k-ten Speicherabschnitt gespeicherten Schlüssel durchgeführt werden, wobei l<k<n.
Von gespeicherten Schlüsseln können weitere Schlüssel abge leitet werden, z.B. mittels einer Schlüsselableitungsfunktion (Key Derivation Function, KDF) . Die Ableitung von Schlüsseln basiert auf statischen Eigenschaften. Beispielsweise erfolgt eine Schlüsselableitung in Abhängigkeit einer Software- Binärdatei, festen Labels in einem Dateisystem, oder hartco dierten Ableitungswerten in einer Firmware. Erlangt ein An greifer die Kontrolle über einen Teil des Systems, z.B. durch Ausnutzen einer Softwareschwachstelle, sind die abgeleiteten Schlüssel nicht ausreichend geschützt. Insbesondere können die von anderen Softwarekomponenten verwendeten Schlüssel zu jedem Zeitpunkt durch einen Angreifer rekonstruiert (abgelei tet) werden.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren für die Handhabung von Schlüsseln anzugeben, wel ches gegenüber dem eingangs Genannten einen verbesserten Schutz gegen Angreifer aufweist.
Es ist Aufgabe der vorliegenden Erfindung, Verfahren und Vor- bzw. Einrichtungen bzw. Geräte mit gegenüber dem oben genann ten Stand der Technik zu verbessern.
Die Aufgabe wird durch die in den unabhängigen Ansprüchen an gegebenen Merkmale gelöst. In den abhängigen Ansprüchen sind vorteilhafte Weiterbildungen der Erfindung dargestellt.
Die Erfindung beansprucht ein Verfahren für das Konfigurieren eines Sicherheitsmoduls mit mindestens einem abgeleiteten Schlüssel, aufweisend folgende Schritte:
- Bereitstellen eines Schlüssels;
- Ableiten eines weiteren Schlüssels aus dem bereitgestellten oder aus einem zuvor aus dem bereitgestellten Schlüssel ab geleiteten Schlüssel,
dadurch gekennzeichnet, dass in die Ableitung ein veränderba rer bzw. variabler digitaler Fingerabdruck als Schlüsselab leitungsparameter eingeht bzw. berücksichtigt wird, welcher abhängig von einer messbaren aktuellen Laufzeitkonfiguration einer mit dem Sicherheitsmodul kommunizierenden Laufzeitumge bung gebildet wird.
Das Konfigurieren des Sicherheitsmoduls erfolgt dabei während der Laufzeit der das Sicherheitsmodul betreibenden Laufzeit umgebung. Dadurch wird abhängig von der tatsächlichen aktuel len Laufzeitkonfiguration das Sicherheitsmodul umkonfigu riert. Dies kann einmalig, vorzugsweise aber wiederholt wäh rend der Laufzeit der Laufzeitumgebung erfolgen. Vorzugsweise wird bei der Durchführung der Schlüsselableitung der jeweils aktuelle Fingerprint der Laufzeitumgebung ermittelt und davon abhängig erfolgt die Schlüsselableitung. Dabei erfolgen Mes sungen zur Ermittlung des Fingerprints vorzugsweise ebenfalls bei der Durchführung der Schlüsselableitung. Eine Messung kann durch die Laufzeitumgebung selbst erfolgen und dem Si cherheitsmodul bereitgestellt werden. Dazu wird vorzugsweise ein spezieller Fingerprint-Messprozess (oder Fingerprint- Messprozess-Task) in der Laufzeitumgebung zusätzlich zu ande ren Prozessen ausgeführt. Der Messprozess kann z.B. durch ei nen Hypervisor von anderen Prozessen isoliert sein. Die Mes sung kann jedoch auf einem separaten Rechenkern (Core) einer Mehrkern-Laufzeitumgebung, auf einer separaten Messvorrich tung, z.B. einem separaten Mikrocontroller, oder durch das Sicherheitsmodul selbst erfolgen.
Das Sicherheitsmodul kann Teil eines Gerätes sein. Der be- reitgestellte Schlüssel kann ein Masterkey oder Initial schlüssel oder aus diesen abgeleitet sein. In Ausgestaltungen der Erfindung kann der Initialschlüssel so implementiert wer den, dass jedweder andere Zugriff unterbunden wird oder phy sikalisch unmöglich ist.
Die Laufzeitumgebung wird beispielsweise durch eine CPU bzw. Recheneinrichtung gebildet, welche das Sicherheitsmodul an spricht bzw. steuert bzw. mit ihr kommuniziert, wobei durch das erfindungsgemäße Verfahren das Sicherheitsmodul konfigu riert wird.
Die Laufzeiteigenschaften einer regulären, operativen Lauf zeitumgebung können erfasst werden und als Eingabeparameter für eine Schlüsselableitung verwendet werden. Die messbare bzw. überwachbare aktuelle Laufzeitkonfiguration liefert ei nen Fingerabdruck, der sich bei einem manipulierten System ändert. Manipulationen sind z.B. das Starten eines zusätzli chen Prozesses oder die Integritätsinformation von Betriebs daten. Der Fingerabdruck wird dynamisch zur Laufzeit bestimmt und geht als Schlüsselableitungsparameter in eine Schlüssel ableitungsfunktion oder als Schlüsselbildungsparameter in ei ne Schlüsselgenerierungsfunktion ein. Dies hat den Vorteil, dass bei einer veränderten Laufzeit-Integritätsinformation kryptographische Schlüssel des nicht-manipulierten Zustands nicht ermittelbar sind.
Der oben genannte Schritt des Ableitens eines weiteren
Schlüssels kann (iterativ) ein- oder mehrfach wiederholt wer den. Zumindest eine kryptographische Operation kann mit Hilfe des abgeleiteten weiteren Schlüssels durchgeführt werden. Schlüsselwechselereignisse können beispielsweise spezielle Kommandos zur Schlüsselaktualisierung sein oder der Wechsel der übergeordneten Datenverarbeitungsanlage in einen anderen (Betriebs- ) zustand . Auch die Ausführung einer kryptographi- schen Operation kann als Schlüsselwechselereignis dienen, was die Implementierung von Schlüsseln zur lediglich einmaligen Verwendung für eine Operation (z.B. für das Verschlüsseln von
Daten) erlaubt, wobei diese Schlüssel anschließend noch für andere Operationen (z.B. für das Entschlüsseln oder Verifi zieren) zur Verfügung stehen können.
Die messbare Laufzeitkonfiguration kann mindestens einen er mittelbaren Zustand der Laufzeitumgebung oder mindestens ei nen durch einen überwachbaren Ereigniseintritt ausgelösten Zustand der Laufzeitumgebung umfassen. Zustände der Laufzeit umgebung und/oder Ereigniseintritte sind hierbei messbare Laufzeiteigenschaften der Laufzeitumgebung zu einem bestimm ten Zeitpunkt. Diese Laufzeitkonfiguration kann einen variab len Fingerabdruck bilden (Runtime Integrity Fingerprint) , der die Integrität sicherstellt. Messbar zu einem bestimmten Zeitpunkt sind z.B. HW-Zähler, Realtimeclock, Meta-Info (zu laufenden Prozessen bzw. zum Dateisystem, Dateieigenschaften, dezidierte Dateien, zustandsbestimmende Sicherheitsmechanis men, statische Daten, Dateiinhalte, Prozessname, Prozessnum mer, Prozesspriorität, Watchdog, Benchmarkfunktionen, Zustand der Peripherie, Stromverbrauchsprofil, Profil einer elektro magnetischen Abstrahlung etc.
Vorteilhaft wird eine Einwegfunktion für die Schlüsselablei tung verwendet. Eine Einwegfunktion ist eine Funktion, bei der aus dem abgeleiteten Schlüssel nur mit sehr hohem Aufwand (bzgl. Rechenleistung und Speicher) auf den zugrundeliegenden Schlüssel geschlossen werden kann.
Bei den überwachbaren bzw. messbaren Laufzeiteigenschaften handelt es sich sowohl um statische Eigenschaften (z.B. der Prüfsumme eines read-only Dateisystems), als auch um dynami sche Eigenschaften (z.B. die aktuelle Laufzeit des Systems seit einem Power-on Reset - POR) . Die wiederholte Ableitung des gleichen Schlüssels wird somit an den Zustand der Lauf- zeitumgebung gebunden. Ändert sich dieser Zustand, entweder durch das vorgesehene Wechseln der Betriebsphase oder durch Änderungen in Folge eines Angriffs, werden andere Schlüssel abgeleitet. Auch können Seitenkanalinformationen als Finger-
print gemessen werden, z.B. das Zeitverhalten (z.B. Cache Ti ming) oder das Stromverbrauchsprofil.
Ein Angriff (Änderungen, die zur Laufzeit auftreten, z.B. dem Starten eines schadhaften Prozesses nach Ausnutzen einer Softwareschwachstelle) kann zu einer Veränderung der Lauf- zeiteigenschaften der Laufzeitumgebung führen. Werden diese in einer Schlüsselableitung berücksichtigt, führen solche An griffe automatisch dazu, dass nicht mehr die gleichen Schlüs sel wie in einem integren Zustand des Gerätes abgeleitet wer den können und somit kritische Daten (z.B. verschlüsselte Da teien) vor einem Angreifer besser geschützt werden.
Die vorliegende Erfindung betrifft ferner ein Sicherheitsmo dul, ein Gerät sowie ein Computerprogrammprodukt.
Das beanspruchte Sicherheitsmodul ist konfigurierbar mit min destens einem abgeleiteten Schlüssel, aufweisend:
- eine Empfangseinheit für einen bereitgestellten Schlüssel;
- eine Ableiteinheit zum Ableiten eines weiteren Schlüssels aus dem bereitgestellten oder aus einem zuvor aus dem be- reitgestellten Schlüssel abgeleiteten Schlüssel,
gekennzeichnet durch
eine Erzeugungseinheit, die dazu ausgelegt ist, einen verän derbaren bzw. variablen Fingerabdruck mit Hilfe einer messba ren aktuellen Laufzeitkonfiguration einer mit dem Sicher heitsmodul kommunizierenden Laufzeitumgebung zu bilden, wel cher als Schlüsselableitungsparameter in die Ableitung ein geht .
Das Gerät mit einer Laufzeitumgebung weist ein solches Si cherheitsmoduls auf, gekennzeichnet durch
- eine Bereitstellungseinheit zur Bereitstellung eines
Schlüssels und
- eine Messeinheit zum Messen einer aktuellen Laufzeitkonfi guration, mit deren Hilfe ein variabler Fingerabdruck gebil det wird, welcher als Schlüsselableitungsparameter in eine Ableitung eines weiteren Schlüssels aus dem bereitgestellten
oder aus einem zuvor aus dem bereitgestellten Schlüssel abge leiteten Schlüssels eingeht.
Das Computerprogrammprodukt umfassend computerausführbare An weisungen, welche, wenn in ein Gerät (z.B. Computer) geladen, zur Durchführung eines Verfahrens nach der oben genannten Art und Aus führungs formen ausgelegt sind.
Des Weiteren ist ein Computerprogramm (produkt ) umfassend Pro gramm-Code vorgesehen, der von mindestens einem Prozessor ausgeführt werden kann und der bewirkt, dass der mindestens eine Prozessor das erfindungsgemäße (Betriebs- ) Verfahren und dessen Aus führungs formen ausführt. Das Computerprogramm kann auf einem Gerät/Modul bzw. Vorrichtung der vorstehend genann ten Art ablaufen oder als Computerprogrammprodukt auf einem computerlesbaren Medium gespeichert sein.
Die Vorrichtungen, Einrichtungen bzw. Geräte, Module und Com puterprogramm (produkte ) können entsprechend der Weiterbildun gen/Ausführungsformen des vorgenannten Verfahrens und deren Weiterbildungen/Ausführungsformen und umgekehrt ausgebildet sein .
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusam menhang mit der folgenden Beschreibung der Ausführungsbei spiele, die im Zusammenhang mit den Figuren näher erläutert werden. Dabei zeigt in schematischer Darstellung:
Die einzige Figur zeigt in schematischer Darstellung eines Gerätes D. Es sei darauf hingewiesen, dass die Erläuterung der Erfindung im Zusammenhang mit dem Gerät rein beispielhaft und ohne Beschränkung der vorliegenden Erfindung auf ein der artiges Gerät erfolgt.
In der Figur wird ein Gerät D gezeigt. Es wird der Zusammen hang zwischen Laufzeiteigenschaften einer Laufzeitumgebung R,
der Aufteilung in N verschiedene Systemzustände S1 bis SN und der Ableitung von entsprechenden Schlüsseln mit Hilfe eines Masterkeys MK dargestellt. Die grundlegende Funktionalität wird durch die Runtime Measurement Key Derivation Function (Laufzeitmessungsschlüsselableitungsfunktion) RM-KDF reali siert, welche in einem in das Gerät D integrierten oder mit dem Gerät D gekoppelten Sicherheitsmodul SD integriert ist. Sie kann auch verteilt realisiert sein, d.h. ein erster Teil der Runtime Measurement Key Derivation Function RM-KDF kann auf dem Sicherheitsmodul integriert, ein zweiter Teil der Runtime Measurement Key Derivation Function RM-KDF mit dem Sicherheitsmodul gekoppelt sein.
Die System- bzw. Laufzeitzustände 1 bis N unterscheiden sich in den Laufzeiteigenschaften einer oder mehrerer Komponenten, z.B. der zu dem Zeitpunkt der Schlüsselableitung laufenden Prozesse P, Dateisystemeigenschaften FS und Hardwarezustände HW wie z.B. dem Wert eines Hardware-Zählers. Soll ein Schlüs sel abgeleitet werden, bezieht die RM-KDF Messwerte (z.B. Einweg- bzw. Hashwerte von Dateien) aus der Laufzeitumgebung R. Welche Teile der Laufzeitumgebung gemessen werden sollen, wird dabei durch ein Messregelsystem MP (Measurement Policy) vorgegeben. Die Gesamtheit der Messwerte M, die z.B. mit ei nem fortlaufenden Hashwert festgehalten werden kann, dient anschließend, zusammen mit einem Master Key MK, als Eingabe parameter für eine Schlüsselableitungsfunktion KDF, z.B. auf Basis von HMAC-SHA256. Entspricht der Zustand einer gemesse nen Laufzeitkomponente aufgrund eines Angriffs nicht mehr dem erwarteten, z.B. durch das Starten eines nicht in dem Zustand vorgesehenen Prozesses durch einen Angreifer, wird auch der abgeleitete Schlüssel verändert. Mit dem Schlüssel geschützte Objekte sind somit nur in als gültig definierten Zuständen der Laufzeitumgebung zugänglich.
Die Zustände 1 bis N werden implizit durch die Measurement Policy (Messregel) MP und den Zuständen der gemessenen Lauf- zeitkomponenten definiert. Die Measurement Policy MP kann für jeden Zustand unterschiedlich, oder für mehrere Zustände gleich sein. Es können dementsprechend mehrere RM-KDFs auf
einem Gerät D verwendet werden, welche unterschiedliche Mea- surement Policies, Ableitungsfunktionen KDFs und / oder Mas ter Keys MK verwenden.
Die Measurement-Policy MP, die Measurement-Funktionen für die Gesamtheit der Messwerte M und Schlüsselableitungsfunktionen KDF können prinzipiell entweder in Software- oder Hardware komponenten realisiert werden. Der zur Ableitung verwendete Master Key MK kann dabei entweder in Hardware gespeichert werden (z.B. Hardware-based Trust Anchor), oder in Software (z.B. als Teil einer obfuskierten Routine) implementiert sein .
Im Folgenden werden mehrere Möglichkeiten für messbare Lauf- zeiteigenschaften dargestellt. Diese können beliebig zu einer Measurement Policy MP kombiniert werden.
• Bisherige Laufzeit des Gerätes D seit einem Reset, z.B. mittels eines Hardware-Zählers oder einer Realtime Clock (Echtzeituhr) . Auch die bisherige Laufzeit der Software, z.B. eines Linux Kernels ( /proc/uptime ) kann hier ver wendet werden.
• Performance-Laufzeitdaten (z.B. CPU-Last, Speicheraus lastung, Auslastung von Ein-/Ausgabeschnittstellen, z.B. Netzwerkschnittstellen, DMA-Transfer, Interrupt- Häufigkeit) .
• Stromverbrauchsprofil, Profil einer elektromagnetischen Abstrahlung (z.B. zeitlicher Verlauf, Frequenzspektrum)
• Meta-Informationen zu laufenden Prozessen P, z.B. der Benutzer, unter dem ein Prozess läuft, welcher Prozess diesen gestartet hat (Prozessbaum / Parent-Child Bezie hung von Prozessen / „Prozesskette")/ Prozesspriorität, Prozess-Nummer, SELinux-Domäne eines Prozesses, Name spaces und cgroups, in denen ein Prozess läuft.
• Aktuell eingehängte Dateisysteme und deren Eigenschaften
(z.B. read-only) . So können auch Schlüssel in Abhängig keit der vorhandenen, austauschbaren Peripherie- Bausteine - wie z.B. USB-Dongles - abgeleitet werden.
• Dedizierte Dateien, die die Integrität des aktuellen Systems widerspiegeln. Beispielsweise können sicher- heitskritische Ereignisse durch ein Host-Based Intrusion Detection System (HIDS) in spezielle Dateien geschrieben werden, die im Zuge der Schlüsselableitung mitgemessen werden. Eine weitere Möglichkeit ist, Konfigurationsda ten, die ein Einloggen auf das System beschränken (oder sogar ganz verhindern) , in die Messung mit einzubezie hen: Bei einem Angriff, bei dem die Konfiguration so verändert wird, dass ein Einloggen wieder möglich ist (insbesondere, um das System zur Laufzeit „von innen" beobachten zu können) , werden dann nur noch falsche Schlüssel abgeleitet.
• Der Zustand bestimmter Sicherheitsmechanismen kann mit- einbezogen werden. Auf einem Linux-basierten System kön nen so nur die für eine Anwendung richtigen Schlüssel abgeleitet werden, wenn einer oder mehrere Sicherheits mechanismen in einem bestimmten Zustand sind (z.B.
SELinux im „Enforcing" Modus) .
• Es können statische Daten, wie beispielsweise eine Hard- ware-ID, oder Konfigurationsdateien im Dateisystem mit gemessen werden. Wird die Runtime Measurement Key Deri vation Function RM-KDF in einer anderen Umgebung ausge führt (andere Hardware und somit Hardware-ID, andere Konfiguration) , oder werden die als statisch angenomme nen Dateien manipuliert, werden somit andere Schlüssel abgeleitet .
• Es kann auf das Vorhandensein bestimmter Dateiinhalte geprüft werden, die z.B. aus einer Provisioning-Phase des Gerätes vorhanden sein sollen.
• Meta-Informationen des Dateisystems, wie z.B. die Größe bestimmter Teile, Zugriffs- oder Änderungszeiten, Per missions, Nutzer / Owner, Ziele von symbolischen Links, etc .
• Es kann miteinbezogen werden, wie die Runtime Measure ment Key Derivation Function RM-KDF verwendet bzw. auf gerufen wird. So kann diese z.B. die Prozesskette, aus gehend von der aufrufenden Komponente, bis zur Wurzel des Prozessbaumes miteinbeziehen . Dabei können z.B. die Namen der in der Prozesskette enthaltenen Prozesse fort-
laufend gehasht und als Teil des Schlüsselableitungspa rameters verwendet werden. So kann sichergestellt wer den, dass die richtigen Schlüssel nur im Zuge eines vor gesehenen Aufrufs abgeleitet werden können.
• Es kann ein Watchdog (Hardware oder Software-Funktion) miteinbezogen werden, der die Integrität der Laufzeitum gebung überwacht.
Es kann die Ausführungszeit einer speziell vorgesehenen
Benchmarkfunktion gemessen werden und diese - mit einem ge wissen Spielraum für normale Messvarianzen in die Ableitung mit einbezogen werden. Benötigt die Ausführung einer solchen Funktion beispielsweise 250ms mit einer Standardabweichung (Sigma) von 10ms, ergibt sich bei ( Integer- ) Division durch 100ms auf einem nicht-manipulierten Gerät mit 5-Sigma- Sicherheit der Wert 2. Einem Angreifer dagegen wird die Re produktion der abgeleiteten Schlüssel in einer simulierten bzw. emulierten Umgebung erschwert, weil nun zusätzlich auch die Performance des Devices hinreichend genau (im Beispiel: +/- 20%) nachgebildet werden muss.
Die Applikationen, wobei eine Applikation in der Figur bei spielsweise mit AP gekennzeichnet ist, können mit Hilfe der Bibliothek zur Laufzeit Schlüssel ableiten, um eine krypto- graphische Operation mit Hilfe des abgeleiteten Schlüssels durchzuführen. Solche Operation können sicherheitskritische Objekte, beispielsweise verschlüsselte Dateisysteme, oder private Schlüssel für eine TLS-Verbindung schützen und darauf zugreifen. Soll ein Schlüssel abgeleitet werden, verwendet die Runtime Measurement Key Derivation Function RM-KDF die Measurement-Funktion und die Measurement Policy MP, um darin festgelegte Teile der Laufzeitumgebung oder festgelegte Er eignisse zu einem oder mehreren bestimmten Zeitpunkten zu messen bzw. zu ermitteln und als Laufzeitkonfiguration fest zulegen. Durch die Measurement-Funktion wird unter Verwendung von dedizierten Kernel-Schnittstellen Informationen zu aktu ell eingehängten Dateisystemen (Mounts), dem Zustand gewisser Peripheriebausteine (z.B. FPGA, GPIO, MAC Adresse), der bis-
herigen Laufzeit des Betriebssystems (Uptime) , statische In halte aus dem Dateisystem (Filesystem) und den Namen der Pro zesse in der Prozesskette des Aufrufers in einem laufenden Hashwert aggregiert. Der aggregierte Wert wird anschließend als Schlüsselableitungsparameter für eine Schlüsselablei tungsfunktion mit dem Master Key MK verwendet. Der abgeleite te Schlüssel Kl bis KN ist je nach aufrufender Applikation unterschiedlich, da diese unterschiedlichen Prozessketten an gehören .
Ein aus der Laufzeitkonfiguration gebildeter variabler Fin gerabdruck FP und das Berücksichtigen als Schlüsselablei tungsparameter können als eine Konfiguration des Sicherheits moduls betrachtet werden. Die Applikationen können diese ab geleiteten Schlüssel z.B. für den Zugriff auf private Datei systeme verwenden. Versucht ein Angreifer mittels eines wei teren Prozesses ebenfalls mit Hilfe der Runtime Measurement Key Derivation Function RM-KDF einen Schlüssel abzuleiten, so wird dieser anders sein. Sowohl Offline-, als auch Online- Angriffe verändern in der Regel dynamische Eigenschaften ei ner Laufzeitumgebung (z.B. Konfigurationsdateien, Optionen von eingehängten Dateisystemen) . Der Zugriff auf Schlüssel aus gültigen Zuständen wird somit stark erschwert.
Die Erfindung hat den Vorteil, dass der Zugriff auf Schlüssel an den aktuellen Zustand von statischen und insbesondere dy namischen Eigenschaften der Laufzeitumgebung gebunden werden kann. Bei Eingriff in die Laufzeitumgebung (phys. Angriff, remote Angriff) kann die Schlüsselableitung beeinflusst wer den und somit gültige Schlüssel in einer nicht vertrauenswür digen Umgebung nicht mehr abgeleitet werden. Weiterhin kann die Zustandsabhängigkeit bewusst eingesetzt werden, um unter schiedliche Schlüssel zu unterschiedlichen Laufzeitphasen in Software bereitzustellen. Dies hat speziell den Vorteil, dass im Falle einer kompromittierten Laufzeitphase nicht die
Schlüssel der aktuellen, als auch der anderen Phasen abgelei tet werden können.
Obwohl die Erfindung im Detail durch das bevorzugte Ausfüh rungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele einge schränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen .
Die Implementierung der vorstehend beschriebenen Prozesse o- der Verfahrensabläufe kann anhand von Instruktionen erfolgen, die auf computerlesbaren Speichermedien oder in flüchtigen Computerspeichern (im Folgenden zusammenfassend als computer lesbare Speicher bezeichnet) vorliegen. Computerlesbare Spei cher sind beispielsweise flüchtige Speicher wie Caches, Puf fer oder RAM sowie nichtflüchtige Speicher wie Wechseldaten träger, Festplatten, usw.
Die vorstehend beschriebenen Funktionen oder Schritte können dabei in Form zumindest eines Instruktionssatzes in/auf einem computerlesbaren Speicher vorliegen. Die Funktionen oder Schritte sind dabei nicht an einen bestimmten Instruktions satz oder an eine bestimmte Form von Instruktionssätzen oder an ein bestimmtes Speichermedium oder an einen bestimmten Prozessor oder an bestimmte Ausführungsschemata gebunden und können durch Software, Firmware, Microcode, Hardware, Prozes soren, integrierte Schaltungen usw. im Alleinbetrieb oder in beliebiger Kombination ausgeführt werden. Dabei können ver schiedenste Verarbeitungsstrategien zum Einsatz kommen, bei spielsweise serielle Verarbeitung durch einen einzelnen Pro zessor oder Multiprocessing oder Multitasking oder Parallel verarbeitung usw.
Die Instruktionen können in lokalen Speichern abgelegt sein, es ist aber auch möglich, die Instruktionen auf einem ent fernten System abzulegen und darauf via Netzwerk zuzugreifen.
Das Gerät D kann ein oder mehrere Prozessoren aufweisen. Der Begriff "Prozessor", "zentrale Signalverarbeitung", "Steuer einheit" oder "Datenauswertemittel " , umfasst Verarbeitungs-
mittel im weitesten Sinne, also beispielsweise Server, Uni versalprozessoren, Grafikprozessoren, digitale Signalprozes soren, anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikschaltungen wie FPGAs, diskrete analoge oder digitale Schaltungen und beliebige Kombinationen davon, einschließlich aller anderen dem Fachmann bekannten oder in Zukunft entwickelten Verarbeitungsmittel. Prozessoren können dabei aus einer oder mehreren Vorrichtungen bzw. Einrichtun gen bzw. Einheiten bestehen. Besteht ein Prozessor aus mehre- ren Vorrichtungen, können diese zur parallelen oder sequenti ellen Verarbeitung bzw. Ausführung von Instruktionen ausge legt bzw. konfiguriert sein.