DE112016001972T5 - Sicherer Zugriff in einem Mikrokontrollersystem - Google Patents

Sicherer Zugriff in einem Mikrokontrollersystem Download PDF

Info

Publication number
DE112016001972T5
DE112016001972T5 DE112016001972.6T DE112016001972T DE112016001972T5 DE 112016001972 T5 DE112016001972 T5 DE 112016001972T5 DE 112016001972 T DE112016001972 T DE 112016001972T DE 112016001972 T5 DE112016001972 T5 DE 112016001972T5
Authority
DE
Germany
Prior art keywords
secure
cpu
access
system bus
microcontroller
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.)
Pending
Application number
DE112016001972.6T
Other languages
English (en)
Inventor
Frode Milch Pedersen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atmel Corp
Original Assignee
Atmel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atmel Corp filed Critical Atmel Corp
Publication of DE112016001972T5 publication Critical patent/DE112016001972T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode

Landscapes

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

Abstract

Es werden Systeme, Verfahren und Computer-lesbare Medien offenbart, die einen sicheren Zugriff in einem Mikrokontrollersystem zur Verfügung stellen. In manchen Implementierungen umfasst ein Mikrokontrollersystem einen Systembus und eine sichere Zentralverarbeitungseinheit (CPU), die mit dem Systembus gekoppelt ist. Die sichere CPU ist dazu konfiguriert, einen sicheren Zugriff auf den Systembus zur Verfügung zu stellen. Eine nicht sichere CPU ist ebenfalls mit dem Systembus gekoppelt und dazu konfiguriert, einen nicht sicheren Zugriff auf den Systembus zur Verfügung zu stellen. Ein nicht sicherer Speicher ist mit dem Systembus gekoppelt und dazu konfiguriert, es der sicheren CPU und der nicht sicheren CPU zu ermöglichen, Daten auszutauschen und miteinander zu kommunizieren. Eine Peripheriezugriffssteuereinheit (PAC) ist mit dem Systembus gekoppelt und dazu konfiguriert, einen sicheren Zugriff auf ein Peripheriegerät durch die sichere CPU zu ermöglichen, während ein nicht sicherer Zugriff auf das Peripheriegerät auf Basis eines nicht sicheren Zustands der nicht sicheren CPU verhindert wird.

Description

  • TECHNISCHER BEREICH
  • Diese Offenbarung bezieht sich auf sichere Informationsverarbeitung.
  • HINTERGRUND
  • Beim Entwurf von Produkten mit Mikrokontrollersystemen kann es wünschenswert sein, den Programmcode direkt in einen sicheren Speicher einzuprogrammieren, so dass ein Kunde den Code ausführen kann, ihn aber nicht kopieren oder modifizieren kann. Zusätzlich kann es wünschenswert sein, eine Anwendung in sichere und nicht sichere Domänen aufzuteilen, wobei die sichere Domäne die Verarbeitung von kritischen Informationen (z. B. kryptografischen Schlüsseln) durch einen in dem sicheren Speicher gespeicherten Code mit vollständigem Systemzugriff ermöglicht, wohingegen die nicht sichere Domäne keinen Zugriff auf den sicheren Speicher hat. Eine derartige Architektur mit aufgeteilten Domänen verbessert die Sicherheit, in dem verhindert wird, dass Softwarefehler Informationen aus der sicheren Domäne zufällig in die nicht sichere Domäne gelangen lassen. Mikrokontrollersysteme mit einer aufgeteilten Domänenarchitektur sind für eine einzelne Zentralverarbeitungseinheit (CPU) ausgelegt, die dazu ausgelegt ist, in sicheren und nicht sicheren Betriebsarten zu arbeiten, um einen sicheren Übergang zwischen einem sicheren Betrieb und einem nicht sicheren Betrieb sicherzustellen.
  • ZUSAMMENFASSUNG
  • Es werden Systeme, Verfahren und computerlesbare Medien offenbart, die einen sicheren Zugriff in einem Mikrokontrollersystem zur Verfügung stellen. In manchen Implementierungen umfasst ein Mikrokontrollersystem einen Systembus und eine sichere Zentralverarbeitungsarbeit (CPU), die mit dem Systembus gekoppelt ist. Die sichere CPU ist dazu konfiguriert, einen sicheren Zugriff auf den Systembus zur Verfügung zu stellen. Eine nicht sichere CPU ist ebenfalls mit dem Systembus gekoppelt und ist dazu konfiguriert, einen nicht sicheren Zugriff auf den Systembus zur Verfügung zu stellen. Ein nicht sicherer Speicher ist mit dem Systembus gekoppelt und dazu konfiguriert, es der sicheren CPU und der nicht sicheren CPU zu ermöglichen, Daten auszutauschen und miteinander zu kommunizieren. Eine Peripheriezugriffssteuereinheit (Peripheral Access Controller, PAC) ist mit dem Systembus gekoppelt und dazu konfiguriert, einen sicheren Zugriff auf ein Peripheriegerät durch die sichere CPU zu ermöglichen, während ein nicht sicherer Zugriff auf das Peripheriegerät auf Basis eines nicht sicheren Zustands der nicht sicheren CPU verhindert wird.
  • In manchen Implementierungen umfasst ein Verfahren die folgenden Schritte: Detektieren, durch ein Mikrokontrollersystem, eines Systemereignisses; und als Reaktion auf das Systemereignis: Konfigurieren einer ersten CPU des Mikrokontrollersystems, so dass diese in einer sicheren Betriebsart arbeitet, wobei die sichere Betriebsart sichere Zugriffe auf einen Systembus des Mikrokontrollersystems und die Ausführung von sicheren Codes auf der ersten CPU ermöglicht; Konfigurieren einer zweiten CPU, so dass diese in einer nicht sicheren Betriebsart arbeitet, wobei die nicht sichere Betriebsart nicht sichere Zugriffe auf den Systembus und die Ausführung nicht sicheren Codes auf der zweiten CPU ermöglicht; Konfigurieren der ersten CPU und der zweiten CPU, so dass diese Daten austauschen und miteinander unter Verwendung eines nicht sicheren gemeinsamen Speichers kommunizieren; und Konfigurieren einer Peripheriezugriffssteuereinheit (PAC), die mit dem Systembus gekoppelt ist, so dass eine sichere Kommunikation zwischen dem PAC und einem mit dem PAC gekoppelten Peripheriegerät ermöglicht wird.
  • In manchen Implementierungen hat ein nicht-transitorisches, computerlesbares Speichermedium Anweisungen darauf gespeichert, die, wenn diese durch zwei oder mehrere Zentralverarbeitungseinheiten eines Mikrokontrollersystems ausgeführt werden, die zwei oder mehreren Zentralverarbeitungseinheiten des Mikrokontrollersystems dazu veranlassen, Operationen auszuführen, die umfassen: Detektieren eines Systemereignisses; und als Reaktion auf das Systemereignis: Konfigurieren einer ersten CPU, so dass diese in einer sicheren Betriebsart arbeitet, wobei die sichere Betriebsart einen sicheren Zugriff auf einen Systembus des Mikrokontrollersystems und die Ausführung von sicherem Code auf der ersten CPU ermöglicht; Konfigurieren einer zweiten CPU, so dass diese in einer nicht sicheren Betriebsart arbeitet, wobei die nicht sichere Betriebsart einen nicht sicheren Zugriff auf den Systembus und die Ausführung von nicht sicherem Code auf der zweiten CPU ermöglicht; Konfigurieren der ersten CPU und der zweiten CPU, so dass diese Daten austauschen und miteinander unter Verwendung eines nicht sicheren gemeinsamen Speichers kommunizieren; und Konfigurieren einer Peripheriezugriffssteuereinheit (PAC), die mit dem Systembus gekoppelt ist, wobei der PAC eine sichere Kommunikation zwischen dem PAC und einem mit dem PAC gekoppelten Peripheriegerät ermöglicht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein konzeptionelles Blockdiagramm eines Mikrokontrollersystems mit einer sicheren Informationsverarbeitungserweiterung, gemäß bestimmter Implementierungen.
  • 2 ist ein Flussdiagramm eines Beispielprozesses, der durch ein Mikrokontrollersystem mit einer sicheren Informationsverarbeitungserweiterung ausgeführt wird, gemäß bestimmter Implementierungen.
  • DETAILLIERTE BESCHREIBUNG
  • Beispielhafte Systemarchitektur
  • 1 ist ein konzeptionelles Blockdiagramm eines Mikrokontrollersystems 100 mit einer sicheren Informationsverarbeitungserweiterung, gemäß bestimmter Implementierungen. Das Mikrokontrollersystem 100 kann ein Debug Master-Modul 101, eine Zentralverarbeitungseinheit (CPU) 102, eine CPU 103, eine Direktspeicherzugriffssteuereinheit (DMA) 104, einen Speicher 106 (z. B. Flash), 107 (z. B. RAM), eine Slave-Steuereinheit 108, Brücken 109, 113, Slave-Module 110, 111 und eine Peripheriezugriffssteuereinheit (PAC) 114 enthalten. Die Master- und Slave-Module 110, 111, 112 und der PAC 114 sind direkt oder indirekt (z. B. über die Brücken 109, 113) mit dem Systembus 115 (z. B. eine Busmatrix) gekoppelt. Der Systembus ist dazu konfigurierbar, sichere Zugriffsanforderungen von der sicheren CPU 102 weiterzuleiten. In manchen Implementierungen können die sicheren Zugriffsanforderungen mit einem Signal assoziiert sein, das angibt, dass die Anforderung durch die sichere CPU 102 initiiert wurde. In manchen Implementierungen ist das Slave-Modul 110 ein kryptografisches Slave-Modul zur Implementierung einer Integritätsüberprüfungsüberwachung (Integrity Check Monitor, ICM), das in der Lage ist, einen kryptografischen Hash-Algorithmus auszuführen, und das Slave-Modul 111 ist ein kryptografisches Slave-Modul zur Implementierung eines AES (Advanced Encryption Standard) Algorithmus. In manchen Implementierungen empfangen die Slave-Module 110, 111 sichere Signale 122a, 122b von dem PAC 114. Wenn die sicheren Signale 122a, 122b high (oder low) sind, sind nur sichere Buszugriffe gestattet. In manchen Implementierungen können die Slave-Module 110, 111 Softwarewrapperschichten für den Empfang von sicheren Signalen 122a, 122b enthalten. Das Mikrokontrollersystem 100 kann andere Mastermodule 105 und andere Slave-Module 112 zusätzlich zu oder anstelle der in 1 dargestellten Master- und Slave-Module enthalten. Andere Slave-Module 112 können, wenn sie als sichere Slave-Module konfiguriert sind, dazu konfiguriert sein, sichere Signale von dem PAC 114 zu empfangen, um ausschließlich sichere Buszugriffe zu ermöglichen.
  • Als Hilfestellung für den Leser enthält 1 eine Legende, die Schraffurmuster mit sicherem (schräg vorwärts schraffiert) und optional sicheren (schräg rückwärts schraffiert) Master- und Slave-Modulen in dem Mikrokontrollersystem 100 verknüpft. Die Legende zeigt auch, dass kreuzweise schraffierte Blöcke Sicherungen 119a bis 119d (z. B. schreibgeschützte Pseudosicherungen) angeben. In manchen Implementierungen können die Sicherungen 119a bis 119d echte Sicherungen sein, die im Speicher (z. B. Speicher 106) beim System-Reset abgefragt werden, oder Pseudosicherungen, die von einem Speicher (z. B. einem nicht flüchtigen Speicher) ausgelesen werden und beim System-Reset in einer Speichersteuereinheit (nicht dargestellt) aufgefangen werden. Das Mikrokontrollersystem 100 kann um zusätzliche CPUs erweitert werden, wobei jede zusätzliche CPU als sichere oder als nicht sichere CPU konfiguriert werden kann, und jede sichere CPU kann die gleichen sicheren Speicherressourcen mitverwenden.
  • Als Reaktion auf ein Systemereignis (z. B. einem System-Reset) kann die CPU 102 als eine sichere CPU und die CPU 103 als eine nicht sichere CPU konfiguriert werden. Die sichere CPU 102 führt einen sicheren Code aus und stellt einen sicheren Zugriff auf den Systembus 115 zur Verfügung, wohingegen die nicht sichere CPU 103 einen nicht sicheren Code ausführt und einen nicht sicheren Zugriff auf den Systembus 115 zur Verfügung stellt. Die Sicherheitskonfiguration kann statisch (z. B. hartverdrahtet) oder über Pseudosicherungen 119a (FV; FlashVault Enable), 119b (FVDE, FlashVault Debug Enable), 119c (FVFLSZ; FlashVault Flash Size) und 119d (FVRAMSZ; FlashVault RAM Size) (z. B. schreibgeschützte Pseudosicherungen) sein. Die Pseudosicherungen können beim System-Reset geladen werden, um das Mikrokontrollersystem 100 zu konfigurieren, bevor ein Client-Anwendungscode ausgeführt wird.
  • Die oben stehend beschriebene Sicherheitskonfiguration ermöglicht es, dass sicherer Code auf der sicheren CPU 102 ausgeführt wird, wohingegen der Datenaustausch und die Kommunikation zwischen der sicheren CPU 102 und der nicht sicheren CPU 103 in nicht sicheren Teilen der Speicher 106, 107 stattfindet. In manchen Implementierungen kann die sichere CPU 102 sich selbst konfigurieren (z. B. mittels interner Steuerregister 116), um vorübergehend einen nicht sicheren Zugriff auf den Systembus 115 zur Verfügung zu stellen. Dies kann die Robustheit verbessern, wenn nicht sicherer und sicherer Code auf der gleichen CPU ausgeführt werden muss. Sichere Buszugriffe können gesperrt werden, bevor der nicht sichere Code ausgeführt wird, und dann wieder freigegeben werden, wenn weiterer sicherer Code ausgeführt wird. Dies verhindert, dass Softwarefehler in dem nicht sicheren Code versehentlich Daten aus dem sicheren Speicher lesen.
  • Die Slave-Module 110, 111, 112 (z. B. Peripheriegeräte) in dem Mikrokontrollersystem 100 können durch die sichere CPU 102 oder die nicht sichere CPU 103 angesprochen werden. Wenn die sichere Software von sicheren Interaktionen mit einem Peripheriegerät (z. B. den Kryptografischen Modulen 110, 111) abhängt, dann sollte der Zugriff auf das Peripheriegerät auf sichere Zugriffe beschränkt sein. In manchen Implementierungen können sichere Zugriffe in dem Mikrokontrollersystem 100 durch den PAC 114 zentralisiert werden, der dazu konfiguriert werden kann, ein oder mehrere Signale an jedes Slave-Modul oder Peripheriegerät des Systems 100 zu verteilen, um jedes Slave-Modul oder Peripheriegerät anzuweisen, nur sichere Zugriffe zu akzeptieren, die durch die sichere CPU 102 geliefert werden. Das eine oder die mehreren Signale können durch ein oder mehrere Bits geschaltet werden, die in das Steuerregister 117 in dem PAC 114 geschrieben werden. Das Steuerregister 117 kann durch einen sicheren Zugriff, der durch die sichere CPU 102 geliefert wird, geschrieben werden. Das Steuerregister 117 ermöglicht es der sicheren CPU 102, einen sicheren Zugriff auf kritische Peripheriegeräte solange wie erforderlich freizuschalten, und sichere Zugriffe zu sperren, wenn die sichere Operation abgeschlossen ist, so dass das Peripheriegerät durch die nicht sichere CPU 103 gesteuert werden kann.
  • In manchen Implementierungen kann die sichere CPU 102 gesichert werden, in dem die Sicherung FV gesetzt wird. Die sichere CPU 102 kann optional den sicheren Buszugriff abschalten, in dem ein oder mehrere Bits in dem Steuerregister 116 gesetzt werden, welches extern oder intern bezüglich der sicheren CPU 102 sein kann (in 1 als intern bezüglich der sicheren CPU 102 dargestellt). Die sichere CPU 102 kann durch Busabbildungssteuerregister (nicht dargestellt) gesteuert und debugged werden. Wenn FV gesetzt ist, können die Busabbildungssteuerregister durch einen sicheren Zugriff modifiziert werden, der durch die sichere CPU 102 zur Verfügung gestellt wird. In manchen Implementierungen kann die sichere CPU 102 von einem Boot-Code 118 booten, der in einem sicheren Teil des nicht flüchtigen (NV) Speichers 106 (z. B. Flash-Speicher) gespeichert ist. Die oberen Teile des NVM 106 und der flüchtige Speicher 107 (z. B. RAM) können für sichere Operationen reserviert werden. Diese sicheren Teile des Speichers können durch entsprechende Sicherungen FVFLSZ (NVM 106) und FVRAMSZ (RAM 107) eingestellt werden. Die NVM und RAM Steuereinheiten (z. B. DMA 104) stellen einen sicheren Zugriff auf die sicheren Speicherregionen sowie sichere oder nicht sichere Zugriffe auf nicht sichere Speicherregionen zur Verfügung.
  • In manchen Implementierungen enthält der PAC 114 ein Steuerregister 117, in dem ein Benutzer ein Peripheriegerätkennzeichen schreiben kann, das angibt, welches Peripheriegerät für einen Zugriff verwendet werden soll, und einen KEY-Wert, um einen sicheren Zugriff auf das Peripheriegerät freizuschalten oder zu sperren. Der KEY-Wert kann durch die sichere CPU 102 in Form einer sicheren Schreiboperation geschrieben/programmiert werden. Das Steuerregister 117 kann auch dazu verwendet werden, um einen Schreibschutz für das Peripheriegerät unter Verwendung anderer KEY-Werte zu setzen, die durch einen nicht sicheren Zugriff in das Steuerregister 117 geschrieben werden können.
  • In manchen Implementierungen wird das Debug Master-Modul 101 durch einen externen Debugger (extern bezüglich des Mikrokontrollersystems 100) gesteuert und ermöglicht einen Zugriff auf interne Ressourcen für die Programmierung und Fehlersuche. Als Grundeinstellung kann das Debug Master-Modul 101 nicht sicher sein und nicht sichere Zugriffe auf nicht sicheren Speicher und Peripheriegeräte zur Verfügung stellen. Um bei der Entwicklung von sicherem Code zu helfen, kann das Debug Master-Modul 101 vorübergehend sicher gemacht werden, indem die FVDE Sicherung gesetzt wird. Wenn FVDE gesetzt ist, ist das Debug Master-Modul 101 sicher und kann auf alle Speicher und Peripheriegeräte in dem Mikrokontrollersystem 100 zugreifen, inklusive der Steuerregister in der sicheren CPU 102 und dem PAC 114. In manchen Implementierungen kann ein Benutzer die FVDE Sicherung löschen, bevor die Anwendung an den Endbenutzer übergeben wird, um sicherzustellen, dass der externe Debugger die sicheren Speicher in einer Kundenanwendung nicht auslesen kann. In dem dargestellten Beispiel ist SEC 120 eine Sicherheitssicherung, die jeglichen externen Debugger-Zugriff sperrt, wenn sie gesetzt ist. Die SEC 120 kann nur durch einen vollständigen Chip-Löschbefehl zurückgesetzt werden, der alle Speicherinhalte löscht. SWD 121 ist eine Serial Wire Debug-Schnittstelle zur Kommunikation mit dem externen Debugger über einen seriellen Bus.
  • Beispielprozess
  • 2 ist ein Flussdiagramm eines Beispielprozesses 200, der durch ein Mikrokontrollersystem mit einer sicheren Informationsverarbeitungserweiterung ausgeführt wird, gemäß einer Implementierung. Der Prozess 200 kann z. B. in dem Mikrokontrollersystem 100 implementiert werden, das im Zusammenhang mit 1 beschrieben wurde.
  • In manchen Implementierungen kann der Prozess 200 damit beginnen, dass durch das Mikrokontrollersystem der Start einer System-Reset-Sequenz detektiert wird (202). Als Reaktion auf das Systemereignis kann der Prozess 200 dadurch fortgesetzt werden, dass eine erste CPU des Mikrokontrollersystems für einen Betrieb in der sicheren Betriebsart konfiguriert wird, welche sichere Zugriffe auf einen Systembus des Mikrokontrollersystems und die Ausführung von sicherem Code auf der ersten CPU ermöglicht (204). Das Systemereignis kann z. B. ein System-Reset sein und ein Sicherungsbit kann beim System-Reset gesetzt werden, das die erste CPU für den Betrieb in der sicheren Betriebsart konfiguriert.
  • Der Prozess 200 kann dadurch fortgesetzt werden, dass eine zweite CPU für einen Betrieb in der nicht sicheren Betriebsart konfiguriert wird, welche nicht sichere Zugriffe auf den Systembus und die Ausführungen von nicht sicherem Code auf der zweiten CPU ermöglicht (206).
  • Der Prozess 200 kann dadurch fortgesetzt werden, dass die erste CPU und die zweite CPU dazu konfiguriert werden, Daten auszutauschen und miteinander unter Verwendung eines nicht sicheren gemeinsamen Speichers zu kommunizieren (208). Der mit dem Systembus gekoppelte Speicher kann z. B. in sichere und nicht sichere Teile aufgeteilt werden, und die sichere CPU und die nicht sichere CPU können Daten austauschen und unter Verwendung des nicht sicheren Teils des gemeinsamen Speichers miteinander kommunizieren.
  • Der Prozess 200 kann dadurch fortgesetzt werden, dass eine Peripheriezugriffssteuereinheit PAC, die mit dem Systembus gekoppelt ist, dazu konfiguriert wird, eine sichere Kommunikation zwischen dem PAC und einem oder mehreren Peripheriegeräten zu ermöglichen, die mit dem PAC gekoppelt sind (210). Der PAC kann z. B. direkt oder indirekt (z. B. über die Brücke 113 in 1) mit dem Systembus gekoppelt sein und ein oder mehrere Signale an jedes Peripheriegerät verteilen, um das Peripheriegerät anzuweisen, nur sichere Zugriffe zuzulassen.
  • Wenn der Prozess 200 die System-Reset-Sequenz beendet (212), kann die CPU ihre erste Anweisung ausführen (214).
  • Obgleich dieses Dokument zahlreiche spezifische Implementierungseinzelheiten enthält, sollten diese nicht als Beschränkung des beanspruchten Schutzumfangs verstanden werden, sondern als Beschreibung von Merkmalen, die bestimmten Ausführungsformen zu eigen sein können. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben wurden, können auch in Kombination miteinander in einer einzigen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben wurden, auch in mehreren Ausführungsformen getrennt voneinander oder in jeder geeigneten Unterkombination implementiert werden. Obwohl darüber hinaus Merkmale oben stehend als in bestimmten Kombinationen miteinander zusammenwirkend beschrieben wurden und sogar anfänglich derart beansprucht wurden, können in manchen Fällen ein oder mehrere Merkmale aus einer beanspruchten Kombination herausgelöst werden und die beanspruchte Kombination kann auf eine Unterkombination oder eine Variation einer Unterkombination gerichtet werden.

Claims (20)

  1. Mikrokontrollersystem, umfassend: einen Systembus; eine sichere Zentralverarbeitungseinheit (CPU), die mit dem Systembus gekoppelt ist, wobei die sichere CPU dazu konfiguriert ist, einen sicheren Zugriff auf den Systembus zur Verfügung zu stellen; eine nicht sichere CPU, die mit dem Systembus gekoppelt ist, wobei die nicht sichere CPU dazu konfiguriert ist, einen nicht sicheren Zugriff auf den Systembus zur Verfügung zu stellen; einen nicht sicheren Speicher, der mit dem Systembus gekoppelt ist und dazu konfiguriert ist, es der sicheren CPU und der nicht sicheren CPU zu ermöglichen, Daten auszutauschen und miteinander zu kommunizieren; und eine Peripheriezugriffssteuereinheit (PAC), die mit dem Systembus gekoppelt ist, wobei der PAC dazu konfiguriert ist, einen sicheren Zugriff auf ein Peripheriegerät durch die sichere CPU zu ermöglichen, während ein nicht sicherer Zugriff auf das Peripheriegerät auf Basis eines nicht sicheren Zustands der nicht sicheren CPU verhindert wird.
  2. Mikrokontrollersystem nach Anspruch 1, des Weiteren umfassend: ein sicheres Steuerregister, das in dem PAC enthalten ist und durch die sichere CPU programmierbar ist, um einen sicheren Zugriff für eine sichere Operation zu ermöglichen und einen sicheren Zugriff zu verhindern, wenn die sichere Operation abgeschlossen ist.
  3. Mikrokontrollersystem nach Anspruch 2, wobei das sichere Steuerregister während einer sicheren Schreiboperation durch die sichere CPU konfiguriert wird, um ein Peripheriekennzeichen zur Angabe eines Peripheriegeräts als Zugriffsziel und einen Schlüsselwert zu empfangen, wobei der Schlüsselwert einen sicheren Zugriff auf das Peripheriegerät durch die sichere CPU ermöglicht.
  4. Mikrokontrollersystem nach Anspruch 1, wobei die sichere CPU bei einem System-Reset als sicher konfiguriert wird und die nicht sichere CPU als nicht sicher konfiguriert wird.
  5. Mikrokontrollersystem nach Anspruch 4, wobei die Konfiguration der sicheren CPU und der nicht sicheren CPU durch Pseudosicherungen programmierbar ist.
  6. Mikrokontrollersystem nach Anspruch 5, wobei die Pseudosicherungen beim System-Reset in einen nicht flüchtigen Speicher geladen werden.
  7. Mikrokontrollersystem nach Anspruch 1, des Weiteren umfassend ein Konfigurationsregister, das in der sicheren CPU enthalten ist und dazu programmierbar ist vorübergehend einen nicht sicheren Buszugriff für die sichere CPU zur Verfügung zu stellen.
  8. Mikrokontrollersystem nach Anspruch 1, des Weiteren umfassend: ein Debug Master-Modul, das mit dem Systembus gekoppelt ist und dazu programmierbar ist, vorübergehend sicher zu sein, um einen Zugriff durch das Debug Master-Modul auf sichere und nicht sichere Speicher, Register oder Peripheriegeräte des Mikrokontrollersystems zu ermöglichen.
  9. Mikrokontrollersystem nach Anspruch 1, wobei ein Teil des Speichers des Mikrokontrollersystems beim System-Reset als sicher konfiguriert wird.
  10. Mikrokontrollersystem nach Anspruch 1, wobei der Systembus eine Busmatrix ist, die dazu konfigurierbar ist, sichere Zugriffsanforderungen von der sicheren CPU unter Verwendung von einem oder mehreren Bits eines Opcodes oder einer Speicheradresse weiterzuleiten.
  11. Verfahren, umfassend: Detektieren, durch ein Mikrokontrollersystem, eines Systemereignisses; und als Reaktion auf das Systemereignis: Konfigurieren einer ersten CPU des Mikrokontrollersystems für einen Betrieb in einer sicheren Betriebsart, wobei die sichere Betriebsart einen sicheren Zugriff auf einen Systembus des Mikrokontrollersystems und eine Ausführung von sicherem Code auf der ersten CPU ermöglicht; Konfigurieren einer zweiten CPU für eine Betriebsart in einer nicht sicheren Betriebsart, wobei die nicht sichere Betriebsart einen nicht sicheren Zugriff auf den Systembus und eine Ausführung von nicht sicherem Code auf der zweiten CPU ermöglicht; Konfigurieren der ersten CPU und der zweiten CPU für einen Datenaustausch und eine Kommunikation miteinander unter Verwendung von nicht sicherem gemeinsamen Speicher; und Konfigurieren einer Peripheriezugriffssteuereinheit (PAV), die mit dem Systembus gekoppelt ist, um eine sichere Kommunikation zwischen dem PAC und einem mit dem PAC gekoppelten Peripheriegerät zu ermöglichen.
  12. Verfahren nach Anspruch 11 des Weiteren umfassend: Konfigurieren eines Debug Master-Moduls des Mikrokontrollersystems für eine Ausführung von sicherem Code und einen Zugriff auf sichere Speicher, Register oder Peripheriegeräte des Mikrokontrollersystems.
  13. Verfahren nach Anspruch 11, wobei die Konfigurierung der ersten CPU für einen Betrieb in der sicheren Betriebsart, des Weiteren das Setzen einer Pseudosicherung, umfasst.
  14. Verfahren nach Anspruch 11, des Weiteren umfassend: Konfigurieren der ersten CPU für das Setzen von einem oder mehreren Steuerbits in einem Steuerregister, das intern oder extern bezüglich der ersten CPU ist, um einen sicheren Zugriff auf den Systembus durch die erste CPU zu ermöglichen.
  15. Verfahren nach Anspruch 11, des Weiteren umfassend: Booten der ersten CPU während eines Reset des Mikrokontrollersystems unter Verwendung von in einem sicheren nicht flüchtigen Speicher gespeichertem Boot-Code.
  16. Nicht-transitorisches, computerlesbares Speichermedium mit darauf gespeicherten Anweisungen, die, wenn sie durch zwei oder mehrere Zentralverarbeitungseinheiten eines Mikrokontrollersystems ausgeführt werden, die zwei oder mehr Zentralverarbeitungseinheit des Mikrokontrollersystems dazu veranlassen, Operationen auszuführen, die umfassen: Detektieren eines Systemereignisses; und als Reaktion auf das Systemereignis: Konfigurieren einer ersten CPU für einen Betrieb in einer sicheren Betriebsart, wobei die sichere Betriebsart einen sicheren Zugriff auf einen Systembus des Mikrokontrollersystems und eine Ausführung von sicherem Code auf der ersten CPU ermöglicht; Konfigurieren einer zweiten CPU für einen Betrieb in einer nicht sicheren Betriebsart, wobei die nicht sichere Betriebsart einen nicht sicheren Zugriff auf den Systembus und die Ausführung von nicht sicherem Code auf der zweiten CPU ermöglicht; Konfigurieren der ersten CPU und der zweiten CPU für einen Datenaustausch und eine Kommunikation miteinander unter Verwendung von nicht sicherem gemeinsamem Speicher; und Konfigurieren einer Peripheriezugriffsteuereinheit (PAC), die mit dem Systembus gekoppelt ist und eine sichere Kommunikation zwischen dem PAC und einem mit dem PAC gekoppelten Peripheriegerät ermöglicht.
  17. Nicht-transitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Operationen des Weiteren umfassen: Konfigurieren eines Debug Master-Moduls in dem Mikrokontrollersystem für eine Ausführung von sicherem Code und einen Zugriff auf sichere Speicher, Register oder Peripheriegeräte des Mikrokontrollersystems.
  18. Nicht-transitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Konfiguration der ersten CPU für den Betrieb in der sicheren Betriebsart des Weiteren das Setzen einer Pseudosicherung umfasst.
  19. Nicht-transitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Operationen des Weiteren umfassen: Konfigurieren der ersten CPU für das Setzen von einem oder mehreren Steuerbits in einem Steuerregister, das intern oder extern bezüglich der ersten CPU ist, um einen sicheren Zugriff auf den Systembus durch die erste CPU zu ermöglichen.
  20. Nicht-transitorisches, computerlesbares Speichermedium nach Anspruch 16, wobei die Operationen des Weiteren umfassen: Booten der ersten CPU während eines Reset des Mikrokontrollersystems unter Verwendung von in einem sicheren nicht flüchtigen Speicher gespeichertem Boot-Code.
DE112016001972.6T 2015-04-28 2016-04-22 Sicherer Zugriff in einem Mikrokontrollersystem Pending DE112016001972T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/698,330 2015-04-28
US14/698,330 US9715601B2 (en) 2015-04-28 2015-04-28 Secure access in a microcontroller system
PCT/US2016/029033 WO2016176126A1 (en) 2015-04-28 2016-04-22 Secure access in a microcontroller system

Publications (1)

Publication Number Publication Date
DE112016001972T5 true DE112016001972T5 (de) 2018-01-25

Family

ID=55913722

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016001972.6T Pending DE112016001972T5 (de) 2015-04-28 2016-04-22 Sicherer Zugriff in einem Mikrokontrollersystem

Country Status (4)

Country Link
US (1) US9715601B2 (de)
CN (1) CN107533610A (de)
DE (1) DE112016001972T5 (de)
WO (1) WO2016176126A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296741B2 (en) 2017-07-27 2019-05-21 International Business Machines Corporation Secure memory implementation for secure execution of virtual machines
US10387686B2 (en) 2017-07-27 2019-08-20 International Business Machines Corporation Hardware based isolation for secure execution of virtual machines
GB201806465D0 (en) 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
GB201810653D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
GB201810662D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
US11494522B2 (en) 2019-11-07 2022-11-08 Micron Technology, Inc. Semiconductor device with self-lock security and associated methods and systems
US11182308B2 (en) 2019-11-07 2021-11-23 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11132470B2 (en) * 2019-11-07 2021-09-28 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
US11030124B2 (en) 2019-11-07 2021-06-08 Micron Technology, Inc. Semiconductor device with secure access key and associated methods and systems
EP3929784A1 (de) * 2020-06-23 2021-12-29 Siemens Aktiengesellschaft Booteinrichtung für ein computerelement und verfahren zum booten eines computerelements
CN113806805A (zh) * 2021-09-18 2021-12-17 国家石油天然气管网集团有限公司 一种安全数据交换方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7277972B2 (en) * 2002-03-08 2007-10-02 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
US7152193B2 (en) * 2002-08-13 2006-12-19 Lsi Logic Corporation Embedded sequence checking
US8145816B2 (en) * 2004-09-15 2012-03-27 Intel Corporation System and method for deadlock free bus protection of resources during search execution
US20060227376A1 (en) * 2005-03-29 2006-10-12 Kabushiki Kaisha Toshiba Secure image data system and method
US8051467B2 (en) 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
CN101604252A (zh) * 2009-07-10 2009-12-16 深圳华为通信技术有限公司 多处理器系统以及多处理器系统启动方法
US8327125B2 (en) * 2009-12-28 2012-12-04 General Instrument Corporation Content securing system

Also Published As

Publication number Publication date
CN107533610A (zh) 2018-01-02
US20160321472A1 (en) 2016-11-03
WO2016176126A1 (en) 2016-11-03
US9715601B2 (en) 2017-07-25

Similar Documents

Publication Publication Date Title
DE112016001972T5 (de) Sicherer Zugriff in einem Mikrokontrollersystem
DE102015205396B4 (de) Speichersystem und Verfahren zum Durchführen und Authentifizieren eines Schreibschutzes für dieses
DE102015017399B3 (de) Speichergerät, Betriebsverfahren des Speichergeräts und elektronisches Gerät mit dem Speichergerät
DE102018123817A1 (de) Vorrichtung für den direkten hostzugriff auf den speicherort einer speichervorrichtung
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE102013111339A1 (de) Sicherheitsverwaltungseinheit, Hostcontrollerschnittstelle mit derselben, Verfahren zum Betreiben einer Hostcontrollerschnittstelle und Vorrichtungen mit einer Hostcontrollerschnittstelle
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
DE102009017496B4 (de) Speicherzugriff in einem System mit Speicherschutz
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
DE102019128528A1 (de) Datenkryptografievorrichtungen und speichersysteme
DE112018006401T5 (de) Transparent zugeordnete flash-memory-sicherheit
DE102021101458A1 (de) Master- und Slave-Prozessoren zum Konfigurieren von Subsystemen
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102010003153B4 (de) Verarbeitungseinheit, Vorrichtung, die zwei Verarbeitungseinheiten aufweist, Verfahren zum Testen einer Verarbeitungseinheit und einer Vorrichtung, die zwei Verarbeitungseinheiten aufweist
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE102011011333A1 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE102014011665B4 (de) System und Verfahren für DMA-Betrieb mit hoher Integrität
DE102016201340A1 (de) Konfigurierung serieller Geräte
EP3751572B1 (de) Speichervorrichtung
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
DE102013108073B4 (de) Datenverarbeitungsanordnung und verfahren zur datenverarbeitung
WO2010089083A2 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software

Legal Events

Date Code Title Description
R012 Request for examination validly filed