-
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).