-
Technisches Gebiet
-
Ausführungsformen der Erfindung beziehen sich auf ein Rechensystem, welches ausgelegt ist, um vor einer Verletzung der Integrität zu schützen, ein Verfahren zum Schutz eines Rechensystems vor einer Verletzung der Integrität, ein nicht-transitorisches computerlesbares Speichermedium und einen integrierten Chip.
-
Hintergrund
-
Der Schutz vor einer Verletzung der Integrität wird zunehmend wichtiger. Dies gilt ebenfalls für Sicherheitscontroller, sichere Speicher, Radiofrequenzidentifikationsvorrichtungen (Radio Frequency Identification Devices, RFIDs) sowie viele andere Vorrichtungen, welche Schutz vor einer Verletzung der Integrität erfordern, die beispielsweise durch physische Angriffe verursacht wird. Im Folgenden bedeutet der Begriff „Angriff” Extrahieren eines Geheimnisses oder Manipulieren von Daten zugunsten eines Angreifers.
-
Zu diesem Zweck umfasst eine Verletzung der Integrität induzierende Fehler während der Ausführung eines Programms auf dem Sicherheitscontroller, dem sicheren Speicher, der RFID-Vorrichtung usw. oder während des Betriebs eines endlichen Automatens (Finite State Machine, FSM) auf der jeweiligen Vorrichtung. Fehler können durch mehrere Mittel, beispielsweise durch Spannungsspitzen, Laserlicht, ionisierende Strahlung, Sondennadeln usw., induziert werden. Ein aus einer Vielzahl von Beispielen von induzierenden Fehlern umfasst die Störung eines Adressenzeigers zu einem Ausgangspuffer während eines Ausgabevorgangs in einer Weise, dass der Adressenzeiger zur Speicherstelle eines Geheimschlüssels zeigt, welcher zum Verschlüsseln und Entschlüsseln von Nachrichten verwendet wird. Ein solcher Angriff würde darin resultieren, dass die Ausgaberoutine den Geheimschlüssel aus der Vorrichtung sendet, anstatt wie beabsichtigt den Inhalt des Ausgabepuffers zu senden.
-
In einem weiteren Beispiel wird eine Verletzung der Integrität durch Manipulieren eines Programmzählers in einer Weise, dass eine Programmierroutine für einen nichtflüchtigen Speicher aufgerufen wird, anstatt wie beabsichtigt eine andere Routine aufzurufen, initiiert. Dieses Beispiel einer Verletzung der Integrität resultiert darin, dass wichtige Daten mit Werten unter der Kontrolle des jeweiligen Angreifers überschrieben werden könnten.
-
Schutzmechanismen wie Zugriffsrechts-Flags in Speicherverwaltungseinheiten werden verwendet, um vor einer Verletzung der Integrität zu schützen. Schutzstufen (Kernel, Benutzer usw.) sowie Datenredundanz, redundante Operationen usw. sind bekannt. Jedoch wurden diese Schutzmechanismen ebenfalls einer Verletzung der Integrität unterworfen.
-
Kurzfassung
-
Eine Ausführungsform der Erfindung stellt ein Rechensystem bereit, welches ausgelegt ist, um vor einer Verletzung der Integrität zu schützen, wobei das Rechensystem eine Verarbeitungseinheit und eine kritische Ressource umfasst, wobei die kritische Ressource von der Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann, wobei die kritische Ressource ausgelegt ist, um einen Abfragewert intermittierend an die Verarbeitungseinheit zu übertragen, wobei die Verarbeitungseinheit ausgelegt ist, um eine Transformation auf den Abfragewert anzuwenden, um einen Antwortwert zu erhalten und den Antwortwert zurück an die kritische Ressource zu senden, und die kritische Ressource ausgelegt ist, um den Antwortwert auf Korrektheit zu überprüfen, um so ein Überprüfungsergebnis zu erhalten und die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis zu unterwerfen.
-
Eine weitere Ausführungsform stellt ein Verfahren zum Schutz eines Rechensystems vor einer Verletzung der Integrität bereit, wobei das Rechensystem eine Verarbeitungseinheit und eine kritische Ressource umfasst, wobei die kritische Ressource von der Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann, wobei das Verfahren umfasst: intermittierendes Übertragen eines Abfragewerts von der kritischen Ressource an die Verarbeitungseinheit; Anwenden einer Transformation auf den Abfragewert, so dass ein Antwortwert erhalten wird; Senden des Antwortwerts von der Verarbeitungseinheit zurück an die kritische Ressource; Überprüfen des Antwortwerts auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird; und Unterwerfen der Steuerbarkeit der kritischen Ressource einer Abhängigkeit vom Überprüfungsergebnis.
-
Eine weitere Ausführungsform stellt ein nicht-transitorisches computerlesbares Speichermedium bereit, welches Programmanweisungen speichert, die, wenn sie von einem Rechensystem ausgeführt werden, das Rechensystem vor einer Verletzung der Integrität schützen, wobei das Rechensystem eine Verarbeitungseinheit und eine kritische Ressource umfasst, wobei die kritische Ressource von der Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann, die Programmanweisungen umfassend: ersten Programmcode zum Veranlassen des Rechensystems, die Verarbeitung des intermittierenden Übertragens eines Abfragewerts von der kritischen Ressource an die Verarbeitungseinheit auszuführen; zweiten Programmcode zum Veranlassen des Rechensystems, die Verarbeitung der Anwendung einer Transformation auf den Abfragewert, so dass ein Antwortwert erhalten wird, auszuführen; dritten Programmcode zum Veranlassen des Rechensystems, die Verarbeitung des Sendens des Antwortwerts von der Verarbeitungseinheit zurück zur kritischen Ressource auszuführen; vierten Programmcode zum Veranlassen des Rechensystems, die Verarbeitung der Prüfung des Antwortwerts auf Korrektheit auszuführen, so dass ein Überprüfungsergebnis erhalten wird; und fünften Programmcode zum Veranlassen des Rechensystems, die Verarbeitung des Unterwerfens der Steuerbarkeit der kritischen Ressource einer Abhängigkeit vom Überprüfungsergebnis auszuführen.
-
Eine weitere Ausführungsform stellt einen integrierten Chip bereit, welcher eine zentrale Verarbeitungseinheit und eine kryptographische periphere Vorrichtung umfasst, wobei die kryptographische periphere Vorrichtung von der zentralen Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann, wobei die kryptographische periphere Vorrichtung ausgelegt ist, um intermittierend einen Abfragewert an die zentrale Verarbeitungseinheit zu übertragen, wobei die zentrale Verarbeitungseinheit ausgelegt ist, um eine Transformation auf den Abfragewert anzuwenden, so dass ein Antwortwert erhalten wird und der Antwortwert zurück an die kryptographische periphere Vorrichtung gesendet wird, und die kryptographische periphere Vorrichtung ausgelegt ist, um den Antwortwert auf Korrektheit zu überprüfen, um so ein Überprüfungsergebnis zu erhalten, und die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis unterworfen wird, wobei die zentrale Verarbeitungseinheit ausgelegt ist, um die kryptographische periphere Vorrichtung zu steuern, so dass sie gesperrt ist, wenn die kryptographische periphere Vorrichtung nicht von einem Programm erforderlich ist, welches auf der zentralen Verarbeitungseinheit ausgeführt wird, und entsperrt ist, wenn die kryptographische periphere Vorrichtung vom Programm erforderlich ist, welches auf der zentralen Verarbeitungseinheit ausgeführt wird.
-
Fachleute auf diesem Gebiet werden weitere Merkmale und Vorteile beim Lesen der folgenden ausführlichen Beschreibung und beim Betrachten der beigefügten Zeichnungen erkennen.
-
Kurze Beschreibung der Zeichnungen
-
Ausführungsformen der vorliegenden Erfindung werden im Folgenden mit Bezug auf die Figuren beschrieben.
-
1 zeigt ein Blockschaltbild eines Rechensystems;
-
2 zeigt ein schematisches Sequenzdiagramm, um ein Verfahren zum Schutz eines Rechensystems gemäß einer Ausführungsform der Erfindung zu veranschaulichen;
-
3 zeigt ein schematisches Sequenzdiagramm, um ein Verfahren zum Schutz eines Rechensystems gemäß einer weiteren Ausführungsform der Erfindung zu veranschaulichen;
-
4 zeigt ein schematisches Sequenzdiagramm, um ein Verfahren zum Schutz eines Rechensystems, welches mehr als zwei Schritte erfordert, gemäß einer weiteren Ausführungsform der Erfindung zu veranschaulichen;
-
5 zeigt ein schematisches Sequenzdiagramm, um ein Verfahren zum Schutz eines Rechensystems, welches Zugriff auf mehr als ein Sperrregister erfordert, gemäß einer weiteren Ausführungsform der Erfindung zu veranschaulichen; und
-
6 zeigt ein Flussdiagramm, welches Schritte umfasst, die von einem Verfahren zum Schutz eines Rechensystems vor einer Verletzung der Integrität durchgeführt werden.
-
Ausführliche Beschreibung
-
Verschiedene Ausführungsformen der hier offenbarten Lehren werden nachfolgend unter Bezugnahme auf 1 bis 6 erläutert. In den Zeichnungen sind gleiche Bezugszeichen für Objekte mit gleichen oder ähnlichen Funktionen bereitgestellt, so dass Objekte, welche durch identische Bezugszeichen in den verschiedenen Ausführungsformen bezeichnet sind, austauschbar sind und die Beschreibung wechselseitig aufeinander anwendbar ist.
-
1 zeigt ein schematisches Blockschaltbild eines Rechensystems 10, welches eine Verarbeitungseinheit 12 umfasst, die mit einer Mehrzahl von kritischen Ressourcen 14_1 bis 14_N verbunden ist. Die kritischen Ressourcen 14_1 bis 14_N sind mit der Verarbeitungseinheit 12 durch die entsprechenden Lese-/Schreibleitungen 16_1 bis 16_N verbunden, wodurch Kommunikation in beiden Richtungen ermöglicht wird. Als Beispiel wird die Verarbeitungseinheit 12 mit einer weiteren Ressource 18, beispielsweise ein nicht-kryptographischer Prozessor oder eine periphere USB-Vorrichtung, verbunden gezeigt.
-
Schutz gegen Fehlerangriffe, d. h. Verletzung der Integrität, wird durch das Deaktivieren jeder der kritischen Ressourcen 14_1 bis 14_N erzielt, welche während einer Operation des Rechensystems 10 nicht erforderlich sind. Insbesondere wird der Schutz vor einer Verletzung der Integrität durch Deaktivieren des Zugriffs auf eine Anzahl der Mehrzahl der kritischen Ressourcen 14_1 bis 14_N erzielt, welche während einer Operation des Rechensystems 10 nicht erforderlich sind. Als ein Beispiel werden im Rahmen eines Verschlüsselungsprozesses die jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N wie beispielsweise eine periphere UART-Vorrichtung, um ein unerwünschtes Lecken von Schlüsseln nach außen zu vermeiden, auf deaktiviert eingestellt, während ein Geheimschlüssel von einem Speicher, welcher den besagten Geheimschlüssel speichert, an eine Verschlüsselungsvorrichtung oder -routine übertragen wird. Obwohl nicht gezeigt, sind sowohl der Speicher als auch die Verschlüsselungseinrichtung im Rechensystem 10 enthalten.
-
Wie oben erwähnt, sind die jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N im Verlauf des Verschlüsselungsprozesses deaktiviert. Mit anderen Worten steuert die Verarbeitungseinheit 12 die jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N so, dass sie gesperrt sind im Falle, dass die kritischen Ressourcen nicht für eine Operation des Rechensystems 10 erforderlich sind, und entsperrt sind im Falle, dass die kritischen Ressourcen für die Operation des Rechensystems 10 erforderlich sind. Nur als Vorsichtsmaßnahme wird darauf hingewiesen, dass Zwischenzustände ebenso eingestellt werden können: Die Einschränkung von allen kritischen Ressourcen kann schrittweiser Natur sein. Beispielsweise kann nur eine echte Teilmenge von Funktionalitäten der kritischen Ressource deaktiviert sein, während andere aktiv gelassen werden. Folglich kann das Sperren lediglich zu einer Deaktivierung eines Unterteils von Funktionalitäten der jeweiligen gesperrten kritischen Ressource führen.
-
Nach Beendigung des Verschlüsselungsprozesses wird der Geheimschlüssel in der Verschlüsselungsvorrichtung gelöscht. Anschließend werden die jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N aktiviert und das Verschlüsselungsergebnis wird ausgegeben. Auf diese Weise kann der Geheimschlüssel nicht leicht aus dem Speicher oder der Verschlüsselungsvorrichtung zu wenigstens einer der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N lecken, wobei das Leck beispielsweise durch eine Verletzung der Integrität induziert sein könnte.
-
Das Verfahren zum Deaktivieren und Aktivieren der jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N, wie oben erwähnt, kann beispielsweise direkt durch die periphere Vorrichtungen oder beispielsweise eine zentrale periphere Zugriffseinheit (Peripheral Access Unit, PAU) ausgeführt werden. Für einen Angreifer ist eine der Anzahl von Möglichkeiten, um der digitalen Gegenmaßnahme zu entweichen, welche verwendet wird, um vor einer Verletzung der Integrität zu schützen, wie oben erwähnt, die Aktivierung von wenigstens einer der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N durch einen einfachen Angriff. Mit anderen Worten kann während des Prozesses der Übertragung des Geheimschlüssels aus dem Speicher zur Verschlüsselungsvorrichtung und während des Verschlüsselungsprozesses selbst wenigstens eine der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N vom Angreifer durch eine Verletzung der Integrität zur Aktivierung forciert werden. Dabei kann der Geheimschlüssel während der Übertragung aus dem Speicher oder der Verschlüsselungsvorrichtung zur wenigstens einen kritischen Ressource, welche durch eine Verletzung der Integrität aktiviert wurde, ausspioniert werden.
-
Ein Sperrmechanismus für kritische Ressourcen ist vorgesehen, wobei der Sperrmechanismus hindern kann, d. h. die verbotene Aktivierung der nicht verbotenen Aktivierung der kritischen Ressource verhindern kann. Hierzu werden Sperr- und Entsperrsequenzen erzeugt, welche verwendet werden, um die kritische Ressource zu sperren und zu entsperren. Insbesondere werden die jeweiligen der Mehrzahl von kritischen Ressourcen 14_1 bis 14_N durch die Verarbeitungseinheit 12 gesteuert, so dass sie gesperrt oder entsperrt sind. Daher wird die unbefugte Aktivierung einer jeweiligen kritischen Ressource gesperrt.
-
Unter Rückbezug auf 1 umfassen die kritischen Ressourcen 14_1 bis 14_N jeweils die Registerstapel 20_1 bis 20_N. Jedes der Registerstapel 20_1 bis 20_N umfasst eine Mehrzahl von Registern. Ferner umfassen die kritischen Ressourcen 14_1 bis 14_N jeweils die endlichen Automaten 22_1 bis 22_N. Jedes der Register eines jeweiligen der Registerstapel 20_1 bis 20_N ist mit einem jeweiligen der endlichen Automaten 22_1 bis 22_N verbunden.
-
Um den oben erwähnten Sperrmechanismus zu erzielen, überträgt wenigstens eine der kritischen Ressourcen 14_1 bis 14_N intermittierend einen Abfragewert an die Verarbeitungseinheit 12 über eine jeweilige der Lese-/Schreibleitungen 16_1 bis 16_N. Dieser Abfragewert wird im Voraus in einem der Register der jeweiligen kritischen Ressource gespeichert. Man beachte, dass dieser Abfragewert ebenfalls Hardware-implementiert sein kann. Bei dieser Option kann die Bereitstellung der Register weggelassen werden.
-
Die Verarbeitungseinheit 12 wendet wiederum eine Transformation auf den empfangenen Abfragewert an, so dass ein Antwortwert erhalten wird. Dann überträgt die Verarbeitungseinheit 12 den Antwortwert zurück an die jeweilige kritische Ressource über die jeweilige Lese-/Schreibleitung. Ferner prüft die kritische Ressource den Antwortwert auf Korrektheit, um so ein Überprüfungsergebnis zu erhalten. Je nach Überprüfungsergebnis unterwirft die kritische Ressource die Steuerbarkeit.
-
Mit anderen Worten besteht die oben erwähnte Sequenz aus einer Sequenz von Lese- und Schreiboperationen zu den Registern des Stapels von Registern 20_1 bis 20_N der jeweiligen kritischen Ressource 14_1 bis 14_N. Während der Lese- und Schreiboperationen werden spezielle Werte in beiden Richtungen übertragen. Der endliche Automat 22_1 bis 22_N, welcher jeweils in jeder kritischen Ressource 14_1 bis 14_N umfasst ist, verfolgt die Sequenz der Operationen und übertragenen Werte und gewährt nur dann Zugriff, wenn die Sequenz und Werte korrekt sind.
-
Als ein zusätzlicher Parameter der Sequenz können Informationen in Bezug auf eine Zeitbasis verwendet werden. Beispielsweise ist eine Ressource entsperrt, eine Operation wird darauf durchgeführt, und dann ist die Ressource ausgelegt, um nach dieser Operation automatisch wieder zu sperren. In diesem Fall würde die Entsperrung lediglich für eine Operation durchgeführt werden, und die Sperrung würde automatisch nach der Ausführung der Operation durchgeführt werden. Die Zeitbasis könnte folglich den entsperrten Zustand lediglich für eine vorläufige Zeit gewähren und diese vorläufige Natur der Entsperrung angeben oder sogar die gemessene vorläufige Zeit beispielsweise nach Anzahl der Ausführungen der Operation oder Zeit angeben. Man beachte, dass die kritische Ressource die Übertragung des Abfragewerts an die jeweiligen kritischen Ressourcen 14_1 bis 14_N nach Empfang eines Befehls von der Verarbeitungseinheit 12 initiiert, welche die jeweilige kritische Ressource 14_1 bis 14_N steuert, so dass sie entsperrt wird. Neben der Überprüfung des Antwortwerts auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, wie oben erwähnt, unterwirft die kritische Ressource die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis basierend auf dem Antwortwert einer Sequenz von Abfragewerten. Als Option, im Falle, dass die kritische Ressource die Mehrzahl von Registern in den Registerstapeln 20_1 bis 20_N umfasst, liest die wenigstens eine kritische Ressource 14_1 bis 14_N die Sequenz von Abfragewerten von verschiedenen der Mehrzahl von Registern.
-
Zusammengefasst wird das Rechensystem 10 bereitgestellt, umfassend Verarbeitungseinheit 12, welche ausgelegt ist, um die jeweilige kritische Ressource zu steuern, so dass sie gesperrt ist im Falle, dass die kritische Ressource nicht für eine Operation des Rechensystems 10 erforderlich ist, und entsperrt ist im Falle, dass die kritische Ressource für die Operation des Rechensystems 10 erforderlich ist.
-
Das Rechensystem 10 kann ferner Sequenzen zwischen der Verarbeitungseinheit 12, beispielsweise einer zentralen Verarbeitungseinheit, auch als ein Requester (Anforderer) bezeichnet, und einer Mehrzahl von kritischen Ressourcen 14_1 bis 14_N, welche auch als kryptographische periphere Vorrichtungen bezeichnet werden, austauschen. Insbesondere beziehen sich die kritischen Ressourcen 14_1 bis 14_N auf Module, welche Daten handhaben, die geheim gehalten werden sollten oder integral sein müssen.
-
Dies gilt für einen Speicherbereich, welcher einen Geheimschlüssel enthält, beispielsweise in einem Direktzugriffsspeicher (Random Access Memory, RAM) oder nicht-flüchtigen Speicher (Non-Volatile Memory, NVM). Ferner sind die oben erwähnten kritischen Ressourcen 14_1 bis 14_N durch eine periphere Vorrichtung definiert, welche mit dem Geheimnis funktionieren, beispielsweise ein Verschlüsselungsmodul. In einem anderen Beispiel können die kritischen Ressourcen 14_1 bis 14_N durch periphere Vorrichtungen veranschaulicht werden, welche dieses Geheimnis offenbaren können, aber in der Regel nicht dazu vorgesehen sind, beispielsweise eine Ausgabevorrichtung wie eine periphere Universal Asynchronous Receiver Transmitter(UART)- oder Universal Serial Bus(USB)-Vorrichtung.
-
2 zeigt ein Sequenzdiagramm, welches ein Beispiel einer Sperrsequenz umfassend Lese- und Schreiboperationen zwischen einer kritischen Ressource (auf der rechten Seite der Figur in Betracht gezogen) und einer Verarbeitungseinheit (auf der linken Seite der Figur in Betracht gezogen) darstellt. Die in dieser Darstellung gezeigte Sperrsequenz umfasst das Übertragen eines Abfragewerts x = v(L1), welcher aus einem Register L1 der kritischen Ressource gelesen wird, zur Verarbeitungseinheit (siehe 1). Die Verarbeitungseinheit wendet wiederum eine Transformation T auf den Abfragewert x = v(L1) an, um das Ergebnis der Formel y = T(x) zu erhalten, wobei das Ergebnis y als Antwortwert definiert ist.
-
Nach dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y zum Register L1 der kritischen Ressource geschrieben. Nach dem Schreiben von y zum Register L1 überprüft die kritische Ressource diesen Antwortwert y auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Darüber hinaus oder als Option überprüft die kritische Ressource die Sequenz der Lese- und Schreiboperationen auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Insbesondere überprüft der endliche Automat (siehe 1) der kritischen Ressource, dass die Leseoperation aus dem Register L1 von der Schreiboperation zum Register L1 unter Verwendung des korrekten Werts vref = T(v) gefolgt wird.
-
Man beachte, dass die kritische Ressource ausgelegt ist, um die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis des Antwortwerts einer Sequenz von Abfragewerten zu unterwerfen. Die kritische Ressource ist beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis ausgelegt, um eine Anzahl von Zugriffen der Verarbeitungseinheit auf die kritische Ressource zu zählen, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Anzahl der Zugriffe einen vorbestimmten Wert überschreitet.
-
3 zeigt ein Sequenzdiagramm, welches ein Beispiel einer Sperrsequenz umfassend Lese- und Schreiboperationen zwischen einer kritischen Ressource und einer Verarbeitungseinheit (siehe 1) darstellt. Die in dieser Darstellung gezeigte Sperrsequenz umfasst das Übertragen eines Abfragewerts x = v(t0, L1), welcher aus einem Register L1 der kritischen Ressource gelesen wird, zur Verarbeitungseinheit (siehe 1). Im Gegensatz zu der in 2 gezeigten Sequenz ist der Wert v, welcher aus dem Register L1 gelesen wird, nun ein Sequenzwert oder Zufallswert v(t0, L1) auf einer Zeitbasis. Die Verarbeitungseinheit wendet wiederum eine Transformation T auf den Abfragewert x = v(t, L1) an, um das Ergebnis der Formel y = Tt(x) zu erhalten, wobei das Ergebnis y als Antwortwert definiert ist. Nach Ausführung dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y zum Register L1 geschrieben. Nach dem Schreiben von y zum Register L1 überprüft die kritische Ressource diesen Antwortwert y auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Mit anderen Worten muss die Transformation T Tt(v(t, L1)) berechnen und zurückschreiben.
-
Dabei kann, unter Annahme einer Verletzung der Integrität, diese Verletzung den Wert T nicht zu einer Konstante (Vref) forcieren, welche zuvor hätte ausspioniert sein können. Dies erschwert abermals eine Verletzung der Integrität. Ferner hängt diese Transformation in dem in 3 gezeigten Beispiel ebenfalls vom Zeitindex t ab, d. h. T = Tt. Daher ist die Transformation zu jedem Zeitpunkt unterschiedlich.
-
Darüber hinaus oder als Option überprüft die kritische Ressource die Sequenz der Lese- und Schreiboperationen auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Die kritische Ressource ist beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis ausgelegt, um eine Anzahl von Zugriffen der Verarbeitungseinheit auf die kritische Ressource zu zählen, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Anzahl der Zugriffe einen vorbestimmten Wert überschreitet.
-
Insbesondere überprüft der endliche Automat (jeweils 1) der kritischen Ressource, dass die Leseoperation aus dem Register L1 von der Schreiboperation zum Register L1 unter Verwendung des korrekten Werts vref = Tt(v(t, L1)) gefolgt wird.
-
4 zeigt ein weiteres beispielhaftes Sequenzdiagramm, welches Sperr- oder Entsperrsequenzen darstellt, die mehr als zwei Schritte erfordern. Insbesondere 4 zeigt ein Sequenzdiagramm, welches ein Beispiel einer Mehrzahl von Sperrsequenzen umfassend Lese- und Schreiboperationen zwischen einer kritischen Ressource und einer Verarbeitungseinheit darstellt.
-
Die in dieser Darstellung gezeigte Sperrsequenz umfasst das Übertragen eines Abfragewerts x = v1(t, L1), welcher aus einem Register L1 der kritischen Ressource gelesen wird, zur Verarbeitungseinheit (siehe 1). Im Gegensatz zu der in 2 gezeigten Sequenz ist der Wert v, welcher aus dem Register L1 gelesen wird, nun ein Sequenzwert oder Zufallswert v1(t, L1). Die Verarbeitungseinheit wendet wiederum eine Transformation T auf den Abfragewert x = v1(t, L1) an, um das Ergebnis der Formel y1 = T1,t(x1) zu erhalten, wobei das Ergebnis y1 als Antwortwert definiert ist. Nach dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y1 zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y1 zum Register L1 geschrieben, um als Abfragewert für eine nächste Übertragung zur Verarbeitungseinheit zu dienen. Nach dem Schreiben von y1 zum Register L1 überprüft die kritische Ressource diesen Antwortwert y1 auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Mit anderen Worten muss die Transformation T T1,t(v1(t, L1)) berechnen und zurückschreiben.
-
Wenn y1 = T1,t(v1(t, L1)) nicht wahr ist, wird die Sequenz gestoppt und ein Integritätsverletzungsalarm ausgegeben. Wenn y1 = T1,t(v1(t, L1)) jedoch wahr ist, geht die Sequenz zu einer Sequenz der Übertragung des Abfragewerts x = v2(t, L1), welcher aus dem Register L1 der kritischen Ressource gelesen wird, an die Verarbeitungseinheit weiter. Man beachte, dass dieser Abfragewert zuvor in der Sequenz in das Register L1 zurückgeschrieben wurde. Die Verarbeitungseinheit wendet wiederum eine Transformation T2,t auf den Abfragewert x2 = v2(t, L1) an, um das Ergebnis der Formel y2 = T2,t(x2) zu erhalten, wobei das Ergebnis y2 als Antwortwert definiert ist. Nach dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y2 zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y2 zum Register L1 geschrieben. Nach dem Schreiben von y2 zum Register L1 überprüft die kritische Ressource diesen Antwortwert y2 auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Mit anderen Worten muss die Transformation T T2,t(v2(t, L1)) berechnen und zurückschreiben.
-
Wenn y2 = T2,t(v2(t, L1)) nicht wahr ist, wird die Sequenz gestoppt und ein Integritätsverletzungsalarm ausgegeben. Wenn y2 = T2,t(v2(t, L1)) jedoch wahr ist, werden die obigen Sequenzen N-mal wiederholt, wobei N eine ganze Zahl ist, welche vorbestimmt ist oder von einem Operator eingestellt wird.
-
Darüber hinaus oder als Option überprüft die kritische Ressource die Sequenz der Lese- und Schreiboperationen auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Die kritische Ressource ist beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis ausgelegt, um eine Anzahl von Zugriffen der Verarbeitungseinheit auf die kritische Ressource zu zählen, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Anzahl der Zugriffe einen vorbestimmten Wert überschreitet.
-
Insbesondere überprüft der endliche Automat der kritischen Ressource N-mal, dass die Leseoperation aus dem Register L1 von der Schreiboperation zum Register L1 unter Verwendung des korrekten Werts vref = TN,t(vN(t, L1)) gefolgt wird.
-
Im Vergleich zu den in 2 und 3 angegebenen Sequenzen wird eine höhere Zuverlässigkeit bei der Erkennung einer Verletzung der Integrität bereitgestellt. Man beachte, dass sich diese Zuverlässigkeit erhöht, je größer N ist.
-
5 zeigt ein weiteres beispielhaftes Sequenzdiagramm, welches Sperr- oder Entsperrsequenzen darstellt, die Zugriff auf mehr als ein Register erfordern. In diesem Beispiel ist die kritische Ressource ausgelegt, um die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis des Antwortwerts einer Sequenz von Abfragewerten zu unterwerfen, wobei die kritische Ressource die Mehrzahl von Registern umfasst und ausgelegt ist, um die Sequenz von Abfragewerten aus verschiedenen der Mehrzahl von Registern zu lesen.
-
Die in 5 gezeigten Sequenzen umfassen das Übertragen eines Abfragewerts x = vx(t, L1), welcher aus einem Register Lx einer Mehrzahl von Registern der kritischen Ressource gelesen wird, zur Verarbeitungseinheit (siehe 1). Der aus dem Register Lx gelesene Wert ist nun ein Sequenzwert oder Zufallswert vx(t, L1). Die Verarbeitungseinheit wendet wiederum eine Transformation T1,t auf den Abfragewert x1 = vx(t, Lx) an, um das Ergebnis der Formel y1 = T1,t(x1) zu erhalten, wobei das Ergebnis y1 als Antwortwert definiert ist. Nach Ausführung dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y1 zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y1 zum Register Ly zurückgeschrieben, welches sich vom Register Lx unterscheidet, um als Abfragewert für eine nächste Übertragung zur Verarbeitungseinheit zu dienen. Nach dem Schreiben von y1 zum Register Ly überprüft die kritische Ressource diesen Antwortwert y1 auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Mit anderen Worten muss die Transformation T T1,t(vx(t, Lx) berechnen und zurückschreiben.
-
Wenn y1 = T1,t(vx(t, Lx)) nicht wahr ist, wird die Sequenz gestoppt und ein Integritätsverletzungsalarm ausgegeben. Wenn y1 = T1,t(vx(t, Lx)) jedoch wahr ist, geht die Sequenz zu einer Sequenz der Übertragung des Abfragewerts x = vz(t, Lz), welcher aus dem Register Lz (welches sich von den Registern Lx und Ly unterscheidet) der kritischen Ressource gelesen wird, an die Verarbeitungseinheit weiter. Die Verarbeitungseinheit wendet wiederum eine Transformation T2,t auf den Abfragewert x2 = vz(t, Lz) an, um das Ergebnis der Formel y2 = T2,t(x2) zu erhalten, wobei das Ergebnis y2 als Antwortwert definiert ist. Nach Ausführung dieser Transformation überträgt die Verarbeitungseinheit den Antwortwert y2 zurück zur kritischen Ressource. Insbesondere wird der Antwortwert y2 zu einem nächsten Register Lw (welches sich von den Registern Lx, Ly und Lz unterscheidet) geschrieben. Nach dem Schreiben von y2 zum Register Lw überprüft die kritische Ressource diesen Antwortwert y2 auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Mit anderen Worten muss die Transformation T T2,t(vz(t, Lz)) berechnen und zurückschreiben.
-
Wenn y2 = T2,t(vz(t, Lz)) nicht wahr ist, wird die Sequenz gestoppt und ein Integritätsverletzungsalarm ausgegeben. Wenn y2 = T2,t(vz(t, Lz)) jedoch wahr ist, werden die obigen Sequenzen N-mal wiederholt, wobei N eine ganze Zahl ist, welche vorbestimmt ist oder von einem Operator eingestellt wird.
-
Darüber hinaus oder als Option überprüft die kritische Ressource die Sequenz der Lese- und Schreiboperationen auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird, und unterwirft die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis. Die kritische Ressource ist beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis ausgelegt, um eine Anzahl von Zugriffen der Verarbeitungseinheit auf die kritische Ressource zu zählen, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Anzahl der Zugriffe einen vorbestimmten Wert überschreitet. Ferner ist die kritische Ressource beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis ausgelegt, um eine Zeitdauer zu messen, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Zeitdauer einen vorbestimmten Wert überschreitet.
-
Insbesondere überprüft der endliche Automat der kritischen Ressource N-mal, dass die Leseoperation aus dem Register LN von der Schreiboperation zum Register LN unter Verwendung des korrekten Werts v = TN,t(vv(t, Lv)) gefolgt wird.
-
Zusammengefasst ist die kritische Ressource ausgelegt, dass sie die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis des Antwortwerts einer Sequenz von Abfragewerten unterwirft, wobei die kritische Ressource eine Mehrzahl von Registern umfasst und ausgelegt ist, um die Sequenz von Abfragewerten aus verschiedenen der Mehrzahl von Registern zu lesen.
-
Im Vergleich zu den in 2 bis 4 angegebenen Sequenzen wird aufgrund der Mehrzahl von Zugriffen auf mehr als ein Register eine höhere Zuverlässigkeit bei der Erkennung einer Verletzung der Integrität bereitgestellt. Man beachte, dass sich diese Zuverlässigkeit erhöht, wenn N erhöht wird.
-
Ferner ändert die kritische Ressource intermittierend den Speicherinhalt des Registers. Als Option kann dies unter Verwendung einer Zufalls- oder Pseudozufallssequenz von Werten durchgeführt werden. Als eine weitere Option ändert die Verarbeitungseinheit die Transformation sequentiell in einer deterministischen Art und Weise. Insbesondere kann ein rückgekoppeltes Schieberegister verwendet werden, um die Aufgabe einer Registerwertänderung durchzuführen.
-
Mit anderen Worten zählt die kritische Ressource beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis eine Anzahl von Zugriffen der Verarbeitungseinheit auf die kritische Ressource, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Anzahl der Zugriffe einen vorbestimmten Wert überschreitet.
-
Die kritische Ressource misst beim Unterwerfen der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis eine Zeitdauer, während die kritische Ressource entsperrt ist, so dass sie automatisch gesperrt wird, wenn die Zeitdauer einen vorbestimmten Wert überschreitet. Man beachte, dass die Verarbeitungseinheit die kritische Ressource steuert, so dass sie gesperrt ist im Falle, dass die kritische Ressource nicht für eine Operation des Rechensystems erforderlich ist, und entsperrt ist im Falle, dass die kritische Ressource für die Operation des Rechensystems erforderlich ist.
-
Wie oben beschrieben, kann die Sperrung gemäß den in 2 bis 4 gezeigten Sequenzdiagrammen nur für eine Operation oder eine feste Anzahl von Operationen gültig sein. Die kritische Ressource kehrt automatisch in den gesperrten oder entsperrten Zustand zurück. Für die nächste Operation muss die Ressource jedoch wieder entsperrt sein. Wenn mehr als ein Zugriff erlaubt ist, kann die kritische Ressource beispielsweise die Anzahl der Zugriffe zählen und überprüfen, ob die erlaubte Anzahl erreicht oder überschritten wurde. Im letzteren Fall wird der Zugriff verweigert.
-
Jedoch kann die Sperrung oder Entsperrung ebenfalls mit einer zeitlichen Dimension, d. h. einer Dauer, versehen sein. Als ein Beispiel kann die kritische Ressource die verstrichene Zeit zwischen Zugriffsoperationen basierend auf einer speziellen Zeitbasis messen, z. B. Zyklen und/oder ab der Entsperrung, und wenn die gemessene Zeit den Grenzwert überschreitet, dann wird die kritische Ressource wieder gesperrt.
-
6 zeigt ein Verfahren zum Schutz eines Rechnersystems vor einer Verletzung der Integrität. Das Rechensystem umfasst eine Verarbeitungseinheit und eine kritische Ressource, wobei die kritische Ressource von der Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann.
-
Das Verfahren umfasst einen Schritt S1 der intermittierenden Übertragung eines Abfragewerts von der kritischen Ressource an die Verarbeitungseinheit. Dieser Schritt kann die Initiierung der Übertragung des Abfragewerts an die kritische Ressource nach Empfang eines Kommentars von der Verarbeitungseinheit umfassen, welche die kritische Ressource steuert, so dass sie entsperrt wird.
-
Das Verfahren umfasst ferner einen Schritt S2 der Anwendung einer Transformation auf den Abfragewert, so dass ein Antwortwert erhalten wird. Ferner ist ein Schritt S3 zum Senden des Antwortwerts von der Verarbeitungseinheit zurück zur kritischen Ressource umfasst. Das Verfahren umfasst den nachfolgenden Schritt S4 zur Überprüfung des Antwortwerts auf Korrektheit, so dass ein Überprüfungsergebnis erhalten wird. Als Option werden das Lesen des Abfragewerts aus dem Register und das Zurückschreiben des Antwortwerts an das Register durchgeführt, so dass er als ein Abfragewert für eine nächste Übertragung an die Verarbeitungseinheit dienen kann. Das Verfahren umfasst ferner den Schritt S5 des Unterwerfens der Steuerbarkeit der kritischen Ressource einer Abhängigkeit vom Überprüfungsergebnis.
-
Darüber hinaus kann das Verfahren einen Schritt des Unterwerfens der Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis des Antwortwerts einer Sequenz von Abfragewerten und Lesen der Sequenz von Abfragewerten aus verschiedenen der Mehrzahl von Registern umfassen.
-
Eine beispielhafte Sequenz ist ein Datenstrom oder eine Sequenz von Signalen, welcher bzw. welche ein Computerprogramm zur Durchführung des hierin beschriebenen Verfahrens repräsentiert. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise so ausgelegt sein, dass er bzw. sie über eine Datenkommunikationsverbindung übertragen wird.
-
Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert werden, wobei der Programmcode zur Durchführung des Verfahrens ausgelegt ist, wenn das Computerprogrammprodukt auf einer Verarbeitungseinheit ausgeführt wird. Der Programmcode kann beispielsweise auf einem nicht-transitorischen computerlesbaren Speichermedium gespeichert sein.
-
Insbesondere kann das hierin beschriebene Verfahren von einem Rechensystem umfassend ein nicht-transitorisches computerlesbares Speichermedium ausgeführt werden, welches Programmanweisungen speichert, die, wenn sie vom Rechensystem ausgeführt werden, das Rechensystem vor einer Verletzung der Integrität schützt. Das Rechensystem umfasst eine Verarbeitungseinheit und eine kritische Ressource, wobei die kritische Ressource von der Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann.
-
Die Programmanweisungen umfassen einen ersten Programmcode zum Veranlassen, dass das Rechensystem eine Verarbeitung der intermittierenden Übertragung eines Abfragewerts von der kritischen Ressource an die Verarbeitungseinheit ausführt. Ferner umfasst ist ein zweiter Programmcode zum Veranlassen, dass das Rechensystem eine Verarbeitung der Anwendung einer Transformation auf den Abfragewert ausführt, so dass ein Antwortwert erhalten wird. Ferner umfasst ist ein dritter Programmcode zum Veranlassen, dass das Rechensystem eine Verarbeitung des Sendens des Antwortwerts von der Verarbeitungseinheit zurück zur kritischen Ressource ausführt.
-
Ferner umfasst ist ein vierter Programmcode zum Veranlassen, dass das Rechensystem eine Verarbeitung der Überprüfung des Antwortwerts auf Korrektheit ausführt, so dass ein Überprüfungsergebnis erhalten wird. Ferner umfasst ist ein fünfter Programmcode zum Veranlassen, dass das Rechensystem eine Verarbeitung des Unterwerfens der Steuerbarkeit der kritischen Ressource einer Abhängigkeit vom Überprüfungsergebnis ausführt.
-
Weitere Ausführungsformen umfassen einen integrierten Chip mit einer zentralen Verarbeitungseinheit und einer kryptographischen peripheren Vorrichtung, wobei die kryptographische periphere Vorrichtung von der zentralen Verarbeitungseinheit steuerbar ist, so dass sie gesperrt oder entsperrt sein kann. Die kryptographische periphere Vorrichtung ist ausgelegt, um einen Abfragewert intermittierend an die zentrale Verarbeitungseinheit zu übertragen, die zentrale Verarbeitungseinheit ist ausgelegt, um eine Transformation auf den Abfragewert anzuwenden, so dass ein Antwortwert erhalten wird und der Antwortwert zurück an die kryptographische periphere Vorrichtung gesendet wird.
-
Ferner ist die kryptographische periphere Vorrichtung ausgelegt, um den Antwortwert auf Korrektheit zu überprüfen, so dass ein Überprüfungsergebnis erhalten wird, und um die Steuerbarkeit einer Abhängigkeit vom Überprüfungsergebnis zu unterwerfen. Die zentrale Verarbeitungseinheit ist ausgelegt, um die kryptographische periphere Vorrichtung zu steuern, so dass sie gesperrt ist, wenn die kryptographische periphere Vorrichtung nicht von einem Programm benötigt wird, welches auf der zentralen Verarbeitungseinheit ausgeführt wird, und entsperrt ist, wenn die kryptographische periphere Vorrichtung vom Programm benötigt wird, welches auf der zentralen Verarbeitungseinheit ausgeführt wird.
-
Obwohl einige Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, ist es klar, dass diese Aspekte ebenfalls eine Beschreibung des entsprechenden Verfahrens repräsentieren, wobei ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. In analoger Weise repräsentieren im Zusammenhang mit einem Verfahrensschritt beschriebene Aspekte ebenfalls eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung.
-
Die oben beschriebenen Ausführungsformen veranschaulichen lediglich die Prinzipien der vorliegenden Erfindung. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Auslegungen und Details für andere Fachleute auf diesem Gebiet offensichtlich sein werden. Es ist daher die Absicht, nur durch den Schutzbereich der bevorstehenden Patentansprüche und nicht durch die spezifischen Details, welche hierin mittels Beschreibung und Erklärung der Ausführungsformen präsentiert werden, eingeschränkt zu sein.