DE102015201161A1 - Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage - Google Patents

Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage Download PDF

Info

Publication number
DE102015201161A1
DE102015201161A1 DE102015201161.5A DE102015201161A DE102015201161A1 DE 102015201161 A1 DE102015201161 A1 DE 102015201161A1 DE 102015201161 A DE102015201161 A DE 102015201161A DE 102015201161 A1 DE102015201161 A1 DE 102015201161A1
Authority
DE
Germany
Prior art keywords
parameter
component
data processing
processing system
generation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102015201161.5A
Other languages
English (en)
Inventor
Rainer Falk
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE102015201161.5A priority Critical patent/DE102015201161A1/de
Publication of DE102015201161A1 publication Critical patent/DE102015201161A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, die während des Starts oder des Betriebs der Datenverarbeitungsanlage zumindest einmal aktiviert werden. Jede zu überprüfende Komponente greift auf einen Parameter (i – 1)-ter Generation zu und bildet einen abgeleiteten Parameter i-ter Generation durch Anwenden einer kryptographischen Operation. Anschließend wird der von der letzten zu überprüfenden Komponente gebildete abgeleitete Parameter, d.h. der Parameter der n-ten Generation, und/oder bestimmte seiner Eigenschaften anhand zumindest eines Sollwertes durch zumindest eine Auswertekomponente überprüft. Jede Auswertekomponente erzeugt aus dem Ergebnis der Überprüfung zumindest eine Indikation: eine positive Indikation bei Übereinstimmung des Parameters oder seiner Eigenschaften mit dem jeweiligen Sollwert, und/oder eine negative Indikation bei mangelnder Übereinstimmung. Abhängig von der Indikation werden nachfolgende Komponenten aktiviert/gestartet oder am Start gehindert.

Description

  • Die vorliegende Erfindung betrifft das Gebiet der Datenverarbeitungsanlagen. Insbesondere betrifft die vorliegende Erfindung ein Verfahren zum gesicherten Start einer Datenverarbeitungsanlage.
  • Moderne Datenverarbeitungsanlagen wie Personal Computer sind in zunehmendem Maße Bedrohungen durch Schadprogramme ausgesetzt. Eine Form von Schadprogrammen, sogenannte Bootkits, versucht, das Zielsystem bereits während einer sehr frühen Phase des Bootvorgangs zu kompromittieren. Eine weitere Form von Schadprogrammen, sogenannte Rootkits, versucht, das Zielsystem während späterer Bootphasen (z.B. während des Ablaufs des sogenannten OS Loaders) zu kompromittieren.
  • Sowohl Bootkits als auch Rootkits sind durch herkömmliche Anwendungsprogramme zur Erkennung von Schadsoftware sehr schwer oder überhaupt nicht zu detektieren, da Boot-/Rootkits die Kontrolle über grundlegende Betriebssystemfunktionen oder sogar BIOS-Funktionen erlangen und somit dem Schadsoftwareerkennungsprogramm stets die erwarteten korrekten Prüfsummen oder ähnliche Parameter liefern können, obwohl die tatsächlichen Prüfsummen oder Parameter aufgrund des Vorhandenseins des Codes des Boot-/Rootkits davon abweichen.
  • Um diesen Bedrohungen zu begegnen, wurde das sogenannte Secure Boot Verfahren entwickelt, siehe beispielsweise http://technet.microsoft.com/en-us/windows/dn168167.aspx.
  • Beim Secure Boot Verfahren prüft die erste Phase des Bootvorgangs (die UEFI Firmware), ob alle zu ladenden Treiber und der für die Fortsetzung des Bootvorgangs notwendige OS Loader über ein bestimmtes Sicherheitszertifikat verfügen. Ist dies nicht der Fall, z.B. weil der OS Loader durch Schadsoftware kompromittiert wurde, wird der Bootvorgang abgebrochen.
  • Obwohl das a.a.O. beschriebene Secure Boot Verfahren relativ aufwendig ist (u.a. wird ein Trusted Platform Module TPM benötigt), bleibt es anfällig gegen Firmware Rootkits oder Bootkits, welche die erste Phase des Bootvorgangs kompromittieren. Erfolgreiche Angriffe auf die UEFI / Secure Boot Architektur wurden Ende 2014 bekannt.
  • Als Maßnahme wurde daher bereits a.a.O. das Measured Boot Verfahren vorgeschlagen, bei dem die Firmware Hashes der Firmware selbst, des Bootloaders, der Boot Treiber und aller anderen während des Bootvorgangs aktiven (Software-)Komponenten als sogenannte Measurements im TPM ablegt. Das Betriebssystem startet dann eine Überprüfungsprozedur, bei der ein unabhängiger Remoteserver (Attestation Server genannt) die Hashwerte übermittelt bekommt, mit den jeweils erwarten Werten vergleicht und daraus eine Aussage ableitet, ob das überprüfte System kompromittiert ist oder nicht.
  • Nachteilig am Measured Boot Verfahren ist, dass es eine aufwendige Infrastruktur voraussetzt und dass eine lokale Aussage über die Integrität der einzelnen Bootkomponenten nicht getroffen werden kann. Zudem besteht die Gefahr, dass eine kompromittierte Firmware Kontrolle über die Hash-Generierung erhält und durch Liefern eines gefälschten Hashwertes für die Firmware das Vorhandensein einer kompromittierten Firmware verschleiert.
  • Aufgabe der vorliegenden Erfindung ist es daher, ein Verfahren anzugeben, das eine lokale Aussage über die Integrität von Komponenten einer Datenverarbeitungsanlage, insbesondere Bootphasen, zulässt und gleichzeitig den Aufwand bezüglich lokaler Hardware sowie Infrastruktur reduziert.
  • Diese Aufgabe wird gelöst durch ein Verfahren zur Überprüfung der Integrität von n ≥ 1 Komponenten einer Datenverarbeitungsanlage, die während des Starts oder des Betriebs der Datenverarbeitungsanlage zumindest einmal aktiviert werden. Eine erste Komponente greift dabei auf einen Parameter zu und bildet einen abgeleiteten Parameter erster Generation durch Anwenden einer ersten kryptographischen Operation auf den Parameter.
  • Falls n > 1, d.h. falls mindestens zwei Komponenten vorliegen, deren Integrität zu überprüfen ist, greift die i-te Komponente auf den Parameter (i – 1)-ter Generation zu und bildet einen abgeleiteten Parameter i-ter Generation durch Anwenden einer i-ten kryptographischen Operation auf den Parameter (i – 1)-ter Generation (für jede i-te Komponente mit 1 < i ≤ n).
  • Anschließend wird der von der n-ten zu überprüfenden Komponente gebildete abgeleitete Parameter, d.h. der Parameter der n-ten Generation, und/oder bestimmte seiner Eigenschaften anhand zumindest eines Sollwertes durch zumindest eine Auswertekomponente überprüft. Beispielsweise kann für den Parameter ein Hash-Wert gebildet werden, der mit einem bestimmten Soll-Hash-Wert verglichen wird.
  • Dabei können mehrere Auswertekomponenten vorgesehen werden, die parallel die gleiche Überprüfung ausführen, aber z.B. physikalisch oder logisch verschieden sind, um die Zuverlässigkeit der Auswertung zu erhöhen.
  • Jede Auswertekomponente erzeugt aus dem Ergebnis der Überprüfung zumindest eine Indikation: eine positive Indikation bei Übereinstimmung des Parameters oder seiner Eigenschaften mit dem jeweiligen Sollwert, und/oder eine negative Indikation bei mangelnder Übereinstimmung. Dies bedeutet, dass drei grundsätzliche Implementierungen von Auswertekomponenten zur Anwendung kommen können:
    • i) Auswertekomponenten, die bei Übereinstimmung eine positive Indikation und bei mangelnder Übereinstimmung eine negative Indikation erzeugen;
    • ii) Auswertekomponenten, die bei Übereinstimmung eine positive Indikation erzeugen und bei mangelnder Übereinstimmung keine Indikation erzeugen;
    • iii) Auswertekomponenten, die bei Übereinstimmung keine Indikation erzeugen und bei mangelnder Übereinstimmung eine negative Indikation erzeugen.
  • Bei den beiden letztgenannten bedeutet das Fehlen der jeweiligen Indikation deren Gegenteil. Eine Indikation kann auch in einer Maßnahme bestehen, z.B. Start einer Komponente oder Verhinderung des Starts einer Komponente.
  • Eine positive Indikation (bzw. das Fehlen der negativen Indikation bei Variante iii) zeigt an, dass die Integrität aller n Komponenten intakt, d.h. nicht verletzt ist. Eine negative Indikation (bzw. das Fehlen der positiven Indikation bei Variante ii) zeigt an, dass die Integrität zumindest einer Komponente verletzt ist.
  • Integrität einer Komponente bedeutet hier, dass eine Komponente einem Sollzustand entspricht und nicht unzulässig modifiziert wurde.
  • Angewendet auf den Fall der Bootphasen ergibt sich durch die Erfindung gegenüber dem eingangs zitierten Stand der Technik der besondere Vorteil, dass die Auswerteeinheit den gesamten Bootprozess anhand des von der letzten Bootphase gebildeten Parameters überprüfen kann, da dieser Parameter durch alle Bootphasen modifiziert wurde und nur dann dem Sollwert entspricht, wenn alle Bootphasen aus dem Eingangsparameter einen korrekten abgeleiteten Parameter berechnen. Die Auswertekomponente, die im Betriebssystem angeordnet sein kann, kann somit beispielsweise das Vorhandensein eines Bootkits detektieren und den Start des Betriebssystems verhindern oder einen eingeschränkten Betriebssystemstart veranlassen.
  • Vorzugsweise wird sichergestellt, dass die i-te Komponente keinen Zugriff auf den Parameter der (i – 2)-ten Generation erhält, wobei 1 < i ≤ n. Dies kann beispielsweise erreicht werden, indem der Parameter der (i – 2)-ten Generation durch die (i – 1)-te Komponente überschrieben oder gelöscht wird, bevor die i-te Komponente ausgeführt wird.
  • Vorzugsweise werden kryptographischen Operationen verwendet, die resistent gegen Kollisions- und/oder Urbildangriffe [englisch: Collision Attack und/oder Preimage Attack] ist, um zu verhindern, dass maliziöse Komponenten einen korrekten abgeleiteten Parameter bilden können.
  • In einer vorteilhaften Ausgestaltung kann der abgeleitete Parameter n-ter Generation in nachfolgend aktivierten Komponenten als kryptographischer Schlüssel genutzt werden, beispielsweise für die Verschlüsselung eines Massenspeichers. Ist die Integrität einer Komponente verletzt, wird somit effektiv der Zugriff auf die im Massenspeicher abgelegten Daten verhindert.
  • Die Erfindung betrifft ferner eine Datenverarbeitungsanlage, eine Komponente einer Datenverarbeitungsanlage sowie eine Auswertekomponente einer Datenverarbeitungsanlage.
  • Im Folgenden werden Ausführungsbeispiele der vorliegenden Erfindung detailliert anhand von Zeichnungen näher beschrieben.
  • Es zeigen:
  • 1: ein vereinfachtes Diagramm eines beispielhaften Ablaufs des erfindungsgemäßen Verfahrens; und
  • 2 eine stark vereinfachte Darstellung einer erfindungsgemäßen Komponente eines Datenverarbeitungssystems.
  • 1 zeigt in vereinfachter schematischer Darstellung den Start- bzw. Bootvorgang einer Datenverarbeitungsanlage mit 4 Bootphasen 110 bis 140 und der Phase 150 des Applikationsstarts. Bei den 4 Bootphasen kann es sich um eine erste Bootloaderphase 110, um eine zweite Bootloaderphase 120, um den Betriebssystemstart 130 und um den Start 140 von Diensten handeln. Für die vorliegende Erfindung ist dies jedoch nicht von Bedeutung, daher werden die Bootphasen im Folgenden nur anhand ihrer Reihenfolge unterschieden. BP1 sei die erste Bootphase 110, BP4 die letzte Bootphase 140 vor der Applikationsstartphase 150.
  • Im der vorliegenden Beschreibung werden die Begriffe "Komponente" und "Phase" synonym verwendet, da die vorliegende Erfindung sowohl die Integrität einzelner Komponenten als auch die Integrität aus Komponenten zusammengesetzter Komponenten als auch die Integrität komplexer Wechselwirkungen von Komponenten während bestimmter, abgeschlossener Phasen (z.B. den Bootphasen) überprüfen kann.
  • Komponenten bzw. Phasen 110, 120, 130, 140 im Sinne der vorliegenden Erfindung können beispielsweise Hardwarekomponenten, Firmwarekomponenten oder Softwarekomponenten oder beliebige Kombinationen daraus sein. Während einer Phase 110, 120, 130, 140, die von einer Softwarekomponente gesteuert oder kontrolliert werden kann, kann das erfindungsgemäße Verfahren für eine erste Abfolge nacheinander aktivierter Komponenten angewendet werden und im Ergebnis einen kryptographischen Schlüssel liefern, der als Teil des kryptographischen Schlüssels dieser Phase verwendet wird. Eine zweite Abfolge liefert einen zweiten Teil des Schlüssels dieser Phase 110, 120, 130, 140 und so fort. Der gesamte kryptographische Schlüssel der Phase wird ggf. noch mit dem von der vorhergehenden Phase gelieferten Parameter bzw. Schlüssel kombiniert und an die nächste Phase übergeben, um die Integrität der gesamten Phasenabfolge zu überprüfen.
  • Konkret greift BP1 110 auf einen Parameter P0 101 zu. Zugreifen bedeutet, diesen Parameter P0 lesen zu können oder eine erste kryptographische Operation unter Verwendung dieses Parameters durchführen zu können. Das Ergebnis der Operation ist ein abgeleiteter Parameter erster Generation P1 111.
  • Vorzugsweise handelt es sich beim Parameter P0 um einen kryptographischen Schlüssel, und in Ausgestaltungen um einen verschlüsselten Schlüssel, der durch die BP1 vor der Ausführung der kryptographischen Operation noch korrekt entschlüsselt werden muss. Auf diese Weise können Manipulationen stark erschwert werden, da eine kompromittierte BP1 nicht nur die Operation korrekt ausführen, sondern hierfür auch noch den privaten Schlüssel der nicht kompromittierten BP1 erlangen muss. Der Parameter bzw. Schlüssel P0 kann in einer speziellen Hardware oder in einer während der Phase BP1 genutzten Komponente abgelegt sein.
  • Nach Beendigung der Phase BP1 werden Steuerung [Control] und Daten [Data] sowie der abgeleitete Parameter bzw. Schlüssel P1 an die nächste Phase BP2 120 übergeben.
  • Diese Übergabe kann erfolgen, indem P1 in einen Speicher geschrieben wird, auf den die nachfolgende Bootphase BP2 zugreifen kann. Der Speicher kann insbesondere bei einem FPGA-basiertem System-on-a-Chip (SoC) durch Register des FPGAs realisiert sein, sodass der Schlüssel P1 innerhalb des physikalischen ICs gespeichert ist.
  • P1 kann in einer anderen Variante in einem Register eines Prozessors abgespeichert sein. In einer weiteren Variante kann der Schlüssel in einem Register eines Peripheriebausteins abgelegt werden, z.B. in einem Puffer eines Ein-/Ausgabebausteins (serielles UART, USB-Interface, Netzwerkinterface), ohne ausgegeben zu werden, oder in einem Speicher einer Grafikkarte oder eines Displays. Auch ist es möglich, den Schlüssel als Aufruf-Parameter (Argument) bzw. Übergabeparameter zu übergeben.
  • Vorzugsweise wird der Zugriff auf den Parameter bzw. Schlüssel P0 durch die Phase BP2 unterbunden. Dies kann beispielsweise bewerkstelligt werden, indem nur BP1 physikalischen Zugriff auf den entsprechenden Speicher hat oder P0 zur Laufzeit von BP1 erzeugt und mit Beendigung von BP1 überschrieben oder durch eine Memory Management Unit der Zugriff während BP2 verhindert wird.
  • BP2 120 verwendet den abgeleiteten Parameter bzw. Schlüssel erster Generation P1, um mittels einer zweiten kryptographischen Operation einen abgeleiteten Parameter bzw. Schlüssel zweiter Generation P2 121 zu bilden. Im Übrigen gelten die Ausführungen zu BP1 sinngemäß für BP2, und nach Beendigung der Phase BP2 werden Steuerung und Daten sowie der abgeleitete Parameter bzw. Schlüssel zweiter Generation P2 an die nächste Phase BP3 130 übergeben.
  • Der beschriebene Ablauf wiederholt sich für die dritte und vierte Komponente bzw. Phase BP3 und BP4 sinngemäß.
  • In 2 ist die Situation für das bevorzugte Ausführungsbeispiel allgemein dargestellt. Die Komponente bzw. Phase i 210 greift auf den Parameter bzw. Schlüssel Pi-1 201 zu bzw. bekommt diesen übergeben und wendet die eigene (d.h. i-te) kryptographische Operation KDFi 212 (für Key Derivation Function) an, um den Parameter bzw. Schlüssel Pi 211 daraus abzuleiten. Pi wird anschließend so abgelegt, dass die Komponente bzw. Phase i + 1 (oder die Auswertekomponente) darauf zugreifen kann und BPi löscht bzw. sperrt den Zugriff auf den Parameter bzw. Schlüssel Pi, bevor die Steuerung (Control Transfer) an die Komponente bzw. Phase i + 1 übergeben wird. Beispiele für eine geeignete die kryptographische Operation KDFi 212 sind dem Fachmann unter den Bezeichnungen HMAC-SHA256, HKDF, PBKDF2, AES-CBCMAC, AES-ECB, scrypt geläufig.
  • Nachdem die letze von insgesamt n Komponenten bzw. Phasen die n-te kryptographische Operation ausgeführt und den abgeleiteten Parameter bzw. Schlüssel n-ter Generation Pn erzeugt hat, wird dieser an eine Auswertefunktion übergeben.
  • Im Beispiel der 1 ist n = 4 und die Auswertefunktion A ist Bestandteil der Phase 150 des Applikationsstarts. Natürlich kann die Auswertefunktion auch separat oder im Zusammenhang mit einer anderen Phase implementiert werden. Es ist auch denkbar, jede Phase mit einer (Zwischen-)Auswertefunktion auszustatten.
  • Vor Abschluss von BP4 140 wird der von BP4 erzeugte Parameter bzw. Schlüssel vierter Generation P4 141 so abgelegt, dass die Auswertekomponente darauf zugreifen kann bzw. der Auswertekomponente übergeben. Die Auswertekomponente überprüft P4. Ist dieser gültig, d.h. entspricht er beispielsweise einem Sollwert oder stimmen seine Eigenschaften mit entsprechenden Sollwerten überein, stellt die Auswertekomponente fest, dass die Integrität aller Komponenten bzw. Phasen 110, 120, 130, 140 unversehrt ist und erlaubt beispielsweise den uneingeschränkten Start weiterer Komponenten wie Applikationen. P4 kann dann beispielsweise zur Verschlüsselung des Massenspeichers genutzt werden oder als Master-Schlüssel für kryptographische Operationen des nunmehr laufenden Betriebssystems und seiner Applikationen dienen.
  • Ist P4 hingegen ungültig, stellt die Auswertekomponente fest, dass zumindest eine der Komponenten bzw. Phasen kompromittiert wurde und verhindert den Start weiterer Komponenten und/oder erzeugt einen Alarm und/oder gestattet nur den Start bestimmter Applikationen und/oder das System wird zwangsabgeschaltet.
  • Die vorliegende Erfindung kann in Ausführungsbeispielen zu Teilen in besonderer Hardware realisiert werden, benötigt diese aber nicht. Insbesondere wird für besonders preisgünstige oder rein physikalisch schwerer kompromittierbare Systeme wie Systems-on-a-Chip (SoC) oder Embedded Systeme keine spezielle Hardware wie ein TPM benötigt, da der von der ersten zu überprüfenden Komponente zu verwendende Parameter bzw. Schlüssel (der Parameter "0-ter Generation", P0) in Software oder Firmware geschützt gespeichert werden kann. Ein bekanntes Verfahren hierfür ist die sogenannte White-box Cryptography.
  • Die Abfolge der Phasen bzw. Komponenten wurde hier vereinfachend als linear aufeinander folgend dargestellt. Dies ist für das Funktionieren der vorliegenden Erfindung nicht zwingend notwendig, auch andere (beispielsweise baumartige) Strukturen lassen sich mit der vorliegenden Erfindung auf Integrität überprüfen. Wichtig ist lediglich, dass die i-te Phase bzw. Komponente Zugriff auf den Parameter Pi-1 erhält, bevor sie beendet wird.
  • Es ist in einer Kette von Phasen bzw. Komponenten nicht notwendig, dass alle Phasen bzw. Komponenten gemäß der vorliegenden Erfindung konzipiert sind. Nur diejenigen Phasen bzw. Komponenten, deren Integrität überprüft werden soll, müssen das erfindungsgemäße Verfahren unterstützen; alle zwischengelagerten Komponenten leiten die Parameter bzw. Schlüssel einfach transparent weiter bzw. belassen sie im Speicher, bis die nächste zu überprüfende Komponente darauf zugreift.
  • In einer Ausgestaltung der Erfindung liegt der Schlüssel der i-ten Generation, der an die (i + 1)-te Komponente bzw. Phase oder an die Auswertekomponente übergeben wird, in der i-ten Komponente bzw. Phase verschlüsselt vor und wird nicht durch eine Key Derivation Function erzeugt. Die i-te kryptographische Operation verwendet in diesem Fall den von der (i – 1)-ten Komponente bzw. Phase gelieferten Schlüssel der (i – 1)-ten Generation zum Entschlüsseln des verschlüsselt vorliegenden Schlüssels der i-ten Generation.
  • Die Implementierung der vorstehend beschriebenen Komponenten, Phasen, Prozesse oder Verfahrensabläufe kann anhand von Instruktionen erfolgen, die auf computerlesbaren Speichermedien oder in flüchtigen Computerspeichern (im Folgenden zusammenfassend als computerlesbare Speicher bezeichnet) vorliegen. Computerlesbare Speicher sind beispielsweise flüchtige Speicher wie Caches, Puffer oder RAM sowie nichtflüchtige Speicher wie Wechseldatenträger, Festplatten, usw.
  • Die 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 Instruktionssatz 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, Prozessoren, integrierte Schaltungen usw. im Alleinbetrieb oder in beliebiger Kombination ausgeführt werden. Dabei können verschiedenste Verarbeitungsstrategien zum Einsatz kommen, beispielsweise serielle Verarbeitung durch einen einzelnen Prozessor oder Multiprocessing oder Multitasking oder Parallelverarbeitung usw.
  • Die Instruktionen und Komponenten können in lokalen Speichern abgelegt sein, es ist aber auch möglich, die Instruktionen auf einem entfernten System abzulegen und darauf via Netzwerk zuzugreifen.
  • Der Begriff "Prozessor", wie hier verwendet, umfasst Verarbeitungseinheiten im weitesten Sinne, also beispielsweise Server, Universalprozessoren, Grafikprozessoren, digitale Signalprozessoren, 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 Verarbeitungseinheiten. Prozessoren können dabei aus einer oder mehreren Vorrichtungen bestehen. Besteht ein Prozessor aus mehreren Vorrichtungen, können diese zur parallelen oder sequentiellen Verarbeitung von Instruktionen konfiguriert sein.
  • Die vorstehende Beschreibung stellt nur die bevorzugten Ausführungsbeispiele der Erfindung dar und soll nicht als Definition der Grenzen und des Bereiches der Erfindung dienen. Alle gleichwertigen Änderungen und Modifikationen gehören zum Schutzbereich der beigefügten Patentansprüche.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • http://technet.microsoft.com/en-us/windows/dn168167.aspx [0004]

Claims (18)

  1. Verfahren zur Überprüfung der Integrität von n ≥ 1 Komponenten (110, 120, 130, 140) einer Datenverarbeitungsanlage, die während des Starts oder des Betriebs der Datenverarbeitungsanlage zumindest einmal aktiviert werden, mit folgenden Schritten: a) Zugreifen auf einen Parameter (101) durch eine erste Komponente; b) Bilden eines abgeleiteten Parameters erster Generation (110) durch Anwenden einer ersten kryptographischen Operation auf den Parameter durch die erste Komponente (110); c) falls n > 1, Zugreifen auf den Parameter (i – 1)-ter Generation (111, 121, 131, 201) durch die i-te Komponente (120, 130, 140, 210), wobei 1 < i ≤ n; d) falls n > 1, Bilden eines abgeleiteten Parameters i-ter Generation (121, 131, 141, 211) durch Anwenden einer i-ten kryptographischen Operation (212) auf den Parameter (i – 1)-ter Generation (111, 121, 131, 201) durch die i-te Komponente (120, 130, 140, 210); und e) Überprüfen des abgeleiteten Parameters der n-ten Generation (141) und/oder bestimmter Eigenschaften des abgeleiteten Parameters der n-ten Generation anhand zumindest eines Sollwertes durch zumindest eine Auswertekomponente (150), wobei – bei Übereinstimmung durch die jeweilige Auswertekomponente eine positive Indikation erzeugt wird, die anzeigt, dass die Integrität aller n Komponenten nicht verletzt ist; und/oder – bei mangelnder Übereinstimmung durch die jeweilige Auswertekomponente eine negative Indikation erzeugt wird, die anzeigt, dass die Integrität zumindest einer Komponente verletzt ist.
  2. Verfahren nach Anspruch 1 mit n > 1 Komponenten, bei dem die i-te Komponente keinen Zugriff auf den Parameter der (i – 2)-ten Generation erhält, wobei 1 < i ≤ n.
  3. Verfahren nach einem der Ansprüche 1 oder 2, bei dem zumindest eine der kryptographischen Operationen resistent gegen Kollisions- und/oder Urbildangriffe ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem der Parameter ein kryptographischer Schlüssel ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem zumindest eine weitere Komponente der Datenverarbeitungsanlage nur startet, wenn nur positive Indikationen und/oder keine negative Indikationen vorliegen.
  6. Verfahren nach Anspruch 5, bei dem der abgeleitete Parameter n-ter Generation der zumindest einen weiteren Komponente als kryptographischer Schlüssel dient.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die n Komponenten Bootphasen eines Bootvorgangs der Datenverarbeitungsanlage sind oder die Bootphasen überwachen und es sich bei der zumindest einen weiteren Komponente um das für den Anwender nutzbare Betriebssystem der Datenverarbeitungsanlage und/oder ein Anwendungsprogramm handelt.
  8. Datenverarbeitungsanlage mit n ≥ 1 Komponenten (110, 120, 130, 140), die während des Starts oder des Betriebs der Datenverarbeitungsanlage zumindest einmal aktiviert werden, und zumindest einer Auswertekomponente (150), wobei – eine erste Komponente (110) Mittel zum Zugreifen auf einen Parameter sowie Mittel zum Anwenden einer ersten kryptographischen Operation auf den Parameter zum Erzeugen eines abgeleiteten Parameters erster Generation (111) aufweist; – falls n > 1, die i-te Komponente (120, 130, 140, 210) Mittel zum Zugreifen auf den Parameter (i – 1)-ter Generation (111, 121, 131, 201) sowie Mittel zum Anwenden einer i-ten kryptographischen Operation (212) auf den Parameter (i – 1)-ter Generation zum Erzeugen eines abgeleiteten Parameters i-ter Generation (121, 131, 141, 211) aufweist, wobei 1 < i ≤ n; und – die zumindest eine Auswertekomponente (150) Mittel aufweist zum Überprüfen des abgeleiteten Parameters der n-ten Generation (141) und/oder bestimmter Eigenschaften des abgeleiteten Parameters der n-ten Generation anhand zumindest eines Sollwertes, wobei jede Auswertekomponente – Mittel aufweist, die bei Übereinstimmung eine positive Indikation erzeugen, die anzeigt, dass die Integrität aller n Komponenten nicht verletzt ist; und/oder – Mittel aufweist, die bei mangelnder Übereinstimmung eine negative Indikation erzeugen, die anzeigt, dass die Integrität zumindest einer Komponente verletzt ist.
  9. Datenverarbeitungsanlage nach Anspruch 8 mit n > 1 Komponenten mit Mitteln zum Verhindern des Zugriffs der i-ten Komponente den Parameter der (i – 2)-ten Generation, wobei 1 < i ≤ n.
  10. Datenverarbeitungsanlage nach einem der Ansprüche 8 oder 9, bei der zumindest eine Komponente eine kryptographische Operation zur Parametererzeugung anwendet, die resistent gegen Kollisions- und/oder Urbildangriffe ist.
  11. Datenverarbeitungsanlage nach einem der Ansprüche 8 bis 10, bei welcher der Parameter ein kryptographischer Schlüssel ist.
  12. Datenverarbeitungsanlage nach einem der Ansprüche 8 bis 11 mit Mitteln zum Verhindern des Starts zumindest einer weiteren Komponente, falls keine positiven Indikationen vorliegen und/oder zumindest eine negative Indikation vorliegt.
  13. Datenverarbeitungsanlage nach Anspruch 12, deren zumindest eine weitere Komponente Mittel zum Verwenden des abgeleiteten Parameters der n-ten Generation als kryptographischer Schlüssel aufweist.
  14. Datenverarbeitungsanlage nach einem der Ansprüche 8 bis 13, deren n Komponenten Bootphasen eines Bootvorgangs der Datenverarbeitungsanlage sind oder diese überwachen und deren zumindest eine weitere Komponente das für den Anwender nutzbare Betriebssystem der Datenverarbeitungsanlage und/oder ein Anwendungsprogramm ist.
  15. Komponente (110, 120, 130, 140, 210) einer Datenverarbeitungsanlage, die folgendes aufweist: – Mittel zum Zugreifen auf einen Parameter (101, 111, 121, 131, 201); – Mittel zum Anwenden einer kryptographischen Operation (212) auf den Parameter zum Erzeugen eines abgeleiteten Parameters (111, 121, 131, 141, 211); – Mittel zum Zurverfügungstellen des abgeleiteten Parameters in einem Speicher, auf den eine definierte weitere Komponente (120, 130, 140, 150) zugreifen kann; sowie – Mitteln zum Verhindern des Zugriffs der weiteren Komponente auf den Parameter.
  16. Komponente nach Anspruch 15, die eine Bootphase der Datenverarbeitungsanlage bildet oder überwacht.
  17. Komponente nach Anspruch 15 oder 16, deren kryptographische Operation resistent gegen Kollisions- und/oder Urbildangriffe ist.
  18. Auswertekomponente (150) einer Datenverarbeitungsanlage, die folgendes aufweist: – Mittel zum Überprüfen eines durch eine Komponente gemäß einem der Ansprüche 15 bis 17 erzeugten Parameters und/oder bestimmter Eigenschaften des erzeugten Parameters anhand zumindest eines Sollwertes; sowie – Mittel zum Verhindern des Starts zumindest einer weiteren Komponente, welche aktiviert werden, wenn keine Übereinstimmung vorliegt.
DE102015201161.5A 2015-01-23 2015-01-23 Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage Ceased DE102015201161A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015201161.5A DE102015201161A1 (de) 2015-01-23 2015-01-23 Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015201161.5A DE102015201161A1 (de) 2015-01-23 2015-01-23 Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage

Publications (1)

Publication Number Publication Date
DE102015201161A1 true DE102015201161A1 (de) 2016-03-24

Family

ID=55444951

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015201161.5A Ceased DE102015201161A1 (de) 2015-01-23 2015-01-23 Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage

Country Status (1)

Country Link
DE (1) DE102015201161A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826690B1 (en) * 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
US20140164765A1 (en) * 2011-05-13 2014-06-12 Telefonica, S.A. Procedure for a multiple digital signature

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826690B1 (en) * 1999-11-08 2004-11-30 International Business Machines Corporation Using device certificates for automated authentication of communicating devices
US20140164765A1 (en) * 2011-05-13 2014-06-12 Telefonica, S.A. Procedure for a multiple digital signature

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Replacing Vulnerable Software with Secure Hardware - The Trusted Platform Module (TPM) and How to Use It in the Enterprist. Trusted Computing Group, 2008. Archiviert in archive.org mit Stand vom 14.07.2014.URL: https://web.archive.org/web/*/https://www.trustedcomputinggroup.org/files/temp/4B551C9F-1D09-3519-AD45C1F0B5D61714/TPM Overview.pdf *
"Replacing Vulnerable Software with Secure Hardware – The Trusted Platform Module (TPM) and How to Use It in the Enterprist. Trusted Computing Group, 2008. Archiviert in archive.org mit Stand vom 14.07.2014.URL: https://web.archive.org/web/*/https://www.trustedcomputinggroup.org/files/temp/4B551C9F-1D09-3519-AD45C1F0B5D61714/TPM Overview.pdf
http://technet.microsoft.com/en-us/windows/dn168167.aspx

Similar Documents

Publication Publication Date Title
DE112018000143T5 (de) Datenmaskierung
DE112018007934T5 (de) Softwareprüfvorrichtung, softwareprüfverfahren und softwareprüfprogramm
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE102012101876A1 (de) PC Absicherung durch BIOS/(U) EFI Erweiterungen
DE102014208838A1 (de) Verfahren zum Betreiben eines Steuergeräts
DE102019119831A1 (de) Verschlüsselungsschaltung zum Durchführen von virtuellen Verschlüsselungsoperationen
DE102015113468A1 (de) Datenverarbeitungsvorrichtung und verfahren zum sichern einer datenverarbeitungsvorrichtung gegen angriffe
DE102010002472A1 (de) Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP3720039A1 (de) Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
DE102015208665B4 (de) Verfahren und System zum Implementieren eines sicheren Sperrbildschirms
DE102014204417A1 (de) Vorrichtung und Verfahren zum Detektieren einer Manipulation an einem Programmcode
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
DE102015201161A1 (de) Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage
EP3798873B1 (de) Verfahren zum schützen einer computer-implementierten anwendung vor manipulation
EP3963490B1 (de) Verfahren und vorrichtung zum übertragen eines boot-codes mit verbesserter datensicherheit
DE102014208848A1 (de) Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls
EP3667529B1 (de) Verfahren und vorrichtung zum authentisieren einer fpga-konfiguration
EP3072080B1 (de) Verfahren und vorrichtung zum manipulationsschutz einer recheneinrichtung
DE102015211566B4 (de) Verfahren, Komponente und Computerprogrammprodukt zum Bestimmen eines abgeleiteten Schlüssels
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
DE102013108073A1 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
DE102021110766B3 (de) Forensik-Modul und eingebettetes System

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R230 Request for early publication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final