DE10155092B4 - Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen - Google Patents

Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen Download PDF

Info

Publication number
DE10155092B4
DE10155092B4 DE10155092A DE10155092A DE10155092B4 DE 10155092 B4 DE10155092 B4 DE 10155092B4 DE 10155092 A DE10155092 A DE 10155092A DE 10155092 A DE10155092 A DE 10155092A DE 10155092 B4 DE10155092 B4 DE 10155092B4
Authority
DE
Germany
Prior art keywords
computer
code
transponder
condition
activation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE10155092A
Other languages
English (en)
Other versions
DE10155092A1 (de
Inventor
Rainer Kuth
Martin Dr. Requardt
Markus Dr. Vester
Christoph Dr. Zindel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Healthcare GmbH
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE10155092A priority Critical patent/DE10155092B4/de
Priority to JP2002323435A priority patent/JP2003195970A/ja
Priority to US10/291,016 priority patent/US7555654B2/en
Priority to CNB021502935A priority patent/CN100426176C/zh
Publication of DE10155092A1 publication Critical patent/DE10155092A1/de
Application granted granted Critical
Publication of DE10155092B4 publication Critical patent/DE10155092B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client

Abstract

Freischaltverfahren für einen Nutzteil (7) eines Computerprogramms (5), das von einem Rechner abgearbeitet wird,
– wobei der Rechner zumindest beim Aufruf des Computerprogramms (5) unter Abarbeitung eines Prüfteils (6) des Computerprogramms (5) einen mit dem Rechner verbundenen Sender (13) zum Aussenden eines Anregungssignals veranlasst,
– wobei ein vom Rechner getrennter Transponder (12) das Anregungssignal empfängt, einen transponderinternen Speicher (21) in Abhängigkeit von der Nutzung des Computerprogramms (5) irreversibel ändert, den transponderinternen Speicher (21) auf Erfüllen einer Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, einen Freischaltcode (C2) aussendet,
– wobei ein mit dem Rechner verbundener Empfänger (13) den Freischaltcode (C2) empfängt und an den Rechner übermittelt,
– wobei der Rechner unter weiterer Abarbeitung des Prüfteils (6) den Freischaltcode (C2) auf Erfüllen einer Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7) nur dann aufnimmt, wenn die Freischaltbedingung erfüllt ist.

Description

  • Die vorliegende Erfindung betrifft ein Freischaltverfahren für einen Nutzteil eines Computerprogramms, das von einem Rechner abgearbeitet wird.
  • Derartige Verfahren sind allgemein bekannt. Bei ihnen überprüft der Rechner zumindest beim Aufruf des Computerprogramms unter Abarbeitung eines Prüfteils des Computerprogramms einen Freischaltcode auf Erfüllen einer Freischaltbedingung und nimmt die Abarbeitung des Nutzteils nur dann auf, wenn die Freischaltbedingung erfüllt ist.
  • Hierbei sind verschiedene Vorgehensweisen bekannt.
  • Beispielsweise ist es bekannt, einen sogenannten Dongle auf eine Schnittstelle des Rechners aufzusetzen. Beim Aufruf des Computerprogramms steuert der Rechner dann unter Abarbeitung des Prüfteils die Schnittstelle an und liest aus dem Dongle den Freischaltcode aus. Nur wenn der Freischaltcode ordnungsgemäß ist, also die Freischaltbedingung erfüllt, wird die Abarbeitung des Nutzteils aufgenommen. Bei diesem Verfahren ist zum einen nachteilig, dass jeder Dongle eine Schnittstelle belegt. Ferner ist ein nicht unerheblicher Kostenaufwand für den Dongle als solchen erforderlich. Auch ist seine Fälschungssicherheit nur begrenzt.
  • Ferner ist bekannt, dem Programm bei der Installation auf der Festplatte des Rechners oder zu einem späteren Zeitpunkt– manuell oder ferngeladen – den Freischaltcode zuzuführen. Bei manueller Eingabe ist die Eingabe umständlich und fehlerträchtig. Bei Fernladung des Freischaltcodes ist ein Netzanschluss erforderlich.
  • Aus der WO-A-99/11022 ist ein Freischaltverfahren für einen Rechner bekannt. Bei diesem Freischaltverfahren veranlasst der Rechner einen mit dem Rechner verbundenen Sender zum Aussenden eines Anregungssignals. Ein vom Rechner getrennter Transponder empfängt das Anregungssignal und sendet daraufhin einen Freischaltcode aus. Ein mit dem Rechner verbundener Empfänger empfängt den Freischaltcode und übermittelt ihn an den Rechner. Der Rechner überprüft den Freischaltcode auf Erfüllen einer Freischaltbedingung und kommuniziert mit einem Nutzer, wenn die Freischaltbedingung erfüllt ist.
  • Aus der US-A-5,870,726 ist ein Freischaltverfahren für einen Nutzteil eines Computerprogramms bekannt, das von einem Rechner abgearbeitet wird. Bei diesem Freischaltverfahren nimmt der Rechner zumindest beim Aufruf des Computerprogramms unter Abarbeitung eines Prüfteils des Computerprogramms eine Kommunikation mit einer Smartcard auf. Die Smartcard ändert daraufhin in Abhängigkeit von der Nutzung des Computerprogramms einen internen Speicher, prüft den Speicher auf Erfüllen einer Speicherbedingung und übermittelt dem Rechner gegebenenfalls ein Freischaltsignal. Der Rechner überprüft dann unter weiterer Abarbeitung des Prüfteils, ob ihm das Freischaltsignal übermittelt wurde, und nimmt gegebenenfalls die Abarbeitung des Nutzteils auf.
  • Aus der US-A-5,761,609 ist ein nicht flüchtiger Speicher bekannt, dessen Inhalt irreversibel änderbar ist. Der Speicher kann mit einem Rechner derart verbunden werden, dass der Rechner nur für eine begrenzte Anzahl von Benutzungsvorgängen nutzbar ist.
  • Die Aufgabe der vorliegenden Erfindung besteht darin, ein Freischaltverfahren und die korrespondierenden Einrichtungen zur Verfügung zustellen, mittels derer auf einfache, kostengünstige und sichere Weise ein zuverlässiges Freischalten des Nutzteils – insbesondere nur für begrenzte Zeit – möglich ist.
  • Die Aufgabe wird durch ein Freischaltverfahren mit den Merkmalen des Anspruchs 1 gelöst.
  • Vorzugsweise sollte mit dem Freischaltverfahren auch vermieden werden, dass das Programm auf verschiedenen Rechnern zugleich installiert wird und dann unter kurzzeitigem Zur-Verfügung-Stellen des Transponders nacheinander auf verschiedenen Rechnern gestartet wird. Einem derartigen Missbrauch ist vorgebeugt, wenn das Freischaltverfahren gemäß Merkmal 2 ausgestaltet ist.
  • Wenn die Freischaltbedingung von der Absolutzeit, der Relativzeit und/oder von der Zahl der Aufrufe des Computerprogramms abhängig ist, ist auf einfache Weise eine Art Abonnement realisierbar. Beispielsweise vergleicht der Rechner den Freischaltcode mit einem Referenzcode, den er unter Heranziehung einer Absolutzeit ermittelt, die ihm von einem Uhrenbaustein des Rechners zur Verfügung gestellt wird. Auch kann der Rechner die Zahl der Aufrufe oder die Nutzungszeit (Relativzeit) des Computerprogramms intern speichern und unter Heranziehung dieser Größen den Freischaltcode auf Erfüllen der Freischaltbedingung überprüfen.
  • Die Überprüfung der Freischaltbedingung erfolgt im Rechner. Von daher sind Manipulationen durch einen bösgläubigen Anwender des Rechners nicht mit Sicherheit ausschließbar. Derartige Manipulationen können aber durch das Überprüfen der Sendebedingung mit an Sicherheit grenzender Wahrscheinlichkeit ausgeschlossen werden.
  • Das Überprüfen der Sendebedingung kann zusätzlich auch ein Überprüfen einer Absolutzeitbedingung umfassen. Die Absolutzeit kann dem Transponder dabei wahlweise von einem transponderinternen Zeitgeber oder vom Rechner vorgegeben werden.
  • Wenn der Sender dem Transponder im Anregungssignal einen Anregungscode übermittelt, der Transponder den Anregungscode auf Erfüllen einer Anregungsbedingung überprüft und der Transponder den Freischaltcode nur dann aussendet, wenn die Anregungsbedingung erfüllt ist, arbeitet das Freischaltverfahren noch sicherer.
  • Wenn der Rechner dem Sender den Anregungscode übermittelt, den der Sender dem Transponder übermitteln soll, ist der Sender flexibler betreibbar. Insbesondere ist es – durch Übermittlung verschiedener Anregungscodes – möglich, mittels ein und desselben Senders durch Aussenden des Anregungssignals auf ein und derselben Frequenz verschiedene Transponder selektiv anzusprechen, die verschiedene, verschiedenen Programmen zugeordnete Anregungscodes aufweisen.
  • Wenn der Anregungscode personalisiert ist, ist der Code eindeutig nur für einen bestimmten Rechner und/oder einen bestimmten Benutzer spezifisch.
  • Wenn der Rechner bei jeder Übermittlung des Freischaltcodes
    • – den Freischaltcode auf Erfüllen mindestens einer Codebedingung überprüft,
    • – bei Erfüllen der Codebedingung einen der Codebedingung zugeordneten Zähler inkrementiert,
    • – bei Inkrementierung des Zählers diesen Zähler auf Erfüllen einer Zählerbedingung überprüft und
    • – die Abarbeitung des Nutzteils nur dann aufnimmt bzw. fortsetzt, wenn die Zählerbedingung erfüllt ist.
    ist es möglich, einen etwaigen Missbrauch durch Überlassen mehrerer Transponder einer einheitlichen Typgruppe zu unterbinden.
  • Wenn der Rechner dem Sender eine Sendefrequenz übermittelt, auf der der Sender das Anregungssignal aussenden soll, ist es mittels eines einzigen Senders möglich, mehrere verschiedene Transponder anzusprechen, die mittels verschiedener Frequenzen anregbar sind. Alternativ wäre ein breitbandiges Senden des Anregungssignals möglich.
  • Wenn der Rechner dem Empfänger eine Empfangsfrequenz übermittelt, auf der der Empfänger den Freischaltcode empfangen soll, ist es in analoger Weise möglich, Freischaltcodes von verschiedenen Transpondern zu empfangen, die auf verschiedenen Frequenzen ihren Freischaltcode aussenden. Alternativ wäre ein breitbandiger Empfang mit nachgeordneter Signalanalyse möglich.
  • Wenn auch der Freischaltcode personalisiert ist, ist auch der Transponder auf einen ganz bestimmten Rechner und/oder Nutzer zugeschnitten. Missbrauchsmöglichkeiten sind daher noch weiter eingeschränkt bwz. werden noch sicherer unterbunden.
  • Wenn der Transponder einen Mikroprozessor aufweist, ist er besonders flexibel einsetzbar und programmierbar.
  • Weitere Vorteile und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung eines Ausführungsbeispiels in Verbindung mit den Zeichnungen. Dabei zeigen in Prinzipdarstellung
  • 1 eine schematische Darstellung eines Rechners mit einem Transponder,
  • 2 eine schematische Darstellung des internen Aufbaus des Transponders von 1 und
  • 36 Ablaufdiagramme.
  • Gemäß 1 weist ein Rechner eine Haupteinheit 1 auf. Die Haupteinheit 1 weist intern eine Prozessoreinheit 2, einen Arbeitsspeicher 3 und einen Massenspeicher 4 auf. Der Massenspeicher 4 ist in aller Regel als sogenannte Festplatte ausgebildet. Im Massenspeicher 4 ist unter anderem ein Computerprogramm 5 hinterlegt, das einen Prüfteil 6 und einen Nutzteil 7 aufweist. Der Rechner ist also mit dem Computerprogramm 5 programmiert.
  • An die Haupteinheit 1 sind mindestens eine Eingabeeinrichtung 8 (z. B. eine Tastatur oder eine Maus) und mindestens eine Ausgabeeinrichtung 9 (z. B. ein Monitor) angeschlossen. Über die Eingabeeinrichtung 8 und die Ausgabeeinrichtung 9 ist eine interaktive Bedienung des Rechners 1 durch einen Anwender 10 möglich. Insbesondere ist es möglich, dass der Anwender 10 durch entsprechende Eingaben das Computerprogramm 5 aufruft. Mit einem Aufruf des Computerprogramms 5 wird dieses vom Massenspeicher 4 in den Arbeitsspeicher 3 geladen und vom Rechner abgearbeitet.
  • Dem Rechner ist ferner ein Behälter 11 zugeordnet, der z. B. an der Haupteinheit 1 befestigt sein kann. Im Behälter 11 ist ein Transponder 12 angeordnet. Der Transponder 12 ist somit vom Rechner getrennt.
  • Der Rechner kann über einen Sendeempfänger 13 bidirektional mit dem Transponder 12 kommunizieren. Der Sendeempfänger 13 ist hierzu über eine Schnittstelle 14 mit der Prozessoreinheit 2 bzw. allgemein dem Rechner verbunden. Die Schnittstelle 14 kann z. B. eine USB-Schnittstelle sein.
  • Damit eine Kommunikation des Sendeempfängers 13 mit dem Transponder 12 erfolgen kann, ist der Behälter 11 hochfrequenztransparent. Er ist ferner, wie in 1 durch ein Auge 15 symbolisch dargestellt ist, optisch transparent. Ferner ist der Behälter 11, wie in 1 durch ein Vorhängeschloss 16 symbolisch dargestellt ist, abschließbar.
  • Gemäß 2 weist der Transponder 12 als zentrales Element einen Mikroprozessor 17 auf. Die Arbeitsweise des Mikroprozessors 17 wird von einem Festwertspeicher 18 (ROM 18) bestimmt. Der Mikroprozessor 17 ist ferner mit einem Demodulator 19, einem Modulator 20 und einem transponderinternen Speicher 21 verbunden. Der transponderinterne Speicher 21 ist vom Mikroprozessor 17 sowohl lesbar als auch schreibbar. Schreibvorgänge, also Änderungen des transponderinternen Speichers 21, sind aber irreversibel. Der transponderinterne Speicher 21 ist also als eine Art PROM ausgebildet.
  • Dem Demodulator 19 ist eine Empfangsspule 22 vorgeschaltet, dem Modulator 20 eine Sendespule 23 nachgeschaltet. Die beiden Spulen 22, 23 können gegebenenfalls in einem gemeinsamen Element zusammengefasst sein.
  • Die Empfangsspule 22 ist ferner mit einer Energieversorgungseinrichtung 24 verbunden. Mittels der Energieversorgungseinrichtung 24 werden – bei Empfang eines Anregungssignals mittels der Empfangsspule 22 – die übrigen Komponenten 17 bis 21 und 23 mit Energie versorgt. Die einzelnen Energieversorgungsleitungen zu diesen Komponenten 17 bis 21, 23 sind in 2 der Übersichtlichkeit halber aber nicht dargestellt.
  • Die Betriebsweise des Rechners des Transponders 12 wird nunmehr nachstehend in Verbindung mit den 3 bis 6 näher erläutert.
  • Gemäß 3 wird beim Aufruf des Computerprogramms 5 durch den Anwender 10 zunächst in einem Schritt 31 der Prüfteil 6 ausgeführt. Auf die Einzelheiten des Prüfteils 6 wird später in Verbindung mit 4 noch eingegangen werden. Im Ergebnis wird im Schritt 31 überprüft, ob ein Freischaltcode C2 eine Freischaltbedingung erfüllt. Nur wenn der Freischaltcode C2 die Freischaltbedingung erfüllt, werden weitere Schritte 32 bis 34 durchlaufen, ansonsten wird die Abarbeitung des Computerprogramms 5 beendet.
  • Im Schritt 32 wird der Nutzteil 7 abgearbeitet. Die Abarbeitung des Nutzteils 7 wird aber immer wieder kurzzeitig unterbrochen, um in einem Schritt 33 zu überprüfen, ob eine Wartezeit von z. B. einer Minute abgelaufen ist. Wenn ja, wird im Schritt 33 zum Schritt 31 zurückgesprungen. Der Rechner nimmt also auch aus der Abarbeitung des Nutzteils 7 heraus von Zeit zu Zeit die Abarbeitung des Prüfteils 6 wieder auf. Auch dann wird im Schritt 31 selbstverständlich wieder der Freischaltcode C2 auf Erfüllen der Freischaltbedingung überprüft und die Abarbeitung des Nutzteils 7 nur dann fortgesetzt, wenn der Freischaltcode erneut die Freischaltbedingung erfüllt.
  • Wenn im Schritt 33 der Zeitablauf nicht erfolgt ist, wird zum Schritt 34 verzweigt und überprüft, ob vom Anwender 10 ein Beendigungsbefehl eingegeben wurde. Wenn ja, wird die Abarbeitung des Computerprogramms 5 beendet, ansonsten wird zum Schritt 32 zurückgesprungen.
  • Die Details der Abarbeitung des Prüfteils 6 sind in 4 dargestellt. Gemäß 4 übermittelt der Rechner dem Sendeempfänger 13 in einem Schritt 35 eine Sendefrequenz f1, eine Empfangsfrequenz f2 und einen Anregungscode C1. Die Sendefrequenz f1 ist die Frequenz, auf der der Sendeempfänger 13 ein Anregungssignal an den Transponder 12 aussenden soll. Die Empfangsfrequenz f2 ist die Frequenz, auf der der Sendeempfänger 13 vom Transponder 12 den Freischaltcode C2 empfangen soll. Der Anregungscode C1 ist ein Code, den der Sendeempfänger 13 im Anregungssignal an den Transponder 12 übermitteln soll.
  • Der Anregungscode C1 kann prinzipiell beliebiger Natur sein. Vorzugsweise aber enthält er codierte Angaben zum einen bezüglich einer Absolutzeit T, die dem Rechner aufgrund eines internen Uhrenbausteins bekannt ist. Darüber hinaus enthält er codierte Angaben über den Rechner oder den Rechnertyp und/oder anwenderspezifische Angaben. Er ist also vorzugsweise personalisiert. Ferner kann der Anregungscode C1 auch eine Angabe darüber enthalten, ob die Abarbeitung des Prüfteils 6 beim Aufruf des Computerprogramms 5 oder aus der Abarbeitung des Nutzteils 7 heraus erfolgte.
  • Der Sendeempfänger 13 nimmt in einem Schritt 36 die Frequenzen f1, f2 und den Anregungscode C1 entgegen. Sodann sendet er das Anregungssignal und im Anregungssignal den Anregungs code C1 in einem Schritt 37 aus. Er wird also vom Rechner zum Aussenden des Anregungssignals veranlasst.
  • Der Transponder 12 empfängt in einem Schritt 38 das Anregungssignal und demoduliert den Anregungscode C1 aus dem Anregungssignal. Der Mikroprozessor 17 prüft dann in einem Schritt 39, ob der übermittelte Anregungscode C1 eine Anregungsbedingung erfüllt. Er überprüft also beispielsweise, ob die übermittelte Absolutzeit T größer als die letzte übermittelte Absolutzeit T ist (Plausibilitäts-/Manipulationsprüfung). Ferner überprüft er beispielsweise, ob die entsprechenden individuellen Codemerkmale, aufgrund derer der Anregungscode C1 personalisiert ist, erfüllt sind.
  • Nur wenn der Anregungscode C1 für ordnungsgemäß befunden wird, einen Anregungsbedingung also erfüllt ist, fährt der Mikroprozessor 17 mit weiteren Schritten fort. Ansonsten stellt er die weitere Abarbeitung seines im ROM 18 hinterlegten Programms ein. Insbesondere sendet er in diesem Fall den Freischaltcode C2 nicht aus.
  • Falls der Anregungscode C1 die Anregungsbedingung erfüllt, bereitet der Mikroprozessor 17 die Überprüfung einer Sendebedingung vor. Hierzu ändert der Mikroprozessor 17 in einem Schritt 40 zunächst den transponderinternen Speicher 21. Die Änderung kann dabei beispielsweise bei jedem Empfangen eines ordnungsgemäßen Anregungscodes C1 oder nur beim Aufruf des Computerprogramms 5 erfolgen. In beiden Fällen aber ist die Änderung des Speichers 21 somit von der Nutzung des Computerprogramms 5 abhängig.
  • Sodann überprüft der Mikroprozessor 17 in einem Schritt 41, ob der Speicher 21 noch weiter änderbar ist. Er überprüft also, ob alle Speicherzellen des Speichers 21 bereits geändert worden sind. Wenn bereits alle Speicherzellen des Speichers 21 geändert worden sind, ist die zulässige Nutzung des Computerprogramms 5 durch den Transponder 12 beendet. In diesem Fall wird vom Transponder 12 der Freischaltcode C2 nicht ausgesendet. Die Sendebedingung ist im vorliegenden Fall also nutzungsabhängig. Wenn hingegen noch Speicherzellen des Speichers 21 änderbar sind, fährt der Mikroprozessor 17 mit einem Schritt 42 fort.
  • Im Schritt 42 überprüft der Mikroprozessor 17, ob die Absolutzeit T noch unterhalb einer Zeitgrenze Tmax liegt. Er überprüft also, ob eine Absolutzeitbedingung erfüllt ist. Wenn ja, ist die Gültigkeitsdauer des Transponders 12 noch nicht abgelaufen. In diesem Fall wird in einem Schritt 43 auf der Empfangsfrequenz f2 der Freischaltcode C2 ausgesendet. Die Sendebedingung ist im vorliegenden Fall also auch zeitabhängig.
  • Der gesendete Freischaltcode C2 wird vom Sendeempfänger 13 in einem Schritt 44 empfangen, demoduliert und an den Rechner übermittelt. Der Rechner nimmt den Freischaltcode C2 in einem Schritt 45 entgegen. In einem Schritt 46 überprüft der Rechner dann den übermittelten Freischaltcode C2 auf Erfüllen der Freischaltbedingung. Dieser letzte Schritt 46 entspricht der Ermittlung des Ergebnisses, anhand dessen dann im Schritt 31 von 3 entschieden wird, ob die Schritte 32 bis 24 durchlaufen werden oder nicht.
  • Gemäß 5 kann dieser letzte Schritt 46 in mehrere Schritte 47 bis 50 unterteilt werden. Gemäß 5 ist es beispielsweise möglich, dass der übermittelte Freischaltcode C2 in codierter Form die Zeitgrenze Tmax enthält. In diesem Fall kann, wie in 5 im Schritt 47 dargestellt, überprüft werden, ob die Absolutzeit T noch kleiner als die Zeitgrenze Tmax ist.
  • Auch kann der Freischaltcode C2 beispielsweise die Zahl der noch löschbaren Speicherzellen des Speichers 21 enthalten. In diesem Fall kann im Schritt 48 überprüft werden, ob noch eine weitere Nutzung des Computerprogramms 5 zulässig ist. Es kann also insbesondere überprüft werden, ob die übermittelte Anzahl größer oder gleich 0 ist. Je nach dem, ob die Änderung des Speichers 21 im Schritt 40 in Abhängigkeit von der Anzahl an Aufrufen des Computerprogramms 5 oder in Abhängigkeit der Nutzungszeit erfolgte, stellt die Prüfung gemäß Schritt 48 also eine Prüfung der Relativzeit oder der Zahl der Aufrufe des Computerprogramms 5 dar.
  • Auch kann im Schritt 49 beispielsweise ein Code überprüft werden, der für den Anwender 10 und/oder den Rechner spezifisch ist, falls der Freischaltcode C2 entsprechende Elemente enthält. Schließlich können im Schritt 50 noch weitere Prüfungen erfolgen.
  • Nur wenn der Freischaltcode C2 in allen Schritten 47 bis 50 der 5 die jeweilige Prüfbedingung erfüllt hat, wird die Abarbeitung des Nutzteils 7 aufgenommen bzw. fortgesetzt. Ansonsten ist der Freischaltcode C2 nicht ordnungsgemäß, so dass die Abarbeitung des Nutzteils 7 nicht aufgenommen bzw. nicht fortgesetzt wird.
  • Gemäß 6 ist es mittels des erfindungsgemäßen Verfahrens sogar auf einfache Weise möglich, die Nutzung des Computerprogramms 5 zu unterbinden, obwohl der übermittelte Freischaltcode C2 die Freischaltbedingung erfüllt, wenn gewisse andere Indizien für einen Missbrauch vorliegen. Die Zahl der möglichen Freischaltcodes C2 ist nämlich derart groß, dass bestimmte Codegruppen oder Codetypen gebildet werden können. Beispielsweise kann aufgrund des Freischaltcodes C2 erkennbar sein, dass der korrespondierende Transponder 12 ein Transponder 12 ist, zur probeweisen Nutzung des Computerprogramms 5 kostenlos abgegeben wurde. Ein anderer Codetyp kann beispielsweise charakteristisch dafür sein, dass der Transponder 12 ursprünglich einer Serviceperson für Servicezwecke ausgehändigt wurde.
  • Gemäß 6 wird vom Rechner nach dem Abarbeiten des Schrittes 50 in einem Schritt 51 zunächst der Codetyp aus dem Freischaltcode C2 extrahiert. In einem Schritt 52 wird dann überprüft, ob der Transponder 12 einer Gratislizenz zur probeweisen Nutzung des Computerprogramms 5 entspricht, also eine erste Codebedingung erfüllt. Wenn ja, wird in einem Schritt 53 ein korrespondierender Zähler Z1 inkrementiert. In einem Schritt 54 wird dann überprüft, ob der Wert des Zählers Z1 eine Zählergrenze ZG1 überschreitet, also gegen eine Zählerbedingung verstößt. Wenn ja, ist dies ein Indiz dafür, dass der Anwender 10 missbräuchlich Gratislizenztransponder 12 gehortet hat und so versucht, den Erwerb einer kostenpflichtigen Lizenz zu umgehen. Wenn die Zählergrenze ZG1 durch den Zähler Z1 überschritten wird, wird daher trotz Erfüllen der Freischaltbedingung die Abarbeitung des Nutzteils 7 nicht aufgenommen bzw. nicht fortgesetzt.
  • Falls der ermittelte Codetyp keiner Gratislizenz entspricht, wird in analoger Weise in einem Schritt 55 überprüft, ob der ermittelte Codetyp einer Servicelizenz entspricht, die üblicherweise nur kurzzeitig am Rechner 1 ansteht. Wenn dies der Fall ist, wird in einem Schritt 56 ein weiterer Zähler Z2 inkrementiert. Auch hier wird der Wert des Zählers Z2 in einem Schritt 57 wieder mit einer weiteren Zählergrenze ZG2 verglichen. Wenn in diesem Fall ein Überschreiten der Zählergrenze ZG2 festgestellt wird, muss vermutet werden, dass eine Serviceperson wiederholt beim gleichen Rechner 12 seine Servicelizenz sozusagen "absichtlich verloren" hat. Auch in diesem Fall wird daher – trotz Erfüllung der Freischaltbedingung– die Abarbeitung des Nutzteils 7 nicht aufgenommen bzw. nicht fortgesetzt.

Claims (15)

  1. Freischaltverfahren für einen Nutzteil (7) eines Computerprogramms (5), das von einem Rechner abgearbeitet wird, – wobei der Rechner zumindest beim Aufruf des Computerprogramms (5) unter Abarbeitung eines Prüfteils (6) des Computerprogramms (5) einen mit dem Rechner verbundenen Sender (13) zum Aussenden eines Anregungssignals veranlasst, – wobei ein vom Rechner getrennter Transponder (12) das Anregungssignal empfängt, einen transponderinternen Speicher (21) in Abhängigkeit von der Nutzung des Computerprogramms (5) irreversibel ändert, den transponderinternen Speicher (21) auf Erfüllen einer Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, einen Freischaltcode (C2) aussendet, – wobei ein mit dem Rechner verbundener Empfänger (13) den Freischaltcode (C2) empfängt und an den Rechner übermittelt, – wobei der Rechner unter weiterer Abarbeitung des Prüfteils (6) den Freischaltcode (C2) auf Erfüllen einer Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7) nur dann aufnimmt, wenn die Freischaltbedingung erfüllt ist.
  2. Freischaltverfahren nach Anspruch 1, dadurch gekennzeichnet, – dass der Rechner aus der Abarbeitung des Nutzteils (7) heraus von Zeit zu Zeit die Abarbeitung des Prüfteils (6) aufnimmt und unter Abarbeitung des Prüfteils (6) erneut den Sender (13) zum Aussenden des Anregungssignals veranlasst, – dass der Transponder (12) erneut das Anregungssignal empfängt, erneut den transponderinternen Speicher (21) in Abhängigkeit von der Nutzung des Computerprogramms (5) irreversibel ändert, erneut den transponderinternen Speicher (21) auf Erfüllen der Speicherbedingung überprüft und, wenn die Speicherbedingung erfüllt ist, erneut den Freischaltcode (C2) aussendet, – dass der Empfänger (13) erneut den Freischaltcode (C2) empfängt und an den Rechner übermittelt, – dass der Rechner unter weiterer Abarbeitung des Prüfteils (6) erneut den Freischaltcode (C2) auf Erfüllen der Freischaltbedingung überprüft und die Abarbeitung des Nutzteils (7) nur dann fortsetzt, wenn der Freischaltcode (C2) erneut die Freischaltbedingung erfüllt.
  3. Freischaltverfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Freischaltbedingung von der Absolutzeit (T), der Relativzeit und/oder von der Zahl der Aufrufe des Computerprogramms (5) abhängig ist.
  4. Freischaltverfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass der Transponder (12) bei Anregung durch das Anregungssignal auch eine Absolutzeitbedingung überprüft und den Freischaltcode (C2) nur dann aussendet, wenn die Absolutzeitbedingung erfüllt ist.
  5. Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Sender (13) dem Transponder (12) im Anregungssignal einen Anregungscode (C1) übermittelt, dass der Transponder (12) den Anregungscode (C1) auf Erfüllen einer Anregungsbedingung überprüft und dass der Transponder (12) den Freischaltcode (C2) nur dann aussendet, wenn die Anregungsbedingung erfüllt ist.
  6. Freischaltverfahren nach Anspruch 5, dadurch gekennzeichnet, dass der Rechner dem Sender (13) den Anregungscode (C1) übermittelt, den der Sender (13) dem Transponder (12) übermitteln soll.
  7. Freischaltverfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass der Anregungscode (C1) personalisiert ist.
  8. Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner bei jeder Übermittlung des Freischaltcodes (C2) – den Freischaltcode (C2) auf Erfüllen mindestens einer Codebedingung überprüft, – bei Erfüllen der Codebedingung einen der Codebedingung zugeordneten Zähler (Z1, Z2) inkrementiert, – bei Inkrementierung des Zählers (Z1, Z2) diesen Zähler (Z1, Z2) auf Erfüllen einer Zählerbedingung überprüft und – die Abarbeitung des Nutzteils (7) nur dann aufnimmt bzw. fortsetzt, wenn die Zählerbedingung erfüllt ist.
  9. Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner dem Sender (13) eine Sendefrequenz (f1) übermittelt, auf der der Sender (13) das Anregungssignal aussenden soll.
  10. Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Rechner dem Empfänger (13) eine Empfangsfrequenz (f2) übermittelt, auf der der Empfänger (13) den Freischaltcode (C2) empfangen soll.
  11. Freischaltverfahren nach einem der obigen Ansprüche, dadurch gekennzeichnet, dass der Freischaltcode (C2) personalisiert ist.
  12. Transponder zur Durchführung eines Freischaltverfahrens nach einem der Ansprüche 1 bis 11.
  13. Transponder nach Anspruch 12, dadurch gekennzeichnet, dass er einen Mikroprozessor (17) aufweist.
  14. Kombination eines Computerprogramms (5) für einen Rechner zur Durchführung eines Freischaltverfahrens nach einem der Ansprüche 1 bis 11 mit einem Transponder (12) nach Anspruch 12 oder 13.
  15. Kombination eines mit einem Computerprogramm (5) nach Anspruch 14 programmierten Rechners mit einem Transponder (12) nach Anspruch 12 oder 13.
DE10155092A 2001-11-09 2001-11-09 Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen Expired - Lifetime DE10155092B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE10155092A DE10155092B4 (de) 2001-11-09 2001-11-09 Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen
JP2002323435A JP2003195970A (ja) 2001-11-09 2002-11-07 コンピュータプログラム製品の利用部分に対する分離方法および装置
US10/291,016 US7555654B2 (en) 2001-11-09 2002-11-08 Apparatus, transponder, computer program product and method for enabling an active part of a computer program
CNB021502935A CN100426176C (zh) 2001-11-09 2002-11-11 计算机程序产品应用部分的释放方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10155092A DE10155092B4 (de) 2001-11-09 2001-11-09 Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen

Publications (2)

Publication Number Publication Date
DE10155092A1 DE10155092A1 (de) 2003-05-28
DE10155092B4 true DE10155092B4 (de) 2006-10-05

Family

ID=7705195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10155092A Expired - Lifetime DE10155092B4 (de) 2001-11-09 2001-11-09 Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen

Country Status (4)

Country Link
US (1) US7555654B2 (de)
JP (1) JP2003195970A (de)
CN (1) CN100426176C (de)
DE (1) DE10155092B4 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10211555A1 (de) 2002-03-15 2003-10-02 Imtm Inst Fuer Medizintechnolo Verwendung der Inhibitoren von Enzymen mit Aktivitäten der Aminopeptidase N und/oder der Dipeptidylpeptidase IV und pharmazeutischen Zubereitungen daraus zur Therapie und Prävention dermatologischer Erkrankungen mit sebozytärer Hyperproliferation und veränderten Differenzierungszuständen
DE102004014712B4 (de) * 2004-03-25 2007-05-24 Siemens Ag Verfahren zur Freigabe oder Sperrung eines Betriebsmodus eines medizinischen Diagnosegeräts
DE102006018039B4 (de) * 2006-04-11 2010-11-25 Michael Letterer Verfahren zum Ausführen eines Programmcodes
DE102006052417A1 (de) * 2006-11-07 2008-05-08 Printed Systems Gmbh Verfahren und System sowie Kodekarte zum Herunterladen von digitalen Datenprodukten
DE102007030180A1 (de) * 2007-06-27 2009-01-02 Filo-Tec Gmbh Computersystem
DE102009042049A1 (de) 2009-09-17 2011-03-24 Siemens Aktiengesellschaft Instrumentensystem und Verfahren zum Einbringen eines medizinischen Instruments in einen Patienten
US20110144431A1 (en) * 2009-12-15 2011-06-16 Rainer Graumann System and method for controlling use of capsule endoscopes
US9619618B2 (en) 2015-03-18 2017-04-11 Covidien Lp Systems and methods for credit-based usage of surgical instruments and components thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994026043A1 (en) * 1993-04-27 1994-11-10 Saab-Scania Combitech Aktiebolag A system for wireless and encrypted transmission of information
US5761609A (en) * 1995-03-09 1998-06-02 United Microelectronics Corporation Limited use circuit
US5870726A (en) * 1994-05-25 1999-02-09 Lorphelin; Vincent Protected software rental using smart cards
WO1999011022A1 (en) * 1997-08-27 1999-03-04 Xydis Thomas G Computer access control

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3243331B2 (ja) * 1993-05-14 2002-01-07 富士通株式会社 ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体
JPH0746233A (ja) 1993-08-03 1995-02-14 Nippondenso Co Ltd 不正使用防止機能を備えた発信装置
US5736935A (en) * 1995-03-14 1998-04-07 Trw Inc. Keyless vehicle entry and engine starting system
JP3324735B2 (ja) * 1997-07-15 2002-09-17 コナミ株式会社 ゲームシステム及びゲーム用プログラムが記録されたコンピュータ読取可能な記録媒体
US6154136A (en) * 1998-02-26 2000-11-28 Van Eeden; Hendrik Lodewyk Free running RF identification system with increasing average inter transmission intervals
US7009516B2 (en) * 1998-03-12 2006-03-07 D.I.P.O. Sa Electronic sensor system for monitoring activity of objects
JP2000047866A (ja) 1998-07-27 2000-02-18 Nec Corp プログラム実行プロテクト方法およびicカード、並びに記録媒体
US6449651B1 (en) * 1998-11-19 2002-09-10 Toshiba America Information Systems, Inc. System and method for providing temporary remote access to a computer
CN1115629C (zh) * 1999-10-29 2003-07-23 深圳市中兴通讯股份有限公司 对软件中的各种资源进行检测的方法
US20040025035A1 (en) * 2000-10-23 2004-02-05 Rais Jean-Claude Contactless electronic identification system
US7134138B2 (en) * 2001-02-15 2006-11-07 Emc Corporation Methods and apparatus for providing security for a data storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994026043A1 (en) * 1993-04-27 1994-11-10 Saab-Scania Combitech Aktiebolag A system for wireless and encrypted transmission of information
US5870726A (en) * 1994-05-25 1999-02-09 Lorphelin; Vincent Protected software rental using smart cards
US5761609A (en) * 1995-03-09 1998-06-02 United Microelectronics Corporation Limited use circuit
WO1999011022A1 (en) * 1997-08-27 1999-03-04 Xydis Thomas G Computer access control

Also Published As

Publication number Publication date
US7555654B2 (en) 2009-06-30
JP2003195970A (ja) 2003-07-11
DE10155092A1 (de) 2003-05-28
CN100426176C (zh) 2008-10-15
CN1417658A (zh) 2003-05-14
US20030110260A1 (en) 2003-06-12

Similar Documents

Publication Publication Date Title
DE3732615C2 (de)
EP0811739B1 (de) Vorrichtung und Verfahren zur Prüfung der Nutzungsberechtigung für Zugangskontrolleinrichtungen, insbesondere Schliesseinrichtungen für Fahrzeuge
DE10155092B4 (de) Freischaltverfahren für einen Nutzteil eines Computerprogramms und zugehörige Einrichtungen
DE60212969T2 (de) Verfahren und vorrichtung zum verfolgen des status eines betriebsmittels in einem system zur verwaltung der benutzung der betriebsmittel
EP1220075B1 (de) System und Verfahren zum Erteilen der Laufberechtigung für ein auf einem Rechner installiertes Programm
DE60103596T2 (de) Kommunikationsvorrichtung zum schnellen und gleichzeitigen beschreiben einer vielzahl von datenträgern und zugehörige datenträger
WO2011110603A1 (de) Verfahren zur vergabe eines schlüssels an ein einem drahtlosen sensor-aktor-netz neu hinzuzufügendes teilnehmergerät
EP1314007A1 (de) Waage und verfahren zum betreiben einer waage
EP3567557A1 (de) Schliesssystem
DE102008047433A1 (de) Verfahren zum Freischalten von Funktionen eines Tachographen
EP1240569A2 (de) Verfahren und vorrichtung zur überprüfung einer datei
EP2038805B1 (de) Verfahren zum delegieren von privilegien an eine niedriger-privilegierte instanz durch eine höher-privilegierte instanz
EP3032505B1 (de) Verfahren zum Betreiben von Bezahlautomaten eines ID-basierten Zugangskontrollsystems für ein Post-Payment-Szenario
EP3039611B1 (de) Verfahren und vorrichtung zur übertragung einer information
EP3186740B1 (de) Verfahren zur installation einer zusätzlichen applikation in einem nicht-flüchtigen speicher einer chipkarte
DE19854137B4 (de) Home-Banking-System und Verfahren dafür
EP3692457A1 (de) Verfahren und system zum bereitstellen einer datentechnischen funktion mittels eines datenverarbeitungssystems eines spurgebundenen fahrzeugs
EP3306514B1 (de) Verfahren und vorrichtung zum zertifizieren einer sicherheitskritischen funktionskette
DE10203224B4 (de) Verwaltungsverfahren für Parametersätze für eine datentechnisch parametrierbare Einrichtung
DE102009058754A1 (de) Verfahren zur Reprogrammierung eines oder mehrerer Steuergeräte eines Fahrzeugs und Steuergerät
DE102004013904B4 (de) System, Vorrichtung und Verfahren zum Nachladen von verifiziertem Programmcode auf mobile Datenträger
EP3673614B1 (de) Verfahren und validierungseinrichtung zum validieren eines digitalen zertifikats
EP3306507B1 (de) Komponente für eine sicherheitskritische funktionskette
DE10130493B4 (de) Verfahren zur Freigabe eines Zugriffs auf ein elektronisches Steuergerät
DE112014004227B4 (de) Digitaler Tachograph

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R084 Declaration of willingness to licence
R085 Willingness to licence withdrawn
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021000000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0021220000

Ipc: G06F0021000000

Effective date: 20141104

R081 Change of applicant/patentee

Owner name: SIEMENS HEALTHCARE GMBH, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

R071 Expiry of right