-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität der koreanischen Patentanmeldung Nr.
10-2020-0028586 , die am 6. März 2020 beim koreanischen Amt für Geistiges Eigentum eingereicht wurde und deren Offenbarung durch Verweis hierauf in vollem Umfang hierin aufgenommen wurde.
-
HINTERGRUND
-
Bereich
-
Die vorliegende Offenbarung bezieht sich auf ein Ein-Chip-System und insbesondere auf ein Ein-Chip-System zum sicheren Laden von Firmware und ein Verfahren zum Betrieb derselben.
-
Beschreibung des Standes der Technik
-
Mit der Entwicklung der Mobilfunktechnologie und dem Bedarf an verschiedenen Funktionen nehmen die Funktionen zu, die von einem Ein-Chip-System verarbeitet werden müssen und dementsprechend wird, um die Leistung mobiler Vorrichtungen zu verbessern und optimierte Funktionen durchzuführen, neben dem Hauptprozessor auch Intellectual Property (IP), wie z. B. ein digitaler Signalprozessor (DSP) mit verschiedenen Funktionen, entwickelt. Beispielsweise wurden neuere Ein-Chip-Systeme (SoCs) mit einer neuronalen Verarbeitungseinheit (NPU) und einer Tensorverarbeitungseinheit (TPU) ausgestattet, die für parallele Berechnungen im Zusammenhang mit künstlicher Intelligenz optimiert sind und den Hauptprozessor ersetzen könnten, und selbst Kamerafunktionen, die komplexe Berechnungen erfordern, verteilen Berechnungen auf DSPs, um die Verarbeitung zu beschleunigen.
-
Darüber hinaus kann der DSP ähnliche Operationen wie der Hauptprozessor mit einer Vielzahl von Kernen durchführen. Das heißt, der DSP kann Softwarecode in einem Speicher lesen, um eine vorbestimmte Operation durchzuführen, und während er die Operation durchführt, kann er von Zeit zu Zeit auf den Speicher zugreifen, um Algorithmen oder Softwaredaten zu lesen oder um Berechnungsergebnisse zu schreiben.
-
Darüber hinaus werden DSPs zunehmend in einem sicheren Bereich (z. B. einer Bereich einer sicheren Ausführungsumgebung (TEE, TEE=Trusted Execution Environment) zur sicheren Datenverarbeitung eingesetzt. Beispielsweise kann eine Verarbeitungsoperation mit künstlicher Intelligenz, die Gesichtserkennung oder eine andere sichere Verarbeitung erfordert, im DSP anstelle des Hauptprozessors durchgeführt werden. Um den DSP in einem sicheren Bereich zu steuern, müssen die Firmware, Algorithmen und Daten, die den DSP steuern, alle im geschützten Speicher arbeiten, und die Verifikation von Firmware und dergleichen sollte ebenfalls zuerst durchgeführt werden. Während der Verifikationsoperation für die Firmware und dergleichen werden die Daten jedoch in den Speicherbereich kopiert, der dem sicheren Bereich entspricht, und wenn der DSP die Verifikation unter Verwendung der kopierten Daten durchführt, besteht das Problem, dass die Datenbewegung mehrfach erfolgt und sich dementsprechend die Rechenzeit erhöht.
-
ZUSAMMENFASSUNG
-
Ein Aspekt besteht darin, ein Ein-Chip-System zum effizienten Bewegen und Schützen von Daten und ein Verfahren zum Betrieb desselben vorzusehen, wenn eine vorbestimmte IP anstelle des Hauptprozessors im gesicherten Bereich eine vorbestimmte Datenverarbeitungsoperation durchführt oder wenn der Hauptprozessor direkt eine vorbestimmte Datenverarbeitungsoperation durchführt.
-
Nach einem Aspekt einer oder mehrerer exemplarischer Ausführungsformen wird ein Betriebsverfahren eines Ein-Chip-Systems mit einem Hauptprozessor und einer Vielzahl erster Intellectual Properties (IPs) vorgesehen, wobei das Betriebsverfahren das Kopieren der ersten Ziel-Firmware durch den Hauptprozessor unter Verwendung eines Firmware-Laders in einen Speicher; Blockieren des Zugriffs auf die erste Ziel-Firmware durch den Hauptprozessor unter Verwendung eines Hypervisors und der Vielzahl der ersten IPs; Verifizieren der ersten Ziel-Firmware durch den Hauptprozessor unter Verwendung eines Firmware-Verifizierers; und Gewähren des Zugriffs auf die erste Ziel-Firmware durch den Hauptprozessor, der den Hypervisor verwendet, durch eine Ziel-IP aus der Vielzahl der ersten IPs auf der Grundlage des Verifikationsergebnisses umfasst.
-
Nach einem anderen Aspekt einer oder mehrerer exemplarischer Ausführungsformen wird ein Ein-Chip-System (SoC) vorgesehen, das einen Speicher und einen Hauptprozessor umfasst, der für das Ausführen eines Betriebssystems eingerichtet ist; und eine Vielzahl erster Intellectual Properties (IPs), die eingerichtet sind, um eine jeweilige Verarbeitungsoperation durchzuführen, wobei der Hauptprozessor eingerichtet ist, um unter Verwendung eines Firmware-Laders Ziel-Firmware in den Speicher zu kopieren, unter Verwendung eines Hypervisors, den Zugriff des Hauptprozessors und der Vielzahl erster IPs auf die Ziel-Firmware vor dem Verifizieren der Ziel-Firmware zu blockieren und unter Verwendung des Hypervisors den Zugriff auf die Ziel-Firmware durch eine Ziel-IP unter der Vielzahl erster IPs, die der Ziel-Firmware nach dem Verifizieren der Ziel-Firmware entspricht, zu gewähren.
-
Nach einem anderen Aspekt einer oder mehrerer exemplarischer Ausführungsformen wird ein Betriebsverfahren eines Ein-Chip-Systems mit einem Hauptprozessor, einer Vielzahl von Intellectual Properties (IPs) und einem Sicherheitssystem vorgesehen, wobei das Verfahren das Anfordern einer Verwaltung zum Laden von Ziel-Firmware durch einen vom Hauptprozessor ausgeführten Kernel an einen vom Hauptprozessor ausgeführten Hypervisor; Ändern der Zugriffsberechtigung für zumindest eines von dem Hauptprozessor und der Vielzahl von IPs auf einen Speicherbereich, in den die Ziel-Firmware geladen werden soll, durch den Hypervisor; Laden der Ziel-Firmware in den Speicherbereich durch den Kernel; Anfordern einer Verifikation der geladenen Ziel-Firmware durch den Kernel an den Hypervisor; Ändern der Zugriffsberechtigung für zumindest eines von dem Hauptprozessor und der Vielzahl von IPs auf den Speicherbereich durch den Hypervisor; Anfordern der Verifikation der geladenen Ziel-Firmware durch den Hypervisor an das Sicherheitssystem; Durchführen der Verifikation der geladenen Ziel-Firmware durch das Sicherheitssystem; Bereitstellen eines Verifikationsergebnisses der Verifikation durch das Sicherheitssystem an den Hypervisor; Ändern der Zugriffsberechtigung für zumindest eines von dem Hauptprozessor und der Vielzahl von IPs auf den Speicherbereich durch den Hypervisor auf der Grundlage des Verifikationsergebnisses; und Ausführen der geladenen Ziel-Firmware durch den Kernel umfasst.
-
Figurenliste
-
Verschiedene Ausführungsformen werden in der folgenden detaillierten Beschreibung, die in Verbindung mit den beigefügten Zeichnungen erstellt wurde, besser verstanden:
- 1 ist ein Blockdiagramm, das eine mobile Vorrichtung nach einer beispielhaften Ausführungsform schematisch darstellt;
- 2 ist ein Blockdiagramm, das eine Software-Architektur für ein Verfahren veranschaulicht, das in einer normalen und einer Sicherheitsumgebung nach einer beispielhaften Ausführungsform funktioniert;
- 3 ist ein Blockdiagramm, das den Betrieb einer mobilen Vorrichtung nach einer beispielhaften Ausführungsform veranschaulicht;
- 4A und 4B sind Diagramme zur Erläuterung des Betriebs eines Hypervisors zur Steuerung des Zugriffs eines Hauptprozessors der mobilen Vorrichtung von 3 auf die Ziel-Firmware, nach einer beispielhaften Ausführungsform;
- 5A und 5B sind Diagramme zur Erläuterung des Betriebs eines Hypervisors zur Steuerung des Zugriffs eines ersten DSPs auf die Ziel-Firmware eines Hauptprozessors der mobilen Vorrichtung aus 3, nach einer beispielhaften Ausführungsform;
- 6 ist ein Diagramm zur Erläuterung des Betriebs eines Hypervisors, bis die Ziel-Firmware von 3 in den Speicher geladen und verifiziert ist, nach einer beispielhaften Ausführungsform;
- 7 ist ein Ablaufdiagramm, das ein Verfahren zum Betrieb eines Ein-Chip-Systems nach einer beispielhaften Ausführungsform zeigt;
- 8 bis 10 sind Ablaufdiagramme, die ein Verfahren zum Betrieb eines Ein-Chip-Systems nach einer beispielhaften Ausführungsform zeigen;
- 11 ist ein Blockdiagramm, das die Struktur einer Software-Architektur, die in einem Speicher oder einer Speichervorrichtung von 1 gespeichert ist, nach einer beispielhaften Ausführungsform veranschaulicht;
- 12 ist ein Blockdiagramm, das eine elektronische Vorrichtung mit einem Ein-Chip-System nach einer beispielhaften Ausführungsform darstellt;
- 13 ist ein Blockdiagramm, das eine elektronische Vorrichtung, die ein Ein-Chip-System nach einer beispielhaften Ausführungsform enthält, veranschaulicht; und
- 14 ist ein Diagramm, das ein Smart Home veranschaulicht, das durch den Anschluss einer Vielzahl von Internet of Things (IoT)-Vorrichtungen an einen Server nach einer beispielhaften Ausführungsform implementiert wurde.
-
DETAILLIERTE BESCHREIBUNG
-
Im Folgenden werden verschiedene beispielhafte Ausführungsformen bezugnehmend auf die beigefügten Zeichnungen ausführlich beschrieben.
-
1 ist ein Blockdiagramm, das eine mobile Vorrichtung nach einer beispielhaften Ausführungsform schematisch darstellt. Es versteht sich von selbst, dass die in 1 dargestellte und nachstehend beschriebene Konfiguration und der Betrieb einer mobilen Vorrichtung 100 auf andere elektronische Vorrichtungen angewandt werden kann.
-
Unter Bezugnahme auf 1 kann die mobile Vorrichtung 100 ein Ein-Chip-System (SoC), einen Speicher (z. B. einen Arbeitsspeicher) 130 und eine Speichervorrichtung 170 enthalten. Obwohl in 1 nicht dargestellt, kann die mobile Vorrichtung 100 darüber hinaus eine Flüssigkristallanzeige, ein Berührungsfeld und eine Audiovorrichtung enthalten. Das SoC kann einen Hauptprozessor (z. B. einen Mehrkernprozessor) 110, einen Speicher-Controller 120, eine neuronale Verarbeitungseinheit (NPU) 140, einen digitalen Signalprozessor (DSP) 150, eine Speicherschnittstelle 160, ein Sicherheitssystem 180 und einen Beschleuniger 190 enthalten. In einigen Ausführungsformen kann der Hauptprozessor ein Mehrkernprozessor sein. Nachfolgend können der Hauptprozessor 110, der NPU 140 und der DSP 150 jeweils als Intellectual Property (IP) bezeichnet werden, und obwohl sie nicht im SoC von 1 dargestellt sind, können IPs (z. B. ein Bildsignalprozessor (ISP), eine Tensorverarbeitungseinheit (TPU) und ähnliches), die Datenverarbeitung zur Bereitstellung verschiedener Dienste für einen Benutzer durchführen, ferner einbezogen werden. Wie in dieser Spezifikation verwendet, bezieht sich der Begriff „Intellectual Property“ auf einen Intellectual Property-Core, IP-Core oder IP-Block, der eine wiederverwendbare Einheit eines Logik-, Zellen- oder integrierten Schaltungslayouts (d. h. eines Chips) darstellt, das Intellectual Property einer Partei ist. Verschiedene IP-Cores oder IP-Blöcke werden verwendet, um eine integrierte Halbleitervorrichtung aufzubauen.
-
Der Hauptprozessor 110 kann den Gesamtbetrieb der mobilen Vorrichtung 100 steuern. Zu diesem Zeitpunkt kann der Hauptprozessor 110 eine Operation als eine von einer Normalumgebung (normal world) und einer Sicherheitsumgebung (secure world) durchführen.
-
Die Sicherheitsumgebung kann eine sichere Datenverarbeitungsarchitektur bedeuten, und die Normalumgebung kann eine allgemeine Datenverarbeitungsarchitektur bedeuten, die nicht sicher ist. Als beispielhafte Ausführungsform kann der Hauptprozessor 110 auf der Grundlage der „ARM Trustzone Architektur“ arbeiten. Diese Architektur kann zwei Laufzeitumgebungen enthalten, und eine davon, eine unsichere Laufzeitumgebung (z. B. eine Rich Execution Environment (REE)), kann als Normal Zone oder Normal World bezeichnet werden und kann von einem normalen Betriebssystem gesteuert werden. Eine andere Laufzeitumgebung, eine sichere Laufzeitumgebung (z. B. eine Trusted Execution Environment, TEE)), kann als Trustzone oder Trusted World oder Secure World bezeichnet werden, und die sichere Laufzeitumgebung kann von einem Sicherheitsbetriebssystem gesteuert werden.
-
Das normale Betriebssystem kann z.B. ein typisches Betriebssystem wie Android, Windows Phone, iPhone OS (iOS) und ähnliches sein, und das Sicherheitsbetriebssystem kann ein Betriebssystem sein, bei dem ein Sicherheitskernel, in den Sicherheitsfunktionen integriert sind, in ein bestehendes Betriebssystem eingebettet ist. Gemäß der vorstehend erwähnten ARM-Trustzone können die vorstehend beschriebene unsichere Laufzeitumgebung und die sichere Laufzeitumgebung zusammen als eine virtuelle Ausführungsumgebung definiert werden.
-
Der Hauptprozessor 110 kann Software (z. B. Anwendungsprogramme, Betriebssysteme, Gerätetreiber und dergleichen) ausführen, die auf der mobilen Vorrichtung 100 ausgeführt werden soll. Der Hauptprozessor 110 kann ein Betriebssystem ausführen, das in den Speicher 130 geladen ist. Der Hauptprozessor 110 kann verschiedene Anwendungsprogramme ausführen, die auf der Grundlage des Betriebssystems ausgeführt werden sollen.
-
Nachfolgend wird ein Fall beschrieben, in dem der DSP 150 anstelle des Hauptprozessors 110 auf Basis der Firmware im TEE arbeiten soll. Als beispielhafte Ausführungsform soll die Firmware in der Sicherheitsumgebung ausgeführt werden und kann z. B. ein Programm zum Durchführen von Gesichtserkennung, Fingerabdruckerkennung, Iriserkennung, eine KI-Verarbeitungsoperation, die Sicherheit erfordert, eine mobile Transaktionsoperation und ähnliches enthalten. Darüber hinaus wird es für einen Fachmann klar sein, dass die technischen Prinzipien der vorliegenden Offenbarung auf Fälle angewandt werden können, in denen andere IPs, wie z. B. die NPU 140 und/oder der Beschleuniger 190 außer dem DSP 150 auf der Grundlage der Firmware anstelle des Hauptprozessors 110 ausgeführt werden müssen.
-
Als beispielhafte Ausführungsform kann der Hauptprozessor 110 die in der Speichervorrichtung 170 gespeicherte sichere Speicherverwaltungssoftware (Secure MM S/W) 172 ausführen, ein in der Speichervorrichtung 170 gespeichertes Firmware (FW)-Image 174 in den Speicher 130 kopieren, damit der DSP 150 die in den Speicher 130 im TEE geladene Firmware (d. h. die Kopie des Firmware (FW)-Images 174) stabil ausführen kann, und die Verifikation der Firmware (d. h. die Kopie des in den Speicher 130 geladenen Firmware (FW)-Images 174) unter Verwendung des Sicherheitssystems 180 durchführen. Bei dem in der Speichervorrichtung 170 gespeicherten Firmware-(FW)-Image 174 kann es sich um Firmware verschiedener IPs handeln, wie z. B. des Hauptprozessors 110, des NPU 140, des DSP 150, des Sicherheitssystems 180 und/oder des Beschleunigers 190.
-
Konkret kann der Hauptprozessor 110 das Firmware-Image 174 von der Speichervorrichtung 170 über einen Firmware-Lader im Kernel des Betriebssystems in den Speicher 130 kopieren. Im Folgenden wird die Kopie des Firmware-Images 174, das in den Speicher 130 geladen wurde, als Ziel-Firmware (FW) 134 bezeichnet.
-
Der Hauptprozessor 110 kann den Zugriff auf die Ziel-Firmware 134 unter Verwendung eines Hypervisors steuern.
-
Ein Hypervisor ist eine logische Plattform für die gleichzeitige Ausführung mehrerer Betriebssysteme und kann als Monitor für virtuelle Maschinen oder Manager für virtuelle Maschinen bezeichnet werden. Je nach Typ kann der Hypervisor direkt auf dem Hauptprozessor 110 oder über das Host-Betriebssystem des Hauptprozessors 110 ausgeführt werden. Selbst wenn ein Hackerangriff vor dem Verifizieren der Ziel-Firmware 134 erfolgt, kann der Hypervisor den unsicheren Zugriff auf die Ziel-Firmware 134 von IPs blockieren, um eine Änderung oder Beschädigung der Ziel-Firmware 134 zu verhindern. In einer beispielhaften Ausführungsform kann der Hypervisor die Lese- oder Schreibberechtigung für einen Bereich des Speichers 130, in dem die Ziel-Firmware 134 gespeichert ist, anpassen, um den unsicheren Zugriff auf die Firmware der IPs zu blockieren. Der Kernel und der Hypervisor des Hauptprozessors 110 können in einer REE arbeiten.
-
Der Hauptprozessor 110 kann die Ziel-Firmware 134 unter Verwendung eines Firmware-Verifizierers verifizieren. Der Firmware-Verifizierer kann im TEE arbeiten und die Integrität der Ziel-Firmware 134 verifizieren. In einer beispielhaften Ausführungsform kann der Firmware-Verifizierer das Sicherheitssystem 180 steuern, um die Integrität der Ziel-Firmware 134 zu verifizieren. Das Sicherheitssystem 180 kann eine sichere IP enthalten, die in der Lage ist, Integritätsüberprüfungsoperationen durchzuführen, und die sichere IP kann eine digitale Signatur für die Ziel-Firmware 134 durch Anwendung verschiedener Arten von Verschlüsselungsalgorithmen erzeugen und die digitale Signatur unter Verwendung eines öffentlichen Schlüssels entschlüsseln. Die sichere IP kann die Integrität der Ziel-Firmware 134 verifizieren, indem sie unter Verwendung einer digitalen Signatur und eines öffentlichen Schlüssels prüft, ob die Ziel-Firmware 134 geändert wurde.
-
Wenn die Integritätsverifikation der Ziel-Firmware 134 abgeschlossen ist und die Integrität der Ziel-Firmware 134 die Verifikation bestanden hat, kann der Hauptprozessor 110 dem DSP 150 den Zugriff auf die Ziel-Firmware 134 erlauben, so dass der DSP 150 die Ziel-Firmware 134 im TEE ausführen kann. In einer beispielhaften Ausführungsform kann der Hypervisor die Lese- oder Schreibberechtigung für einen Bereich, in dem die Ziel-Firmware 134 des Speichers 130 gespeichert ist, anpassen, damit der DSP 150 auf die Ziel-Firmware 134 zugreifen kann. Infolgedessen kann der DSP 150 anstelle des Hauptprozessors 110 die Ziel-Firmware 134 ausführen, um Operationen auf der Basis der Ziel-Firmware 134 durchzuführen. In einigen Ausführungsformen kann die Ziel-Firmware 134 die Firmware des Hauptprozessors 110 sein, und der Hypervisor kann den Zugriff des Hauptprozessors 110 auf die Ziel-Firmware 134 steuern, und der Hauptprozessor 110 kann die Ziel-Firmware 134 ausführen, um eine auf der Ziel-Firmware 134 basierende Operation durchzuführen.
-
Der Speicher-Controller 120 kann eine Schnittstelle zwischen dem Speicher 130 und dem SoC vorsehen. Der Speicher-Controller 120 kann als Antwort auf die Anforderung des Hauptprozessors 110 oder einer anderen IP (z. B. NPU 140, DSP 150, Sicherheitssystems 180 und/oder Beschleunigers 190) auf den Speicher 130 zugreifen. Zum Beispiel kann der Speicher-Controller 120 als Antwort auf die Schreibanforderung des Hauptprozessors 110 Daten in den Speicher 130 schreiben, und als Antwort auf die Leseanforderung des Hauptprozessors 110 kann der Speicher-Controller 120 Daten aus dem Speicher 130 lesen und die gelesenen Daten über einen Systemzusammenschalter 192 an den Hauptprozessor 110 oder die Speicherschnittstelle 160 übertragen.
-
Das Betriebssystem oder die Anwendungsprogramme können in den Speicher 130 geladen werden, wenn die mobile Vorrichtung 100 gebootet wird. Verschiedene Ein-/Ausgabeoperationen der mobilen Vorrichtung 100 können vom Betriebssystem unterstützt werden. Außerdem kann eine Vielzahl von Firmware-Stücken (oder Anwendungsprogrammen) in den Speicher 130 geladen werden, um vom Benutzer ausgewählt zu werden oder um grundlegende Dienste bereitzustellen. Zusätzlich zu dieser Verwendung kann der Speicher 130 als Pufferspeicher für die Speicherung von Bilddaten verwendet werden, die von einem Bildsensor wie z. B. einer Kamera zugeführt werden. Der Speicher 130 kann ein flüchtiger Speicher, wie z. B. ein statischer Speicher mit wahlfreiem Zugriff (SRAM), ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM) und dergleichen, oder ein nichtflüchtiger Speicher, wie z. B. ein Phasen-RAM (PRAM), ein magnetischer RAM (MRAM), ein resistiver RAM (ReRAM), ein ferroelektrischer RAM (FRAM), ein Flash-Speicher und dergleichen, sein.
-
Die Speicherschnittstelle 160 kann auf Anforderung des Hauptprozessors 110 oder einer anderen IP (z. B. NPU 140, DSP 150, Sicherheitssystems 180 und Beschleunigers 190) auf die Speichervorrichtung 170 zugreifen. Das heißt, die Speicherschnittstelle 160 kann eine Schnittstelle zwischen dem SoC und der Speichervorrichtung 170 bilden. Beispielsweise können Daten, die vom Hauptprozessor 110 verarbeitet werden, über die Speicherschnittstelle 160 in der Speichervorrichtung 170 gespeichert werden, und die in der Speichervorrichtung 170 gespeicherten Daten können über die Speicherschnittstelle 160 dem Hauptprozessor 110 zugeführt werden.
-
Die Speichervorrichtung 170 kann als Speichermedium der mobilen Vorrichtung 100 vorgesehen werden. Die Speichervorrichtung 170 kann die Sicherheitsspeicherverwaltungssoftware (sichere MM-S/W) 172 und das Firmware (FW)-Image 174 speichern, und darüber hinaus kann die Speichervorrichtung 170 eine Vielzahl von Anwendungsprogrammen, ein Betriebssystem-Image und verschiedene Daten speichern. Die Speichervorrichtung 170 kann als Speicherkarte (z. B. eine Multi-Media-Karte (MMC), eine Embedded MMC (eMMC)-Speicherkarte, eine Secure Digital (SD)-Speicherkarte, eine Micro SD-Speicherkarte und dergleichen) vorgesehen werden. Die Speichervorrichtung 170 kann einen Flash-Speicher mit einer großen Speicherkapazität enthalten. Alternativ kann die Speichervorrichtung 170 einen nichtflüchtigen Speicher der nächsten Generation, wie z. B. PRAM, MRAM, ReRAM und FRAM, enthalten. In einigen Ausführungsformen kann die Speichervorrichtung 170 ein im SoC vorgesehener interner Speicher sein.
-
Die NPU 140, der DSP 150 und der Beschleuniger 190 können den Hauptprozessor 110 unterstützen oder in einigen Fällen die Funktionalität des Hauptprozessors 110 ersetzen, so dass die NPU 140, der DSP 150 und der Beschleuniger 190 als separate IP für die Durchführung von Verarbeitungsoperationen von Sicherheits- oder Multimediadaten vorgesehen werden können. Zum Beispiel kann der Beschleuniger 190 als IP für die Verbesserung der Verarbeitungsleistung von Text, Audio, Standbildern, Animationen, Video, zweidimensionalen Daten oder dreidimensionalen Daten vorgesehen werden.
-
Wenn andere IPs als der Hauptprozessor 110 oder der DSP 150, die Hauptprozessoren des SoCs sind, Firmware im TEE ausführen, kann die mobile Vorrichtung 100 nach einer beispielhaften Ausführungsform unnötigen Datenaustausch zwischen dem TEE-Bereich und dem REE-Bereich im Speicher 130 auslassen, um das Firmware (FW)-Image 174 effizient und sicher in den Speicher 130 zu laden und das Firmware (FW)-Image 174 zu verifizieren.
-
2 ist ein Blockdiagramm, das eine Software-Architektur für ein Verfahren veranschaulicht, das in einer normalen und einer Sicherheitsumgebung nach einer beispielhaften Ausführungsform funktioniert. Nach einigen beispielhaften Ausführungsformen kann die Softwarearchitektur eine Trustzone-Architektur sein.
-
Unter Bezugnahme auf 2 kann die Trustzone-Architektur zwei Laufzeitumgebungen vorsehen, wie z. B. eine Normalumgebung 210 und eine Sicherheitsumgebung 220. Die Normalumgebung 210 kann einen Normalumgebung-Benutzermodus 212 und einen Normalumgebung-Kernelmodus 214 enthalten, und die Sicherheitsumgebung 220 kann einen Sicherheitsumgebung-Benutzermodus 222, einen Sicherheitsumgebung-Kernelmodus 224 und einen Monitormodus 230 enthalten. Jede von der normalen und Sicherheitsumgebung 210 und 220 kann durch die virtuelle Trennung von Hardwareressourcen, wie z. B. Cache, Translation Lookaside Buffer (TLB), Memory Management Unit (MMU) und Register, verwaltet werden.
-
Wie vorstehend beschrieben, kann, da die Normalumgebung 210 und die Sicherheitsumgebung 220 selektiv betrieben werden können, die Trustzone-Architektur den Monitormodus 230 vorsehen, um Änderungen von der Normalumgebung 210 zur Sicherheitsumgebung 220 und umgekehrt zu verwalten. Nach einigen beispielhaften Ausführungsformen kann die Software im Monitormodus 230 in der Sicherheitsumgebung 220 betrieben werden.
-
Da die Normalumgebung 210 und die Sicherheitsumgebung 220 durch den Monitormodus 230 gesteuert werden, können außerdem verschiedene Anweisungen oder Interrupts, die vom Hauptprozessor 110 (siehe 1) erzeugt werden, über den Monitormodus 230 für jede von der normalen und Sicherheitsumgebung 210 und 220 vorgesehen werden. Zum Beispiel kann der Normalumgebung-Kernelmodus 214 oder der Sicherheitsumgebung-Kernelmodus 224 über einen sicheren Monitor-Aufrufbefehl (SMC) verbunden werden. Das heißt, der Hauptprozessor 110 (siehe 1) kann den gegenwärtig ausgeführten Modus (z. B. den Normalumgebung-Kernelmodus 214 oder den Sicherheitsumgebung-Kernelmodus 224) unter Verwendung des SMC in den Monitormodus 230 ändern. Zusätzlich zur Verwendung des SMC kann jedoch der Hauptprozessor 110 (siehe 1) den gegenwärtig ausgeführten Modus unter Verwendung einer Interrupt-Anforderung (IRQ) oder einer schnellen Interrupt-Anforderung (FIQ) in den Monitormodus 230 ändern. Nach einigen beispielhaften Ausführungsformen kann der IRQ als Interrupt der Normalumgebung 210 und der FIQ als Interrupt der Sicherheitsumgebung 220 verwendet werden.
-
Wie vorstehend beschrieben, kann der Betrieb in der Normalumgebung 210 dem Betrieb in dem REE und der Betrieb in der Sicherheitsumgebung 220 dem Betrieb in dem TEE entsprechen.
-
Der Hauptprozessor 110 (siehe 1) kann nach einer beispielhaften Ausführungsform durch Umschalten vom Normalumgebung-Kernelmodus 214 in den Sicherheitsumgebung-Kernelmodus 224 betrieben werden, und er kann durch Umschalten vom Sicherheitsumgebung-Kernelmodus 224 in den Normalumgebung-Kernelmodus 214 betrieben werden, so dass die Ziel-Firmware 134 (siehe 1) in den Speicher 130 geladen und verifiziert werden kann, um in Zukunft das Ausführen durch den Hauptprozessor 110 zu ermöglichen (siehe 1), oder damit die Ziel-Firmware 134 (siehe 1) in den Speicher 130 geladen und verifiziert werden kann, um in Zukunft das Ausführen durch eine andere IP (z. B, die NPU 140, den DSP 150, das Sicherheitssystem 180 und/oder den Beschleuniger 190 (siehe 1)) zu ermöglichen.
-
3 ist ein Blockdiagramm, das den Betrieb einer mobilen Vorrichtung nach einer beispielhaften Ausführungsform veranschaulicht.
-
Unter Bezugnahme auf die 3, kann eine mobile Vorrichtung 300 als Hardware HW einen Hauptprozessor 352, eine erste MMU (1. MMU) 354, eine zweite MMU (2. MMU) 356, einen ersten DSP (1. DSP) 362, eine erste System-MMU (SysMMU) 364, eine erste Speicherschutzeinheit (1. MPU) 366, einen zweiten DSP (2. DSP) 382, eine zweite System-MMU (2. SysMMU) 384, eine zweite MPU 386, eine IP 372, eine System-MMU (SysMMU) 374, eine MPU 376 und einen Speicher 390 enthalten. Darüber hinaus sind die beispielhaften Ausführungsformen nicht auf das in 3 dargestellte Beispiel beschränkt, und die Hardware HW kann darüber hinaus Speicherverwaltungseinheiten enthalten, die jeweils mit mehr und verschiedenen IPs verbunden sind.
-
Der Hauptprozessor 352 kann direkt an die erste MMU 354 angeschlossen werden und kann über die erste MMU 354 an die zweite MMU 356 angeschlossen werden, und der Hauptprozessor 352 kann unter Verwendung der ersten MMU 354 und der zweiten MMU 356 stufenweise auf den Speicher 390 zugreifen. Das heißt, die erste MMU 354 kann in einer ersten Stufe und die zweite MMU 356 in einer zweiten Stufe ausgeführt werden. Der erste DSP 362 kann direkt an das erste System MMU 364 und über das erste System MMU 364 an die erste MPU 366 angeschlossen werden, und der erste DSP 362 kann stufenweise unter Verwendung der ersten System-MMU 364 und der ersten MPU 366 auf den Speicher 390 zugreifen. Der zweite DSP 382 kann direkt mit dem zweiten System MMU 384 verbunden werden und kann über das zweite System MMU 384 mit der zweiten MPU 386 verbunden werden, und der zweite DSP 382 kann unter Verwendung des zweiten Systems MMU 384 und der zweiten MPU 386 stufenweise auf den Speicher 390 zugreifen. Die IP 372 kann über das System MMU 374 und die MPU 376 angeschlossen werden, und die IP 372 kann unter Verwendung des Systems MMU 374 und der zweiten MPU 386 stufenweise auf den Speicher 390 zugreifen.
-
Die erste MMU 354 verwaltet eine L2L-Zuordnungstabelle (L2L = Logical To Logical), in der der Hauptprozessor 352 eine erste logische Adresse in eine zweite logische Adresse für den Zugriff auf den Speicher 390 umwandelt, und die zweite MMU 356 kann eine P2P-Zuordnungstabelle (P2P = Physical To Physical) verwalten, die die zweite logische Adresse in eine physische Adresse umwandelt. Die physische Adresse kann der tatsächlichen Adresse des Speichers 390 entsprechen.
-
Die MPUs, d. h. die erste MPU 366, die MPU 376 und die zweite MPU 386, können einige Bereiche des Speichers 390 vor dem unsicheren Zugriff der IPs, d. h. der ersten DSP 362, der IP 372 und der zweiten DSP 382, schützen. Konkret können die MPUs, d. h. die erste MPU 366, die MPU 376 und die zweite MPU 386, einen Bereich des Speichers 390 in eine Vielzahl von Fensterbereichen unterteilen und die Vielzahl von Fensterbereichen vor unsicherem Zugriff der IPs, d. h. des ersten DSP 362, der IP 372 und des zweiten DSP 382, schützen. Die MPUs, d. h. die erste MPU 366, die MPU 376 und die erste MPU 386, können eine Seitentabelle mit (einer) Adressinformation(en) des Speichers 390 und (einer) Attributinformation(en), die den einzelnen Adressinformation(en) entsprechen, verwalten.
-
Darüber hinaus kann man davon ausgehen, dass ein Kernel 310, ein Firmware (FW)-Verifizierer 320 und ein Hypervisor 330 Programme sein können, die vom Hauptprozessor 352 ausgeführt werden.
-
In einer beispielhaften Ausführungsform können der Kernel 310 und der Firmware-Verifizierer 320 auf der ersten Schicht L1, der Hypervisor 330 auf der zweiten Schicht L2 und die vertrauenswürdige Firmware (FW) 340 auf der dritten Schicht L3 arbeiten. Die vertrauenswürdige Firmware 340 entspricht einer Firmware mit bekannter Sicherheit (d. h. die Sicherheit der vertrauenswürdigen Firmware 340 wurde im Voraus bestätigt), so dass die vertrauenswürdige Firmware 340 sicher für die Übertragung und den Empfang von Signalen zwischen dem Hypervisor 330 in der REE und dem Firmware-Verifizierer 320 in der TEE verwendet werden kann. Darüber hinaus kann in einigen beispielhaften Ausführungsformen der Firmware-Verifizierer 320 im TEE auf der zweiten und dritten Schicht L2 und L3 arbeiten und so implementiert werden, dass er in der vertrauenswürdigen Firmware 340 enthalten ist.
-
In einer beispielhaften Ausführungsform kann der Kernel 310 Komponenten steuern, die in einem ersten Steuerbereich CSR1 enthalten sind, und der Hypervisor 330 kann Komponenten steuern, die in einem zweiten Steuerbereich CSR2 enthalten sind. Der Kernel 310 kann nicht auf die Komponenten zugreifen, die im zweiten Steuerbereich CSR2 enthalten sind, und kann daher nicht die Komponenten steuern, die im zweiten Steuerbereich CSR2 enthalten sind. Der erste Steuerbereich CSR1 kann den Hauptprozessor 352, die erste MMU 354, den ersten DSP 362, die erste System-MMU 364, den zweiten DSP 382, die zweite System-MMU 384, die IP 372 und die System-MMU 374 enthalten. Der zweite Steuerbereich CSR2 kann die zweite MMU 356, die erste MPU 366, die zweite MPU 386 und die MPU 376 enthalten.
-
Der Firmware (FW)-Lader 312 des Kernels 310 kann die Ziel-Firmware (FW) 392 in einen Bereich des Speichers 390 kopieren (oder laden). Beispielsweise kann die Ziel-Firmware 392 die Firmware des ersten DSP 362 sein. Nach dem Laden kann der Hypervisor 330 den Zugriff des Hauptprozessors 352, des ersten DSP 362, der IP 372 und des zweiten DSP 382 auf den Speicher 390 blockieren, indem er den zweiten Steuerbereich CSR2 steuert, um ein Hacken der Ziel-Firmware 392 zu verhindern, bevor eine Verifikation der Ziel-Firmware 392 durchgeführt wird. Beispielsweise kann der Hypervisor 330 den Zugriff des Hauptprozessors 352 auf die Ziel-Firmware 392 blockieren, indem er die Adressinformation(en) der Ziel-Firmware 392 in der L2P-Zuordnungstabelle der zweiten MMU 356 ändert. Danach kann die Änderung der Adressinformation(en) die Änderung eines Zugriffsattributs eines vorbestimmten Speicherbereichs, der der Adresse entspricht, oder das Löschen der Adressinformation(en) umfassen. Darüber hinaus kann der Hypervisor 330 den Zugriff des ersten DSP 362 auf die Ziel-Firmware 392 blockieren, indem er die Attributinformation(en) der Adresse, die der Ziel-Firmware 392 entspricht/entsprechen, in der Seitentabelle der ersten MPU 366 ändert. Ein solches Verfahren kann auch auf die IP 372 und den zweiten DSP 382 angewandt werden.
-
Der Hypervisor 330 kann den Firmware Verifizierer 320 auffordern, die Ziel-Firmware 392 durch die vertrauenswürdige Firmware 340 zu verifizieren, und der Firmware Verifizierer 320 kann den zweiten DSP 382 steuern, um die Verifikation der Ziel-Firmware 392 als Antwort auf die Anforderung durchzuführen. Der zweite DSP 382 kann im Voraus eingestellt werden, um die Ziel-Firmware 392 zu verifizieren, und kann dem Sicherheitssystem 180 von 1 entsprechen. Der Hypervisor 330 kann die Seitentabelle der zweiten MPU 386 so ändern, dass der zweite DSP 382 auf die Ziel-Firmware 392 zugreifen kann.
-
Der zweite DSP 382 kann die Integritätsverifikation der Ziel-Firmware 392 durchführen, und nach Abschluss der Integritätsverifikation kann der Firmware-Verifizierer 320 die Ergebnisse der Integritätsverifikation über die vertrauenswürdige Firmware 340 dem Hypervisor 330 zuführen.
-
Wenn das Integritätsverifikationsergebnis für die Ziel-Firmware 392 vorliegt, kann der Hypervisor 330 die Seitentabelle der ersten MPU 366 so ändern, dass der erste DSP 362 auf die Ziel-Firmware 392 in einem TEE zugreifen und die Ziel-Firmware 392 ausführen kann. Mit anderen Worten, der Hypervisor 330 kann den Zugriff aller Komponenten des ersten Steuerbereichs CSR1 während der Verifikation blockieren und nach der Verifikation den Zugriff auf die Komponente des ersten Steuerbereichs CSR1, die der verifizierten Firmware entspricht, selektiv zulassen.
-
Somit steuert der Hypervisor 330 in der mobilen Vorrichtung 300 nach einer beispielhaften Ausführungsform, um eine Umgebung für den ersten DSP 362 zur Ausführung der Ziel-Firmware 392 anstelle des Hauptprozessors 352 im TEE vorzusehen, effektiv nur die Konfiguration des zweiten Steuerbereichs CSR2, um den unsicheren Zugriff effektiv zu blockieren und die Datenbewegung im Speicher 390 zu minimieren.
-
Die in 3 gezeigte Konfiguration ist jedoch nur ein Beispiel, und beispielhafte Ausführungsformen sind nicht darauf beschränkt. Darüber hinaus wurde vorstehend beschrieben, wie der zweite DSP 382 eine Umgebung für das Ausführen der Ziel-Firmware 392 im TEE vorbereitet. Die technischen Grundsätze der vorliegenden Offenbarung können jedoch auf alle Fälle anwendbar sein, in denen mindestens eine andere IP als der Hauptprozessor 352 eine Umgebung für das Ausführen der Ziel-Firmware 392 im TEE vorbereitet.
-
4A und 4B sind Diagramme zur Erläuterung des Betriebs des Hypervisors 330 zur Steuerung des Zugriffs des Hauptprozessors 352 auf die Ziel-Firmware 392 von 3.
-
Unter Bezugnahme auf 3 und 4A kann die erste MMU 354 die L2L-Zuordnungstabelle L2L_TB verwalten. Die L2L-Zuordnungstabelle L2L_TB kann Informationen über die erste logische Adresse L_ADDa und die dieser zugeordnete zweite logische Adresse L_ADDb enthalten. Wenn z. B. der Hauptprozessor 352 die Adresse ‚L_ADD1a‘ der ersten MMU 354 mit einer Anforderung für eine vorbestimmte Operation zuführt, kann die erste MMU 354 ‚L_ADD1a‘ in ‚L_ADD1b‘ auf der Grundlage der L2L-Zuordnungstabelle L2L_TB umwandeln und die Umwandlungsergebnisadresse der zweiten MMU 356 zuführen.
-
Die zweite MMU 356 kann die L2P-Zuordnungstabelle L2P_TB verwalten. Die L2P-Zuordnungstabelle L2P_TB kann Information(en) über die zweite logische Adresse L_ADDb und die dieser zugeordnete physische Adresse P_ADD enthalten. Die physische Adresse P_ADD kann einer tatsächlichen Adresse des Speichers 390 entsprechen. Beispielsweise kann die zweite MMU 356 die empfangene ‚L_ADD1b‘ in ‚P_ADD1‘ auf der Grundlage der L2P-Zuordnungstabelle L2P_TB umwandeln und mit ‚P_ADD1‘ auf die entsprechende Adresse des Speichers 390 zugreifen.
-
Im Folgenden wird angenommen, dass die physischen Adressen des Speichers 390, in dem die Ziel-Firmware 392 gespeichert ist, ‚P_ADD1‘ und ‚P_ADD2‘ sind. Um einen unsicheren Zugriff des Hauptprozessors 352 auf die Ziel-Firmware 392 zu verhindern, kann der Hypervisor 330 eine Operation durchführen, bei der er in der L2P-Zuordnungstabelle L2P_TB eine physische Adresse P_ADD entsprechend der Ziel-Firmware 392 oder eine zweiten logischen Adresse LADDb, die darauf abgebildet ist, ändert.
-
Unter Bezugnahme auf 4B kann der Hypervisor 330 außerdem ‚P_ADD1‘ und ‚PADD2‘, die die physischen Adressen P_ADD sind, die auf die Ziel-Firmware 392 zeigen, aus der L2P-Zuordnungstabelle L2P_TB löschen. In einigen Ausführungsformen löscht der Hypervisor 330 möglicherweise ‚L_ADD1b‘ und ‚L_ADD2b‘, die ‚P_ADD1‘ und ‚P_ADD2‘ zugeordnet sind, welche physische Adressen P_ADD sind, die auf die Ziel-Firmware 392 zeigen, aus der L2P-Zuordnungstabelle L2P_TB. Weiterhin kann der Hypervisor 330 ‚P_ADD1‘ und ‚P_ADD2‘, die physische Adressen P_ADD sind, die auf die Ziel-Firmware 392 zeigen, und ‚L_ADD1b‘ und ‚L_ADD2b‘, die jeweils ‚P_ADD1‘ und ‚P_ADD2‘ zugeordnet sind, aus der L2P-Zuordnungstabelle L2P_TB löschen.
-
Darüber hinaus kann der Hypervisor 330 die aus der L2P-Zuordnungstabelle L2P_TB gelöschten Adressinformation(en) (z. B. P_ADD1 und/oder L_ADD1b) in einem beliebigen Bereich des Speichers 390 sichern, um den ungesicherten Zugriff des Hauptprozessors 352 zu blockieren, und in Zukunft kann/können die gesicherte(n) Adressinformation(en) aus dem beliebigen Bereich des Speichers 390 in der L2P-Zuordnungstabelle L2P_TB wiederhergestellt werden, damit der Hauptprozessor 352 auf die Adressinformation(en) zugreifen kann.
-
In einigen Ausführungsformen kann die zweite MMU 356 darüber hinaus (eine) Information(en) verwalten, die die Lese- oder Schreibberechtigung für einen Bereich des Speichers 390 angibt/angeben, der der physischen Adresse P_ADD der L2P-Zuordnungstabelle L2P_TB entspricht, und der Hypervisor 330 kann den Zugriff des Hauptprozessors 352 auf den Speicher 390 steuern, indem er die Information(en), die die Lese- oder Schreibberechtigung angibt/angeben, ändert.
-
5A und 5B sind Diagramme zur Erläuterung des Betriebs des Hypervisors 330 zur Steuerung des Zugriffs des ersten DSP 362 auf die Ziel-Firmware 392 des Hauptprozessors 352 von 3. Im Folgenden wird deutlich, dass das beschriebene technische Prinzip auch für die Zugriffskontrolle des IP 372 und des zweiten DSP 382 auf die Ziel-Firmware 392 des Hauptprozessors 352 anwendbar ist.
-
Unter Bezugnahme auf 3 und 5A, kann das erste System MMU 364 die L2P-Zuordnungstabelle L2P_TB verwalten. Die L2P-Zuordnungstabelle L2P_TB kann (eine) Information(en) über die logische Adresse L_ADD und die darauf abgebildete physische Adresse P ADD enthalten. Wenn z. B. der erste DSP 362 die Adresse ‚L_ADD1‘ der ersten System-MMU 364 mit einer Anforderung für eine vorbestimmte Operation zuführt, kann die erste System-MMU 364 ‚L_ADD1‘ auf der Grundlage der L2P-Zuordnungstabelle L2P_TB in ‚P_ADD1‘ umwandeln und die Adresse des Umwandlungsergebnisses der ersten MPU 366 zuführen.
-
Die erste MPU 366 kann die Seitentabelle P_TB verwalten. Die Seitentabelle P_TB kann eine physische Adresse P_ADD des Speichers 390 und (eine) Property-Information(en) PI über die Adresse enthalten. In einer beispielhaften Ausführungsform kann/können die Property-Information(en) PI ein Leseberechtigungskennzeichen RPF und ein Schreibberechtigungskennzeichen WF enthalten. Beispielsweise kann/können das Leseberechtigungskennzeichen RPF (eine) Information(en) sein, die angibt/angeben, ob Daten, die in der entsprechenden physischen Adresse P_ADD gespeichert sind, gelesen werden dürfen, und das Schreibberechtigungskennzeichen WPF kann/können (eine) Information(en) sein, die angibt, ob Daten in die entsprechende physische Adresse P_ADD geschrieben werden dürfen.
-
Um einen unsicheren Zugriff des ersten DSP 362 auf die Ziel-Firmware 392 zu verhindern, kann der Hypervisor 330 die Property-Information(en) PI ändern, die der physischen Adresse P_ADD des Speichers 390 entspricht/entsprechen, in dem die Ziel-Firmware 392 gespeichert ist. Zum Beispiel können, wie vorstehend in 4A beschrieben, die physischen Adressen des Speichers 390, in dem die Ziel-Firmware 392 gespeichert ist, ‚P_ADD1‘ und ‚P_ADD2‘ sein, und somit kann der Hypervisor 330 mindestens eine von ‚F1a‘, ‚F1b‘, ‚F2a‘ und ‚F2b‘ entsprechend ‚P_ADD1‘ und ‚P_ADD2‘ ändern, um den Zugriff der Ziel-Firmware 392 durch den ersten DSP 362 zu steuern.
-
Unter Bezugnahme auf 5B kann die Seitentabelle P_TB im Vergleich zu 5A zusätzlich einen sicheren Merker SF enthalten, der der physischen Adresse P_ADD des Speichers 390 entspricht. Das Sicherheitskennzeichen SF kann/können (eine) Information(en) sein, die angibt/angeben, ob ein unsicherer Zugriff oder ein sicherer Zugriff auf die entsprechende physische Adresse P_ADD möglich ist. Der Hypervisor 330 kann den unsicheren Zugriff und den sicheren Zugriff durch den ersten DSP 362 steuern, indem er das Sicherheitskennzeichen SF ändert. Beispielsweise kann der Hypervisor 330 mindestens eines von ‚F1a‘, ‚F1b‘, ‚F1c‘ entsprechend ‚P_ADD1‘ und mindestens eines von ‚F2a‘, ‚F2b‘ und ‚F2c‘ entsprechend ‚P_ADD2‘ ändern, um den Zugriff der Ziel-Firmware 392 durch den ersten DSP 362 zu steuern.
-
6 ist ein Diagramm zur Erläuterung des Betriebs des Hypervisors 330, bis die Ziel-Firmware 392 von 3 in den Speicher 390 geladen und verifiziert ist.
-
Unter Bezugnahme auf 3 und 6, in (a) von 6, kann der Speicherbereich MA_FW, in dem die Ziel-Firmware 392 des Speichers 390 gespeichert ist, mit „Nur Lesen“-Berechtigung so eingestellt werden, dass die Ziel-Firmware 392 nur vom Hauptprozessor 352, dem ersten DSP 362, der IP 372 und dem zweiten DSP 382 gelesen werden kann. In (b) von 6 kann der Hypervisor 330 dem Hauptprozessor 352 die Erlaubnis geben, in den Speicherbereich MA_FW zu schreiben, damit der Firmware-Lader 312 die Ziel-Firmware 392 in den Speicherbereich MA_FW laden kann. Dann, in (c) von 6, kann der Hypervisor 330, bevor die Verifikationsoperation für die Ziel-Firmware 392 durchgeführt wird, dem Hauptprozessor 352 die „Nur Lesen“-Berechtigung für den Speicherbereich MA_FW erteilen. Obwohl in der Zeichnung nicht dargestellt, kann der Hypervisor 330 dem zweiten DSP 382 fernerhin eine Schreibberechtigung für den Speicherbereich MA_FW erteilen, so dass der zweite DSP 382 eine Verifikationsoperation für die Ziel-Firmware 392 durchführen kann. Wenn die Verifikation der Ziel-Firmware 392 abgeschlossen ist, kann der Hypervisor 330 in (d) von 6 dem ersten DSP 362 ferner die „Code ausführbar“-Berechtigung für den Bereich, in dem der Code der Ziel-Firmware 392 gespeichert ist, und die „mit Daten beschreibbar“-Berechtigung für den Bereich, in dem die Daten der Ziel-Firmware 392 gespeichert sind, erteilen. Durch dieses Verfahren kann der erste DSP 362 die Ziel-Firmware 392 ausführen und Daten der Ziel-Firmware 392 in den Speicher 390 schreiben.
-
Die in 6 dargestellte inhaltliche Beschreibung ist jedoch nur eine beispielhafte Ausführungsform, und beispielhafte Ausführungsformen sind nicht darauf beschränkt. Um ein Hacken der Ziel-Firmware 392 zu verhindern, steuert der Hypervisor 330 dynamisch den zweiten Steuerbereich CSR2, so dass verschiedene Ausführungsformen angewandt werden können, um den Hauptprozessor 352, den ersten DSP 362, die IP 372 und den zweiten DSP 382 zu blockieren oder den Zugriff auf die Ziel-Firmware 392 zu gewähren.
-
7 ist ein Ablaufdiagramm, das ein Verfahren zum Betrieb eines SoCs nach einer beispielhaften Ausführungsform zeigt.
-
Unter Bezugnahme auf 7 kann das SoC, in der Operation S100, die Ziel-Firmware in den Speicher kopieren. Beispielsweise kann das SoC die Ziel-Firmware über den Firmware-Hochlader des Kernels in den Speicher kopieren (oder laden). Die Ziel-Firmware dient zur Handhabung sicherheitsbezogener Operationen, die vor Hacken geschützt werden müssen und auf einem Hauptprozessor oder einem anderen DSP (oder IP) als dem Hauptprozessor ausgeführt werden können. In der Operation S110 kann das SoC die Verifikation der Ziel-Firmware anfordern. Beispielsweise kann das SoC den Firmware-Verifizierer auffordern, die Ziel-Firmware über den Hypervisor zu verifizieren. In der Operation S120 kann das SoC die Zugriffsberechtigung auf die Ziel-Firmware steuern. Um beispielsweise ein Hacken der Ziel-Firmware zu verhindern, kann das SoC vor Beginn der Verifikation der Ziel-Firmware die Zugriffsberechtigung von anderen Komponenten (z. B. einem Hauptprozessor, einem anderen DSP und dergleichen) als dem sicheren DSP (oder der sicheren IP) auf die Ziel-Firmware, die Gegenstand der Verifikation ist, durch den Hypervisor einschränken. In der Operation S130 kann das SoC die Ziel-Firmware unter Verwendung eines sicheren DSPs verifizieren. Zum Beispiel kann das SoC die Ziel-Firmware unter Verwendung eines Sicherheits-DSPs durch einen Firmware-Verifizierer verifizieren. In einigen Ausführungsformen kann das SoC die Ziel-Firmware unter Verwendung des Hauptprozessors im TEE anstelle des Sicherheits-DSP verifizieren, und in einigen Ausführungsformen kann das SoC, wenn der Hauptprozessor TEEbezogenen Code ausführt, die Ziel-Firmware unter Verwendung eines Hypervisors verifizieren. In der Operation S140 kann das SoC die Zugriffsberechtigung auf die Ziel-Firmware auf der Grundlage des Verifikationsergebnisses steuern. Beispielsweise kann das SoC auf der Grundlage des Verifikationsergebnisses dem Subjekt, das die Ziel-Firmware über den Hypervisor ausführt, die Zugriffsberechtigung auf die Ziel-Firmware gewähren. Wenn es sich bei dem Subjekt, das die Ziel-Firmware ausführt, beispielsweise um einen DSP handelt, kann das SoC beispielsweise einen Zugriff auf den DSP gewähren, um dem DSP das Ausführen der Ziel-Firmware durch den Hypervisor zu ermöglichen. In der Operation S150 kann das SoC die Ziel-Firmware ausführen. Beispielsweise kann das SoC die Ziel-Firmware über den DSP ausführen.
-
8 ist ein Ablaufdiagramm, das ein Verfahren zum Betrieb eines SoCs nach einer beispielhaften Ausführungsform zeigt.
-
Unter Bezugnahme auf 8 kann das SoC, wenn das Ausführen einer neuen Ziel-Firmware erforderlich ist, in der Operation S200 die neue Ziel-Firmware in einen Speicher kopieren (oder laden). Wenn zum Beispiel das Ausführen einer neuen Ziel-Firmware erforderlich ist, kann das SoC die neue Ziel-Firmware über den Firmware-Hochlader des Kernels in einen Speicher kopieren (oder laden). Die neue Ziel-Firmware kann in einen anderen Bereich des Speichers kopiert werden als die in 7 beschriebene Ziel-Firmware. Die neue Ziel-Firmware dient zur Handhabung sicherheitsbezogener Operationen, die vor Hacken geschützt werden müssen und kann auf einem Hauptprozessor oder einem anderen DSP (oder einer IP) als dem Hauptprozessor ausgeführt werden. In der Operation S210 kann das SoC die Verifikation der neuen Ziel-Firmware anfordern. Beispielsweise kann das SoC den Firmware-Verifizierer auffordern, die neue Ziel-Firmware über den Hypervisor zu verifizieren. In der Operation S220 kann das SoC die Zugriffsberechtigung auf die neue Ziel-Firmware steuern. Um beispielsweise ein Hacken der neuen Ziel-Firmware zu verhindern, kann das SoC vor Beginn der Verifikation der neuen Ziel-Firmware die Zugriffsberechtigung von anderen Komponenten (z. B. einem Hauptprozessor, einem anderen DSP und dergleichen) als dem sicheren DSP (oder der sicheren IP) auf die Ziel-Firmware, die Gegenstand der Verifikation ist, durch den Hypervisor einschränken. In der Operation S230 kann das SoC die neue Ziel-Firmware unter Verwendung eines sicheren DSPs verifizieren. Zum Beispiel kann das SoC die neue Ziel-Firmware unter Verwendung eines Sicherheits-DSP durch einen Firmware-Verifizierer verifizieren. In der Operation S240 kann das SoC die Zugriffsberechtigung auf die neue Ziel-Firmware auf der Grundlage des Verifikationsergebnisses steuern. Auf der Grundlage des Verifikationsergebnisses kann das SoC beispielsweise dem Subjekt, das die neue Ziel-Firmware über den Hypervisor ausführt, die Zugriffsberechtigung auf die Ziel-Firmware gewähren. In verschiedenen Ausführungsformen können das Subjekt, das die Ziel-Firmware von 7 ausführt, und das Subjekt, das die neue Ziel-Firmware ausführt, identisch oder voneinander verschieden sein. In der Operation S250 kann das SoC die neue Ziel-Firmware ausführen und die vorherige Ziel-Firmware verwalten. Beispielsweise kann das SoC die neue Ziel-Firmware über den DSP ausführen und den Zugriff des Hauptprozessors auf die Ziel-Firmware über den Hypervisor verwalten, damit der Firmware-Hochlader bei Bedarf auf die frühere Ziel-Firmware zugreifen kann.
-
9 ist ein Ablaufdiagramm, das ein Verfahren zum Betrieb eines SoCs nach einer beispielhaften Ausführungsform zeigt.
-
Bezugnehmend auf 9 kann das SoC in der Operation S300, wenn der Betrieb der Ziel-Firmware abgeschlossen ist und die Ziel-Firmware nicht mehr ausgeführt werden soll, die Freigabe der Ziel-Firmware anfordern. Zum Beispiel kann der DSP des SoC den Hypervisor auffordern, die Ziel-Firmware freizugeben. In der Operation S310 kann das SoC die Zugriffsberechtigung auf die Ziel-Firmware steuern. Beispielsweise kann das SoC dem Hauptprozessor über den Hypervisor die Zugriffsberechtigung auf die Ziel-Firmware erteilen. In der Operation S320 kann das SoC die Zugriffsberechtigung des DSP steuern. Beispielsweise kann das SoC die Seitentabelle der MPU, die dem DSP entspricht, über einen Hypervisor ändern, um die Zugriffsberechtigung des DSP auf die Ziel-Firmware zu blockieren. In der Operation S330 kann das SoC die Ziel-Firmware freigeben. Beispielsweise kann das SoC die Ziel-Firmware vom DSP freigeben.
-
10 ist ein Ablaufdiagramm eines Verfahrens zum Betrieb eines SoC nach einer beispielhaften Ausführungsform. Danach enthält das SoC einen Hauptprozessor, eine Vielzahl von IPs und ein Sicherheitssystem, und der Kernel und der Hypervisor können vom Hauptprozessor gesteuert werden.
-
Unter Bezugnahme auf 10 kann der Kernel in der Operation S400 den Hypervisor für die Verwaltung zum Laden der Firmware anfordern. In der Operation S402 kann der Hypervisor die Zugriffsberechtigung auf den Firmware-Speicherbereich des Speichers ändern, so dass der Kernel die in der vorbestimmten Speichervorrichtung gespeicherte Firmware in den Speicher laden kann. Insbesondere kann der Hypervisor die L2P-Zuordnungstabelle oder (eine) vorbestimmte Information(en) der zweiten MMU 356 aus 3 ändern, damit der Kernel auf den Firmware-Speicherbereich zugreifen und die Firmware in den Firmware-Speicherbereich kopieren kann. In der Operation S404 kann der Hypervisor den Kernel darüber benachrichtigen, dass die Änderung der Zugriffsberechtigung auf den Firmware-Speicherbereich abgeschlossen ist. In der Operation S406 kann der Kernel die Firmware in den Speicher laden. In der Operation S408 kann der Kernel den Hypervisor auffordern, die geladene Firmware zu verifizieren. In der Operation S410 kann der Hypervisor die Zugriffsberechtigung auf den Firmware-Speicherbereich ändern, bevor er mit dem Verifizieren der Firmware beginnt. Insbesondere kann der Hypervisor dem Sicherheitssystem, das die Firmware-Verifikation durchführt, die Erlaubnis zum Zugriff auf den Firmware-Speicherbereich erteilen und den Zugriff auf den Firmware-Speicherbereich durch den Hauptprozessor und die Vielzahl von IPs blockieren. In der Operation S412 kann der Hypervisor die Verifikation der Firmware durch das Sicherheitssystem anfordern. In der Operation S414 kann das Sicherheitssystem als Reaktion auf die Anforderung des Hypervisors eine Verifikation der geladenen Firmware durchführen. Beispielsweise kann das Sicherheitssystem eine Signatur-Verifikationsoperation an der geladenen Firmware auf der Grundlage verschiedener Verfahren und Algorithmen durchführen. In der Operation S416 kann das Sicherheitssystem dem Hypervisor das Verifikationsergebnis der Firmware zuführen. In der Operation S418 kann der Hypervisor die Zugriffsberechtigung auf den Speicherbereich der Firmware auf der Grundlage des Verifikationsergebnisses ändern. Insbesondere kann der Hypervisor einer Vielzahl von IPs oder einem Hauptprozessor, der zur Ausführung der Firmware ausgewählt wurde, die Zugriffsberechtigung auf den Firmware-Speicherbereich erteilen. Wenn beispielsweise der Hauptprozessor für das Ausführen der Firmware ausgewählt wird, kann die Zugriffsberechtigung auf den Firmware-Speicherbereich für eine Vielzahl von IPs und ein Sicherheitssystem blockiert sein. In der Operation S404 kann der Hypervisor den Kernel darüber benachrichtigen, dass die Änderung der Zugriffsberechtigung auf den Firmware-Speicherbereich abgeschlossen ist. In der Operation S422 kann der Kernel auf den Firmware-Speicherbereich zugreifen und die Firmware ausführen.
-
11 ist ein Blockdiagramm, das eine im Speicher 130 und/oder der Speichervorrichtung 170 von 1 gespeicherte Software-Architekturstruktur nach einer beispielhaften Ausführungsform veranschaulicht.
-
Unter Bezugnahme auf 11 kann der Speicher 130 (siehe 1) oder die Speichervorrichtung 170 (siehe 1) ein Betriebssystem (OS) 1010, einen Kernel 1020, eine Middleware 1030 und Anwendungen 1040 enthalten.
-
Das Betriebssystem 1010 steuert und verwaltet den Gesamtbetrieb der Hardware. Das Betriebssystem 1010 ist eine Schicht, die für grundlegende Funktionen wie Hardwareverwaltung, Speicher und Sicherheit verantwortlich ist.
-
Der Kernel 1020 kann als Pfad für die Übertragung verschiedener Signale dienen, einschließlich eines Berührungssignals, das über eine Eingabevorrichtung an die Middleware 1030 eingegeben wird.
-
Die Middleware 1030 kann verschiedene Softwaremodule enthalten, die den Betrieb der mobilen oder elektronischen Vorrichtung steuern. Die Middleware 1030 kann ein Sicherheitsmodul 1031, ein Haupt-Framework 1033, ein Sub-Framework 1034, einen Window-Manager 1035, einen System-Manager 1036, ein Multimedia-Framework 1037, einen APP-Manager 1038 und einen Verbindungsmanager 1039 enthalten.
-
Das Sicherheitsmodul 1031 ist ein Modul, das Hardware-Zertifizierung, sichere Speicherung und ähnliches unterstützt und ein Firmware-Lademodul 1032 nach verschiedenen Beispielausführungsformen der vorliegenden Offenbarung enthalten kann. Das Firmware-Lademodul 1032 kann der sicheren Speicherverwaltungssoftware 130 von 1 entsprechen. Ein Hypervisor nach den Beispielausführungsformen der vorliegenden Offenbarung kann auf der Grundlage des Firmware-Lademoduls 1032 arbeiten. Das heißt, in einer Reihe von Operationen des Ladens der Firmware in einen vorbestimmten Speicher durch den Firmware-Lader des Kernels 1020, der Durchführung der Verifikation für die Firmware und der Ausführung der Firmware kann der Hypervisor schnell und einfach die Zugriffsberechtigung auf die Firmware der IP ändern, die Gegenstand jeder Operation ist. Zum Beispiel ist es bei der Steuerung des Zugriffs auf die Firmware des Hauptprozessors möglich, die Information(en) der mit dem Hauptprozessor verbundenen MMU zu ändern, und bei der Steuerung der Zugriffsberechtigung der vorgegebenen IP-Firmware ist es möglich, die Information(en) der mit der IP verbundenen MPU zu ändern.
-
Das Haupt-Framework 1033 ist ein Modul zur Bereitstellung verschiedener Benutzerschnittstellen, die auf einer Hauptfläche der Anzeige angezeigt werden. Das Sub-Framework 1034 ist ein Modul zur Bereitstellung verschiedener Benutzerschnittstellen, die in einem Sub-Bereich der Anzeige angezeigt werden sollen.
-
Der Window-Manager 1035 kann ein Berührungsereignis oder ein anderes Eingabeereignis mit dem Körper des Benutzers oder Stift erfassen. Wenn ein solches Ereignis erfasst wird, sendet der Window-Manager 1035 ein Ereignissignal an das Haupt-Framework 1033 oder das Sub-Framework 1034, um eine dem Ereignis entsprechende Operation durchzuführen.
-
Der Systemmanager 1036 überwacht den Zustand jeder Komponente in der mobilen Vorrichtung oder in der elektronischen Vorrichtung und führt das Überwachungsergebnis anderen Modulen zu. Wenn z. B. der Batteriestand niedrig ist, ein Fehler auftritt, der Status der Kommunikationsverbindung verloren geht und ähnliches, kann der Systemmanager 1036 das Überwachungsergebnis dem Haupt-Framework 1033 oder dem Sub-Framework 1034 zuführen, um eine Benachrichtigung oder einen Benachrichtigungston auszugeben.
-
Das Multimedia-Framework 1037 ist ein Modul zur Wiedergabe von Multimedia-Inhalten, die in einer mobilen oder elektronischen Vorrichtung gespeichert sind oder von einer externen Quelle zugeführt werden. Der APP-Manager 1038 ist ein Modul, das die Ausführungszustände von verschiedenen im Speicher installierten Anwendungen 1040 verwaltet. Der Verbindungsmanager 1039 ist ein Modul zur Unterstützung von drahtgebundenen oder Drahtlos- Netzwerkverbindungen.
-
Die in 11 dargestellte Struktur ist jedoch nur ein Beispiel, und beispielhafte Ausführungsformen sind nicht darauf beschränkt. Dementsprechend ist es klar, dass je nach Art oder Zweck der mobilen oder elektronischen Vorrichtung einige Komponenten weggelassen, modifiziert oder hinzugefügt werden können.
-
12 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1100 einschließlich eines SoC 1150 nach einer beispielhaften Ausführungsform darstellt. Danach kann die elektronische Vorrichtung 1100 als eine Drahtlos-Kommunikationsvorrichtung, wie z. B. ein Mobiltelefon, ein Smartphone und ein Tablet-PC, implementiert werden.
-
Unter Bezugnahme auf 12 kann die elektronische Vorrichtung 1100 einen Funk-Sender-Empfänger 1120, eine Eingabevorrichtung 1130, eine Anzeigevorrichtung 1140, ein SoC 1150 und eine Speichervorrichtung 1160 enthalten.
-
Der Funk-Sender-Empfänger 1120 kann ein Drahtlos-Signal über eine Antenne 1122 senden und empfangen und kann das Drahtlos-Signal in ein Signal ändern, das vom SoC 1150 verarbeitet werden kann.
-
Das SoC 1150 verarbeitet ein vom Funk-Sender-Empfänger 1120 ausgegebenes Signal und kann das verarbeitete Signal an die Speichervorrichtung 1160 oder die Anzeigevorrichtung 1140 übertragen. Darüber hinaus kann das SoC 1150 ein Firmware-Lademodul 1152 nach verschiedenen beispielhaften Ausführungsformen enthalten und auf der Grundlage des Firmware-Lademoduls 1152 arbeiten, so dass ein effizientes und sicheres Laden der Firmware in die Speichervorrichtung 1160, die Firmware-Verifikation und die Firmware-Ausführung durchgeführt werden können.
-
Die Eingabevorrichtung 1130 ist eine Vorrichtung, die ein Steuersignal zur Steuerung des Betriebs des SoC 1150 oder der vom SoC 1150 zu verarbeitenden Daten eingeben kann und das mit einer Zeigevorrichtung, wie z. B. einem Berührungsfeld und einer Computermaus, einem Tastenfeld oder einer Tastatur, implementiert werden kann.
-
Das SoC 1150 kann den Betrieb der Anzeigevorrichtung 1140 so steuern, dass Daten, die von der Speichervorrichtung 1160 ausgegeben werden, auf der Anzeigevorrichtung 1140 angezeigt werden können.
-
13 ist ein Blockdiagramm, das eine elektronische Vorrichtung 1200 einschließlich eines SoC 1220 nach einer beispielhaften Ausführungsform zeigt. Danach kann die elektronische Vorrichtung 1200 als Bildverarbeitungsvorrichtung, z. B. als Digitalkamera, als Mobiltelefon mit Digitalkamera, als Smartphone mit Digitalkamera oder als Tablet-PC mit Digitalkamera, implementiert werden.
-
Unter Bezugnahme auf 13 kann die elektronische Vorrichtung 1200 einen Bildsensor 1210, ein SoC 1220, eine Speichervorrichtung 1230 und eine Anzeigevorrichtung 1240 enthalten.
-
Der Bildsensor 1210 kann das optische Bild in ein digitales Bild umwandeln, und das Umwandlungsergebnis kann an das SoC 1220 oder die Speichervorrichtung 1230 übertragen werden. Das aus der Umwandlung unter der Steuerung des SoC 1220 resultierende digitale Bild kann auf der Anzeigevorrichtung 1240 angezeigt oder in der Speichervorrichtung 1230 gespeichert werden. In der Speichervorrichtung 1230 gespeicherte Daten können unter der Steuerung des SoC 1220 auf der Anzeigevorrichtung 1240 angezeigt werden.
-
Das SoC 1220 kann ein Firmware-Lademodul 1152 nach verschiedenen beispielhaften Ausführungsformen enthalten und kann auf der Grundlage des Firmware-Lademoduls 1222 arbeiten, so dass ein effizientes und sicheres Laden der Firmware in die Speichervorrichtung 1230, die Verifikation der Firmware und das Ausführen der Firmware durchgeführt werden kann.
-
14 ist ein Diagramm, das ein Smart Home 2000 veranschaulicht, das durch den Anschluss einer Vielzahl von Internet of Things (IoT)-Vorrichtungen an einen Server nach einer beispielhaften Ausführungsform implementiert wurde.
-
Unter Bezugnahme auf 14 kann das Smart Home 2000 eine Vielzahl von IoT-Vorrichtungen 2010, einen Hub 2020, einen Server 2030 und eine elektronische Vorrichtung 2040 enthalten.
-
Die Vielzahl der IoT-Vorrichtungen 2010 kann einen Fernseher 2011, einen Kühlschrank 2012, einen Tablet-PC 2013, einen Laptop 2014 und/oder eine Klimaanlage 2015 enthalten. Dies ist jedoch eine beispielhafte Ausführungsform, und die Vielzahl der IoT-Vorrichtungen 2010 ist nicht auf die in 14 dargestellten beschränkt.
-
Die Vielzahl der IoT-Vorrichtungen 2010 kann über den Hub 2020 an den Server 2030 angeschlossen werden. Eine Vielzahl von Vorrichtungs-Identifikationsinformationen über jede der Vielzahl von IoT-Vorrichtungen 2010 kann über die elektronische Vorrichtung 2040 an den Server 2030 übertragen werden. Jede der Vielzahl von IoT-Vorrichtungen 2010 kann mit dem Hub 2020 gepaart und an diesen angeschlossen werden, der der/den im Server 2030 registrierten Hub-Identifikationsinformation(en) entspricht. Die Vielzahl der IoT-Vorrichtungen 2010 kann mit dem Server 2030 über eine Verbindung mit dem Hub 2020 kommunizieren.
-
Der Hub 2020 kann eine Verbindung zwischen der Vielzahl von IoT-Vorrichtungen 2010 und dem Server 2030 weiterleiten. Nach verschiedenen Ausführungsformen kann der Hub 2020 die Funktion eines Routers, einer Bridge oder eines Access Points (AP) übernehmen. Der Server 2030 kann einen Prozessor und eine Drahtlos-Kommunikationsschaltung enthalten. Der Prozessor kann den Gesamtbetrieb des Servers 2030 steuern. Der Server 2030 kann unter Verwendung der Drahtlos-Kommunikationsschaltung mit dem Hub 2020 kommunizieren oder über den Hub 2020 mit der Vielzahl von IoT-Vorrichtungen 2010 kommunizieren.
-
Die elektronische Vorrichtung 2040 kann einen Prozessor und eine Drahtlos-Kommunikationsschaltung enthalten. Der Prozessor kann den Gesamtbetrieb der elektronischen Vorrichtung 2040 steuern. Die elektronische Vorrichtung 2040 kann über die Drahtlos-Kommunikationsschaltung mit dem Server 2030 kommunizieren. Nach verschiedenen Ausführungsformen kann die elektronische Vorrichtung 2040 ferner eine Anzeige, eine Kamera oder ein Ein-/Ausgabemodul enthalten.
-
Wenn die Kommunikation mit der Vielzahl von IoT-Vorrichtungen 2010 beginnt, kann die elektronische Vorrichtung 2040 Firmware ausführen, die sich auf Sicherheit oder Authentifizierung bezieht, und zu diesem Zeitpunkt kann die elektronische Vorrichtung 2040 auf der Grundlage eines Firmware-Lademoduls nach verschiedenen beispielhaften Ausführungsformen arbeiten. Zum Beispiel kann die elektronische Vorrichtung 2040 die elektronische Vorrichtung 1100 von 12 oder die elektronische Vorrichtung 1200 von 13 sein.
-
Während verschiedene beispielhafte Ausführungsformen vorstehend besonders gezeigt und beschrieben wurden, wird davon ausgegangen, dass darin verschiedene Änderungen in Form und Details vorgenommen werden können, ohne vom Geist und Umfang der folgenden Ansprüche abzuweichen.
-
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 Patentliteratur
-