-
Gebiet der Erfindung
-
Die Erfindung betrifft ein Chipset für ein Endgerät. Das Chipset umfasst zumindest einen Secure Processor, einen innerhalb des Secure Processor eingerichteten internen Arbeitsspeicher des Secure Processor, einen außerhalb des Secure Processor eingerichteten nicht-flüchtigen Speicher, mindestens ein im nicht-flüchtigen Speicher gespeichertes ausführbares Programm, und eine Lade-Logik, die eingerichtet ist, anlässlich eines Auslöse-Ereignisses, z.B. Start des Chipset oder Programmaufruf, das ausführbare Programm aus dem nicht-flüchtigen Speicher in den internen Arbeitsspeicher zu laden und dort zur Ausführung zu bringen. Anlässlich von an dem Programm während seiner Ausführung im internen Arbeitsspeicher vorgenommener Aktualisierungen wird das Programm in einer aktualisierten Version in den nicht-flüchtigen Speicher zurück gespeichert. Bevorzugt kann das ausführbare Programm exklusiv im Secure Processor zur Ausführung gebracht werden kann.
-
Stand der Technik
-
Die Welt ist mobil vernetzt, und die mobile Vernetzung schreitet weiter. Mobilfunkfähige Endgeräte kommunizieren über Mobilfunknetze. Zu den klassischen mobilfunkfähigen Endgeräten zählen die mobilen Endgeräte wie Smartphones und Mobiltelefone und mobilfunkfähige Tablets. Zu mobilfunkfähigen Endgeräten zählen weiter Regelungsgeräte (Steuerungsgeräte oder Messgeräte oder kombinierte Steuer/Messgeräte) für industrielle Einrichtungen im kommerziellen oder im privaten Umfeld. Industrielle Einrichtungen sind beispielsweise Produktionsanlagen, die ein oder mehrere Regelungsgeräte (Endgeräte) haben, die über ein Mobilfunknetz mit einem Hintergrundsystem oder/und miteinander kommunizieren können. Weitere industrielle Einrichtungen sind Smart Home Einrichtung wie z.B. Heizungen oder Stromverbraucher mit Endgeräten in Gestalt von Regelungsgeräten.
-
Das Endgerät hat ein Chipset mit einem oder mehreren Endgeräte-Chips zum Betrieb von Funktionen des Endgeräts. Aktuelle (und ältere) Smartphones haben beispielsweise typischerweise ein Chipset, das zumindest drei Endgeräte-Chips umfasst, nämlich einen Transceiver-IC, der die physikalische Funkkommunikation durchführt, einen Baseband-Prozessor BB (oder gleichbedeutend Modem), der Funktionen zur Datenübertragung über Funkkommunikation auf Protokollebene durchführt, und einen Application-Prozessor AP, auf welchem das Betriebssystem und Anwendungssoftware, z.B. Applikationen (z.B. Apps), ausgeführt werden. Als weitere Endgeräte-Chips können Transceiver-ICs für andere Funkkanäle vorgesehen sein, insbesondere für kurzreichweitige Funkkanäle wie NFC (NFC: near field communication) oder Bluetooth. Auf dem Chipset, insbesondere auf dem Application Processor AP, ist Firmware implementiert, d.h. spezielle Software, durch welche grundlegende Funktionalitäten des Chipset verwirklicht sind. Zur Firmware gehört z.B. das Betriebssystem des Application Processor und evtl. das Betriebssystem weiterer Prozessoren, die ein Betriebssystem haben, hardware-nahe Software z.B. des Transceiver-IC und des Baseband-Prozessor BB, und unter Umständen Programmierschnittstellen (APIs).
-
Zur Nutzung eines mobilfunkfähigen Endgeräts, wie Smartphone, Mobiltelefon, in einem Mobilfunknetzwerk eines Netzbetreibers enthält das Endgerät ein Teilnehmeridentitätsmodul mit einem Subskriptions-Profil oder kurz Profil. Das Profil bewerkstelligt die Konfiguration des Endgeräts und der Verbindung des Endgeräts im Mobilfunknetz. Das Profil ist durch einen strukturierten Datensatz gebildet, der den Aufbau, Betrieb und Abbau einer Verbindung des Endgeräts im Mobilfunknetzwerk ermöglicht, und umfasst beispielsweise einen kryptographischen Authentisierungs-Schlüssel Ki und eine International Mobile Subscriber Identity IMSI.
-
Das Teilnehmeridentitätsmodul kann herkömmlicherweise in Träger unterschiedlicher Formfaktoren integriert sein, insbesondere Plug-In und Embedded Träger. Teilnehmeridentitätsmodule in Trägern vom Formfaktor Plug-In (z.B. klassische SIM-Karte) und Embedded (zum Einlöten in ein Endgerät vorgesehenes Modul) sind auf einem dedizierten, eigenen Chip oder SoC (System-on-Chip) angeordnet.
-
Ein neueres Konzept für den Formfaktor eines Teilnehmeridentitätsmoduls sind integrierte Teilnehmeridentitätsmodule, die auf einem Endgeräte-Chip oder SoC (System-on-Chip) des Endgeräts mit integriert sind, also keinen eigenen Chip besitzen. Integrierte Teilnehmeridentitätsmodule werden mit dem Zusatz „integrated“ oder „i“ versehen und z.B. als integrated UICC, iUICC, iSIM oder iUSIM bezeichnet. Das integrierte Teilnehmeridentitätsmodul ist bei diesem Konzept als Secure Processor in einen anderen Endgeräte-Chip, z.B. in den Baseband Processor oder den Application Processor, integriert. Der Secure Processor kann z.B. als ARM SC300-Core oder ein vergleichbarer sicherer Prozessor mit hohem Sicherheitsniveau gestaltet sein. Nachteilig an einem solchen Secure Processor ist, dass jeglicher Speicherplatz aufgrund der Sicherungsmaßnahmen hohe Kosten hat, so dass der im Secure Processor verfügbare Speicher meistens möglichst gering gehalten wird. Um das Problem des geringen Speicherplatzes im Secure Processor zu lindern, wird im iUICC Konzept generell vorgeschlagen, im Chipset einen außerhalb des Secure Processor, aber innerhalb des Chipset, angeordneten externen nicht-flüchtigen Speicher vorzusehen, in dem Speicherinhalte derart gesichert, z.B. verschlüsselt, abgelegt werden, dass nur der Secure Processor sie nutzen kann.
-
Der Secure Processor hat ein Betriebssystem, das funktionell zu einem SIM-Karten Betriebssystem identisch oder vergleichbar oder analog gestaltet ist. Das Secure Processor Betriebssystem ist beispielsweise vom Grundsatz her gemäß einem Telekommunikations-Standard wie ETSI TS 102 221 oder 3GPP TS 31.102 gestaltet, wonach im Secure Processor ein Dateisystem (File System) vorgesehen ist und Authentisierungsmaßnahmen vorgesehen sind.
-
Das Secure Processor Betriebssystem ist beispielsweise im externen nicht-flüchtigen Speicher (bevorzugt verschlüsselt) abgespeichert und wird zur Laufzeit, aus dem externen nicht-flüchtigen Speicher in den Secure Processor, in den internen Arbeitsspeicher des Secure Processor geladen und dort - ggf. entschlüsselt - und zur Ausführung gebracht. Nur der Secure Processor hat alle erforderlichen Zugriffsrechte, um das Secure Processor Betriebssystem aus dem externen nicht-flüchtigen Speicher zu laden und zur Ausführung zu bringen, und dies auch nur im Secure Processor. Im externen nicht-flüchtigen Speicher können weiter Applikationen gespeichert sein, bevorzugt ebenfalls in verschlüsselter Form, die zur exklusiven Ausführung im Secure Processor vorgesehen sind. Das Betriebssystem bzw. die Applikationen sind bevorzugt in der Gestalt im externen nicht-flüchtigen Speicher gespeichert, dass ein verschlüsselten Image oder gleichbedeutend Speicherabbild) des Betriebssystems bzw. der Applikation im externen nicht-flüchtigen Speicher gespeichert ist.
-
Aktualisierungen von Programmen, die im externen nicht-flüchtigen Speicher gespeichert sind und im Secure Processor auszuführen sind, werden vorgenommen, indem die gewünschten oder erforderlichen Aktualisierungen am Programm zur Laufzeit im internen Arbeitsspeicher des Programms vorgenommen werden, und später, oder zumindest nach Beenden des Programms oder Herunterfahren des Chipset, die aktualisierte Version des Programms in den externen nicht-flüchtigen Speicher zurück gespeichert wird. Auf den externen nicht-flüchtigen Speicher haben auch andere Instanzen, als der Secure Processor, z.B. andere Prozessoren des Chipset, Zugriff. Diese Instanzen können ebenfalls Speicherinhalte im externen nicht-flüchtigen Speicher abspeichern. Insbesondere kann eine dieser Instanzen eine veraltete Version des oben genannten aktualisierten Programms in den externen nicht-flüchtigen Speicher speichern. Wird das Programm nach einem neuen Start des Chipset oder einem neuen Start des Programms erneut in den Secure Processor geladen, besteht die Möglichkeit dass eine veraltete Version des Programms geladen und zur Ausführung gebracht wird. Im Fall dass Aktualisierungen sicherheitsrelevante Änderungen umfassen, beispielweise Sicherheits-Updates in Reaktion auf konkret aufgetretene oder bekannt gewordene mögliche Sicherheitsrisiken, kann die Ausführung einer veralteten Programmversion selbst ein Sicherheitsrisiko darstellen.
-
Zusammenfassung der Erfindung
-
Der Erfindung liegt die Aufgabe zu Grunde, ein Chipset zu schaffen, dessen im Secure Processor ausführbare Programme einen verbesserten Schutz gegenüber Sicherheitsrisiken haben.
-
Die Aufgabe wird gelöst durch ein Chipset nach Anspruch 1. Vorteilhafte Ausgestaltungen der Erfindung sind in abhängigen Ansprüchen angegeben.
-
Das erfindungsgemäße Chipset für ein Endgerät nach Anspruch 1 das Chipset zeichnet sich dadurch aus, dass es weiter einen internen nicht-flüchtigen Speicher und eine Aktualitätswert-Logik umfasst. Der interne nicht-flüchtige Speicher ist innerhalb des Secure Processor implementiert, und exklusiv der Secure Processor hat darauf Zugriff. Die Aktualitätswert-Logik ist dazu eingerichtet, anlässlich von an einem Programm im internen Arbeitsspeicher vorgenommen Aktualisierungen, um eine aktualisierte Version des Programms zu erstellen, und eines nachfolgenden Zurückspeicherns des Programms in einer aktualisierten Version in den nicht-flüchtigen Speicher, einen Aktualitätswert des Programms zu ermitteln. Den ermittelten Aktualitätswert des Programms speichert die Aktualitätswert-Logik im internen nicht-flüchtigen Speicher ab, zugreifbar exklusiv (ausschließlich) für den Secure Processor. Anlässlich eines späteren erneuten Ladens eines Programm aus dem nicht-flüchtigen Speicher in den internen Arbeitsspeicher, um das Programm im internen Arbeitsspeicher zur Ausführung zu bringen, prüft die Aktualitätswert-Logik einen aktuellen Aktualitätswert des geladenen Programms und vergleicht den aktuellen Aktualitätswert mit dem im internen nicht-flüchtigen Speicher gespeicherten Aktualitätswert. Den Vergleich kann exklusiv der Secure Processor durchführen. Das Programm wird nur höchstens dann im internen Arbeitsspeicher zur Ausführung gebracht, wenn der aktuelle Aktualitätswert gleich oder höher dem gespeicherten Aktualitätswert ist. Andernfalls, d.h. falls der Aktualitätswert niedriger ist, erkennt die Aktualitätswert-Logik eine veraltete Version des Programms und verhindert, dass das Programm zur Ausführung gebracht wird. Somit werden Sicherheitsrisiken durch Ausführung von veralteten Programmversionen vermieden.
-
Daher ist gemäß Anspruch 1 ein Chipset geschaffen, dessen im Secure Processor ausführbare Programme einen verbesserten Schutz gegenüber Sicherheitsrisiken haben.
-
Wahlweise wird der Aktualitätswert anlässlich eines erstmaligen Speicherns des ausführbares Programms in den nicht-flüchtigen Speicher auf einen Start-Aktualitätswert gesetzt und anlässlich jeder Aktualisierung des Programms, um eine jeweils aktualisierte Version des Programms zu erzeugen, erhöht.
-
Das Programm umfasst wahlweise zumindest Programmcode. Optional kann das Programm zusätzlich Programmdaten. Durch die Aktualisierungen wird entsprechend ggf. der Programmcode aktualisiert. Im Fall dass Programmcode und Programmdaten umfasst sind, werden der Programmcode, die Programmdaten oder Programmcode und Programmdaten aktualisiert.
-
Gemäß ersten Ausführungsformen wird der Aktualitätswert durch Bilden einer Prüfsumme ermittelt, z.B., eines Hashwerts, oder aus einer Prüfsumme durch Bilden einer Prüfsumme und anschließende weitere Rechenschritte. Die Prüfsumme wird wahlweise über manche oder alle Teile des Programmcodes oder/und der Programmdaten ermittelt (berechnet). Der Aktualitätswert wird mittels der Prüfsumme stets so gebildet, dass eine aktuellere Version des Programms mit einem höheren Aktualitätswert korreliert ist. Hierdurch lässt sich die Aktualitätsprüfung für das Programm auf eine Entscheidung „ist der Aktualitätswert des gerade neu geladenen Programms entweder kleiner (Schlechtfall) oder größer/ gleich (Gutfall) im Vergleich zum gespeicherten Aktualitätswert“.
-
Gemäß zweiten Ausführungsformen wird der Aktualitätswert durch einen Zählerstand eines Zählers ermittelt, oder aus einem Zählerstand des Zählers durch Zählerstand-Ermittlung und anschließende weitere Ableitungsschritte. Der Zählerstand des Zählers wird dabei anlässlich jeder Aktualisierung monoton erhöht. Hierdurch ist automatisch gewährleistet, dass ein höherer Aktualitätswert mit einer aktuelleren Programmversion korreliert ist.
-
Als Programm kann wahlweise ein internes Betriebssystem des Secure Processor vorgesehen sein. Bei dem internen Betriebssystem des Secure Processor wird implizit angenommen, dass dieses nur, exklusiv, auf dem Secure Processor zur Ausführung gebracht werden kann, und nicht auf anderen Prozessoren des Chipset.
-
Wahlweise kann als Programm ein Applikationsprogramm vorgesehen sein, vorzugsweise ein nur exklusiv im Secure Processor ausführbares Programm.
-
Als Auslöser, das ausführbare Programm aus dem nicht-flüchtigen Speicher in den internen Arbeitsspeicher zu laden, um es dort zur Ausführung zu bringen, ist wahlweise ein Start oder Neustart des Chipset vorgesehen.
-
Wahlweise ist als Auslöser ein Aufruf des Programms vorgesehen.
-
Das im nicht-flüchtigen Speicher gespeicherte ausführbare Programm kann in Bezug auf den Secure Processor gesichert sein, mit anderen Worten an den Secure Processor gebunden sein, und zwar durch Verschlüsselung des Programms oder anderweitige Sicherung. Das Programm ist derart gesichert, dass es exklusiv im Secure Processor zur Ausführung gebracht werden kann.
-
Wahlweise umfass der Secure Processor ein integriertes Teilnehmeridentitätsmodul oder stellt ein solches dar. Vorzugsweise sind im internen nicht-flüchtigen Speicher oder im externen nicht-flüchtigen Speicher oder kombiniert im externen und im internen nicht-flüchtigen Speicher ein oder mehrere Subskriptions-Profile gespeichert.
-
Figurenliste
-
Im Folgenden wird die Erfindung an Hand von Ausführungsbeispielen und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:
- 1 in schematischer Darstellung ein Chipset gemäß Ausführungsformen der Erfindung;
- 2 eine Ausführungsform eines erfindungsgemäßen Chipset, bei dem der Secure Processor direkt in den Baseband Controller integriert ist.
-
Detaillierte Beschreibung von Ausführungsbeispielen
-
1 zeigt in schematischer Darstellung ein Chipset gemäß Ausführungsformen der Erfindung.
-
Das Chipset umfasst einen Secure Processor SP, der unter anderem die Funktion eines integrierten Teilnehmeridentitätsmoduls iUICC erfüllt. Der Secure Processor SP hat eine CPU oder - gleichbedeutend - einen Prozessor Core, einen internen nicht-flüchtigen Speichern int NVM (z.B. Flash oder/und EEPROM), in dem ein oder mehrere Subskriptions-Profile gespeichert sind, eine Speicherverwaltung MEM MGR, eine Schnittstelle I/O Unit, einen internen, dem Secure Processor SP exklusiv zugewiesenen Arbeitsspeicher UICC RAM, einen internen exklusiven Permanentspeicher UICC ROM des Secure Processor SP (der ROM ist optional; stattdessen kann nur Flashspeicher vorgesehen sein, wie in realen Prozessoren zunehmend der Fall ist), einen vergleichsweise kleinen speziell abgesicherten Permanentspeicher OTP area (in Speichertechnologie z.B. ROM, EEPROM oder Flash verwirklicht), und eine Krypto-Einheit CRYPTO, z.B. einen Crypto-Coprozessor.
-
Das Chipset umfasst weiter einen Application Processor AP mit - hier mehreren - Prozessor Cores (Prozessorkernen). Im Application Processor AP sind Applikationen als Apps APP implementiert.
-
Weiter umfasst das Chipset einen externen nicht-flüchtigen Speicher ext NVM, in dem ein verschlüsseltes Speicherabbild oder - gleichbedeutend - Image enc(ImOSv2.1) einer Version v2.1 eines internen Betriebssystems OS des Secure Processor SP gespeichert ist. Gestrichelt dargestellt ist in 1 ein verschlüsseltes Speicherabbild enc(ImOSv2.2) einer aktuelleren Version v2.2 eines internen Betriebssystems OS, das erst anlässlich einer nachfolgend noch beschriebenen Aktualisierung des Betriebssystems OS erzeugt wird. Zudem ist im externen nicht-flüchtigen Speicher ext NVM ein verschlüsseltes Speicherabbild enc(IMApp) einer Applikation App gespeichert, die zur exklusiven Ausführung im Secure Processor SP eingerichtet ist. Exklusive Ausführung im Secure Processor SP bedeutet hierbei, dass die Applikation App in anderen Prozessoren, beispielsweise dem Application Processor AP nicht zur Ausführung gebracht werden kann.
-
Gemäß der Erfindung sind im internen nicht-flüchtigen Speichern int NVM Aktualitätswerte von ausführbaren Programmen gespeichert. Gemäß 1 sind im internen nicht-flüchtigen Speichern int NVM ein Aktualitätswert AWOS des Betriebssystems und ein Aktualitätswert AWApp der Applikation App gespeichert.
-
Eine Aktualisierung des internen Betriebssystems OS des Secure Processor SP wird im internen Arbeitsspeicher UICC RAM des Secure Processor SP durchgeführt. Hierzu ist das Betriebssystems in der gerade aktuellen Version, hier v2.1, im internen Arbeitsspeicher UICC RAM des Secure Processor SP gerade in Ausführung, wurde also zu irgend einem Zeitpunkt als Speicherabbild aus dem externen nicht-flüchtigen Speicher ext NVM in den interne Arbeitsspeicher UICC RAM geladen, entschlüsselt und zur Ausführung gebracht (Ziffer 1). Während der Ausführung im internen Arbeitsspeicher UICC RAM wird das interne Betriebssystem OS von Version v2.1 auf eine aktuellere Version v2.2 aktualisiert (Ziffer 2). Spätestens beim Herunterfahren des Chipset wird das aktualisierte Betriebssystem OS in Version v2.2 verschlüsselt und zurück in den externen nicht-flüchtigen Speicher ext NVM gespeichert (Ziffer 4). Dabei wird der Aktualitätswert, der zunächst einen Wert AWOS(v2.1) hat, der der Version v2.1 des Betriebssystems OS entspricht, auf einen Wert AWOS(v2.2) erhöht, der der höheren Version v2.2 des Betriebssystems OS entspricht (Ziffer 3).
-
Wird später das Chipset neu gestartet, wird das verschlüsselte Speicherabbild enc(ImOS) des Betriebssystems OS aus dem externen nicht-flüchtigen Speicher ext NVM in den internen Arbeitsspeicher UICC RAM geladen (Ziffer 5). Gemäß der Erfindung wird anlässlich des Ladens der Aktualitätswert des gerade geladenen Betriebssystems OS ermittelt und mit dem im internen nicht-flüchtigen Speicher int NVM gespeicherten Aktualitätswert verglichen (Ziffer 6). Wird beim Laden des Betriebssystems OS das Betriebssystem in Version v2.1, d.h. in der Version vor der oben beschriebenen Aktualisierung geladen, so wird bei der Prüfung gemäß Ziffer 6 festgestellt, dass der aktuelle Aktualitätswert kleiner ist als der gespeicherte Aktualitätswert aus dem internen nicht-flüchtigen Speicher int NVM. Folglich wird das geladen Betriebssystem OS in der veralteten Version v2.1 nicht zur Ausführung gebracht (Ziffer 7, 8). Wird beim Laden des Betriebssystems OS das Betriebssystem in Version v2.2, d.h. in der Version nach der oben beschriebenen Aktualisierung geladen, so wird bei der Prüfung gemäß Ziffer 6 festgestellt, dass der aktuelle Aktualitätswert gleich dem gespeicherten Aktualitätswert aus dem internen nicht-flüchtigen Speicher int NVM. Folglich wird das geladen Betriebssystem OS in der aktuellen Version v2.2 zur Ausführung gebracht (Ziffer 7, 9).
-
Das Chipset umfasst zudem einen im Chipset allgemein zugänglichen externen Arbeitsspeicher ext RAM und einen Baseband Processor BB (Modem).
-
Die Komponenten SP, AP, ext NVM, ext RAM, BB des Chipset sind über einen System Bus des Chipset miteinander verbunden.
-
Physisch über den System Bus kann zwischen dem Baseband Processor BB und dem Secure Processor SP eine gesicherter Übertragungskanal S-CH eingerichtet werden, über den zwischen dem Baseband Processor BB und dem Secure Processor SP Kommandos in Format von APDU Kommandos ausgetauscht werden können.
-
Gemäß 1 ist der Secure Processor SP als eigenständiger Prozessor dargestellt. 2 zeigt eine weitere Ausführungsform eines erfindungsgemäßen Chipset, bei dem der Secure Processor SP direkt in den Baseband Controller BB des Chipset integriert ist. Ansonsten kann das Chipset und insbesondere der Secure Processor SP identisch wie in 1 gestaltet sein.