-
Querverweis auf in Beziehung stehende Anmeldung
-
Die Anmeldung beansprucht den Vorrang unter 35 U.S.C. §119(e) der vorläufigen Anmeldung Nr. 61/836,529 mit dem Titel „Gesicherte Module unter Verwendung eindeutiger Identifikationselemente”, eingereicht am 18. Juni 2013, deren Gegenstand hierdurch durch Bezug darauf in seiner Gesamtheit aufgenommen ist.
-
Hintergrund
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft allgemein gesicherte Mikrocontrollersysteme und/oder -module, und genauer Systeme und Verfahren zum Verwenden eindeutiger Identifikationselemente in der Sicherheitsarchitektur der gesicherten Mikrocontrollersysteme und/oder -module.
-
Hintergrund der Erfindung
-
Die Bedeutung der Datensicherheit in heutigen Computersystemen wird von einem Fachmann wohl eingesehen. Bedeutende Forschung und Entwicklung erfolgte auf zahlreichen Märkten in einem Versuch, Sicherheitsprotokolle und -architekturen einzurichten, die die Sicherheit von Daten während Authentifizierung, Datenübertragung und Speicherung aufrechterhalten. Obwohl diese Anstrengungen zu größeren Verbesserungen an gesicherten Systemen geführt haben, verbleibt immer noch ein bedeutendes Risiko, dass Daten in einem gesicherten System gefährdet werden.
-
Die Schwierigkeit bei der Auslegung und Wartung eines gesicherten Computersystems hängt mit der überwältigenden Aufgabe zusammen, alle potentiellen Schwachstellen des Systems anzugehen, die die Datensicherheit gefährden können. Eine solche Schwachstelle ist die Weise, in der Chiffrierschlüssel in dem gesicherten System erzeugt und gewartet werden, sowie wie diese Schlüssel bei Authentifizierungs-, Kommunikations- und Speichervorgängen umgesetzt werden. Wenn Chiffrierschlüssel nicht von einer ausreichend zufälligen und/oder eindeutigen Quelle abgeleitet werden, dann könnten die Schlüssel potentiell durch einen Angreifer repliziert werden, um Informationen aus dem System zu erlangen. Wenn beispielsweise ein Einzelner imstande ist, eine Pseudo-Zufallszahl vorherzusagen, die als Startwert für Chiffrierschlüssel in dem System benutzt wird, (z. B. den Algorithmus zu verstehen, der zum Erzeugen der Zahl benutzt wird), dann könnte dieser Einzelne Chiffrierschlüssel ableiten, um Daten zu entschlüsseln, die entweder im System gespeichert sind oder sich in der Übertragung zwischen Modulen des Systems befinden. Als Ergebnis suchen Sicherheitsingenieure ständig nach Wegen, wie die Zufälligkeit von Schlüsseln erhöht werden kann.
-
1 stellt eine Standardarchitektur dar, um darzustellen, wie Daten in einem gesicherten System angegriffen werden können. Ein Fachmann wird erkennen, dass das allgemeine Konzept der Datensicherheit und entsprechende Systeme und Verfahren in einer weit unterschiedlichen Menge von Computersystemen relevant sind, von denen alle für die vorliegende Erfindung relevant sind.
-
Das beispielhafte System 100 enthält einen Mikrocontroller 105 und ein Modul 110, die Daten unter Verwendung eines Kommunikationskanals 150 austauschen. Das Modul 110 und der Kommunikationskanal 150 können in zahlreichen Ausführungsformen verwirklicht sein, die von einem Fachmann verstanden werden. Die im Kommunikationskanal 150 übermittelten Daten sind verschlüsselt. Die Daten können auch je nach Auslegung des Systems verschlüsselt und entweder im Mikrocontroller 105 oder im Modul 110 gespeichert werden.
-
Chiffrierschlüssel werden im System benutzt, um die Daten zu verschlüsseln und zu entschlüsseln. Diese Schlüssel können unter Verwendung verschiedener Techniken erzeugt werden, einschließlich derjenigen, die durch bekannte Protokolle definiert sind, die von einem Fachmann verstanden werden. Der Mikrocontroller 105 weist sowohl einen Codierblock 140 als auch einen Decodierblock 130 auf, die zum Ver- und Entschlüsseln von Daten benutzt werden. In diesem besonderen Fall sind die Codier- und Decodierblöcke 130, 140 mit einer Verarbeitungseinheit 115 oder einem Kern über eine Speicher-/Busschnittstelle 120 verbunden. Vergleichsweise weist das Modul 110 auch einen Codierblock 160 und einen Decodierblock 170 auf, die über einen Modulblock 180 kommunizieren, der (eine) Funktion(en) ausführen kann.
-
Daten können an verschiedenen Stellen in diesem gesicherten System 100 angegriffen werden. Erstens können Daten angegriffen werden, wenn sie im Kommunikationskanal 150 zwischen dem Mikrocontroller 105 und dem Modul 110 ausgetauscht werden. Ein Einzelner oder eine Computervorrichtung kann Verkehr im Kanal 150 abfangen und versuchen, die Daten zu entschlüsseln. Zweitens kann ein Einzelner oder eine Computervorrichtung versuchen, Daten zu erlangen, die im Mikrocontroller 105 oder im Modul 110 gespeichert sind. Wenn diese gespeicherten Daten verschlüsselt sind, muss der Einzelne die Daten entschlüsseln, bevor sie nutzbar werden. In beiden Fällen ist die Stärke der Chiffrierschlüssel von höchster Bedeutung zum Verhindern der Angriffe.
-
Benötigt werden Systeme, Vorrichtungen und Verfahren, die die oben beschriebenen Probleme angehen.
-
Zusammenfassung der Erfindung
-
Die Erfindung betrifft gesicherte Systeme und Module und genauer Systeme, Vorrichtungen und Verfahren zum Erzeugen und Anwenden von Identifikationselementen, die eindeutig mit Modulen oder Elementen verknüpft sind. Diese eindeutigen Identifikationselemente sehen eine verbesserte, statistisch zufällige Quelle vor, von der Schlüssel abgeleitet werden können. Die Anwendung dieser Schlüssel über verschiedene Architekturen führt zu einer Verbesserung bei der Sicherheit von Daten, die in einem System ausgetauscht werden.
-
In bestimmten Ausführungsformen ist das eindeutige Identifikationselement mit einer oder mehreren physikalischen Kenngrößen von Modulen/Elementen in dem System selbst verknüpft. In verschiedenen Ausführungsformen bezieht sich das eindeutige Identifikationselement auf eine Halbleitersignatur eines Halbleiterwafers. Eine Halbleitersignatur oder -kenngröße kann von feinen physikalischen Unterschieden unter Halbeiterbauteilen in einem einzelnen Chip und unter Halbleiterchips abgeleitet werden oder sich darauf beziehen, die sich an verschiedenen Stellen quer über einem Wafer befinden. Diese Unterschiede haben ihren Ursprung in Ungleichmäßigkeit und kleinen Ungenauigkeiten bei Lithographie- und Wafer-Verarbeitungsschritten, obwohl die Bausteine oder Chips identisch sein sollen. Ein physisches Element in einem System weist seine Besonderheit bei seinen elektrischen, mechanischen, magnetischen, chemischen und anderen Eigenschaften auf.
-
Die Unterschiede können statistisch zufällig und klein sein und gemäß bestimmten Ausführungsformen der Erfindung als kleine Gradienten über den Wafer in mehr als einer Richtung und sehr kleine Unterschiede bei Kapazität, Geschwindigkeit oder Temperaturempfindlichkeit von einem Transistor zum nächsten messbar sein. Diese Unterschiede werden benutzt, um statistisch zufällige Zahlen zu erzeugen, die eindeutig, nicht duplizierbar und wiederholbar sind, und die benutzt werden, um davon abgeleitete Chiffrierschlüssel zu härten.
-
Ein Fachmann wird erkennen, dass Härten von Chiffrierschlüsseln in einer großen Anzahl von Architekturen anwendbar ist. Ein Fachmann wird weiter erkennen, dass ein Halbleiterchip eine große Anzahl an physikalischen Kenngrößen aufweisen kann, die von einem Wafer zum anderen und von einem Chip zum anderen statistisch zufällig sind, und die alle zum Erzeugen eines Chiffrierschlüssels nützlich sein können und in den Umfang der vorliegenden Erfindung fallen sollten.
-
Kurze Beschreibung der Zeichnungen
-
Es ist Bezug auf Ausführungsbeispiele der vorliegenden Erfindung genommen, die in den begleitenden Figuren dargestellt sind. Diese Figuren sollen erläuternd statt einschränkend sein. Obwohl die vorliegende Erfindung allgemein im Kontext dieser Ausführungsformen beschrieben ist, ist damit nicht beabsichtigt, den Umfang der vorliegenden Erfindung auf die besonderen Merkmale der dargestellten und beschriebenen Ausführungsformen zu beschränken.
-
1 ist ein Diagramm nach dem Stand der Technik, das ein gesichertes System darstellt, umfassend einen Mikrocontroller und ein Modul.
-
2 ist ein in zwei Richtungen verbundenes gesichertes System, in dem eindeutige Identifikationselemente in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt werden.
-
3 ist ein in einer Richtung verbundenes gesichertes System, in dem (ein) eindeutige(s) Identifikationselement(e) in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt werden.
-
4 ist ein gesichertes Mutimaster-System, in dem eindeutige Identifikationselemente in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt werden.
-
5 ist ein gesichertes System, in dem logisch getrennte Ressourcen über eine Vielzahl von Mikrocontrollern gemeinsam genutzt sind und eindeutige Identifikationselemente in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt werden.
-
Ein Fachmann wird erkennen, dass verschiedene Umsetzungen und Ausführungsformen der Erfindung gemäß der Beschreibung praktiziert werden können. Alle diese Umsetzungen und Ausführungsformen sollen im Umfang der Erfindung enthalten sein.
-
Genaue Beschreibung der bevorzugten Ausführungsformen
-
In der folgenden Beschreibung sind zum Zweck der Erläuterung besondere Einzelheiten dargelegt, um das Verständnis der vorliegenden Erfindung zu gewährleisten. Die vorliegende Erfindung kann jedoch ohne einige oder alle dieser Einzelheiten umgesetzt werden. Die unten beschriebenen Ausführungsformen der vorliegenden Erfindung können in einer Anzahl verschiedener elektrischer Bauteile, Schaltkreise, Vorrichtungen und Systeme enthalten sein. In einem Blockdiagramm gezeigte Strukturen und Vorrichtungen sind erläuternd für beispielhafte Ausführungsformen der vorliegenden Erfindung und sind nicht als Vorwand zu nehmen, mit dem die breiten Lehren der vorliegenden Erfindung verschleiert werden sollen. Verbindungen zwischen Bestandteilen in den Figuren sollen nicht auf direkte Verbindungen beschränkt sein. Vielmehr können Verbindungen zwischen Bestandteilen modifiziert, umformatiert oder anderweitig durch Zwischenbestandteile geändert werden.
-
Wenn die Beschreibung Bezug auf „eine Ausführungsform” nimmt, bedeutet dies, dass ein besonderes Merkmal, ein Aufbau, eine Eigenschaft oder Funktion, die in Verbindung mit der erwähnten Ausführungsform beschrieben ist, in mindestens einer betrachteten Ausführungsform der vorliegenden Erfindung enthalten ist. Somit stellt das Auftreten des Ausdrucks „in einer Ausführungsform” an verschiedenen Stellen in der Beschreibung keine Vielzahl von Bezugnahmen auf eine einzelne Ausführungsform der vorliegenden Erfindung dar.
-
Verschiedene Ausführungsformen der Erfindung werden für gesicherte Kommunikation, Datenübertragung und Datenspeicherung in Systemen verwendet, die aus (einem) strukturierten Modul(en) bestehen. Strukturierte Module sind Bestandteile eines Systems mit definierten Beziehungen und definierten Hierarchien zwischen zwei oder mehr Modulen. Ein Modul kann ein Speichermodul, Mikrocontroller, Coprozessor oder eine beliebige andere Vorrichtung in einem System sein, die in dem System kommuniziert und/oder Informationen empfängt. Eins oder mehrere der Module enthalten ein eindeutiges Identifikationselement, das dazu dient, um Chiffrierschlüssel zum Absichern von in dem System gespeicherten, innerhalb des Systems übermittelten oder von dem System übermittelten Daten zu erzeugen. Diese Systeme und das/die Modul(e) darin können auf einem einzelnen Substrat integriert sein oder diskrete Bauteile enthalten. Weiterhin sind Ausführungsformen der Erfindung auf eine andere Menge von Verschlüsselungsprotokollen und -techniken anwendbar, die in dem System verwendet sein können, nachdem Chiffrierschlüssel erzeugt wurden.
-
2 stellt ein in zwei Richtungen verbundenes gesichertes System 200 dar, in dem eindeutige Identifikationselemente in der gesicherten Architektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt werden. Das System umfasst einen Mikrocontroller 205 und ein Modul 210. Der Mikrocontroller enthält eine Verarbeitungseinheit 215 oder einen Kern und eine Schnittstelle 220, die sich mit einem Codierblock 230 und einem Decodierblock 225 koppelt. In bestimmten Ausführungsformen codieren/decodieren der Codier- und der Decodierblock 225, 230 sowohl die Daten als auch die Adresse, die zu einer Anweisung oder einem Datenblock gehören.
-
Ein eindeutiges Identifikationselement 240 im Mikrocontroller 205 ist mit einem ersten Geheimnisgenerator 250 gekoppelt, der ein erstes Geheimnis (Geheimnis B) zur nachfolgenden Verwendung in der Sicherheitsarchitektur des Systems erzeugt. Das erste Geheimnis kann als Startwert für (einen) Chiffrierschlüssel oder als der Schlüssel selbst verwendet werden. Dieser Schlüssel kann symmetrische oder asymmetrische Blockverschlüsselung, einen Ansatz mit Stromverschlüsselung, Datenverwürfeln oder andere Verschlüsselungsverfahren unterstützen, die einem Fachmann bekannt sind. Ein Speicher 235, der den/die Chiffrierschlüssel speichert, befindet sich auch im Mikrocontroller und kann Teil eines größeren Speichers oder ein diskreter Speicher sein. Der Schlüsselspeicher 235 kann auch Sicherheitsmerkmale betreffend Manipulationserkennung, unerlaubtes Sondieren usw. aufweisen. Der Schlüsselspeicher 235 speichert (einen) Schlüssel, der/die ermöglicht/ermöglichen, im Mikrocontroller Daten aus dem Modul 210 zu entschlüsseln.
-
Das Modul 210 ist mit dem Mikrocontroller 205 über einen Kommunikationskanal 255 gekoppelt, der drahtgebunden oder drahtlos sein und unter einem beliebigen Kommunikationsprotokoll arbeiten kann. Das Modul 210 umfasst einen Funktionsblock 290, der eine oder mehrere Funktionen in dem System ausübt. Beispielsweise kann der Funktionsblock 290 Operationen durchführen, die einen Speicher, einen digitalen Signalprozessor, eine Grafik-Verarbeitungseinheit, eine Kommunikationseinheit, einen kryptografischen Coprozessor oder jede andere Art Modul betreffen, mit der der Mikrocontroller 205 kommuniziert.
-
Das Modul 210 enthält auch einen Codierblock 295 und einen Decodierblock 290, der verschlüsselte Kommunikation mit dem Mikrocontroller 205 unterstützt. Der Codier- und der Decodierblock 290, 295 können Daten und/oder (eine) Adresse(n) codieren/decodieren, die zu einer Anweisung oder einem Datenblock gehören. Das Modul 210 umfasst weiter (ein) eindeutig(es) Identifikationselement(e) 280, das/die mit einem zweiten Geheimnis-Generator 285 gekoppelt ist/sind, der ein zweites Geheimnis (Geheimnis A) erzeugt. Das zweite Geheimnis kann als Startwert für (einen) Chiffrierschlüssel oder als der Schlüssel selbst verwendet werden. Ein Schlüsselspeicher 260 befindet sich auch in dem Modul 210 und kann Teil eines größeren Speichers oder ein diskreter Speicher sein. Dieser Schlüsselspeicher 260 kann auch Sicherheitsmerkmale betreffend Manipulationserkennung, unerlaubtes Sondieren usw. aufweisen. Der Schlüsselspeicher 260 speichert (einen) Schlüssel, der ermöglicht, im Modul 210 Daten aus dem Mikrocontroller 205 zu entschlüsseln.
-
In bestimmten Ausführungsformen sind die eindeutigen Identifikationselemente 240, 280 Identifikationswerte, die mit den physikalischen Kenngrößen des Mikrocontrollers 205 oder des Moduls 210 verknüpft und/oder davon abgeleitet sind. In einem Beispiel werdeneine Halbleitersignatur oder Kenngröße(n) als die eindeutigen Identifikationselemente verwendet oder als Startwerte für einen Vorgang verwendet, der die eindeutigen Identifikationselemente erzeugt. Eine Halbleitersignatur oder -kenngröße kann von feinen physikalischen Unterschieden unter Halbeiterbauteilen in einem einzelnen Chip und unter Halbleiterchips, die sich an verschiedenen Stellen quer über einem Wafer befinden, abgeleitet werden oder sich darauf beziehen. Diese Unterschiede haben ihren Ursprung in Ungleichmäßigkeit und kleinen Ungenauigkeiten bei Lithographie- und Wafer-Verarbeitungsschritten, auch wenn beabsichtigt ist, dass die Bausteine oder Chips identisch sind. Wenn die physischen Elemente durch Halbleiterverarbeitung hergestellt werden, können sie an unterschiedlichen physischen Stellen angeordnet oder unterschiedlich ausgerichtet sein, und örtliche Halbleiterprozesscharakteristiken sind nicht völlig einheitlich für diese physischen Elemente. Als Ergebnis weist jedes physische Element seine Besonderheit bei seinen elektrischen, mechanischen, magnetischen, chemischen und anderen Eigenschaften auf.
-
Die Unterschiede können statistisch zufällig und klein sein und können als kleine Gradienten über den Wafer in mehr als einer Richtung und sehr kleine Unterschiede bei Kapazität, Geschwindigkeit oder Temperaturempfindlichkeit von einem Transistor zum nächsten messbar sein. Zum Beispiel können sich zwei sonst identische Kondensatoren aufgrund von Unterschieden in Dielektrikumsdicke und Plattenfläche um 0,1% in der Kapazität unterscheiden. Die erstere kann durch Schwankung in einem Dielektrikums-Formierungsschritt verursacht sein, während sich die letztere aus Variationen bei Lithographie oder Ätzen ergibt. Der Halbleiterentwurf ist normalerweise bestrebt, diese Unterschiede zu minimieren, sodass die Leistungsfähigkeit des Endprodukts innerhalb einer bestimmten Toleranz gesteuert ist. Jedoch sind die Unterschiede hier genutzt, um statistisch zufällige Zahlen zu generieren, die eindeutig, nicht duplizierbar und wiederholbar sind.
-
Ein Fachmann wird erkennen, dass andere Kenngrößen entweder des Mikrocontrollers 205 oder des Moduls 210 innerhalb der Sicherheitsstruktur des Systems als Identifikationselemente benutzt werden können.
-
Ein Fachmann wird erkennen, dass das in zwei Richtungen verbundene gesicherte System 200 nach verschiedenen Verfahren arbeiten kann. In einem Beispiel enthält der Betrieb des gesicherten Systems eine Initialisierungsphase und eine Modulzugriffsphase. Bei der Systeminitialisierung (oder dem Einschalten oder gemäß einem vordefinierten Zeitplan) erzeugt das Modul 210 ein Geheimnis (Geheimnis A) 285 aus seinem/seinen eindeutigen Identifikationselement(en) 280. Der Mikrocontroller 205 erzeugt auch ein Geheimnis (Geheimnis B) 250 aus seinem/seinen eindeutigen Identifikationselement(en) 240. Wie zuvor erwähnt, können die Geheimnisse (Geheimnis A und B) die eindeutigen Identifikationselemente sein oder können das Ergebnis einer mathematischen Funktion mit den eindeutigen Identifikationselementen als Startwert sein. Das Geheimnis B 250 wird für das Modul 210 bereitgestellt und wird im Speicher 260 gespeichert. Das Geheimnis A 285 wird für den Mikrocontroller 205 bereitgestellt und wird im Speicher 235 gespeichert. Als Ergebnis weisen sowohl der Mikrocontroller 205 als auch das Modul 210 Verschlüsselungs- und Entschlüsselungsschlüssel auf, um gesicherte Kommunikation zu unterstützen. Sehr wichtig ist, dass die Sicherheit dieser Schlüssel erhöht ist, weil jeder von einem hoch geheimen Element abgeleitet war, das sehr schwer zu entdecken und/oder zu replizieren ist.
-
Die Modul-Zugriffsphase ermöglicht dem Mikrocontroller 205, auf die Modulfunktion 290 zuzugreifen, die Daten und Adresseninformationen erfordern kann, die im Modul 210 zu verarbeiten sind. In bestimmten Ausführungsformen wird eine Anweisung unter Verwendung von Geheimnis B im Codierblock 230 auf dem Mikrocontroller erzeugt und verschlüsselt. Die codierte Anweisung wird zum Modul 210 über den Kanal 255 übermittelt. Der Decodierblock 290 empfängt eine Anweisung vom Mikrocontroller 205. Unter Verwendung des im Schlüsselspeicher 260 gespeicherten Geheimnisses B 250 decodiert der Decodierblock 290 die Anweisung (oder den Datenblock) und leitet die entschlüsselte Anweisung zur anschließenden Verarbeitung an die Modulfunktion 290 weiter. In einem Beispiel, in dem sich das Modul 210 auf den Speicher bezieht, wird ein Lesevorgang vom Mikrocontroller 205 zum Modul 210 gesendet. Die Anforderung wird im Speichermodul unter Verwendung eines ähnlichen Verfahrens decodiert und verarbeitet, sodass ein entsprechender Block von Daten aus einem zugehörigen Speicher gelesen wird.
-
Die oben beschriebenen Verfahren und Systeme beziehen sich auf einen Mikrocontroller mit einem einzigen Modul. Jedoch wird ein Fachmann erkennen, dass der Umfang der Erfindung auf jede Art oder Anzahl von Modulen angewendet werden kann, die sicher mit einem Mikrocontroller oder einer anderen Vorrichtung kommunizieren. Die Sicherheitsstruktur sieht nicht nur erhöhte Sicherheit beim Erzeugen von Geheimnissen oder Schlüsseln vor, sondern ermöglicht auch, dass Module durch den Austausch von Schlüsseln miteinander verknüpft/verbunden sind, die von physikalischen Kenngrößen der Module abgeleitet sind. In einem typischen System sind periphere Module an einen Mikrocontroller gebunden und können nicht ohne die Mitwirkung des Mikrocontrollers ersetzt werden, wodurch unerlaubte Systemänderungen verhindert werden und die Sicherheit von darin gespeicherten Daten geschützt ist.
-
3 ist ein in einer Richtung verbundenes gesichertes System, in dem (ein) eindeutige(s) Identifikationselement(e) in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt ist/sind. Verschiedene Ausführungsformen der Erfindung unterstützen ein Ein-Richtungs-Kommunikationssystem oder ein Zwei-Richtungs-Kommunikationssystem, in dem nur eine Richtung verschlüsselt ist.
-
In dem beispielhaften, in einer Richtung verbundenen gesicherten System von 3 ist die Kommunikation von einem Modul 310 zu einem Mikrocontroller 305 unter Verwendung eines sicheren Schlüssels verschlüsselt. Auf ähnliche Weise wie oben beschrieben wird ein eindeutiges Identifikationselement 350 auf dem Modul 310 durch einen Geheimnis-Generator 340 als Chiffrierschlüssel oder als Startwert zum Erzeugen des Schlüssels benutzt. Der Schlüssel wird zum Mikrocontroller 305 übermittelt und in einem Schlüsselspeicher 330 gespeichert. Kommunikation vom Modul 310 wird im Codierblock 360 codiert und über den Kanal 320 zum Mikrocontroller 305 übermittelt. Ein Decodierblock 370 greift auf den Schlüssel zu und decodiert die Kommunikation für nachfolgende Verarbeitung.
-
Ein Fachmann wird erkennen, dass verschiedene Umsetzungen in der beschriebenen Architektur und dem Umfang der Erfindung verwirklicht werden können. Beispielsweise kann ein Modul auch für einen Mikrocontroller oder eine andere Vorrichtung authentifiziert werden. In einem Beispiel enthält der Authentifizierungsvorgang eine Initialisierungsphase und eine Modul-Überprüfungsphase. Bei der Systeminitialisierung (z. B. im Werk) wird Information über das eindeutige Identifikationselement 350 des Moduls entweder im Mikrocontroller 305 des Systems oder in einem vernetzten Überprüfungsserver aufgezeichnet. Das Modul 310 wird verriegelt, um weitere direkte Verbreitung der Information über das eindeutige Identifikationselement 350 zu verhindern.
-
Während der Modul-Überprüfungsphase erzeugt der Mikrocontroller 305 eine eindeutige oder zufällige Zahl, die benutzt werden wird, um das Modul 310 zu authentifizieren. Diese Zahl wird dem Modul 310 als Probezahl mitgeteilt, die in einem Probe-Antwort-Verfahren verwendet wird. Das Modul 310 berechnet eine Antwort auf Grundlage der Probezahl und seines eindeutigen Identifikationselements 350. Ein Fachmann wird erkennen, dass die Probezahl und das eindeutige Identifikationselement kombiniert oder auf verschiedene Weise im Authentifizierungsverfahren bearbeitet werden können. In einem Beispiel berechnet das Modul 310 einen sicheren Hash-Wert aus dem eindeutigen Identifikationselement 350 und der Probezahl. Das Ergebnis der Hash-Funktion wird zum Mikrocontroller 305 übermittelt. Weil der Mikrocontroller 305 die Probezahl, das eindeutige Identifikationselement 350 und die Hash-Funktion kennt, kann der Mikrocontroller das Modul 310 auf Grundlage der Antwort authentifizieren. Wie zuvor erwähnt, kann der Mikrocontroller 305 einen Überprüfungsserver als Teil dieses Verfahrens benutzen.
-
Ein Fachmann wird erkennen, dass die oben beschriebene Architektur Varianten modularer Authentifizierung unterstützen kann. Beispielsweise können vielfache eindeutige Identifikationselemente verwendet werden, um die Zufälligkeit und Härte sowohl der Authentifizierung als auch des Authentifizierungsvorgangs zu erhöhen. In einem Fall würde ein erstes, öffentliches Element als öffentliche Modul-Kennung dienen, und ein zweites, geheimes Element würde zur Berechnung der Überprüfung verwendet werden, wie oben beschrieben. Um das Sicherheitssystem weiter zu härten, erzeugt das Modul 310 vor dem Berechnen der Antwort eine Zufallszahl. Das zusätzliche Erzeugen einer Zufallszahl kann im Sicherheitsprotokoll umgesetzt sein, um bestimmte Angriffe zu vereiteln, wie etwa Known-Plaintext-Attacks.
-
In dem Beispiel, in dem das Modul 310 die Zufallszahl erzeugt, berechnet das Modul 310 eine Antwort auf Grundlage der Probezahl, des eindeutigen Identifikationselements 350 und der vor Ort erzeugten Zufallszahl. Beispielsweise berechnet das Modul 310 einen sicheren Hash-Wert aus dem eindeutigen Identifikationselement 350, der Probezahl und der vor Ort erzeugten Zufallszahl. Das Ergebnis der Berechnung und die Zufallszahl werden zum Mikrocontroller 305 zurückgegeben. Der Mikrocontroller 305 überprüft die Antwort entweder auf Grundlage seiner eigenen Kenntnis des eindeutigen Identifikationselements 350 des Moduls oder über den vernetzten Überprüfungsserver.
-
Die zuvor beschriebenen Beispiele beschreiben die gesicherte Kommunikation oder Authentifizierung eines Moduls für einen Mikrocontroller. Jedoch wird ein Fachmann erkennen, dass andere Systeme verschiedene Ausführungsformen der Erfindung umsetzen können. Jedes ausreichende geistige Eigentum, System, Vorrichtung oder Verfahren, bei dem ein eindeutiges Identifikationselement auf einer oder beiden Seiten eines Datenaustauschs angewendet sein kann, kann aus der erhöhten Sicherheit nach der vorliegenden Erfindung Nutzen ziehen.
-
In komplexen, strukturierten Systemen können sowohl ein Mikrocontroller als auch ein oder mehrere zusätzliche Module die Erfindung nutzen. Beispielsweise kann in einem Mikrocontroller-Bussystem ein kryptografischer Coprozessor Nutzen aus der Codierung und dem Schutz ziehen, die durch verschiedene Ausführungsformen der Erfindung vorgesehen sind. In einem solchen Beispiel stellt 4 ein System mit zwei Bus-Mastern dar. In anderen Fällen können periphere Module mit Bus-Master-Fähigkeiten (DMA) auch in der Lage sein, mit anderen codierten peripheren Modulen oder mit Speichermodulen zu kommunizieren.
-
Mit Bezug auf 4 können vielfache Module mit einem Mikrocontroller oder anderen Modul kommunizieren oder für diese authentifiziert werden. In diesem Beispiel unterstützt die Sicherheitsarchitektur ein dreiphasiges Verfahren, in dem gesicherte Informationen zwischen einem Mikrocontroller 405, einem peripheren Modul (z. B. einem Coprozessor) 410 und einem Speichermodul 415 ausgetauscht werden.
-
Bei der Systeminitialisierung oder beim Einschalten oder nach einem zuvor vereinbarten Zeitplan erzeugt das Speichermodul 415 das Geheimnis A unter Verwendung des Geheimnis-Generators 435 und des eindeutigen Identifikationselements 430. Der Mikrocontroller 405 erzeugt das Geheimnis B unter Verwendung des Geheimnisgerators 470 und des eindeutigen Identifikationselements 475. Das Coprozessormodul 410 erzeugt das Geheimnis C unter Verwendung des Geheimnisgerators 440 und des eindeutigen Identifikationselements 445. Wie zuvor beschrieben, können die Geheimnisse A, B und C direkt von einem eindeutigen Identifikationselement abgeleitet oder das Ergebnis einer mathematischen Berechnung sein, in der das eindeutige Identifikationselement als Startwert verwendet ist.
-
Der Mikrocontroller 405 kommuniziert das Geheimnis B (z. B. das eindeutige Identifikationselement 460 oder den vom eindeutigen Identifikationselement 460 abgeleiteten Wert) zum Speichermodul 415 und zum Coprozessormodul 410. Das Speichermodul 415 kommuniziert das Geheimnis A zum Mikrocontroller 405 und zum Coprozessormodul 410. Das Coprozessormodul 410 kommuniziert das Geheimnis C zum Mikrocontroller 405 und zum Speichermodul 415. Diese Kommunikationen können Klartext sein oder Protokolle mit Austausch kryptografischer geheimer Schlüssel verwenden, die einem Fachmann bekannt sind. Diese Protokolle können sowohl asymmetrische als auch symmetrische Verfahren enthalten, was davon abhängen kann oder nicht, ob die Geheimnisse geschützt sein müssen.
-
Das Speichermodul 415 speichert das Geheimnis B im Speicher 425 und das Geheimnis C im Speicher 420. Der Mikrocontroller speichert das Geheimnis A im Speicher 465 und das Geheimnis C im Speicher 480. Das Coprozessormodul 410 speichert das Geheimnis A im Speicher 455 und das Geheimnis B im Speicher 450. Die Verteilung von Geheimnissen in entsprechenden Schlüsselspeichern unterstützt die gesicherte Kommunikation zwischen den vielfachen Modulen und dem Mikrocontroller.
-
Sobald eine gesicherte Kommunikationsinfrastruktur in dem System aufgebaut wurde, kann der Mikrocontroller 405 sicher auf das Speichermodul 415 zugreifen. In einem solchen Fall werden Adress- und/oder Dateninformationen (je nachdem, ob Schreib- oder Lesevorgang) unter Verwendung des Codierers mit dem Mikrocontroller 405 verarbeitet. Der Codierer benutzt das Geheimnis B als zusätzliche Eingabe, sodass die Information korrekt verschlüsselt wird. Der Codierer kann eine kryptografische Funktion (entweder symmetrisch oder asymmetrisch) oder eine Verwürfelungseinrichtung sein. Die verschlüsselten Informationen werden über einen Kommunikationskanal zum Speichermodul 415 kommuniziert.
-
Das Speichermodul 415 entschlüsselt die Zugriffsanforderung/Information unter Verwendung des Geheimnisses B mit einem Decodierer und führt den entsprechenden Vorgang aus. Ein Fachmann wird erkennen, dass sich dieser Vorgang auf einen Lesevorgang oder einen Schreibvorgang beziehen kann. Im Falle eines Schreibvorgangs werden die vom Mikrocontroller 405 empfangenen Daten in einen Speicher geschrieben. Im Falle eines Lesevorgangs erlangt das Speichermodul 415 entsprechende Daten vom Speicher und benutzt das Geheimnis A und den Codierer, um das Ergebnis zu verschlüsseln. Das Ergebnis wird über einen Kommunikationskanal zum Mikrocontroller 405 kommuniziert, der das Ergebnis unter Verwendung des Geheimnisses A und seines Decodierers decodiert.
-
Der Coprozessor 410 kann auch sicher auf das Speichermodul 415 zugreifen. Der Vorgang wird auf ähnliche Weise wie oben unter Verwendung der entsprechenden Geheimnisse durchgeführt, die dem Coprozessormodul 410 und dem Speichermodul gemeinsam sind.
-
Es ist auch wichtig anzumerken, dass der Mikrocontroller 405, das Coprozessormodul 410 und das Speichermodul 415 unter Verwendung der zuvor beschriebenen Authentifizierungsverfahren authentifiziert werden können.
-
Ein Fachmann wir auch erkennen, dass verschiedene Ausführungsformen der Erfindung gesicherte Kommunikation und Authentifizierung in einem System mit vielfachen Mikrocontrollern und einem oder mehreren Modulen unterstützen. 5 ist ein gesichertes System, in dem logisch getrennte Ressourcen über eine Vielzahl von Mikrocontrollern gemeinsam genutzt sind und eindeutige Identifikationselemente in der Sicherheitsarchitektur des Systems gemäß verschiedenen Ausführungsformen der Erfindung benutzt sind. In diesem Beispiel ist das Modul ein Speichermodul 515; jedoch kann gemäß dem Geist und Umfang der vorliegenden Erfindung jede Art von Modul verwendet werden.
-
Ein übliches Problem, das sich bei einem System mit strukturierten Modulen ergibt, ist das gemeinsame Nutzen der Ressourcen eines Moduls über eine Vielzahl von Mikrocontrollern oder anderen Modulen. Wenn es beispielsweise zwei Mikrocontrollerkerne gibt, ist es wirtschaftlicher, ein einziges Speicherexemplar gemeinsam zu nutzen, als zwei getrennte Speicher zu haben.
-
Gemeinsames Nutzen eines Moduls kann Auswirkungen auf die Sicherheit und Ressourcenverfügbarkeit haben. Es kann erwünscht sein, den Zugriff auf Daten, die im gemeinsam genutzten Modul enthalten sind, auf nur einen Mikrocontroller zu begrenzen und es für den zweiten Mikrocontroller unmöglich zu machen, diese Daten zu bestimmen oder zu ändern, oder einen Mikrocontroller auf einen vorgegebenen Anteil der Ressourcen des Moduls zu beschränken, um Ressourcenverfügbarkeit für den zweiten Mikrocontroller sicherzustellen.
-
Beim Anwenden der oben beschriebenen Systeme, Vorrichtungen und Verfahren wird ein Fachmann erkennen, dass diese Architekturen logisch geteilte und getrennte Ressourcen eines Moduls (z. B. Speicherzellen) unterstützen oder den Zugriff auf eine Ressource (z. B. Grafikverarbeitungskerne) auf weniger als 100 Prozent der Gesamtzahl an Ressourcen beschränken. 5 stellt eine beispielhafte Mehrkern-Architektur dar, in der Ressourcen zwischen zwei Mikrocontrollern gemeinsam genutzt sind. Ein Fachmann wird erkennen, dass verschiedene andere Mehrkern-Architekturen aus der Sicherheitsarchitektur der vorliegenden Erfindung Nutzen ziehen können.
-
Mit Bezug auf 5 nutzen ein erster Mikrocontroller 505 und ein zweiter Mikrocontroller 510 ein Speichermodul 515. Wie in dieser Figur dargestellt, und ähnlich gewisser Funktionalität in 4, kommunizieren das Modul und vielfache Mikrocontroller sicher miteinander unter Verwendung von Geheimnissen, die mit eindeutigen Identifikationselementen auf dem Speichermodul und den Mikrocontrollern verknüpft sind. Ein Austausch von Geheimnissen im System ermöglicht den Mikrocontrollern und dem Speicher, im gesamten System sicher zu kommunizieren und Ressourcen zu verwalten.
-
In diesem Beispiel enthält das Modul mit der gemeinsamen Ressource (z. B. dem Speicher) mehr als ein eindeutiges Identifikationselement und zugehörige Geheimnisse (z. B. von den eindeutigen Identifikationselementen abgeleitete Schlüssel oder solche mit diesen als Startwert) sowie einen zusätzlichen Ressourcen-Trennblock. Je nach Systemanforderungen kann dieser Block einfach (z. B. unter Verwendung der Ressourcenadresse zur Trennung) oder komplexer sein (z. B. unter Berücksichtigung der Häufigkeit der Ressourcennutzung, der Systemauslastung und anderer System- und äußerer Zustandseingaben).
-
Ungeachtet der besonderen Umsetzung des Ressourcen-Trennblocks verhindert die Verwendung vielfacher, getrennter Schlüssel aus eindeutigen Identifikationselementen wirksam, dass ein Mikrocontroller auf eine beliebige Ressource zugreift, die zur Verwendung durch einen anderen Mikrocontroller zugewiesen war. Weiterhin bezieht sich diese Technik, während das Beispiel zwei Mikrocontroller und einen Speicher zeigt, auf eine beliebige Anzahl gemeinsam genutzter Module mit einer beliebigen Anzahl Ressourcen-nutzender Module in einem beliebigen strukturierten Modulsystem. Beispiele Ressourcen-nutzender Module umfassen, sind aber nicht darauf beschränkt, Mikrocontroller, Grafikprozessoren, digitale Signalprozessoren, kryptografische Coprozessoren usw. Ressourcen gemeinsam genutzter Module umfassen, sind aber nicht darauf beschränkt, Eingabe-/Ausgabe-Peripheriegeräte oder beliebige andere Ressourcen-nutzende Module, die einem Fachmann bekannt sind. Beliebige der Ressourcen-nutzenden Module können in bestimmten Ausführungsformen der vorliegenden Erfindung auch Ressourcen vorsehen.
-
Die vorstehende Beschreibung der Erfindung wurde zu Zwecken der Deutlichkeit und des Verständnisses verfasst. Sie soll die Erfindung nicht auf die genaue offenbarte Form einschränken. Verschiedene Modifikationen innerhalb des Umfangs und der Äquivalenz der angefügten Ansprüche sind möglich.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-