-
HINTERGRUND
-
Das Betriebssystem eines mobilen Computergeräts, z. B. eines Smartphones oder Tablets, kann Dritten die Interaktion mit verschiedenen Aspekten des Betriebssystems und der Anwendungen, die Teil des Betriebssystems sind und über Anwendungsprogrammierschnittstellen (application programming interfaces, APIs) erstellt wurden, ermöglichen. Viele der in einem mobilen Computergerät verwendeten APIs können als sicher betrachtet werden und Anwendungen von dritten Parteien, die auf dem mobilen Computergerät installiert sind, können diese APIs verwenden, ohne um Erlaubnis zu fragen. Bestimmte APIs, zum Beispiel APIs, die den Zugriff auf eine Komponente des Betriebssystems oder der Anwendung ermöglichen, die für den Empfang von SMS-Nachrichten auf dem Computergerät verantwortlich ist, können empfindlicher sein. Anwendungen von dritten Parteien müssen möglicherweise bei einem Benutzer des mobilen Computergeräts zum Beispiel während des Installationsprozesses um Erlaubnis fragen, um auf diese APIs zuzugreifen. Der Benutzer kann entscheiden, ob er der Anwendung einer dritten Partei die Erlaubnis gewährt oder nicht, was es dem Benutzer ermöglicht, zu verhindern, dass manche Anwendungen auf bestimmte Funktionen des mobilen Computergeräts zugreifen. Zum Beispiel kann eine SMS-Nachrichtenanwendung eines Fremdanbieters die Verwendung von APIs erfordern, um auf eingehende SMS-Nachrichten zuzugreifen und ausgehende SMS-Nachrichten zu senden. Der Benutzer kann während der Installation der Anwendung entscheiden, ob er der SMS-Nachricht des Fremdanbieters die Verwendung dieser APIs erlaubt.
-
Manche APIs können als zu gefährlich betrachtet werden, um dem Benutzer des mobilen Computergeräts die Kontrolle darüber zu erlauben, welche Anwendungen von dritten Parteien darauf zugreifen dürfen. Diese eingeschränkten APIs sind möglicherweise nur für Anwendungen zugänglich, die in einem privilegierten Bereich der Systempartition des mobilen Computergeräts installiert sind. Die Anwendungen im privilegierten Bereich müssen möglicherweise während der anfänglichen Einrichtung des Betriebssystems auf dem mobilen Computergerät installiert werden. Ein Hersteller von Smartphones kann zum Beispiel ein System-Build erstellen, dass das Betriebssystem, Plattformkomponenten und Anwendungen beinhaltet, die als Teil des Herstellungsprozesses oder später, wenn das Betriebssystem aktualisiert wird, auf einem Smartphone installiert werden. Die Anwendungen, die als Teil des System-Builds installiert werden, können Systemanwendungen sein, und sie können Zugriff auf die eingeschränkten APIs haben, auf die Anwendungen von dritten Parteien nicht zugreifen dürfen. Es kann schwierig sein, einer Anwendung einer dritten Partei, die nach Installation des Builds installiert wurde, den Zugriff auf diese eingeschränkten APIs zu erlauben. Möglicherweise kann nur die Partei, die für das System-Build verantwortlich ist, zum Beispiel der Hersteller des Smartphones, Systemanwendungen installieren, da diese nur als Teil des System-Builds installiert werden dürfen.
-
KURZE ZUSAMMENFASSUNG
-
Gemäß einer Ausführungsform des offenbarten Gegenstands kann ein Systemaufruf an eine eingeschränkte Systemkomponente von einer Anwendung empfangen werden. Es kann ermittelt werden, dass die Anwendung die Erlaubnis hat, den Systemaufruf an die eingeschränkte Systemkomponenten durchzuführen. Eine Signatur, die mit der Anwendung verbunden ist, kann mithilfe eines öffentlichen Schlüssels von einem geschützten Speicher verifiziert werden. Der öffentliche Schlüssel kann durch ein Computergerät einer Partei, die zur Modifizierung der Daten im geschützten Speicher befugt ist, an den geschützten Speicher gesendet werden. Der eingeschränkten Komponente kann erlaubt werden, eine vom Systemaufruf angegebene Funktion durchzuführen, wenn ein öffentlicher Schlüssel die mit der Anwendung verbundene Signatur erfolgreich verifiziert.
-
Die eingeschränkte Systemkomponente kann eine eingeschränkte API sein. Die SIM-Karte kann den geschützten Speicher beinhalten. Der öffentliche Schlüssel kann vom Computergerät der Partei empfangen werden, die zur Modifizierung der Daten im geschützten Speicher befugt ist. Der öffentliche Schlüssel kann über eine bandexterne Over-the-Air-Aktualisierung empfangen werden. Die Signatur, die mit der Anwendung verbunden ist, kann mithilfe eines privaten Schlüssels aus einem öffentlichen/privaten Schlüsselpaar erstellt werden. Der öffentliche Schlüssel kann Teil des öffentlichen/privaten Schlüsselpaars ein. Das Computergerät der Partei, die zur Modifizierung der Daten im geschützten Speicher befugt ist, kann verwendet werden, um die mit der Anwendung verbundene Signatur mithilfe des privaten Schlüssels zu erstellen. Die Partei, die zur Modifizierung der Daten im geschützten Speicher befugt ist, kann ein Mobilfunkanbieter sein. Die durch den Systemaufruf angegebene Funktion kann eine SMS-Filterung, das Wählen einer Notrufnummer, das Löschen eines Speichers und das Ändern einer Netzwerkzugriffseinstellung sein.
-
Ein zweiter Systemaufruf an die eingeschränkte Systemkomponente kann von einer zweiten Anwendung empfangen werden. Es kann ermittelt werden, dass die zweite Anwendung die Erlaubnis hat, den Systemaufruf an die eingeschränkte Systemkomponenten durchzuführen. Eine zweite Signatur, die mit der Anwendung verbunden ist, kann mithilfe eines öffentlichen Schlüssels von einem geschützten Speicher verifiziert werden. Der öffentliche Schlüssel kann durch ein Computergerät einer Partei, die zur Modifizierung der Daten im geschützten Speicher befugt ist, an den geschützten Speicher gesendet worden sein. Es kann verhindert werden, dass die eingeschränkte Komponente eine vom Systemaufruf angegebene Funktion durchführt, wenn der öffentliche Schlüssel die mit der zweiten Anwendung verbundene zweite Signatur nicht verifiziert. Die zweite Signatur kann mithilfe eines privaten Schlüssels erstellt werden, der nicht Teil desselben öffentlichen/privaten Schlüsselpaars ist, wie der öffentliche Schlüssel vom geschützten Speicher.
-
Bevor der eingeschränkten Systemkomponente erlaubt wird, eine vom Systemaufruf angegebene Funktion durchzuführen, wenn der öffentliche Schlüssel die mit der Anwendung verbundene Signatur erfolgreich verifiziert, kann der Name der Anwendung als auf der Liste der eindeutigen Paketnamen im geschützten Speicher befindlich verifiziert werden. Es kann verhindert werden, dass die eingeschränkte Systemkomponente die Funktion durchführt, wenn die Verifizierung fehlschlägt, oder der eingeschränkten Systemkomponente kann erlaubt werden, die Funktion durchzuführen, wenn die Verifizierung erfolgreich ist.
-
Gemäß einer Ausführungsform des offenbarten Gegenstands sind ein Mittel für den Empfang eines Systemaufrufs an eine eingeschränkte Systemkomponente von einer Anwendung, ein Mittel für die Ermittlung, dass die Anwendung die Erlaubnis hat, den Systemaufruf an die eingeschränkte Systemkomponente durchzuführen, ein Mittel für die Verifizierung einer Signatur, die mit der Anwendung verbunden ist, mithilfe eines öffentlichen Schlüssels von einem geschützten Speicher, wobei der öffentliche Schlüssel durch ein Computergerät einer Partei, die zur Modifizierung von Daten im geschützten Speicher befugt ist, gesendet wurde, ein Mittel, der eingeschränkten Systemkomponente zu erlauben, eine Funktion durchzuführen, die vom Systemaufruf angegeben wird, wenn der öffentliche Schlüssel die mit der Anwendung verbundene Signatur erfolgreich verifiziert, ein Mittel für den Empfang des öffentlichen Schlüssels vom Computergerät von der Partei, die befugt ist, Daten im geschützten Speicher zu modifizieren, ein Mittel für den Empfang eines zweiten Systemaufrufs für die eingeschränkte Systemkomponente von einer zweiten Anwendung, ein Mittel für die Ermittlung, dass die zweite Anwendung die Erlaubnis hat, den Systemaufruf an die eingeschränkte Systemkomponente durchzuführen, ein Mittel für die Verifizierung einer zweiten Signatur, die mit der Anwendung verbunden ist, mithilfe eines öffentlichen Schlüssels von einem geschützten Speicher, wobei der öffentliche Schlüssel durch ein Computersystem einer Partei, die zur Modifizierung der Daten im geschützten Speicher befugt ist, gesendet wurde, ein Mittel zur Verhinderung, dass die eingeschränkte Systemkomponente ein Funktion durchführt, die durch den zweiten Systemaufruf angegeben wird, wenn der öffentliche Schlüssel die zweite Signatur, die mit der zweiten Anwendung verbunden ist, nicht verifiziert, ein Mittel, es der eingeschränkten Systemkomponente zu erlauben, eine Funktion durchzuführen, die durch den Systemaufruf angegeben wird, wenn der öffentliche Schlüssel die mit der Anwendung verbundene Signatur erfolgreich verifiziert, die Verifizierung, dass der Name der Anwendung sich auf einer Liste eindeutiger Paketnamen im geschützten Speicher befindet, und ein Mittel für die Verhinderung, dass die eingeschränkte Systemkomponente die Funktion durchführt, wenn die Verifizierung fehlschlägt, oder es der Systemkomponente zu erlauben, die Funktion durchzuführen, wenn die Verifizierung erfolgreich ist, enthalten.
-
Ein Mittel für die Erzeugung eines öffentlichen/privaten Schlüsselpaars, das einen öffentlichen und privaten Schlüssel beinhaltet, wobei der öffentliche Schlüssel eine Signatur verifiziert, die mithilfe eines privaten Schlüssels erzeugt wurde, ein Mittel für die Erzeugung eines Zertifikats, das die Signatur beinhaltet, die mithilfe des privaten Schlüssels erzeugt wurde, ein Mittel für die Signierung einer Anwendung mit dem Zertifikat, ein Mittel für das Senden der Anwendung, die auf einem mobilen Computergerät installiert werden soll, ein Mittel für das Senden einer Kopie des öffentlichen Schlüssels, der in einem geschützten Speicher des mobilen Computergeräts gespeichert werden soll, ein Mittel für die Erzeugung eines zweiten öffentlichen/privaten Schlüsselpaars, das einen zweiten öffentlichen und einen zweiten privaten Schlüssel beinhaltet, wobei der zweite öffentliche Schlüssel eine zweite Signatur verifiziert, die mithilfe des zweiten privaten Schlüssels erstellt wurde, ein Mittel für das Löschen des öffentlichen Schlüssels aus dem geschützten Speicher des mobilen Computergeräts, ein Mittel für das Entfernen des Zertifikats aus der Anwendung, ein Mittel für die Erzeugung eines zweiten Zertifikats, das die zweite Signatur beinhaltet, ein Mittel für die Signierung der Anwendung mit dem zweiten Zertifikat, um eine aktualisierte Anwendung zu erzeugen, ein Mittel für das Senden der aktualisierten Anwendung an das mobile Computergerät, um die Anwendung zu ersetzen, und ein Mittel für das Senden einer Kopie des zweiten öffentlichen Schlüssels an den geschützten Speicher des mobilen Computergeräts sind ebenfalls enthalten.
-
Hierin beschriebene Systeme und Techniken können die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers erlauben. Weitere Merkmale, Vorteile und Ausführungsformen des offenbarten Gegenstands können aus der Betrachtung der folgenden detaillierten Beschreibung, Zeichnungen und Patentansprüche dargestellt oder offensichtlich werden. Darüber hinaus ist es selbstverständlich, dass sowohl die vorstehende Zusammenfassung als auch die folgende detaillierte Beschreibung Beispiele sind und eine weitere Erklärung bereitstellen sollen, ohne den Geltungsbereich der Patentansprüche einzuschränken.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die begleitenden Zeichnungen, die einbezogen sind, um eine weitere Kenntnis des offenbarten Gegenstands bereitzustellen, sind in diese Spezifikation einbezogen und stellen einen Teil davon dar. Die Zeichnungen veranschaulichen außerdem Ausführungsformen des offenbarten Gegenstands und dienen zusammen mit der detaillierten Beschreibung der Erklärung der Prinzipien der Ausführungsformen des offenbarten Gegenstands. Es wird nicht versucht, strukturelle Details genauer als für eine grundlegende Kenntnis des offenbarten Gegenstands und verschiedener Möglichkeit, wie dieser umgesetzt werden kann, zu zeigen.
-
1 zeigt ein Beispielsystem, das für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands geeignet ist.
-
2 zeigt eine Beispielanordnung für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands.
-
3 zeigt ein Beispiel eines Prozesses für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands.
-
4 zeigt ein Beispiel eines Prozesses für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands.
-
5 zeigt ein Beispiel eines Prozesses für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands.
-
6 zeigt einen Computer gemäß einer Ausführungsform des offenbarten Gegenstandes.
-
7 zeigt eine Netzwerkkonfiguration gemäß einer Ausführungsform des offenbarten Gegenstandes.
-
DETAILLIERTE BESCHREIBUNG
-
Die Beschränkung von Aufrufen von mobilen Systemen mithilfe eines Subscriber Identity Module (SIM) kann Anwendungen, die auf einem mobilen Computersystem installiert sind und nicht Teil des System-Builds waren, erlauben, auf Anwendungsprogrammierschnittstellen (application programming interfaces, APIs) zuzugreifen und Systemaufrufe durchzuführen, die sonst möglicherweise verboten wären. Ein mobiles Computergerät kann ein Betriebssystem beinhalten, das eine Reihe eingeschränkter APIs beinhalten kann, die den Zugriff auf verschiedene sensible Funktionen des Betriebssystems und zugehöriger Komponenten der Plattform des Betriebssystems erlauben. Eingeschränkte APIs können für Anwendungen zugänglich sein, die als Teil eines System-Builds zum Beispiel durch einen Hersteller des mobilen Computergeräts installiert wurden. Um einer Anwendung von einem Dritten, zum Beispiel einem Mobilfunkanbieter, den Zugriff auf eine eingeschränkte API zu erlauben, kann die Anwendung vom Dritten mit einem Zertifikat mithilfe des privaten Schlüssels aus einem öffentlichen/privaten Schlüsselpaar signiert sein. Die Anwendung kann auf dem mobilen Computergerät installiert werden und während des Installationsvorgangs die Erlaubnis anfordern, auf die eingeschränkte API zuzugreifen. Der Benutzer kann sich entscheiden, die Anforderung zu gewähren. Der Dritte kann den öffentlichen Schlüssel aus dem öffentlichen/privaten Schlüsselpaar zu einem geschützten Speicher auf dem mobilen Computergerät übertragen, für das der Dritte zu Modifizierungen befugt sein und die ausschließliche Fähigkeit dazu haben kann. Ein Mobilfunkanbieter kann das öffentliche Schlüsselzertifikat zu einem sicheren Zertifikatspeicher auf der Subscriber Identity Module (SIM)-Karte auf dem mobilen Computergerät übertragen. Wenn eine Anwendung auf dem mobilen Computergerät ausgeführt wird und einen Systemaufruf an die eingeschränkte API durchführt, kann das Betriebssystem des mobilen Computergeräts den öffentlichen Schlüssel aus dem geschützten Speicher verwenden, um die private Schlüsselsignatur im Zertifikat der Anwendung zu verifizieren. Wenn die Verifizierung erfolgreich ist, kann es der Anwendung erlaubt werden, die eingeschränkte API aufzurufen. Die eingeschränkte API kann dann die Funktion durchführen, die durch den Systemaufruf von der Anwendung angefordert wurde.
-
Ein mobiles Computergerät, zum Beispiel ein Smartphone oder ein Tablet, kann ein Betriebssystem ausführen, das Teil einer mobilen Plattform ist. Das Betriebssystem kann APIs und andere Systemkomponenten beinhalten, die anderen Anwendungen auf dem mobilen Computergerät den Zugriff auf Funktionen und Daten erlaubt, die durch das Betriebssystem kontrolliert werden. Einige der Systemkomponenten können eingeschränkte Systemkomponenten sein, z. B. eingeschränkte APIs. Die eingeschränkten APIs in einem Betriebssystem können zugehörige sensible Daten und Funktionen sein. Es kann ein Sicherheitsrisiko sein, einer auf dem mobilen Computergerät installierten Anwendung einer dritten Partei zu erlauben, Systemaufrufe für eingeschränkte APIs durchzuführen. Eine eingeschränkte API kann zum Beispiel eine Funktion beinhalten, die bei Aktivierung den Speicher des mobilen Computergeräts löscht. Eine andere eingeschränkte API kann den Zugriff auf verschiedene mit Telefonie verbundene Funktionen und Daten kontrollieren, zum Beispiel SMS-Nachrichtenfilterung, Anrufen von Notrufnummern und Anzeigen und Ändern von Netzwerkzugriffseinstellungen für den Zugriff auf das Netzwerk eines Mobilfunkanbieters. Einer Anwendung ohne ordnungsgemäße Berechtigung, die einen Systemaufruf an eine eingeschränkte API durchführt, kann der Zugriff auf die eingeschränkte API verweigert werden. Eine Anwendung einer dritten Partei, die auf einem mobilen Computergerät installiert ist, aber nicht Teil des System-Build ist, kann zum Beispiel versuchen, eine eingeschränkte API aufzurufen, um den Speicher des mobilen Computergeräts zu löschen und dabei alle auf dem mobilen Computergerät gespeicherten Daten zu entfernen. Das Betriebssystem kann als Reaktion auf den Empfang des Systemaufrufs von der Anwendung einer dritten Partei eine Sicherheitsausnahme auslösen, die verhindert, dass die Anwendung der dritten Partei die Speicherlöschfunktion der eingeschränkten API verhindert.
-
Möglicherweise möchte ein Dritter eine Anwendung verfügbar machen, die Zugriff auf eine eingeschränkte API hat und die auf dem mobilen Computergerät installiert werden kann, nachdem das System-Build bereits installiert wurde. Zum Beispiel kann das System-Build eines Smartphones einschließlich Anwendung, die Zugriff auf eingeschränkte APIs hat, vom Hersteller des Smartphones installiert worden sein. Das Smartphone kann später für die Verwendung mit einem Mobilfunkanbieter aktiviert werden. Der Mobilfunkanbieter möchte möglicherweise seinen Benutzern die Installation einer Anwendung auf dem Smartphone erlauben, die auf bestimmte eingeschränkte APIs zugreift. Da der Mobilfunkanbieter das System-Build nicht erstellt hat und möglicherweise nicht für zukünftige System-Builds des Smartphones zuständig ist, kann es sein, dass der Mobilfunkanbieter seine Anwendung nicht als Teil des System-Builds installieren lassen kann. Es kann außerdem sein, dass der Mobilfunkanbieter nicht auf zukünftige System-Builds warten möchte, um die Installation der Anwendung mit Zugriff auf eingeschränkte APIs zu erlauben, die nicht Teil des aktuellen System-Builds sind.
-
Der Dritte kann eine Anwendung erstellen, von der der Dritte möchte, dass sie Zugriff auf eine eingeschränkte API auf dem mobilen Computergerät hat, und die Anwendung mit einem Zertifikat mithilfe des privaten Schlüssels aus einem öffentlichen/privaten Schlüsselpaar signieren. Das öffentliche/private Schlüsselpaar kann auf jede geeignete Weise mithilfe aller geeigneten Verschlüsselungstechniken, Systeme und Algorithmen erzeugt werden. Der private Schlüssel kann nur dem Dritten bekannt sein und er kann geheim gehalten werden, um zu verhindern, dass eine andere Partei den Schlüssel erhält, um Anwendungen zu signieren. Wenn die Anwendung heruntergeladen und auf dem mobilen Computergerät installiert wird, kann der Benutzer des mobilen Computergeräts aufgefordert werden, der Anwendung den Zugriff auf die eingeschränkte API zu erlauben. Die Anwendung darf nur installiert werden, wenn der Benutzer die angeforderte Erlaubnis gewährt. Ein Mobilfunkanbieter kann zum Beispiel eine Anwendung erstellen, die eine eingeschränkte Telefonie-API des Betriebssystems eines Smartphones verwendet, um Einstellungen zu lesen und zu schreiben, die den Netzwerkzugriff durch das Smartphone kontrollieren. Ein Benutzer kann die Anwendung auf jede geeignete Weise herunterladen und auf seinem Smartphone installieren, zum Beispiel über einen Anwendungsökosystem-Verkaufskanal, über einen Verkaufskanal, der vom Mobilfunkanbieter bereitgestellt wird, oder durch Herunterladen und Sideloading der Anwendung außerhalb eines Online-Verkaufskanals. Ein Beispiel von Sideloading beinhaltet die Übertragung von Anwendungen und/oder Daten zwischen zwei lokalen Geräten, zum Beispiel zwischen einem Computer und einem mobilen Gerät wie einem Mobiltelefon, Smartphone, PDA, Tablet, tragbaren Media-Player oder E-Reader oder zwischen zwei mobilen Geräten.
-
Während des Installationsvorgangs kann die Anwendung dem Betriebssystem des Smartphones angeben, dass die Anwendung die Erlaubnis für den Zugriff auf die eingeschränkte Telefonie-API benötigt. Das Betriebssystem kann dem Benutzer einen Dialog präsentieren, der es dem Benutzer ermöglicht, der Anwendung die Erlaubnis zum Zugriff zu gewähren und Systemaufrufe für die eingeschränkte Telefonie-API durchzuführen. Die vom Benutzer gewährte Erlaubnis kann nur für ausgewählte Systemanrufe für eingeschränkte APIs gelten, wie von der Anwendung angefordert. Die Anwendung kann zum Beispiel nur die Erlaubnis anfordern und erhalten, eine Teilmenge der Systemaufrufe von einer eingeschränkten API zu verwenden, und sie hat möglicherweise keine Erlaubnis, auf Systemaufrufe von dieser eingeschränkten API außerhalb der Teilmenge zuzugreifen, für die die Erlaubnis angefordert und gewährt wurde.
-
Der Dritte, der für die Erstellung der Anwendung verantwortlich ist, die mit dem privaten Schlüssel signiert ist, kann befugt und auch ausschließlich fähig sein, einen geschützten Speicher auf dem mobilen Computergerät zu modifizieren. Der geschützte Speicher kann jeder geeignete Speicher sein, zum Beispiel der Zertifikatspeicher auf einer SIM-Karte. Ein Mobilfunkanbieter für ein Smartphone kann zum Beispiel die einzige Partei mit der Fähigkeit sein, Daten im Zertifikatspeicher auf einer SIM-Karte im Smartphone zu speichern und zu modifizieren. Der Dritte kann den öffentlichen Schlüssel aus dem öffentlichen/privaten Schlüsselpaar für das Speichern im geschützten Speicher des mobilen Computergeräts senden. Der Mobilfunkanbieter kann zum Beispiel eine Over-the-Air(OTA)-Übertragung des öffentlichen Schlüssels zum Zertifikatspeicher der SIM-Karte des Smartphones bandextern von normalen OTA-Systemaktualisierungen durchführen. Der Dritte kann den öffentlichen Schlüssel zum geschützten Speicher des mobilen Computergeräts zu jeder geeigneten Zeit senden. Ein Mobilfunkanbieter kann zum Beispiel den öffentlichen Schlüssel im Zertifikatspeicher der SIM-Karte des Smartphones speichern, wenn die Anwendung durch den Dritten in Antizipierung der zukünftigen Installation durch den Benutzer des Smartphones erstellt wird, zu dem Zeitpunkt, zu dem die Anwendung auf dem Smartphone installiert wird, wenn die Anwendung erstmals auf dem Smartphone ausgeführt wird oder wenn die Anwendung versucht, ihren ersten Aufruf an eine eingeschränkte API des Betriebssystems des Smartphones durchzuführen. Der öffentliche Schlüssel kann eine Angabe enthalten, welche Anwendungen des öffentlichen Schlüssels zur Verifizierung verwenden werden können.
-
Die Anwendung des Dritten kann auf dem mobilen Computergerät ausgeführt werden und einen Systemaufruf an die eingeschränkte API durchführen. Bevor das Betriebssystem die Funktion durchführt oder der Anwendung den Zugriff auf Daten erlaubt, die mit dem Systemaufruf an die eingeschränkte API verbunden sind, kann das Betriebssystem versuchen, die Berechtigungen und die Signatur der Anwendung zu verifizieren. Das System kann eine Prüfung durchführen, um sicherzustellen, dass der Anwendung die ordnungsgemäßen Berechtigungen zum Beispiel vom Benutzer während der Installation gewährt wurden, um den Systemaufruf an die eingeschränkte API durchzuführen. Wenn die Anwendung die ordnungsgemäßen Berechtigungen hat, kann das Betriebssystem den öffentlichen Schlüssel aus dem geschützten Speicher abrufen und den öffentlichen Schlüssel verwenden, um die Signatur im Zertifikat der Anwendung zu überprüfen, andernfalls kann, die Anwendung nicht die ordnungsgemäßen Berechtigungen hat, der Anwendung der Zugriff auf die eingeschränkte API verweigert werden. Die Verifizierung kann jede geeignete Verschlüsselungstechnik verwenden, zum Beispiel jede Verifizierungstechnik, die mit der Art und Weise verbunden ist, auf die das öffentliche/private Schlüsselpaar erzeugt wurde. Wenn die Signatur mithilfe des öffentlichen Schlüssel verifiziert wird, der angibt, dass die Anwendung mit dem privaten Schlüssel signiert wurde, der mit dem öffentlichen Schlüssel aus dem geschützten Speicher übereinstimmt, kann das Betriebssystem die Funktion durchführen, die vom Systemaufruf an die eingeschränkte API anfordert wurde. Wenn die Signatur nicht verifiziert wird oder wenn es keinen öffentlichen Schlüssel für die Anwendung im geschützten Speicher gibt, kann der Anwendung der Zugriff auf die eingeschränkte API verweigert werden. Der Mangel eines öffentlichen Schlüssels kann angeben, dass der ordnungsgemäße öffentliche Schlüssel vom Dritten noch nicht zum geschützten Speicher gesendet wurde, oder dass die Anwendung von einer Partei erstellt wurde, die nicht die Fähigkeit hat, den geschützten Speicher zu modifizieren.
-
Eine Anwendung, die die Netzwerkzugriffseinstellungen ändert, kann zum Beispiel auf einem Smartphone installiert werden und der Benutzer kann der Anwendung die Erlaubnis gewähren, Systemaufrufe für die eingeschränkte Telefonie-API des Betriebssystems des Smartphones durchzuführen. Die Anwendung wurde möglicherweise von einem Mobilfunkanbieter für das Smartphone erstellt und mit einem Zertifikat mithilfe eines privaten Schlüssels signiert, der vom Mobilfunkanbieter geheim gehalten wird. Der Mobilfunkanbieter kann dann den entsprechenden öffentlichen Schlüssel zum Zertifikatspeicher der SIM-Karte des Smartphones senden. Die Anwendung kann ausgeführt werden und einen Systemaufruf an die eingeschränkte Telefonie-API durchführen, um eine der Netzwerkzugriffseinstellungen zu ändern. Das Betriebssystem kann zuerst prüfen, ob der Anwendung die Erlaubnis gewährt wurde, den Systemaufruf an die eingeschränkte API durchzuführen, indem eine Funktion aktiviert wird, die Änderungen an den Netzwerkzugriffseinstellungen schreibt. Wenn die Erlaubnis gewährt wurde, kann das Betriebssystem den öffentlichen Schlüssel aus dem geschützten Speicher abrufen und den öffentlichen Schlüssel verwenden, um die Signatur des Zertifikats der Anwendung zu verifizieren. Da der öffentliche Schlüssel dem privaten Schlüssel entspricht, der für das Signieren der Anwendung verwendet wurde, kann der öffentliche Schlüssel die Signatur der Anwendung verifizieren. Das Betriebssystem kann es dann der eingeschränkten API erlauben, die vom Systemaufruf angeforderte Funktion durch Schreiben der angegebenen Änderungen an den Netzwerkzugriffseinstellungen durchzuführen.
-
Da der Dritte den privaten Schlüssel geheim halten und die einzige Partei sein kann, die den geschützten Speicher modifizieren kann, können Anwendungen, die vom Dritten erstellt und signiert wurden, auf eingeschränkte APIs auf einem mobilen Computergerät zugreifen. Einer Anwendung, die von einem anderen Dritten erstellt wurde, kann der Zugriff auf die eingeschränkten APIs verweigert werden. Eine Anwendung einer vierten Partei ist möglicherweise nicht mit einem Zertifikat mithilfe eines privaten Schlüssels signiert. In diesem Fall schlägt jeder Versuch durch das Betriebssystem, die Signatur der Anwendung als Reaktion auf einen Systemaufruf an die eingeschränkte API fehl, was zu einer Zugriffsverweigerung auf die eingeschränkte API führt. Eine Anwendung einer vierten Partei könnte mit einem Zertifikat mithilfe eines privaten Schlüssels signiert sein, da jedoch der private Schlüssel, der von der dritten Partei verwendet wird, geheim gehalten wird, kann der private Schlüssel, der von der vierten Partei verwendet wird, nicht derselbe sein, wie der private Schlüssel, der von der dritten Partei verwendet wird. Ein beliebiger öffentlicher Schlüssel, der von der dritten Partei zum geschützten Speicher gesendet wird, kann die Signatur bei einer Anwendung von der vierten Partei möglicherweise nicht verifizieren, da der private Schlüssel, der für die Signierung der Anwendung der vierten Partei verwendet wurde, möglicherweise nicht aus dem öffentlichen/privaten Schlüsselpaar der dritten Partei stammt. Eine vierte Partei kann möglicherweise nicht ihren eigenen öffentlichen Schlüssel in den geschützten Speicher senden, damit er dazu verwendet wird, die Anwendung der vierten Partei zu verifizieren, da die vierte Partei möglicherweise den geschützten Speicher nicht modifizieren kann. Dies kann es einer Partei, die zum Modifizieren des geschützten Speichers eines mobilen Computergeräts befugt ist, ermöglichen, Anwendungen zu erstellen, die Systemaufrufe an eingeschränkte APIs durchführen, und diese Anwendungen außerhalb eines System-Builds installieren zu lassen.
-
Ein Anwendungsentwickler, der nicht mit dem Mobilfunkanbieter für ein Smartphone verbunden ist, kann zum Beispiel eine Anwendung erstellen, die eine eingeschränkte API aufruft, die eine Funktion zum Löschen des Speichers des Smartphones beinhaltet. Die Anwendung kann mit einem Zertifikat mithilfe eines privaten Schlüssels aus einem öffentlichen/privaten Schlüsselpaar signiert werden, der vom Anwendungsentwickler erzeugt wird. Der Benutzer kann die Anwendung installieren und der Anwendung die Berechtigung gewähren, auf die eingeschränkte API zuzugreifen. Wenn die Anwendung ausgeführt wird, kann die Anwendung einen Systemaufruf an die eingeschränkte API durchführen, um die Funktion zu aktivieren, die den Speicher des Smartphones löscht. Das Betriebssystem kann ermitteln, dass die Anwendung die ordnungsgemäßen Berechtigungen hat, den Systemaufruf durchzuführen, und dann versuchen, die Signatur im Zertifikat der Anwendung zu verifizieren. Auf der SIM-Karte des Smartphones kann der öffentliche Schlüssel im Zertifikatspeicher gespeichert sein. Der öffentliche Speicher kann Teil eines öffentlichen/privaten Schlüsselpaars gewesen sein, das vom Mobilfunkanbieter erzeugt wurde, und er kann durch den Mobilfunkanbieter zum Zertifikatspeicher der SIM-Karte gesendet worden sein. Der Anwendungsentwickler hat möglicherweise nicht den privaten Schlüssel, der vom Mobilfunkanbieter erzeugt wurde. Das Betriebssystem kann den öffentlichen Schlüssel von der SIM-Karte verwenden, um zu versuchen, die Signatur des Zertifikats der Anwendung des Anwendungsentwicklers zu verifizieren. Da die Anwendung mit einem privaten Schlüssel aus einem anderen öffentlichen/privaten Schlüsselpaar signiert wurde, als dem öffentlichen Schlüssel, der auf der SIM-Karte gespeichert ist, kann dieser Verifizierungsversuch fehlschlagen und die Anwendung kann daran gehindert werden, den Speicher des Smartphones mithilfe der Funktion der eingeschränkten API zu löschen. Der Anwendungsentwickler hat möglicherweise nicht die Fähigkeit, seinen eigenen öffentlichen Schlüssel auf der SIM-Karte zu speichern. Dies kann es für den Anwendungsentwickler ohne Zusammenarbeit mit dem Mobilfunkanbieter unmöglich machen, das Betriebssystem dazu zu bringen, seine Anwendung zu verifizieren und den Systemaufruf an die eingeschränkte API zu erlauben, da nur der Mobilfunkanbieter öffentliche Schlüssel auf der SIM-Karte speichern kann. Auf diese Weise ist der Zugriff auf die eingeschränkten APIs des Betriebssystems des Smartphones auf Anwendungen beschränkt, die vom Systemersteller installiert wurden, und Anwendungen, die vom Mobilfunkanbieter genehmigt wurden, dessen SIM-Karte sich im Smartphone befindet.
-
Dasselbe öffentliche/private Schlüsselpaar kann für mehrere Installationen derselben Anwendung und für mehrere verschiedene Anwendungen von derselben dritten Partei verwendet werden. Ein Mobilfunkanbieter kann zum Beispiel eine Anwendung erstellen und alle Kopien der Anwendung mit demselben privaten Schlüssel signieren und eine Kopie desselben öffentlichen Schlüssels an jedes mobile Computergerät senden, auf dem die Anwendung installiert ist. Verschiedene öffentliche/private Schlüsselpaare können ebenfalls für mehrere Installationen derselben Anwendung oder für mehrere verschiedene Anwendungen von derselben dritten Partei verwendet werden. Ein Mobilfunkanbieter kann zum Beispiel drei öffentliche/private Schlüsselpaare erstellen, und jedes öffentliche/private Schlüsselpaar mit einer anderen Anwendung verwenden oder mit einer gewissen Anzahl von mehreren Installationen derselben Anwendung.
-
Das öffentliche/private Schlüsselpaar, das von der dritten Partei verwendet wird, kann bei Bedarf ersetzt werden. Die dritte Partei kann zum Beispiel Schlüsselrotation verwenden oder der private Schlüssel kann durchsickern oder gestohlen werden und der Öffentlichkeit verfügbar werden. Die dritte Partei kann ein neues öffentliches/privates Schlüsselpaar erstellen und sie kann den alten öffentlichen Schlüssel aus dem geschützten Speicher eines beliebigen mobilen Computergeräts entfernen, auf dem er sich befindet, und ihn durch den neuen öffentlichen Schlüssel ersetzen. Ein neues Build der Anwendung kann mit dem neuen privaten Schlüssel signiert und Benutzer können gebeten werden, die Version der Anwendung zu aktualisieren, die auf ihren mobilen Computergeräten installiert ist. Die Anwendung kann möglicherweise erst auf eingeschränkte APIs zugreifen, wenn sie aktualisiert wird, da der neue öffentliche Schlüssel beim Verifizieren einer Anwendung, die mit dem alten privaten Schlüssel signiert wurde, zu einem Fehler führen kann. Des Weiteren kann eine Anwendung, die versucht, den durchgesickerten oder gestohlenen privaten Schlüssel zu verwenden, daran gehindert werden, auf die eingeschränkte API zuzugreifen, da der neue öffentliche Schlüssel eine Signatur, die mithilfe des alten privaten Schlüssels erstellt wurde, nicht verifiziert.
-
Neben dem öffentlichen Schlüssel kann eine Liste eindeutiger Paketnamen ebenfalls im geschützten Speicher gespeichert werden. Die Liste der eindeutigen Paketnamen kann identifizieren, welche der Anwendungen von dritten Parteien auf eingeschränkte APIs zugreifen darf. Die dritte Partei kann die Liste der eindeutigen Paketnamen auf dieselbe Weise an den geschützten Speicher senden wie den öffentlichen Schlüssel. Wenn eine Anwendung einen Aufruf an eine eingeschränkte API ausführt, kann das Betriebssystem die Liste der eindeutigen Paketnamen prüfen, um zu ermitteln, ob die Anwendung identifiziert ist, zum Beispiel einen Namen hat, der sich auf der Liste der eindeutigen Paketnamen befindet, neben der Verifizierung der Anwendungssignatur mit dem öffentlichen Schlüssel. Dies kann eine weitere Einschränkung der Anwendungen erlauben, die Systemaufrufe an eingeschränkte APIs durchführen können, da die dritte Partei Namen von Anwendungen zur Liste der eindeutigen Paketnamen hinzufügen oder von ihr streichen kann. Die dritte Partei kann einen Anwendungsnamen von der Liste eindeutiger Paketnamen streichen, was verhindert, dass die Anwendung Systemaufrufe an eingeschränkte APIs durchführt, auch wenn diese Anwendung mit dem privaten Schlüssel signiert wurde, der Teil des öffentlichen/privaten Schlüsselpaars mit dem öffentlichen Schlüssel im geschützten Speicher war.
-
Die Funktionalität der eingeschränkten APIs, die durch eine Anwendung verwendet werden kann, kann begrenzt sein. Eine Partei, die für die Erstellung, Verteilung oder Pflege des Betriebssystems und der Plattform des mobilen Computergeräts verantwortlich ist, kann zum Beispiel angeben, auf welche eingeschränkte APIs und welche Funktionalität eine Anwendung zugreifen kann oder nicht, die von der dritten Partei erstellt wurde. Dies kann dazu führen, dass einige eingeschränkte APIs und bestimmte Funktionalität für alle Anwendungen unzugänglich bleiben, die nicht als Teil des System-Builds installiert wurden.
-
1 zeigt ein Beispielsystem, das für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands geeignet ist. Ein mobiles Computergerät 100 kann eine Anwendung 110, ein System 130, einen Speicher 140 und einen geschützten Speicher 150 beinhalten. Das mobile Computergerät 100 kann jedes geeignete Gerät sein, zum Beispiel ein Computer 20, wie in 6 beschrieben, für die Implementierung der Anwendung 110, des Systems 130, des Speichers 140 und des geschützten Speichers 150. Das mobile Computergerät 100 kann ein einzelnes Computergerät sein oder es kann mehrere verbundene Computergeräte beinhalten, und es kann zum Beispiel ein mobiles Computergerät wie ein Tablet oder Smartphone sein, auf dem ein mobiles Betriebssystem ausgeführt wird, das Teil einer mobilen Plattform sein kann. Das System 130 kann das Betriebssystem des mobilen Computergeräts 100 einschließlich eingeschränkter APIs, z. B. die eingeschränkte API 105, und andere Komponente der Plattform des Betriebssystems beinhalten, zum Beispiel Anwendungen, die als Teil des System-Builds installiert wurden. Die Anwendung 110 kann jede geeignete Anwendung sein, die auf dem mobilen Computergerät 100 installiert sein und ausgeführt werden kann, und es kann eine Anwendung sein, die nicht Teil des System-Builds war. Die Anwendung 110 kann ein Zertifikat 112 beinhalten, das eine Signatur 113 beinhalten kann. Der Speicher 140 kann die Einstellungen 145 auf jede geeignete Weise speichern. Der geschützte Speicher 150 kann den öffentlichen Schlüssel 155 auf jede geeignete Weise speichern.
-
Das System 130 kann das Betriebssystem des mobilen Computergeräts 100 zusammen mit allen anderen Komponente beinhalten, die mit dem Betriebssystem verbunden sind und mit ihm zusammen installiert wurden. Das System 130 kann zum Beispiel auf dem mobilen Computergerät 100 als System-Build installiert sein und es kann ein Betriebssystem, Verbesserungen oder Modifizierungen am Betriebssystem, Komponenten, die Teil der Plattform des Betriebssystems sind, und Anwendungen, die auf einer systemprivilegierten Partition von Speicher 140 des mobilen Computergeräts 100 installiert sein können, beinhalten. Das System 130 kann verschiedene APIs beinhalten, von denen einige eingeschränkte APIs sein können, wie zum Beispiel die eingeschränkte API 135. Die eingeschränkte API 135 kann eine API sein, für die die Partei, die für das Betriebssystem des Systems 130 verantwortlich ist, entschieden hat, den Zugriff zu beschränken. Andere Komponenten von System 130, zum Beispiel das Betriebssystem und Anwendungen auf der systemprivilegierten Partition, können auf die eingeschränkte API 135 zugreifen und deren Funktionalität nutzen, aber anderen Komponenten des mobilen Computergeräts 100 kann der Zugriff auf die eingeschränkte API 135 ohne ordnungsgemäße Anmeldeberechtigungen verweigert werden. Es kann zum Beispiel sein, dass die Anwendung 120 nicht auf die eingeschränkte API 135 zugreifen kann.
-
Die Anwendung 110 kann jede geeignete Anwendung sein, die auf dem mobilen Computergerät installiert sein und ausgeführt werden kann, und sie kann das Zertifikat 112 beinhalten. Die Anwendung 110 kann eine Anwendung sein, die von einer dritten Partei erstellt und verteilt wurde. Während der Installation kann Anwendung 110 mithilfe jedes geeigneten Mechanismus von System 130 fordern, dass der Benutzer des mobilen Computergeräts 100 der Anwendung 110 die Erlaubnis gewährt, Systemaufrufe durchzuführen, die bestimmte Funktionen der eingeschränkten API 135 verwenden. Die Anwendung 110 kann zum Beispiel die Erlaubnis anfordern, eine Funktion der eingeschränkten API 135 aufzurufen, die eine Notrufnummer wählt. Die dritte Partei, die für die Erstellung und Verteilung der Anwendung 110 verantwortlich ist, kann außerdem befugt sein und die ausschließliche Fähigkeit haben, in den geschützten Speicher 150 zu schreiben. Die Anwendung 110 kann das Zertifikat 112 beinhalten, das eine Signatur 113 beinhalten kann. Die Signatur 113 kann mithilfe des privaten Schlüssels eines öffentlichen/privaten Schlüsselpaars erstellt werden, das zum Beispiel von der Partei erzeugt werden kann, die die Anwendung 110 erstellt hat. Der private Schlüssel kann geheim gehalten werden. Das Zertifikat 112 und die Signatur 113 können verwendet werden, um es der Anwendung 110 zu erlauben, Systemaufrufe an die eingeschränkte API 135 durchzuführen. Die Anwendung 110 kann zum Beispiel eine Anwendung sein, die von einem Mobilfunkanbieter erstellt wurde, signiert mit einem privaten Schlüssel von einem öffentlichen/privaten Schlüsselpaar, das vom Mobilfunkanbieter mithilfe eines beliebigen geeigneten Verschlüsselungssystems erzeugt wurde.
-
Der geschützte Speicher 150 kann jede geeignete Kombination aus Hardware und Software für die Implementierung von Speicher auf dem mobilen Computergerät 100 sein. Der geschützte Speicher 150 kann zum Beispiel die SIM-Karte eines Smartphones oder Tablets sein. Der geschützte Speicher 150 kann möglicherweise nur von der dritten Partei modifiziert werden, die für die Erstellung der Anwendung 110 verantwortlich ist. Der Mobilfunkanbieter kann zum Beispiel fähig sein, Daten zu modifizieren, die im geschützten Speicher 150 gespeichert sind. Der öffentliche Schlüssel 155 kann im geschützten Speicher 150 durch die dritte Partei mit der ausschließlichen Fähigkeit gespeichert werden, den geschützten Speicher 150 zu modifizieren. Der Mobilfunkanbieter kann zum Beispiel den öffentlichen Schlüssel 155 vom öffentlichen/privaten Schlüsselpaar für das Speichern zum geschützten Speicher 150 senden, der eine SIM-Karte sein kann, die vom Mobilfunkanbieter ausgegeben wurde. Der öffentliche Schlüssel 155 kann zum Beispiel mithilfe einer Over-the-Air-Datenübertragung zum geschützten Speicher 150 gespeichert werden. Der öffentliche Schlüssel 155 kann von demselben öffentlichen/privaten Schlüsselpaar stammen wie der private Schlüssel, der verwendet wurde, um die Signatur 113 für die Anwendung 110 zu erstellen.
-
Das System 130 kann den öffentlichen Schlüssel 155 aus dem geschützten Speicher 150 lesen. Wenn die Anwendung 110 zum Beispiel einen Systemaufruf an die eingeschränkte API 135 durchführt, kann das System 130 den öffentlichen Schlüssel 155 aus dem geschützten Speicher 150 lesen. Das System 130 kann den öffentlichen Schlüssel 155 für den Versuch verwenden, die Signatur 113 im Zertifikat 112 der Anwendung 110 zu verifizieren, um zu ermitteln, ob die Anwendung 110 den Systemaufruf an die eingeschränkte API 135 durchführen darf. Der öffentliche Schlüssel 155 kann verwendet werden, um die Signatur 113 auf jede geeignete Weise zu verifizieren, zum Beispiel mithilfe einer Verschlüsslungstechnik auf Basis der Verschlüsselungstechnik, die zur Erzeugung des öffentlichen/privaten Schlüsselpaars des öffentlichen Schlüssels 155 und des privaten Schlüssels verwendet wurde, der zur Erstellung der Signatur 113 verwendet wurde. Der Systemaufruf kann von der Anwendung 110 erlaubt werden, und die aufgerufene Funktion der eingeschränkten API 135 kann durchgeführt werden, wenn die Signatur 113 mit dem öffentlichen Schlüssel 155 erfolgreich verifiziert wird, da dies angeben kann, dass die Anwendung 110 durch die dritte Partei erstellt wurde, die außerdem befugt ist, den geschützten Speicher 150 zu modifizieren.
-
Die Einstellungen 145 können jede geeignete Einstellung für das mobile Computergerät 100 beinhalten, die ohne Verwendung einer eingeschränkten API nicht modifiziert werden kann. Die Einstellungen 145 können zum Beispiel die Netzwerkzugriffseinstellungen für das Netzwerk eines Mobilfunkanbieters sein. Die Einstellungen 145 können als Teil eines System-Builds erstellt und in Speicher 140 gespeichert werden, wenn das System-Build einschließlich des Systems 130 auf dem mobilen Computergerät 100 installiert wird. Die Einstellungen 145 können möglicherweise nur durch Verwendung einer eingeschränkten API modifiziert werden, zum Beispiel der eingeschränkten API 135, und sonst schreibgeschützt sein. Anwendung 110 kann möglicherweise die eingeschränkte API 135 verwenden, um die Einstellungen 145 auf Basis der Verifizierung der Signatur 113 mit dem öffentlichen Schlüssel 155 durch das System 130 zu modifizieren, wenn die Anwendung 110 einen Systemaufruf an die eingeschränkte API 135 sendet.
-
Die Einstellungen 145 können zum Beispiel Netzwerkzugriffseinstellungen für das Netzwerk eines Mobilfunkanbieters sein. Der Mobilfunkanbieter kann die Anwendung 110 so erstellen, dass sie die Einstellungen 145 modifizieren kann. Die Anwendung 110 kann mithilfe von Zertifikat 112 mit Signatur 113 signiert werden, die mithilfe des privaten Schlüssels eine öffentlichen/privaten Schlüsselpaars erstellt werden kann. Wenn sie auf dem mobilen Computergerät 100, zum Beispiel einem Smartphone, installiert ist, kann die Anwendung 110 die Erlaubnis vom Benutzer anfordern, auf die eingeschränkte API 135 zuzugreifen, die die eingeschränkte API sein kann, die Funktionen für die Modifizierung der Netzwerkzugriffseinstellungen in den Einstellungen 145 beinhaltet. Der Benutzer kann die angeforderte Erlaubnis gewähren. Der Mobilfunkanbieter kann den öffentlichen Schlüssel 155, der von demselben öffentlichen/privaten Schlüsselpaar wie der private Schlüssel stammt, der zum Erstellen der Signatur 113 verwendet wurde, an den geschützten Speicher 150 senden, der eine SIM-Karte des mobilen Computergeräts 100 sein kann. Die Anwendung 110 kann ausgeführt werden und einen Systemaufruf an die eingeschränkte API 135 durchführen, der die Implementierung einer Funktion zur Modifizierung der Netzwerkeinstellung in den Einstellungen 145 anfordert. Das System 130 kann den öffentlichen Schlüssel 155 verwenden, um die Signatur 113 der Anwendung 110 zu verifizieren. Da der öffentliche Schlüssel 155 möglicherweise vom selben öffentlichen/privaten Schlüsselpaar stammt wie der private Schlüssel, der zum Erstellen der Signatur 113 verwendet wurde, kann die Anwendung 110 verifiziert und der Systemaufruf an die eingeschränkte API 135 kann erlaubt werden. Die eingeschränkte API 135 kann dann die Modifizierung an den Netzwerkzugriffseinstellungen in den Einstellungen 145 wie von der Anwendung 110 angefordert implementieren. Da nur der Mobilfunkanbieter einen öffentlichen Schlüssel im geschützten Speicher 150, zum Beispiel der SIM-Karte des Smartphones, speichern kann, kann nur der Mobilfunkanbieter eine Anwendung erstellen, die außerhalb des System-Builds installiert werden und dennoch die eingeschränkte API 135 verwenden kann, um die Einstellungen 145 zu modifizieren.
-
2 zeigt eine Beispielanordnung für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands. Die Anwendung 110 kann von einer dritten Partei, zum Beispiel einem Mobilfunkanbieter, erstellt und auf einem Anbieterserver 200 gespeichert werden. Der Anbieterserver 200 kann jedes geeignete Serversystem sein, das von einer dritten Partei, z. B. dem Mobilfunkanbieter, für die Erstellung und Verteilung von Anwendungen verwendet wird. Die Anwendung 110 kann eine Anwendung sein, die zur Verwendung der Funktionen der eingeschränkten API 135 des Systems 130 erstellt wurde.
-
Ein öffentliches/privates Schlüsselpaar 210, das den öffentlichen Schlüssel 155 und den privaten Schlüssel 215 beinhaltet, kann durch den Anbieterserver 200 erstellt werden. Der Anbieterserver 200 kann jede geeignete Verschlüsselungstechnik verwenden, um das öffentliche/private Schlüsselpaar 210 zu erstellen, und der private Schlüssel 215 kann geheim gehalten werden, z. B. sicher auf dem Anbieterserver 200 gespeichert und keinem öffentlichen Zugriff ausgesetzt. Der private Schlüssel 215 kann verwendet werden, um die Signatur 113 auf jede beliebige geeignete Weise zu erstellen, und die Signatur 113 kann als Teil des Zertifikats 112 gespeichert werden. Das Zertifikat 112 mit der Signatur 113 kann verwendet werden, um die Anwendung 110 zu signieren. Der öffentliche Schlüssel 155 kann vom Anbieterserver 200 zum geschützten Speicher 150 des mobilen Computergeräts 100 gesendet werden.
-
Die Anwendung 110 kann auf jede geeignete Weise heruntergeladen und auf dem mobilen Computergerät 100 installiert werden. Die Anwendung 110 kann zum Beispiel direkt vom Anbieterserver 200 vom Verkaufskanal eines Anwendungsökosystems heruntergeladen werden, der zum Beispiel auch mit der Partei verbunden sein kann, die für die Erstellung des Betriebssystems des Systems 130 verantwortlich ist, oder sie kann auf dem mobilen Computergerät 100 zum Beispiel durch die Partei installiert werden, die Anbieterserver 200 betreibt. Ein Mobilfunkanbieter kann zum Beispiel die Anwendung 110 auf allen Smartphones installieren, die vom Mobilfunkanbieter direkt verkauft werden, oder für die Verwendung im Netzwerk des Mobilfunkanbieters aktiviert werden. Während der Installation kann Anwendung 110 fordern, dass der Benutzer des mobilen Computergeräts 100 der Anwendung 110 die Erlaubnis gewährt, die Funktionen der eingeschränkten API 135 zu verwenden. Der Benutzer kann der Anwendung 110 die angeforderte Erlaubnis gewähren.
-
Die Anwendung 110 kann auf dem mobilen Computergerät 100 ausgeführt werden. Der Benutzer kann zum Beispiel die Anwendung 110 initiieren oder die Anwendung 110 kann beim Starten des mobilen Computergeräts 100 oder als Reaktion zum Beispiel auf Anweisungen initiiert werden, die extern, zum Beispiel vom Mobilfunkanbieter, empfangen wurden. Die Anwendung 110 kann einen Systemaufruf an die eingeschränkte API 135 durchführen. Die Anwendung 110 kann zum Beispiel versuchen, eine Funktion der eingeschränkten API 135 zu verwenden, die die Netzwerkzugriffseinstellungen ändert, die in den Einstellungen 145 gespeichert sind.
-
Das System 130 kann den Systemaufruf von der Anwendung 110 an die eingeschränkte API 135 empfangen. Das System 130 kann ermitteln, dass der Anwendung 110 die Erlaubnis gewährt wurde, den Systemaufruf durchzuführen, zum Beispiel weil der Benutzer die Erlaubnis während der Installation der Anwendung 110 gewährt hat. Das System 130 kann dann den öffentlichen Schlüssel 155 vom geschützten Speicher 150 abrufen, in dem der öffentlichen Schlüssel 155 nach Empfang vom Anwendungsserver 200 gespeichert wurde. Der öffentliche Schlüssel 155 kann verwendet werden, um die Verifizierung der Signatur 113 im Zertifikat 112 der Anwendung 110 zu versuchen. Da der öffentliche Schlüssel 155 Teil des öffentlichen/privaten Schlüsselpaars 210 war, der zusammen mit dem privaten Schlüssel 215 verwendet wurde, um die Signatur 113 zu erstellen, kann die Anwendung 110 vom System 130 verifiziert werden.
-
Das System 130 kann das Fortsetzen des Systemaufrufs an die eingeschränkte API 135 nach Verifizierung der Anwendung 110 erlauben und der Anwendung 110 Zugriff auf die eingeschränkte API 135 gewähren. Die eingeschränkte API 135 kann jedwede Funktion durchführen, die durch die Anwendung 110 im Systemaufruf angefordert wurde. Die eingeschränkte API 135 kann zum Beispiel verwendet werden, um angeforderte Modifizierungen an den Einstellungen 145 durchzuführen, die die Netzwerkzugriffseinstellungen für den Mobilfunkanbieter sein können, der den Anbieterserver 200 betreibt.
-
Nachfolgende Systemaufrufe von der Anwendung 110 an die eingeschränkte API 135 können es erfordern, dass System 130 die Anwendung 110 auf Basis des öffentlichen Schlüssels 155 und der Signatur 113 erneut verifiziert. Das System 130 kann sich außerdem merken, dass die Anwendung 110 verifiziert wurde, und es kann der Anwendung 110 erlauben, ähnliche Systemaufrufe wie den Systemaufruf, der zur ursprünglichen Variation führte, für einen gewissen angegebenen Zeitraum durchzuführen, bevor es die Anwendung 110 erneut verifiziert.
-
Die Anwendung 220 kann eine Anwendung auf dem mobilen Computergerät 100 sein, die nicht Teil des System-Build war und die nicht von der Partei erstellt wurde, die den Anbieterserver 200 betreibt. Die Anwendung 220 kann zum Beispiel eine Anwendung von einem Anwendungsentwickler sein, der nicht mit dem Mobilfunkbetreiber verbunden ist, der den Anbieterserver 200 betreibt. Die Anwendung 220 kann mithilfe von Zertifikat 222 mit einer Signatur 223 signiert sein. Die Signatur 223 kann mithilfe eines privaten Schlüssels erstellt worden sein, der kein privater Schlüssel 215 vom öffentlichen/privaten Schlüsselpaar 210 war.
-
Die Anwendung 220 kann einen Systemaufruf an die eingeschränkte API 135 durchführen. Das System 130 kann versuchen, die Anwendung 220 auf Basis der Signatur 223 im Zertifikat 222 mithilfe des öffentlichen Schlüssels 155 zu verifizieren. Da die Signatur 223 mithilfe eines privaten Schlüssels erstellt wurde, der nicht der private Schlüssel 215 war, kann die Verifizierung der Signatur 223 mit dem öffentlichen Schlüssel 155 fehlschlagen. Das System 130 kann der Anwendung 220 den Zugriff auf die eingeschränkte API 135 verweigern, zum Beispiel indem es einen Systemfehler ausgibt, und es kann verhindern, dass die eingeschränkte API 135 den Systemaufruf empfängt oder die Funktion durchführt, die vom Systemaufruf angefordert wird. Dies kann sicherstellen, dass nur Anwendungen, die vom Anbieterserver 200 stammen und mit dem privaten Schlüssel 215 signiert sind, Systemaufrufe an die eingeschränkte API 135 durchführen können, da die Partei, die den Anbieterserver 200 betreibt, die Partei sein kann, die befugt ist und die ausschließliche Fähigkeit hat, den geschützten Speicher 150 zu modifizieren, um einen öffentlichen Schlüssel, zum Beispiel den öffentlichen Schlüssel 155, im geschützten Speicher 150 zu speichern.
-
3 zeigt eine Beispielanordnung für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands. Bei 300 kann ein öffentliches/privates Schlüsselpaar erzeugt werden. Eine dritte Partei, zum Beispiel ein Mobilfunkanbieter, kann zum Beispiel jede geeignete Verschlüsselungstechnik verwenden, um das öffentliche/private Schlüsselpaar 210 einschließlich öffentlichen Schlüssel 155 und privaten Schlüssel 215 zu erzeugen. Das öffentliche/private Schlüsselpaar 210 kann zum Beispiel auf dem Anbieterserver 200 gespeichert werden. Der private Schlüssel 215 kann sicher gespeichert und er kann geheim gehalten werden, um seine Verwendung durch eine andere Partei als die dritte Partei, die den Anbieterserver 200 betreibt, zu verhindern. Das öffentliche/private Schlüsselpaar 210 kann auch auf jede andere geeignete Weise erhalten werden. Zum Beispiel kann eine Partei, die für das Betriebssystem in System 130 verantwortlich ist, das öffentliche/private Schlüsselpaar 210 für Anbieterserver 200 erzeugen.
-
Bei 302 kann eine Anwendung mit dem privaten Schlüssel signiert werden. Die Anwendung 110 kann zum Beispiel von der dritten Partei erstellt werden, die den Anbieterserver 200 betreibt. Die Anwendung 110 kann mit dem Zertifikat 112 signiert werden, das die Signatur 113 beinhalten kann, die mithilfe des privaten Schlüssels 215 vom öffentlichen/privaten Schlüsselpaar 210 erstellt wurden. Die Anwendung 110 kann auf jede geeignete Weise erstellt werden, zum Beispiel an jedem geeigneten Punkt während oder nach Erstellung der Anwendung 110. Die Anwendung 110 kann Funktionalität beinhalten, die Systemaufrufe an die eingeschränkte API 135 durchführt.
-
Bei 304 kann die Anwendung zur Installation gesendet werden. Die Anwendung 110 kann für die Installation zum Beispiel vom Anbieterserver 200 direkt zum mobilen Computergerät 100 gesendet werden. Der Benutzer des mobilen Computergeräts 100 kann das Herunterladen und die Installation der Anwendung 110 initiieren oder die Anwendung 110 kann durch die dritte Partei, zum Beispiel eine Mobilfunkanbieter, installiert werden, während die dritte Partei die Kontrolle über das mobile Computergerät 100 hat, zum Beispiel bevor das mobile Computergerät 100 verkauft wurde. Die Anwendung 110 kann auch zu einem Verkaufskanal für ein Anwendungsökosystem zur Verteilung gesendet werden. Die Partei, die für das Betriebssystem von System 130 verantwortlich ist, kann zum Beispiel ein Anwendungsökosystem mit einem Verkaufskanal als Teil der Plattform für das Betriebssystem einbeziehen. Die Anwendung 110 kann vom Verkaufskanal heruntergeladen und auf dem mobilen Computergerät 100 installiert werden. Die Anwendung 110 kann auch durch Sideloading auf das mobile Computergerät 100 gelangen.
-
Bei 306 kann der öffentliche Schlüssel zum geschützten Speicher gesendet werden. Der Anbieterserver 200 kann zum Beispiel eine Kopie des öffentlichen Schlüssels 155 direkt zum mobilen Computergerät 100 zur Speicherung im geschützten Speicher 150 übertragen. Die Partei, die den Anbieterserver 200 betreibt, zum Beispiel ein Mobilfunkanbieter, kann die einzige Partei mit der Fähigkeit sein, Daten im geschützten Speicher 150, der zum Beispiel eine vom Mobilfunkanbieter ausgegebene SIM-Karte sein kann, zu modifizieren und zu speichern. Der öffentliche Schlüssel 155 kann durch das mobile Computergerät 100 im geschützten Speicher 150 gespeichert werden. Möglicherweise kann keine andere Partei einen andere öffentlichen Schlüssel im geschützten Speicher 150 speichern oder den öffentlichen Schlüssel 155 vom geschützten Speicher 150 entfernen. Der öffentliche Schlüssel 155 kann zu jeder geeigneten Zeit an das mobile Computergerät 100 gesendet werden. Der öffentliche Schlüssel 155 kann zum Beispiel nach Erzeugung, nach Installation der Anwendung 110 auf dem mobilen Computergerät 100 oder nach Durchführung eines Systemaufrufs an die eingeschränkte API 135 durch die Anwendung 110 gesendet werden.
-
4 zeigt eine Beispielanordnung für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands. Bei 400 kann eine Anwendung empfangen werden. Das mobile Computergerät 100 kann zum Beispiel die Anwendung 110 von jeder geeigneten Quelle empfangen, zum Beispiel direkt vom Anbieterserver 200, von einem Verkaufskanal für ein Anwendungsökosystem, der mit dem Betriebssystem für das System 130 verbunden ist, von einem Verkaufskanal für ein anderes Anwendungsökosystem oder über eine Kurzstreckenübertragung, zum Beispiel über eine USB- oder WiFi-Verbindung zu einem Computergerät, das eine Kopie der Anwendung 110 hat, die durch Sideloading auf das mobile Computergerät 100 gelangen kann.
-
Bei 402 kann eine Auswahl empfangen werden, der Anwendung Zugriff auf eine eingeschränkte API zu gewähren. Die Anwendung 110 kann zum Beispiel auf dem mobilen Computergerät 100 installiert werden. Während der Installation kann die Anwendung 110 über das System 130 die Erlaubnis anfordern, auf die eingeschränkte API 135 zuzugreifen. Der Benutzer des mobilen Computergeräts 100 kann auswählen, die Erlaubnis zu gewähren, und es der Anwendung 110 erlauben, Systemaufrufe an die eingeschränkte API 135 zu senden. Die Erlaubnis kann von mehreren eingeschränkten APIs angefordert und gewährt werden und sie kann außerdem auf bestimmte Funktionen verschiedener APIs begrenzt sein. Die eingeschränkte API 135 kann zum Beispiel sechs Funktionen durchführen und der Anwendung 110 kann nur die Erlaubnis erteilt werden, drei spezifische Funktionen von diesen sechs Funktionen zu verwenden.
-
Bei 404 kann die Anwendung installiert werden. Die Anwendung 110 kann die Installation zum Beispiel auf dem mobilen Computergerät 100 durchführen, nachdem ihr die Erlaubnis gewährt wurde, auf die eingeschränkte API 135 zuzugreifen. Die Anwendung 110 darf nicht installiert werden, wenn die Erlaubnis nicht gewährt wurde, da die Anwendung 110 ohne Erlaubnis, auf die eingeschränkte API 135 zuzugreifen, möglicherweise nicht ordnungsgemäß funktioniert.
-
Bei 406 kann ein öffentlicher Schlüssel empfangen werden. Der öffentliche Schlüssel 155 kann zum Beispiel auf dem mobilen Computergerät 100 empfangen werden. Der öffentliche Schlüssel 155 kann über eine bandexterne Over-the-Air-Aktualisierung empfangen werden, die zum Beispiel vom Anbieterserver 200 gesendet wird. Der öffentliche Schlüssel 155 kann gleichzeitig mit dem Empfang der Anwendung 110, während oder nach der Installation der Anwendung 110 oder zu jeder anderen geeigneten Zeit empfangen werden.
-
Bei 408 kann der öffentliche Schlüssel im geschützten Speicher gespeichert werden. Der öffentliche Schlüssel 155 kann zum Beispiel im geschützten Speicher 150 des mobilen Computergeräts 100 gespeichert werden. Der öffentliche Schlüssel kann mit Anweisungen zum Speichern des öffentlichen Schlüssels im geschützten Speicher 150 empfangen werden, der zum Beispiel eine SIM-Karte sein kann. Der öffentliche Schlüssel 155 kann außerdem direkt in den geschützten Speicher 150 geschrieben werden, da die Partei, die den Anbieterserver 200 betreibt, fähig sein kann, den geschützten Speicher 150 außerhalb des Systems 130 direkt zu adressieren. Die Partei, die den Anbieterserver 200 betreibt, zum Beispiel ein Mobilfunkanbieter, kann die einzige Partei sein, die in den geschützten Speicher 150 im mobilen Computergerät 100 schreiben oder ihn modifizieren kann.
-
5 zeigt eine Beispielanordnung für die Beschränkung von Systemaufrufen mithilfe eines geschützten Speichers gemäß einer Implementierung des offenbarten Gegenstands. Bei 500 kann ein Systemaufruf an eine eingeschränkte API von einer Anwendung empfangen werden. Das System 130 kann zum Beispiel einen Systemaufruf an die eingeschränkte API 135 von der Anwendung 110 empfangen. Die Anwendung 110, die auf dem mobilen Computergerät 100 ausgeführt wird, kann versuchen, eine gewisse Funktionalität der eingeschränkten API 135 zu verwenden, zum Beispiel Löschen des Speichers 140, Wählen einer Notrufnummer, Durchführen von SMS-Filterung oder Schreiben in die Netzwerkzugriffseinstellungen in den Einstellungen 145.
-
Bei 502 kann die Erlaubnis für den Zugriff auf die eingeschränkte API geprüft werden. Das System 130 kann zum Beispiel prüfen, um sicherzustellen, dass die Anwendung 110 die Berechtigung hat, Systemaufrufe an die eingeschränkte API 135 durchzuführen und den bestimmten Systemaufruf durchzuführen, den die Anwendung 110 durchführt. Die Erlaubnis wurde während der Installation der Anwendung 110 gewährt, zum Beispiel auf Basis einer Auswahl, die vom Benutzer getroffen wurde.
-
Bei 504 kann eine Signatur der Anwendung mit einem öffentlichen Schlüssel verifiziert werden. Die Signatur 113 im Zertifikat 112, die zum Signieren der Anwendung 110 verwendet wurde, kann zum Beispiel durch den öffentlichen Schlüssel 155 verifiziert werden. Die Signatur 113 kann mithilfe des privaten Schlüssels 215 erstellt worden sein, der ein Teil des öffentlichen/privaten Schlüsselpaars 210 ist, zusammen mit dem öffentlichen Schlüssel 155, der auf dem Anbieterserver 200 erzeugt wurde. Die Anwendung 110 kann mit dem privaten Schlüssel 215 vor Verteilung an das mobile Computergerät 100 signiert worden sein. Der öffentliche Schlüssel 155 kann vom geschützten Speicher 150 durch das System 130 abgerufen werden, dass dann den öffentlichen Schlüssel 155 verwenden kann, um die Signatur 113 zu verifizieren. Die Signatur 113 kann verifiziert werden, da die Signatur 113 mithilfe des privaten Schlüssels 215 erstellt wurde. Dies kann sicherstellen, dass nur die Partei, die zum Schreiben in den und zum Modifizieren des geschützten Speichers 150 befugt ist, Anwendungen verteilen kann, die für den Zugriff auf die eingeschränkte API 135 verifiziert werden können. Keine andere Partei kann ihren öffentlichen Schlüssel in den geschützten Speicher 150 platzieren, sodass eine Anwendung, die mithilfe eines anderen privaten Schlüssels als dem privaten Schlüssel 215 signiert wurde, nicht verifiziert wird, da der öffentliche Schlüssel 155 nur eine Signatur verifiziert, die mithilfe des privaten Schlüssels 215 verifiziert wurde. Ein Mobilfunkanbieter kann zum Beispiel die einzige Partei sein, die einen öffentlichen Schlüssel auf der SIM-Karte eines Smartphones speichern kann. Der Mobilfunkanbieter kann Anwendungen erstellen und verteilen, die eingeschränkte APIs verwenden können, die mit dem privaten Schlüssel des Mobilfunkanbieters signiert sind und mithilfe des übereinstimmenden öffentlichen Schlüssels verifiziert werden, der durch den Mobilfunkanbieter in der SIM-Karte des Smartphones gespeichert wird.
-
Bei 506 kann die vom Systemaufruf angeforderte API-Funktion durchgeführt werden. Die Anwendung 110 kann zum Beispiel einen Systemaufruf an die eingeschränkte API 135 durchgeführt haben, Änderungen an den Netzwerkzugriffseinstellungen in den Einstellungen 145 durchzuführen. Das System 130 kann die eingeschränkte API 135 verwenden, um die Änderungen zu implementieren, da die Anwendung 110 die Erlaubnis hat, die eingeschränkte API 135 zu verwenden, und sie mithilfe des öffentlichen Schlüssels 155 vom geschützten Speicher 150 verifiziert wurde.
-
Ausführungsformen des hierin offenbarten Gegenstands können in einer Vielzahl von Komponenten und Netzwerkarchitekturen implementiert und mit ihnen verwendet werden. 6 ist ein Beispielcomputersystem 20, das für die Implementierung von Ausführungsformen des hierin offenbarten Gegenstands geeignet ist. Der Computer 20 beinhaltet einen Bus 21, der wichtige Komponenten des Computers 20 miteinander verbindet, zum Beispiel einen oder mehrere Prozessoren 24, Speicher 27, z. B. RAM, ROM, Flash-RAM oder ähnliches, einen Eingangs-/Ausgangscontroller 28 und festen Speicher 23, z. B. eine Festplatte, Flash-Speicher, ein SAN-Gerät oder ähnliches. Es ist selbstverständlich, dass andere Komponenten enthalten sein können oder nicht, z. B. eine Benutzeranzeige, zum Beispiel ein Anzeigebildschirm über einen Displayadapter, Benutzereingabeschnittstellen wie Controller und zugehörige Benutzereingabegeräte wie eine Tastatur, eine Maus, ein Touchscreen oder ähnliches, und andere Komponenten, die Fachleuten für die Verwendung in oder in Verbindung mit Allzweck-Computersystemen bekannt sind.
-
Der Bus 21 ermöglicht die Datenkommunikation zwischen dem zentralen Prozessor 24 und dem Speicher 27. Der RAM ist im Allgemeinen der Hauptspeicher, in den das Betriebssystem und die Anwendungsprogramme geladen werden. Der ROM oder Flash-Speicher kann neben anderem Code das Basic Input-Output System (BIOS) beinhalten, das grundlegende Hardwareoperationen steuert, zum Beispiel die Interaktion mit Peripheriekomponenten. Anwendungen, die sich in Computer 20 befinden, werden im Allgemeinen in einem computerlesbaren Medium, zum Beispiel dem festen Speicher 23 und/oder dem Arbeitsspeicher 27, einem optischen Laufwerk, einem externen Speichermechanismus oder ähnlichem, gespeichert und es wird über diese auf sie zugegriffen.
-
Jede dargestellte Komponente kann in Computer 20 enthalten sein oder sie kann getrennt sein und es kann über andere Schnittstellen auf sie zugegriffen werden. Andere Schnittstellen, wie Netzwerkschnittstelle 29, können eine Verbindung zu Remote-Systemen und Geräten über eine Telefonverbindung, drahtgebundene oder drahtlose LAN- oder WAN-Verbindung, proprietäre Netzwerkverbindung oder ähnliches bereitstellen. Die Netzwerkschnittstelle 29 kann es zum Beispiel dem Computer ermöglichen, mit anderen Computern über eines oder mehrere LANs oder WANs zu kommunizieren, wie in 7 dargestellt.
-
Viele andere Geräte oder Komponenten (nicht dargestellt) können auf ähnliche Weise verbunden sein, zum Beispiel Dokumentscanner, Digitalkameras, Hilfs-, Ergänzungs- oder Backupsysteme oder ähnliches. Dagegen müssen nicht alle in 6 dargestellten Komponenten vorhanden sein, um die vorliegenden Offenbarung umzusetzen. Die Komponenten können auf andere Weise als dargestellt miteinander verbunden sein. Der Betrieb eines Computers, wie dem in 6 dargestellten, ist Fachleuten allgemein bekannt und wird in dieser Anwendung nicht genauer erörtert. Code zum Implementierung der vorliegenden Offenbarung kann in einem computerlesbaren Speichermedium gespeichert werden, zum Beispiel einem oder mehreren Arbeitsspeichern 27, festem Speicher 23, Remote-Speicherorten oder jedem beliebigem Speichermechanismus, der Fachleuten bekannt ist.
-
7 zeigt eine Beispielanordnung gemäß einer Ausführungsform des offenbarten Gegenstands. Einer oder mehrere Clients 10, 11, zum Beispiel lokale Computer, Smartphones, Tablet-Computergeräte, Remote-Services und ähnliches, können über eines oder mehrere Netzwerke 7 mit anderen Geräten verbunden sein. Das Netzwerk kann ein lokales Netzwerk, ein WAN, das Internet oder jedes andere geeignete Kommunikationsnetzwerk oder -netzwerke sein und es kann auf jeder geeigneten Plattform implementiert sein, einschließlich drahtgebundener und/oder drahtloser Netzwerke. Die Clients 10, 11 können mit einem oder mehreren Computersystemen kommunizieren, zum Beispiel Verarbeitungseinheiten 14, Datenbanken 15 und Benutzerschnittstellensystemen 13. In manchen Fällen können Clients 10, 11 mit einem Benutzerschnittstellensystem 13 kommunizieren, das Zugriff auf eines oder mehrere andere System bereitstellen kann, zum Beispiel eine Datenbank 15, eine Verarbeitungseinheit 14 oder ähnliches. Die Benutzerschnittstelle 13 kann zum Beispiel eine für den Benutzer zugängliche Webseite sein, die Daten von einem oder mehreren anderen Computersystemen bereitstellt. Die Benutzerschnittstelle 13 kann verschiedene Schnittstellen zu verschiedenen Clients bereitstellen, wobei zum Beispiel eine für Menschen lesbare Webseite für Webbrowser-Clients 10 bereitgestellt wird, und eine computerlesbare API oder andere Schnittstelle für Remote-Service-Clients 11 bereitgestellt wird. Die Benutzerschnittstelle 13, Datenbank 15 und Verarbeitungseinheiten 14 können Teil eines integralen Systems sein oder sie können mehrere Computersysteme beinhalten, die über ein privates Netzwerk, das Internet oder jedes andere geeignete Netzwerk kommunizieren. Verarbeitungseinheiten 14 können zum Beispiel Teil eines verteilten Systems sein, zum Beispiel eines cloudbasierten Computersystems, einer Suchmaschine, eines Content-Delivery-Systems oder ähnlichem, das auch eine Datenbank 15 und/oder Benutzerschnittstelle 13 beinhalten oder mit ihr kommunizieren kann. In einigen Anordnungen kann ein Analysesystem 5 Backend-Verarbeitung bereitstellen, wobei zum Beispiel gespeicherte oder erfasste Daten durch das Analysesystem 5 vor Lieferung an die Verarbeitungseinheit 14, Datenbank 15 und/oder Benutzerschnittstelle 13 vorverarbeitet werden. Ein Maschinenlernsystem 5 kann zum Beispiel verschiedene Vorhersagemodelle, Datenanalyse oder ähnliches für eines oder mehrere andere System 13, 14, 15 bereitstellen.
-
In Situationen, in denen Implementierungen des offenbarten Gegenstands persönliche Informationen über Benutzer sammeln oder persönliche Informationen nutzen, kann dem Benutzer Gelegenheit gegeben werden, zu kontrollieren, ob Programme oder Funktionen Benutzerinformationen sammeln (z. B. die Leistungsbewertung eines Benutzers, das Arbeitsprodukt eines Benutzers, die bereitgestellte Eingabe eines Benutzers, den geografischen Ort eines Benutzers oder alle anderen ähnlichen Daten, die mit einem Benutzer verbinden sind), oder er kann kontrollieren, ob und/oder wie Fortbildungskursinhalte vom Fortbildungskursanbieter empfangen werden, die für den Benutzer relevanter sein können. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, sodass persönlich identifizierbare Informationen entfernt werden. Die Identität eines Benutzers kann zum Beispiel so behandelt werden, dass keine persönlich identifizierbaren Informationen für einen Benutzer ermittelt werden können, oder der geografische Ort eines Benutzers, der mit einem Fortbildungskurs verbunden ist, kann verallgemeinert werden, wenn Ortsinformationen erhalten werden (z. B. auf Orts-, Postleitzahl- oder Bundeslandebene), sodass kein bestimmter Ort eines Benutzers ermittelt werden kann. Somit könnte der Benutzer Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von einem Fortbildungskursanbieter verwendet wird.
-
Die vorstehende Beschreibung wurde zum Zweck der Erklärung unter Bezugnahme auf spezifische Ausführungsformen beschrieben. Die obigen veranschaulichenden Erörterungen sollen jedoch nicht allumfassend sein oder Ausführungsformen des offenbarten Gegenstands genau auf die offenbarten Formen beschränken. In Bezug auf die obigen Anleitungen sind viele Modifizierungen und Varianten möglich. Die Ausführungsformen wurden gewählt und beschrieben, um die Prinzipien der Ausführungsformen des offenbarten Gegenstands und ihre praktischen Anwendungen zu beschreiben, um es dadurch anderen Fachleuten zu ermöglichen, diese Ausführungsformen sowie die verschiedenen Ausführungsformen mit verschiedenen Modifizierungen zu nutzen, die für die besondere, erwägte Nutzung geeignet sein könnten.