DE69531079T2 - Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben - Google Patents

Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben Download PDF

Info

Publication number
DE69531079T2
DE69531079T2 DE69531079T DE69531079T DE69531079T2 DE 69531079 T2 DE69531079 T2 DE 69531079T2 DE 69531079 T DE69531079 T DE 69531079T DE 69531079 T DE69531079 T DE 69531079T DE 69531079 T2 DE69531079 T2 DE 69531079T2
Authority
DE
Germany
Prior art keywords
key
file
user
encrypted
software
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
DE69531079T
Other languages
English (en)
Other versions
DE69531079D1 (de
Inventor
Thomas Edward Louisville Cooper
Hudson Wayne Boulder Philips
Robert Franklin Longmont Pryor
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69531079D1 publication Critical patent/DE69531079D1/de
Publication of DE69531079T2 publication Critical patent/DE69531079T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system
    • 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/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Description

  • DER ERFINDUNG ZUGRUNDELIEGENDER ALLGEMEINER STAND DER TECHNIK
  • 1. Technischer Bereich:
  • Die vorliegende Erfindung betrifft im allgemeinen verschiedene Techniken zum Sichern des Zugriffs auf Software-Objekte, und insbesondere Techniken zur temporären Verschlüsselung und Einschränkung des Zugriffs auf Software-Objekte.
  • 2. Beschreibung des Standes der Technik:
  • Herstellung und Verkauf von Software-Produkten war die Ursache für großen Gewinn, den die Firmen eingefahren haben, die innovative Produkte anbieten, und dieser Trend wird sich fortsetzen insbesondere seit die Verbraucher immer besser mit dem Computer umgehen können. Computer-Software ist sehr schwer zu vermarkten, weil der potentielle Anwender kaum Gelegenheit hat, die verschiedenen Produkte prüfen zu können, die zur Verfügung stehen. In der Regel, sind die Produkte in Schachteln enthalten, die schrumpfverpackt luftdicht verschlossen sind, und der potentielle Anwender hat wenig oder keine Möglichkeit, die Software auszuprobieren oder vor dem Kauf Erfahrungen damit zu sammeln. Das führt zu einer beträchtlichen Unzufriedenheit mit den Produkten, da der Anwender häufig gezwungen wird, der Reihe nach eine Vielzahl von Software-Produkten zu kaufen, bis er ein Produkt findet, das seinen Anforderungen genügt. Das ist vielleicht ein signifikanter Grund für die häufige Software-Piraterie, die in unserer Wirtschaft vorkommt. Ein potentieller Software-Käufer wird häufig einen Satz Disketten von einem Freund oder einem Geschäftspartner "borgen" mit der ausdrücklichen Absicht, die Software für einen begrenzten Zeitraum zu erproben. Häufig erstreckt sich diese Anwendung auf lange Probezeiten, und der potentielle Kunde kauft schließlich keine Kopie des Software-Produkts mehr und behält statt dessen die geborgte Kopie.
  • Da kein gemeinsamer Kommunikationskanal zum Ausprobieren von Software-Produkten existiert, wie z. B. in den Kinos durch den Vorspann ein Hinweis auf Filme gegeben wird, wie auch im Fernsehen durch Werbespots, sind die Softwarehersteller gezwungen, sich auf gedruckte Werbetexte und Direktwerbung durch Post zu verlassen, um neue Produkte bekanntzumachen und neue Kunden zu werben. Leider sind gedruckte Veröffentlichungen häufig nicht in der Lage, eine genaue Beschreibung des Produkts zu geben, weil das Zusammenwirken mit dem Produkt in einem statisch gedruckten Format nicht simuliert werden kann. Sowohl. die Hersteller von Computersoftware-Produkten als auch die Kunden wären besser bedient, wenn der Kunde Zugriff auf das Produkt hätte, bevor er sich entscheidet, ob er es kaufen soll oder nicht, wenn das erreicht werden könnte, ohne das Risiko der illegalen Benutzung des Produkts befürchten zu müssen.
  • Die Verteilung verschlüsselter Software-Produkte ist ein Mechanismus, dessen sich ein Software-Verkäufer bedienen kann, um das Produkt vor dem eigentlichen Kauf an potentielle Anwender zu verteilen; jedoch muss dazu ein Schlüssel verteilt werden, der es dem Anwender ermöglicht, auf das Produkt zugreifen zu können. Damit muss sich der Verkäufer ausschließlich auf die Ehrlichkeit und Integrität eines potentiellen Kunden verlassen. Skrupellose und unehrliche Personen könnten die Schlüssel an ihre Freunde und Geschäftskollegen weitergeben, um ihnen einen unberechtigten Zugriff zu ermöglichen. Es ist auch möglich, dass skrupellose Personen Schlüssel an der Öffentlichkeit zugängliche Bulletin-Boards senden, um einer großen Anzahl Einzelpersonen zu ermöglichen, unberechtigte Anwender zu werden. In der Regel können solche Einbrüche in die Sicherheit nicht leicht verhindert werden, deshalb zögern Verkäufer, Software zur Ansicht an potentielle Kunden zu verteilen.
  • Auf dem Stand der Technik sind verschiedene Versuche zum Lösen dieses Problems des Datenschutzes bekannt: WO 94/07204 offenbart ein Software-Kopierschutzverfahren. Ein permanenter Anwendungsmodus kann nur dann gestartet werden, wenn ein geeignetes Lizenzverfahren befolgt wurde. Für diesen Einschränkungszweck wird ein Dateiverwaltungsprogramm benutzt. Das Dateiverwaltungsprogramm ist in der Patentanmeldung WO 94/07204 durch die Länge des Codes oder der digitalen Daten dargestellt und wird in das zu schützende Software-Objekt selbst aufgenommen. Diese Anwendung hat jedoch den Nachteil, dass für jedes geschützte Software-Objekt ein eigenes Dateiverwaltungsprogramm erforderlich ist, und es nicht sehr sicher, wenn dieses Dateiverwaltungsprogramm innerhalb des Software-Objekts selbst steht. Ferner ist es schwierig, eine zeitweilig begrenzte Anwendung für die geschützte Software zu implementieren.
  • Eine weitere Art Software-Kopierschutzmechanismus ist in der Patentanmeldung EP-A-0268 139 geoffenbart. Diese beschreibt die Verwaltung und Handhabung von Rechten zum Abarbeiten von Software, um illegales Kopieren der Software zu verhindern. Die Rechte der Abarbeitung nach der Installierung auf einem Computersystem sind in einem Coprozessor-Element des zusammengesetzten Computersystems gespeichert. Aber die Forderung nach einem gesonderten Coprozessor ist ein nachteiliger Zusatz.
  • Eine weitere Patentanmeldung EP-A-0561 685 offenbart ebenfalls ein elektronisches Datenschutzsystem. Eine verschlüs selte Genehmigungsinformation wird durch Verschlüsseln eines elektronischen Datenentschlüsselungs-Schlüssels auf der Grundlage eines Mediumschlüssels generiert, der selbst von einer Mediumzahl generiert wird, die aus dem Speichermedium genommen wird, das die zu schützende Software enthält. Diese Offenbarung benötigt jedoch ein Speichermedium zwischen dem Computer des Verkäufers und dem Computer des Anwenders. In diesem Speichermedium sind eine Mediumzahl, eine Genehmigungsinformation und die verschlüsselten elektronischen Daten gespeichert. Durch den Einsatz eines solchen zusätzlichen Speichermediums wird dieses Verfahren eine umständliche Methode des elektronischen Datenschutzes.
  • Das IBM Technical Disclosure Bulletin, Bd. 33 Nr. 12, Mai 1991, New York, US; S. 70–71 'Information Distribution via ROM Disks' beschreibt das Verteilen eines gesonderten Entladeprogramms zusammen mit einem Programmprodukt auf einer CD-ROM. Das wird benutzt für eine einmalige Installation von Produktteilen und Dokumentation für ein gekennzeichnetes Computersystem. Aber eine solche Verteilung ist nicht sehr nützlich, um dem Anwender eine zeitlich begrenzte Versuchsperiode zu ermöglichen, mit genügend Sicherheit gegen Software-Piraterie.
  • ZUSMMENFASSUNG DER ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Gerät zum Verteilen eines Software-Objekts von einer Quelle an einen Anwender bereitzustellen, in dem ein Software-Objekt durch Anwenden eines langlebigen Verschlüsselungs-Schlüssel verschlüsselt wird, und von der Quelle an den Anwender gerichtet ist. Das verschlüsselte Software-Objekt wird in ein anwender-gesteuertes Datenverarbeitungssystem mit einer besonderen Systemkonfiguration geladen. Eine numerische Maschinenidentifizierung auf der Grundlage, wenigstens teilweise, der besonderen Konfiguration des anwendergesteuerten Datenverarbeitungssystems wird dann abgeleitet. Als nächstes wird die numerische Maschinenidentifizierung an den Quellen-Betreiber übermittelt. Dann wird ein temporärer Schlüssel abgeleitet, der wenigstens teilweise auf der numerischen Maschinenidentifizierung und auf dem langlebigen Verschlüsselungs-Schlüssel beruht. Dann wird der temporäre Schlüssel von der Quelle an den Anwender übermittelt. Ein langlebiger Schlüsselgenerator ist vorgesehen zum Empfangen des temporären Schlüssels und Erzeugen des langlebigen Verschlüsselungs-Schlüssels beim Anwender. Der temporäre Schlüssel ermöglicht es dem Anwender, dass er den langlebigen Verschlüsselungs-Schlüssel für die Dauer eines vorgeschriebenen Intervalls generiert, um auf das Software-Objekt zuzugreifen. Diese Operationen werden hauptsächlich durch ein Dateiverwaltungsprogramm ausgeführt, das in einer Vielzahl von Modi betreibbar ist. Diese Modi umfassen einen eingestellten Betriebsmodus, einen Maschinenidentifizierungs-Betriebsmodus, und einen temporären Schlüsselableitungs-Betriebsmodus. Während des eingestellten Betriebsmodus wird das Dateiverwaltungsprogramm in ein anwender-gesteuertes Datenverarbeitungssystem geladen und einem Betriebssystem für das anwender-gesteuerte Datenverarbeitungssystem zugeordnet.
  • Im Maschinenidentifizierungs-Betriebsmodus wird das Dateiverwaltungsprogramm benutzt, um eine numerische Maschinenidentifizierung auf der Grundlage von wenigstens einem Attribut des anwender-gesteuerten Datenverarbeitungssystems abzuleiten. Während des Temporärschlüsselableitungs-Betriebsmodus wird ein temporärer Schlüssel abgeleitet, der wenigstens teilweise auf der numerischen Maschinenidentifizierung beruht. Das Dateiverwaltungsprogramm ermöglicht auch einen Versuchs-Betriebsmodus, in dem das Dateiverwaltungsprogramm verwendet wird, durch Ausführen desselben mit dem anwender-gesteuerten Datenverarbeitungssystem den Zugriff auf das Software-Objekt auf einen Zeitraum zu beschränken, der durch den temporären Schlüssel definiert wird, während dessen der langlebige Schlüsselgenerator im anwender-gesteuerten Datenverarbeitungssystem benutzt wird, um den langlebigen Schlüssel als Reaktion auf den Empfang von mindestens einem Eingang einschließlich des temporären Schlüssels vorzusehen.
  • Die Erfindung ist definiert gemäß den Verfahrensansprüchen 1 und 7 und dem Vorrichtungsanspruch 9.
  • Die obigen sowie noch weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden in der nachstehenden detaillierten schriftlichen Beschreibung offenbar.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen, für die Erfindung charakteristischen Merkmale sind in den anhängigen Ansprüchen aufgeführt. Die Erfindung sowie eine bevorzugte Anwendung derselben, ferner Aufgaben und Vorteile derselben, werden am besten unter Bezugnahme auf die nachstehende detaillierte Beschreibung anhand der begleitenden Zeichnungen verständlich; in diesen gilt:
  • 1 ist eine bildliche Darstellung eines eigenständigen Datenverarbeitungssystems, eines Telefons, und einer Vielzahl von Computer-zugreifbaren Speichermedien, die alle bei der Implementierung der bevorzugten Technik der Aktivierung einer Anwendung innerhalb einer Versuchsperiode für Software-Produkte benutzt werden können;
  • 2 ist eine bildliche Darstellung eines verteilten Datenverarbeitungssystems, das die Technik der vorliegenden Erfindung der Aktivierung einer Anwendung innerhalb einer Versuchsperiode für Softwareprodukte benutzen kann;
  • 3 ist eine Blockdiagrammdarstellung von Datenverarbeitungs-Attributen, die zum Generieren einer Maschinenidentifizierung gemäß der vorliegenden Erfindung benutzt werden können;
  • 4 ist eine bildliche Blockdiagrammdarstellung einer Routine zum Verschlüsseln von Software-Objekten;
  • 5 ist eine bildliche Darstellung eines Informationsaustausches zwischen einer Quelle (Software-Verkäufer) und einem Anwender (Kunde) gemäß den Lehren der vorliegenden Erfindung;
  • 6 ist eine Flussdiagramm-Darstellung der breiten Stufen, die beim Aufbau einer Benutzer-Schnittstellen-Oberfläche gemäß der vorliegenden Erfindung angewandt werden;
  • 7 ist eine Flussdiagramm-Darstellung des Zusammenwirkens von Verkäufer und Kunde gemäß der vorliegenden Erfindung;
  • 8, 9, 10a, l0b zeigen Anwender-Schnitttellen-Bildschirmanzeigen, die Versuchsperiodenoperationen gemäß der vorliegenden Erfindung ermöglichen;
  • 11 zeigt eine Anwender-Schnittstelle, die benutzt wird, einen temporären Zugriffsschlüssel zu initialisieren;
  • 12 ist eine Blockdiagrammdarstellung einer bevorzugten Technik des Generierens einer Maschinenidentifizierung;
  • 13 ist eine Blockdiagrammdarstellung einer Verschlüsselungsoperation, die zum Verschlüsseln einer Maschinenidentifizierung gemäß der vorliegenden Erfindung benutzt wird;
  • 14 ist eine Blockdiagrammdarstellung der bevorzugten Technik zum Generieren eines Produktschlüssels gemäß der vorliegenden Erfindung;
  • 15 ist eine Blockdiagrammdarstellung einer bevorzugten Technik, die einen temporären Produktschlüssel benutzt zum Generieren eines Echtschlüssels, der zum Entschlüsseln eines oder mehrerer Software-Objekte dient;
  • 16 und 17 zeigen eine bevorzugte Technik zum Gültigsetzen des Echtschlüssels, der gemäß dem Blockdiagramm in 15 abgeleitet ist;
  • 18 ist eine Blockdiagrammdarstellung der bevorzugten Routine zum Verschlüsseln einer Schlüsseldatei, die Informationen einschließlich eines temporären Produktschlüssels enthält;
  • 19 ist eine Blockdiagrammdarstellung der bevorzugten Technik zum Bearbeiten eines Verschlüsselungs-Anfangsblocks in einer verschlüsselten Datei gemäß der vorliegenden Erfindung;
  • 20 zeigt in Blockdiagrammform die Technik des Anwendens einer Vielzahl von Eingängen in das anwender-gesteuerte Datenverarbeitungssystem zum Ableiten des Echtschlüssels, der benutzt werden kann zum Entschlüsseln eines verschlüsselten Software-Objekts;
  • 21 zeigt eine Entschlüsselungsoperation unter Verwendung des gemäß 20 abgeleiteten Echtschlüssels;
  • 22 ist eine Blockdiagrammdarstellung einer Vergleichsoperation, die verwendet wird zum Feststellen der Gültigkeit des Echtschlüssels;
  • 23 zeigt eine Entschlüsselungsoperation unter Anwendung eines gültiggesetzten Echtschlüssels;
  • 24, 25, 26, 27, 28 zeigt die Anwendung eines Verschlüsselungs-Anfangsblocks gemäß der vorliegenden Erfindung;
  • 29 ist eine Flussdiagramm-Darstellung der bevorzugten Technik zum Vorsehen einer Anwendungsversuchsperiode für ein verschlüsseltes Software-Objekt;
  • 30 und 31 zeigen Export- und Importoperationen die benutzt werden können zum Durchführen von Benutzungsversuchsoperationen in einem verteilten Datenverarbeitungssystem.
  • 32 und 33 sehen eine alternative Ansicht der Import- und Exportoperationen vor, die in den 30 und 31 dargestellt sind;
  • 34 und 35 sind eine Blockdiagrammdarstellung einer alternativen Technik zum Durchführen einer Export-/Import-Operation.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Das Verfahren und das Gerät der vorliegenden Erfindung kann zum Aktivieren der Versuchsperiodenanwendung der Software-Produkte bei selbständigen PCs, wie sie in 1 dargestellt sind, oder in verteilten Datenverarbeitungssystemen, wie sie in 2 dargestellt sind, eingesetzt werden. In jedem der Fälle hängt der temporäre Versuchsperiodenzugriff auf ein oder mehrere Software-Produkte ab von der Benutzung des Versuchsprodukts in einem bestimmten Datenverarbeitungssystem mit besonderen Datenverarbeitungssystem-Attributen. Das wird erreicht durch Verschlüsseln des Versuchssoftware-Produkts mit Hilfe eines temporären Zugriffsschlüssels, der sich auf ein oder mehrere Datenverarbeitungssystem-Attribute gründet. 3 stellt graphisch eine Vielzahl von Systemkonfigurations-Attributen dar, die bei der Entwicklung eines temporären Zugriffsschlüssels benutzt werden können, wie nachstehend in Einzelheiten näher beschrieben wird. Zunächst werden die Umgebung des unabhängigen Datenverarbeitungssystems der 1 und das verteilte Datenverarbeitungssystem der 2 detailliert beschrieben, gefolgt von einer Beschreibung der besonderen Systemkonfigurations-Attribute, die in 3 dargestellt sind.
  • Nehmen wir jetzt Bezug auf die Figuren und insbesondere auf die 1; dort ist eine bildliche Darstellung des Datenverarbeitungssystems 10 gezeigt, das gemäß der vorliegenden Erfindung programmiert werden kann. Wie man sieht, beinhaltet das Datenverarbeitungssystem 10 den Prozessor 12, der vorzugsweise einen Graphikprozessor, eine Speichervorrichtung und eine Zentraleinheit (nicht dargestellt) umfasst. Gekoppelt an den Prozessor 12 ist die Video-Anzeige 16, die implementiert werden kann durch Verwenden entweder eines Farbmonitors oder eines monochromatischen Monitors, wie im Fachbereich wohlbekannt ist. Ebenso angekoppelt an den Prozessor 12 ist die Tastatur 14. Die Tastatur 14 besteht vorzugsweise aus einer Standard-Computertastatur, die über ein Kabel an den Prozessor gekoppelt ist.
  • An den Prozessor 12 angekoppelt ist ferner eine graphische Zeigervorrichtung, z. B. eine Maus 20. Die Maus 20 ist mit dem Prozessor 12 auf eine in Fachgebiet wohlbekannte Art über ein Kabel gekoppelt. Wie gezeigt, ist die Maus mit einer linken Taste 24 und einer rechten Taste 26 versehen, die jede gedrückt, das heißt "angeklickt" werden kann, um Befehls- und Steuersignale an das Datenverarbeitungssystem 10 zu geben. Während die geoffenbarte Ausführungsform der vorliegenden Erfindung eine Maus benutzt, ist dem Fachmann bewußt, dass jede graphische Zeigevorrichtung, wie z. B. ein Lichtgriffel oder ein berührungsempfindlicher Bildschirm, benutzt werden kann, um das Verfahren der vorliegenden Erfindung zu implementieren. Unter Bezugnahme auf die obigen Ausführungen erkennt der Fachmann, dass das Datenverarbeitungssystem 10 implementiert werden kann durch Anwenden eines sogenannten Personalcomputers wie z. B. Computer Modell 80 PS/2, gefertigt von der International Business Machines Corporation in Armonk, New York.
  • Die vorliegende Erfindung kann in selbständigen Datenverarbeitungssystemen angewendet werden, sie kann jedoch auch in einem verteilten Datenverarbeitungssystem angewendet werden, vorausgesetzt, die Import- und Export-Routinen der vorliegenden Erfindung werden zum Übertragen einer oder mehrerer verschlüsselter Dateien, ihrer verschlüsselten Schlüsseldateien und der zugeordneten Dateiverwaltungsprogramme durch ein ortsbewegliches Speichermedium (wie Disketten oder Bänder) zwischen bestimmten Datenverarbeitungseinheiten innerhalb des verteilten Datenverarbeitungssystems verwendet werden. Die Import- und Export-Routinen der vorliegenden Erfindung werden nachstehend in weiteren Einzelheiten beschrieben, es ist jedoch bedeutsam, dass zunächst ein grundlegendes verteiltes Datenverarbeitungssystem beschrieben und verstanden wird.
  • 3 zeigt eine Blockdiagramm-Darstellung einer Vielzahl von Datenverarbeitungssystem-Attributen, die benutzt werden können, um eindeutig ein bestimmtes Datenverarbeitungssystem (ob ein selbständiges Gerät oder einen Knoten in einem verteilten Datenverarbeitungssystem) zu identifizieren, und die ferner benutzt werden können zum Generieren eines Identifizierungswerts in der Maschine, der benutzt wird, um einen temporären Produktzugriffsschlüssel abzuleiten oder zu generieren, der benutzt werden kann, um Zugriff auf ein verschlüsseltes Produkt für ein bestimmtes vorgegebenes Versuchsintervall zu schaffen. Ein Datenverarbeitungssystem kann eine bestimmte Systembus-6O-Architektur, einen bestimmten Speicher-Controller 74, einen Bus-Controller 76, ein Unterbrechungssteuergerät 78, Tastatur-Maus-Controller 80, DMR-Controller 66, VGA-Video-Controller 82, Parallelcontroller 84, Seriencontroller 86, Diskettencontroller 88 und Plattencontroller 82 beinhalten. Zusätzlich kann eine Vielzahl von leeren oder besetzten Schlitzen 106 benutzt werden, um das besondere Datenverarbeitungssystem zu identifizieren. Jedes bestimmte Datenverarbeitungssystem kann Attribute aufweisen, die vom RAM 70, ROM 68, oder CMOS RAM 72 abgeleitet werden können. Endgeräte, wie Drucker 96, Monitor 94, Maus 92, Tastatur 90, Diskette 100 oder Laufwerk 104 können benutzt werden, um ein oder mehrere Attribute des Datenverarbeitungssystems abzuleiten, die auf eine bestimmte Art und Weise bearbeitet werden, um einen Maschinenidenti fizierungswert abzuleiten. Die Ableitung des Maschinenidentifizierungswerts wird nachstehend in weiteren Einzelheiten beschrieben. Die vorliegende Erfindung ist gerichtet auf ein wirksames Verfahren zum Verteilen von Softwareprogrammen an Anwender, die ihnen ein Mittel zum Ausprobieren des Programms geben, bevor sie eine Lizenz (durch Kauf) dafür erwerben. Gemäß diesem Konzept werden komplette Programme an potentielle Anwender auf computer-zugreifbaren Speichermedien, wie z. B. Disketten oder CD-ROMs verteilt. Das Konzept ist, Schlüssel zu generieren, die es dem Anwender ermöglichen, von verteilten Medien aus auf die Programme zuzugreifen. In dieser Umgebung sieht ein Dateiverwaltungsprogramm eine Vielzahl vom Schnittstellen vor, die es ermöglichen, dass der Anwender die verschiedenen Produkte durchsucht. Die Schnittstellen ermöglichen das Ordern und Entsperren der Software-Produkte, die auf dem verteilten Medium stehen. Das Entsperren des Software-Produkts wird erreicht durch Empfangen, Gültigmachen und Aufzeichnen auf einen temporären Zugriffs-(Entschlüsselungs)-Schlüssel.
  • Das Dateiverwaltungsprogramm ist im anwendergesteuerten Datenverarbeitungssystem resident und wird Teil des Betriebssystems im Computer des Anwenders. Ein Beispiel für ein solches residentes Programm (in PC-DOS-Umgebung) wäre ein residentes TSR-Programm für "terminate and stay resident"-Operationen (Speicherresidentes Dienstprogramm), das DOS-Datei-Eingangs- und -Ausgangsoperationen abfängt und bearbeitet. Wenn ein Schlüssel für einen vorübergehenden Zugriff einem Anwender übermittelt wurde, werden die Systemdateien geprüft, ob diese Datei bereits früher im Versuchsbetriebsmodus angewandt wurde. Wenn das Erzeugnis noch nie in einem Versuchsbetrieb benutzt wurde, wird der temporäre Schlüssel abgespeichert. Sobald der Versuchsbetriebsmodus-Schlüssel existiert, kann eine verschlüsselte Anwendung nur dann zum Laufen gebracht werden, wenn sie vom Dateiverwaltungsprogramm initialisiert wurde. Das Dateiverwaltungsprogramm erkennt, dass die Anwendung verschlüsselt ist und dass ein gültiger Versuchsbetriebsmodus für diese bestimmte Operation existiert. Ein gültiger Versuchsappliktionsmodus-Schlüssel ist einer, der noch nicht abgelaufen ist. Der Versuchsbetriebsmodus kann entweder durch einen Zeitgeber oder einen Zähler definiert werden. Ein Zeitgeber kann benutzt werden, um eine bestimmte vordefinierte Periode (z. B. dreißig Tage) herunterzuzählen; alternativ kann der Zähler benutzt werden, eine vorgegebene Anzahl von Versuchs-"Sitzungen" herunterzuzählen, die während des Versuchsbetriebsmodus erlaubt sind. Wenn der Schlüssel gültig ist, kommuniziert das Datenverwaltungsprogramm direkt mit dem TSR und aktiviert den Versuchsbetriebsmodus für eine besondere verschlüsselte Anwendung. Das Dateiverwaltungsprogramm schaltet dann die verschlüsselte Applikation ab. Der Code, der im Betriebssystem des anwendergesteuerten Datenverarbeitungssystems resident ist, behält die Steuerung des Betriebssystems bei. Es überwacht die Anwendung der Versuchsmodusbetriebschlüssel, um Dateien entschlüsseln und in den Speicher laden zu lassen, verhindert jedoch, dass die verschlüsselten Dateien entschlüsselt und auf Speicherträger kopiert werden. Das geschieht durch Benutzen des Betriebssystems um festzustellen, welche Anwendungen versuchen, Zugriff auf die Daten zu erhalten, und lassen nur solche Applikationen zu, die eine Berechtigung für einen Zugriff auf die Daten haben.
  • 4 ist eine Blockdiagrammdarstellung einer Routine zum Verschlüsseln von Software-Objekten. Die binären Schriftzeichen, aus denen das Software-Objekt 201 besteht, werden als Eingang in die Verschlüsselungsmaschine 205 gegeben. Der Echtschlüssel 203 wird als ein Verschlüsselungs-Schlüssel in der Verschlüsselungsmaschine 205 benutzt. Der Ausgang der Verschlüsselungsmaschine 205 ist ein verschlüsseltes Software-Objekt 207. Die Verschlüsselungsmaschine 205 kann jede herkömmliche Verschlüsselungsoperation sein, wie z. B. der öffentliche und wohlbekannte DES-Algorithmus; alternativ kann die Verschlüsselungsmaschine 205 eine Ausschließlich-ODER-Operation sein, die das Software-Objekt 201 in Zufallszahlen umwandelt.
  • 5 ist eine bildliche Darstellung des Austauschs von Informationen zwischen einer Quelle 209 (ein Software-Verkäufer) und einem Anwender 211 (ein potentieller Kunde) gemäß den Lehren der vorliegenden Erfindung. Die Pfeile zwischen Quelle 209 und Anwender 211 stellen den Austausch von Objekten oder Informationen zwischen dem Verkäufer 209 und Kunden 211 dar. Beim Austausch des Flusses 213 wird computer-zugreifbares Speichermedium von Quelle 209 zum Anwender 211 geschickt. Dieser Transfer kann durch US-Postzustellung, Kurierzustellung, Expreßdienstzustellung oder durch Lieferung auf gedruckte Publikationen, wie Bücher und Magazine, geschehen. Alternativ kann auch eine elektronische Unterlage von der Quelle 209 zum Anwender 211 geliefert werden durch Benutzen der Elektronischen Mail oder sonstiger Übertragungstechniken. In Fluss 215 wird anwender-spezifische Information, vorzugsweise einschließlich einer eindeutigen Maschinenidentifizierungsnummer, die das Datenverarbeitungssystem des Anwenders 211 identifiziert, vom Anwender 211 über einen unsicheren Verbindungskanal an die Quelle 209 geschickt; in der Regel wird diese Information telefonisch ausgetauscht, kann aber auch über Elektronische Mail oder sonstige Kommunikationstechniken übertragen werden. In Fluss 217 liefert die Quelle 209 einen Produktschlüssel an den Anwender 211. Der Produktschlüssel ermöglicht, dass auf das Produkt, das im Speichermedium enthalten ist, für ein vorgeschriebenes und vordefiniertes Intervall temporär zugegriffen wird. Dieses Intervall wird als "Versuchs"-Intervall angesehen, während dem sich der Anwender 211 mit der Software vertraut machen kann und seinen Entschluss fassen kann, ob er das Software-Produkt kaufen will oder nicht. Anwender 211 muss zusätzlich mit Quelle 209 kommunizieren, um einen permanenten Zugriff auf das Software-Produkt zu erhalten. Der Produktschlüssel ermöglicht es dem Anwender 211, für eine bestimmte vorgegebene Zeitspanne oder auch für eine bestimmte vorgegebene Anzahl von "Sitzungen" Zugriff auf das Software-Produkt zu nehmen. Mit der Zeit läuft der Zeitgeber oder der Zähler ab. Am Ende der Versuchsperiode wird jeder weitere Zugriff verweigert. Daher muss der Anwender effektive Schritte unternehmen, um sich mit der Quelle 209 in Verbindung zu setzen, und einen permanenten Schlüssel zu kaufen, der dem Anwender 211 übermittelt wird und der ein Produkt permanent entsperrt, um unbeschränkten Zugriff auf das Software-Produkt zuzulassen.
  • Die Kommunikation zwischen Quelle 209 und Anwender 211 wird durch eine Anwender-Schnittstelle ermöglicht. Der Aufbau der Schnittstelle ist in Flussdiagrammform in 6 gezeigt. Der Prozess beginnt im Softwareblock 219 und geht zu Softwareblock 221 über, in dem die Quelle 209 Sprach- und Ort-Auswahl trifft, die die Sprache und Währungen bestimmt, die in der Schnittstelle benutzt werden sollen, und die Implementierung der Versuchsperiodenanwendung des Software-Produkts ermöglicht. Eine Vielzahl von Software-Produkten können gebündelt und in einem einzigen computer-zugreifbaren Speichermedium an den Anwender 211 geliefert werden. Daher muss laut Softwareblock 223 die Quelle 209 eine Entscheidung treffen, welche Programme auf Versuchsbasis auf dem computerzugreifbaren Speichermedium verfügbar gemacht werden sollen, und die entsprechenden Felder werden laut Softwareblock 223 ergänzt. Als nächstes werden laut Softwareblock 225 die Programme funktional beschränkt oder verschlüsselt. Dann, laut Softwareblock 227, wird die Benutzeroberfläche zusammen mit den Computerprogrammprodukten auf ein computer-zugreif bares Speichermedium, wie z. B. eine Diskette oder eine CD-ROM, geladen. Der Prozess endet am Softwareblock 229.
  • 7 ist eine Flussdiagrammdarstellung des Zusammenwirkens zwischen Verkäufer und Kunden gemäß der vorliegenden Erfindung. Der Ablauf beginnt mit Softwareblock 231 und geht über zu Schritt 233, in dem computer-zugreifbare Speichermedien für ein Erproben-und-Kaufen-Versuchsintervall an Anwender verteilt werden. Dann wird, laut Schritt 235, das Dateiverwaltungsprogramm vom computer-zugreifbaren Speichermedium auf ein anwendergesteuertes Datenverarbeitungssystem zur Ausführung geladen. Das Dateiverwaltungsprogramm beinhaltet eine Vielzahl von Schnittstellenbildschirmen, die das Zusammenwirken zwischen Verkäufer und Kunden ermöglichen und die verfügbaren Optionen für den Kunden anzeigen. Somit ermöglicht laut Schritt 237 das Dateiverwaltungsprogramm das Durchsuchen und zeigt die richtigen Anwender-Schnittstellen an. Als nächstes arbeiten laut Schritt 239 der Kunde und der Verkäufer zusammen, in der Regel über das Telefon oder durch Elektronische Mail, damit der Verkäufer Informationen über den Kunden einholen kann, und um einen temporären Schlüssel, der den Zugriff auf ein oder mehrere Software-Produkte ermöglicht, die auf dem computer-zugreifbaren Speichermedium für ein vordefiniertes Versuchsintervall enthalten sind. In der Regel wird das Intervall von einem internen Zeitgeber oder einem Zähler definiert, der die Anzahl der Sitzungen, die der potentielle Käufer mit dem bestimmten Software-Produkt oder -Produkten hat, verfolgt. Schritt 241 stellt die Zulässigkeit der Versuchsintervall-Anwendung dar. Gemäß dem Softwareblock 243 überwacht und verfolgt das Dateiverwaltungsprogramm alle Eingaben- und Ausgabenaufrufe im Datenverarbeitungssystem, um eine unzulässige Anwendung der verschlüsselten Software-Produkte, die auf dem computerzugreifbaren Speichermedium enthalten sind, zu verhindern. In der bevorzugten Ausführungsform der vorliegenden Erfindung verfolgt das Dateiverwaltungssprogramm Aufrufe an verschlüsselte Dateien und bestimmt dann, ob Zugriff gewährt oder verweigert werden soll, bevor die Datei für weitere Verarbeitung weitergegeben wird. Der Kunde kann auf das Software-Produkt zugreifen und sich entscheiden, ob er es kaufen will. Wenn die Entscheidung für den Kauf fällt, muss sich der Kunde noch einmal mit dem Verkäufer in Verbindung setzen, und der Verkäufer muss dem Kunden einen Permanentschlüssel aushändigen, wie in Schritt 245 angezeigt ist. Der Prozess endet, sobald der Kunde den Permanentschlüssel erhält, der ein oder mehrere Software-Produkte entschlüsselt, die er gekauft hat und dann damit einen üblichen uneingeschränkten Zugriff auf die Software-Produkte bekommt.
  • 8, 9, 10a und lOb zeigen Anwender-Schnittstellen-Bildschirme, die Versuchgsperioden-Operationen gemäß der vorliegenden Erfindung ermöglichen. 8 zeigt eine Auftrags-Vordruck-Anwenderschnittstelle 249, die angezeigt wird, wenn der Kunde eine "Ansichtsauftrag"-Option von einem anderen Fenster aus anwählt. Die Auftragsvordruck-Anwenderschnittstelle 249 beinhaltet eine Titelleiste 251, die den Softwareverkäufer identifiziert, und eine Telefonnummer angibt um das Zusammenwirken zwischen dem potentiellen Kunden und dem Verkäufer zu ermöglichen. Ein Auftragsvordruckfeld 255 ist vorgesehen, das eines oder mehrere Software-Produkte identifiziert, die während einer Versuchsbetriebsperiode geprüft werden können. Eine Vielzahl von Teilfeldern sind vorgesehen, einschließlich Stückzahl-Teilfeld 259, Gegenstand-Teilfeld 257, Beschreibungsteilfeld 260 und Preisteilfeld 253. Das Lösch-Schaltfeld 261 gibt dem potentiellen Kunden die Möglichkeit, einzelne Teile aus dem Auftragsvordruckfeld zu löschen. Das Teilfeld 263 gibt eine Teilsumme der Preise für die in Auftrag gegebene Software an. Zahlungsverfahren-Icons 265 identifizieren die zulässigen Zahlungsformen. Natürlich kann ein potentieller Anwender auch die Telefonnummer benutzen, um sich direkt mit dem Verkäufer in Verbindung zu setzen und ein oder mehrere Software-Produkte zu kaufen; als Alternative kann der Anwender ein oder mehrere Software-Produkte für einen Versuchsperioden-Operationsmodus auswählen, in dem ein Software-Produkt geprüft wird, um seine Zulässigkeit zu bestimmen. Eine Vielzahl von Funktions-Icons 267 sind im untersten Teil einer Auftragsvordruck-Schnittstelle 249 vorgesehen. Diese beinhalten ein geschlossenes Icon, Fax-Icon, Mail-Icon, Druck-Icon, Entsperr-Icon, und Hilfe-Icon. Der Anwender kann eine graphische Zeigevorrichtung in einer herkömmlichen Zeige-und-Klick-Operation benutzen, um eine oder mehrere dieser Optionen anzuwählen. Das Fax-Icon ermöglicht die Verbindung mit dem Käufer, der eine Fax-Maschine oder ein Fax-Board benutzt. Das Druck-Icon ermöglicht es dem Anwender, eine Papierkopie der Interaktion für das Archiv mit dem Software-Verkäufer zu generieren.
  • Der Kunde, das computer-zugreifbare Speichermedium und das vom Kunden benutzte Computersystem werden identifiziert durch die Medienidentifizierung 269, Kundenidentifizierung 273 und Maschinenidentifizierung 271. Die Medienidentifizierung wird dem computer-zugreifbaren Speichermedium vor dem Absenden an den potentiellen Kunden zugeordnet. Diese ist fest und kann nicht geändert werden. Die Kundenidentifizierung 273 leitet sich ab von dem Zusammenwirken zwischen dem potentiellen Kunden und dem Verkäufer. Vorzugsweise gibt der Kunde Antworten auf ausgewählte Fragen in einem Telefondialog, und der Verkäufer steuert die Kundenidentifikation 273 bei, die für den bestimmten Kunden eindeutig ist. Die Maschinenidentifizierung 271 leitet sich automatisch ab durch Benutzen des Dateiverwaltungsprogramms, das resident ist auf dem computerzugreifbaren Speichermedium ist, und eindeutig dem bestimmten Datenverarbeitungssystem zugeordnet ist, das vom potentiellen Kunden benutzt wird. Der potentielle Kunde wird dem Verkäufer die Maschinenidentifizierungsnummer schicken, in der Regel durch Telefon, obwohl Faxverkehr und regulärer Postverkehr auch möglich ist.
  • 9 ist eine Darstellung einer Bestellformblattdialog-Schnittstelle 275. Diese Schnittstelle ermöglicht das Einholen von Informationen, die eindeutig den potentiellen Kunden identifizieren, und beinhaltet das Namensfeld 277, das Adressenfeld 279, das Telefonnummernfeld 281, das Fax-Nummernfeld 283, das Zahlungsverfahrensfeld 285, das Versandverfahrensfeld 283, das Kontonummernfeld 289, das Fälligkeitsdatumsfeld 291, das Mehrwertsteuern-ID-Feld 281. Das Auftraginformationsdialogfeld 275 enthält ferner die Druckschaltfläche 295 und die Löschschaltfläche 297, die es dem potentiellen Anwender ermöglichen, Informationen aus diesen Feldern zu löschen oder eine Papierkopie des Schnittstellenschirms zu drucken.
  • Die 10a und 10b stellen die Entsperrungsdialog-Schnittstellenbildschirme 301, 303 dar. Der Anwender benutzt eine graphische Zeigervorrichtung, um eine oder mehr Positionen anzuwählen, die identifiziert werden durch das Inhaltspositionsnummernfeld 307 und Beschreibungsfeld 309, die Inhalt der Entsperrungsliste 305 sind. Die Schnittstelle beinhaltet ferner Kunden-ID-Feld 313 und Maschinen-ID-Feld 315. Vorzugsweise schickt der Verkäufer die Kundenidentifizierung an den Kunden in einem Dialog über Telefon, Fax oder Post. Vorzugsweise liefert der Kunde dem Verkäufer die Maschinenidentifizierung im Maschinenidentifizierungsfeld 315 während des Dialogs über Telefon, Fax oder Post. Sobald die Information zusammen mit einer Identifizierung des Produkts ausgetauscht ist, die für eine Versuchsintervall-Operationsperiode verlangt sind, wird ein temporärer Zugriffsschlüssel vorgesehen, der im Schlüsselfeld 311 angeordnet ist. Der Schlüssel dient dazu, die identifizierten und vom Kunden ausgewählten Produkte temporär zu entsperren. Das Schließen-Kontaktfeld 319, Abspeichern-Kontaktfeld 317 und Hilfe-Kontaktfeld 321 sind zum Ermöglichen des Anwenderdialogs ebenso in diesem Schnittstellenbildschirm vorgesehen.
  • 10b stellt einen Einzelprodukt-Entsperr-Schnittstellenbildschirm 303 dar. Dieser Schnittstellenbildschirm beinhaltet nur das Maschinenidentifizierungsfeld 315, das Anwenderidentifizierungsfeld 315, und das Schlüsselfeld 311. Das Produkt, das entsperrt wird, braucht in dieser Schnittstelle nicht identifiziert zu werden, da sich der Dialog nur auf ein einziges Produkt bezieht, und angenommen wird, dass der Anwender weiß, für welches Produkt eine temporäre Versuchsoperationsperiode gefordert wird. Speicherkontaktfläche 317, Abbruchkontaktfläche 319 und Hilfekontaktfläche 321 sind in dieser Schnittstelle ebenfalls vorgesehen, um die Betreiberinteraktion zu ermöglichen.
  • 11 zeigt einen Anwender-Schnittstellenbildschirm, der benutzt wird zum Entsperren des verschlüsselten Produkts bzw. der verschlüsselten Produkte zu Beginn eines Versuchsintervall-Betriebsmodus. Der Anlaufdatumdialog der 11 wird angezeigt, nachdem die Schaltfläche "SAVE" (Abspeichern) im Entsperr-Dialog in 10a bzw. in 10b angewählt wurde. Der Anwender wird aufgefordert, die Richtigkeit des Anlaufdatums zu überprüfen, das im Datumsfeld 310 angezeigt wird. Der Anwender beantwortet die Frage durch Anzeigen und Anklicken entweder der Schaltfläche "Continue" (weiter) 312 der Schaltfläche 314 "Cancel" (Abbruch) oder der Schaltfläche "Help" (Hilfe) 316. Das in Feld 310 angezeigte Datum leitet sich ab vom Systemzeitgeber des anwendergesteuerten Datenverarbeitungssystems. Der Anwender muss möglicherweise den Systemzeitgeber modifizieren, um das Datum mit dem öffentlichen oder dem angegebenen Datum des Beginns der Versuchsbetriebsperiode in Übereinstimmung zu bringen.
  • Ein Versuchsintervall-Betrieb kann zwei Formen annehmen: Eine Form ist ein funktional deaktiviertes Produkt, das es einem Anwender ermöglicht, alle Merkmale auszuprobieren, jedoch keine kritische Funktion wie Drucken oder Abspeichern der Datendateien zulässt. Ein weiterer Typ eines Versuchsintervalls ist ein voll funktionsfähiges Produkt, das für eine begrenzte Zeit benutzt werden kann. Das erfordert einen Zugriffsschutz, und ermöglicht es einem Kunden, alle Funktionen eines Produkts frei oder für eine nominelle Gebühr auszuprobieren. In der Regel wird gemäß der vorliegenden Erfindung der Zugriff auf das Produkt durch einen "timed" (zeitbeschränkten) Schlüssel gesteuert. Die Versuchsperiode zum Benutzen des Produkts ist eine feste Zeitspanne, die vom Verkäufer vorgegeben wird. Die Versuchsperiode beginnt, sobald der Schlüssel ausgeliefert wird. Gemäß der vorliegenden Erfindung können die vor-angesehenen Produkte während der Dauer des Versuchsbetriebsintervalls nur innerhalb einer Kunden-Schale gefahren werden. Ein Entschlüsselungstreiber lässt weder zu, dass die verschlüsselten Produkte im Klartext kopiert werden, noch lässt er zu, dass die Produkte außerhalb der Kunden-Schale gefahren werden. In einer alternativen Ausführungsform wird das Versuchsintervall durch einen Zähler definiert, der bei jeder "Session" (Sitzung), die der Kunde mit dem Produkt hat, das Versuchsintervall durch einen Zähler inkrementiert bzw. dekrementiert. Das ermöglicht dem Kunden eine vorgegebene Anzahl Anwendungen, bevor das Entschlüsseln mit dem temporären Schlüssel nicht mehr länger zulässig ist.
  • Die Grenzen des temporären Zugriffsschlüssels sind in einen "Steuervektor" des Schlüssels eingebaut. In der Regel beinhaltet ein Steuervektor eine kurze Beschreibung des Schlüssels, eine Maschinenidentifizierungsnummer und eine formatierte Textfolge, in der als Versuchsintervalldatum (wie z. B. ein Zeitgeberwert oder ein Zählerwert) angegeben sind. Der Steuervektor kann nicht ohne Knacken des Schlüssels geändert werden. Wenn ein geschütztes Software-Produkt gefahren wird, müssen die Anwendungsdaten auf standgebracht werden, um die Grenzen der Versuchsintervall-Betriebsperiode gültig zu machen. Um den Zeitgeber oder Zähler gegen Manipulationen zu schützen, wird sein Wert an mehreren Stellen abgespeichert, in der Regel in verschlüsselten Dateien. In der bevorzugten Ausführungsform der vorliegenden Erfindung wird die Versuchsintervallinformation (Zeitgeberwert und/oder Zählerwert) in eine "Schlüsseldatei", die später noch eingehend beschrieben wird, in eine Maschinenidentifizierungsdatei, die ebenfalls nachstehend diskutiert wird, und in eine Systemdatei kopiert. Wenn der Zugriff auf ein verschlüsseltes Programm gefordert wird, werden alle diese Stellen überprüft, um festzustellen, ob der Wert für den Zeitgeber und/oder den Zähler der gleiche ist. Es ist unwahrscheinlich, dass ein durchschnittlicher Anwender genügend Wissen hat, um alle drei Dateien erfolgreich zu verändern. In der bevorzugten Ausführungsform wird eine Kombination eines Zeitgebers und eines Zählers angewandt, um eine verlängerte Anwendung von Datensicherung und Rücksetz-Operationen zum Rückstellen des Systemzeitgebers zu verhindern. Zwar ist es möglich, den Taktgeber eines PCs jedesmal, wenn eine Versuchsanwendung angefordert wird, zurückzusetzen, jedoch kann das auch durch Verfolgen der Datum/Zeit-Stempel bestimmter Dateien im System und Benützen des letzten Datums zwischen den Datum/Zeit-Stempel und dem Systemzeitgeber erfasst werden. Wie oben gesagt, ist eine der drei Stellen, an denen die Zeitgeber- und/oder Zählerinformationen gespeichert sind, eine Systemdatei. Beim Betrieb eines OS/2-Betriebssystems können die Zeit- und Benutzungsdaten in den Systemdatendateien abgespeichert werden, wie z. B. OS2.INI im OS/2-Betriebssystem. Der Anwender muss diese Dateien laufend aufstandbringen und wiederherstellen, um die Versuchs- und Benutzungsdaten zurückzustellen. Diese Dateien enthalten weitere Daten, die für den Betrieb des Anwendersystems signifikant sind. Der Wenigbenutzer kann bei anderen Anwendungen durch Wiederherstellen dieser Dateien in einer älteren Version zufällig wichtige Daten verlieren. In der vorliegenden Erfindung hindern diese Schutzmaßnahmen einen unehrlichen Anwender weitgehend am Versuch, die Anwendung über das Versuchsintervall hinaus unzulässig zu verlängern.
  • Allgemein gesagt, in der vorliegenden Erfindung lädt der Verkäufer eine Vielzahl verschlüsselter Software-Produkte auf ein computer-zugreifbares Speichermedium, wie z. B. eine CD-ROM oder eine magnetische Speichermedium-Diskette. Ferner wird auch auf das computer-zugreifbare Speichermedium ein Dateiverwaltungsprogramm geladen, das eine Vielzahl von Funktionen ausführt, einschließlich der Funktion des Vorsehens einer Vielzahl von Anwenderschnittstellen-Bildschirmanzeigen, die die Interaktion zwischen dem Softwareverkäufer und dem Software-Kunden ermöglicht. Das computerzugreifbare Speichermedium wird auf ein anwendergesteuertes Datenverarbeitungssystem geladen, und das Dateiverwaltungsprogramm wird zur Ausführung geladen. Das Dateiverwaltungsprogramm sieht eine Vielzahl von Anwenderschnittstellen-Bildschirmanzeigen für den Software-Kunden vor, die Informationen über den Kunden (Name, Adresse, Telefonnummer und Rechnungserstellungsinformationen) erfasst und die Auswahl des Kunden der Softwareerzeugnisse empfängt, für die ein Versuchsintervall gewünscht wird. Informationen werden ausgetauscht zwischen dem Softwareverkäufer und dem Karteikunden, einschließlich: Eine Kundenidentifikationsnummer, eine Produktidentifikationsnummer, eine Mediumidentifikationsnummer und eine Maschinenidentifikationsnummer. Der Verkäufer generiert die Kundenidentifikationsnummer gemäß seinem eigenen internen Aufzeichnungsverfahren. Vorzugsweise erfasst der Vertreter des Software-Verkäufers Informationen vom Software-Kunden und tippt diese Informationen in den dafür vorgesehenen leeren Vordruck, um den potentiellen Software-Kunden zu identifizieren. Als Alternative kann der Softwareverkäufer ein Fax oder eine Mail-Übermittlung des ausgefüllten Auftragsinformationsdialog-Schnittstellenbildschirm 275 (in 9). Die verteilten Speichermedien (wie z. B. CDs und Disketten) umfassen ferner ein Dateiverwaltungsprogramm, das benutzt wird zum Generieren einer eindeutigen Maschinenidentifikation auf der Grundlage mindestens teilweise auf einem Attribut des anwendergesteuerten Datenverarbeitungssystems. Diese Maschinenidentifikation ist vorzugsweise eine auf Zufall gegründete Acht-Bit-Zahl, die während eines einmaligen Installationsverfahrens erzeugt wird. Vorzugsweise werden acht Zufallsbits generiert von einem grundlegenden Zufallszahlengenerator, der die Systemzeit für den Zufallszahlengenerator als Startparameter benutzt. Vorzugsweise werden zum Endergebnis Prüfbits addiert. Diese Prüfbits sind kritisch für das Bestellsystem, weil Personen, die Bestellungen aufnehmen, die Maschinen-ID eingeben müssen, die der Kunde über das Telefon vorliest. Die Prüfbits ermöglichen z. B. die augenblickliche Überprüfung der Maschinen-ID ohne vom Kunden zu verlangen, er solle die Nummer wiederholen. Vorzugsweise wird eine Stammdatei auf dem anwendergesteuerten Datenverarbeitungssystem geführt, das den Klartext der Maschinenidentifikation und eine verschlüsselte Version der Maschinenidentifizierung enthält.
  • Wenn der Software-Kunde einen Auftrag für eine temporäre Anwendung des Software-Produkts gibt, gibt er dem Vertreter des Softwareverkäufers am Telefon mündlich die Maschinenidentifikation bekannt. Seinerseits gibt dann der Vertreter dem Software-Kunden telefonisch einen Produktschlüssel bekannt, der als temporärer Zugriffsschlüssel für die ver schlüsselten Software-Produkte auf dem computer-zugreifbaren Speichermedium sowie als eine Kundenidentifizierungsnummer dient. Vorzugsweise ist der Produktschlüssel eine Funktion der Maschinenidentifizierung, der Kundennummer, des echten Verschlüsselungs-Schlüssels für das bestellte Programm bzw. die Programme, und eines Blocks von Steuerdaten. Der Software-Kunde kann den Produktschlüssel durch Kombinieren desselben mit der Kundennummer und einem identischen Block Steuerdaten zum Herstellen des echten Verschlüsselungs-Schlüssels überprüfen. Dieser Schlüssel wird dann benutzt zum Entschlüsseln eines verschlüsselten Gültigmachungssegments, um eine Vergleichsoperation zu ermöglichen. Wenn das verschlüsselte Gültigmachungssegment identisch ist mit dem bekannten Klartext für das Gültigmachungssegment, dann hat das Dateiverwaltungsprogramm des Anwenders bestimmt, dass der Produktschlüssel ein brauchbarer Produktschlüssel ist und für einen temporären Zugriff auf die Software-Produkte benutzt werden kann. Wenn daher der Vergleich stimmt, wird der Schlüssel auf dem anwendergesteuerten Datenverarbeitungssystem in einer Schlüsseldatei abgespeichert. Vorzugsweise enthält die Schlüsseldatei den Produktschlüssel, einen Kundenschlüssel (der aus der Kundennummer und einem internen Schlüsselgenerierungsschlüssel generiert wird) und eine klare ASCII-Kette mit der Maschinenidentifizierung. Alle drei Posten müssen unverändert bleiben, damit das Entschlüsselungswerkzeug den echten Verschlüsselungs-Schlüssel ableitet. Um ferner die Schlüsseldatei an dieses besondere anwendergesteuerte Datenverarbeitungssystem anzuhängen, wird die gleiche Schlüsseldatei mit einem Schlüssel verschlüsselt, der von Systemparametern abgeleitet ist. Diese Systemparameter können abgeleitete werden von der Konfiguration des Datenverarbeitungssystems.
  • Allgemein gesprochen, in der vorliegenden Erfindung wird der temporäre Schlüssel (der in der Regel mündlich über das Telefon gegeben wird), aus einem Algorithmus erzeugt, der eine Verschlüsselung zum Kombinieren des Echtschlüssels mit einer Kundennummer, der Maschinenidentifizierungsnummer und weiterem vorgegebenen Klartext benutzt. Somit ist der Schlüssel nur wirksam für eine einzige Maschine: Auch wenn der Schlüssel einer anderen Person gegeben würde, würde er das Programm auf der Maschine dieser anderen Person nicht entsperren. Das ermöglicht es dem Softwareverkäufer, Softwareprogramme durch Verteilen vollständiger Programme auf computer-zugreifbaren Speichermedien, wie z. B. Disketten oder CD-ROMs, ohne signifikantes Risiko des Verlusts der Lizenzeinkünfte zu vermarkten.
  • Einige der bevorzugten eindeutigen Attribute des Systems, die für Verschlüsselungsoperationen benutzt werden können, beinhalten die Seriennummer der Festplatte, Größe und Format der Festplatte, Systemmodellnummer, Hardwareschnittstellenkarten, Hardwareseriennummer und sonstige Konfigurationsparameter. Das Ergebnis dieser Technik ist, dass eine Maschinenidentifizierungsdatei nur auf einem System entschlüsselt werden kann, das ein identischer Klon des anwendergesteuerten Datenverarbeitungssystems ist. Das ist sehr schwierig zu erreichen, da die meisten Datenverarbeitungssysteme unterschiedliche Konfigurationen aufweisen, und die Konfigurationen nur mit beträchtlichem Aufwand zur Übereinstimmung gebracht werden können. Diese Merkmale werden in der nachstehenden Beschreibung dargelegt.
  • Gehen wir jetzt über zu 12; das Dateiverwaltungsprogramm erhält das verteilte computer-zugreifbare Speichermedium mit den verschlüsselten Software-Produkten und ein darin enthaltenes Dateiverwaltungsprogramm. Das Dateiverwaltungsprogramm bewertet die Konfiguration des anwendergesteuerten Datenverarbeitungssystems, wie in Schritt 351 der 12 gezeigt ist. Die anwenderspezifischen Attribute des Daten verarbeitungssystems werden in Schritt 353 abgeleitet und als Eingang in den Maschinenidentifizierungsgenerator 355 eingegeben, der vorzugsweise ein Zufallszahlengenerator ist, der eine Vielzahl von Binärzeichen als Eingang erhält und einen Pseudozufallsausgang generiert, der repräsentativ für die Maschinenidentifizierung 357 ist. Der vom Maschinenidentifizierungsgenerator 355 angewandte Prozess ist jeder beliebige, herkömmliche Pseudozufallszahlengenerator, der als Eingang Binärzeichen erhält und als Ausgang gemäß einem vorgegebenen Algorithmus eine Vielzahl von Pseudozufallszahlen produziert.
  • Beziehen wir uns jetzt auf 13; die Maschinenidentifizerung 357 ist auch im Dateiverwaltungsprogramm in verschlüsselter Form enthalten. Die Maschinenidentifizierung 357 wird als Eingang an die Verschlüsselungsmaschine 359 gelegt, um als Ausgang die verschlüsselte Maschinenidentifizierung 361 zu erzeugen. Die Verschlüsselungsmaschine 359 kann jede beliebige herkömmliche Verschlüsselungsroutine enthalten, wie z. B. den DES-Algorithmus. Ferner ist ein Schlüssel 363 als Eingang zur Verschlüsselungsmaschine 359 vorgesehen und wirkt in herkömmlicher Weise auf die Verschlüsselungsoperation. Schlüssel 363 leitet sich vom Systemattributwähler 365 ab. Die Typen der Systemattribute, die für die Wahl in Betracht kommen, finden sich in der Systemattributauflistung 367, in der enthalten sind: Die serielle Festplattennummer, die Größe der Festplatte, das Format der Festplatte, die Systemmodellnummer, die Hardware-Schnittstellenkarte, die Hardware-Seriennummer oder sonstige Konfigurationsparameter.
  • Gemäß der vorliegenden Erfindung sind die Klartext-Maschinenidentifizierung 357 und die verschlüsselte Maschinenidentifizierung 361 im Speicher abgespeichert. Auch postet, gemäß der vorliegenden Erfindung, das Dateiverwaltungsprogramm automatisch die Klartext-Maschinenidentifizierung 357 an die richtigen Anwenderschnittstellen-Bildschirme. Der Anwender übermittelt dann die Maschinenidentifizierung dem Softwareverkäufer, wo sie gemäß dem Blockdiagramm der 14 verwendet wird. Wie gezeigt wird, bleibt die Produktschlüssel-Verschlüsselungsmaschine 375 unter der Steuerung des Software-Verkäufers. Diese Produktschlüssel-Verschlüsselungsmaschine 375 erhält als Eingang: Die Maschinenidentifizierung 357, eine Kundennummer 369 (die dem Kunden gemäß der internen Registerführung des betreffenden Softwareverkäufers zugewiesen wurde), den echten Verschlüsselungs-Schlüssel 371 (der benutzt wird zum Entschlüsseln der Software-Produkte, die auf dem computer-zugreifbaren Speichermedium unter der Verwahrung des Software-Kunden bleibt), einen Steuerblocktext 373 (der jeder beliebige vordefinierte Textteil sein kann) und Versuchsintervalldaten 374 (wie z. B. Zeitgeber- und/oder Zählerwert, der das benutzte Versuchsintervall definiert). Die Produktschlüssel-Verschlüsselungsmaschine produziert als Ausgang einen Produktschlüssel 377. Der Produktschlüssel 377 kann dem Software-Kunden über einen unsicheren Kommunikationskanal ohne das Risiko der Enthüllung des Echtschlüssels 371 übermittelt werden. Der Echtschlüssel 371 wird durch die Verschlüsselungsoperation maskiert, und da der Produktschlüssel 377 nur auf einem Datenverarbeitungssystem benutzt werden kann, das eine Konfiguration hat, die identisch mit derjenigen der Maschine ist, von welcher die Maschinenidentifizierung 357 abgeleitet wurde, bleibt das verschlüsselte Software-Produkt absolut sicher.
  • Mit Lieferung des Produktschlüssels 377 benutzt das Dateiverwaltungsprogramm, das im anwendergesteuerten Datenverarbeitungssystem resident ist, den Echtschlüsselgenerator 379, um eine Vielzahl von Eingängen zu erhalten, einschließlich Produktschlüssel 377, Kundennummer 369, Steuerblocktext 373, Maschinenidentifizierung 357 und Versuchs intervalldaten 374. Der Echtschlüsselgenerator 379 produziert als Ausgang den abgeleiteten Echtschlüssel 381.
  • Als nächstes wird, wie in den 16 und 17 gezeigt, der abgeleitete Echtschlüssel 381 geprüft, um Gültigkeit und Authentizität des Produktschlüssels 377 festzustellen, der vom Softwareverkäufer geliefert wurde. Wie gezeigt, wird der abgeleitete Echtschlüssel 381 als Eingang an die Verschlüsselungsmaschine 385 gelegt. Ein vorbestimmtes verschlüsseltes Überprüfungsdatensegment 383 wird an den anderen Eingang der Verschlüsselungsmaschine 385 gelegt. Die Verschlüsselungsmaschine liefert als Ausgang den abgeleiteten Klarprüftext 387. Dann wird gemäß 17 der abgeleitete Klarprüftext 387 im Vergleicher 389 mit dem bekannten Klarprüftext 391 verglichen. Der Vergleicher 389 führt einfach einen Bit-um-Bit-Vergleich des abgeleiteten Klarprüftexts 387 mit dem bekannten Klarprüftext 391 durch. Wenn der abgeleitete Klarprüftext 387 mit dem bekannten Klarprüftext 391 übereinstimmt, wird eine Schlüsseldatei gemäß Schritt 393 erzeugt; wenn jedoch der abgeleitete Klarprüftext 387 nicht mit dem bekannten Klarprüftext 391 übereinstimmt, wird eine Warnung an das anwendergesteuerte Datenverarbeitungssystem gemäß Schritt 395 gepostet.
  • Gehen wir jetzt über zu 18; die dargestellte Schlüsseldatei 397 enthält den temporären Produktschlüssel, den Kundenschlüssel, (der eine verschlüsselte Fassung der Kundennummer ist), die Maschinenidentifizierungsnummer in Klartext und die Versuchsintervalldaten (wie einen Zeitgeber- und/oder Zählerwert). Diese Schlüsseldatei bildet einen Eingang in die Verschlüsselungsmaschine 399. Auch Schlüssel 401 wird an den Eingang der Verschlüsselungsmaschine 399 gelegt. Schlüssel 401 wird abgeleitet aus den eindeutigen Systemattributen 403 wie die Systemattribute, die bei der Ableitung der Maschinenidentifizierungsnummer benutzt werden.
  • Die Verschlüsselungsmaschine 399 liefert als Ausgang die verschlüsselte Schlüsseldatei 405.
  • Die 19, 20, 21, 22 und 23 stellen Operationen des Dateiverwaltungsprogramms dar, nachdem ein temporärer Zugriffsschlüssel empfangen und überprüft und in der Schlüsseldatei 397 (18) registriert wurde.
  • 19 ist eine Blockdiagrammdarstellung der Schritte, die durchgeführt werden, wenn ein verschlüsseltes Software-Produkt vom anwendergesteuerten Datenverarbeitungssystem zum Arbeiten aufgerufen wurde. Die verschlüsselte Datei 405 wird geholt und der "Anfangsblockteil" 407 wird vom anwendergesteuerten Datenverarbeitungssystem gelesen. Der Anfangsblock hat eine Anzahl Komponenten einschließlich den Ort der Schlüsseldatei. Der Ort der Schlüsseldatei wird benutzt zum Holen der Schlüsseldatei gemäß Schritt 409. Der Anfangsblock beinhaltet ferner einen verschlüsselten Überprüfungstext 411. Der verschlüsselte Überprüfungstext 411 wird auch vom anwendergesteuerten Datenverarbeitungssystem gelesen. Wie bereits oben gesagt (und in 18 dargestellt), beinhaltet die Schlüsseldatei den Produktschlüssel 419, einen Kundenschlüssel 417, und die Maschinenidentifizierung 415. Diese werden als Eingänge an die Entschlüsselungsmaschine 413 gelegt. Entschlüsselungsmaschine 413 sieht als Ausgang den Echtschlüssel 421 vor. Bevor der Echtschlüssel 421 zum Entschlüsseln verschlüsselter Software-Produkte im verteilten Speichermedium benutzt wird, wird er getestet, um seine Gültigkeit festzustellen. 21 ist ein Blockdiagramm des Gültigkeitsüberprüfens. Der verschlüsselte Gültigkeitstext 423, der im "Anfangsblock" enthalten ist, ist als Eingang in die Entschlüsselungsmaschine 425 vorgesehen. Der Echtschlüssel 421 (der im Betrieb der 20 abgeleitet wurde), wird auch als Eingang an die Entschlüsselungsmaschine 425 gelegt. Die Entschlüsselungsmaschine 425 sieht als Ausgang den Gültigkeitsklartext 427 vor. Wie in Blockdiagrammform in 22 gezeigt wird, wird der Gültigkeitsklartext 427 als Eingang an den Vergleicher 429 gelegt. Der bekannte Gültigkeitsklartext 431 wird auch als Eingang an den Vergleicher 429 gelegt. Der Vergleicher 429 bestimmt, ob der abgeleitete Gültigkeitsklartext 427 mit dem bekannten Gültigkeitsklartext 431 übereinstimmt. Wenn die Texte übereinstimmen, wird das Software-Objekt gemäß Schritt 433 entschlüsselt; jedoch, wenn die Gültigkeitstextteile nicht übereinstimmen, wird eine Warnung gemäß Schritt 435 gepostet. 23 ist eine Blockdiagrammdarstellung der Entschlüselungsoperation in Schritt 433 in 22. Das verschlüsselte Software-Objekt 437 wird als Eingang an die Entschlüsselungsmaschine 439 gelegt. Der gültige Echtschlüssel 441 wird auch als Eingang an die Entschlüsselungsmaschine 439 gelegt. Die Entschlüsselungsmaschine 439 liefert als Ausgang das entschlüsselte Software-Objekt 443.
  • Der Verschlüsselungs-Anfangsblock ist vorgesehen, damit die Bestimmung möglich wird, ob eine Datei verschlüsselt ist oder nicht, wenn diese Datei zusammen mit Klartextdateien gespeichert wird. Beim Vorsehen des Verschlüsselungs-Anfangsblocks für die verschlüsselte Datei ist es wichtig, dass die Größe der Datei nicht verändert wird, weil die Größe als Teil eines Gültigkeitsschrittes bei der Installation überprüft werden kann (das hat keinen Bezug auf das Konzept der vorliegenden Erfindung). Eine Vergrößerung der Datei über ihre Soll-Größe hinaus kann bei der Installierung der Software betriebliche Schwierigkeiten verursachen. Der Verschlüsselungs-Anfangsblock ist ferner erforderlich, da die den verschlüsselten Software-Produkten zugeordneten Dateinamen nicht verändert werden können, um der Tatsache Rechnung zu tragen, dass die Datei verschlüsselt ist, weil die übrigen Softwareapplikationen, die möglicherweise auf das verschlüsselte Produkt zugreifen, auf diese Dateien unter deren ursprünglichen Namen Zugriff nehmen. Also würde das Verändern des Dateinamens zum Anzeigen, dass die Datei verschlüsselt ist, die vorteilhafte und gewünschte Kommunikation zwischen dem verschlüsselten Software-Produkt und den anderen, vielleicht zugehörigen Software-Produkten verhindern. Zum Beispiel können Arbeitsblattanwendungen in der Regel Teile des Arbeitsblatts zu einem zugehörigen textverarbeitenden Programm führen, um die Integration finanzieller Informationen in gedruckte Dokumente zu ermöglichen. Eine Veränderung des festcodierten ursprünglichen Dateinamens für das Textverarbeitungsprogramm würde die vorteilhafte Kommunikation zwischen diesen Software-Produkten verhindern. Der Verschlüsselungs-Anfangsblock der vorliegenden Erfindung löst diese Probleme durch Beibehalten der verschlüsselten Datei in ihrer nominalen Dateilänge und Beibehaltung des Dateinamens für das Software-Produkt in unveränderter Form.
  • 24 zeigt graphisch eine verschlüsselte Datei mit dem Verschlüsselungs-Anfangsblock 451. Der Verschlüsselungsanfangsblock 451 beinhaltet eine Vielzahl von Code-Segmenten, einschließlich: Eindeutiger Identifizierungsteil 453, Namen des Schlüsseldateiteils 455, verschlüsseltes Gültigkeitssegment 457, Verschlüsselungstyp 459, Verschiebung zur Seitendatei 461, und verschlüsselte Dateidaten 463. Natürlich sind in dieser Sicht die verschlüsselten Dateidaten 463 repräsentativ für das verschlüsselte Software-Produkt, wie z. B. ein Textverarbeitungsprogramm oder ein Arbeitsblatt. Der Verschlüsselungs-Anfangsblock 451 ist vorgesehen anstelle von verschlüsselten Daten, die gewöhnlich einen Teil des verschlüsselten Software-Produkts enthalten. Der Verschlüsselungs-Anfangsblock tritt an die Stelle des ersten Teils des verschlüsselten Software-Produkts. Um den Verschlüsselungs-Anfangsblock 451 an den Anfang des verschlüsselten Software-Produkts der verschlüsselten Dateidaten 463 zu setzen, muss ein Teil der verschlüsselten Daten an eine andere Stelle kopiert werden. Verschiebung in die Seitendatei 461 identifiziert diejenige Seitendateistelle, wo die versetzten Dateidaten stehen.
  • 25 zeigt graphich die Zusammenhänge zwischen dem Verzeichnis der verschlüsselten Dateien und der Seitendateien. Wie gezeigt wird, beinhaltet das Verzeichnis der verschlüsselten Dateien 465 die Datei aaa, Datei bbb, Datei ccc, Datei ddd bis Datei nnn. Jede dieser Dateien ist repräsentativ für einen Verzeichnisnamen eines bestimmten Verschlüsselten Software-Produkts. Jedem verschlüsselten Software-Produkt ist eine Seitendatei zugeordnet, die den Frontteil der Datei enthält, der verschoben wurde, um den Verschlüsselungs-Anfangsblock 451 unterzubringen ohne die Größe der Datei und den Dateinamen zu verändern. Der Datei aaa ist eine Seitendatei AAA zugeordnet. Software-Produkt-Datei bbb hat eine zugeordnete Datei BBB, dem verschlüsselten Software-Produkt ccc ist eine Seitendatei CCC zugeordnet. Dem verschlüsselten Software-Produkt ddd ist eine Seitendatei DDD zugeordnet. Dem verschlüsselten Software-Produkt nnn ist eine Seitendatei NNN zugeordnet. In 25 sind die Verzeichnisnamen 467, 469, 471, 473, 475 als den Seitendateien 477, 479, 481, 483 und 485 zugeordnet gezeigt. Der Zweck dieser Seitendateien ist, dass jedes der verschlüsselten Software-Produkte mit einem Verschlüsselungs-Anfangsblock gekennzeichnet werden kann, ohne die Dateigröße zu ändern.
  • Das Verschlüsselungstypsegment 459 des Verschlüsselungs-Anfangsblocks 451 identifiziert den Typ der Verschlüsselung, die benutzt wurde, um das verschlüsselte Software-Produkt zu verschlüsseln. Jede einer Anzahl von herkömmlichen Verschlüsselungstechniken kann zum Verschlüsseln des Produkts benutzt werden, und unterschiedliche Verschlüsselungstypen können benutzt werden, um unterschiedliche Software-Produkte zu verschlüsseln, die im gleichen Speichermedium enthalten sind. Verschlüsselungstypsegment 459 stellt sicher, dass die richtige Verschlüsselungs/Entschlüsselungsroutine aufgerufen wird, so dass das verschlüsselte Software-Produkt entschlüsselt werden kann, vorausgesetzt die temporären Zugriffsschlüssel sind gültig und noch nicht abgelaufen. Der Name des Schlüsseldateisegments 455 der Verschlüsselungs-Anfangsblock 451 sieht eine Adresse (in der Regel eine Stelle in einem Plattenlaufwerk) der Schlüsseldatei vor. Wie oben (im Zusammenhang mit 18) gesagt, beinhaltet die Schlüsseldatei den Produktschlüssel, einen Kundenschlüssel und die Maschinen-Klar-ID. Alle drei dieser Informationsbruchteile sind erforderlich, um den Echtschlüssel (gemäß 20) zu generieren. Das verschlüsselte Gültigmachungssegment 457 beinhaltet den verschlüsselten Gültigmachungstext, der in der in 21 gezeigten Routine benutzt wird, die einen abgeleiteten Gültigmachungsklartext generiert, der durch Anwenden der Routine in 22 auf den bekannten Gültigmachungsklartext verglichen werden kann. Nur wenn der abgeleitete Gültigmachungsklartext genau mit dem bekannten Gültigmachungsklartext übereinstimmt, kann der Prozess durch Verwenden des abgeleiteten und des gültiggemachten Echtschlüssel zum Entschlüsseln des verschlüsselten Software-Produkts gemäß der Routine in 23 weitergehen. Jedoch müssen vor der Durchführung der Entschlüsselungsoperationen der 23 die Inhalte der entsprechenden Seitendateien wieder zurück in das verschlüsselte Software-Produkt an die Stelle des Verschlüsselungs-Anfangsblock 451 gesetzt werden. Das stellt sicher, dass das verschlüsselte Software-Produkt vollständig ist, bevor die Entschlüsselungsoperationen beginnen.
  • Jedesmal wenn eine Datei vom Betriebssystem des anwendergesteuerten Datenverarbeitungssystems zur Bearbeitung aufgerufen wird, fängt das Dateiverwaltungsprogramm, das im Betriebssystem resident ist, die Eingabe/Ausgabe-Anforderung ab und untersucht den Frontteil der Datei, um festzulegen, ob ein Verschlüsselungsblock-Identifikator, wie z. B. ein eindeutiger Identifikator 453, an einer bestimmten, bekannten Stelle existiert. Zwecks bester Leistung, wie in den 24 gezeigt wird, steht diese Stelle im allgemeinen am Anfang der Datei. Wenn das Dateiverwaltungsprogramm feststellt, dass die Datei einen Verschlüsselungsblock aufweist, liest das TSR den Block in den Speicher. Der Block wird dann lexikalisch zerlegt, um einen voll qualifizierten Schlüsselnamen aufzubauen durch Kopieren einer Umgebungsveränderlichen, die Laufwerk und Verzeichnis spezifiziert, das die Schlüsseldateien enthält, und verkettet den Schlüsseldateinamen vom Verschlüsselungsblock. Das TSR versucht dann, die Schlüsseldatei zu öffnen. Wenn die Schlüsseldatei nicht existiert, sendet das TSR eine Anwort "Zugriff verweigert" an die Anwendung, die versucht, die verschlüsselte Datei zu öffnen. Wenn festgestellt wird, dass die Schlüsseldatei existiert, öffnet das TSR die Schlüsseldatei und liest die Schlüssel (Produktschlüssel, Kundenschlüssel und Maschinenidentifizierung) ein und generiert den Echtschlüssel. Dieser Echtschlüssel wird benutzt zum Entschlüsseln der Entschlüsselungsblock-Gültigkeitsdaten. Wie oben gesagt, bestimmt ein Vergleich, ob diese Entschlüsselungsoperation erfolgreich war. Wenn der Vergleich fehlgeht, wird bestimmt, dass die Schlüsseldatei "ungültig" ist, und das TSR gibt eine Meldung "Zugriff verweigert" an die Applikation, die versucht die verschlüsselte Software zu öffnen. Wenn aber der Vergleich erfolgreich ist, geht das Dateiverwaltungsprogramm dazu über, die Datei zu entschlüsseln gemäß dem Verschlüsselungstyp, der in der Verschlüsselungs-Anfangsblock gefunden wurde. Dann gibt das TSR eine gültige Dateihandhabung an die aufrufende Applikation zurück, um anzuzeigen, dass die Datei geöffnet wurde. Wenn die Applikation Daten von der verschlüsselten Datei liest, liest und entschlüsselt das TSR die Daten bevor sie sie an die Applikation zurückgibt. Wenn die angeforderten Daten Teil der versetzten Daten sind, die in der Seitendatei gespeichert sind, liest das TSR die Seitendatei und gibt den richtigen entschlüsselten Block an die aufrufende Applikation zurück, ohne dass die aufrufende Applikation überhaupt bemerkt, dass die Daten von einer gesonderten Datei kommen.
  • Während die breiten Konzepte des Verschlüsselungs-Anfangsblocks in den 24 und 25 dargestellt sind, sind die mehr in Einzelheiten gehenden Aspekte des Erstellens der verschlüsselten Dateien in den 26, 27 und 28 gezeigt. Die 27 und 28 zeigen zwei Typen von Datendateien. 27 zeigt eine nichtausführende Datendatei während 28 eine ausführende Datendatei zeigt. 26 zeigt einen Anfangsblock 499, der ein Signatur-Segment 501, Anfangsblock-LEN 503, Seitendatei-Index 505, Seitendatei-LEN 507, Entschlüsselungstyp-Identifikator 509, Überprüfungs-Daten 511 und einen Schlüsseldateinamen 518 beinhaltet. Wie in 27 gezeigt wird, beginnt ein Software-Produkt als Klardatei 521, wird mit einer bestimmten Verschlüsselungsroutine zur verschlüsselten Datei 523 verschlüsselt. Das Verschlüsselungstypsegment 509 des Anfangsblocks 499 identifiziert den Verschlüsselungstyp, der benutzt wurde, um die Klardatei 521 in die verschlüsselte Datei 523 umzuwandeln. Dann wird der Frontteil der verschlüsselten Datei 523 auf die Seitendatei 527 kopiert, die durch den Seitendateiindex 505 und die Seitendatei-LEN 507 des Anfangsblocks 499 identifiziert wird. Zusätzlich ist auch eine Kopie des Klartexts der Prüfdaten in die Seitendatei 527 eingeschlossen. Dann wird der Anfangsblock 499 auf den Vorderteil der verschlüsselten Datei 523 kopiert, um modifizierte verschlüsselte Dateien 525 zu bilden. Ein ähnlicher Prozess wird angewendet für Ausführungsdateien, wie in 28 gezeigt wird. Die Klartextkopie des Software-Produkts (dargestellt als Klardatei 531) ist gemäß einer herkömmlichen Routine verschlüsselt, um die verschlüsselte Datei 533 zu bilden. Der Vorderteil der verschlüsselten Datei 533 wird auf die Seitendatei 539 kopiert, so dass die überschriebenen Daten der verschlüsselten Datei 533 gesichert bleiben. Ferner beinhaltet die Seitendatei 539 eine Kopie des Klartexts der Überprüfungsdaten. Dann wird die verschlüsselte Datei 533 modifiziert durch Überlagern eines ausführbaren Programmstumpfs 537 und des Anfangsblocks 599 auf den ersten Teil der verschlüsselten Datei 553.
  • Jetzt soll der Zweck des ausführbaren Programmstumpfs 537 in 28 beschrieben werden. Das DOS-Betriebssystem für einen Personalcomputer versucht, eine verschlüsselte Applikation auszuführen. Das kann dazu führen, dass sich das System "aufhängt" oder ein sonstiger ungünstiger Effekt auftritt. Der ausführbare Programmstumpf 357 der durchführbaren Datei in 28 wird benutzt, den Anwender gegen den Versuch zu schützen, Applikationen auszuführen, die verschlüsselt sind: Es gäbe da ein beträchtliches Risiko, dass der Anwender sein System aufhängen oder ein Laufwerk formatieren würde, wenn er versuchen würde eine verschlüsselte Datei zu fahren. Der ausführbare Programmstumpf ist am vorderen Teil des verschlüsselten Software-Produkts angehängt, so dass dieser Stumpf ausgeführt wird, wenn die Applikation ohne das installierte TSR oder das TSR von einem Laufwerk aus gefahren würde, das das TSR nicht "überwacht". Dieses Triebwerk postet eine Mitteilung an den Anwender, die erklärt, warum die Applikation nicht laufen kann. Zusätzlich zum abgeben einer Meldung kann dieser ausführbare Stumpf benutzt werden, besonders hochwertige Aktionen auszuführen, wie z. B.:
    • (1) Er kann die Funktionalität des TSR verdoppeln und dynamische Verschlüsselung installieren, bevor er die Applikation ein zweites Mal abschaltet;
    • (2) er kann eine temporäre Zugriffstaste einschalten und die Applikation ein zweites Mal abschalten;
    • (3) er kann mit dem TSR kommunizieren und es informieren, es solle nach dem Plattenlaufwerk sehen, von dem aus die Applikation betrieben wird.
  • Der ausführbare Stumpf wird abgespeichert oder auf das verschlüsselte Programm kopiert wie folgt:
    • (1) Die Anwendung ist verschlüsselt;
    • (2) ein Entschlüsselungsblock wird für dieses Programm erzeugt;
    • (3) ein vor-erzeugter ausführbarer Stumpf wird an das vordere Ende des Entschlüsselungsblocks angehängt;
    • (4) die Länge des kombinierten Entschlüsselungs-Anfangsblocks und des ausführbaren Stumpfs wird bestimmt;
    • (5) Die Bytes an der Front der ausführbaren Datei gleich dieser Länge werden dann in den Speicher gelesen, vorzugsweise an einen vordefinierten Seitendateiort; und
    • (6) Die Verschlüsselungsanfangsblock und der ausführbare Stumpf werden dann über die führenden Bytes im ausführbaren Code geschrieben.
  • Das TSR kann bestimmen, ob ein ausführbarer Programmstumpf durch Suchen über die "Bekannte Größe" eines ausführbaren Programmstumpfs für den Entschlüsselungsblockteil hinaus.
  • 29 zeigt eine Flussdiagramm-Betriebsdarstellung während eines Versuchsperioden-Intervalls, die mit einem Softwareblock 601 beginnt. Gemäß dem Softwareblock 603 überwacht das Dateiverwaltungsprogramm, das im Betriebssystem des anwender-gesteuerten Datenverarbeitungssystems angeordnet ist, laufend Eingangs/Ausgangs-Aufrufe zum Speichermedium. Dann, gemäß dem Softwareblock 605, wird für jeden Eingangs/ Ausgangs-Aufruf die aufgerufene Datei abgefangen und gemäß Softwareblock 607 wird dem Betriebssystem der Zugriff auf die aufgerufene Datei verweigert, bis das Dateiverwaltungsprogramm bestimmen kann, ob der Zugriff erlaubt werden soll oder nicht. Ein Teil der aufgerufenen Datei wird gelesen, wo der Entschlüsselungsblock angeordnet sein soll. Dann wird dieser Teil der aufgerufenen Datei gemäß dem Softwareblock 609 gelesen, um eine Schlüsseldateiadresse gemäß dem Softwareblock 611 abzuleiten. Die Adresse, die abgeleitet wird, wird benutzt zum Holen der Schlüsseldatei gemäß dem Softwareblock 613. Wenn gemäß dem Entscheidungsblock 615 die Schlüsseldatei nicht gefunden werden kann, endet der Prozess am Softwareblock 617; wenn jedoch im Entscheidungsblock 615 entschieden wurde, dass die Schlüsseldatei ausfindig gemacht werden kann, wird der Schlüssel abgeleitet gemäß dem Softwareblock 619. Der abgeleitete Schlüssel wird dann zum Entschlüsseln des Gültigkeitssegments gemäß dem Softwareblock 621 benutzt, das im Verschlüsselungsanfangsblock liegt. Im Entscheidungsblock 623 wird das Entschlüsselungs-Gültigmachungssegment mit dem Klartext für das Entschlüsselungs-Gültigmachungssegment verglichen; wenn bestimmt wird, dass das entschlüsselte Segment nicht mit dem bekannten Klartextsegment übereinstimmt, wird der Prozess am Softwareblock 625 auf Ende zu fortgesetzt; wenn jedoch im Entscheidungs block 623 entscheiden wird, dass das entschlüsselte Gültigmachungssegment mit dem bekannten Klartextgültigkeitssegment übereinstimmt, wird der Prozess als Softwareblock 627 fortgesetzt, worin der Zugriff auf die aufgerufene Datei zugelassen wird. Dann wird der Entschlüsselungstyp vom Entschlüsselungs-Anfangsblock gemäß dem Softwareblock 629 gelesen, und die aufgerufene Datei wird dynamisch entschlüsselt gemäß dem Softwareblock 631, wenn sie zur Verarbeitung durch das Betriebssystem des anwendergesteuerten Datenverarbeitungssystems in Übereinstimmung mit dem Softwareblock 633 weitergegeben wird. Der Prozess endet mit dem Softwareblock 635.
  • Wenn eine nichtautorisierte Ausführung einer verschlüsselten Datei versucht wird, wird der ausführbare Stumpf wenigstens temporär den Zugriff verweigern und postet eine Meldung an das System, kann jedoch das Problem auf eine Reihe von hochentwickelten Wegen bearbeiten, die oben aufgezählt wurden.
  • Gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung kann während des Versuchsintervalls oder am Ende des Versuchsintervalls der entsprechende Käufer den Verkäufer ansprechen, um Vorkehrungen für den Kauf einer Kopie eines oder mehrerer Software-Produkte auf dem computer-zugreifbaren Speichermedium zu treffen. Vorzugsweise werden CD-ROMs oder Floppydisks zum Versenden des Produkts an den potentiellen Anwender benutzt. Vorzugsweise beinhaltet das computerzugreifbare Speichermedium die zwei verschlüsselten Kopien jedes der Produkte, die für ein Versuchsintervall zum Gebrauch angeboten werden. Eine verschlüsselte Kopie kann durch das Dateiverwaltungsprogramm mit dem vom Verkäufer an den Anwender übermittelten temporären Schlüssel entschlüsselt werden. Die andere verschlüsselte Datei ist nicht zur Verwendung während der Versuchsintervall-Betriebsmodus gedacht, sonder ist die permanente Kopie, die entschlüsselt und benutzt werden kann, sobald das Software-Produkt gekauft ist. Allgemein gesagt, der Anwender wählt ein Software-Produkt für einen Versuchsintervall-Betriebsmodus aus und erhält vom Verkäufer temporäre Zugriffsschlüssel, die dem Anwender (über das Dateiverwaltungsprogramm) Zugriff auf das Produkt während eines vorgegebenen Versuchsintervalls gestatten. Vor oder nach dem Ende des Versuchsintervalls kann der Anwender eine permanente Kopie des Software-Produkts vom Verkäufer kaufen durch Ansprechen des Verkäufers über Fax, elektronische Mail oder Telefon. Sobald die Bezahlung eingegangen ist, übermittelt der Verkäufer dem Anwender einen permanenten Zugriffsschlüssel, der zum Entschlüsseln der zweiten verschlüsselten Kopie des Software-Produkts benutzt wird. Dieses verschlüsselte Produkt kann durch jede beliebige herkömmliche Verschlüsselungsroutine verschlüsselt sein, wie z. B. den DES-Algorithmus. Der permanente Schlüssel ermöglicht, dass das Software-Produkt für uneingeschränkte Anwendung entschlüsselt werden kann. Da in einer Transaktion eine Vielzahl von Produktkopien gekauft werden können, weist die vorliegende Erfindung eine Technik auf, die bewegliche Zugriffsschlüssel vorsieht, die nachstehend im Zusammenhang mit 30 bis 35 diskutiert werden. In der bevorzugten Ausführungsform der vorliegenden Erfindung ist der zum Verschlüsseln und Entschlüsseln der zweiten Kopie des Software-Produkts benutzte Algorithmus ähnlich demjenigen, der im Versuchsintervall-Betriebsmodus angewandt wird.
  • Die vorliegende Erfindung beinhaltet eine Export/Importfunktion, die nach Abschluss einer Versuchsintervall-Periode die Verteilung permanenter Zugriffsschlüssel ermöglicht. In der Regel wird ein Büroverwalter oder ein Datenverarbeitungssystemmanager eine ausgewählte Anzahl "Kopien" des verschlüsselten Produkts nach Abschluss einer Versuchsintervall-Periode kaufen. Bestimmten Personen innerhalb der Organisation werden dann permanente Schlüssel ausgehändigt, die den uneingeschränkten und permanenten Zugriff auf das verschlüsselte Produkt ermöglichen. In einer Büro- oder Werksumgebung, wo die Computervorrichtungen nicht vernetzt sind, müssen die permanenten Zugriffsschlüssel vom Büroverwalter oder Datenverarbeitungsmanager im Rahmen einer Organisation an die ausgewählten Personen, die Kopien des verschlüsselten Software-Produkts erhalten sollen, verteilt werden. Die permanenten Schlüssel gewähren einen permanenten Zugriff auf das Produkt. Da möglicherweise nicht alle Mitarbeiter in einer Organisation Kopien des bestimmten, verschlüsselten Produkts erhalten, würde es der Verkäufer gern sehen, dass die Verteilung auf eine Art erfolgt, die die Verteilung über die Verkaufsvereinbarung oder Lizenzvereinbarung hinaus minimiert oder verhindert. Da die Produkte verschlüsselt sind, können sie in ihrer verschlüsselten Form frei verteilt werden. Es sind die Schlüssel, die einen unbeschränkten Zugriff auf das Produkt ermöglichen, und müssen durch die vorliegende Erfindung geschützt werden. Um eine Verteilung von Schlüsseln über elektronische Mail oder gedruckte Kommunikation zu verhindern, beinhaltet die vorliegende Erfindung ein Exportprogramm, das in einem Quell-Computer resident ist, und ein Importprogramm, das in einem Zielcomputer resident ist, die die Verteilung der Zugriffsschlüssel über ein ausbaubares Speichermedium, wie z. B. eine Floppydisk, ermöglicht. Das stellt sicher, dass die Zugriffsschlüssel nicht unbeabsichtigt oder zufällig verteilt oder geoffenbart werden. Es gibt zwei grundlegenden Ausführungsformen, die diese Aufgabe erfüllen.
  • In der ersten Ausführungsform werden eine oder mehrere verschlüsselte Dateien, die im Quell-Computer gespeichert sind, zunächst entschlüsselt und dann unter Verwendung eines Verschlüsselungsalgorithmus und eines Verschlüsselungs-Schlüssels, der ausschließlich auf dem transportablen Speichermedium vorhanden ist (z. B. eine Disketten- seriennummer) verschlüsselt. Die Schlüsseldatei kann dann physikalisch auf der Diskette zu einem Zielcomputer gebracht werden, wo sie unter Verwendung eines Schlüssels, der vom Zielcomputer aus der Transaktion mit dem übertragbaren Speichermedium abgeleitet wird, entschlüsselt wird. Unmittelbar darauf werden die Schlüsseldatei bzw. Schlüsseldateien unter Verwendung einer Verschlüsselungsoperation, die mit einem Schlüssel verschlüsselt ist, der aus einem eindeutigen Systemattribut des Zielcomputers abgeleitet wird, verschlüsselt.
  • In der alternativen Ausführungsform wird das übertragbare Speichermedium auf den Zielcomputer geladen, um aus der Zielcomputer-Importdatei einen Übertragungsschlüssel zu erhalten, der eindeutig dem Zielcomputer zugeordnet ist und der von einem oder mehreren eindeutigen Systemattributen des Zielcomputers abgeleitet ist. Das Speichermedium wird dann auf den Quell-Computer übertragen, wo die eine oder mehrere Schlüsseldateien entschlüsselt werden, und dann unter Verwendung des Übertragungsschlüssels verschlüsselt werden. Das Speichermedium wird dann zum Zielcomputer gebracht, wo der Übertragungsschlüssel generiert und in einer Entschlüsselungsoperation verwendet wird, um die eine oder mehrere Schlüsseldateien zu entschlüsseln. Vorzugsweise werden unmittelbar nachdem die Schlüsseldateien durch Verwenden einer Verschlüsselungsoperation verschlüsselt werden, die mit einem Schlüssel verschlüsselt ist, der eindeutig dem Zielcomputer zugeordnet ist, und von einem oder mehreren eindeutigen Rechnerkonfigurationsattributen abgeleitet werden kann. Die erste Ausführungsform wird hier im Zusammenhang mit den 30, 31, 32 und 33 besprochen. Die zweite Ausführungsform wird im Zusammenhang mit den 34 und 35 diskutiert.
  • Die 30 und 31 zeigen in einer Blockdiagrammform Export- und Importoperationen, die es einem berechtigten Anwender ermöglichen, seinen permanenten Schlüssel auf ein anderes Datenverarbeitungssystem zu übertragen unter Verwendung einer "Export"-Möglichkeit, die ein eindeutiges Diskettenbild des Zugriffsschlüssels produziert, das zum Import in ein anderes System freigegeben ist. Gemäß der vorliegenden Erfindung sind die Zugriffsschlüssel, die über das Telefon vom Software Verkäufer zum Kunden gliefert werden, weniger als 40 Bytes lang. Die produzierte Schlüsseldatei ist über 2,000 Bytes lang. Eine Export-Möglichkeit ist vorgesehen zum Kopieren der Schlüsseldatei und der Maschinenidentifizierungsdatei für eine Diskette. Beide Dateien werden dann mit einer geänderten Disketten-Serien-Nr. verschlüsselt, damit verhindert wird, dass diese Dateien in ein öffentliches Forum kopiert werden, wo sie jeder benützen kann. Eine Importmöglichkeit, die in einem anderen System vorgesehen ist, entschlüsselt diese Dateien und setzt den Produktschlüssel und die Maschinenidentifikation von der Diskette auf eine Liste von Importproduktschlüsseln und Maschinenidentifikationen in der Importsystem-Masterdatei, und kopiert die Schlüsseldatei auf die Festplatte des Importsystems. Die Schlüsseldatei wird auf dem Importsystem verschlüsselt, wie oben geoffenbart wird.
  • 30 ist eine Blockdiagrammdarstellung einer Exportoperation gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung. Wie gezeigt, beinhaltet der Quell-Computer 651 eine Schlüsseldatei 653 und eine Maschinenidentifizierungsdatei 655. Die Schlüsseldatei 653 beinhaltet den Produktschlüssel, den Kundenschlüssel und den Klartext der Maschinenidentifikation für den Quell-Computer 653, Versuchsintervalldaten (wie Zeitgeber und/oder Zähler, die die Versuchsintervall-Periode definieren), und einen Exportzähler, der die Dualfunktionen des Definierens der Maximalzahl der Exportoperationen, die für die besonders geschützten Software-Produkte zulässig sind, und des Verfolgens der Gesamtanzahl der durchgeführten Exportoperationen ausführt. Die Maschinenidentifizierungsdatei beinhaltet die Maschinenidentifizierungsnummer und die Versuchsintervalldaten (wie einen Zeitgeber und/oder einen Zähler, der die Versuchsintervallperiode definiert). Sowohl Schlüsseldatei 653 als auch die Maschinenidentifizierungsdatei 655 sind mit einer beliebigen herkömmlichen Verschlüsselungsoperation verschlüsselt (wie dem DES-Algorithmus), der mit einem Schlüssel verschlüsselt ist, der von einem eindeutigen Systemattribut des Quell-Computers 651 abgeleitet wird. Zu Beginn einer Exportoperation werden die Schlüsseldatei 653 und die Maschinenidentifizierungsdatei 655 entschlüsselt. Die Schlüsseldatei 653 wird als Eingang in die Entschlüsselungsoperation 657 gegeben, die mit dem Schlüssel 659 verschlüsselt ist. Ebenso wird die Maschinenidentifizierungsdatei 655 als Eingang an die Entschlüsselungsoperation 663 gelegt, die mit dem Schlüssel 661 verschlüsselt ist. Die Entschlüsselungsoperationen 657, 663 generieren eine Klartextversion des Schlüsseltexts 653 und der Maschinenidentifizierungsdatei 655. Sobald der Klartext erhalten ist, wird der Exportzähler, der in der Schlüsseldatei 653 enthalten ist, gemäß dem Block 661 verändert. Zum Beispiel, wenn das die siebte zulässige Exportoperation von 10 zulässigen Exportoperationen ist, kann der Zähler "7 : 10" anzeigen. Die Klartextversion der Schlüsseldatei 653 wird als Eingang an die Verschlüsselungsoperation 669 gelegt. Die Verschlüsselungsoperation 669 kann jede beliebige Verschlüsselungsoperation sein (wie z. B. der DES-Algorithmus), die mit einem Speichermediumattribut 665 verschlüsselt wird, das eindeutig einem Speichermedium entspricht, das an den Quell-Computer 651 gekoppelt ist, der den Veränderungen des Modifikators 667 unterzogen wurde. Zum Beispiel kann eine eindeutige Diskettenseriennummer als das "Speichermediumattribut" geliefert werden, die für das Speichermedium 677 eindeutig ist. Die Diskettenseriennummer wird gemäß dem Modifikator 667 etwas verändert und als Eingang an die Verschlüsselungsoperationen 669 gelegt. Die gleiche Operation wird für den Klartext der Maschinenidentifizierungsdatei 655 durchgeführt. Ein eindeutiges Speichermediumattribut 671 wird durch den Modifikator 673 modifiziert und als Schlüssel für eine Verschlüsselungsoperation 675 benutzt, die jede beliebige herkömmliche Verschlüsselungsoperation enthalten kann, wie z. B. die DES-Operation. Schließlich werden die Ausgänge der Verschlüsselungsoperationen 669 und 675 als Eingang an die Kopieroperationen 679, 681 gelegt, die die verschlüsselte Schlüsseldatei 653 und Maschinenidentifizierungsdatei 655 auf das Speichermedium 677 kopieren.
  • 31 ist eine Blockdiagrammdarstellung einer Importoperation. Das Speichermedium 677 (in 30) wird physikalisch aus dem Quell-Computer 651 (in 30) entfernt und auf den Computer 707 (31) physikalisch übertragen; als Alternative kann in einem verteilten Datenverarbeitungssystem diese Übertragung auch ohne das physikalische Entfernen des Speichermediums 677 vorkommen. Mit Bezugnahme jetzt auf 31, gemäß Block 683 wird die Maschinenidentifizierung der Zielmaschine auf das Speichermedium 677 kopiert, um ein Register zu führen, welcher bestimmte Zielcomputer die Schlüsseldatei und die Maschinenidentifizierungsdatei empfangen hat. Dann werden, gemäß den Blöcken 685, 693 die verschlüsselte Schlüsseldatei 653 und die Maschinenidentifizierungsdatei 655 vom Speichermedium auf den Zielcomputer 707 kopiert. Die verschlüsselte Schlüsseldatei 653 wird als Eingang an die Entschlüsselungsoperation 689 gelegt, die mit dem Schlüssel 687 verschlüsselt ist. Die Entschlüsselungsoperation 689 kehrt die Verschlüsselungsoperation des Blocks 669 um und liefert als Ausgang eine Klartextversion der Schlüsseldatei 653. Auf ähnliche Weise wird die Maschinenidentifizierungsdatei 655 als Eingang an die Entschlüsselungsoperation 697 gelegt, die mit dem Schlüssel 695 verschlüsselt ist. Die Entschlüsselungsoperation 697 kehrt die Verschlüsselung der Verschlüsselungsoperation 675 um und ergibt als Ausgang den Klartext der Maschinenidentifizierungsdatei 655. Gemäß Block 691 wird die Maschinenidentifizierung des Quell-Computers 651 zurückgewonnen und im Speicher des Klartexts der Schlüsseldatei 653 abgespeichert. Als nächstes wird der Klartext der Schlüsseldatei 653 als Eingang an die Verschlüsselungsoperation 699 gelegt. Die Verschlüsselungsoperation 699 ist eine herkömmliche Verschlüsselungsoperation, wie z. B. die DES-Operation, die mit einem zielcomputer-eindeutigen Attribut, wie z. B. der Maschinenidentifizierung oder modifizierten Maschinenidentifizierung für den Zielcomputer 707 verschlüsselt wird. Der Klartext der Maschinenidentifizierungsdatei 655 wird als Eingang an die Verschlüsselungsoperation 703 gelegt. Die Verschlüsselungsoperation 703 ist jede beliebige herkömmliche Verschlüsselungsoperation, wie z. B. die DES-Verschlüsselungsoperation, die mit einem eindeutigen Zielcomputer-Attribut 705, wie eine Maschinenidentifizierung oder eine modifizierte Maschinen-Identifizierung des Zielcomputers 707 verschlüsselt ist. Der Ausgang der Verschlüsselungsoperation 699 produziert eine verschlüsselte Schlüsseldatei 709, die einen Produktschlüssel (der der gleiche temporäre Produktschlüssel der Schlüsseldatei 653 des Quell-Computers 651 ist), eine Kundennummer 653, (die die gleiche Kundennummer der Schlüsseldatei 653 des Quell-Computers 651 ist), und Maschinen-Klaridentifizierung (die die Maschinenidentifizierung für Zielcomputer 707 und nicht die des Quell-Computers 651 ist), Versuchsintervalldaten (die identisch mit den Versuchsintervalldaten der Schlüsseldatei 653 der Quelle 651 sind), und eine Identifikation der Maschinenidentifizierung des Quell-Computers 651 beinhaltet. Der Ausgang der Verschlüsselungsoperation 703 definiert die Maschinenidentifizierungsdatei 711, die die Maschinenidenti fizierung des Zielcomputers 707 (und nicht die des Quell-Computers 651) einschließt, und die Versuchsintervalldaten (die identisch sind mit denen der Maschinenidentifizierungsdatei 655 des Quell-Computers 651).
  • Die 32 und 33 zeigen alternative Ansichten der Import- und Export-Operationen, die in den 30 und 31 dargestellt sind, und betonen einige der bedeutsamen Merkmale der vorliegenden Erfindung. Wie gezeigt, beinhaltet der Quell-Computer 801 die Maschinenidentifizierungsdatei 803, die mit einem Systemattributschlüssel verschlüsselt ist, der eindeutig auf den Quell-Computer 801 hinweist. Die Maschinenidentifizierungsdatei beinhaltet die Maschinenidentifizierungsdateinummer sowie die Zählung der Anzahl der Exporte, die für jedes geschützte Software-Produkt zugelassen sind, und eine Zählung der Gesamtanzahl der Exporte, die benutzt wurden. Zum Beispiel hat die erste Exportoperation eine Zählung "1 : 10", was anzeigt, dass eine. Export-Operation von zehn zugelassenen stattgefunden hat. In der nächsten Exportoperation wird der Zähler auf "2 : 10" inkrementiert, was bedeutet, dass 2 von den gesamtzulässigen 10 Exportoperationen abgewickelt wurden. Jeder Zielcomputer, der die Ergebnisse der Exportoperation empfängt, wird mit diesem bestimmten Zählerwert gekennzeichnet, um anzuzeigen, dass er der Empfänger einer bestimmten Exportoperation ist. Zum Beispiel soll ein Quell-Computersystem einen Zählerwert von "1 : 10" haben, was bedeutet, dass es der Empfänger der ersten Exportoperation von zehn zulässigen Exportoperationen ist. Ein anderer Zielcomputer kann aber den Zählerwert "7 : 10" haben, was bedeutet, dass dieser bestimmte Zielcomputer die siebte Exportoperation von insgesamt zehn zulässigen erhalten hat. Auf diese Weise führt der Zielcomputer die Zählung einer Gesamtanzahl von benutzten Exportoperationen durch, während jeder Quell-Computer einen andere Zählerwert haben kann, der ihn als Empfänger der Maschinenidentifizierungsdatei und Schlüsseldatei vom Quell-Computer von bestimmten der Vielzahl zulässiger Exportoperationen kennzeichnet.
  • Hier ist anzumerken, dass im Quell-Computer 801 die Maschinenidentifizierungsdatei 803 und die Schlüsseldatei 805 mit einem Verschlüsselungsalgorithmus verschlüsselt sind, der als Schlüssel ein Systemattribut benutzt, das eindeutig auf den Quell-Computer 801 hinweist; sobald jedoch die Maschinenidentifizierungsdatei 803 und die Schlüsseldatei 805 auf ein Speichermedium, wie z. B. die Export-Schlüsseldiskette 807, übertragen sind, werden die Maschinenidentifizierungsdatei 809 und die Schlüsseldatei 811 mit einer beliebigen herkömmlichen Verschlüsselungsoperation, die als Verschlüsselungs-Schlüssel ein eindeutiges Diskettenattribut benutzt, wie z. B. die Seriennummer der Diskette. Das minimiert die Möglichkeit, dass der Inhalt der Maschinen-ID-Datei 809 und/oder der Schlüsseldatei 811 auf eine andere Diskette oder auf ein anderes Speichermedium kopiert und dann benutzt werden kann, um einen ungenehmigten Zugriff auf die Software-Produkte zu erhalten. Das ist so, weil für eine effektive Übertragung des Inhalts der Maschinen-ID-Datei 809 und der Schlüsseldatei 811 auf einen Zielcomputer der Zielcomputer in der Lage sein muss, das eindeutige Diskettenattribut von der Exportschlüsseldiskette 807 lesen und benutzen zu können. Nur wenn die Maschinen-ID-Datei 809 und die Schlüsseldatei 811 auf einer Diskette, auf der diese Teile kopiert wurden, einem Zielcomputer angeboten werden, kann eine wirksame Übertragung stattfinden. Die Vorlage der Maschinen-ID-Datei 809 und der Schlüsseldatei 811 auf einer Diskette, die nicht die Exportschlüsseldiskette 807 ist, an einen potentiellen Zielcomputer wird zur Übertragung sinnloser Informationen führen, da das eindeutige Attribut der Exportschlüsseldiskette 807 (wie z. B. die Diskettenseriennummer) vom Zielcomputer verlangt wird, um die Entschlüsselungsoperation erfolgreich durchzuführen.
  • Wie in 33 gezeigt wird, wird die Exportschlüsseldiskette 807 in den Zielcomputer 813 eingelegt. Natürlich sind die Maschinenidentifizierungsdatei 809 und die Schlüsseldatei 811 in verschlüsselter Form. Bei der Übertragung von der Exportschlüsseldiskette 807 auf den Zielcomputer 813 wird der Inhalt der Maschinen-ID-Datei 809 mit der Maschinenidentifizierung des Zielcomputers 813 und die Zählung der benutzten Importe auf Stand gebracht. Bei der Durchführung der Übertragung auf den Zielcomputer 813 wird eine Maschinenidentifizierungsdatei 815 erstellt, die eine Anzahl von Positionen, wie z. B. die Maschinenidentifizierung für den Zielcomputer 813, Kundeninformation, sowie eine Liste der Maschinenidentifizierungsnummer des Quell-Computers 801 enthält. Sowohl die Maschinenidentifizierungsdatei 815 als auch die Schlüsseldatei 817 werden mit einer herkömmlichen Verschlüsselungsoperation verschlüsselt, die ein eindeutiges Attribut des Zielcomputers 813 als Schlüssel benutzt. Das bindet die Maschinenidentifizierungsdatei 815 und die Schlüsseldatei 817 an den bestimmten Zielcomputer 813.
  • Durch Benutzen eines Export/Import-Zählers um die Gesamtanzahl der zulässigen Export/Import-Operationen und die Gesamtanzahl der benutzten Export/Import-Operationen zu verfolgen, erstellt die vorliegende Erfindung eine Prüfliste, die benutzt werden kann, um die Verteilung der Software-Produkte während des Versuchsintervalls zu verfolgen. Jeder Quell-Computer hat eine Aufzeichnung der Gesamtanzahl der Exportoperationen, die durchgeführt wurden. Jeder Quell-Computer hat eine Aufzeichnung, welche bestimmten Export/Import-Operationen benutzt wurden, um eine oder mehrere geschützte Software-Produkte auf den Zielcomputer zu übertragen. Die benutzten Speichermedien, die zur Durchführung der Übertragung benutzt wurden (wie eine Diskette oder ein Gruppe von Disketten), haben eine permanente Aufzeichnung der Maschinenidentifizierungsnummern sowohl des Quell-Computers als auch der Zielcomputer, die in allen Export/Import-Operationen benutzt werden.
  • Das Verfahren zum Implementieren von Export- und Import-Operationen stellt sicher, dass die geschützten Software-Produkte niemals unnötigen Risiken ausgesetzt werden. Wenn die Maschinenidentifizierungsdatei und die Schlüsseldatei vom Quell-Computer auf die Exportdiskette übergehen, werden sie mit dem eindeutigen Attribut der Exportdiskette verschlüsselt, was das Kopieren der Exportdiskette bzw. das Posten ihrer Inhalte auf ein Bulletin-Board als Mittel zur illegalen Verteilung der Schlüssel verhindert. Während der Import-Operationen werden die Maschinenidentifizierung und die Schlüsseldateien mit Systemattributen verschlüsselt, die für den Zielcomputer eindeutig sind, um sicherzustellen, dass die Software-Produkte auf eine Weise bewahrt werden, die mit der Sicherheit des Quell-Computers übereinstimmt, mit der Ausnahme, dass diese Software-Produkte mit Attributen verschlüsselt sind, die für den Zielcomputer eindeutig sind, wodurch das illegale Kopieren und Posten der Schlüssel verhindert wird.
  • Die zweite Ausführungsform der Export/Import-Funktion wird in 34 und 35 in Blockdiagrammform gezeigt. Allgemein gesprochen, das Speichermedium 1677 wird zunächst benutzt, mit dem Zielcomputer 1707 in Wechselwirkung zu treten, um vom Zielcomputer 1707 einen Übertragungsschlüssel zu erhalten, der für den Zielcomputer 1707 eindeutig ist und der vorzugsweise aus einem oder mehreren eindeutigen Systemattributen des Zielcomputers 1707 abgeleitet ist. Der Übertragungsschlüssel kann eine Modifikation der Maschinenidentifizierung für den Zielcomputer 1707 sein. Dann wird das Speichermedium 1677 benutzt, mit dem Quell-Computer 1651 in einem Exportbetriebsmodus in Wechselwirkung zu treten, in dem die Schlüsseldatei 1653 und die Maschinenidentifizierungsdatei 1655 zunächst entschlüsselt, dann mit dem Übertragungsschlüssel verschlüsselt werden.
  • 34 ist eine Blockdiagrammdarstellung einer Export-Operation gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung. Wie gezeigt, beinhaltet der Quell-Computer 1651 eine Schlüsseldatei 1653 und eine Maschinenidentifizierungsdatei 1655. Die Schlüsseldatei 1653 beinhaltet den Produktschlüssel, den Kundenschlüssel, den Klartext der Maschinenidentifizierung für Quell-Computer 1653, Versuchsintervalldaten (wie einen Zeitgeber und/oder einen Zähler, die die Versuchsintervallperiode definieren), und einen Export-Zähler, der die Dualfunktionen der Bestimmung der maximalen Anzahl von Export-Operationen definiert, die für die besonders geschützten Software-Produkte zugelassen sind, und die Gesamtanzahl der Export-Operationen verfolgt, die erfolgreich durchgeführt wurden. Die Maschinenidentifizierungsdatei beinhaltet die Maschinenidentifizierungsnummer und die Versuchsintervalldaten (wie einen Zeitgeber und/oder einen Zähler, der die Versuchsintervallperiode definiert). Sowohl die Schlüsseldatei 1653 als auch die Maschinenidentifizierungsdatei 1655 sind verschlüsselt mit einer beliebigen herkömmlichen Verschlüsselungs-Operation (wie der DES-Algorithmus), der mit einem Schlüssel verschlüsselt ist, der von einem eindeutigen Systemattribut des Quell-Computers 1651 abgeleitet ist. Zu Beginn einer Export-Operation werden Schlüsseldatei 1653 und Maschinenidentifizierungsdatei 1655 entschlüsselt. Die Schlüsseldatei 1653 wird als Eingang an die Verschlüsselungs-Operation 1657 gelegt, die mit dem Schlüssel 1659 verschlüsselt ist. Auf gleiche Wiese wird die Maschinenidentifizierungsdatei 1655 als Eingang an die Entschlüsselungs-Operation 1663 gelegt, die mit dem Schlüssel 1661 verschlüsselt ist. Die Entschlüsselungs-Operationen 1657, 1663, generieren eine Klartextversion der Schlüsseldatei 1653 und der Maschinenidentifikationsdatei 1655. Sobald der Klartext erhalten wird, wird der Export-Zähler, der in der Schlüsseldatei 1653 enthalten ist, gemäß Block 1661 modifiziert. Wenn z. B. das die siebte zulässige Export-Operation von zehn möglichen ist, kann der Zähler "7 : 10" anzeigen. Die Klartextversion der Schlüsseldatei 1653 wird als Eingang an die Verschlüsselungsoperation 1669 gelegt. Die Verschlüsselungsoperation 1669 kann jede herkömmliche Verschlüsselungsoperation sein (wie z. B. der DES-Algorithmus), die mit dem vorher erhaltenen Übertragungsschlüssel 1665 verschlüsselt ist. Die gleiche Operation wird ausgeführt für den Klartext der Maschinenidentifizierungsdatei 1655. Der Übertragungschlüssel 1671 wird benutzt als Schlüssel für die Verschlüsselungsoperation 1675, der jede beliebige Verschlüsselungsoperation, wie z. B. die DES-Operation, enthalten kann. Schließlich werden der Ausgang der Verschlüsselungsoperationen 1669 und 1675 als Eingänge an die Kopieroperationen 1679, 1681 gelegt, die die verschlüsselte Schlüsseldatei 1653 und die Maschinenidentifizierungsdatei 1655 auf das Speichermedium 1677 kopieren.
  • 35 ist eine Blockdiagrammdarstellung einer Importoperation. Das Speichermedium 1677 (in 34) wird physikalisch aus dem Quell-Computer 1651 (in 34) entfernt und physikalisch übertragen auf den Computer 1707 (35); als Alternative kann in einem verteilten Datenverarbeitungssystem diese Übertragung auch ohne das physikalische Entfernen des Speichermediums 1677 vorkommen. Nehmen wir jetzt Bezug auf 35, gemäß Block 1683 wird die Maschinenidentifizierung der Zielmaschine auf das Speichermedium 1677 kopiert, um ein Register zu führen, welcher bestimmte Zielcomputer die Schlüsseldatei und die Maschinenidentifizierungsdatei empfangen hat: Dann werden gemäß den Blöcken 1685, 1693 die verschlüsselte Schlüssel datei 1653 und die Maschinenidentifizierungsdatei 1655, vom Speichermedium auf den Zielcomputer 1707 kopiert. Die verschlüsselte Schlüsseldatei 1653 wird als Eingang an die Entschlüsselungsoperation 1689 gelegt, die mit dem Schlüssel 1687 verschlüsselt ist. Die Entschlüsselungsoperation 1689 kehrt die Verschlüsselungsoperation des Blocks 1669 um und liefert als Ausgang eine Klartextversion der Schlüsseldatei 1653. Auf ähnliche Weise wird die Maschinenidentifizierungsdatei 1655 als Eingang an die Entschlüsselungsoperation 1697 gelegt, die mit dem Schlüssel 1695 verschlüsselt ist. Die Entschlüsselungsoperation 1697 kehrt die Verschlüsselung der Verschlüsselungsoperation 1675 um und ergibt als Ausgang den Klartext der Maschinenidentifizierungsdatei 1655. Gemäß Block 1691 wird die Maschinenidentifizierung des Quell-Computers 1651 zurückgewonnen und im Speicher des Klartexts der Schlüsseldatei 1653 abgespeichert. Als nächstes wird der Klartext der Schlüsseldatei 1653 als Eingang an die Verschlüsselungsoperation 1699 gelegt. Die Verschlüsselungsoperation 1699 ist eine herkömmliche Verschlüsselungsoperation, wie z. B. die DES-Operation, die mit einem Zielcomputer-eindeutigen Attribut, wie z. B. der Maschinenidentifizierung oder modifizierten Maschinenidentifizierung für den Zielcomputer 1707 verschlüsselt wird. Der Klartext der Maschinenidentifizierungsdatei 1655 wird als Eingang an die Verschlüsselungsoperation 1703 gelegt. Die Verschlüsselungsoperation 1703 ist eine beliebige herkömmliche Verschlüsselungsoperation, wie z. B. die DES-Verschlüsselungsoperation, die mit einem eindeutigen Zielcomputer-Attribut 1705, wie eine Maschinenidentifizierung oder eine modifizierte Maschinenidentifizierung des Zielcomputers 1707 verschlüsselt ist. Der Ausgang der Verschlüsselungsoperation 1699 produziert eine verschlüsselte Schlüsseldatei 1709, die einen Produktschlüssel beinhaltet (der der gleiche temporäre Produktschlüssel der Schlüsseldatei 1653 des Quell-Computers 1651 ist), eine Kundennummer, (die die gleiche Kundennummer der Schlüsseldatei 1653 des Quell-Computers 1651 ist), und Maschinen-Klaridentifizierung (die die Maschinenidentifizierung für Zielcomputer 1707 ist und nicht die des Quell-Computers 1651), Versuchsintervalldaten (die identisch mit den Versuchsintervalldaten der Schlüsseldatei 1653 der Quelle 1651 ist), und eine Identifikation der Maschinenidentifizierung des Quell-Computers 1651. Der Ausgang der Verschlüsselungsoperation 1703 definiert die Maschinenidentifizierungsdatei 1711, die die Maschinenidentifizierung des Zielcomputers 1707 (und nicht die des Quell-Computers 1651) einschließt, und die Versuchsintervalldaten (die identisch mit denen der Maschinenidentifizierungsdatei 1655 des Quell-Computers 651 sind).

Claims (9)

  1. Ein Verfahren zum Verteilen eines Software-Objekts (10) aus einer Quelle (209) an einen Anwender (211), enthaltend die Verfahrensschritte: Vorsehen eines Software-Objekts (201), Verschlüsseln des Software-Objekts (201) mit einer Verschlüsselungsoperation unter Benutzung eines langlebigen Verschlüsselungs-Schlüssels (203, 271, 281), Richten des verschlüsselten Software-Objekts (207) von der Quelle (209) zum Anwender (211), Laden des verschlüsselten Software-Objekts (207) in das anwender-gesteuerte Datenverarbeitungssystem (10) mit einer besonderen Konfiguration (353), Ableiten einer numerischen Maschinenidentifizierung (357) auf der Grundlage, mindestens teilweise, der besonderen Konfiguration (353) des anwender-gesteuerten Datenverarbeitungssystems (10), wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Übermitteln der numerischen Maschinenidentifizierung (357) an den Quellen-Operator (205); Ableiten eines temporären Schlüssels (377), auf der Grundlage, mindestens teilweise, der numerischen Maschinenidentifizierung (357) und des langlebigen Verschlüsselungs-Schlüssels (371; 381; 203); Übermitteln des temporären Schlüssels (377) von der Quelle (209) zum Anwender (211); Vorsehen eines langlebigen Schlüssel-Generators (379) zum Empfangen des temporären Schlüssels (377) und Erzeugen des langlebigen Verschlüsselungs-Schlüssels (371; 381; 203) beim Anwender; und Zulassen, dass der Anwender (211) den temporären Schlüssel (377) während eines vorgegebenen Intervalls benutzt, um die langlebigen Verschlüsselungs-Schlüssel (371; 381; 203) zu generieren, um auf das Software-Objekt (201) Zugriff zu nehmen.
  2. Ein Verfahren zum Verteilen eines Software-Objekts (201) gemäß Anspruch 1, in dem das verschlüsselte Software-Objekt (207) auf einem computer-zugreifbaren Speichermedium aufgezeichnet ist und von der Quelle (209) zum Anwender (211) gerichtet wird.
  3. Ein Verfahren zum Verteilen eines Software-Objekts (201) gemäß Anspruch 1 oder 2, in dem der langlebige Schlüsselgenerator (279) auf ein computer-zugreifbares Speichermedium aufgezeichnet ist und zusammen mit dem verschlüsselten Software-Objekt (207) von der Quelle (209) zum Anwender (211) gerichtet wird.
  4. Ein Verfahren zum Verteilen eines Software-Objekts (201) gemäß einem der Ansprüche 1 bis 3, das ferner die folgenden Verfahrensschritte enthält: Vorsehen eines Dateiverwaltungsprogramms, das den langlebigen Schlüsselgenerator (279) als eine Komponente desselben beinhaltet; und Richten des Dateiverwaltungsprogramms von der Quelle (209) zum Anwender (211) zusammen mit dem verschlüsselten Software-Objekt (207) .
  5. Ein Verfahren zum Verteilen eines Software-Objekts (201) gemäß einem der Ansprüche 1 bis 4, das ferner die folgenden Verfahrensschritte enthält: Erstellen einer Schlüsseldatei (397; 653; 709) im anwendergesteuerten Datenverarbeitungssystem (10) zum Aufzeichnen wenigstens des temporären Schlüssels (377).
  6. Ein Verfahren zum Verteilen eines Software-Objekts (201) gemäß Anspruch 5, das ferner die folgenden Verfahrensschritte enthält: Verschlüsseln der Schlüsseldatei (397; 653; 709) unter Verwendung wenigstens eines eindeutigen Systemattributs (421) als einen Verschlüsselungs-Schlüssel (401).
  7. Ein Verfahren zum Verteilen von Software-Objekten (201) von einem Hersteller (209) an einen Anwender (211), enthaltend die folgenden Verfahrensschritte: Vorsehen eines Software-Objekts (201), Vorsehen eines computer-zugreifbaren Speichermediums, Vorsehen eines Dateiverwaltungsprogramms, Verschlüsseln des Software-Objekts (201) unter Verwendung eines langlebigen Schlüssels (203; 317; 381), Aufzeichnen des verschlüsselten Software-Objekts (207) auf das computerzugreifbare Speichermedium, Senden des computer-zugreifbaren Speichers vom Hersteller (209) an den Anwender (211), Laden des Dateiverwaltungsprogramms in ein anwender-gesteuertes Datenverarbeitungssystem (10) und Zuordnen desselben zu einem Betriebssystem für das anwender-gesteuerte Datenverarbeitungssystem (10), Lesen des computer-zugreifbaren Speichers mit dem anwender-gesteuerten Datenverarbeitungsystem (10), wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Benutzen des Dateiverwaltungsprogramms zum Ableiten einer numerischen Maschinenidentifizierung (357) auf der Grundlage von mindestens einem Attribut (353) des anwender-gesteuerten Datenverarbeitungssystems (10): Ableiten eines temporären Schlüssels (377) auf der Grundlage, mindestens teilweise, der numerischen Maschinenidentifizierung (357) Benutzen des Dateiverwaltungsprogramms durch Ausführen desselben mit dem anwender-gesteuerten Datenverarbeitungssystem (10), um den Zugriff auf das Software-Objekt (201) während eines durch den temporären Schlüssel (377) definierten Intervalls zu beschränken; und Vorsehen eines langlebigen Schlüsselgenerators (379) im anwender-gesteuerten Datenverarbeitungssystem (10), das diesen langlebigen Schlüssel (203; 271; 291) als Reaktion auf den Eingang wenigstens des temporären Schlüssels (377) vorsieht.
  8. Ein Verfahren zum Verteilen von Software-Objekten (201) gemäß Anspruch 7, in dem das Dateiverwaltungsprogramm in einer Vielzahl von Betriebsmodi betreibbar ist, wenn es von dem anwender-gesteuerten Datenverarbeitungssystem (10) ausgeführt wird, einschließlich der folgenden Betriebsmodi: (a) Ein temporärer Versuchsbetriebsmodus, in dem das Software-Objekt (201) durch Benutzen des temporären Schlüssels (377) temporär aktiviert wird; (b) Ein permanenter Betriebsmodus, in dem das Software-Objekt (201) permanent aktiviert ist, und die uneingeschränkte Anwendung des Software-Objekts (201) durch den Anwender (211) zulässt.
  9. Ein Computersystem mit Mitteln zur Durchführung der Schritte eines Verfahrens gemäß einem der vorstehenden Ansprüche 1 bis B.
DE69531079T 1994-04-25 1995-04-18 Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben Expired - Lifetime DE69531079T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/235,032 US5757907A (en) 1994-04-25 1994-04-25 Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
US235032 1994-04-25

Publications (2)

Publication Number Publication Date
DE69531079D1 DE69531079D1 (de) 2003-07-24
DE69531079T2 true DE69531079T2 (de) 2004-04-22

Family

ID=22883791

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69531079T Expired - Lifetime DE69531079T2 (de) 1994-04-25 1995-04-18 Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben

Country Status (6)

Country Link
US (1) US5757907A (de)
EP (1) EP0679980B1 (de)
JP (1) JPH07295801A (de)
KR (1) KR100200443B1 (de)
CA (1) CA2145926C (de)
DE (1) DE69531079T2 (de)

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030078097A1 (en) * 1993-05-10 2003-04-24 Takeya Okamoto Interactive communication system for communicating video game and karaoke software
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6963859B2 (en) * 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US20050149450A1 (en) * 1994-11-23 2005-07-07 Contentguard Holdings, Inc. System, method, and device for controlling distribution and use of digital works based on a usage rights grammar
KR970002625A (ko) * 1995-06-15 1997-01-28 김광호 응용 프로그램의 불법 복사 방지를 위한 프로그램 잠금 방법
US5982899A (en) * 1995-08-11 1999-11-09 International Business Machines Corporation Method for verifying the configuration the computer system
JP3688356B2 (ja) * 1995-08-31 2005-08-24 富士通株式会社 ライセンシー通知システム
US5857021A (en) * 1995-11-07 1999-01-05 Fujitsu Ltd. Security system for protecting information stored in portable storage media
JP3627384B2 (ja) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
US6002771A (en) * 1996-05-22 1999-12-14 Sun Microsystems, Inc. Method and system for regulating discounts on merchandise distributed through networked computer systems
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
US7917643B2 (en) * 1996-09-12 2011-03-29 Audible, Inc. Digital information library and delivery system
US6233684B1 (en) 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US5923842A (en) * 1997-03-06 1999-07-13 Citrix Systems, Inc. Method and apparatus for simultaneously providing anonymous user login for multiple users
US6112192A (en) * 1997-05-09 2000-08-29 International Business Machines Corp. Method for providing individually customized content in a network
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
JP3588536B2 (ja) * 1997-07-11 2004-11-10 株式会社東芝 不正データコピー防止装置及び方法
US6073122A (en) * 1997-08-15 2000-06-06 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using extended headers
US6385614B1 (en) 1998-01-14 2002-05-07 Netlibrary Inc. Electronic bookshelf with multi-user features
US6385596B1 (en) 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
US6915271B1 (en) 1998-03-11 2005-07-05 The Product Engine, Inc. Method and system for delivering redeeming dynamically and adaptively characterized promotional incentives on a computer network
US7246246B2 (en) 1998-04-17 2007-07-17 Iomega Corporation System for keying protected electronic data to particular media to prevent unauthorized copying using a compound key
US6298443B1 (en) * 1998-04-24 2001-10-02 Dell Usa, L.P. Method and system for supplying a custom software image to a computer system
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
US6253237B1 (en) * 1998-05-20 2001-06-26 Audible, Inc. Personalized time-shifted programming
FR2779543B1 (fr) * 1998-06-04 2001-08-17 Eastman Kodak Co Procede de protection de logiciel
EP1093604A1 (de) * 1998-06-18 2001-04-25 Babak Ahmadi Schutzsoftware
US6539092B1 (en) * 1998-07-02 2003-03-25 Cryptography Research, Inc. Leak-resistant cryptographic indexed key update
ATE343169T1 (de) * 1998-08-31 2006-11-15 Irdeto Access Bv System um verschlüsselte daten zu liefern, system um verschlüsselte daten zu entschlüsseln und verfahren um eine kommunikationsschnittstelle in einem solchen system zur verfügung zu stellen
DE19846065C2 (de) * 1998-10-06 2000-09-07 Oce Printing Systems Gmbh Verfahren zur kopiergeschützten Inbetriebnahme eines Anwenderprogramms
US6434535B1 (en) 1998-11-13 2002-08-13 Iomega Corporation System for prepayment of electronic content using removable media and for prevention of unauthorized copying of same
US6751670B1 (en) * 1998-11-24 2004-06-15 Drm Technologies, L.L.C. Tracking electronic component
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US20030195974A1 (en) * 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US8175977B2 (en) 1998-12-28 2012-05-08 Audible License management for digital content
US7127515B2 (en) 1999-01-15 2006-10-24 Drm Technologies, Llc Delivering electronic content
US6449645B1 (en) 1999-01-19 2002-09-10 Kenneth L. Nash System for monitoring the association of digitized information having identification indicia with more than one of uniquely identified computers in a network for illegal use detection
US6691226B1 (en) * 1999-03-16 2004-02-10 Western Digital Ventures, Inc. Computer system with disk drive having private key validation means for enabling features
US7814335B2 (en) * 1999-03-18 2010-10-12 Dell Products L.P. System and method for installing system manufacturer provided software
US6367019B1 (en) 1999-03-26 2002-04-02 Liquid Audio, Inc. Copy security for portable music players
US20020019814A1 (en) * 2001-03-01 2002-02-14 Krishnamurthy Ganesan Specifying rights in a digital rights license according to events
US6829708B1 (en) 1999-03-27 2004-12-07 Microsoft Corporation Specifying security for an element by assigning a scaled value representative of the relative security thereof
US6721891B1 (en) 1999-03-29 2004-04-13 Activcard Ireland Limited Method of distributing piracy protected computer software
US6681212B1 (en) * 1999-04-23 2004-01-20 Nianning Zeng Internet-based automated system and a method for software copyright protection and sales
US6848047B1 (en) * 1999-04-28 2005-01-25 Casio Computer Co., Ltd. Security managing system, data distribution apparatus and portable terminal apparatus
US6966002B1 (en) 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US7360252B1 (en) 1999-04-30 2008-04-15 Macrovision Corporation Method and apparatus for secure distribution of software
AU5334500A (en) * 1999-06-07 2000-12-28 Firepad, Inc. Method and system for preventing the unauthorized use of software
US20050246549A1 (en) * 1999-06-09 2005-11-03 Andres Torrubia-Saez Methods and apparatus for secure distribution of software
US6683954B1 (en) * 1999-10-23 2004-01-27 Lockstream Corporation Key encryption using a client-unique additional key for fraud prevention
US6742129B1 (en) * 1999-12-08 2004-05-25 Carrier Corporation Software security mechanism
US6847948B1 (en) * 1999-12-20 2005-01-25 International Business Machines Corporation Method and apparatus for secure distribution of software/data
US6944765B1 (en) * 1999-12-21 2005-09-13 Qualcomm, Inc. Method of authentication anonymous users while reducing potential for “middleman” fraud
US6654888B1 (en) * 1999-12-31 2003-11-25 International Business Machines Corporation Installing and controlling trial software
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
AU2000269232A1 (en) 2000-01-14 2001-07-24 Microsoft Corporation Specifying security for an element by assigning a scaled value representative ofthe relative security thereof
JP2001211171A (ja) 2000-01-28 2001-08-03 Advantest Corp 機器認証装置、方法、機器認証プログラムを記録した記録媒体
JP2001219440A (ja) * 2000-02-09 2001-08-14 Sony Disc Technology Inc 多数個取り用成形装置およびその成形方法
US20070271191A1 (en) * 2000-03-09 2007-11-22 Andres Torrubia-Saez Method and apparatus for secure distribution of software
JP2001350946A (ja) * 2000-06-05 2001-12-21 Nec Corp 体験購入システム及び顧客情報収集システム
US7020773B1 (en) 2000-07-17 2006-03-28 Citrix Systems, Inc. Strong mutual authentication of devices
US7051211B1 (en) 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
ATE272858T1 (de) * 2000-08-24 2004-08-15 Wibu Systems Ag Verfahren zum schutz von computer-software und/oder computerlesbaren daten sowie schutzgerät
US6931545B1 (en) * 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US20030196109A1 (en) * 2000-08-28 2003-10-16 Contentguard Holdings, Inc. Method and apparatus for content transaction aggregation
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
DE10046895A1 (de) * 2000-09-21 2002-04-25 Siemens Ag Verfahren zur Übermittlung verschlüsselter Informationen zur Registrierung eines Applikationsprogramms
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
CA2435624C (en) 2000-09-22 2013-05-07 Richard B. Levine Systems and methods for preventing unauthorized use of digital content
US7343324B2 (en) * 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US6986040B1 (en) 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
US7962416B1 (en) * 2000-11-22 2011-06-14 Ge Medical Technology Services, Inc. Method and system to remotely enable software-based options for a trial period
US20020073312A1 (en) * 2000-12-08 2002-06-13 International Business Machines Corporation Secure electronic software distribution
US20020083058A1 (en) * 2000-12-27 2002-06-27 Meng-Ling Hsiao Method, apparatus and article for reference material management
US6912294B2 (en) * 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
US8069116B2 (en) * 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US7206765B2 (en) * 2001-01-17 2007-04-17 Contentguard Holdings, Inc. System and method for supplying and managing usage rights based on rules
US6754642B2 (en) 2001-05-31 2004-06-22 Contentguard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
US7774279B2 (en) * 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US20020120726A1 (en) * 2001-02-23 2002-08-29 Microsoft Corporation Method and system for providing a software license via the telephone
US7328453B2 (en) * 2001-05-09 2008-02-05 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
WO2002095747A1 (en) * 2001-05-18 2002-11-28 Michtchenko Valentin Alexandro Method for recording, for distributing and reproducing information recorded on data carriers
US20030043852A1 (en) * 2001-05-18 2003-03-06 Bijan Tadayon Method and apparatus for verifying data integrity based on data compression parameters
US6895503B2 (en) * 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US7222104B2 (en) * 2001-05-31 2007-05-22 Contentguard Holdings, Inc. Method and apparatus for transferring usage rights and digital work having transferrable usage rights
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275709B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US6973445B2 (en) * 2001-05-31 2005-12-06 Contentguard Holdings, Inc. Demarcated digital content and method for creating and processing demarcated digital works
US20030009424A1 (en) * 2001-05-31 2003-01-09 Contentguard Holdings, Inc. Method for managing access and use of resources by verifying conditions and conditions for use therewith
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275716B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US7152046B2 (en) * 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US8001053B2 (en) * 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
AU2002345577A1 (en) * 2001-06-07 2002-12-23 Contentguard Holdings, Inc. Protected content distribution system
CN1539115A (zh) * 2001-06-07 2004-10-20 ��̹�е¿عɹɷ����޹�˾ 管理权限转移的方法和装置
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
WO2002101490A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Cryptographic trust zones in digital rights management
US7100200B2 (en) 2001-06-13 2006-08-29 Citrix Systems, Inc. Method and apparatus for transmitting authentication credentials of a user across communication sessions
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7979914B2 (en) * 2001-06-25 2011-07-12 Audible, Inc. Time-based digital content authorization
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7224805B2 (en) 2001-07-06 2007-05-29 Nokia Corporation Consumption of content
GB0116489D0 (en) * 2001-07-06 2001-08-29 Nokia Corp Improvements in and relating to consumption of content
US20030041167A1 (en) * 2001-08-15 2003-02-27 International Business Machines Corporation Method and system for managing secure geographic boundary resources within a network management framework
US7343487B2 (en) * 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
US7316032B2 (en) * 2002-02-27 2008-01-01 Amad Tayebi Method for allowing a customer to preview, acquire and/or pay for information and a system therefor
US7562397B1 (en) * 2002-02-27 2009-07-14 Mithal Ashish K Method and system for facilitating search, selection, preview, purchase evaluation, offering for sale, distribution, and/or sale of digital content and enhancing the security thereof
KR100616217B1 (ko) 2001-12-13 2006-08-25 가부시키가이샤 소니 컴퓨터 엔터테인먼트 프로그램 컨텐츠의 안전한 배포를 위한 방법 및 장비
ATE542325T1 (de) 2001-12-21 2012-02-15 Sony Computer Entertainment Inc Verfahren und vorrichtungen zur sicheren verteilung von programminhalt
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US8216071B2 (en) * 2002-03-20 2012-07-10 Intel Corporation Method and apparatus for software delivery and management
US7249262B2 (en) 2002-05-06 2007-07-24 Browserkey, Inc. Method for restricting access to a web site by remote users
US7281273B2 (en) * 2002-06-28 2007-10-09 Microsoft Corporation Protecting content on medium from unfettered distribution
US20040006541A1 (en) * 2002-07-08 2004-01-08 International Business Corporation Method and system for purchasing broadcast content
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7290149B2 (en) * 2003-03-03 2007-10-30 Microsoft Corporation Verbose hardware identification for binding a software package to a computer system having tolerance for hardware changes
US7278131B2 (en) * 2003-03-03 2007-10-02 Microsoft Corporation Compact hardware identification for binding a software package to a computer system having tolerance for hardware changes
WO2004104802A1 (en) * 2003-05-13 2004-12-02 Pctel, Inc. Locking programming interface
WO2004102395A1 (ja) * 2003-05-16 2004-11-25 Japan-Wave Inc. デジタルコンテンツの不正使用防止システム
TW200512647A (en) * 2003-09-25 2005-04-01 Genesys Logic Inc System and method for authenticating software installation on different personal computers, associated computer system and associated computer-readable recording media
US7421741B2 (en) 2003-10-20 2008-09-02 Phillips Ii Eugene B Securing digital content system and method
US8108672B1 (en) 2003-10-31 2012-01-31 Adobe Systems Incorporated Transparent authentication process integration
US8627489B2 (en) 2003-10-31 2014-01-07 Adobe Systems Incorporated Distributed document version control
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
EP1550931A1 (de) * 2003-12-31 2005-07-06 Neopost S.A. Freischaltung einer gesperrten Funktionalität eines rechnergesteuerten Apparates
GB0411560D0 (en) * 2004-05-24 2004-06-23 Protx Group Ltd A method of encrypting and transferring data between a sender and a receiver using a network
EP1635529A1 (de) * 2004-09-09 2006-03-15 Daniel Akenine Verfahren und Computerprodukt zum Belegen der Zeit und des Inhalts von Datensätzen in einem überwachten System
EP1803062A1 (de) 2004-09-20 2007-07-04 Sony Computer Entertainment Inc. Verfahren und vorrichtungen zum verteilen von software-anwendungen
US7995758B1 (en) 2004-11-30 2011-08-09 Adobe Systems Incorporated Family of encryption keys
US20060161968A1 (en) * 2004-12-21 2006-07-20 Nintendo Co., Ltd. Method and apparatus for secure delivery and evaluation of prototype software over a network
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US9497172B2 (en) 2005-05-23 2016-11-15 Litera Corp. Method of encrypting and transferring data between a sender and a receiver using a network
US20060271493A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Method and apparatus for executing code in accordance with usage rights
US8832047B2 (en) 2005-07-27 2014-09-09 Adobe Systems Incorporated Distributed document version control
US7438078B2 (en) * 2005-08-05 2008-10-21 Peter Woodruff Sleeping bag and system
US20070079238A1 (en) * 2005-10-05 2007-04-05 Sbc Knowledge Ventures, L.P. Computer executable graphical user interface engine, system, and method therefor
US8135645B2 (en) * 2005-12-06 2012-03-13 Microsoft Corporation Key distribution for secure messaging
EP1796000A1 (de) * 2005-12-06 2007-06-13 International Business Machines Corporation Verfahren, System und Computerprogramm zur Verteilung von Softwareprodukten im Testmodus
US7970691B1 (en) * 2006-02-13 2011-06-28 Magma Management, Inc. Method for securing licensing agreements on new products
WO2007107658A1 (fr) * 2006-03-22 2007-09-27 France Telecom Procede de controle d'acces, procede d'utilisation d'une base de donnees, installation, programme d'ordinateur et base de donnees
JP2009027525A (ja) * 2007-07-20 2009-02-05 Nec Corp 光伝送システムおよび光伝送方法
US9098676B2 (en) * 2008-04-16 2015-08-04 Safenet, Inc. System and methods for detecting rollback
US20100325200A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Software Activation Through Digital Media Fingerprinting
US20110066843A1 (en) * 2009-09-16 2011-03-17 Brent Newman Mobile media play system and method
WO2012064331A1 (en) * 2010-11-12 2012-05-18 Hewlett-Packard Development Company, L.P. Determine authorization of a software product based on a first and second authorization item
CN104462872B (zh) * 2013-09-13 2018-11-06 北大方正集团有限公司 终端、服务器和数字内容授权方法
AU2016228544B2 (en) * 2015-03-12 2020-01-16 Visa International Service Association Mutual authentication of software layers
ITUB20153847A1 (it) 2015-09-24 2017-03-24 Cinello S R L Sistema elettronico e metodo di gestione di contenuti digitali relativi a opere d'arte idoneo a impedirne la diffusione incontrollata
CN108989024B (zh) * 2018-06-29 2023-04-14 百度在线网络技术(北京)有限公司 控制ecu间通信的方法、装置、设备以及相应车辆
US11422977B1 (en) * 2021-10-15 2022-08-23 Morgan Stanley Services Group Inc. High-compression, high-volume deduplication cache

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4588991A (en) * 1983-03-07 1986-05-13 Atalla Corporation File access security method and means
US4888798A (en) * 1985-04-19 1989-12-19 Oms, Inc. Modular software security
US5021997A (en) * 1986-09-29 1991-06-04 At&T Bell Laboratories Test automation system
US5109413A (en) * 1986-11-05 1992-04-28 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
EP0268139A3 (de) * 1986-11-05 1991-04-10 International Business Machines Corporation Behandlung von Ausführungsrechten mit Bezug auf einen Softwarekopierschutzmechanismus
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
US5166886A (en) * 1989-07-31 1992-11-24 Molnar Charles E System to demonstrate and sell computer programs
JP3073590B2 (ja) * 1992-03-16 2000-08-07 富士通株式会社 電子化データ保護システム、使用許諾者側装置および使用者側装置
NZ255971A (en) * 1992-09-21 1997-05-26 Uniloc Singapore Private Ltd Software registration and licensing system uses matching of licensee indentification codes
US5293422A (en) * 1992-09-23 1994-03-08 Dynatek, Inc. Usage control system for computer software
US5327563A (en) * 1992-11-13 1994-07-05 Hewlett-Packard Method for locking software files to a specific storage device
US5341429A (en) * 1992-12-04 1994-08-23 Testdrive Corporation Transformation of ephemeral material
US5337357A (en) * 1993-06-17 1994-08-09 Software Security, Inc. Method of software distribution protection

Also Published As

Publication number Publication date
CA2145926A1 (en) 1995-10-26
KR950029929A (ko) 1995-11-24
EP0679980A1 (de) 1995-11-02
JPH07295801A (ja) 1995-11-10
KR100200443B1 (ko) 1999-06-15
US5757907A (en) 1998-05-26
EP0679980B1 (de) 2003-06-18
CA2145926C (en) 1999-03-02
DE69531079D1 (de) 2003-07-24

Similar Documents

Publication Publication Date Title
DE69531079T2 (de) Verfahren und Vorrichtung mit rechnerabhängiger Identifizierung, die es ermöglicht, Software zu erproben
DE69531077T2 (de) Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben
DE69531082T2 (de) Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben
DE69926970T2 (de) Selbstschützende Dokumente
DE69433897T2 (de) Zugangskontrolle für tragbare datenspeichermedien
DE69636050T2 (de) Verfahren und system für die verwaltung eines datenobjektes zur verwendung von vorgegebenen zuständen
DE69333754T2 (de) Schutzsystem für elektronische Daten
DE60212920T2 (de) Verfahren und system zur verwaltung von digitalen abonnementrechten
DE69736310T2 (de) Erzeugung und Verteilung digitaler Dokumente
DE69814406T2 (de) Tragbare elektronische vorrichtung für systeme zur gesicherten kommunikation und verfahren zur initialisierung der parameter
DE60021465T2 (de) Sicherheitsverwaltungssystem, Datenverteilungsvorrichtung und tragbares Terminalgerät
DE60224060T2 (de) Verwendung von daten gespeichert in einem lese-zerstörenden speicher
DE69433077T2 (de) Software-Verteilungsschutzverfahren
DE69724946T2 (de) Programmvermietungssystem und Verfahren zur Vermietung von Programmen
DE60038046T2 (de) System und Verfahren zum Zugreifen auf geschützten Inhalt in einer Architektur mit Rechteverwaltung
DE69535199T3 (de) Verfahren und System zur Steuerung der Verteilung und Benutzung von Digitalwerken, die eine Nutzungsrechtsgrammatik verwenden
DE69533997T3 (de) System zur Steuerung der Verteilung und Benutzung von Digitalwerken
DE10297239T5 (de) Mobile Digitale Quittungen
DE60114069T2 (de) System und Verfahren für den Schutz von Digitalwerken
DE60212969T2 (de) Verfahren und vorrichtung zum verfolgen des status eines betriebsmittels in einem system zur verwaltung der benutzung der betriebsmittel
DE60318633T2 (de) Verwaltung digitaler rechte
DE60114915T2 (de) Begrenztes Drucken einer elektronisch übertragenen Information
EP1256040A2 (de) Vorrichtung zum zugriffsgeschützten behandeln elektronischer daten
DE19717900A1 (de) Verfahren und Vorrichtung zur Verarbeitung eines Computer-Applets
WO2001047175A2 (de) Vorrichtung zum passwort-geschützten handhaben eines elektronischen dokuments

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7