DE102008006759B4 - Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit - Google Patents
Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit Download PDFInfo
- Publication number
- DE102008006759B4 DE102008006759B4 DE102008006759.8A DE102008006759A DE102008006759B4 DE 102008006759 B4 DE102008006759 B4 DE 102008006759B4 DE 102008006759 A DE102008006759 A DE 102008006759A DE 102008006759 B4 DE102008006759 B4 DE 102008006759B4
- Authority
- DE
- Germany
- Prior art keywords
- processor
- memory
- secret key
- access service
- cryptographic
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 56
- 230000015654 memory Effects 0.000 claims abstract description 223
- 230000007246 mechanism Effects 0.000 claims abstract description 30
- 238000004891 communication Methods 0.000 claims abstract description 29
- 239000000758 substrate Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
Description
- Die Erfindung betrifft eine Prozessor-Anordnung, eine Kommunikationsvorrichtung und ein Verfahren zum Betreiben einer Prozessor-Anordnung.
- Aus der
US 2004/0 024 955 A1 - Aus der
US 6,934,389 B2 ist eine Vorrichtung und ein Verfahren zum Versand von verschlüsselten Videodaten zwischen einer Zentraleinheit und einer Empfängereinheit bekannt. Die Empfängereinheit weist eine Zentralrecheneinheit und einen Grafikprozessor auf, die über einen gemeinsamen geheimen Schlüssel verfügen. Die Zentralrecheneinheit übermittelt dem Grafikprozessor einen mittels des gemeinsamen geheimen Schlüssels verschlüsselten Kopierschutzschlüssel, der für die Entschlüsselung der verschlüsselten Videodaten benötigt wird. Der Grafikprozessor kann dann den verschlüsselten Kopierschutzschlüssel entschlüsseln und in einem Speicherelement ablegen. Mit dem Kopierschutzschlüssel können die von der Zentraleinheit bereitgestellten verschlüsselten Videodaten entschlüsselt werden. Auf diese Weise kann ein sicherer Austausch eines Kopierschutzschlüssels über einen ungesicherten Bus zwischen einer Zentralrecheneinheit und einem Grafikprozessor in einer Empfängereinheit erfolgen, sodass ein potentieller Raubkopierer den Kopierschlüssel nicht auf dem ungesicherten Bus abfangen kann und so unbefugt die verschlüsselten Videodaten entschlüsseln kann. - Aus der
US 2005/0 097 341 A1 - In „David LIE [et al]: Architectural support for copy and tamper resistant software, ACM SIGPLAN Notices, Volume 35, Issue 11, Nov. 2000, S. 168–177. ACM [online], DOI: 10.1145/356989.357005, In: ACM” werden Anweisungen verschlüsselt gespeichert und können ausschließlich mittels eines Anweisungs-Lade-Pfades auf dem Hauptprozessor-Chip entschlüsselt werden. Hierzu werden auf dem Prozessor Kammern bereitgestellt, die die Anwendungen, die auf demselben Prozessor laufen, voneinander isolieren. Jeder Kammer wird ein geheimer Schlüssel zugeordnet, der verwendet wird, um assoziierte Daten zu verschlüsseln. Allen Daten wird der geheime Schlüssel zugeordnet, der der Kammer zugeordnet ist. Ein Austausch von Daten oder Werten zwischen den Kammern des Prozessors wird verhindert.
- Es ist Aufgabe der Erfindung, ein System bereitzustellen, das eine Mehrzahl von Prozessoren und einen Speicher aufweist, wobei der Speicher von der Mehrzahl von Prozessoren gemeinsam genutzt wird, um die Komponentenzahl und die Kosten zu reduzieren. Gleichzeitig soll die von dem System bereitgestellte Gesamtsicherheit nicht verringert werden.
- Die Erfindung sieht zur Lösung der Aufgabe eine Prozessor-Anordnung gemäß Anspruch 1 vor.
- Gemäß einem Ausführungsbeispiel der Erfindung kann vorgesehen sein, dass der erste Prozessor ein programmierbarer Prozessor ist.
- Der erste Prozessor kann ein Kommunikations-Prozessor sein.
- Gemäß einem weiteren Ausführungsbeispiel kann der erste Prozessor eine Modem-Steuerungseinheit sein.
- Es kann vorgesehen sein, dass der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
- Ferner kann vorgesehen sein, dass der zweite Prozessor ein programmierbarer Prozessor ist.
- Der zweite Prozessor kann ein Applikations-Prozessor sein.
- Gemäß einem Ausführungsbeispiel der Erfindung kann der zweite geheime Schlüssel des zweiten Prozessors unveränderbar sein.
- Des Weiteren kann der mindestens eine Speicher mindestens einen flüchtigen Speicher aufweisen.
- Es kann vorgesehen sein, dass der mindestens eine flüchtige Speicher mindestens einen Vielfachzugriffsspeicher aufweist.
- Gemäß einem Ausführungsbeispiel weist der mindestens eine Speicher mindestens einen nichtflüchtigen Speicher auf.
- Ferner kann vorgesehen sein, dass der mindestens eine nichtflüchtige Speicher mindestens einen Flash-Speicher aufweist.
- Gemäß einem weiteren Ausführungsbeispiel verwendet der erste Prozessor einen Authentifizierungs-Mechanismus, so dass er sich gegenüber dem zweiten Prozessor in einem Speicher-Zugriffsdienst authentifiziert.
- Gemäß noch einem weiteren Ausführungsbeispiel verwendet der erste Prozessor den gemeinsamen geheimen Schlüssel während der Authentifizierung.
- Der zweite Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, kann über die Speicher-Schnittstelle Zugriff auf den Speicher haben.
- Es kann vorgesehen sein, dass der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich aufweist, wobei der erste Speicherbereich durch den ersten Prozessor oder den zweiten Prozessor zu speichernde Daten speichert, wobei der zweite Speicherbereich von dem mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwendete kryptographische Daten speichert.
- Ferner kann vorgesehen sein, dass der zweite Speicherbereich digitale Signaturen der zu speichernden Daten speichert.
- Gemäß einem Ausführungsbeispiel weist der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen auf, die besteht aus: Authentifizierung, Verschlüsselung, digitale Signatur, kryptographische Hash-Wert-Generierung.
- Gemäß einem weiteren Ausführungsbeispiel kann vorgesehen sein, dass der erste Prozessor und der zweite Prozessor in ein gemeinsames Prozessor-Package integriert sind.
- Ferner können der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat integriert sein.
- Die Erfindung sieht weiter eine Kommunikationsvorrichtung vor, aufweisend: eine Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 17.
- Die Erfindung sieht zur Lösung der Aufgabe weiter ein Verfahren zum Betreiben einer Prozessor-Anordnung gemäß Anspruch 19 vor.
- Es kann vorgesehen sein, dass der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die besteht aus: Authentifizierung, Verschlüsselung, digitale Signatur, kryptographische Hash-Wert-Generierung.
- In den Zeichnungen beziehen sich gleiche Bezugszeichen im Allgemeinen auf die gleichen Teile durch die verschiedenen Ansichten. Die Zeichnungen sind nicht zwangsläufig maßstabsgetreu, stattdessen liegt der Schwerpunkt im Allgemeinen darauf, die Prinzipien der Erfindung zu veranschaulichen. In der folgenden Beschreibung sind verschiedene Ausführungsformen der Erfindung unter Bezugnahme auf die folgenden Figuren beschrieben.
- Es zeigen
-
1 eine Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung; -
2 eine Prozessor-Anordnung gemäß einer weiteren Ausführungsform der Erfindung; -
3 ein Ablaufdiagramm, das ein Verfahren zum Betreiben einer Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung darstellt; -
4 eine Prozessor-Anordnung gemäß einer weiteren Ausführungsform der Erfindung; -
5A und5B ein Nachrichten-Flussdiagramm gemäß einer Ausführungsform der Erfindung; und -
6A und6B ein weiteres Nachrichten-Flussdiagramm gemäß einer Ausführungsform der Erfindung. - Gemäß einer beispielgebenden Ausführungsform der Erfindung wird ein System bereitgestellt, in welchem zwei Komponenten, (im Folgenden auch als Prozessoren bezeichnet), die Prozessor-Einheiten aufweisen, gemeinsam einen externen Speicher nutzen. Der Speicher wird gemeinsam genutzt, damit die Komponentenzahl und somit die Kosten des sich ergebenden Systems reduziert werden. Eine Lösung wird gewünscht, die diese kostensparende Lösung ermöglicht, ohne dass die von dem System bereitgestellte Gesamtsicherheit verringert wird.
- Wie an späterer Stelle im Einzelnen erläutert wird, ist das System in einer Ausführungsform der Erfindung Teil einer Mobilfunktelefon-Plattform. Eine Komponente der Mobilfunktelefon-Plattform, der Applikations-Prozessor, ist direkt mit dem externen Speicher verbunden. In einer Ausführungsform der Erfindung gibt es zwei zu berücksichtigende Arten von Speichern. Diese sind ein flüchtiger Speicher (zum Beispiel ein dynamischer Vielfachzugriffsspeicher [Dynamic Random Access Memory (DRAN)]) und ein nichtflüchtiger Speicher. In einer Ausführungsform der Erfindung ist die zweite Komponente eine Modem-Steuerungseinheit, und diese greift über den Applikations-Prozessor auf den Speicher zu.
- Im Zusammenhang mit dieser Beschreibung kann unter einem ”flüchtigen Speicher” ein Speicher verstanden werden, der Daten speichert, wobei die Daten aktualisiert werden, während eine Stromversorgungsspannung des Speichersystems wirkt, mit anderen Worten in einem Zustand des Speichersystems, in welchem es mit Stromversorgungsspannung versorgt wird. Im Gegensatz dazu ist unter einem ”nichtflüchtigen Speicher” ein Speicher zu verstehen, der Daten speichert, wobei die gespeicherten Daten nicht aktualisiert werden, während die Stromversorgungsspannung des Speichersystems wirkt.
- Ein ”nichtflüchtiger Speicher” im Zusammenhang mit dieser Beschreibung weist jedoch einen Speicher auf, dessen gespeicherte Daten nach einer Unterbrechung der externen Stromversorgung aktualisiert werden können. Beispielsweise können die gespeicherten Daten während eines Boot-Prozesses des Speichersystems aktualisiert werden, nachdem das Speichersystem abgeschaltet war oder zum Energiesparen in einen Energie-Deaktivierungs-Modus überführt wurde, in welchem zumindest einige oder die meisten der Speichersystem-Komponenten deaktiviert sind. Ferner können die gespeicherten Daten in regelmäßigen zeitlichen Abständen aktualisiert werden, jedoch nicht, wie bei einem ”flüchtigen Speicher” alle paar Pikosekunden oder Nanosekunden oder Millisekunden, sondern eher in einem Bereich von Stunden, Tagen, Wochen oder Monaten.
- Was die Sicherheit betrifft, wird der auf der Modem-Steuerungseinheit laufende Computerprogramm-Code üblicherweise als sicher und Teil eines geschlossenen Systems betrachtet. Der Applikations-Prozessor führt üblicherweise ein komplexes Betriebssystem (englisch: Operating System, OS) sowie möglicherweise nicht vertrauenswürdige Anwendungen aus, die vom Endbenutzer heruntergeladen wurden. In einer Ausführungsform der Erfindung weist der Applikations-Prozessor üblicherweise einen sicheren Modus auf, der ein sicherer Hardware-Thread sein kann, von einer Betriebssystem-(OS)-Virtualisierung unterstützt werden könnte oder sogar einen zweiten Prozessor zum Durchführen sicherer Arbeitsprozesse unterstützen könnte.
- Die oben genannten zwei Arten von Speichern werden im Allgemeinen unterschiedlich gehandhabt. Der Zugriff auf den flüchtigen Speicher (zum Beispiel DRAM) wird durch den sicheren Teil des Applikations-Prozessors eingerichtet, so dass nicht sichere Anwendungen, die auf dem Applikations-Prozessor laufen, keinen Zugriff auf den von der Modem-Steuerungseinheit verwendeten DRAM-Speicher haben. Die Modem-Steuerungseinheit hat normalerweise über den Applikations-Prozessor direkten Zugriff auf die DRAM-Schnittstelle.
- Die Modem-Steuerungseinheit kann mit dem Applikations-Prozessor über einen gemeinsam genutzten Speicherbereich kommunizieren, aber die Zugriffsrechte in diesem Bereich differenzieren nicht zwischen der sicheren Maschine und der nicht sicheren Maschine des Applikations-Prozessors.
- Nichtflüchtiger-Speicher-Schreibzugriffe sind komplexer in der Handhabung, und dies trifft insbesondere auf einen NAND-Flash-Speicher zu. Die Dateisysteme sind bei einem NAND-Flash-Speicher ebenfalls komplexer als bei einer direkten DRAM-Nutzung. Aus diesem Grund werden Schreibzugriffe im Allgemeinen von dem Applikations-Prozessor als ein Dienst für die Modem-Steuerungseinheit durchgeführt.
- In einer Ausführungsform der Erfindung wird der nichtflüchtige Speicher (zum Beispiel ein nichtflüchtiger Vielfachzugriffsspeicher [englisch: Non-Volatile Random Access Memory, NVRAM] wie zum Beispiel ein Flash-Speicher, zum Beispiel ein Floating-Gate-Speicher [Floating Gate Memory] oder ein Ladungsfänger-Speicher [Charge Trapping Memory]) in einen oder mehrere sichere Abschnitte und einen oder mehrere nicht sichere Abschnitte aufgeteilt.
- Wenn die Modem-Steuerungseinheit einen sicheren Schreibvorgang durchführen möchte, dann kommuniziert sie mit dem Applikations-Prozessor, muss jedoch sicher sein, dass sie mit der sicheren Maschine des Applikations-Prozessors (zum Beispiel mit dem in einem sicheren Modus arbeitenden Applikations-Prozessor) kommuniziert, so dass sie sicher sein kann, dass ihr sicherer Schreibzugriff wirklich durchgeführt wird, oder sie benötigt den Beweis, dass der Schreibvorgang tatsächlich durchgeführt wurde.
- Um dies zu erreichen, wurden herkömmlicherweise die folgenden Ansätze angewendet:
- i) Ignorieren von Sicherheitsfragen.
- ii) Anbringen von extra Speicherkomponenten an die Modem-Steuerungseinheit, wodurch die Kosten des Systems steigen.
- iii) Verlagern aller Sicherheitsmerkmale auf den Applikations-Prozessor. Dies ist jedoch nicht immer möglich, da manchmal die Sicherheitsmerkmale in die Modem-Steuerungseinheits-System-Software eingebettet sind, und dies ist der sicherste Platz zum Erzielen des oben beschriebenen Effekts.
- In einer Ausführungsform der Erfindung wird der oben genannte Effekt durch Hinzufügen einer minimalen Anzahl von Sicherheitsmerkmalen zu der Modem-Steuerungseinheit erzielt (im Allgemeinen einem ersten Prozessor, der ein programmierbarer Prozessor (zum Beispiel ein programmierbarer Mikroprozessor), zum Beispiel ein vertrauenswürdiger Prozessor sein kann), so dass ein sicherer Kanal zwischen derselben und dem sicheren Teil des Applikations-Prozessors eingerichtet werden kann (im Allgemeinen eines zweiten Prozessors, der ein programmierbarer Prozessor sein kann (zum Beispiel ein programmierbarer Mikroprozessor), und der in einem sicheren Modus (zum Beispiel den sicheren Teil darstellend) und in einem nicht sicheren Modus betrieben werden kann).
-
1 zeigt eine Prozessor-Anordnung100 gemäß einer Ausführungsform der Erfindung. Gemäß einer Ausführungsform der Erfindung können die Prozessor-Anordnung100 und die in alternativen Ausführungsformen der Erfindung beschriebenen Prozessor-Anordnungen Teil einer Mobil-Kommunikations-Vorrichtungs-Plattform, zum Beispiel Teil einer Mobiltelefon-Plattform sein. - Die Prozessor-Anordnung
100 kann einen ersten Prozessor102 , einen zweiten Prozessor104 und mindestens einen Speicher106 (flüchtig und/oder nichtflüchtig), der von dem ersten Prozessor102 und dem zweiten Prozessor104 gemeinsam genutzt wird, aufweisen. - In einer Ausführungsform der Erfindung weist der erste Prozessor
102 eine Prozessor-Kommunikations-Schnittstelle108 auf, die den Speicher-Zugriffsdienst von dem zweiten Prozessor104 nutzt. Ferner weist der erste Prozessor102 in einer Ausführungsform de Erfindung eine Kryptographie-Einheit110 auf, die einen oder mehrere kryptographische Mechanismen zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Der eine oder die mehreren kryptographischen Mechanismen werden an späterer Stelle ausführlicher beschrieben. Die Kryptographie-Einheit110 und die Prozessor-Kommunikations-Schnittstelle108 sind über eine prozessorinterne Verbindung112 miteinander verbunden. - In einer Ausführungsform der Erfindung kann unter einem Speicher-Zugriffsdienst ein Schreibzugriffsdienst verstanden werden, der zum Schreiben eines Datenelements oder einer Mehrzahl von Datenelementen auf den Speicher
106 einen Schreibzugriff bereitstellt, oder aber ein Lese-Zugriffsdienst, der zum Lesen eines Datenelements oder einer Mehrzahl von Datenelementen aus dem Speicher106 einen Lese-Zugriff bereitstellt. - In einer Ausführungsform der Erfindung weist der zweite Prozessor
104 eine Prozessor-Kommunikations-Schnittstelle114 auf, die dem ersten Prozessor102 einen Speicher-Zugriffsdienst bereitstellt. Der zweite Prozessor104 weist ferner eine Speicher-Schnittstelle116 auf, die Zugriff auf den mindestens einen Speicher106 bereitstellt. Ferner weist der zweite Prozessor104 eine Kryptographie-Einheit118 auf, die einen oder mehrere kryptographische Mechanismen, zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Der eine oder die mehreren kryptographischen Mechanismen werden später im Einzelnen beschrieben. Die Kryptographie-Einheit118 , die Kommunikations-Schnittstelle114 und die Speicher-Schnittstelle116 sind über eine prozessorinterne Verbindung120 miteinander verbunden. - Im Zusammenhang mit einem Speicher-Zugriffsdienst verwenden der erste Prozessor
102 und/oder der zweite Prozessor104 mindestens einen kryptographischen Mechanismus, der zum Beispiel mittels der Kryptographie-Einheiten110 ,118 bereitgestellt wird. - Der erste Prozessor
102 und der zweite Prozessor104 sind über ihre jeweiligen Prozessor-Kommunikations-Schnittstellen108 ,114 und eine Prozessor-Prozessor-Verbindung122 miteinander verbunden. - In einer Ausführungsform der Erfindung weist der Speicher
106 einen Speicherbereich124 , zum Beispiel ein Speicher-Array auf, der eine Mehrzahl von (zum Beispiel Tausende oder Millionen) Speicherzellen aufweist, zum Beispiel flüchtige Speicherzellen oder nichtflüchtige Speicherzellen. Ferner weist der Speicher106 auf: eine (nicht dargestellte) Speicher-Steuerungseinheit zum Steuern von Speicher-Zugriffsvorgängen (zum Beispiel einem Schreibvorgang zum Schreiben von einem Datenelement oder einer Mehrzahl von Datenelementen in die Speicherzellen des Speicherbereichs124 oder einem Lesevorgang zum Lesen von einem Datenelement oder einer Mehrzahl von Datenelementen aus den Speicherzellen des Speicherbereichs124 ), und eine Speicher-Schnittstelle126 (die mit dem Speicherbereich124 über eine speicherinterne Verbindung128 verbunden ist), die dem zweiten Prozessor104 eine speicherexterne Daten-/Steuerungs-Input/Output-Schnittstelle bereitstellt. - Der Speicher
106 und der zweite Prozessor106 sind über ihre jeweiligen Speicher-Schnittstellen116 ,126 und eine Speicher-Prozessor-Verbindung130 miteinander verbunden. - Wie an späterer Stelle noch im Einzelnen erläutert wird, wird der Speicherzugriff (zum Beispiel der Lese-Zugriff oder der Schreib-Zugriff) von dem ersten Prozessor
102 (mindestens auch) über den zweiten Prozessor104 durchgeführt. -
2 zeigt eine Prozessor-Anordnung200 gemäß einer anderen Ausführungsform der Erfindung. Da die Elemente in der Prozessor-Anordnung200 gemäß der in2 gezeigten Ausführungsform ähnlich sind im Vergleich zu den jeweiligen Elementen der Prozessor-Anordnung100 gemäß der in1 gezeigten Ausführungsform, werden sie mit den gleichen Bezugszeichen versehen und nicht noch einmal im Einzelnen erläutert. - Die Prozessor-Anordnung
200 weist auf: einen ersten Prozessor202 (in dieser Ausführungsform der Erfindung zum Beispiel ein vertrauenswürdiger Prozessor, wie zum Beispiel eine Modem-Steuerungseinheit), einen zweiten Prozessor204 (in dieser Ausführungsform der Erfindung ein Prozessor, der in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist), und einen Speicher206 . - Der erste Prozessor
202 weist die Prozessor-Kommunikations-Schnittstelle108 und die Kryprographie-Einheit110 auf, die einen oder mehrere kryptographische Mechanismen bereitstellt, zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst. Ferner weist der erste Prozessor202 einen ersten geheimen Schlüssel208 des ersten Prozessors auf, der dem ersten Prozessor202 zugeordnet ist. Die Kryptographie-Einheit110 und die Prozessor-Kommunikations-Schnittstelle108 sind über die prozessorinterne Verbindung112 miteinander verbunden. - In einer Ausführungsform der Erfindung weist der zweite Prozessor
204 die Prozessor-Kommunikations-Schnittstelle114 , die Speicher-Schnittstelle116 , die Zugriff auf den mindestens einen Speicher106 bereitstellt, und die Kryptographie-Einheit118 auf, die einen oder mehrere kryptographische Mechanismen zum Beispiel im Zusammenhang mit einem Speicher-Zugriffsdienst bereitstellt. Ferner weist der zweite Prozessor204 einen zweiten geheimen Schlüssel210 des zweiten Prozessors auf, der dem zweiten Prozessor204 zugeordnet ist. Der zweite Prozessor204 ist eingerichtet zum Betrieb in einem vertrauenswürdigen Modus (in2 mittels einer vertrauenswürdigen Maschine212 symbolisiert) oder in einem nicht vertrauenswürdigen Modus (symbolisiert in2 mittels einer nicht vertrauenswürdigen Maschine214 ). Der zweite Prozessor204 kann eingerichtet sein zum Bereitstellen eines aufgeteilten Hochfahrens (Split-Boot), während dessen (zum Beispiel kryptographisch unterstützt) entschieden werden kann, ob dieser auf eine kryptographisch sichere Weise (dann zum Beispiel in einem vertrauenswürdigen Modus betreibbar) oder auf eine kryptographisch unsichere Weise (dann zum Beispiel in einem nicht vertrauenswürdigen Modus betreibbar) booten soll. Die Kryptographie-Einheit118 , die Prozessor-Kommunikations-Schnittstelle114 und die Speicher-Schnittstelle116 sind über eine prozessorinterne Verbindung120 miteinander verbunden. - Der mindestens eine Speicher
206 wird von dem ersten Prozessor202 und dem zweiten Prozessor204 gemeinsam genutzt und weist den Speicherbereich124 und die Speicher-Schnittstelle126 auf, die über die speicherinterne Verbindung128 miteinander verbunden sind. Der Speicher206 und der zweite Prozessor204 sind über ihre jeweiligen Speicher-Schnittstellen116 ,126 und die Speicher-Prozessor-Verbindung130 miteinander verbunden. -
3 zeigt ein Ablaufdiagramm300 , das ein Verfahren zum Betreiben einer Prozessor-Anordnung gemäß einer Ausführungsform der Erfindung darstellt. - In
302 wird eine erste Anfrage für einen Speicher-Zugriffsdienst zum Zugreifen auf einen Speicher generiert, der von einem ersten Prozessor und einem zweiten Prozessor gemeinsam genutzt wird. - In
304 wird die erste Anfrage von dem ersten Prozessor an den zweiten Prozessor übertragen. - Des Weiteren führt der zweite Prozessor in
306 die erste Anfrage mittels mindestens eines kryptographischen Mechanismus aus. - In
308 wird eine zweite Anfrage für den Speicher-Zugriffsdienst zum Zugreifen auf den Speicher gemäß der ersten Anfrage zum Beispiel durch den zweiten Prozessor generiert. - In
310 wird die zweite Anfrage von dem zweiten Prozessor an den Speicher übertragen. - In
312 wird die zweite Anfrage von dem Speicher ausgeführt. In dem Fall, dass die Anfrage für einen Speicher-Zugriffsdienst eine Schreib-Anfrage ist, kann (können) das (die) in die Speicherzellen des Speichers zu schreibende(n) Daten-Element(e) in der ersten Anfrage (und entsprechend in der zweiten Anfrage), oder in einer oder einer Mehrzahl von getrennten Schreibzugriffs-Nachrichten enthalten sein, und wird (werden) an den Speicher übertragen, um darin gespeichert zu werden. In dem Fall, dass die Anfrage für einen Speicher-Zugriffsdienst eine Lese-Anfrage ist, kann (können) das (die) aus den Speicherzellen des Speichers zu lesende(n) Daten-Element(e) in einer ersten Antwort-Nachricht enthalten sein, die von dem Speicher an den zweiten Prozessor übertragen wird (und entsprechend in einer zweiten Antwort-Nachricht, die von dem zweiten Prozessor an den ersten Prozessor übertragen wird). -
4 zeigt eine Prozessor-Anordnung400 gemäß einer weiteren Ausführungsform der Erfindung. Es wird angemerkt, dass die besonderen Implementierungen der weiter unten beschriebenen Ausführungsform(en) sich analog auf besondere Ausführungsformen der oben beschriebenen Prozessor-Anordnung100 ,200 beziehen. - Die Prozessor-Anordnung
400 weist einen ersten Prozessor402 , zum Beispiel eine Modem-Steuerungseinheit, einen zweiten Prozessor404 , zum Beispiel einen Applikations-Prozessor, einen flüchtigen Speicher406 (zum Beispiel einen flüchtigen Vielfachzugriffsspeicher (flüchtiger RAN)) und einen nichtflüchtigen Speicher408 (zum Beispiel einen nichtflüchtigen Vielfachzugriffsspeicher [NVRAM, Non-Volatile Random Access Memory) auf. - Der erste Prozessor
402 weist eine Kryptographie-Einheit410 mit einem Zufallszahlengenerator412 und einem ersten geheimen Schlüssel414 des ersten Prozessors auf. Somit wird in einer Ausführungsform der Erfindung ein geheimer Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors414 ) zu dem ersten Prozessor402 (zum Beispiel der Modem-Steuerungseinheit) hinzugefügt. In einer Ausführungsform der Erfindung weist der erste Prozessor optional ferner eine Zentraleinheit (Central Processing Unit, CPU) und einen oder eine Mehrzahl von prozessorinternen Speichern auf. - Der zweite Prozessor
404 fuhrt ein Betriebssystem (OS), wie zum Beispiel ein Windows-Betriebssystem oder ein Unix-basiertes Betriebssystem oder jegliche andere Art von Betriebssystem (zum Beispiel ein monolithisches Betriebssystem oder ein Mikrokern-Betriebssystem) sowie möglicherweise auch nicht-vertrauenswürdige Anwendungen aus (und hat dieses/diese somit installiert), die von dem Endbenutzer heruntergeladen wurden. In dieser Ausführungsform der Erfindung weist der Applikations-Prozessor im Allgemeinen einen sicheren Modus auf, der ein sicherer Hardware-Teilprozess sein kann, durch Betriebssystem-(OS)-Virtualisierung unterstützt werden könnte oder sogar einen zweiten Prozessor zum Ausführen sicherer Vorgänge unterstützen könnte. - Der zweite Prozessor
404 weist auf: eine erste Zugriffs-Steuer-Einheit416 (einschließlich einer ersten Speicher-Schnittstelle (symbolisiert mittels eines ersten Pfeils418 )), die einen Speicher-Zugriffsdienst (Schreibzugriff und/oder Lese-Zugriff) in Bezug auf einen Speicherzugriff auf den flüchtigen Speicher406 bereitstellt, und eine zweite Zugriffs-Steuer-Einheit420 (einschließlich einer zweiten Speicher-Schnittstelle (symbolisiert mittels eines zweiten Pfeils422 )), die einen Speicher-Zugriffsdienst (Schreibzugriff und/oder Lese-Zugriff) in Bezug auf einen Speicherzugriff auf den nichtflüchtigen Speicher408 bereitstellt. - In einer Ausführungsform der Erfindung weist der zweite Prozessor
404 auf: eine sichere Prozess-Einheit424 (zum Beispiel eine sichere Maschine), die den Betrieb des zweiten Prozessors404 in einem sicheren (zum Beispiel vertrauenswürdigen) Betriebsmodus darstellt, und eine nicht sichere Prozess-Einheit426 (zum Beispiel eine nicht sichere Maschine), die den Betrieb des zweiten Prozessors404 in einem nicht sicheren (zum Beispiel nicht vertrauenswürdigen) Betriebsmodus darstellt. Die sichere Prozess-Einheit424 und die nicht sichere Prozess-Einheit426 können separate konfigurierbare Hardware-Einheiten sein. In einer anderen Ausführungsform der Erfindung jedoch sind die sichere Prozess-Einheit424 und die nicht sichere Prozess-Einheit426 funktionale Einheiten, die von einem oder einer Mehrzahl von entsprechenden Computer-Programm-Elementen implementiert werden, die die jeweilige gewünschte Funktionalität bereitstellen. In dieser Ausführungsform der Erfindung werden die sichere Prozess-Einheit424 und die nicht sichere Prozess-Einheit426 mittels der zentralen Verarbeitungseinheit (CPU) (nicht dargestellt) des zweiten Prozessors404 implementiert. - Die sichere Prozess-Einheit
424 weist eine Kryptographie-Einheit428 auf, die einen Zufallszahlengenerator430 und einen zweiten geheimen Schlüssel432 des zweiten Prozessors aufweist. Somit wird in einer Ausführungsform der Erfindung ein geheimer Schlüssel (zum Beispiel der zweite geheime Schlüssel des zweiten Prozessors432 ) zu dem zweiten Prozessor404 (zum Beispiel dem Applikations-Prozessor) hinzugefügt. - Anschaulich enthält der sichere Prozess auf dem Applikations-Prozessor in einer Ausführungsform der Erfindung somit auch einen geheimen Schlüssel.
- In einer Ausführungsform der Erfindung sind der erste Prozessor
402 und der zweite Prozessor404 mittels einer Zwischen-Prozessor-Kommunikations-Verbindung434 miteinander verbunden. - In einer Ausführungsform der Erfindung werden diese beiden Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors
414 und der zweite geheime Schlüssel des zweiten Prozessors432 ) während des Herstellungsprozesses eines Mobilfunktelefons (in alternativen Ausführungsformen der Erfindung von jeder Art von Kommunikationsvorrichtung, wie zum Beispiel einem persönlichen digitalen Assistenten (PDA, Personal Digital Assistant), einem Laptop, und so weiter) geschrieben, und können später nicht geändert werden. In einer alternativen Ausführungsform der Erfindung können die beiden Schlüssel (zum Beispiel der erste geheime Schlüssel des ersten Prozessors414 und der zweite geheime Schlüssel des zweiten Prozessors432 ) mittels jedes geeigneten und herkömmlichen Schlüssel-Generierungs-Protokolls erzeugt werden. - Diese kryptographischen Schlüssel könnten gleich sein, wobei sie in diesem Fall als ein gemeinsamer symmetrischer Schlüssel für vertrauliche Kommunikation zwischen dem ersten Prozessor
402 (zum Beispiel der Modem-Steuerungseinheit) und dem zweiten Prozessor404 (zum Beispiel dem Applikations-Prozessor) verwendet werden könnten. Sie könnten auch unterschiedlich sein, aber jeder Prozessor402 ,404 könnte seinen eigenen kryptographischen Schlüssel zum vertraulichen Speichern eines gemeinsamen geteilten Schlüssels in einem nichtflüchtigen Vielfachzugriffsspeicher verwenden. In einer Ausführungsform der Erfindung wird dieser gemeinsame kryptographische Schlüssel während des Herstellungsprozesses der Prozessor-Anordnung (zum Beispiel eines Mobiltelefons) erzeugt und gespeichert. - Abhängig von dem gewünschten einen oder der Mehrzahl von kryptographischen Mechanismen während der Bereitstellung eines Speicher-Zugriffsdienstes (der eine oder eine Mehrzahl von Speicherzugriffsvorgängen enthalten könnte), sind die kryptographischen Einheiten
410 ,428 eingerichtet zum Bereitstellen von mindestens einem kryptographischen Mechanismus einer Gruppe von kryptographischen Mechanismen, die besteht aus: - • Authentifizierung,
- • Verschlüsselung,
- • digitale Signatur,
- • kryptographische Hash-Wert-Generierung, und so weiter.
- Im Allgemeinen können die Kryptographie-Einheiten
410 ,428 eingerichtet sein zum Bereitstellen von symmetrischen kryptographischen Algorithmen mittels gemeinsamer (eines gemeinsamen) geheimer (geheimen) Schlüssel(s) und/oder von asymmetrischen kryptographischen Algorithmen (zum Beispiel mittels eines oder einer Mehrzahl von kryptographischen Schlüsselpaaren, wobei jedes kryptographische Schlüsselpaar einen geheimen Schlüssel und einen öffentlichen Schlüssel aufweist). - Wenn Vertraulichkeit ein wichtiger Belang ist, und die zu speichernde Information zu dem ersten Prozessor
402 (zum Beispiel der Modem-Steuerungseinheit) gehört, dann kann der Schreibzugriff von dem nicht sicheren Prozess des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) durchgeführt werden. In diesem Fall kann der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) für einen sicheren Lesevorgang und einen sicheren Schreibvorgang einen kryptographischen Schlüssel verwenden, den der zweite Prozessor404 (zum Beispiel der Applikations-Prozessor) nicht kennt. - Wenn die betreffenden Daten von der sicheren Maschine des zweiten Prozessors
404 (zum Beispiel des Applikations-Prozessors) weiter verarbeitet werden sollen, dann ist ein gemeinsamer Schlüssel erforderlich. Wenn der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) die Bestätigung benötigt, dass ein bestimmtes Datenstück von dem sicheren Prozess des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) empfangen wurde, dann kann dies gemäß einer Ausführungsform der Erfindung auf die folgende Weise gelöst werden:
Zunächst wird eine Ausführungsform beschrieben, in welcher keine Vertraulichkeit erforderlich ist (siehe Nachrichten-Flussdiagramm500 in5A und5B ). - Der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) stellt die Anfrage, einige sichere Daten in den zweiten Prozessor404 (zum Beispiel den Applikations-Prozessor) zu schreiben. Zu diesem Zweck erzeugt der erste Prozessor402 (zum Beispiel der Applikations-Prozessor) in502 eine erste Anfrage-Nachricht504 und überträgt diese an den zweiten Prozessor404 . - Nach dem Erhalt der ersten Anfrage-Nachricht
504 erzeugt der zweite Prozessor404 (zum Beispiel der Applikations-Prozessor) in506 einen ersten Zufallswert (RAND1) (zum Beispiel mittels des Zufallszahlengenerators430 ) und sendet den ersten Zufallswert (RAND1) in einer ersten Zufallszahlen-Nachricht508 , die den ersten Zufallswert (RAND1) enthält, an den ersten Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) zurück. - Nach dem Erhalt der ersten Zufallszahlen-Nachricht
508 ermittelt der erste Prozessor402 den ersten Zufallswert (RAND1) und speichert ihn in einem prozessorinternen Speicher. - In
510 wird von dem ersten Prozessor402 (zum Beispiel der Modem-Steuerungseinheit) zum Erzeugen (mit anderen Worten zum Generieren) einer Nachricht M eine Nachrichten-Information (m) mit dem ersten Zufallswert (RAND1) verknüpft, und anschließend wird in512 von dem ersten Prozessor402 (zum Beispiel der Modem-Steuerungseinheit) eine Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur (HMACsig) der Nachricht M generiert. Der gemeinsame Schlüssel Ksh (zum Beispiel der erste geheime Schlüssel des ersten Prozessors414 ) wird beim Erzeugen der HMACsig verwendet. In einer Ausführungsform der Erfindung können der MD2-Algorithmus oder der MD5-Algorithmus (der dann durch die Kryptographie-Einheit410 des ersten Prozessors402 bereitgestellt wird) zum Generieren der HMACsig (auch als die erste HMAC-Signatur HMACsig1 bezeichnet) der Nachricht M verwendet werden. In einer alternativen Ausführungsform der Erfindung kann jeder andere Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur-Algorithmus verwendet werden. - Die Nachricht M ist somit eine Verknüpfung der Nachrichten-Information (m) und des ersten Zufallswertes (RAND1):
M = m|RAND1. - Die Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur wird gebildet gemäß:
HMACsig1 = HMAC(Ksh, M). - Die Nachricht M und die Hash-Nachrichten-Authentifizierungs-Code-(HMAC)-Signatur HMACsig1 werden von dem ersten Prozessor
402 (zum Beispiel der Modem-Steuerungseinheit) in einer ersten Daten-Nachricht541 an den zweiten Prozessor404 (zum Beispiel den Applikations-Prozessor) gesendet. - Da die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) im Besitz des gemeinsamen Schlüssels ist, kann sie die empfangene erste Daten-Nachricht514 authentifizieren, was sie in516 durchführt, nachdem die erste Daten-Nachricht514 empfangen wurde. - Der erste Zufallswert RAND1 wird zum Verhindern von Angriffen mit Aufzeichnungswiederholung (Replay-Attacks) verwendet, die das erneute Senden einer alten Nachricht erlauben würden (Replay-Angriff).
- Wie in
5B dargestellt, bestätigt die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) in518 den Empfang der ersten Daten-Nachricht514 und damit der in einem der Speicher406 ,408 zu speichernden Nachrichten-Information (m), zum Beispiel durch Erzeugen (mit anderen Worten durch Generieren) einer weiteren HMAC-Signatur der empfangenen ersten HMAC-Signatur HMACsig1 (im Folgenden auch als die zweite HMAC-Signatur HMACsig2 bezeichnet), mittels des gemeinsamen geheimen Schlüssels Ksh (zum Beispiel des zweiten geheimen Schlüssel des zweiten Prozessors s432 ):HMACsig2 = HMAC(Ksh, HMACsig1). - Die zweite HMAC-Signatur HMACsig2 wird dann in einer Bestätigungsnachricht
520 an den ersten Prozessor402 gesendet. - Nach Erhalt der Bestätigungsnachricht
520 , kann sie dann von dem ersten Prozessor402 (zum Beispiel der Modem-Steuerungseinheit) authentifiziert werden, der dann die Bestätigung hat, dass die Nachrichten-Information (m) von der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) empfangen wurde. - Des Weiteren erzeugt die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) in524 eine zweite Daten-Nachricht N526 , die die Nachrichten-Information (m) enthält, und überträgt sie an den jeweiligen Speicher (zum Beispiel den flüchtigen Speicher406 oder den nichtflüchtigen Speicher408 ), in welchem die Nachrichten-Information (m) gespeichert werden soll. - Nach Erhalt der zweiten Daten-Nachricht N
526 ermittelt der Speicher406 ,408 in528 die Nachrichten-Information (m) und speichert sie. - In einer Ausführungsform, in welcher Vertraulichkeit erforderlich ist, kann der Wert m (zum Beispiel die Nachrichten-Information (m)) auch mit dem gemeinsamen geheimen Schlüssel Ksh (zum Beispiel dem ersten geheimen Schlüssel
414 des ersten Prozessors) verschlüsselt werden. - In dieser Ausführungsform der Erfindung speichert die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) nun den Wert m (zum Beispiel die Nachrichten-Information (m)) sicher. -
6A und6B zeigen ein Nachrichten-Flussdiagramm600 , das eine beispielgebende Ausführungsform der Erfindung darstellt, in welcher ein Beweis bereitgestellt wird, dass der Schreibzugriffsdienst vollständig bereitgestellt wurde, mit anderen Worten, dass der Schreibvorgang erfolgt ist. - Der einfachste Fall wäre der, dass der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) absolutes Vertrauen zu der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) hat. In diesem Fall nimmt der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) den Empfang der HMACsig2 auch als Beweis, dass die Nachrichten-Information (m) in den gewünschten Speicher406 ,408 geschrieben wurde (die Information, wo die Nachrichten-Information (m) gespeichert werden soll, kann dem zweiten Prozessor404 in der ersten Nachricht M514 oder in einer separaten Nachricht (nicht dargestellt) übermittelt werden). In diesem Fall könnte der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) den sicheren Flash-Bereich über die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) auslesen. - In einer weiteren Ausführungsform der Erfindung, die in
6 dargestellt ist, ist das Protokoll erweitert, so dass der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) den Beweis erhält, dass der Schreibvorgang tatsächlich stattgefunden hat. - Wieder wird ein Protokoll bereitgestellt, das es dem ersten Prozessor
402 (zum Beispiel der Modem-Steuerungseinheit) erlaubt, sicher zu sein, dass er mit der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) kommuniziert, und es sollte für einen externen Angreifer oder unsichere Software (die zum Beispiel installiert ist) auf dem zweiten Prozessor404 (zum Beispiel dem Applikations-Prozessor) nicht möglich sein, die Antwort über einen Replay-Angriff zu fälschen. - Ein Protokoll gemäß einer Ausführungsform der Erfindung ist wie folgt. Es wird jedoch angemerkt, dass jede andere Art von Protokoll zum Bereitstellen des Beweises, dass der Schreibvorgang tatsächlich stattgefunden hat, in einer alternativen Ausführungsform der Erfindung verwendet werden kann.
- Nach dem Schreibvorgang stellt der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) die Anfrage des Lesens eines sicheren Wertes (m), und erzeugt in602 einen zweiten Zufallswert RAND2 (zum Beispiel mittels des Zufallszahlengenerators412 des ersten Prozessors402 ). In604 erzeugt der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) eine Schreib-Beweis-Anfragen-Nachricht606 (die die Anfrage enthält, den sicheren Wert (m) und den zweiten Zufallswert RAND2 zu lesen), und sendet diese an den zweiten Prozessor404 (zum Beispiel den Applikations-Prozessor). - Nach dem Empfang der Schreib-Beweis-Anfragen-Nachricht
606 liest die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors (zum Beispiel des Applikations-Prozessors) den Wert (m) aus dem Speicher406 ,408 . Dies erfolgt insofern, dass in608 die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors (zum Beispiel des Applikations-Prozessors) eine Lese-Anfrage-Nachricht610 erzeugt (die die Adresse des zu lesenden sicheren Werts (m) enthält), und die Lese-Anfrage-Nachricht610 an den jeweiligen Speicher406 ,408 überträgt. - Nach dem Erhalt der Lese-Anfrage-Nachricht
610 liest der Speicher406 ,408 in612 den angeforderten sicheren Wert (m) aus dem Speicherbereich, und erzeugt in614 eine Lese-Antwort-Nachricht616 , die den Lese-Sicherheits-Wert (m) enthält. Der Speicher406 ,408 überträgt dann die Lese-Antwort-Nachricht616 an die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors). - Nach dem Erhalt der Lese-Antwort-Nachricht
616 ermittelt die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) den sicheren Wert (m) aus der Lese-Antwort-Nachricht616 und verknüpft diesen mit dem zweiten Zufallswert RAND2, wodurch in618 eine Lese-Beweis-Antwort-Nachricht A erzeugt wird:A = m|RAND2. - In
620 erzeugt dann die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) einen dritten Signatur-Wert HMACsig3 über die Schreib-Beweis-Antwort-Nachricht A:HMACsig3 = HMAC(Ksh, A). - Das Protokoll kann auf eine der folgenden Arten vollendet werden:
Gemäß einer Ausführungsform der Erfindung erzeugt die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors), wie in6B dargestellt, in622 eine Schreib-Beweis-Nachricht624 (die den sicheren Wert (m) und den dritten Signatur-Wert HMAC3sig enthält), und übermittelt diese an den ersten Prozessor (zum Beispiel die Modem-Steuerungseinheit). Somit gibt der zweite Prozessor404 anschaulich den sicheren Wert (m) und den dritten Signatur-Wert HMACsig3 an den ersten Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) aus. Der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) verwendet den empfangenen ausgegebenen dritten Signatur-Wert HMACsig3 zum Verifizieren (in626 ), dass er mit der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) kommuniziert, sowie zum Prüfen, dass bei der Kommunikation keine Verfälschung stattgefunden hat. - In einer alternativen Ausführungsform der Erfindung (nicht in den Figuren dargestellt) gibt die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) den dritten Signatur-Wert HMACsig3 aus. Der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) liest den sicheren Wert (m) selbst direkt aus dem Speicher406 ,408 . Der dritte Signatur-Wert HMACsig3 kann zum Prüfen der Korrektheit des sicheren Wertes (m) im Speicher406 ,408 verwendet werden. - In noch einer weiteren Ausführungsform der Erfindung (nicht in den Figuren dargestellt) liest der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) den sicheren Wert (m) und den dritten Signatur-Wert HMACsig3 (der in diesem Fall von dem zweiten Prozessor404 im Speicher406 ,408 gespeichert würde) direkt selbst aus dem Speicher406 ,408 . - Die Verwendung des dritten Signatur-Wertes HMACsig3 (der mittels des zweiten Zufallswertes RAND2 erzeugt werden kann), beweist in allen Optionen beweist, dass der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) tatsächlich mit der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) kommuniziert, und dass der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) nicht mit einem Replay-Angriff getäuscht wird. - Ein Effekt der beiden soeben beschriebenen alternativen Ausführungsformen ist, dass der erste Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) weniger Vertrauen darin setzen muss, ob die sichere Maschine des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) tatsächlich die Daten auf den Speicher (zum Beispiel den Flash) geschrieben hat. Wenn die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) in der in6 dargestellten Ausführungsform keinen direkten Zugriff auf den Speicher (zum Beispiel den Flash) hat, dann könnte die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) dahingehend getäuscht werden, dass sie glaubt, dass die nicht sichere Software den Zugriff auf den Speicher (zum Beispiel den Flash-Speicher) durchgeführt hat (Man-In-The-Middle-Angriff). - Manche Applikations-Prozessoren können einen umfassenden DRAM-Zugriffs-Schutz aufweisen, wobei es separate Speicherbereiche für die Kommunikation zwischen dem ersten Prozessor
402 (zum Beispiel der Modem-Steuerungseinheit) und der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) gibt. - Die beschriebenen Verfahren sind ferner nützlich zum Verhindern von physikalischen Angriffen, wobei Schreibzugriffe auf einer zwischen-Komponenten-Ebene verhindert werden.
- Wenn der nichtflüchtige Speicher
408 ein Flash-Speicher und im Besonderen ein NAND-Flash-Speicher ist, dann sollte die Lese-Anfrage verursachen, dass der zweite Prozessor404 (zum Beispiel der Applikations-Prozessor) ein Lesen aus dem NAND-Flash-Speicher erzwingt, und dass eine ”Aktualisierung” der Daten in dem flüchtigen Speicher, zum Beispiel dem DRAM oder SRAM erzwungen wird, der ebenfalls in dem NAND-Flash-Speicher vorgesehen ist, wenn der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) keinen direkten Zugriff auf den NAND-Flash-Speicher hat. Wenn ein NOR-Flash-Speicher als nichtflüchtiger Speicher408 verwendet wird, dann kann der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) fähig sein, direkt aus dem NOR-Flash zu lesen (zum Beispiel über die zweite Prozessor-Komponente404 (zum Beispiel den Applikations-Prozessor). - Wenn die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) direkten Zugriff auf den Flash-Speicher hat, dann kann die nicht sichere Prozess-Einheit426 (zum Beispiel die nicht sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) die DRAM-(oder zum Beispiel SRAM)-Aktualisierung nicht vortäuschen, da sie diese Daten wahrscheinlich nur durch Lesen des Flash-Speichers aufweisen kann. Dies beweist dann, dass der Schreibvorgang auf den Flash-Speicher stattgefunden hat. Eine Gefahr kann weiterhin bestehen. Dies wäre der Fall, wenn die nicht sichere Software im zweiten Prozessor404 (zum Beispiel dem Applikations-Prozessor) dann die Werte in dem DRAN-Speicher (oder zum Beispiel SRAN-Speicher) mit einem vorherigen gültigen Wert überschreibt. Dies kann mit einem geeigneten Flash-Verwaltungs-System verhindert werden. - Ferner ist es in einer anderen Ausführungsform der Erfindung vorgesehen, dass die nicht sichere Prozess-Einheit
426 (zum Beispiel die nicht sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) nicht direkt in den DRAN-Bereich (oder zum Beispiel SRAM-Bereich) des ersten Prozessors (zum Beispiel der Modem-Steuerungseinheit) schreibt, sondern in einen Referenz-Bereich. Dies wird weiter unten im Einzelnen erläutert. - Im Folgenden werden die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) und die Flash-Speicher-Verwaltung gemäß einer Ausführungsform der Erfindung genauer beschrieben. - Um sicherzustellen, dass ein Schreibvorgang durch die sichere Prozess-Einheit
424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) stattfindet, benötigt die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) direkten Zugriff auf den Flash-Speicher. Dies kann einige Nachteile mit sich bringen. Flash-Datei-Systeme sind im Allgemeinen ziemlich komplex, und eine sichere Maschine sollte so einfach wie möglich sein. Eine Ausführungsform der Erfindung sieht beides vor, nämlich einen direkten Zugriff auf den Flash-Speicher und eine relativ einfache sichere Maschine des zweiten Prozessors404 . - In einer Ausführungsform der Erfindung ist der sichere Flash-Speicher
408 in zwei Teile gespalten. - Ein erster Teil weist die tatsächlichen zu speichernden Daten auf. Diese wären in der bisherigen Beschreibung zum Beispiel die Nachrichten-Daten (m).
- Ein zweiter Teil weist die Signaturen der Nachrichten-Daten (m) auf. Diese wären zum Beispiel der erste Signatur-Wert HMACSig1 und eine Zufallszahl RANDx, die zum Berechnen des ersten Signatur-Werts HMACSig1 verwendet wird.
- Die nicht sichere Software ist für den ersten Teil des sicheren Flash-Speichers
408 zuständig. Der zweite Teil ist ein sehr kleines einfaches Flash-System, und wird zum Beispiel von der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) verwaltet. Schreib-Steuerung über den zweiten Teil des sicheren Flash-Speichers408 reicht in dieser Ausführungsform der Erfindung zum Sicherstellen der Integrität und Authentizität von in dem ersten Teil des Flash-Speichers408 gespeicherten Daten aus. Wenn die sichere Prozess-Einheit424 (zum Beispiel die sichere Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors) auch Lese-Zugriff auf die Spiegelung dieser Werte in dem DRAM des Flash-Speichers408 hat, dann kann das Überschreiben des Spiegels dieser Werte durch eine nicht sichere Software auch erfasst werden. Der erste Prozessor402 (zum Beispiel die Modem-Steuerungseinheit) könnte auch zu jeder Zeit anfordern, dass Werte nach Integrität geprüft werden. - Ein weiteres Verfahren einer alternativen Ausführungsform der Erfindung wäre für den ersten Prozessor
402 (zum Beispiel die Modem-Steuerungseinheit) das Schreiben der Nachrichten-Daten (m) in den DRAM (oder zum Beispiel SRAM)406 , und das Auffordern der sicheren Prozess-Einheit424 (zum Beispiel der sicheren Maschine) des zweiten Prozessors404 (zum Beispiel des Applikations-Prozessors), diese in den Flash-Speicherzellen des Flash-Speichers408 zu speichern. Der DRAM (oder zum Beispiel SRAM)406 benötigt dann keine Aktualisierung, und es wäre lediglich notwendig zu beweisen, dass der HMAC-Wert in den Flash-Speicherzellen des Flash-Speichers408 gespeichert wurde. Wenn die Nachrichten-Information (m) nicht in den Flash-Speicherzellen des Flash-Speichers408 gespeichert wurde, wird sie später (zumindest nach dem nächsten Rücksetzen) ermittelt, da der HMAC-Wert sicher gespeichert wurde. - Einige andere System-Konfigurationen, wo die Grundprinzipien der oben erläuterten Ausführungsformen verwendet werden, sind ebenfalls möglich, und einige von diesen werden im Folgenden im Einzelnen erläutert.
- Bei einer Einzel-Chip-Lösung, wo der zweite Prozessor (zum Beispiel ein Applikations-Prozessor) und ein erster Prozessor (zum Beispiel eine Kommunikations-Steuerungseinheit, wie zum Beispiel eine Modem-Steuerungseinheit) Speicher gemeinsam nutzen, ist es möglich, dass der erste Prozessor (zum Beispiel die Modem-Steuerungseinheit) einen größeren Grad an Vertrauen genießt, aber dass die zweite Steuerungseinheit (zum Beispiel der Applikations-Prozessor) das Flash-Datei-System steuert. In diesem Fall könnte der erste Prozessor (zum Beispiel die Modem-Steuerungseinheit) als die sichere Maschine betrachtet werden, und einen ausschließlichen Schreibzugriff auf einen Bereich eines Flash-Speichers erhalten, wo er die Hash-(HMAC)-Werte von durch die zweite Steuerungseinheit (zum Beispiel den Applikations-Prozessor) in dem Haupt-Flash-Speicher-Bereich gespeicherten Daten speichern kann.
- Ein weiteres Beispiel für die Grundkonzepte von Ausführungsformen der Erfindung ist wie folgt.
- Eine sichere Maschine wird in eine Flash-Speicher-Komponente eingebaut. Die Hash-Werte (und wenn erforderlich die Zufallszahlen) werden von der sicheren Maschine in der Flash-Speicher-Komponente berechnet. Diese Implementierung einer Ausführungsform der Erfindung stellt sicher, dass Replay-Angriffe auf einer Zwischen-Chip-Ebene zwischen Prozessor und Speicher nicht möglich sind, und führt in manchen Fällen zu einfacheren Systemen. In einer Ausführungsform der Erfindung konnte für den ersten Prozessor (zum Beispiel die Modem-Steuerungseinheit) sichergestellt werden, dass er direkt mit der sicheren Maschine in dem Speicher kommunizierte. Der einzige bleibende mögliche Angriff in dieser Ausführungsform ist ein Dienstverweigerungs-Angriff (englisch Denial of Service) wobei ein externer Angreifer den Schreibvorgang physikalisch verhindert, dies wird jedoch mit dieser Lösung zumindest immer erfasst werden.
- In einer Ausführungsform der Erfindung nutzen zwei Komponenten ein gemeinsam vereinheitlichtes Speichersystem, und eine der Komponenten (zum Beispiel eine erste Komponente A) greift über die andere Komponente (zum Beispiel eine zweite Komponente B) auf den Speicher zu. In einer Ausführungsform der Erfindung weist die zweite Komponente (zum Beispiel B) ferner eine sichere Maschine und eine nicht sichere Maschine auf.
- Die erste Komponente (zum Beispiel Komponente A) und die zweite Komponente (zum Beispiel Komponente B) weisen jeweils einen nichtflüchtigen kryptographischen Schlüssel auf, der entweder gemeinsam genutzt wird, oder zum jeweiligen Schützen eines gemeinsamen Schlüssels (Ksh) verwendet wird.
- Jeder Authentifizierungs-Austausch wird genutzt, damit die sichere Maschine der zweiten Komponente (zum Beispiel Komponente B) ein sicheres Speichern von Daten in dem nichtflüchtigen Vielfachzugriffspeicher (RAM) für die erste Komponente (zum Beispiel Komponente A) durchführt. In einer Ausführungsform der Erfindung benötigt die erste Komponente (zum Beispiel Komponente A) hauptsächlich, dass die Daten, die sie zum Schreiben schickt, wie angefordert in einer unveränderten Form gespeichert werden.
- In Ausführungsform der Erfindung basiert der Austausch auf der Verwendung des gemeinsamen geheimen Schlüssels (zum Beispiel Ksh) und zweier Zufallszahlengeneratoren.
- In einer Ausführungsform der Erfindung wird das Protokoll verwendet, so dass die erste Komponente (zum Beispiel Komponente A) den Beweis hat, dass sie mit der sicheren Maschine der zweiten Komponente (zum Beispiel Komponente B) kommuniziert, wenn sie einige in dem gemeinsamen Speicher zu speichernde Daten aussendet.
- In einer Ausführungsform der Erfindung ist das Protokoll erweitert, so dass auch die zweite Komponente (zum Beispiel Komponente B) der ersten Komponente (zum Beispiel Komponente A) beweisen kann, dass sie tatsächlich einen Schreibvorgang durchgeführt hat.
- In einer Ausführungsform der Erfindung wird auch das Aufspalten des Flash-Datei-Systems in Betracht gezogen, so dass die sichere Maschine der zweiten Komponente (zum Beispiel Komponente B) lediglich die Referenz-(HMAC)-Werte speichern muss. Dadurch wird das Ausführen der Software in der sicheren Maschine der zweiten Komponente (zum Beispiel Komponente B) leichter und somit sicherer.
- In einer Ausführungsform der Erfindung sind die Ausführungsformen zu einer Zwei-Prozessoren-Einzelne-Komponente-Lösung ausgeweitet, wobei ein Prozessor sicherer ist als der andere Prozessor, jedoch der weniger sichere Prozessor für das Flash-Datei-System zuständig ist. In diesem Fall hat der sicherere Prozessor auch Zugriff auf einen kleinen Teil des Flash-Speichers zum Speichern des Referenz-(HMAC)-Daten-Sicherungs-Zeitpunktes.
- Bei einer weiteren Ausführungsform der Erfindung soll der Authentifizieruns-Vorgang zwischen einer Komponente und einem Speicher stattfinden, so dass eine physikalische Intervention zwischen Lesevorgang und Schreibvorgang auf den Speicher ausgeschlossen wird.
- In einer Ausführungsform der Erfindung sind der erste Prozessor und der zweite Prozessor in einem gemeinsamen Prozessor-Paket innerhalb der Prozessor-Anordnung integriert.
- In einer Ausführungsform der Erfindung sind der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat innerhalb der Prozessor-Anordnung integriert.
- In einer Ausführungsform der Erfindung ist eine Kommunikationsvorrichtung, wie zum Beispiel eine Mobilfunk-Kommunikations-Vorrichtung, wie zum Beispiel ein Mobiltelefon vorgesehen, die eine Prozessor-Anordnung gemäß einer der oben beschriebenen Ausführungsformen aufweist.
Claims (20)
- Prozessor-Anordnung, aufweisend: • einen vertrauenswürdigen ersten Prozessor, • einen dem ersten Prozessor zugeordneten ersten geheimen Schlüssel des ersten Prozessors • einen zweiten Prozessor, der in einem vertrauenswürdigen Modus und in einem nicht-vertrauenswürdigen Modus betreibbar ist, • einen dem zweiten Prozessor zugeordneten zweiten geheimen Schlüssel des zweiten Prozessors, • wobei der erste geheime Schlüssel des ersten Prozessors und der zweite geheime Schlüssel des zweiten Prozessors der gleiche gemeinsam genutzte geheime Schlüssel sind, • mindestens einen Speicher, der von dem ersten Prozessor und dem zweiten Prozessor gemeinsam genutzt wird, • wobei der zweite Prozessor aufweist: • eine Speicher-Schnittstelle, die Zugriff auf den mindestens einen Speicher bereitstellt, • eine Prozessor-Kommunikations-Schnittstelle, die einen Speicher-Zugriffsdienst für den ersten Prozessor bereitstellt, • wobei der erste Prozessor aufweist: • eine Prozessor-Kommunikations-Schnittstelle, die den Speicher-Zugriffsdienst von dem zweiten Prozessor verwendet, • wobei der erste Prozessor und der zweite Prozessor mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwenden, • wobei der erste Prozessor eingerichtet ist, eine Zufallszahl zu erzeugen und diese Zufallszahl dem zweiten Prozessor zu übermitteln, • wobei der zweite Prozessor eingerichtet ist, einen kryptographischen Hash-Wert von einem vorher unter Verwendung des Speicher-Zugriffdienstes gespeicherten Wert und von der Zufallszahl unter Verwendung des gemeinsamen geheimen Schlüssels zu erzeugen und den erzeugten kryptographischen Hash-Wert im Speicher zu speichern, • wobei der erste Prozessor eingerichtet ist, direkt den vorher unter Verwendung des Speicher-Zugriffsdienstes gespeicherten Wert und den gespeicherten kryptographischen Hash-Wert aus dem Speicher zu lesen, und weiter eingerichtet ist, den gelesenen kryptographischen Hash-Wert zum Verifizieren, dass der Schreibvorgang in Bezug auf den vorher unter Verwendung des Speicher-Zugriffsdienstes gespeicherten Wert tatsächlich stattgefunden hat, zu verwenden.
- Prozessor-Anordnung gemäß Anspruch 1, wobei der erste Prozessor ein programmierbarer Prozessor ist.
- Prozessor-Anordnung gemäß Anspruch 1 oder 2, wobei der erste geheime Schlüssel des ersten Prozessors unveränderbar ist.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 3, wobei der zweite Prozessor ein programmierbarer Prozessor ist.
- Prozessor-Anordnung gemäß Anspruch 1 bis 4, wobei der zweite geheime Schlüssel des zweiten Prozessors unveränderbar ist.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 5, wobei der mindestens eine Speicher mindestens einen flüchtigen Speicher aufweist.
- Prozessor-Anordnung gemäß Anspruch 6, wobei der mindestens eine flüchtige Speicher mindestens einen Vielfachzugriffsspeicher aufweist.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 7, wobei der mindestens eine Speicher mindestens einen nichtflüchtigen Speicher aufweist.
- Prozessor-Anordnung gemäß Anspruch 8, wobei der mindestens eine nichtflüchtige Speicher mindestens einen Flash-Speicher aufweist.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 9, wobei der erste Prozessor einen Authentifizierungs-Mechanismus verwendet, so dass er sich gegenüber dem zweiten Prozessor in einem Speicher-Zugriffsdienst authentifiziert.
- Prozessor-Anordnung gemäß Anspruch 1 bis 4 und 10, wobei der erste Prozessor den gemeinsamen geheimen Schlüssel während der Authentifizierung verwendet.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 4 und 11, wobei der zweite Prozessor, der in dem vertrauenswürdigen Modus betrieben wird, über die Speicher-Schnittstelle Zugriff auf den Speicher hat.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 12, wobei der Speicher einen ersten Speicherbereich und einen zweiten Speicherbereich aufweist, wobei der erste Speicherbereich durch den ersten Prozessor oder den zweiten Prozessor zu speichernde Daten speichert, wobei der zweite Speicherbereich von dem mindestens einen kryptographischen Mechanismus im Rahmen von dem Speicher-Zugriffsdienst verwendete kryptographische Daten speichert.
- Prozessor-Anordnung gemäß Anspruch 13, wobei der zweite Speicherbereich digitale Signaturen der zu speichernden Daten speichert.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 14, wobei der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die aufweisen: • Authentifizierung, • Verschlüsselung • digitale Signatur, • kryptographische Hash-Wert-Generierung.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 15, wobei der erste Prozessor und der zweite Prozessor in ein gemeinsames Prozessor-Package integriert sind.
- Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 16, wobei der erste Prozessor und der zweite Prozessor monolithisch in ein Substrat integriert sind.
- Kommunikationsvorrichtung, aufweisend: eine Prozessor-Anordnung gemäß einem der Ansprüche 1 bis 17.
- Verfahren zum Betreiben einer Prozessor-Anordnung, wobei das Verfahren aufweist: • Generieren einer ersten Anfrage für einen Speicher-Zugriffsdienst zum Zugreifen auf einen Speicher, der von einem ersten Prozessor und einem zweiten Prozessor gemeinsam genutzt wird, • Übermitteln der ersten Anfrage von dem ersten Prozessor an den zweiten Prozessor über eine Prozessor-Kommunikations-Schnittstelle des ersten Prozessors, • wobei der zweite Prozessor die über eine Prozessor-Kommunikations-Schnittstelle des zweiten Prozessors empfangene erste Anfrage mittels mindestens eines kryptographischen Mechanismus ausführt, • Generieren einer zweiten Anfrage für den Speicher-Zugriffsdienst zum Zugreifen auf den Speicher gemäß der ersten Anfrage, • Übermitteln der zweiten Anfrage von dem zweiten Prozessor an den Speicher über eine Speicher-Kommunikations-Schnittstelle des zweiten Prozessors, • Ausführen der zweiten Anfrage durch den Speicher, • wobei der erste Prozessor ein vertrauenswürdiger Prozessor ist und der zweite Prozessor in einem vertrauenswürdigen und einem nicht-vertrauenswürdigem Modus betreibbar ist, • wobei ein erster geheimer Schlüssel dem ersten Prozessor zugeordnet wird und ein zweiter geheimer Schlüssel dem zweiten Prozessor zugeordnet wird, • wobei der erste geheime Schlüssel und der zweite geheime Schlüssel der gleiche gemeinsam genutzte geheime Schlüssel sind, • wobei der erste Prozessor ferner eine Zufallszahl erzeugt und diese Zufallszahl dem zweiten Prozessor übermittelt, • wobei der zweite Prozessor ferner einen kryptographischen Hash-Wert von einem vorher unter Verwendung des Speicherzugriffdienstes gespeicherten Wert und von der Zufallszahl unter Verwendung des gemeinsamen geheimen Schlüssels erzeugt und den erzeugten kryptographischen Hash-Wert im Speicher speichert, • wobei der erste Prozessor ferner direkt den vorher unter Verwendung des Speicher-Zugriffsdienstes gespeicherten Wert und den gespeicherten kryptographischen Hash-Wert aus dem Speicher liest, und den gelesenen kryptographischen Hash-Wert zum Verifizieren, dass der Schreibvorgang in Bezug auf den vorher unter Verwendung des Speicher-Zugriffsdienstes gespeicherten Wert tatsächlich stattgefunden hat, verwendet.
- Verfahren gemäß Anspruch 19, wobei der mindestens eine kryptographische Mechanismus mindestens einen kryptographischen Mechanismus aus einer Gruppe von kryptographischen Mechanismen aufweist, die aufweisen: • Authentifizierung, • Verschlüsselung, • digitale Signatur, • kryptographische Hash-Wert-Generierung.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/671,141 | 2007-02-05 | ||
US11/671,141 US8296581B2 (en) | 2007-02-05 | 2007-02-05 | Secure processor arrangement having shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102008006759A1 DE102008006759A1 (de) | 2008-08-07 |
DE102008006759B4 true DE102008006759B4 (de) | 2017-05-18 |
Family
ID=39587540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102008006759.8A Expired - Fee Related DE102008006759B4 (de) | 2007-02-05 | 2008-01-30 | Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit |
Country Status (2)
Country | Link |
---|---|
US (1) | US8296581B2 (de) |
DE (1) | DE102008006759B4 (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US8775824B2 (en) * | 2008-01-02 | 2014-07-08 | Arm Limited | Protecting the security of secure data sent from a central processor for processing by a further processing device |
US8332660B2 (en) * | 2008-01-02 | 2012-12-11 | Arm Limited | Providing secure services to a non-secure application |
US9282106B2 (en) * | 2009-02-20 | 2016-03-08 | Comcast Cable Communications, Llc | Authenticated communication between security devices |
US20100228926A1 (en) * | 2009-03-09 | 2010-09-09 | Cypress Semiconductor Corporation | Multi-port memory devices and methods |
US9489326B1 (en) | 2009-03-09 | 2016-11-08 | Cypress Semiconductor Corporation | Multi-port integrated circuit devices and methods |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
JP5699756B2 (ja) * | 2011-03-31 | 2015-04-15 | 富士通株式会社 | 情報処理装置及び情報処理装置制御方法 |
EP4040717B1 (de) * | 2011-12-15 | 2024-01-31 | INTEL Corporation | Verfahren und vorrichtung für sichere kommunikation über ein netzwerk mit einer hardware-sicherheits-engine |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
JP6017287B2 (ja) * | 2012-12-06 | 2016-10-26 | 富士通株式会社 | 制御方法および情報処理装置 |
KR102011137B1 (ko) | 2012-12-07 | 2019-08-14 | 삼성전자주식회사 | 데이터 처리 장치와 회로 |
US9092647B2 (en) | 2013-03-07 | 2015-07-28 | Freescale Semiconductor, Inc. | Programmable direct memory access channels |
FR3010598B1 (fr) * | 2013-09-06 | 2017-01-13 | Sagem Defense Securite | Procede de gestion de coherence de caches |
US9489317B2 (en) * | 2014-09-26 | 2016-11-08 | Apple Inc. | Method for fast access to a shared memory |
US10234917B2 (en) * | 2016-06-03 | 2019-03-19 | Hewlett Packard Enterprise Development Lp | Sequential resets of redundant subsystems with random delays |
DE102019127354A1 (de) * | 2019-10-10 | 2021-04-15 | Infineon Technologies Ag | Erstellen einer Signatur |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024955A1 (en) * | 2002-06-27 | 2004-02-05 | Patel Mukesh K. | Application processors and memory architecture for wireless applications |
US20050097341A1 (en) * | 2003-09-26 | 2005-05-05 | Francis Hedley J. | Data processing apparatus and method for merging secure and non-secure data into an output data stream |
US6934389B2 (en) * | 2001-03-02 | 2005-08-23 | Ati International Srl | Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6986006B2 (en) * | 2002-04-17 | 2006-01-10 | Microsoft Corporation | Page granular curtained memory via mapping control |
US7623894B2 (en) * | 2003-10-09 | 2009-11-24 | Freescale Semiconductor, Inc. | Cellular modem processing |
US20050132186A1 (en) * | 2003-12-11 | 2005-06-16 | Khan Moinul H. | Method and apparatus for a trust processor |
US7940932B2 (en) * | 2004-04-08 | 2011-05-10 | Texas Instruments Incorporated | Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor |
US7594124B2 (en) * | 2004-06-09 | 2009-09-22 | Intel Corporation | Cross validation of data using multiple subsystems |
US6987961B1 (en) * | 2004-06-28 | 2006-01-17 | Neomagic Corp. | Ethernet emulation using a shared mailbox between two processors in a feature phone |
US20060288209A1 (en) * | 2005-06-20 | 2006-12-21 | Vogler Dean H | Method and apparatus for secure inter-processor communications |
US20070077915A1 (en) * | 2005-09-30 | 2007-04-05 | Black Greg R | Method and apparatus for module authentication |
KR101275752B1 (ko) * | 2005-12-06 | 2013-06-17 | 삼성전자주식회사 | 메모리 시스템 및 그것의 부팅 방법 |
-
2007
- 2007-02-05 US US11/671,141 patent/US8296581B2/en not_active Expired - Fee Related
-
2008
- 2008-01-30 DE DE102008006759.8A patent/DE102008006759B4/de not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934389B2 (en) * | 2001-03-02 | 2005-08-23 | Ati International Srl | Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus |
US20040024955A1 (en) * | 2002-06-27 | 2004-02-05 | Patel Mukesh K. | Application processors and memory architecture for wireless applications |
US20050097341A1 (en) * | 2003-09-26 | 2005-05-05 | Francis Hedley J. | Data processing apparatus and method for merging secure and non-secure data into an output data stream |
Non-Patent Citations (1)
Title |
---|
David LIE [et al]: Architectural support for copy and tamper resistant software. ACM SIGPLAN Notices, Volume 35, Issue 11, Nov. 2000, S. 168-177. ACM [online]. DOI: 10.1145/356989.357005, In: ACM * |
Also Published As
Publication number | Publication date |
---|---|
US20080189500A1 (en) | 2008-08-07 |
US8296581B2 (en) | 2012-10-23 |
DE102008006759A1 (de) | 2008-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102008006759B4 (de) | Prozessor-Anordnung und Verfahren zum Betreiben der Prozessor-Anordnung ohne Verringerung der Gesamtsicherheit | |
EP2899714B1 (de) | Gesichertes Bereitstellen eines Schlüssels | |
DE69725833T2 (de) | Gesicherte zweiteilige Benutzer-Authentifizierung in einem Rechnernetz | |
EP3259698B1 (de) | Autonom bootendes system mit einem sicherheitsmodul | |
DE102009013384B4 (de) | System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung | |
DE112005003340B4 (de) | Mechanismus zum Bestimmen der Vertrauenswürdigkeit von Außerbandverwaltungsagenten | |
DE102008021567B4 (de) | Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel | |
DE112009002502B4 (de) | Multilayer inhalte-schützender Mikrocontoller | |
DE102019110327A1 (de) | Technologien zum verifizieren von speicherintegrität über mehrere speicherbereiche hinweg | |
DE112005001654T5 (de) | Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD | |
DE102007057900A1 (de) | Authentifikationen von verdächtigen Daten unter Verwendung von Schlüsseltabellen | |
WO2011054639A1 (de) | Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels | |
DE112011103580B4 (de) | Verfahren, sichere Einheit, System und Computerprogrammprodukt für das sichere Verwalten des Benutzerzugriffs auf ein Dateisystem | |
DE102014208855A1 (de) | Verfahren zum Durchführen einer Kommunikation zwischen Steuergeräten | |
DE102007030622A1 (de) | Verfahren und Anwendung zum Verknüpfen zwischen Systemen auf der Grundlage von Hardware-Sicherheits-Einheiten | |
DE102016210788B4 (de) | Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente | |
DE102019110440A1 (de) | Replay-Schutz für Speicher auf der Basis eines Schlüsselauffrischens | |
DE102020119389A1 (de) | Vorrichtung und Verfahren zum sicheren Verwalten von Schlüsseln | |
WO2018162109A1 (de) | Sicherheitseinheit insbesondere ein für iot-gerät und verfahren zur ausführung einer oder mehrerer applikationen zum gesicherten datenaustausch mit einem oder mehrere web-dienste bereitstellenden servern | |
WO2003025758A2 (de) | Vorrichtung und verfahren zur etablierung einer sicherheitspolitik in einem verteilten system | |
DE102018217431A1 (de) | Sicherer Schlüsseltausch auf einem Gerät, insbesondere einem eingebetteten Gerät | |
DE102008050631A1 (de) | Datenverarbeitungssystem | |
DE102015201599A1 (de) | Datenverarbeitungssystem und Verfahren | |
DE10017932A1 (de) | Vorrichtung und Verfahren zur Steuerung und/oder Regelung einer Anlage | |
DE102013210837A1 (de) | Startanwendung kryptographischer Schlüsselspeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R081 | Change of applicant/patentee |
Owner name: INTEL MOBILE COMMUNICATIONS GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE Effective date: 20130207 Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE Effective date: 20130207 |
|
R082 | Change of representative |
Representative=s name: VIERING, JENTSCHURA & PARTNER, DE Effective date: 20130207 Representative=s name: VIERING, JENTSCHURA & PARTNER PATENT- UND RECH, DE Effective date: 20130207 Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE Effective date: 20130207 |
|
R016 | Response to examination communication | ||
R081 | Change of applicant/patentee |
Owner name: INTEL DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: INTEL MOBILE COMMUNICATIONS GMBH, 85579 NEUBIBERG, DE |
|
R082 | Change of representative |
Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R130 | Divisional application to |
Ref document number: 102008064880 Country of ref document: DE |
|
R020 | Patent grant now final | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |