Programmsicherungsverfahren
Die Erfindung betrifft ein Verfahren zur Sicherung eines auf einem Endgerät betreibbaren Programms gegen unautorisierte Benutzung, bei dem in einem separaten, d.h. vom Endgerät trennbaren Schlüsselelement ein Schlüsselcode gegen unbefugtes Auslesen gesichert gespeichert wird und bei dem das Schlüsselelement vor oder während einer Nutzung des Programms über eine Schnittstelle mit dem Endgerät verbunden wird und mittels eines Datentransfers zwischen dem Endgerät und dem Schlüsselelement der gespeicher- te Schlüsselcode überprüft wird und nur bei einer positiven Überprüfung das Programm ordnungsgemäß abläuft. Unter einem Endgerät werden dabei im Folgenden allgemein von einem Nutzer über eine Mensch-Maschine- Schnittstelle kontrollierbare elektronische Geräte wie beispielsweise Computer-Terminals, insbesondere PCs, und mobile Endgeräte wie Laptops, PDAs (Personal Digital Assistents) und mobile Kommunikationsendgeräte, insbesondere Mobilfunkgeräte, verstanden.
Verfahren zum Kopierschutz von Programmen der eingangs genannten Art sind aus der Praxis allgemein bekannt. Entsprechende Schlüsselelemente, auf denen ein Schlüsselcode so gespeichert ist, dass er nicht von Unbefugten ausgelesen werden kann, werden allgemein auch als sogenannte „Dongles" bezeichnet. Üblicherweise hat ein solches Schlüsselelement bzw. Dongle einen Schnittstellenstecker für eine serielle oder parallele Schnittstelle eines PCs. Das zugehörige Programm kann nur dann auf dem PC genutzt werden, wenn der passende Dongle in die vorgesehene Schnittstelle eingesteckt ist, anderenfalls ist ein ordnungsgemäßer Ablauf des Programms nicht möglich. Dies verhindert, dass das Programm beliebig kopiert und von Nutzern verwendet wird, die hierzu keine Lizenz erworben haben. Die Verwendung eines speziellen Dongles zum Kopierschutz eines Programms hat jedoch zum einen den Nachteil, dass ein Nutzer, sofern er mehrere durch derartige
Dongles geschützte Programme verwendet, eine Vielzahl unterschiedlicher
Dongles benötigt. Dies ist insbesondere lästig, wenn es sich bei dem Endgerät, auf dem das Programm betrieben werden soll, um ein mobiles Endgerät, beispielsweise ein Laptop, handelt, weil er dann die Dongles mit dem Gerät ständig mitführen muss.
Hinzu kommt, dass auch im Bereich der kleineren mobilen Endgeräte, insbesondere im Bereich der modernen Kommunikationsendgeräte, durch immer größere Speicher und leistungsfähigere Prozessoren die auf derartigen Geräten installierbaren Programme (im Folgenden auch Anwendungen genannt) zunehmend komfortabler und umfangreicher werden. Solche auf mobilen Endgeräten laufenden Anwendungen werden daher in Zukunft eine ständig wachsende Rolle spielen. Insbesondere wenn solche Anwendungen von unabhängigen Anwendern vertrieben werden, bei denen es sich weder um die Geräte-Hersteller selbst noch z. B. um Mobilfunknetzbetreiber oder SIM- Karten-Hersteller handelt, müssen diese Anwendungen frei auf einem Endgerät installierbar sein. Somit besteht auch hier das Problem einer relativ einfachen Kopierbarkeit von einem Endgerät zum anderen. Üblicherweise weisen jedoch schon allein aus Platzgründen solche kleinen mobilen Endgeräte nur beschränkt Möglichkeiten auf, einen separaten Dongle zum Kopier- schütz der Programme anzuschließen.
Es ist daher Aufgabe der vorliegenden Erfindung, eine Alternative zu dem eingangs genannten Stand der Technik zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Patentanspruch 1 sowie durch ein Teilnehmeridentifizierungsmodul zur Authentisierung eines Mobilfunkgeräts eines Nutzers gegenüber einem Mobilfunknetz gemäß Patentanspruch 9 gelöst.
Bei den üblichen Mobilfunkstandards ist es erforderlich, dass in einem Mobilfunkgerät ein Teilnehmeridentifizierungsmodul vorhanden ist, auf dem sich alle zu einem bestimmten Nutzer gehörigen Informationen befinden, die benötigt werden, damit sich das Mobilfunkgerät in ein Mobilfunknetz eines Mobilfunkbetreibers einbuchen kann. Im Allgemeinen handelt es sich bei dem Teilnehmeridentifizierungsmodul um eine Chipkarte, die in der Regel SIM (Subscriber Identity Module) bzw. SIM-Karte genannt wird. Die SIM- Karte kann aus dem Mobilfunkgerät entnommen und in ein anderes Mobilfunkgerät eingelegt werden, um dieses in das Netz einzubuchen. Damit ein solcher Austausch möglich ist, sind zum einen die SIM-Karten und zum anderen die Aufnahmen der Mobilfunkgeräte für die SIM-Karte entsprechend genormt. Um zu verhindern, dass die Daten unbefugt aus dem SIM ausgelesen werden können, weist dieses einen gesicherten Speicher auf.
Bei dem erfindungsgemäßen Verfahren wird daher sinnvollerweise ein solches Teilnehmeridentifizierungsmodul bzw. SIM zusätzlich als Schlüsselelement zur Sicherung eines Programms verwendet. Dies hat den Vorteil, dass lediglich der zu dem zu sichernden Programm passende Schlüsselcode in dem gesicherten Speicherbereich des Teilnehmeridentifizierungsmodul hinterlegt werden muss.
Dies ist insbesondere dann besonders vorteilhaft, wenn es sich bei dem Endgerät, in welchem das Programm ablaufen soll, um das Mobilfunkgerät selbst handelt, in dem sich das Teilnehmeridentifizierungsmodul befindet. Es ist dann kein zusätzliches Schlüsselelement mehr erforderlich, welches von außen an das Mobilfunkgerät angesteckt werden muss oder in sonstiger Weise für einen Datenaustausch mit diesem Gerät verbunden werden muss.
Das erfindungsgemäße Verfahren hat aber auch Vorteile, wenn es zur Sicherung von Programmen auf Endgeräten eingesetzt wird, bei denen es sich nicht um das Mobilfunkgerät selbst handelt. In diesem Fall kann der Datenaustausch über eine Schnittstelle zwischen dem Mobilfunkgerät und dem jeweiligen Endgerät erfolgen. Dies ist insoweit unproblematisch, da die meisten Mobilfunkgeräte bereits entsprechende Schnittstellen zur Verbindung mit weiteren Endgeräten aufweisen. Die meisten Nutzer moderner Endgeräte verfügen ohnehin über ein Mobilfunkgerät, welches sie in der Regel ständig mitführen. Durch das erfindungsgemäße Verfahren ist ein zusätzliches Mitführen eines Dongle nicht mehr erforderlich.
Da es möglich ist, in dem Teilnehmeridentifizierungsmodul mehrere Schlüsselcodes für verschiedene Programme zu hinterlegen, kann das Teilnehmeridentifizierungsmodul als Schlüsselelement für mehrere Programme dienen.
Vorzugsweise wird zur Verbindung zwischen dem Mobilfunkgerät und dem Endgerät eine drahtlose Schnittstelle, beispielsweise eine Infrarot- Schnittstelle wie IrDa oder - besonders bevorzugt - eine kurzreichweitige Funkschnittstelle verwendet. Derartige kurzreichweitige Funkschnittstellen werden allgemein auch mit dem Begriff W-PAN (Wireless Personal Area Network) bezeichnet. Ein Beispiel hierfür ist die sogenannte Bluetooth- Schnittstelle. Die Verwendung einer solchen Funkschnittstelle hat gegenüber einer Steckverbindungsschnittstelle oder eine Infrarotschnittstelle den Vor- teil, dass keine bestimmte Ausrichtung oder Orientierung der beiden beteiligten Geräte zueinander erforderlich ist.
Die Überprüfung des Schlüsselcodes durch das auf dem jeweiligen Endgerät laufende Programm kann auf beliebige Weise erfolgen. Wichtig ist dabei
aber, dass ein abgesichertes Verfahren benutzt wird, welches verhindert, dass der Schlüsselcode ausspioniert werden kann. Hierzu bieten sich u. a. verschiedenen kryptologische Verfahren an.
Bei einem bevorzugten Ausführungsbeispiel wird zur Überprüfung ein sogenanntes „Challenge-Response-Verfahren" verwendet. Dabei wird vom Programm ein Anfragesignal an das Teilnehmeridentifizierungsmodul übermittelt. In der Regel handelt es sich hierbei um eine Zufallszahl. Aus diesem Anfragesignal wird dann in einer Verschlüsselungsoperation nach einem bestimmten „Krypto- Algorithmus" unter Verwendung des im Teilnehmeridentifizierungsmoduls gespeicherten Schlüsselcodes ein Antwortsignal erzeugt. Gleichzeitig wird vom Programm die Zufallszahl auf die gleiche Weise, das heißt mit dem gleichen Krypto- Algorithmus und unter Verwendung des gleichen Schlüsselcodes, verschlüsselt. Das Ergebnis dieser Verschlüsselungsoperation wird dann mit dem Antwortsignal des Teilnehmeridentifizierungsmoduls verglichen. Bei einer Übereinstimmung ist davon auszugehen, dass sich im Speicher des Teilnehmeridentifizierungsmoduls der richtige Lizenzschlüssel befindet. Daher wird bei einem positiven Vergleichsergebnis das Programm ordnungsgemäß ausgeführt und anderenfalls abgebrochen.
Das Teilnehmeridentifizierungsmodul muss hierzu dementsprechend Mittel zur Verschlüsselung eines von einem Endgerät an das Teilnehmeridentifizierungsmodul übermittelten Anfragesignals mittels des Schlüsselcodes auf- weisen. Ebenso müssen geeignete Mittel zur Rückübermittlung des verschlüsselten Anfragesignals vom Teilnelimeridentifizierungsmodul zum Endgerät zur Verfügung stehen.
Zur Speicherung des Schlüsselcodes im Teilnehmeridentifizierungsmodul gibt es verschiedene Möglichkeiten. Vorzugsweise erfolgt die Einspeicherung über ein Mobilfunknetz, das heißt der Schlüsselcode wird an ein Mobilfunkgerät übermittelt, in welchem sich das Teilnehmeridentifizierungsmo- dul befindet und dort automatisch in dem Teilnehmeridentifizierungsmodul hinterlegt. Vorzugsweise erfolgt diese Übermittlung durch den Mobilfunkbetreiber des betreffenden Mobilfunknetzes, da dieser auch der Herausgeber des Teilnehmeridentifizierungsmoduls ist und somit entsprechende Zugriffsmöglichkeiten auf das Modul hat . Verschiedene „OTA" (Over the Air)-Mechanismen, einen Schlüsselcode vom Mobilfunkbetreiber über eine Luftschnittstelle an ein Mobilfunkgerät zu übersenden und in einem darin befindlichen Teilnehmeridentifizierungsmodul sicher zu speichern, sind dem Fachmann bereits bekannt und brauchen daher nicht weiter erläutert zu werden. Der jeweilige Anbieter der Anwendung braucht dementsprechend nur den Schlüsselcode an den Mobilfunkbetreiber zu übermitteln und ihn anzuweisen, den Schlüsselcode auf ein bestimmtes Teilnehmeridentifizierungsmodul eines bestimmten Nutzers, welcher bei dem Anwendungsanbieter eine Lizenz erworben hat, zu übersenden.
Das Verfahren ist insoweit äußerst einfach, da es im Wesentlichen auf bereits existierende Mechanismen und Einrichtungen zurückgreifen kann und somit ohne größere Kosten implementierbar ist. Es bietet eine relativ große Sicherheit für die Hersteller von Programmen, da die Programme selbst zwar beliebig oft kopiert und vervielfältigt werden können, jedoch immer nur derje- nige, der ordnungsgemäß durch Erwerb einer Lizenz in den Besitz des Schlüsselcodes gelangt, das Programm auch nutzen kann. Gleichzeitig ist dieses Verfahren für den autorisierten Nutzer ausgesprochen bequem, da er keinerlei zusätzliche Sicherheitselemente wie beispielsweise Dongles benötigt. Das Verfahren hat daher insbesondere auch den Vorteil, dass es nicht
mehr notwendig ist, einen Dongle vom Anwendungsanbieter an den Nutzer, beispielsweise per Post oder mittels eines Paketdienstes, zu versenden. Die Übersendung eines Kopierschlüssels kann stattdessen genauso per Datenübermittlung erfolgen wie die Übermittlung des Programms selbst, was ja derzeit bereits durch einen Download aus dem Internet oder durch eine Ü- bermittlung über ein Mobilfunknetz etc. problemlos möglich ist. Der Verkauf von Software auf elektronischem Wege wird so zu einer gleichermaßen sicheren, aber aufgrund des dabei nicht notwendigen Transports im Allgemeinen kostengünstigeren und umweltfreundlicheren Alternative.
Die Erfindung wird im Folgenden unter Hinweis auf die beigefügten Figuren anhand eines Ausführungsbeispiels näher erläutert. Es zeigen:
Figur 1 eine schematische Darstellung einer Übermittlung eines Schlüsselco- des an eine SIM-Karte eines Benutzers,
Figur 2 eine schematische Darstellung des Verfahrensablaufs bei der Überprüfung eines auf einer SIM-Karte gespeicherten Schlüsselcodes durch ein auf einem Mobilfunkgerät ablaufendes Programm .
Bei dem Ausführungsbeispiel in Figur 1 wird zunächst von einem Anwendungsanbieter 3 an ein Mobilfunkgerät 1 eines Benutzers ein Programm P in Form eines Programmcodes übersandt, der auf dem Mobilfunkgerät 1 installiert wird, so dass das Programm P auf dem Mobilfunkgerät 1 ausgeführt werden kann. Dies geschieht nach einer - hier nicht dargestellten - Kommunikation zwischen dem Nutzer und dem Anwendungsanbieter, beispielsweise nach einer Bestellung und Bezahlung des Programms P durch den Nutzer. Der Anwendungsanbieter übersendet dann außerdem - vorzugsweise auf einem gesicherten Weg - einen Schlüsselcode S als Lizenz-
Schlüssel an den Betreiber 4 des Mobilfunknetzes N, in welchem der Nutzer mit seinem Mobilfunkgerät 1 bzw. mit einem Teilnehmeridentifizierungsmodul 2 registriert ist.
Bei dem vorliegenden Ausführungsbeispiel wird davon ausgegangen, dass es sich bei dem Teilnehmeridentif izierungsmodul 2 um eine SIM-Karte 2 handelt. Die Erfindung ist jedoch nicht auf Teilnehmeridentifizierungsmodule 2 in Form von Chipkarten beschränkt, sondern es kann sich auch um eine andere Art von Teilnehmeridentifizierungsmodul, beispielsweise ein in einem beliebigen Gehäuse befindliches Steckmodul, handeln. Wesentlich ist lediglich, dass dieses Teilnehmeridentifizierungsmodul eine ähnliche Funktionalität aufweist wie die heutzutage verwendeten SIM-Karten.
Der Mobilfunknetzbetreiber 4 übersendet dann den Schlüsselcode S mittels eines von ihm üblicherweise verwendeten OTA-Mechanismus über das Mobilfunknetz N an das Mobilfunkgerät 1. Durch die Art der Übersendung ist dabei gewährleistet, dass dieser Schlüsselcode S direkt in den Speicher der SIM-Karte 2 übertragen wird, ohne dass der Nutzer den Schlüsselcode S ausspionieren und anderweitig abspeichern kann. Durch den eingespeicherten Schlüsselcode S dient die SIM-Karte 2 nun zusätzlich als Schlüsselelement, ohne das das Programm P auf dem Mobilfunkgerät 1 nicht lauffähig ist.
Figur 2 zeigt ein Ausführungsbeispiel, wie eine Überprüfung des Schlüsselcodes S auf der SIM-Karte 2 durch das auf dem mobilen Endgerät 1 instal- lierte Programm P erfolgt.
Das Mobilfunkgerät 1 ist hier durch einen einfachen Block dargestellt. Es handelt sich beispielsweise um ein herkömmliches Mobilfunkgerät 1, welches alle üblichen Komponenten eines Mobilfunkgeräts aufweist. Innerhalb
dieses Mobilfunkgeräts 1 befindet sich eine SIM-Karte 2, auf der wie zuvor beschrieben ein Schlüsselcode S hinterlegt wurde.
Um diesen Schlüsselcode S zu überprüfen, ohne dass er aus dem Speicher der SIM-Karte 2 ausgelesen werden muss, wird ein sogenanntes Challenge- Response- Verfahren verwendet. Hierbei wird vom Programm P, d. h. von der Anwendung selbst, intern eine Zufallszahl R generiert und diese Zufallszahl R an die SIM-Karte 2 übertragen. Diese Übertragung erfolgt beispielsweise über die gleiche Schnittstelle, über die die SIM-Karte 2 ohnehin mit dem Mobilfunkgerät 1 kommuniziert.
Die SIM-Karte 2 verschlüsselt dann nach einem bestimmten Verschlüsselungsalgorithmus K die Zufallszahl R, wobei sie für die Verschlüsselung den Schlüsselcode S verwendet. Das Ergebnis (Response) wird an das Programm P zurückübermittelt. Das Programm P selbst verschlüsselt ebenfalls die Zufallszahl R mit dem gleichen Verschlüsselungsalgorithmus K unter Verwendung desselben Schlüsselcodes S. Das Ergebnis dieser Verschlüsselungsoperation K sollte folglich mit der von der SIM-Karte 2 erhaltenen Antwort übereinstimmen, wenn der auf der SIM-Karte 2 gespeicherte Schlüsselcode S mit dem Schlüsselcode S des Programms P identisch ist. Das Verschlüsselungsergebnis des Programms P wird daher mit der Antwort der SIM-Karte 2 im Verfahrensschritt V verglichen. Wird bei diesem Vergleich eine Übereinstimmung festgestellt, so wird das Programm P ordnungsgemäß ausgeführt. Anderenfalls führt der Vergleich zu einem Programmabbruch.