DE69534212T2 - Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung - Google Patents

Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung Download PDF

Info

Publication number
DE69534212T2
DE69534212T2 DE69534212T DE69534212T DE69534212T2 DE 69534212 T2 DE69534212 T2 DE 69534212T2 DE 69534212 T DE69534212 T DE 69534212T DE 69534212 T DE69534212 T DE 69534212T DE 69534212 T2 DE69534212 T2 DE 69534212T2
Authority
DE
Germany
Prior art keywords
computer
software
application author
passport
digital signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69534212T
Other languages
English (en)
Other versions
DE69534212T8 (de
DE69534212D1 (de
Inventor
Sheue-Ling Chang
James Woodside Gosling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69534212D1 publication Critical patent/DE69534212D1/de
Publication of DE69534212T2 publication Critical patent/DE69534212T2/de
Publication of DE69534212T8 publication Critical patent/DE69534212T8/de
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung:
  • Die vorliegende Erfindung betrifft den Einsatz einer Verschlüsselung mit öffentlichem Schlüssel und insbesondere betrifft die vorliegende Erfindung den Einsatz der Verschlüsselung mit öffentlichem Schlüssel, um eine bessere Sicherheit und Produktauthentifizierung bei dem Software-Vertrieb zu erzielen.
  • 2. Fachlicher Hintergrund:
  • Die Verschlüsselung mit öffentlichem Schlüssel basiert auf Verschlüsselungsalgorithmen, die zwei Schlüssel aufweisen. Einer wird zu Verschlüsselung verwendet und der andere Schlüssel wird zur Entschlüsselung verwendet. Es gibt einen bekannten Algorithmus, der den zweiten Schlüssel zuerst berechnet, wenn der Erste bekannt ist. Ohne vollständige Kenntnis aller Parameter kann man jedoch den ersten Schlüssel bei vorgegebenem zweiten Schlüssel nicht berechnen. Der erste Schlüssel wird als der "private Schlüssel" bezeichnet, und der zweite Schlüssel wird als der "öffentliche Schlüssel" bezeichnet. In der Praxis kann entweder der private Schlüssel oder der öffentliche Schlüssel zur Verschlüsselung einer Nachricht verwendet werden, wobei der andere Schlüssel zu deren Entschlüsselung verwendet wird. Im allgemeinen muß der private Schlüssel privat bzw. geheim gehalten werden, während der öffentliche Schlüssel jedem zur Verfügung gestellt werden kann. Verschiedene kryptographische Schemas mit öffentlichem Schlüssel wurden für den Schutz von Nachrichten und Daten entwickelt (siehe, Whitfield Diffie, "The First Ten Years of Public Key Cryptography" (IEEE Proceedings, Band 76, Nr. 5, 1988) und Paul Fahn, "Answers to Frequently Asked Questions about Today's Cryptography (RSA Laborstories 1993).
  • Kryptographie mit öffentlichem Schlüssel wird zum Senden sicherer Nachrichten über öffentliche Kommunikationsverbindungen verwendet, welche ein Eindringling abhören kann, und sie löst das Problem des sichereren Übersendens des Verschlüsselungspaflworts an die andere Seite.
  • Einige kryptographische Schemas mit öffentlichem Schlüssel erfordern eine Gegensignatur und gemeinsame Signatur für die digitale Zertifizierung (siehe Fischer, Public Key/Signature Cryptosystem With Enhanced Digital Signature Certification, Europäisches Patent mit der Veröffentlichungsnummer 0328232, 16. August 1989); oder sie ermöglichen einem Software-Anbieter, sein Signaturschema zu ändern, ohne seinen aktuellen Schlüsselzertifizierungsprozeß zu ändern, indem die Schlüsselzertifizierung und die Signaturverifikation in der Authentifizierungsprozedur getrennt werden (siehe Ham, Lin und Yang, A Software Authentication System For Information Integrity, Computers & Security Journal, Band 11, Nr. 8, Dezember 1992, Seiten 747–752).
  • Systeme mit öffentlichem Schlüssel können auch zur Verschlüsselung von Nachrichten verwendet werden, und auch zum wirksamen Unterzeichnen von Nachrichten, wobei dies der empfangenden Partei ermöglicht, den Sender der Nachricht zu authentifizieren. Man kann die Kryptographie mit öffentlichem Schlüssel auch zum Versiegeln einer Dateneinheit oder zum Schützen dieser vor unautorisierten Eingriffen verwenden. In diesem Fall berechnet der Sender einen Nachrichten-Digest aus den Daten unter Verwendung speziell konzipierter kryptographisch starker Digests, die für diesen Zweck konzipiert sind. Der Sender verwendet den privaten Schlüssel dann zum Verschlüsseln des Nachrichten-Digests, wobei dieser verschlüsselte Nachrichten-Digest eine digitale "Signatur" genannt wird. Der Sender packt die Daten, den verschlüsselten Nachrichten-Digest und den öffentlichen Schlüssel dann zusammen. Der Empfänger kann dann eine Prüfung auf unautorisierte Eingriffe ausführen, indem er den Nachrichten-Digest erneut berechnet, und dann den empfangenen Nachrichten-Digest mit dem öffentlichen Schlüssel entschlüsselt. Wenn der neu berechnete und der entschlüsselte Nachrichten-Digest identisch sind, gab es keine unautorisierten Eingriffe auf die Daten.
  • "Viren" und "Würmer" sind schlau in legitime Programme eingefügte Computercodes, die anschließend auf den Computern ausgeführt werden. Jedes Mal, wenn das Programm ausgeführt wird, kann der Virus oder der Wurm Schaden in den System verursachen, indem wertvolle Informationen zerstört werden, und/oder andere Maschinen außerdem infizieren und sich zu diesen in dem Netzwerk ausbreiten. Während es feine Unterschiede zwischen einem Virus und einem Wurm gibt, ist eine bedeutsame Komponente für beide, daß sie üblicherweise der Hilfe von einem ahnungslosen Computerbenutzer bedürfen, um einen Computer oder ein Firmennetz erfolgreich zu infizieren.
  • Die Infizierung von Computern mit Viren und Würmern ist ein allgemeines Problem in der heutigen Computerindustrie. Außerdem sind Firmennetze anfällig für Frontalangriffe, bei denen ein Eindringling in das Netzwerk einbricht und Informationen stiehlt oder zerstört. Sicherheitsverletzungen beliebiger Art sind in großen Firmennetzen ein besonders beunruhigendes Problem aufgrund der Gefahr eines umfangreichen Schadens und wirtschaftlichen Verlustes. Sicherheitsverletzungen können darüber hinaus leichter begangen werden, wenn ein Firmennetzwerk mit einem öffentlichen Netzwerk, beispielsweise dem Internet verbunden ist. Firmen ergreifen verschiedene Maßnahmen, um sich vor Verletzungen der Netzwerksicherheit zu schützen, entweder durch Frontalangriffe oder Infizierungen, wobei die Vorteile erhalten bleiben sollen, die mit der Verbindung mit einem weltweiten Netzwerk verbunden sind.
  • Die von den meisten Firmen, welche die Vorteile der Verbindung mit dem Internet nutzen möchten und gleichzeitig ihre Sicherheit aufrecht halten möchten, angenommene Lösung ist die Installation eines Firewall. Firewalls beschränken im allgemeinen Internet-Dateiübertragungen und Telnet-Verbindungen. Derartige Übertragungen und Verbindungen können nur von innerhalb des Firmennetzwerks initiiert werden, so daß von außerhalb initiierte Dateiübertragungen und Telnet-Verbindungen von dem Firewall zurückgewiesen werden. Firewalls erlauben e-mail und Netzwerknachrichten, frei in das innere des privaten Netzwerkes der Firewall zu strömen. Die Verwendung von Firmen-Firewalls erlaubt es Angestellten, in der Firmenumgebung leicht Informationen auszutauschen, ohne extreme Sicherheitsmaßnahmen zu ergreifen. Eine gute Firewall-Ausführung kann vor den meisten typischen Frontalangriffen auf die Systemsicherheit schützen.
  • Ein Verfahren, um zu verhindern, daß Viren und Würmer ein Firmennetz infizieren, besteht darin, nie ein Programm auszuführen, das Viren enthalten kann. Im allgemeinen sollten legitim im Firmennetz verbreitete Programme als virusfrei betrachtet werden. Sofern von außerhalb des Firewalls abgerufen, ist alles binär Ausführbare, alle nicht durchgesehenen Shell-Scripts und jeder Quellcode Software, die einen Wurm oder Virus enthalten kann.
  • Jedoch können binäre Ausführbare, Shell-Scripts und Quellcode von außerhalb einen Firmen-Firewall als Anlage einer e-mail erreichen. Beispielsweise können Shell-Scripts, die verwendet werden, um mehrere Dateien zu erstellen und mit Hilfe von e-mail zu senden, und die Survey-Tools, die durch Aktivierung der e-mail-Anlage gestartet werden, den Zugang von Viren ermöglichen. Ausführbare können auch direkt durch das iftp-Programm abgerufen werden, über einen world-wide-web-Browser, beispielsweise Mosaik, oder von einer externen Firma, deren Netzwerk bereits beeinträchtigt wurde.
  • Darüber hinaus ist der kommerzielle Softwarefreigabe- und -verteilungsprozeß mit Sicherheits- und Authentifizierungsproblemen verbunden. Beispielsweise sind einige der Software zugeordneten Informationen, beispielsweise die Ursprungsfirma oder der Autor, die Angabe der Rechtsbeschränkungen und der gleichen nicht an dem Code selbst angehängt. Statt dessen werden derartige Informationen als Drucksache zur Verfügung gestellt, und werden von dem Code getrennt, sobald das Paket geöffnet ist und der Code installiert ist. Selbst Anwendungen, die versuchen, sich beim Start selbst zu identifizieren, sind anfällig dafür, daß die Identifizierung gefälscht oder auf andere Weise nachgemacht wird.
  • Ein Benutzer hat keinen Mechanismus, um zu authentifizieren, daß die verkaufte Software tatsächlich von dem auf dem Etikett gezeigten Hersteller stammt. Unautorisiertes Kopieren und der Verkauf von Software ist ein beträchtliches Problem und ebenfalls Benutzer, die glauben, daß sie Software mit einer Herstellergarantie und nicht Pirateriesoftware kaufen, die weder eine Garantie noch eine Softwareunterstützung bietet. Das Problem der Authentifizierung des Originalursprungs der Software wird erhöht, wenn die Software in Netzwerken verteilt werden soll, und der Software-Ursprung für einen Benutzer kann weit entfernt von dem ursprünglichen Autor der Software sein. Außerdem hat der Benutzer nicht die Möglichkeit zu überprüfen, daß die gekaufte Software nur den Code des Originalherstellers enthält. Ein Benutzer verfügt darüber hinaus nicht über ein Verfahren zum Erfassen von unautorisierten Eingriffen, wie beispielsweise die Existenz eines Virus, welche unerwünschte Effekte verursachen können.
  • Alle obigen Probleme betreffen den Transport der Software sowohl von den Herstellern zu den Benutzern als auch von Benutzer zu Benutzer. Darüber hinaus ist das Transportproblem unabhängig vom Transportmedium. Das Problem gibt es in allen Transportmedien, einschließlich Diskette, Magnetband, CD-ROM und Netzwerk.
  • Wie beschrieben wird, stellt die vorliegende Erfindung ein Verfahren und eine Einrichtung zum Authentifizieren zur Verfügung, daß von einem Hersteller verteilte Software eine legitime bzw. rechtmäßige Kopie einer autorisierten Softwarefreigabe ist und daß die Software nur den Originalherstellercode ohne unautorisierte Eingriffe enthält. Die vorliegende Erfindung löst die oben angegebenen Probleme durch die Verwendung eines "Software-Passes", welcher die digitale Signatur des Anwendungsautors und Herstellers umfaßt. Wie oben beschrieben wird, kann die vorliegende Erfindung auch verwendet werden, um geistiges Eigentum in Form von urheberrechtlich geschütztem Computercode zu schützen, indem kryptografische Techniken verwendet werden, die hier als Verschlüsselung mit öffentlichem Schlüssel bezeichnet werden.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Die Erfindung stellt ein Verfahren und eine Einrichtung zur Verfügung, die Verschlüsselungstechniken mit öffentlichem Schlüssel zum Verbessern der Software-Sicherheit und zum Verteilen von Software verwenden, die in den beigefügten Ansprüchen beschrieben sind.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Verbessern der Software-Sicherheit geschaffen, daß die Schritte umfaßt:
    Bereitstellen eines ersten Computers;
    Bereitstellen eines privaten Schlüssels eines Anwendungsautors;
    Bereitstellen einer Lizenz des Anwendungsautors, die einen öffentlichen Schlüssel des Anwendungsautors und eine digitale Signatur eines Plattformherstellers einschließt;
    Bereitstellen einer Software;
    Bereitstellen des privaten Schlüssels des Anwendungsautors, der Lizenz des Anwendungsautors und der Software an einen von dem ersten Computer ausgeführten Compiler, wobei der Compiler die Software in einen binären Code kompiliert und einen ersten Nachrichten-Digest für den binären Code berechnet;
    wobei der erste Computer ferner den ersten Nachrichten-Digest unter Verwendung des privaten Schlüssels des Anwendungsautors verschlüsselt, wobei der verschlüsselte erste Nachrichten-Digest eine digitale Signatur des Anwendungsautors bildet;
    wobei der erste Computer einen Software-Paß erzeugt, der die digitale Signatur des Anwendungsautors, die Lizenz des Anwendungsautors und den binären Code umfaßt; und
    Bereitstellen eines Elements zum Ausführen des Schrittes des Verteilens des Software-Passes an einen zweiten Computer, wobei der zweite Computer einen eingebetteten öffentlichen Schlüssel des Plattformherstellers aufweist.
  • Ebenfalls gemäß der vorliegenden Erfindung wird ein System zum Verbessern der Software-Sicherheit zur Verfügung gestellt, aufweisend:
    einen ersten Computer;
    einen privaten Schlüssel eines Anwendungsautors;
    eine Lizenz des Anwendungsautors, welche einen öffentlichen Schlüssel des Anwendungsautors und eine digitale Signatur eines Plattformherstellers einschließt;
    eine Software;
    einen von dem ersten Computer ausgeführten Compiler, wobei der Compiler die Software in binären Code kompiliert und einen ersten Nachrichten-Digest für den binären Code berechnet;
    wobei der Compiler ferner den ersten Nachrichten-Digest unter Verwendung des privaten Schlüssels des Anwendungsautors verschlüsselt, wobei der verschlüsselte erste Nachrichten-Digest eine digitale Signatur des Anwendungsautors bildet und
    wobei der erste Computer einen Software-Paß erzeugt, der die digitale Signatur des Anwendungsautors die Lizenz des Anwendungsautors und den binären Code umfaßt;
    Mittel zum Verteilen des Software-Passes an einen zweiten Computer, wobei der zweite Computer einen eingebetteten öffentlichen Schlüssel des Plattformherstellers aufweist.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein Datenverarbeitungssystem, in das die Lehre der vorliegenden Erfindung integriert ist.
  • 2 zeigt konzeptionell die Verwendung des Software-Passes der vorliegenden Erfindung, wobei der Anwendungscode und der Software-Paß in separaten Dateien zur Verfügung gestellt werden.
  • 3 zeigt konzeptionell den Einsatz der Software-Paß-Verwendung der vorliegenden Erfindung, wobei der Anwendungscode und der Software-Paß in derselben Datei verteilt werden.
  • 4 zeigt schematisch den Prozeß zum Erzeugen eines Software-Passes gemäß der vorliegenden Erfindung.
  • 5 zeigt schematisch die Verwendung der vorliegenden Erfindung für eine Plattformhersteller-Lizenzvergabe.
  • 6a und 6b sind Flußdiagramme, die die Schritte darstellen, die von einem Ausführungsbeispiel der vorliegenden Erfindung ausgeführt werden, um zu verifizieren, daß eine gültige Lizenz eines Software-Autors vorhanden ist, und daß die Signatur des Software-Autors ("SW's) gültig ist, bevor die Ausführung eines Computerprogramms erlaubt wird.
  • Notation und Nomenklaturen
  • Die detaillierte folgende Beschreibung wird größtenteils anhand von symbolischen Darstellungen von Operationen von Datenverarbeitungseinrichtungen präsentiert. Diese Prozeßbeschreibungen und Darstellungen sind die von Fachleuten in der Datenverarbeitung verwendeten Mittel, um das Wesen ihrer Arbeit am effektivsten anderen Fachleuten zu vermitteln.
  • Unter einem Algorithmus ist hier und im allgemeinen eine selbstkonsistente Schrittfolge zu verstehen, die zu einem gewünschten Ergebnis führt. Diese Schritte sind solche, die eine physikalische Bearbeitung von physikalischen Größen erfordern. Üblicherweise, jedoch nicht notwendigerweise, können diese Größen die Form von elektrischen oder magnetischen Signalen annehmen, die gespeichert, übertragen, kombiniert, verglichen, angezeigt oder auf andere Weise bearbeitet werden können. Es erweist sich manchmal als vorteilhaft, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Nachrichten, Namen, Elemente, Symbole, Operationen, Nachrichten, Begriffe, Zahlen oder dergleichen zu bezeichnen. Es sollte jedoch nicht vergessen werden, daß alle diese ähnlichen Begriffe den entsprechenden physikalischen Größen zugeordnet werden müssen, und lediglich vorteilhafte Bezeichnungen für diese Größen sind.
  • In der vorliegenden Erfindung sind die Operationen, auf die Bezug genommen wird, Maschinenoperationen. Vorteilhafte Maschinen zur Ausführung der Operationen der vorliegenden Erfindung umfassen digitale Mehrzweckcomputer oder andere ähnliche Einrichtungen. In allen Fällen möge sich der Leser den Unterschied zwischen den Verfahrensoperationen beim Betrieb eines Computers und dem Berechnungsverfahren selbst vergegenwärtigen. Die vorliegende Erfindung betrifft Verfahrensschritte für den Betrieb eines Computers, der mit einer Reihe von Netzwerken gekoppelt ist und elektrische oder andere physikalische Signale verarbeitet, um andere gewünschte physikalische Signale zu erzeugen.
  • Die vorliegende Erfindung betrifft außerdem eine Einrichtung zur Ausführung dieser Operationen. Diese Einrichtung kann für die benötigten Zwecke speziell konstruiert sein oder sie kann einen Mehrzweckcomputer umfassen, der von einem in dem Computer gespeicherten Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Die hier präsentierten Verfahren/Prozeßschritte sind nicht von Natur aus mit einem bestimmten Computer oder einer anderen Einrichtung verbunden. Verschiedene Mehrzweckmaschinen können mit Programmen gemäß der hier enthaltenen Lehre verwendet werden, oder es kann sich als vorteilhafter erweisen, eine spezialisierte Einrichtung zur Ausführung der erforderlichen Verfahrensschritte zu konstruieren. Die erforderliche Struktur für verschiedene dieser Maschinen ergibt sich aus der weiter unten gelieferten Beschreibung.
  • Detaillierte Beschreibung der Erfindung
  • In der folgenden Beschreibung sind zahlreiche spezielle Details angegeben, beispielsweise Systemkonfigurationen, repräsentative Daten, eine Computercodeorganisation, Verschlüsselungsverfahren und Einrichtungen usw., um ein vollständiges Verständnis der vorliegenden Erfindung zu ermöglichen. Für einen Fachmann ist jedoch klar, daß die vorliegende Erfindung ohne diese speziellen Details ausgeführt werden kann. In anderen Fällen wurden bekannte Schaltungen und Strukturen nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern. Außerdem werden bestimmte Begriffe wie "weiß", "verifiziert", "vergleicht", "untersucht", "ver wendet", "findet", "bestimmt", "fordert heraus", "authentifiziert" usw. in dieser Beschreibung verwendet und werden als Fachbegriffe betrachtet. Die Verwendung dieser Begriffe, die von einem zufälligen Leser als Personifizierungen eines Computers oder eines elektronischen Systems betrachtet werden können, bezeichnen die Funktionen des Systems mit menschenähnlichen Attributen aus Gründen der Vereinfachung. Beispielsweise ist die hier gewählte Bezeichnung für ein elektronisches System als etwas "bestimmend" einfach ein Kurzschreibverfahren für die Beschreibung, daß das elektronische System gemäß der hier beschriebenen Lehre programmiert wurde oder auf andere Weise modifiziert wurde. Der Leser wird gewarnt, die beschriebenen Funktionen nicht mit menschlichen Alltagsattributen zu verwechseln. Diese Funktionen sind in jeder Hinsicht Maschinenfunktionen.
  • Beispielhafte Hardware
  • 1 zeigt ein Datenverarbeitungssystem gemäß der Lehre der vorliegenden Erfindung. Es ist ein Computer 10 dargestellt, der drei Hauptkomponenten umfaßt. Die erste von diesen ist eine Eingabe/Ausgabe(I/O)-Schaltung 12, die zur Übermittlung von Informationen in geeignet strukturierter Form an andere Teile des Computers 10 und von diesen verwendet wird. Darüber hinaus umfaßt der Computer 10 eine zentrale Verarbeitungseinheit (CPU) 13, die mit der I/O-Schaltung 12 und einem Speicher 14 gekoppelt ist. Diese Elemente sind diejenigen, die in den meisten Mehrzweckcomputern üblicherweise zu finden sind, und tatsächlich soll der Computer 10 ein breites Spektrum von Datenverarbeitungseinrichtungen repräsentieren. Der Computer 10 kann gemäß der hier beschriebenen Lehre ferner mit einem Netzwerk gekoppelt werden. Der Computer 10 kann ferner eine die vorliegende Erfindung realisierende Verschlüsselung- und Entschlüsselungsschaltung enthalten oder die vorliegende Erfindung kann als vom Computer 10 ausgeführte Software implementiert werden. In der Darstellung ist ein Rasterbildschirm 16 mit der I/O-Schaltung 12 gekoppelt und vorgesehen, um von der CPU 13 erzeugte Bilder gemäß der vorliegenden Erfindung anzuzeigen. Als Anzeige 16 kann eine beliebige von verschiedenen Kathodenstrahlröhren (CRT) oder eine andere Anzeige verwendet werden.
  • Der Software-Paß der vorliegenden Erfindung kennzeichnet einen Teil der Software oder einen Maschinencode (im folgenden "Code" genannt) in einer ähnlichen Weise wie eine physikalischer Paß eine Person kennzeichnet. Das Konzept ähnelt dem echten Paß-System, welches die Basis für ein Vertrauensmodel zwischen verschiedenen Nationen darstellt. Physikalische Pässe ermöglichen es Grenzbeamten, jedes Individuum zu identifizieren und bestimmte Entscheidungen auf der Basis seines/ihres Passes zu treffen. Wie im folgenden beschrieben wird, ist ein Software-Paß ein moderner Freigabeprozeß für die Verteilung von Software-Produkten. Ein Software-Paß verleiht einem Software-Produkt eine Identität und eine Handelsmarke. Der Software-Paß liefert die Basis für ein Vertrauensmodell und ermöglicht es Computerbenutzern, die Echtheit eines Software-Produktes auf der Basis der in dessen Paß enthaltenen Informationen zu identifizieren und zu bestimmen.
  • Es wird nun auf 2 Bezug genommen. Die vorliegende Erfindung ist konzeptionell für den Fall dargestellt, indem der Computercode (der aus Software besteht) und der Software-Paß sich in getrennten Dateien befinden. 3 zeigt die Verwendung der vorliegenden Erfindung, wobei der Software enthaltende Computercode und der Software-Paß sich in der gleichen Datei befinden.
  • Wie in den 2 und 3 dargestellt ist, können die im Software-Paß der vorliegenden Erfindung enthaltenen Informationen umfassen:
    Produktinformationen, beispielsweise den Namen des Softwareproduktes und beliebige andere für das spezielle Produkt relevante Informationen;
    Firmeninformationen, einschließlich des Namens der Firma oder des Softwareanwendungsautors, der das Produkt erstellt hat;
    ein Gültigkeitsdatum, welches das Ausgabedatum des Software-Passes und das Ablaufdatum des Passes umfaßt;
    eine Legende über die eingeschränkten Rechte, welche Copyright-Hinweise und andere ähnliche Legenden umfaßt;
    den Softwarecode-Körper, der einen an den Benutzer verteilten ausführbaren Anwendungscode umfaßt;
    eine Lizenz eines Anwendungsautors; und
    eine digitale Signatur des Softwareanwendungsautors.
  • Es wird klar sein, daß die Komponenten eines Software-Passes im allgemeinen ohne Erläuterung verständlich sind, wobei die Lizenz des Anwendungsautors und die digitale Signatur weiter unten detaillierter erläutert werden.
  • DIGITALE SIGNATUR DES SOFTWAREHERSTELLERS
  • Eine digitale "Signatur" wird erstellt, indem bestimmte kryptografische Techniken der Berechnung eines Nachrichten-Digests von einem Softwarecode (im folgenden "Code" genannt) verwendet werden, und der Nachrichten-Digest unter Verwendung des privaten Schlüssels des Unterzeichners verschlüsselt wird. Es gibt viele bekannte Nachrichten-Digest-Algorithmen, beispielsweise die von RSA, Inc. veröffentlichten MD2-, MD4- und MD5-Algorithmen. Die Verwendung von privaten kryptografischen Techniken macht es sehr schwer, diese Signatur zu fälschen, da der Unterzeichner den privaten Schlüssel geheim hält. Der Leser wird verwiesen auf die Veröffentlichungen von Whitfield Diffie, "The First Ten Years of Public Key Cryptography", Band 76, Nr. 5 (IEEE Proceedings, Mai 1988); und Whitfiled Diffie, et al., "Authentication and Authenticated Key Exchanges" (Designs, Codes and Cryptography, 2, 107 – 125, 1992 Kluwer Academic Publishers) für eine detaillierte Beschreibung der Funktionsweise von Diffie-Helman-Zertifikaten und Kryptographie mit öffentlichem Schlüssel.
  • Man kann sich das Berechnen des Nachrichten-Digest für einen Code als Mechanismus der Aufnahme eines Foto-Schnappschusses von der Software vorstellen. Wenn sich der Code ändert, gibt sein Nachrichten-Digest alle Unterschiede wieder. In dem System der vorliegenden Erfindung wird diese "digitale Signatur" auf das Produkt vor dessen Freigabe gestempelt. Die digitale Signatur ordnet ein Produkt der Rechtspersönlichkeit zu, die es erzeugt hat, und ermöglicht Verbrauchern, die Qualität eines Produktes basierend auf dem Ruf des Herstellers zu beurteilen. Die Signatur erlaubt es ferner einem Verbraucher, die Echtheit eines Produktes zu erkennen.
  • LIZENZ DES SOFTWAREHERSTELLERS
  • Die erfindungsgemäße Lizenz des Softwareherstellers (die hier meistens als die "Lizenz des Anwendungsautors" bezeichnet wird) ist eine ähnliche Identifizierung wie die von einem Staat erteilte Lizenz für Handwerkerfirmen. Die Lizenz eines Softwareherstellers identifiziert und zertifiziert, daß der Hersteller autorisiert ist, bestimmte Softwareherstellungsaktivitäten auszuführen. Es wird erwartet, daß die Lizenz des Softwareherstellers von irgendeiner allgemein anerkannten Behörde erteilt wird, die von der Computersoftwareindustrie errichtet wird. Vor der Erteilung einer Lizenz an einen Softwarehersteller, führt diese Behörde einen definierten Prozeß zur Authentifizierung der Person oder der Firma durch, und um deren fachlichen Fähigkeiten zu verifizieren; genauso wie es ein Staat vor der Erteilung einer Firmenlizenz macht. Der Einfachheit halber wird die allgemein anerkannte Rechtspersönlichkeit in dieser Beschreibung als die Software veröffentlichende Behörde ("SPA"-Software Publishing Authority) bezeichnet.
  • Die Lizenz eines Softwareherstellers umfaßt die folgenden Informationen
    den Herstellernamen;
    das Lizenzerteilungsdatum;
    das Lizenzablaufdatum;
    den öffentlichen Schlüssel des Herstellers;
    den Namen der erteilenden Behörde SPA; und
    die digitale Signatur der SPA.
  • Die Softwareherstellerlizenz ordnet einem Anwendungsautor einen Namen und einen öffentlichen Schlüssel zu. Sie ermöglicht einem Softwarehersteller, mehrere Produkte herzustellen und jedes hergestellte Produkt zu signieren. Der in eine Lizenz eingebettete öffentliche Schlüssel gehört der Person, die die Lizenz besitzt. Dieser öffentliche Schlüssel kann später von beliebigen Dritten zur Verifizierung der digitalen Signatur des Herstellers verwendet werden. Ein Benutzer, der ein Produkt gekauft hat, kann die Echtheit des Produktes bestimmen, indem er den in die Identifizierung des Herstellers eingebetteten öffentlichen Schlüssel verwendet, um die digitale Signatur zu authentifizieren.
  • Die digitale Signatur der SPA wird erzeugt, indem der Nachrichten-Digest der Herstelleridentifizierung berechnet wird und der Nachrichten-Digest unter Verwendung des privaten Schlüssels der SPA verschlüsselt wird. Da der private Schlüssel der SPA von der SPA geheim gehalten wird, können Dritte die Signatur der SPA nicht leicht fälschen, um eine gefälschte Identifizierung zu erstellen.
  • Gemäß der Lehre der vorliegenden Erfindung liefert ein Softwareanwendungsautor ("SW"-software applicaton writer) drei Hauptinformationen an einen Compiler vor der Kompilierung des Codes:
    den von dem Anwendungsautor geschriebenen Quellcode;
    den privaten Schlüssel des Anwendungsautors; und
    die Lizenz des Anwendungsautors.
  • Der in einem Paß enthaltende Code kann Quellcode in verschiedenen Computersprachen, Assemblercode, binären Maschinencode oder Daten umfassen. Der Code kann in verschiedenen Formaten gespeichert werden. Beispielsweise kann Quellcode als Klarstext im Paß gespeichert werden. Binärer ausführbarer Maschinencode kann auch in einem kompaktierten Format in dem Paß gespeichert werden, wobei bestimmte bekannte Verdichtungsalgorithmen verwendet werden, beispielsweise die Huffman- Codierung. Das in einer bestimmten Ausführungsform verwendete Format wird von einem Fleck in dem Paß angegeben.
  • Ferner kann ein binärer ausführbarer Code in einem Format mit einem Satz von druckbaren Zeichen gespeichert werden, um den Druck des Passes zu ermöglichen. Ein Benutzer würde dann das druckbare Format umkehren, um die Software wiederzugewinnen. Darüber hinaus kann durch geistiges Eigentum geschützter Code, beispielsweise durch Copyright oder Patent, in einem verschlüsselten Format in dem Paß gespeichert sein. In einem derartigen Fall, wird erwogen, daß ein Benutzer eine Lizenzgebühr bezahlen muß, bevor er auf die Software zugreifen kann.
  • Es wird nun auf 4 Bezug genommen. Um den Software-Paß der vorliegenden Erfindung zu erzeugen, werden der ursprüngliche Quellcode 20, der private Schlüssel 22 des Anwendungsautors und die Lizenz 24 des Anwendungsautors an einen Compiler 26 geliefert. Wie dargestellt ist, umfaßt die Lizenz 24 des Anwendungsautors den Autornamen 30, den öffentlichen Schlüssel 32 des Autors und ein Gültigkeitsdatum 34.
  • Der Compiler 26 kompiliert den Quellcode 20 dann im binären Code. Der Compiler 26 berechnet ferner den Nachrichten-Digest für den binären Code und verschlüsselt den Nachrichten-Digest unter Verwendung des privaten Schlüssels 22, der von dem Anwendungsautor geliefert wird. Dieser verschlüsselte Nachrichten-Digest bildet die Signatur des Anwendungsautors.
  • Eine digitale Signatur des Anwendungsautors wird erstellt und in den Paß eingebettet. Der Compiler 26 bettet auch die Lizenz 24 des Anwendungsautors in dem Paß ein. Die Lizenz 24 des Anwendungsautors ermöglicht es einem Benutzer, der das Produkt gekauft hat, den Hersteller des Produkts zu erkennen. Die digitale Signatur des Anwendungsautors in dem Paß ermöglicht es einem Benutzer, die Echtheit des Produktes zu verifizieren. Die digitale Signatur der SPA in der Lizenz 24 des Anwendungsautors ermöglicht es dem Benutzer, zu verifizieren, daß ein Anwendungsautor ein lizensierter Anwendungsautor ist, indem der öffentliche Schlüssel der SPA zum Entschlüsseln der Signatur verwendet wird.
  • Wie in 4 gezeigt ist, wird der erzeugte Software-Paß 38, der den Anwendungscode umfaßt, dann unter Verwendung eines beliebigen gewünschten Softwarevertriebsmodells vertrieben bzw. verteilt. Der Paß 38 wird von einem Benutzer empfangen und wird ausgeführt unter Verwendung eines Betriebssystems (OS), das auf einem Computersystem ("Plattform"), beispielsweise dem System gemäß 1, läuft.
  • Es wird nun auf 5 Bezug genommen. Es wird die Verwendung der vorliegenden Erfindung durch Plattformhersteller beschrieben. In der Industrie für elektronische Spiele und der Industrie für interaktives Kabelfernsehen-Set-Top-Boxen wünschen Plattformhersteller oft, daß sie nur die Ausführung von autorisiertem Code auf ihrer speziellen Plattform erlauben können. Um die Steuerung der Zugriffsmöglichkeit auf eine Plattform zu steuern, muß der empfangene Code identifizierbar sein und die Plattform muß in der Lage sein, die Software zu identifizieren, wenn sie eingeht. Wie in 5 dargestellt ist, kann die vorliegende Erfindung in einem Plattformherstellerlizenzvergabeschema angewendet werden, und zwar mit besonderer Anwendung für den Einsatz in den Umgebungen von Set-Top-Boxen und Videospielen.
  • Es wird nun auf die 6a und 6b Bezug genommen. Ein Plattformhersteller kann eine "Lizenz des Programmierers" an eine Gruppe von Anwendungsautoren erteilen (die alternativ als "Software-Autoren" bezeichnet werden), die autorisiert sind, für eine spezielle Plattform Anwendungscodes zu schreiben. Eine von einem Plattformhersteller erteilte Lizenz des Programmierers ähnelt der von der SPA erteilten Identifizierung des Programmierers, mit der Ausnahme, daß die Lizenz von dem Plattformhersteller und nicht von der SPA digital signiert ist. Die Lizenz des Programmierers umfaßt die folgenden Informationen:
    Herstellername;
    das Lizenzerteilungsdatum;
    das Lizenzablaufdatum;
    den öffentlichen Schlüssel des Herstellers;
    die erteilende Behörde (der Plattformhersteller); und
    die digitale Signatur des Plattformherstellers.
  • Die digitale Signatur des Plattformherstellers wird dadurch erzeugt, daß der Nachrichten-Digest der Lizenz berechnet wird und der Nachrichten-Digest unter Verwendung des privaten Schlüssels des Plattformherstellers verschlüsselt wird.
  • Die von einem lizensierten Anwendungsautor erstellte Software umfaßt einen gültigen Paß 50 (siehe 5 und 6a), der eine digitale Signatur eines echten Autors enthält, und eine gültige von dem Plattformhersteller erteilte Lizenz 52 des Anwendungsautors. Jeder Anwendungsautor, der von dem Plattformhersteller nicht autorisiert ist, besitzt keine gültige Lizenz. Daher hat der von einer unautorisierten Person erzeugte Software-Paß entweder keine gültige Lizenz oder keine gültige Signatur.
  • Der öffentliche Schlüssel 54 des Plattformherstellers ist für den Verifizierungsprozeß in die Plattform (z. B. Videospiel) eingebettet. Zur Ausführungszeit extrahiert die Plattform den in das System eingebetteten öffentlichen Schlüssel 54, um zu verifizieren, daß ein Paß eine gültige Lizenz 52 des Anwendungsautors enthält. Die digitale Signatur in der Lizenz des Anwendungsautors wird dadurch erzeugt, daß der Nachrichten-Digest der Lizenz 52 berechnet wird und der Nachrichten-Digest mit Hilfe des privaten Schlüssels des Plattformherstellers verschlüsselt wird. Das System der vorliegenden Erfindung kann auf diese Weise den ursprünglichen Nachrichten-Digest durch Entschlüsselung der Signatur mit Hilfe des öffentlichen Schlüssels 54 des Plattformherstellers wiederherstellen. Der Verifizierungsprozeß für die Lizenz des Anwendungsautors kann dadurch erreicht werden:
    • 1. daß der Nachrichten-Digest der Anwendungslizenz 52 in dem Paß 50 neu berechnet wird,
    • 2. der ursprüngliche Nachrichten-Digest wieder hergestellt wird, und
    • 3. der alte Digest mit dem neu berechneten Digest verglichen wird.
  • Der Paß 50 enthält eine gültige Lizenz des Anwendungsautors, wenn die beiden Nachrichten-Digests gleich sind. Ansonsten ist die Lizenz nicht gültig. Der Verifizierungsprozeß eines Ausführungsbeispiels der vorliegenden Erfindung ist in dem Flußdiagramm von 6(a) dargestellt.
  • Es wird klar sein, daß selbst wenn der Paß 50 eine gültige Lizenz eines Anwendungsautors enthält, der Anwendungsautor die Lizenz dadurch gestohlen haben kann, daß er sie von dem Paß eines anderen autorisierten Autors kopiert hat. In diesem Fall hätte der unautorisierte Autor keinen korrekten privaten Schlüssel 58, um die Signatur des autorisierten Autors zu fälschen. Es wird erwogen, daß das System die Signatur des Anwendungsautors 60 weiter verifiziert. Es wird daran erinnert, daß die digitale Signatur des Anwendungautors in dem Paß dadurch erzeugt wurde, daß der Nachrichten-Digest des Codes berechnet wurde und der Nachrichten-Digest mit Hilfe des privaten Schlüssels 58 des Anwendungsautors verschlüsselt wurde. Der ursprüngliche Nachrichten-Digest kann durch Entschlüsselung der Signatur mit Hilfe des öffentlichen Schlüssels 62 des Autors entschlüsselt werden, der in der Lizenz 52 des Anwendungsautors eingebettet ist, welche in den Paß 50 eingebettet ist. Die digitale Signatur des Anwendungsautors kann dann dadurch verifiziert werden, daß:
    • 1. der Nachrichten-Digest des Codes neu berechnet wird,
    • 2. der ursprüngliche Nachrichten-Digest wiederhergestellt wird, und
    • 3. der alte Digest mit dem neuen Digest verglichen wird.
  • Die Signatur ist gültig, wenn die beiden Nachrichten-Digests gleich sind. Ansonsten ist der Paß nicht gültig und die Plattform wird die Ausführung der Software zurückweisen. Die Schritte, die von einem Ausführungsbeispiel der vorliegenden Erfindung zur Verifizierung der digitalen Signatur des Anwendungsautors ausgeführt werden, sind im Flußdiagramm von 6(b) dargestellt.
  • Es sei ferner zu beachten, daß das Sicherheitsschema der vorliegenden Erfindung verwendet werden kann, um durch gewerbliche Schutzrechte, wie Copyrights und Patente, geschützte Erfindungen und Urheberschaften zu schützen. Die eine zusätzliche Prozedur die zum Schutz von geistigem Eigentum hinzugefügt wird, besteht darin, daß der Compiler (z. B. der in 5 gezeigte Compiler 68) verschlüsselte Bytecodes erzeugt. Wenn ein Benutzer versucht, den Code auf dem Betriebssystem ("OS") der Plattform ablaufen zu lassen, wird den Verifizierungsprozeduren gefolgt, die unter Bezugnahme auf die 6(a) und 6(b) oben beschrieben wurden. Da der Code jedoch verschlüsselt ist, benötigt das Betriebssystem eine zusätzliche Genehmigung, bevor es den Code ablaufen lassen kann. Es wird ein kryptografischer Schlüssel benötigt, der im wesentlichen eine IP-Lizenz zum Ablaufen des Codes ergibt. Nach der Authentifizierung des Codes fordert das Betriebssystem die IP-Lizenz an. Das Betriebssystem verifiziert, daß die IP-Lizenz von der Person signiert ist, welche der Urheber des Codes ist und geht dann zur Entschlüsselung und Ausführung des Codes über. Ein weiteres Merkmal des vorliegenden Ausführungsbeispiels ist, daß Dritte nicht die Möglichkeit haben, den Code zu inspizieren, da er verschlüsselt ist.
  • Gemäß der vorliegenden Erfindung wurde ein Verfahren und eine Einrichtung zum Verbessern der Softwaresicherheit beschrieben. Obwohl die vorliegende Erfindung unter Bezugnahme auf die 16 beschrieben wurde, ist es klar, daß viele Alternativen, Modifikationen und Änderungen auf der Grundlage der vorangehenden Beschreibung vorgenommen werden können.

Claims (24)

  1. Ein Verfahren zum Verbessern der Software-Sicherheit, umfassend die Schritte: Bereitstellen eines ersten Computers; Bereitstellen eines privaten Schlüssels (22, 58) eines Anwendungsautors; Bereitstellen einer Lizenz (24, 52) des Anwendungsautors, die einen öffentlichen Schlüssel (32, 62) des Anwendungsautors und eine digitale Signatur eines Plattformherstellers einschließt; Bereitstellen einer Software; Bereitstellen des privaten Schlüssels (22, 58) des Anwendungsautors, der Lizenz des Anwendungsautors und der Software an einen von dem ersten Computer ausgeführten Compiler (26, 68), wobei der Compiler die Software in einen binären Code kompiliert und einen ersten Nachrichten-Digest für den binären Code berechnet; wobei der erste Computer ferner den ersten Nachrichten-Digest unter Verwendung des privaten Schlüssels des Anwendungsautors verschlüsselt, wobei der verschlüsselte erste Nachrichten-Digest eine digitale Signatur des Anwendungsautors bildet; wobei der erste Computer einen Software-Paß (38, 50) erzeugt, der die digitale Signatur des Anwendungsautors, die Lizenz des Anwendungsautors und den binären Code umfaßt; und Bereitstellen eines Elements zum Ausführen des Schrittes des Verteilens des Software-Passes (38, 50) an einen zweiten Computer, wobei der zweite Computer einen eingebetteten öffentlichen Schlüssel (54) des Plattformherstellers aufweist.
  2. Das Verfahren nach Anspruch 1, ferner einschließend die Schritte, daß: der zweite Computer den Software-Paß (38, 50) empfängt; und der zweite Computer feststellt, ob der Software-Paß die Lizenz (24, 52) des Anwendungsautors enthält, so daß dann, wenn der Software-Paß die Lizenz des Anwendungsautors nicht enthält, der zweite Computer den Software-Paß (38, 50) zurückweist.
  3. Das Verfahren nach Anspruch 2, ferner einschließend den Schritt des Extrahierens der Lizenz (24, 52) des Anwendungsautors aus dem Software-Paß.
  4. Das Verfahren nach Anspruch 3, ferner einschließend den Schritt des Feststellens, ob die Lizenz (24, 52) des Anwendungsautors die digitale Signatur des Plattformherstellers enthält, so daß der Software-Paß (38, 50) dann, wenn die digitale Signatur des Plattformherstellers nicht enthalten ist, von dem zweiten Computer zurückgewiesen wird.
  5. Das Verfahren nach Anspruch 4, ferner einschließend den Schritt des Entschlüsselns der digitalen Signatur des Plattformherstellers unter Verwendung des öffentlichen Schlüssels (54) des Plattformherstellers, der in dem zweiten Computer eingebettet ist.
  6. Das Verfahren nach Anspruch 5, ferner einschließend den Schritt, daß der zweite Computer einen zweiten Nachrichten-Digest der Lizenz des Anwendungsautors berechnet und die entschlüsselte digitale Signatur des Plattformherstellers mit dem zweiten Nachrichten-Digest vergleicht, so daß der Software-Paß (38, 50) dann, wenn die entschlüsselte digitale Signatur des Plattformherstellers und der zweite Nachrichten-Digest nicht gleich sind, von dem zweiten Computer zurückgewiesen wird.
  7. Das Verfahren nach Anspruch 6, ferner einschließend den Schritt, daß dann, wenn die entschlüsselte digitale Signatur des Plattformherstellers und der zweite Nachrichten-Digest gleich sind, der zweite Computer den öffentlichen Schlüssel (32, 62) des Anwendungsautors aus der Lizenz (24, 52) des Anwendungsautors extrahiert.
  8. Das Verfahren nach Anspruch 7, ferner einschließend den Schritt, daß der zweite Computer den binären Code aus dem Software-Paß (38, 50) extrahiert.
  9. Das Verfahren nach Anspruch 8, ferner einschließend den Schritt, daß der zweite Computer die digitale Signatur des Anwendungsautors aus dem Software-Paß (38, 50) extrahiert.
  10. Das Verfahren nach Anspruch 9, ferner einschließend den Schritt, daß der zweite Computer einen Nachrichten-Digest des binären Codes berechnet.
  11. Das Verfahren nach Anspruch 10, ferner einschließend den Schritt, daß der zweite Computer die digitale Signatur des Anwendungsautors unter Verwendung des öffentlichen Schlüssels (32, 62) des Anwendungsautors entschlüsselt.
  12. Das Verfahren nach Anspruch 11, ferner einschließend den Schritt, daß der zweite Computer den Nachrichten-Digest des binären Codes mit der entschlüsselten digitalen Signatur des Anwendungsautors vergleicht, so daß dann, wenn der Nachrichten-Digest des binären Codes und die entschlüsselte Signatur des Anwendungsautors gleich sind, der zweite Computer den binären Codes ausführt.
  13. Ein System zum Verbessern der Software-Sicherheit, aufweisend: einen ersten Computer; einen privaten Schlüssel (22, 58) eines Anwendungsautors; eine Lizenz (24, 52) des Anwendungsautors, welche einen öffentlichen Schlüssel (32, 62) des Anwendungsautors und eine digitale Signatur eines Plattformherstellers einschließt; eine Software; einen von dem ersten Computer ausgeführten Compiler (26, 68), wobei der Compiler die Software in binären Code kompiliert und einen ersten Nachrichten-Digest für den binären Code berechnet; wobei der Compiler ferner den ersten Nachrichten-Digest unter Verwendung des privaten Schlüssels (22, 58) des Anwendungsautors verschlüsselt, wobei der verschlüsselte erste Nachrichten-Digest eine digitale Signatur des Anwendungsautors bildet; und wobei der erste Computer einen Software-Paß (38, 50) erzeugt, der die digitale Signatur des Anwendungsautors, die Lizenz des Anwendungsautors und den binären Code umfaßt; Mittel zum Verteilen des Software-Passes an einen zweiten Computer, wobei der zweite Computer einen eingebetteten öffentlichen Schlüssel (54) des Plattformhersteller aufweist.
  14. Das System nach Anspruch 13, wobei der zweite Computer den Software-Paß (38, 50) empfängt und feststellt, ob der Software-Paß die Lizenz (24, 52) des Anwendungsautors enthält, so daß dann, wenn der Software-Paß die Lizenz des Anwendungsautors nicht enthält, der zweite Computer den Software-Paß zurückweist.
  15. Das System nach Anspruch 14, wobei der zweite Computer die Lizenz (24, 52) des Anwendungsautors aus dem Software-Paß (38, 50) extrahiert.
  16. Das System nach Anspruch 15, wobei der zweite Computer feststellt, ob die Lizenz (24, 52) des Anwendungsautors die digitale Signatur des Plattformherstellers enthält, so daß dann, wenn die digitale Signatur des Plattformherstellers nicht enthalten ist, der Software-Paß (38, 50) von dem zweiten Computer zurückgewiesen wird.
  17. Das System nach Anspruch 16, wobei der zweite Computer die digitale Signatur des Plattformherstellers unter Verwen dung des in dem zweiten Computer eingebetteten öffentlichen Schlüssels (54) des Plattformherstellers entschlüsselt.
  18. Das System nach Anspruch 17, wobei der zweite Computer einen zweiten Nachrichten-Digest der Lizenz (24, 52) des Anwendungsautors berechnet und die entschlüsselte digitale Signatur des Plattformherstellers mit dem zweiten Nachrichten-Digest vergleicht, so daß dann, wenn die entschlüsselte digitale Signatur des Plattformherstellers und der zweite Nachrichten-Digest nicht gleich sind, der Software-Paß (38, 50) von dem zweiten Computer zurückgewiesen wird.
  19. Das System nach Anspruch 18, wobei dann, wenn die entschlüsselte digitale Signatur des Plattformherstellers und der zweite Nachrichten-Digest gleich sind, der zweite Computer den öffentlichen Schlüssel (32, 62) des Anwendungsautors aus der Lizenz des Anwendungsautors extrahiert.
  20. Das System nach Anspruch 19, wobei der zweite Computer den binären Code aus dem Software-Paß (38, 50) extrahiert.
  21. Das System nach Anspruch 20, wobei der zweite Computer die digitale Signatur des Anwendungsautors aus dem Software-Paß (38, 50) extrahiert.
  22. Das System nach Anspruch 21, wobei der zweite Computer einen Nachrichten-Digest des binären Codes berechnet.
  23. Das System nach Anspruch 22, wobei der zweite Computer die digitale Signatur des Anwendungsautors unter Verwendung des öffentlichen Schlüssels (32, 62) des Anwendungsautors entschlüsselt.
  24. Das System nach Anspruch 23, wobei der zweite Computer den Nachrichten-Digest des binären Codes mit der entschlüsselten digitalen Signatur des Anwendungsautors vergleicht, so daß dann, wenn der Nachrichten-Digest des binären Codes und die entschlüsselte Signatur des Anwendungsautors gleich sind, der zweite Computer den binären Code ausführt.
DE69534212T 1994-06-10 1995-05-31 Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung Expired - Fee Related DE69534212T8 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/258,244 US5724425A (en) 1994-06-10 1994-06-10 Method and apparatus for enhancing software security and distributing software
US258244 1994-06-10

Publications (3)

Publication Number Publication Date
DE69534212D1 DE69534212D1 (de) 2005-06-23
DE69534212T2 true DE69534212T2 (de) 2006-01-12
DE69534212T8 DE69534212T8 (de) 2006-04-27

Family

ID=22979711

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69534212T Expired - Fee Related DE69534212T8 (de) 1994-06-10 1995-05-31 Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung

Country Status (4)

Country Link
US (1) US5724425A (de)
EP (1) EP0686906B1 (de)
JP (1) JPH08166879A (de)
DE (1) DE69534212T8 (de)

Families Citing this family (335)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE47908E1 (en) * 1991-12-23 2020-03-17 Blanding Hovenweep, Llc Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
USRE48056E1 (en) * 1991-12-23 2020-06-16 Blanding Hovenweep, Llc Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6564321B2 (en) 1995-04-28 2003-05-13 Bobo Ii Charles R Systems and methods for storing, delivering, and managing messages
US5864683A (en) * 1994-10-12 1999-01-26 Secure Computing Corporartion System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6963859B2 (en) * 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US7505945B2 (en) * 1995-02-08 2009-03-17 Cryptomathic A/S Electronic negotiable documents
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
DE19510626A1 (de) * 1995-03-23 1996-09-26 Giesecke & Devrient Gmbh Verfahren zur Prüfung der Unversehrtheit von gespeicherten Daten auf einer Verarbeitungsanlage für Blattgut, wie z. B. Banknoten oder Wertpapiere
WO1996032685A1 (en) * 1995-04-11 1996-10-17 Kinetech, Inc. Identifying data in a data processing system
US6590996B1 (en) * 2000-02-14 2003-07-08 Digimarc Corporation Color adaptive watermarking
GB9510035D0 (en) * 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
JP4162099B2 (ja) 1995-06-02 2008-10-08 富士通株式会社 ウィルス感染に対処する機能を持つ装置及びその記憶装置
EP0766472A3 (de) * 1995-09-26 2000-05-31 Siemens Aktiengesellschaft Verfahren zur Nutzung von elektronischen Informationsdiensten unter Sicherstellung der Anonymität von Benutzern gegenüber den Betreibern solcher Dienste
FR2739469B1 (fr) * 1995-10-03 1997-12-26 Gemplus Card Int Procede de cryptographie a cle publique base sur le logarithme discret
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
US5943423A (en) * 1995-12-15 1999-08-24 Entegrity Solutions Corporation Smart token system for secure electronic transactions and identification
US6219423B1 (en) 1995-12-29 2001-04-17 Intel Corporation System and method for digitally signing a digital agreement between remotely located nodes
US9530150B2 (en) * 1996-01-19 2016-12-27 Adcension, Llc Compensation model for network services
US5823879A (en) 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US6264560B1 (en) 1996-01-19 2001-07-24 Sheldon F. Goldberg Method and system for playing games on a network
US20090012864A1 (en) * 2007-07-02 2009-01-08 Goldberg Sheldon F Compensation model for network services
US5913024A (en) 1996-02-09 1999-06-15 Secure Computing Corporation Secure server utilizing separate protocol stacks
JP3848684B2 (ja) * 1996-03-22 2006-11-22 株式会社日立製作所 コンピュータネットワークシステムの管理方法,および,コンピュータネットワークシステムに用いるコンピュータ
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
GB9608696D0 (en) * 1996-04-26 1996-07-03 Europ Computer Ind Res Electronic copy protection mechanism
US7567669B2 (en) 1996-05-17 2009-07-28 Certicom Corp. Strengthened public key protocol
EP0809201A3 (de) * 1996-05-22 2000-05-03 Fujitsu Limited Informationsverarbeitungssystem und Aufzeichnungsmedium
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
TW313642B (en) * 1996-06-11 1997-08-21 Ibm A uniform mechanism for using signed content
US6324525B1 (en) 1996-06-17 2001-11-27 Hewlett-Packard Company Settlement of aggregated electronic transactions over a network
US5796830A (en) * 1996-07-29 1998-08-18 International Business Machines Corporation Interoperable cryptographic key recovery system
US5950195A (en) * 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US6181803B1 (en) 1996-09-30 2001-01-30 Intel Corporation Apparatus and method for securely processing biometric information to control access to a node
US5946396A (en) * 1996-10-25 1999-08-31 Intel Corporation System and method for ensuring integrity of audio
US6167520A (en) * 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7613926B2 (en) * 1997-11-06 2009-11-03 Finjan Software, Ltd Method and system for protecting a computer and a network from hostile downloadables
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6154844A (en) * 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
US5878417A (en) * 1996-11-20 1999-03-02 International Business Machines Corporation Method and apparatus for network security in browser based interfaces
AUPO474997A0 (en) * 1997-01-23 1997-02-20 Commonwealth Bank Of Australia Distribution system with authentication
EP0856968A3 (de) * 1997-01-24 2000-12-06 Nec Corporation Vorrichtung zur Verarbeitung eines kryptographischen Schlüssels zur Aufnahme in einer Datenrückgewinnungseinrichtung oder einer Schlüsseleinstellungseinrichtung zur Erzeugung eines kryptographischen Schlüssels
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
US5949877A (en) * 1997-01-30 1999-09-07 Intel Corporation Content protection for transmission systems
US6148401A (en) * 1997-02-05 2000-11-14 At&T Corp. System and method for providing assurance to a host that a piece of software possesses a particular property
US7062500B1 (en) * 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US6408336B1 (en) 1997-03-10 2002-06-18 David S. Schneider Distributed administration of access to information
US8914410B2 (en) * 1999-02-16 2014-12-16 Sonicwall, Inc. Query interface to policy server
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
JPH10301772A (ja) 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
JPH10301773A (ja) * 1997-04-30 1998-11-13 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
US5999921A (en) * 1997-04-30 1999-12-07 Pitney Bowes Inc. Electronic postage meter system having plural clock system providing enhanced security
JPH10327147A (ja) * 1997-05-21 1998-12-08 Hitachi Ltd 電子認証公証方法およびシステム
US6381698B1 (en) 1997-05-21 2002-04-30 At&T Corp System and method for providing assurance to a host that a piece of software possesses a particular property
DE69720971T2 (de) * 1997-05-28 2003-10-30 Siemens Ag Computersystem und Verfahren zum Schutz von Software
JP3595109B2 (ja) * 1997-05-28 2004-12-02 日本ユニシス株式会社 認証装置、端末装置、および、それら装置における認証方法、並びに、記憶媒体
US5958073A (en) * 1997-05-30 1999-09-28 Motorola, Inc. Reliability enhanced processing system and method for optimizing
US6122372A (en) * 1997-06-04 2000-09-19 Signet Assurance Company Llc System and method for encapsulating transaction messages with verifiable data generated identifiers
US5968136A (en) * 1997-06-05 1999-10-19 Sun Microsystems, Inc. Apparatus and method for secure device addressing
WO1999001815A1 (en) 1997-06-09 1999-01-14 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6108425A (en) * 1997-06-30 2000-08-22 International Business Machines Corporation Method and apparatus for controlling the configuration of a cryptographic processor
EP0895148B1 (de) * 1997-07-31 2003-09-17 Siemens Aktiengesellschaft Programmvermietungssystem und Verfahren zur Vermietung von Programmen
US6233567B1 (en) * 1997-08-29 2001-05-15 Intel Corporation Method and apparatus for software licensing electronically distributed programs
WO1999015947A1 (en) * 1997-09-19 1999-04-01 Hyo Joon Park Software license control system based on independent software registration server
EP1027784B2 (de) * 1997-10-28 2010-05-26 First Data Mobile Holdings Limited Verfahren zum digitalen signieren einer nachricht
US6292897B1 (en) * 1997-11-03 2001-09-18 International Business Machines Corporation Undeniable certificates for digital signature verification
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7418731B2 (en) * 1997-11-06 2008-08-26 Finjan Software, Ltd. Method and system for caching at secure gateways
US7975305B2 (en) * 1997-11-06 2011-07-05 Finjan, Inc. Method and system for adaptive rule-based content scanners for desktop computers
US8225408B2 (en) * 1997-11-06 2012-07-17 Finjan, Inc. Method and system for adaptive rule-based content scanners
US6567793B1 (en) 1997-12-22 2003-05-20 Christian Bielefeldt Hicks Remote authorization for unlocking electronic data system and method
US6298153B1 (en) * 1998-01-16 2001-10-02 Canon Kabushiki Kaisha Digital signature method and information communication system and apparatus using such method
US6308270B1 (en) 1998-02-13 2001-10-23 Schlumberger Technologies, Inc. Validating and certifying execution of a software program with a smart card
TR200002649T2 (tr) 1998-03-16 2000-11-21 Jazio Inc. VLSI CMOS arayüz devreleri için yüksek hızlı sinyal üretimi.
US6160423A (en) * 1998-03-16 2000-12-12 Jazio, Inc. High speed source synchronous signaling for interfacing VLSI CMOS circuits to transmission lines
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US7171662B1 (en) * 1998-03-18 2007-01-30 Microsoft Corporation System and method for software licensing
BE1012292A3 (nl) * 1998-03-26 2000-09-05 Int Management Services Afgeko Werkwijze voor het identificeren van computergegevens, eenheden om deze werkwijze te realiseren, alsmede netwerk dat van deze werkwijze gebruik maakt.
US6725378B1 (en) 1998-04-15 2004-04-20 Purdue Research Foundation Network protection for denial of service attacks
US6199113B1 (en) * 1998-04-15 2001-03-06 Sun Microsystems, Inc. Apparatus and method for providing trusted network security
DE19820605A1 (de) * 1998-05-08 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur sicheren Verteilung von Software
US6724895B1 (en) 1998-06-18 2004-04-20 Supersensor (Proprietary) Limited Electronic identification system and method with source authenticity verification
US6256393B1 (en) * 1998-06-23 2001-07-03 General Instrument Corporation Authorization and access control of software object residing in set-top terminals
US6138235A (en) * 1998-06-29 2000-10-24 Sun Microsystems, Inc. Controlling access to services between modular applications
US7711714B2 (en) * 1998-09-22 2010-05-04 Hitachi, Ltd. Method and a device for sterilizing downloaded files
US6463535B1 (en) * 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US7215773B1 (en) 1998-10-14 2007-05-08 Certicom.Corp. Key validation scheme
BR9914551A (pt) * 1998-10-16 2002-03-05 Computer Ass Think Inc Processo e sistema para macro-linguagem extensìvel
US7386727B1 (en) 1998-10-24 2008-06-10 Encorus Holdings Limited Method for digital signing of a message
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US20050060549A1 (en) * 1998-10-26 2005-03-17 Microsoft Corporation Controlling access to content based on certificates and access predicates
US7174457B1 (en) * 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US6272469B1 (en) 1998-11-25 2001-08-07 Ge Medical Systems Global Technology Company, Llc Imaging system protocol handling method and apparatus
US6408075B1 (en) * 1998-11-30 2002-06-18 Hitachi, Ltd. Information processing equipment and IC card
DE19902722A1 (de) * 1999-01-25 2000-07-27 Giesecke & Devrient Gmbh Verfahren zum Austauschen von mindestens einem geheimen Anfangswert zwischen einer Bearbeitungsstation und einer Chipkarte
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US6763467B1 (en) 1999-02-03 2004-07-13 Cybersoft, Inc. Network traffic intercepting method and system
US7197639B1 (en) * 1999-02-05 2007-03-27 Rsa Security Inc. Cryptographic countermeasures against connection depletion attacks
JP3779837B2 (ja) * 1999-02-22 2006-05-31 松下電器産業株式会社 コンピュータ及びプログラム記録媒体
FI990461A0 (fi) * 1999-03-03 1999-03-03 Nokia Mobile Phones Ltd Menetelmä ohjelmiston lataamiseksi palvelimelta päätelaitteeseen
US6766305B1 (en) * 1999-03-12 2004-07-20 Curl Corporation Licensing system and method for freely distributed information
US20020019814A1 (en) * 2001-03-01 2002-02-14 Krishnamurthy Ganesan Specifying rights in a digital rights license according to events
US6973444B1 (en) * 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
EP1175763B1 (de) * 1999-03-31 2014-01-01 BRITISH TELECOMMUNICATIONS public limited company Serverrechner zum gewährleisten der unversehrtheit von dateien
US6557105B1 (en) * 1999-04-14 2003-04-29 Tut Systems, Inc. Apparatus and method for cryptographic-based license management
US6389537B1 (en) 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6449720B1 (en) * 1999-05-17 2002-09-10 Wave Systems Corp. Public cryptographic control unit and system therefor
US6442559B1 (en) * 1999-06-22 2002-08-27 Microsoft Corporation Dynamic SKU management
US6658567B1 (en) 1999-06-25 2003-12-02 Geomechanics International, Inc. Method and logic for locking geological data and an analyzer program that analyzes the geological data
US6578145B1 (en) * 1999-06-29 2003-06-10 Gilbarco Inc. Methods and systems for securely communicating personal identification number information between a security module and a plurality of secure keypad devices
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
EP1076279A1 (de) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computerplattformen und deren Betriebsverfahren
US6757831B1 (en) * 1999-08-18 2004-06-29 Sun Microsystems, Inc. Logic block used to check instruction buffer configuration
US6675298B1 (en) * 1999-08-18 2004-01-06 Sun Microsystems, Inc. Execution of instructions using op code lengths longer than standard op code lengths to encode data
US6987855B1 (en) * 1999-09-10 2006-01-17 Cisco Technology, Inc. Operational optimization of a shared secret Diffie-Hellman key exchange among broadcast or multicast groups
US6684331B1 (en) 1999-12-22 2004-01-27 Cisco Technology, Inc. Method and apparatus for distributing and updating group controllers over a wide area network using a tree structure
US7103185B1 (en) 1999-12-22 2006-09-05 Cisco Technology, Inc. Method and apparatus for distributing and updating private keys of multicast group managers using directory replication
US7260716B1 (en) 1999-09-29 2007-08-21 Cisco Technology, Inc. Method for overcoming the single point of failure of the central group controller in a binary tree group key exchange approach
US7013389B1 (en) 1999-09-29 2006-03-14 Cisco Technology, Inc. Method and apparatus for creating a secure communication channel among multiple event service nodes
US7434046B1 (en) 1999-09-10 2008-10-07 Cisco Technology, Inc. Method and apparatus providing secure multicast group communication
US7181014B1 (en) 1999-09-10 2007-02-20 Cisco Technology, Inc. Processing method for key exchange among broadcast or multicast groups that provides a more efficient substitute for Diffie-Hellman key exchange
US20080082446A1 (en) * 1999-10-01 2008-04-03 Hicks Christian B Remote Authorization for Unlocking Electronic Data System and Method
US7734457B2 (en) * 1999-10-16 2010-06-08 Computer Associates Think, Inc. Method and system for generating dynamic comparison models
DE19950249C1 (de) * 1999-10-18 2001-02-01 Siemens Ag Elektronisches Gerät mit Softwareschutz
AU7895900A (en) * 1999-10-20 2001-04-30 George J Tomko System and method for secure data handling over a network
US7039713B1 (en) * 1999-11-09 2006-05-02 Microsoft Corporation System and method of user authentication for network communication through a policy agent
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
US6970849B1 (en) 1999-12-17 2005-11-29 Microsoft Corporation Inter-server communication using request with encrypted parameter
US7047411B1 (en) 1999-12-17 2006-05-16 Microsoft Corporation Server for an electronic distribution system and method of operating same
US6944765B1 (en) * 1999-12-21 2005-09-13 Qualcomm, Inc. Method of authentication anonymous users while reducing potential for “middleman” fraud
US7055175B1 (en) * 2000-01-06 2006-05-30 International Business Machines Corporation Method and system for generating and using a virus free file certificate integrated within a file
US7089211B1 (en) * 2000-01-12 2006-08-08 Cisco Technology, Inc. Directory enabled secure multicast group communications
JP3949341B2 (ja) * 2000-03-03 2007-07-25 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置及び記録媒体
US6895501B1 (en) 2000-03-13 2005-05-17 Wrq, Inc. Method and apparatus for distributing, interpreting, and storing heterogeneous certificates in a homogenous public key infrastructure
US6687825B1 (en) 2000-03-17 2004-02-03 International Business Machines Corporation Data processing system and method for protecting data in a hard drive utilizing a signature device
AU2001253176A1 (en) * 2000-04-06 2001-10-23 Predictive Systems, Inc. Method and system for website content integrity
SG103257A1 (en) * 2000-04-13 2004-04-29 Kent Ridge Digital Labs Private retrieval of digital objects
WO2001080528A2 (en) * 2000-04-14 2001-10-25 Next Level Communications Method and apparatus for test and verification of field and terminal equipment
US6993149B2 (en) * 2001-09-25 2006-01-31 Digimarc Corporation Embedding digital watermarks in spot colors
US7493486B1 (en) * 2000-06-09 2009-02-17 Verizon Laboratories, Inc. Method and apparatus for supporting cryptographic-related activities in a public key infrastructure
US7020776B2 (en) * 2000-06-22 2006-03-28 Microsoft Corporation Cryptosystem based on a Jacobian of a curve
US7017189B1 (en) 2000-06-27 2006-03-21 Microsoft Corporation System and method for activating a rendering device in a multi-level rights-management architecture
US6891953B1 (en) 2000-06-27 2005-05-10 Microsoft Corporation Method and system for binding enhanced software features to a persona
US7051200B1 (en) 2000-06-27 2006-05-23 Microsoft Corporation System and method for interfacing a software process to secure repositories
US6981262B1 (en) 2000-06-27 2005-12-27 Microsoft Corporation System and method for client interaction in a multi-level rights-management architecture
US7158953B1 (en) 2000-06-27 2007-01-02 Microsoft Corporation Method and system for limiting the use of user-specific software features
US7171692B1 (en) 2000-06-27 2007-01-30 Microsoft Corporation Asynchronous communication within a server arrangement
US7539875B1 (en) * 2000-06-27 2009-05-26 Microsoft Corporation Secure repository with layers of tamper resistance and system and method for providing same
US7225159B2 (en) * 2000-06-30 2007-05-29 Microsoft Corporation Method for authenticating and securing integrated bookstore entries
US6941457B1 (en) 2000-06-30 2005-09-06 Cisco Technology, Inc. Establishing a new shared secret key over a broadcast channel for a multicast group based on an old shared secret key
US20020046045A1 (en) * 2000-06-30 2002-04-18 Attila Narin Architecture for an electronic shopping service integratable with a software application
EP1626325B1 (de) 2000-09-21 2010-09-01 Research In Motion Limited System und verfahren zum unterschreiben eines software-kodes
US7024554B1 (en) * 2000-09-29 2006-04-04 Mindspeed Technologies, Inc. Systems and methods that authorize target devices utilizing proprietary software and/or hardware
US6971023B1 (en) * 2000-10-03 2005-11-29 Mcafee, Inc. Authorizing an additional computer program module for use with a core computer program
US7395549B1 (en) * 2000-10-17 2008-07-01 Sun Microsystems, Inc. Method and apparatus for providing a key distribution center without storing long-term server secrets
US20040180721A1 (en) * 2000-12-21 2004-09-16 Igt Gaming terminal data repository and information distribution system
US8556698B2 (en) 2000-10-19 2013-10-15 Igt Executing multiple applications and their variations in computing environments
US8636596B2 (en) 2000-11-04 2014-01-28 Igt Dynamic player notices for operational changes in gaming machines
US6645077B2 (en) * 2000-10-19 2003-11-11 Igt Gaming terminal data repository and information distribution system
US9251647B2 (en) * 2000-10-19 2016-02-02 Igt Remote configuration of gaming terminals
US6850161B1 (en) * 2000-10-23 2005-02-01 Verizon Corporate Services Group Inc. Systems and methods for identifying and mapping conduit location
US6889209B1 (en) * 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7224806B2 (en) * 2000-11-13 2007-05-29 Thomson Licensing Threshold cryptography scheme for conditional access systems
US7100045B2 (en) * 2000-11-22 2006-08-29 Kabushiki Kaisha Toshiba System, method, and program for ensuring originality
US6948065B2 (en) 2000-12-27 2005-09-20 Intel Corporation Platform and method for securely transmitting an authorization secret
US7186181B2 (en) * 2001-02-02 2007-03-06 Igt Wide area program distribution and game information communication system
US20020112162A1 (en) * 2001-02-13 2002-08-15 Cocotis Thomas Andrew Authentication and verification of Web page content
US7096497B2 (en) 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7580988B2 (en) * 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
US7188342B2 (en) * 2001-04-20 2007-03-06 Microsoft Corporation Server controlled branding of client software deployed over computer networks
US7099663B2 (en) 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
GB2376389A (en) * 2001-06-04 2002-12-11 Hewlett Packard Co Packaging evidence for long term validation
US20020191785A1 (en) * 2001-06-14 2002-12-19 International Business Machines Corporation Apparatus and method for encrypting and decrypting data with incremental data validation
US7343297B2 (en) * 2001-06-15 2008-03-11 Microsoft Corporation System and related methods for managing and enforcing software licenses
US7000115B2 (en) * 2001-06-19 2006-02-14 International Business Machines Corporation Method and apparatus for uniquely and authoritatively identifying tangible objects
US7287156B2 (en) * 2001-06-29 2007-10-23 International Business Machines Corporation Methods, systems and computer program products for authentication between clients and servers using differing authentication protocols
US20030005327A1 (en) * 2001-06-29 2003-01-02 Julian Durand System for protecting copyrighted materials
US7137000B2 (en) * 2001-08-24 2006-11-14 Zih Corp. Method and apparatus for article authentication
US20030061947A1 (en) * 2001-10-01 2003-04-03 Hohberger Clive P. Method and apparatus for associating on demand certain selected media and value-adding elements
CN1575562A (zh) * 2001-10-23 2005-02-02 松下电器产业株式会社 信息处理装置
JP2003141267A (ja) * 2001-11-05 2003-05-16 Sony Corp 通信教育システム及び通信教育方法
US7334125B1 (en) 2001-11-27 2008-02-19 Cisco Technology, Inc. Facilitating secure communications among multicast nodes in a telecommunications network
US7346781B2 (en) * 2001-12-06 2008-03-18 Mcafee, Inc. Initiating execution of a computer program from an encrypted version of a computer program
US20030120923A1 (en) * 2001-12-21 2003-06-26 Avaya Technology Corp. Secure data authentication apparatus
US7400729B2 (en) * 2001-12-28 2008-07-15 Intel Corporation Secure delivery of encrypted digital content
JP2003244138A (ja) * 2002-02-18 2003-08-29 Fujitsu Ltd 原本作成装置及び原本性保証装置
SG115453A1 (en) * 2002-02-27 2005-10-28 Oneempower Pte Ltd Activity management method
US20030167407A1 (en) * 2002-03-01 2003-09-04 Brett Howard Authenticated file loader
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) * 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
WO2003093961A2 (en) * 2002-05-02 2003-11-13 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7203844B1 (en) 2002-06-20 2007-04-10 Oxford William V Method and system for a recursive security protocol for digital copyright control
US8438392B2 (en) * 2002-06-20 2013-05-07 Krimmeni Technologies, Inc. Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol
US7803052B2 (en) * 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
US7979712B2 (en) * 2002-07-01 2011-07-12 International Business Machines Corporation Network system, server and information terminal for list matching
US7093119B2 (en) 2002-07-16 2006-08-15 International Business Machines Corporation Methods and computer program products for protecting source code of an interpreted programming language
US8393001B1 (en) 2002-07-26 2013-03-05 Mcafee, Inc. Secure signature server system and associated method
JP4200067B2 (ja) * 2002-08-30 2008-12-24 株式会社リコー 画像処理装置、画像処理方法、及び画像処理プログラム
US20040059922A1 (en) * 2002-09-20 2004-03-25 Harris Rodney C. Continuous voice recognition for user authentication by a digital transmitting device
US20040260947A1 (en) * 2002-10-21 2004-12-23 Brady Gerard Anthony Methods and systems for analyzing security events
CN1333314C (zh) * 2002-12-11 2007-08-22 雄图资讯股份有限公司 软件执行控制系统
US7305564B2 (en) * 2002-12-19 2007-12-04 International Business Machines Corporation System and method to proactively detect software tampering
US7069245B2 (en) * 2003-02-06 2006-06-27 Business Wire Simultaneous network news distribution
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US20040235563A1 (en) * 2003-02-26 2004-11-25 Blackburn Christopher W. Game update service in a service-oriented gaming network environment
US6965968B1 (en) 2003-02-27 2005-11-15 Finjan Software Ltd. Policy-based caching
US20040242328A1 (en) * 2003-03-05 2004-12-02 Blackburn Christopher W. Boot service in a service-oriented gaming network environment
US8308567B2 (en) * 2003-03-05 2012-11-13 Wms Gaming Inc. Discovery service in a service-oriented gaming network environment
US20040243848A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authentication service in a service-oriented gaming network environment
US20040243849A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authorization service in a service-oriented gaming network environment
US20030177051A1 (en) * 2003-03-13 2003-09-18 Robin Driscoll Method and system for managing worker resources
US20040242331A1 (en) * 2003-03-17 2004-12-02 Blackburn Christopher W. Time service in a service-oriented gaming network environment
US20040266532A1 (en) * 2003-03-27 2004-12-30 Blackburn Christopher W. Event management service in a service-oriented gaming network environment
US7352878B2 (en) * 2003-04-15 2008-04-01 Digimarc Corporation Human perceptual model applied to rendering of watermarked signals
CA2464788A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. A gaming software distribution network in a gaming system environment
US20040259633A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Remote authentication of gaming software in a gaming system environment
US20040259640A1 (en) * 2003-04-16 2004-12-23 Gentles Thomas A. Layered security methods and apparatus in a gaming system environment
CA2464514A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Secured networks in a gaming system environment
US20050227768A1 (en) * 2003-05-27 2005-10-13 Blackburn Christopher W Gaming network environment having a language translation service
EP1678692A4 (de) * 2003-06-17 2008-03-12 Intelagents Inc System und verfahren zum überwachen und erkennen einer sicherheitsgefahr
US7012520B2 (en) 2003-06-17 2006-03-14 Infraegis, Inc. Global intelligent remote detection system
US20050002533A1 (en) * 2003-07-01 2005-01-06 Langin-Hooper Jerry Joe Fully secure message transmission over non-secure channels without cryptographic key exchange
WO2005006326A2 (en) * 2003-07-11 2005-01-20 Koninklijke Philips Electronics N.V. Watermark embedding and detection
WO2005015389A1 (en) * 2003-07-11 2005-02-17 Computer Associates Think, Inc. Adding user-defined objects to a modeling tool
US8738535B2 (en) * 2003-08-15 2014-05-27 Inter-Tel (DE) Inc System and method for software site licensing
US20050038751A1 (en) * 2003-08-15 2005-02-17 Gaetano Arthur Louis System and method for software site licensing
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7711957B2 (en) 2003-09-30 2010-05-04 Siemens Aktiengesellschaft Granting access to a computer-based object
CA2542344A1 (en) * 2003-10-13 2005-04-21 Koninklijke Philips Electronics N.V. Storage allocation per application
US7516147B2 (en) * 2003-10-23 2009-04-07 Sumisho Computer Systems Corporation URL system and method for licensing content
JP2005167977A (ja) * 2003-11-14 2005-06-23 Ricoh Co Ltd 製品正当性検証システム、正当性検証対象の装置、製品正当性検証方法及び固有情報提供方法
JP4547907B2 (ja) * 2003-12-22 2010-09-22 横河電機株式会社 コントローラ
FR2866451B1 (fr) * 2004-02-18 2008-02-29 Cit Alcatel Procede et dispositif de transformation d'un systeme d'exploitation en vue de la protection d'un programme informatique contre des intrusions exterieures
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
JP2005293109A (ja) * 2004-03-31 2005-10-20 Canon Inc ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
US7287159B2 (en) * 2004-04-01 2007-10-23 Shieldip, Inc. Detection and identification methods for software
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US7693286B2 (en) * 2004-07-14 2010-04-06 Intel Corporation Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8200476B2 (en) * 2004-11-04 2012-06-12 Avaya Inc. Message file editing process
US7694153B2 (en) * 2004-11-15 2010-04-06 Microsoft Corporation Changing product behavior in accordance with license
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US20080288786A1 (en) * 2004-12-20 2008-11-20 Michael Stephen Fiske System with access keys
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
JP4727278B2 (ja) * 2005-04-05 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ アプリケーションプログラム検証システム、アプリケーションプログラム検証方法およびコンピュータプログラム
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US8151112B2 (en) * 2005-04-22 2012-04-03 Gerard Lin Deliver-upon-request secure electronic message system
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US20060271493A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Method and apparatus for executing code in accordance with usage rights
US8287375B2 (en) * 2005-05-31 2012-10-16 Aristocrat Technologies Australia Pty Ltd Password entry system
US8353046B2 (en) * 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
US8132005B2 (en) * 2005-07-07 2012-03-06 Nokia Corporation Establishment of a trusted relationship between unknown communication parties
US7698227B1 (en) * 2005-07-14 2010-04-13 Sun Microsystems, Inc. System and method for providing traceable acknowledgement of a digital data distribution license
US20070016770A1 (en) * 2005-07-18 2007-01-18 Dell Products L.P. System and method for managing the initiation of software programs in an information handling system
US20100203960A1 (en) * 2005-07-20 2010-08-12 Wms Gaming Inc. Wagering game with encryption and authentication
GB0516471D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Protected software identifiers for improving security in a computing device
US20070056035A1 (en) * 2005-08-16 2007-03-08 Drew Copley Methods and systems for detection of forged computer files
JP2009505148A (ja) * 2005-08-19 2009-02-05 エヌエックスピー ビー ヴィ 暗号化演算における反転操作を行うための回路配置及び方法
US8265265B2 (en) * 2005-08-19 2012-09-11 Nxp B.V. Circuit arrangement and method for RSA key generation
US8682795B2 (en) * 2005-09-16 2014-03-25 Oracle International Corporation Trusted information exchange based on trust agreements
US8340289B2 (en) * 2005-09-29 2012-12-25 Research In Motion Limited System and method for providing an indication of randomness quality of random number data generated by a random data service
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US7953225B2 (en) * 2005-10-21 2011-05-31 Harris Corporation Mobile wireless communications device with software installation and verification features and related methods
JP4556857B2 (ja) * 2005-12-07 2010-10-06 セイコーエプソン株式会社 情報配信装置、情報配信装置の制御方法および制御プログラム
US8818897B1 (en) * 2005-12-15 2014-08-26 Rockstar Consortium Us Lp System and method for validation and enforcement of application security
US20070152854A1 (en) * 2005-12-29 2007-07-05 Drew Copley Forgery detection using entropy modeling
US7499552B2 (en) * 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
EP1879122A1 (de) * 2006-07-10 2008-01-16 ABB Research Ltd Verfahren und Vorrichtungen zur Überprüfung der Authentizität eines aufgerufenen Code-Moduls
US8311650B2 (en) * 2006-07-13 2012-11-13 Mitsubishi Electric Corporation Equipment management system, programmable controller and centralized controller
WO2008021079A2 (en) 2006-08-08 2008-02-21 Wms Gaming Inc. Configurable wagering game manager
GB2443863B (en) * 2006-10-30 2011-05-11 Hewlett Packard Development Co Method and system for generating data transaction id
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置
US8682800B2 (en) * 2007-01-30 2014-03-25 Microsoft Corporation Controlling access to technology based upon authorization
US8433927B2 (en) 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US8422674B2 (en) 2007-05-29 2013-04-16 International Business Machines Corporation Application-specific secret generation
US8332635B2 (en) 2007-05-29 2012-12-11 International Business Machines Corporation Updateable secure kernel extensions
CA2591280A1 (en) * 2007-06-12 2008-12-12 Nikolajs Volkova A new digital signature scheme
US7974409B2 (en) * 2007-06-28 2011-07-05 Samsung Electronics Co., Ltd. Changing the order of public key cryptographic computations
US8332636B2 (en) * 2007-10-02 2012-12-11 International Business Machines Corporation Secure policy differentiation by secure kernel design
FR2922702B1 (fr) 2007-10-17 2010-02-26 Airbus France Securisation de fichiers informatiques telechargeables sur un aeronef basee sur l'identite d'entites, procede d'authenfication, systeme et aeronef associes
US10013536B2 (en) * 2007-11-06 2018-07-03 The Mathworks, Inc. License activation and management
JP5052367B2 (ja) * 2008-02-20 2012-10-17 株式会社リコー 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
CN101593257B (zh) * 2008-05-27 2011-02-16 北京飞天诚信科技有限公司 基于.Net虚拟机的软件保护系统和方法
US20090313171A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Electronic transaction verification
CN101436141B (zh) * 2008-11-21 2012-07-18 深圳创维数字技术股份有限公司 基于数字签名的固件升级、固件封装方法与装置
TWI412941B (zh) * 2008-11-25 2013-10-21 Inst Information Industry 產生及驗證一訊息之一語音簽章之裝置、方法及其電腦程式產品
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
JP2012088765A (ja) * 2010-10-15 2012-05-10 Hitachi Solutions Ltd プログラム起動制御方法、プログラム起動制御プログラム、携帯端末、ネットワークシステム
JP5630261B2 (ja) * 2010-12-27 2014-11-26 日本電気株式会社 コンテンツ管理システム、管理サーバ、コンテンツ管理方法、及びプログラム
US9152779B2 (en) 2011-01-16 2015-10-06 Michael Stephen Fiske Protecting codes, keys and user credentials with identity and patterns
US8732831B2 (en) 2011-07-14 2014-05-20 AVG Netherlands B.V. Detection of rogue software applications
US9098678B2 (en) * 2011-09-15 2015-08-04 Verizon Patent And Licensing Inc. Streaming video authentication
US9098696B2 (en) * 2011-10-25 2015-08-04 Raytheon Company Appliqué providing a secure deployment environment (SDE) for a wireless communications device
US9575906B2 (en) 2012-03-20 2017-02-21 Rubicon Labs, Inc. Method and system for process working set isolation
US9256765B2 (en) * 2012-06-29 2016-02-09 Kip Sign P1 Lp System and method for identifying software changes
US9323951B2 (en) 2013-03-13 2016-04-26 International Business Machines Corporation Encrypted warranty verification and diagnostic tool
EP3197089B1 (de) * 2014-11-06 2019-08-07 Huawei Technologies Co., Ltd. Sicheres informationskonfigurationsverfahren, sicheres authentifizierungsverfahren und zugehöriger chip
US11403685B2 (en) * 2016-10-17 2022-08-02 Blackberry Limited Automatic distribution of licenses for a third-party service operating in association with a licensed first-party service
US10262127B2 (en) 2017-04-05 2019-04-16 General Electric Company Systems and method for securely sharing and executing data and models
US10706164B2 (en) * 2017-09-29 2020-07-07 Intel Corporation Crypto-enforced capabilities for isolation
US10574451B2 (en) * 2017-10-19 2020-02-25 Bank Of America Corporation Method and apparatus for perfect forward secrecy using deterministic hierarchy
TWI643160B (zh) * 2017-11-16 2018-12-01 國立臺北科技大學 利用權重參數與餘數定義隱寫資料於區塊截斷編碼影像的方法、影像壓縮裝置及電腦可讀取的記錄媒體
KR101979323B1 (ko) * 2017-12-18 2019-05-15 주식회사 캐드서브 소프트웨어 저작권 인증 관리 방법
US20190236269A1 (en) * 2018-01-31 2019-08-01 International Business Machines Corporation Detecting third party software elements
US11050735B2 (en) * 2018-08-23 2021-06-29 International Business Machines Corporation Customizable authentication system
US11562073B2 (en) 2018-11-28 2023-01-24 The Boeing Company Systems and methods of software load verification
US10951404B1 (en) * 2020-06-09 2021-03-16 Quantropi Inc. Methods and systems for digital message encoding and signing
FR3113963B1 (fr) * 2020-09-10 2023-06-30 Thales Sa Chaine de confiance avancee en aeronautique domaine de l'invention
US11641347B2 (en) 2021-03-10 2023-05-02 Quantropi Inc. Quantum-safe cryptographic methods and systems
US20230403147A1 (en) 2021-08-03 2023-12-14 Mohammed Alawi E GEOFFREY Methods and systems for verification method to validate documents

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670857A (en) * 1981-10-26 1987-06-02 Rackman Michael I Cartridge-controlled system whose use is limited to authorized cartridges
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
US4868877A (en) * 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components

Also Published As

Publication number Publication date
EP0686906B1 (de) 2005-05-18
EP0686906A3 (de) 1997-08-06
JPH08166879A (ja) 1996-06-25
DE69534212T8 (de) 2006-04-27
DE69534212D1 (de) 2005-06-23
US5724425A (en) 1998-03-03
EP0686906A2 (de) 1995-12-13

Similar Documents

Publication Publication Date Title
DE69534212T2 (de) Verfahren und Vorrichtung zur Verbesserung der Softwaresicherheit und zur Software-Verteilung
DE69534757T2 (de) System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
DE112005001654B4 (de) Verfahren zum Übermitteln von Direct-Proof-Privatschlüsseln an Geräte mittels einer Verteilungs-CD
DE69635209T2 (de) Parametrierbare hash-funktionen zur zugangskontrolle
DE69704684T2 (de) Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip
DE19827659B4 (de) System und Verfahren zum Speichern von Daten und zum Schützen der Daten gegen einen nichtauthorisierten Zugriff
DE69738002T2 (de) Authentifizierungseinrichtung nach dem Challenge-Response-Prinzip
DE69514908T2 (de) Verfahren und einrichtung zum aufbau einer kryptographischen verbindung zwischen elementen eines systems
DE69837303T2 (de) Informationsverarbeitungsvorrichtung und Verfahren und Aufzeichnungsmedium zum Ausführen mittels öffentlicher Schlüssel verschlüsselter Programme
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
DE602004005485T2 (de) Verfahren zum beurteilen der nutzungserlaubnis für informationen und inhaltsverbreitungssystem, das dieses verfahren verwendet
EP1133849B1 (de) Verfahren und vorrichtung zum erzeugen eines verschlüsselten nutzdatenstroms und verfahren und vorrichtung zum entschlüsseln eines verschlüsselten nutzdatenstroms
DE602004007116T2 (de) Geschützter rückkanal vom digitalen rechte verwaltenden dongle
EP1184771B1 (de) Verfahren zum Schutz von Computer-Software und/oder computerlesbaren Daten sowie Schutzgerät
DE60002893T2 (de) Computerplattformen und deren betriebsverfahren
EP1777907B1 (de) Vorrichtungen und Verfahren zum Durchführen von kryptographischen Operationen in einem Server-Client-Rechnernetzwerksystem
EP2810400B1 (de) Kryptographisches authentifizierungs - und identifikationsverfahren mit realzeitverschlüsselung
DE102004024002B4 (de) Verfahren zur Authentifizierung von Sensordaten und zugehörigem Sensor
DE102010027586B4 (de) Verfahren zum kryptographischen Schutz einer Applikation
DE60114069T2 (de) System und Verfahren für den Schutz von Digitalwerken
DE60106802T2 (de) Urheberrechtsschutzsystem, Verschlüsselungsvorrichtung, Entschlüsselungsvorrichtung und Aufzeichnungsmedium
DE60112227T2 (de) Verfahren und vorrichtung zur sicheren datenverteilung
DE69720971T2 (de) Computersystem und Verfahren zum Schutz von Software
DE69605654T2 (de) Elektronisch verhandelbare dokumente
DE202022101844U1 (de) Ein System zur Ver- und Entschlüsselung von Daten für gesicherte Kommunikation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee