-
HINTERGRUND DER ERFINDUNG
-
Mobile drahtlose Kommunikationsgeräte (zum Beispiel Smartphones, Tablet-Computer und tragbare Funkgeräte) umfassen Betriebssysteme, die Hardware- und Softwareressourcen der mobilen drahtlosen Kommunikationsgeräte verwalten. Betriebssysteme bieten auch eine Schnittstelle zwischen Benutzer-Anwendungen (zum Beispiel „Apps“) und den Hardware- und Softwareressourcen. Meistens werden Betriebssysteme auf mobilen drahtlosen Kommunikationsgeräten von einem Mobilfunkanbieter vorinstalliert, bevor das Gerät einem Endbenutzer (manchmal auch als „Teilnehmer“ bezeichnet) zur Verfügung gestellt wird. Die meisten Betriebssysteme sind so konzipiert, dass sie von Endbenutzern nicht modifiziert werden können. Betriebssysteme mit eingeschränktem Zugang werden häufig als „geschlossene“ Betriebssysteme bezeichnet. Betriebssysteme werden geschlossen, um die Stabilität zu verbessern (das heißt den zuverlässigen und konsistenten Betrieb des mobilen drahtlosen Geräts) und um Wartungsprobleme zu reduzieren, die durch nicht getestete oder nicht konforme Änderungen an den Betriebssystemen oder die Verwendung von Anwendungssoftware hervorgerufen werden, die nicht speziell für den Betrieb mit dem Betriebssystem entwickelt wurde. Wenn mobile drahtlose Kommunikationsgeräte in Umgebungen verwendet werden, in denen Sicherheit eine Rolle spielt (zum Beispiel öffentliche Sicherheit, Militär und Regierung), werden geschlossene Betriebssysteme verwendet, um eine angemessene Sicherheit zu gewährleisten. Mit ähnlichen Problematiken beschäftigen sich auch die folgenden Druckschriften:
US 8 694 795 B1 ,
WO 2007 / 141 607 A2 ,
US 2012 / 0 167 162 A1 ,
US 2014 / 0 109 234 A1 ,
US 2014/0 038 563 A1 ,
US 2013 / 0 012 168 A1 ,
US 2012 / 0 129 492 A1 und
WO 2015 / 087 322 A1 .
-
Trotz der geschlossenen Natur der Betriebssysteme ist es für Endbenutzer noch möglich, ein Betriebssystem unter Verwendung von spezieller Ausrüstung und Software (zum Beispiel „Jail-Breaking“ und „Rooting“) zu modifizieren. Sobald ein Betriebssystem modifiziert wurde, kann nicht autorisierte Software installiert werden, was zu einer geringeren Systemstabilität und reduzierter Sicherheit führen kann.
-
Dementsprechend bedarf es eines Verfahrens und eines Systems zur Überwachung eines Betriebssystems eines mobilen drahtlosen Kommunikationsgeräts auf unautorisierte Modifikationen. Ein derartiges Verfahren und ein derartiges System ist in den unabhängigen Ansprüchen angegeben. Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
-
Figurenliste
-
In den begleitenden Figuren bezeichnen gleiche Bezugszeichen identische oder funktional ähnliche Elemente durch die getrennten Ansichten hindurch, zusammen mit der nachfolgenden detaillierten Beschreibung, und sie werden in die Spezifizierung eingebaut, und sie bilden einen Teil davon, um weiterhin Ausführungsformen und Konzepte zu veranschaulichen, die die beanspruchte Erfindung enthalten, und um verschiedene Prinzipien und Vorteile jener Ausführungsformen zu erläutern.
- 1 ist ein Blockdiagramm, das ein mobiles drahtloses Kommunikationsgerät in Übereinstimmung mit einigen Ausführungsbeispielen illustriert.
- 2 ist ein Blockdiagramm, das die interne Kommunikation des mobilen drahtlosen Kommunikationsgeräts von 1 in Übereinstimmung mit einigen Ausführungsformen illustriert.
- 3 zeigt ein Verfahren zur Überwachung eines Betriebssystem eines mobilen drahtlosen Kommunikationsgeräts auf unautorisierte Modifikationen, in Übereinstimmung mit einigen Ausführungsformen.
-
Fachleute auf dem Gebiet der vorliegenden Offenbarung werden erkennen, dass Elemente in den Figuren zum Zwecke der Einfachheit und Klarheit nicht notwendigerweise maßstabsgetreu dargestellt sind. Zum Beispiel können die Abmessungen einiger der Elemente in den Figuren im Vergleich zu anderen Elementen übertrieben sein, um dabei zu helfen, das Verständnis von Ausführungsformen der vorliegenden Erfindung zu verbessern.
-
Die Vorrichtungs- und Verfahrenskomponenten wurden dort, wo es geeignet ist, durch konventionelle Symbole in den Zeichnungen dargestellt, wobei nur jene spezifischen Details gezeigt sind, die für ein Verständnis der Ausführungsformen der vorliegenden Erfindung wesentlich sind, um so die Offenbarung nicht mit Details zu verschleiern, die für Fachleute ohne weiteres offensichtlich sind, wobei jene den Vorteil der vorliegenden Beschreibung genießen.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Einige Ausführungsformen der Erfindung umfassen ein Verfahren zur sicheren Überwachung eines Betriebssystems eines mobilen drahtlosen Kommunikationsgerätes auf unautorisierte Modifikationen. Bei einer Ausführungsform umfasst das Verfahren das Vorsehen einer sicheren Anwendung UICC (UICC = universal integrated circuit card/SIMbeziehungsweise Chipkarte für Mobiltelefone oder dergleichen) des mobilen drahtlosen Kommunikationsgeräts. Die sichere Anwendung ist dazu konfiguriert, die drahtlose Konnektivität des mobilen drahtlosen Kommunikationsgerätes zu steuern und mit einem drahtlosen Kommunikationsnetzwerk zu kommunizieren. Das Verfahren umfasst weiterhin das Vorsehen einer Überwachungsanwendung in einem vertrauenswürdigen Sub-Prozessor des Prozessors des mobilen drahtlosen Kommunikationsgeräts. Das Verfahren umfasst weiterhin ein Einrichten einer sicheren Kommunikationsverbindung zwischen der sicheren Anwendung und der Überwachungsanwendung. Das Verfahren umfasst weiterhin, dass der vertrauenswürdige Sub-Prozessor einen Herzschlag-Token erzeugt, basierend auf einem Modifikationsstatus des Betriebssystems und zumindest einer Systemvariable. Das Verfahren umfasst weiterhin, dass die sichere Anwendung den Herzschlag-Token empfängt, und auf der Basis des Herzschlag-Tokens feststellt, dass eine unautorisierte Softwaremodifikation vorliegt. Das Verfahren umfasst weiterhin, dass die sichere Anwendung zumindest eine Gegenmaßnahme aktiviert. Einige Ausführungsformen der Erfindung umfassen ein System zur sicheren Überwachung des Betriebssystems eines mobilen drahtlosen Kommunikationsgeräts auf unautorisierte Modifikationen. Bei einer dieser Ausführungsformen umfasst das System eine UICC und einen elektronischen Prozessor. Die UICC ist dazu konfiguriert, die drahtlose Konnektivität des mobilen drahtlosen Kommunikationsgeräts zu steuern und mit einem drahtlosen Kommunikationsnetzwerk zu kommunizieren. Der elektronische Prozessor umfasst einen vertrauenswürdigen Sub-Prozessor, der dazu konfiguriert ist, eine sichere Kommunikationsverbindung zwischen dem vertrauenswürdigen Sub-Prozessor und der UICC einzurichten. Der vertrauenswürdige Sub-Prozessor ist weiterhin dazu konfiguriert, einen Herzschlag-Token zu erzeugen, basierend auf einem Modifikationsstatus des Betriebssystems und zumindest einer Systemvariable. Die UICC ist weiterhin dazu konfiguriert, den Herzschlag-Token von dem vertrauenswürdigen Sub-Prozessor zu empfangen, basierend auf dem Herzschlag-Token festzustellen, dass eine unautorisierte Softwaremodifikation vorliegt, und zumindest eine Gegenmaßnahme zu aktivieren.
-
Wie es in 1 dargestellt ist, umfasst das mobile drahtlose Kommunikationsgerät 10 einen elektronischen Prozessor 12 (beispielsweise einen Mikroprozessor oder eine andere geeignete programmierbare Einrichtung), einen Speicher 14 (beispielsweise ein computerlesbares Speichermedium), eine Input/Output-Schnittstelle 16, einen Basisband-Prozessor 18 (beispielsweise ein Netzwerk-Modem) und eine UICC 20. Das mobile drahtlose Kommunikationsgerät 10 ist dazu in der Lage, Sprachanrufe, Dateninformationen und Textnachrichten über ein drahtloses Kommunikationsnetzwerk 11 (beispielsweise ein zellulares Netzwerk oder ein anderes drahtloses Netzwerk) zu beenden und auszulösen. Bei vielen der hier beschriebenen Ausführungsformen ist das mobile drahtlose Kommunikationsgerät 10 ein Smartphone. Bei alternativen Ausführungsformen kann das mobile drahtlose Kommunikationsgerät 10 jedoch ein Zellulartelefon, eine Smart-Uhr, ein Tablet-Computer, ein PDA (PDA = personal digital assistent/persönlicher digitaler Assistent), ein tragbares Funkgerät oder ein anderes Gerät sein, das ein Netzwerk-Modem oder Komponenten enthält oder damit gekoppelt werden kann, um drahtlose Netzwerkkommunikationen zu ermöglichen (beispielsweise einen Verstärker, eine Antenne etc.), in zellularen, landmobilen oder anderen drahtlosen Kommunikationsnetzwerken.
-
Der elektronische Prozessor 12, der Speicher 14, die Input/Output-Schnittstelle 16, der Basisband-Prozessor 18 und die UICC 20 sowie verschiedene andere Module und Komponenten sind durch einen oder mehrere Steuer- oder Datenbusse gekoppelt, um Kommunikation unter ihnen zu ermöglichen. Der Speicher 14 kann einen Programmspeicherbereich (beispielsweise einen ROM (ROM = read-only memory/Nur-Lese-Speicher)) und einen Datenspeicherbereich umfassen (beispielsweise einen RAM (RAM = randomaccess memory/Speicher mit wahlfreiem Zugriff)), und ein anderes nichtflüchtiges computerlesbares Medium. Der elektronische Prozessor 12 ist mit dem Speicher 14 gekoppelt und führt computerlesbare Anweisungen („Software“) aus, die in dem Speicher 14 gespeichert sind. Beispielsweise kann Software zum Auslösen und Empfangen von Anrufen sowie zum Entdecken und Berichten von unautorisierten Softwaremodifikationen, wie unten beschrieben, in dem Speicher 14 gespeichert sein. Die Software kann eine oder mehrere Anwendungen, Programmdaten, Filter, Regeln, ein oder mehrere Programmmodule und/oder andere ausführbare Anweisungen umfassen. Der elektronische Prozessor 12 umfasst einen vertrauenswürdigen Sub-Prozessor 21, der innerhalb des elektronischen Prozessors 12 eine sichere, isolierte Betriebsumgebung zur Verfügung stellt. Der vertrauenswürdige Sub-Prozessor 21 kann als eine vertrauenswürdige Ausführungsumgebung ausgeführt sein, entweder als Hardware, Software oder eine Kombination von beidem. Der vertrauenswürdige Sub-Prozessor 21 ist dazu konfiguriert, vertrauenswürdige Software auszuführen, die von dem Hauptabschnitt des elektronischen Prozessors 12 getrennt ist.
-
Die Input/Output-Schnittstelle 16 arbeitet, um Benutzereingaben zu empfangen, Systemausgaben zu Verfügung zu stellen, oder eine Kombination von beidem. Benutzereingaben können, beispielsweise, über eine Tastatur, einen Touchscreen, einen Scroll-Ball, Tasten und dergleichen erfolgen. Systemausgaben können über eine Anzeigeeinrichtung wie ein LCD (LCD = liquid crystal display/Flüssigkristallanzeige), einen Touchscreen und dergleichen (nicht dargestellt) erfolgen. Die Input/Output-Schnittstelle 16 kann eine GUI (GUI = graphical user interface/graphische Benutzerschnittstelle) umfassen (beispielsweise erzeugt von einem elektronischen Prozessor 12 aus in dem Speicher 14 gespeicherten Anweisungen und Daten, und dargestellt auf einem Touchscreen), die es einem Benutzer ermöglicht, mit dem mobilen drahtlosen Kommunikationsgerät 10 zu interagieren.
-
Der Basisband-Prozessor 18 ist dazu konfiguriert, von einem Funk-Transceiver (nicht dargestellt) gesendete und empfangene digitale Daten zu entschlüsseln und zu verschlüsseln, und die Daten zu und von dem elektronischen Prozessor 12 und der UICC 20 zu kommunizieren.
-
Die UICC 20 ist ein eigenständiger Computer auf einem Chip und umfasst einen UICC-Prozessor 22, einen UICC-Speicher 24 und eine UICC-Input/Output-Schnittstelle 26. Der UICC-Prozessor 22, der UICC-Speicher 24 und die UICC-Input/Output-Schnittstelle 26 sowie verschiedene andere Module und Komponenten sind durch ein oder mehrere Controll- oder Datenbusse verbunden, um Kommunikation zwischen den Modulen und Komponenten zu ermöglichen. Der UICC-Prozessor 22 ist mit dem UICC-Speicher 24 verbunden und ruft computerlesbare Anweisungen („Software“) ab und führt diese aus, die in dem UICC-Speicher 24 gespeichert sind. Die Software umfasst, beispielsweise , ein Software-Toolkit 33 (beispielsweise das SIM-Anwendungs-Toolkit (SIM = subscriber identification module/Teilnehmeridentifikationsmodul)), das Kommunikation zwischen auf dem elektronischen Prozessor 12 laufenden Anwendungen und der UICC 20 ermöglicht. Der UICC-Speicher 24 kann auch verschiedene Zugriffsberechtigungen enthalten, die das mobile drahtlose Kommunikationsgerät 10 möglicherweise braucht, um unter Verwendung des drahtlosen Kommunikationsnetzwerks 11 zu kommunizieren.
-
Die UICC-Input/Output-Schnittstelle 26 ist elektrisch mit dem Basisband-Prozessor 18 verbunden. Der UICC-Prozessor 22 kommuniziert über diese Verbindung mit anderen Komponenten des mobilen drahtlosen Kommunikationsgeräts 10, um Daten zu senden und zu empfangen, die beispielsweise Zugriffsberechtigungen für das drahtlose Kommunikationsnetzwerk 11 umfassen. Die UICC 20 ist aus dem mobilen drahtlosen Kommunikationsgerät 10 entnehmbar. Ein vollumfänglicher Betrieb des mobilen drahtlosen Kommunikationsgerätes 10 erfordert jedoch das Vorhandensein der UICC 20, so dass die verschiedenen Zugriffsberechtigungen in der UICC 20 für Authentikationsprozesse zur Verfügung zu stellen, die vor oder während Kommunikationen durchgeführt werden, die unter Verwendung des drahtlosen Kommunikationsnetzwerks 11 erfolgen.
-
Der elektronische Prozessor 12 führt das Betriebssystem 28 und die Überwachungsanwendung 30 aus oder betreibt diese. Der UICC-Prozessor 22 führt die sichere Anwendung 32 aus oder betreibt diese. Bei alternativen Ausführungsformen können das Betriebssystem 28, die Überwachungsanwendung 30 und die sichere Anwendung 32 von verschiedenen Prozessoren ausgeführt werden, oder als separate Module von ihren jeweiligen Prozessoren. Das Betriebssystem 28 verwaltet die Hardware- und Softwareressourcen des mobilen drahtlosen Kommunikationsgerätes 10, und es dient als eine Schnittstelle zwischen den Benutzeranwendungen (das heißt „Apps“) und den Hardware- und Softwareressourcen. Die Überwachungsanwendung 30 ist dazu konfiguriert, innerhalb des vertrauenswürdigen Sub-Prozessors 21 des elektronischen Prozessors 12 zu arbeiten. Demgemäß kann die Überwachungsanwendung 30 auf das Betriebssystem 28 zugreifen, aber das Betriebssystem 28 kann nicht auf die Überwachungsanwendung 30 zugreifen oder diese modifizieren. Die Überwachungsanwendung 30 überwacht das Betriebssystem 28 und erkennt unautorisierte Modifikationen an dem Betriebssystem 28, einschließlich, beispielsweise, wenn die Sicherheitsmaßnahmen des Betriebssystems 28 beeinträchtigt oder durch „Rooting“ oder „Jail-Breaking“ überschrieben wurden. Es kann der Überwachungsanwendung 30 jedoch möglicherweise nicht möglich sein, die unautorisierten Modifikationen zu berichten, die sie entdeckt, weil die Überwachungsanwendung 30 isoliert ist und nicht direkt auf den Basisband-Prozessor 18 des mobilen drahtlosen Kommunikationsgerätes 10 zugreifen kann. Weiterhin kann dem Betriebssystem 28 nicht getraut werden, weil die unautorisierten Modifikationen an dem Betriebssystem 28 umfassen können, dass die Art mit der es Anweisungen von Software empfängt und darauf antwortet, geändert wird, was auch für die Überwachungsanwendung 30 gilt. Beispielsweise kann die Überwachungsanwendung 30 glauben, dass sie die unautorisierte Modifikation erfolgreich berichtet hat, wenn die Berichts-Message in Wirklichkeit angenommen und nachfolgend gelöscht wurde (beispielsweise durch modifizierte Abschnitte des Betriebssystems 28). Die Überwachungsanwendung 30 ist dazu konfiguriert, mit der sicheren Anwendung 32 zu kommunizieren. Die sichere Anwendung 32 ist, ihrerseits, dazu konfiguriert, mit der Überwachungsanwendung 30 zu kommunizieren.
-
Wie es in 2 dargestellt ist, erfolgen die Kommunikationen zwischen der Anwendung 30 und der sicheren Anwendung 32 über eine sichere Kommunikationsverbindung 34. Die sichere Kommunikationsverbindung 34 wird unter Verwendung geeigneter Netzwerkprotokolle sicher eingerichtet. Bei einer beispielhaften Ausführungsform (nicht dargestellt) umfasst die UICC 20 einen SCWS (SCWS = smart card web server/Smartcard-Web-Server), der arbeitet, um mit externen Komponenten zu kommunizieren, einschließlich, beispielsweise, dem elektronischen Prozessor 12, unter Verwendung des BIP (BIP = bearer independent protocol/trägerunabhängiges Protokoll). Die sichere Kommunikationsverbindung 34 kann unter Verwendung des SCWS und HTTPS (HTTPS = hypertext transfer protocol over secure sockets layer/verschlüsseltes Internetprotokoll) eingerichtet werden. Die sichere Kommunikationsverbindung 34 wird unter Verwendung eines geteilten Schlüssels gesichert, der von dem Mobilfunkanbieter zur Verfügung gestellt und in der Überwachungsanwendung 30 und der UICC 20 gespeichert wird, wenn das mobile drahtlose Kommunikationsgerät 10 anfänglich zur Verfügung gestellt wird. Der geteilte Schlüssel kann aktualisiert werden, wenn die UICC 20 ausgetauscht wird. Die Überwachungsanwendung 30 erzeugt einen Herzschlag-Token 40 und eine OS-Statusnachricht 42 (OS = operating system/Betriebssystem). Der Herzschlag-Token 40 umfasst die OS-Statusnachricht 42. Die OS-Statusnachricht 42 zeigt an, ob das Betriebssystem 28 modifiziert wurde. Der Herzschlag-Token 40 kann über die sichere Kommunikationsverbindung 34 zu der sicheren Anwendung 32 gesendet werden.
-
3 ist ein Flussdiagramm eines beispielhaften Verfahrens 100 zur Überwachung eines Betriebssystems eines mobilen drahtlosen Kommunikationssystems 10 auf unautorisierte Modifikationen. Beim Block 101 richtet die Überwachungsanwendung 30 eine sichere Kommunikationsverbindung 34 mit der sicheren Anwendung 32 auf der UICC 20 ein.
-
Bei Block 103 erzeugt die Überwachungsanwendung 30 einen Herzschlag-Token 40. Der Herzschlag-Token 40 umfasst die OS-Statusnachricht 42 und eine oder mehrere Systemvariablen, einschließlich, beispielsweise, der TMSI (TMSI = temporary mobile subscriber identity/lokale und zeitlich begrenzte Rufnummer eines Teilnehmers innerhalb einer Funkzelle), der LAI (LAI = location area identity/aktueller Aufenthaltsort im Mobilfunknetz) und der IMSI (IMSI = international mobile subscriber identity/internationale ID, die einen Teilnehmer eindeutig identifiziert). Die TMSI ist der temporäre Identifizierer der Verbindung des mobilen drahtlosen Kommunikationsgeräts 10 mit dem drahtlosen Kommunikationsnetzwerk 11. Die LAI identifiziert den aktuellen Aufenthaltsort des mobilen drahtlosen Kommunikationsgeräts 10. Die IMSI ist ein Identifizierer, der über alle drahtlosen Netzwerke hinweg für das mobile drahtlose Kommunikationsgerät 10 eindeutig ist. Bei einigen Ausführungsformen kann ein HMAC-Algorithmus (HMAC = keyed-hash message authentication code/basierend auf einer kryptographischen Hash-Funktion berechneter Nachrichtenauthentikationscode) verwendet werden (beispielsweise HMAC-SHA256 (SHA = secure hash algorithm/sicherer Hash-Algorithmus)) um einen Herzschlag-Token 40 zu erzeugen, der die OS-Statusnachricht 42, einen geteilten Schlüssel, die Systemvariablen und einen Nachrichtenauthentikationscode umfasst.
-
Beim Block 105 sendet die Überwachungsanwendung 30 den Herzschlag-Token 40 zu der sicheren Anwendung 32, unter Verwendung, beispielsweise, eines „Put“-Befehls des HTTP. Die sichere Anwendung 32 erwartet, den Herzschlag-Token 40 periodisch zu sehen. Wenn die sichere Anwendung 43 beim Block 107 keinen Herzschlag-Token 40 innerhalb des festen Zeitabschnitts empfangen hat, aktiviert die sichere Anwendung 32 eine oder mehrere Gegenmaßnahmen. Gegenmaßnahmen sind unten ausführlicher erläutert. Wenn jedoch ein Herzschlag-Token 40 empfangen wird, dann bearbeitet die sichere Anwendung 32 den Herzschlag-Token 40 mit einem HMAC-Algorithmus, und sie bestimmt beim Block 111, ob der HMAC gültig ist.
-
Bei einigen Ausführungsformen verwendet die sichere Anwendung 32 den Nachrichtenauthentikationscode um festzustellen, ob der Herzschlag-Token 40 gültig ist, und der OS-Statusnachricht 42 getraut werden kann. Bei alternativen Ausführungsformen basiert der Test auf Gültigkeit auf den Systemvariablen, um sich gegen Weiterspielangriffe zu schützen. Ein Weiterspielangriff tritt auf, wenn eine Software eine gültige Nachricht abfängt und damit fortfährt, Kopien der gültigen Nachricht zu senden, nachdem die Software die Bedingungen ändert, die die gültige Nachricht erzeugt haben. Beispielsweise könnte unautorisierte Software den Herzschlag-Token 40 abfangen, der eine OS-Statusnachricht 42 enthält, die anzeigt, dass das Betriebssystem 28 unmodifiziert ist. Diese unautorisierte Software könnte das Betriebssystem 28 modifizieren und dann den abgefangenen Herzschlag-Token 40 der sicheren Anwendung wieder zuspielen (das heißt, damit fortfahren, Kopien davon zu senden), was verursacht, dass die sichere Anwendung 32 glaubt, dass das Betriebssystem 28 unmodifiziert ist. Das Einschließen von Systemvariablen in den Herzschlag-Token 40 verhindert diese Art von Wiederspielangriffen. Der IMSI-Wert kann von unautorisierter Software verändert werden, aber der IMSI-Wert, der in der UICC 20 gespeichert ist, kann von Software auf dem mobilen drahtlosen Kommunikationsgerät 10 nicht verändert werden. Weiterhin ändern sich sowohl die TMSI als auch die LAI mit der Zeit, wenn sich das mobile drahtlose Kommunikationsgerät 10 bewegt oder mit dem drahtlosen Kommunikationsnetzwerk 11 verbunden und von diesem getrennt wird. Bei einer beispielhaften Ausführungsform entschlüsselt die sichere Anwendung 32 den Herzschlag-Token 40 und vergleicht die Systemvariablen mit ihren aktuellen Werten. Wenn die Werte übereinstimmen, dann kann die sichere Anwendung 32 annehmen, dass der Herzschlag-Token 40 gültig ist und der OS-Statusnachricht 42 kann getraut werden. Bei einigen Ausführungsformen kann die sichere Anwendung 32 mehr als nur einen Herzschlag-Token 40 mit nicht passenden Systemvariablenwerten benötigen, bevor sie annimmt, dass der Herzschlag-Token 40 ungültig ist. Einige Aufführungsformen verwenden sowohl den Nachrichtenauthentikationscode als auch die Systemvariablenvergleiche, um die Gültigkeit des Herzschlag-Tokens 40 festzustellen. Wenn die sichere Anwendung 32 feststellt, dass der Herzschlag-Token 40 ungültig ist, dann aktiviert die sichere Anwendung 32 eine oder mehrere Gegenmaßnahmen beim Block 109.
-
Wenn die sichere Anwendung 32 beim Block 111 feststellt, dass der Herzschlag-Token 40 gültig ist, wird sie anschließend die OS-Statusnachricht 42 beim Block 113 überprüfen. Bei einigen Ausführungsformen kann die OS-Statusnachricht 42 aus einem einzigen Bit bestehen. Beispielsweise kann ein Wert von „0“ angeben, dass das Betriebssystem 28 unmodifiziert ist (das heißt, der Status ist „OK“), während ein Wert von „1“ anzeigen kann, dass das Betriebssystem 28 modifiziert wurde. Bei alternativen Ausführungsformen kann die OS-Statusnachricht 42 anders formatiert sein, oder sie kann mehr Informationen enthalten, einschließlich, beispielsweise Daten, die identifizieren, welche Modifikationen entdeckt wurden, und andere Informationen, die dabei hilfreich wären, die Quelle und die Art der Modifikationen zu identifizieren. Wenn die sichere Anwendung 32 feststellt, aus der OS-Statusnachricht 42, dass das Betriebssystem 28 unmodifiziert ist, dann beginnt der Prozess beim Block 103 mit der Erzeugung eines weiteren Herzschlag-Tokens erneut. Wenn die sichere Anwendung 32 feststellt, aus der OS-Statusnachricht 42, dass das Betriebssystem 28 modifiziert wurde, dann wird die sichere Anwendung 32 eine oder mehrere Gegenmaßnahmen beim Block 109 aktivieren.
-
Wie oben erwähnt, können unautorisierte Modifikationen an dem Betriebssystem 28 zu einem unstabilen Betrieb des mobilen drahtlosen Kommunikationsgeräts 10 führen, die Sicherheit des drahtlosen Kommunikationsgeräts 10 beeinträchtigen, oder beides. Demzufolge können beim Block 109 des Verfahrens 100 Gegenmaßnahmen aktiviert werden. Bei einigen Ausführungsformen schaltet die sichere Anwendung 32 den Benutzerzugriff auf drahtlose Dienste auf dem mobilen drahtlosen Kommunikationsgerät 10 ab, wodurch verhindert wird, dass das modifizierte Betriebssystem 28 oder irgendeine unautorisierte Software auf das drahtlose Kommunikationsnetzwerk 11 zugreift. Um den Benutzerzugriff auf drahtlose Dienste abzuschalten, lockt die sichere Anwendung 32 zellulare Kommunikationen für alles außer die UICC 20. Ein Abschalten des Benutzerzugriffs auf drahtlose Dienste verhindert, dass die unautorisierte Software dem drahtlosen Kommunikationsnetzwerk 11 Schaden zufügt oder sichere Daten von dem mobilen drahtlosen Kommunikationsgerät 10 sendet. Bei anderen Ausführungsformen sendet die sichere Anwendung 32 eine Nachricht an das drahtlose Kommunikationsnetzwerk 11. Die Nachricht kann die IMSI oder die IMEI (IMEI = international mobile equipment identity/Seriennummer, anhand derer jedes Gerät eindeutig identifiziert werden kann) des mobilen drahtlosen Kommunikationsgeräts 10 umfassen, und einen Hinweis, dass das Betriebssystem 28 modifiziert wurde. Alternative Ausführungsformen können andere Arten von Gegenmaßnahmen umfassen. Beispielsweise kann die sichere Anwendung 32 andere drahtlose Dienste auf dem mobilen drahtlosen Kommunikationsgerät 10 abschalten (beispielsweise Wi-Fi und Bluetooth). Einige Ausführungsformen umfassen eine Kombination, oder alle der oben beschriebenen Gegenmaßnahmen.
-
In der vorangehenden Spezifikation sind spezifische Ausführungsformen beschrieben worden. Dem Fachmann auf dem Gebiet ist jedoch klar, dass verschiedene Modifizierungen und Änderungen vorgenommen werden können, ohne von dem Geist der Erfindung abzuweichen, wie in den Ansprüchen unten dargelegt. Dementsprechend sind die Spezifikation und die Abbildungen in einem eher illustrativen als einem restriktiven Sinne zu verstehen und alle solche Modifikationen sollen in dem Geist der vorliegenden Lehren enthalten sein.
-
Die Nutzen, Vorteile, Problemlösungen und jedes denkbare Element, das dazu führt, dass irgendein Nutzen, Vorteil oder irgendeine Lösung eintritt oder ausgeprägter wird, sollen nicht als kritische, erforderliche oder essentielle Merkmale oder Elemente eines beliebigen Anspruchs oder aller Ansprüche ausgelegt werden. Die Erfindung wird ausschließlich durch die angehängten Ansprüche definiert, einschließlich jeder beliebigen Änderung, die während der Rechtshängigkeit der vorliegenden Anmeldung vorgenommen wird, und aller Äquivalente solcher Ansprüche, wie veröffentlicht.
-
Darüber hinaus sollen in diesem Dokument relationale Ausdrücke, wie zum Beispiel, erste und zweite, oben und unten, und dergleichen ausschließlich verwendet werden, um eine Entität oder Aktion von einer anderen Entität oder Aktion zu unterscheiden, ohne notwendigerweise irgend eine tatsächliche solche Beziehung oder Reihenfolge zwischen solchen Entitäten oder Aktionen zu erfordern oder zu implizieren. Die Ausdrücke „umfasst“, „umfassend“, „hat“, „habend“, „beinhalten“, „beinhaltend“, „enthalten“, „enthaltend“ oder eine beliebige Variation davon sollen eine nicht-exklusive Einbeziehung abdecken, so dass ein Prozess, Verfahren, Artikel oder eine Vorrichtung, die eine Liste von Elementen umfassen, haben, beinhalten, enthalten, nicht nur solche Elemente beinhalten, sondern andere Elemente beinhalten können, die nicht ausdrücklich aufgeführt werden, oder solchen Prozessen, Verfahren, Artikeln oder Vorrichtungen inhärent sind. Ein Element, das fortfährt mit „umfasst... ein“, „hat... ein“, „beinhaltet... ein“, „enthält... ein“, schließt nicht, ohne weitere Auflagen, die Existenz zusätzlicher identischer Elemente in dem Prozess, Verfahren, Artikel oder der Vorrichtung aus, die das Element umfassen, haben, beinhalten, enthalten. Die Ausdrücke „eine“ und „ein“ werden als eins oder mehr definiert, sofern hierin nichts anderes explizit festgelegt ist. Die Ausdrücke „im Wesentlichen“, „essentiell“, „ungefähr“, „etwa“ oder eine beliebige andere Version davon wurden als „nahe bei sein“ definiert, wie dem Fachmann auf dem Gebiet klar ist, und in einer nicht begrenzenden Ausführungsform wird der Ausdruck definiert, innerhalb von 10 %, in einer anderen Ausführungsform innerhalb von 5 % in einer anderen Ausführungsform innerhalb von 1 % und in einer anderen Ausführungsform innerhalb von 0,5 % zu sein. Der Ausdruck „gekoppelt“, wie er hierin verwendet wird, wird als „verbunden“ definiert, obwohl nicht notwendigerweise direkt und nicht notwendigerweise mechanisch. Eine Vorrichtung oder Struktur, die in einer bestimmten Art und Weise „konfiguriert“ ist, ist mindestens auf diese Art und Weise konfiguriert, kann aber auch auf mindestens eine Art und Weise konfiguriert sein, die nicht aufgeführt ist.
-
Es ist gewünscht, dass einige Ausführungsformen einen oder mehrere generische oder spezialisierte Prozessoren (oder „Verarbeitungsvorrichtungen“) umfassen, wie zum Beispiel, Mikroprozessoren, digitale Signalprozessoren, kundenspezifische Prozessoren und freiprogrammierbare Feld-Gate-Arrays (FPGAs) und eindeutige gespeicherte Programmanweisungen (die sowohl Software als auch Firmware umfassen), die den einen oder mehrere Prozessoren steuern, um in Verbindung mit bestimmten Nicht-Prozessor-Schaltungen, einige, die meisten oder alle der Funktionen des Verfahrens und/oder der Vorrichtung, die hierin beschrieben werden, zu implementieren. Alternativ können einige oder alle Funktionen durch eine Zustandsmaschine implementiert werden, die über keine gespeicherten Programmanweisungen verfügt, oder in einer oder mehreren anwendungsspezifischen integrierten Schaltungen (ASICs), in denen jede Funktion oder einige Kombinationen von bestimmten der Funktionen, als kundenspezifische Logik implementiert sind. Selbstverständlich kann eine Kombination der zwei Ansätze verwendet werden.
-
Darüber hinaus kann eine Ausführungsform als ein computerlesbares Speichermedium implementiert sein, das über einen darauf gespeicherten computerlesbaren Code zum Programmieren eines Computers (der zum Beispiel einen Prozessor umfasst) verfügt, um ein hierin beschriebenes und beanspruchtes Verfahren durchzuführen. Beispiele solcher computerlesbaren Speichermedien umfassen, ohne darauf beschränkt zu sein: eine Festplatte, eine CD-ROM, eine optische Speichervorrichtung, eine magnetische Speichervorrichtung, einen ROM (Nur-Lese-Speicher), einen PROM (Programmierbarer Lesespeicher), einen EPROM (Löschbarer Programmierbarer Lesespeicher), einen EEPROM (Elektrisch Löschbarer Programmierbarer Lesespeicher) und einen Flash-Speicher. Weiterhin ist zu erwarten, dass ein Fachmann auf dem Gebiet, ungeachtet möglicher erheblicher Anstrengungen und einer großen Designauswahl, die zum Beispiel durch eine zur Verfügung stehende Zeit, der aktuellen Technologie und ökonomische Überlegungen begründet ist, geleitet durch die hierin offenbarten Konzepte und Prinzipien, ohne Weiteres in der Lage ist solche Softwareanweisungen und Programme und ICs mit minimalem Versuchsaufwand zu erzeugen.
-
Die Zusammenfassung der Offenbarung wird zur Verfügung gestellt, um dem Leser zu erlauben, die Natur der technischen Offenbarung schnell zu erkennen. Es wird mit dem Verständnis eingereicht, dass es nicht verwendet wird, um den Geist oder die Bedeutung der Ansprüche zu interpretieren oder zu begrenzen. Zusätzlich ist der vorangehenden ausführlichen Beschreibung zu entnehmen, dass verschiedene Merkmale in verschiedenen Ausführungsformen zusammengruppiert werden, um die Offenbarung zu straffen. Dieses Offenbarungsverfahren soll nicht als ein Reflektieren einer Intention interpretiert werden, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch vorgetragen werden. Vielmehr liegt, wie aus den folgenden Ansprüchen hervorgeht, ein erfinderischer Gegenstand in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform vor. Somit werden die folgenden Ansprüche hierdurch in die ausführliche Beschreibung integriert, wobei jeder Anspruch für sich alleine als ein getrennt beanspruchter Gegenstand steht.