-
Die
vorliegende Erfindung betrifft das Gebiet der sicheren digitalen
Datenübertragung.
Insbesondere betrifft die vorliegende Erfindung Verfahren und Systeme
zum automatischen Erzeugen eines Sicherheitsschlüssels, wie zum Beispiel eines
Chiffrierschlüssels,
der ein Seed mit einer zufälligen
Bitfolge verwendet.
-
Computernetzwerke
haben die Art und Weise in der Menschen kommunizieren und Handel
treiben verändert.
Heute durchqueren selbst sensitive Datenübertragungen öffentliche
Netzwerke, wie zum Beispiel das Internet. Die Verschlüsselung
ermöglicht,
das solche sensitiven Datenübertragungen
mit einem deutlich verringerten Risiko, dass derartige Nachrichten
von einem unberechtigten Individuum abgefangen und entschlüsselt werden, über öffentliche
Netze übertragen
werden können.
-
Die
Verschlüsselung
involviert die Verwendung eines Schlüssels zum Verschlüsseln der
Daten, die generell lesbar sind (hierin auch als „Klartext" bezeichnet), in
Daten, die generell nicht lesbar sind (hierin auch als „Ciphertext" bezeichnet). Der
Ciphertext kann über
ein öffentliches
Netzwerk, das Angriffen durch unberechtigte Personen ausgesetzt
ist, übertragen
werden. Der berechtigte Empfänger
verwendet einen Entschlüsselungsschlüssel, um
den Ciphertext zurück
in Klartext zu entschlüsseln,
so dass die Daten adäquat
interpretiert werden können.
Da die allgemeine Öffentlichkeit
keinen Zugang zu dem Entschlüsselungsschlüssel hat,
können
unberechtigte Nutzer den Ciphertext nicht dechiffrieren und infolgedessen
die Daten nicht interpretieren.
-
Bei
der symmetrischen Verschlüsselung
ist der Schlüssel
zur Verschlüsselung
und der Schlüssel zu
Entschlüsselung
derselbe. Dieser zuvor ausgehandelte, geheime Schlüssel ist
im Idealfall nur den berechtigten Teilnehmern einer sicheren Datenübertragung
bekannt. Jedoch ist es für
einen unberechtigt Abhörenden,
unter der Voraussetzung, dass ausreichend Zeit, ausreichende Kenntnisse
und genügend Verarbeitungsressourcen
vorhanden sind, möglich, den
Schlüssel
zu identifizieren und infolgedessen alle Nachrichten, die sie während der Übertragung zwischen
den berechtigten Teilnehmern der Datenübertragung abfangen können, zu
entschlüsseln.
-
Um
gegen derartiges unerwünschtes
Abfangen von sicheren Datenübertragungen
gerüstet
zu sein, haben Sicherheitsprotokolle wie zum Beispiel das WTLS-Protokoll
(Wireless Transport Layer Security Protocol) Bestimmungen zum Ändern des Schlüssels auf
einer periodischen Basis. Infolgedessen hat ein Angreifer, dem es
gelingt, sich den Schlüssel
zu beschaffen, nur solange Zugriff auf die sichere Datenübertragung,
bis der Schlüssel
geändert
wird.
-
In
diesen Sicherheitsprotokollen wird zwischen den beiden Parteien
in einer sicheren Datenübertragungssitzung
eine Bitfolge, die „Master-Geheimnis" genannt wird, ausgehandelt.
Dieses Master-Geheimnis wird zusammen mit einer Bitfolge, die als
Seed bezeichnet wird, in einen Einweg-Hash-Algorithmus eingegeben,
um einen Verschlüsselungs-/Entschlüsselungsschlüssel zu
erzeugen. Da das Ergebnis des Einweg-Hash-Algorithmus von dem eingegebenen Seed
abhängig
ist, ändert
das gelegentliche Ändern
des Seeds von Zeit zu Zeit den Schlüssel. Das Seed wird innerhalb
eines Datenpaketes klar übertragen.
Der Empfänger
verwendet das Seed und das zuvor verhandelte Master-Geheimnis als
Eingaben für
denselben Einweg-Hash-Algorithmus, um denselben Schlüssel, der
verwendet wurde, um das Paket zu verschlüsseln, zu erzeugen. Da symmetrische
Verschlüsselung
angewendet wird, wird dieser Schlüssel anschließend verwendet,
um das Paket zu entschlüsseln.
-
Bei
konventionellen Sicherheitsprotokollen, wie dem WTLS-Protokoll,
ist das Seed im Wesentlichen eine Bitfolge, die für den Klienten
unikal ist. Wenn das Seed zu ändern
ist, wird die Bitfolge einfach inkrementiert. Ein Angreifer kann
einen Vorteil aus den vorhersehbaren Änderungen des Seeds gewinnen,
um das Master-Geheimnis, das erforderlicht ist, um den Schlüssel, der
für den
Angriff erforderlich ist, zu bilden, festzustellen. Es würde eine
Verbesserung der Technik darstellen, ein Verschlüsselungs/Entschlüsselungsverfahren
und ein System bereitzustellen, in denen es für einen Angreifer schwieriger
ist, das Master-Geheimnis und den Schlüssel zu identifizieren.
-
Es
würde einen
weiteren Vorteil bereitstellen, den Schaden zu verringern, der durch
einen Angreifer verursacht wird, wenn der Angreifer den Schlüssel trotz
der Schwierigkeiten beim Identifizieren des Schlüssels identifizieren würde.
-
US 5 428 686 A legt
eine sichere Datenübertragungsvorrichtung
offen, die eine nicht extrahierbare Langzeit-Masterschlüssel-Variable,
die gemeinsam von allen Datenendgeräten des Systems verwahrt wird,
einbezieht. Ein Pseudozufallsbitfolgen-Generator innerhalb des Senders
stellt einen binären
Bitstrom bereit, der unverschlüsselt
zu dem vorgesehenen Empfänger übertragen
wird.
-
WO
98 55717 A legt ein Verfahren und ein System zur Fernsteuerung von
Vorrichtungen mit einer sicheren Selbstlernfähigkeit offen. Ein Codierer stellt
unter Verwendung eines Schlüsselerzeugungs-Seeds
einen verschlüsselten
Wert her.
-
Es
ist eine Aufgabe der vorliegenden Erfindung verbesserte Verfahren
und entsprechende Computerprogrammprodukte zum Verschlüsseln und jeweiligen
Entschlüsseln
von Daten in einem Netzwerkssystem, basierend auf einem Sicherheitsschlüssel, der
es für
einen Angreifer schwieriger macht, den Schlüssel zu identifizieren, bereitzustellen.
-
Diese
Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst.
-
Die
bevorzugten Ausführungsbeispiele
sind durch die Gegenstände
der abhängigen
Ansprüche definiert.
-
Es
werden Verfahren und Methoden zum Erzeugen eines Sicherheitsschlüssels, wie
zum Beispiel eines Verschlüsselungsschlüssels, um
es für Angreifer
schwieriger zu machen, den Schlüssel
zu identifizieren, beschrieben.
-
Speziell
erzeugt ein kryptografisch sicherer Zufallszahlengenerator eine
zufällige
Bitfolge, die in ein Seed eingefügt
wird. Dieses Zufalls-Seed wird mit einem ausgehandelten Master-Geheimnis
an ein Schlüsselerzeugungs-Modul
bereitgestellt. Das Schlüsselerzeugungs-Modul
kann eine Pseudozufallsfunktion anwenden, die in Übereinstimmung
mit dem TLS-Protokoll (Transport Layer Security Protocol) oder dem
WTLS-Protokoll (Wireless Transport Layer Security Protocol) ist.
Dieser Schlüssel
kann anschließend
verwendet werden, um eine klare Textnachricht zu verschlüsseln, um
ein verschlüsseltes Datenpaket
zu bilden. Das verschlüsselte
Datenpaket enthält
außerdem
das Zufalls-Seed
in unverschlüsselter
Form. Das verschlüsselte
Datenpaket kann bei vermindertem Risiko abgehört zu werden über ein öffentliches
Netzwerk zu einem Empfänger übertragen
werden.
-
Wenn
die Entschlüsselungsvorrichtung
des Empfängers
das Datenpaket empfängt,
liest die Vorrichtung des Empfängers
das Seed aus dem Datenpaket und stellt das Zufalls-Seed zusammen mit
dem ausgehandelten Master-Geheimnis an ein Schlüsselerzeugungs-Modul bereit,
das mit dem Schlüsselerzeugungs-Modul,
das verwendet wurde, um den Schlüssel
für die
Verschlüsselung
zu erzeugen, identisch ist, bereit. Der sich daraus ergebende Schlüssel wird
verwendet, um das Datenpaket zu entschlüsseln.
-
Ein
Vorteil der vorliegenden Erfindung ist, dass das Seed, das verwendet
wird, um den Schlüssel
zu erzeugen, eine zufällige
Bitfolge enthält.
Dies macht es für
einen Angreifer schwieriger den Verschlüsselungsschlüssel oder
das Master-Geheimnis zu identifizieren, um dadurch in der Lage zu
sein, eine sensitive Nachricht zu entschlüsseln und erfolgreich abzufangen.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird für jedes von der Verschlüsselungsvorrichtung
zu der Entschlüsselungsvorrichtung übertragene
Datenpaket eine neue zufällige
Bitfolge erzeugt. Dies bedeutet, dass das Zufalls-Seed und infolgedessen
der Verschlüsselungsschlüssel für jedes
Datenpaket verschiedenen sind. Folglich würde der Angreifer selbst dann,
wenn der Angreifer den Verschlüsselungsschlüssel für einen
Datenpaket identifiziert, nicht automatisch in der Lage sein, weitere
Datenpakete ohne das Brechen eines weiteren Verschlüsselungsschlüssels abzufangen.
Folglich machen es die Prinzipien der vorliegenden Erfindung nicht
nur schwieriger den Schlüssel
zu brechen, sondern verringern außerdem den Gewinn für das Brechen
des Schlüssels.
-
Weitere
Merkmale und Nutzen der vorliegenden Erfindung werden in der folgenden
Beschreibung dargestellt und werden teilweise aus der Beschreibung
offensichtlich oder können
durch das praktische Ausführen
der Erfindung bekannt werden. Die Merkmale und Nutzen der Erfindung
können
durch die Instrumente und Kombinationen, die insbesondere in den
angehängten
Ansprüchen
ausgeführt
werden, realisiert und erreicht werden. Diese und weitere Merkmale
der vorliegenden Erfindung werden durch die folgende Beschreibung
und die angehängten
Patentansprüche
vollständiger
sichtbar oder können durch
das Umsetzen der Erfindung in die Praxis, wie hierin im Folgenden
dargestellt, erkannt werden.
-
Kurzbeschreibung
der Zeichnungen
-
Um
die Art und Weise, in der die oben zitierten und weitere Vorteile
und Merkmale der Erfindung erreicht werden können, zu beschreiben, folgt
eine speziellere Beschreibung der Erfindung, die oben kurz beschrieben
wurde, erstellt unter Bezugnahme auf spezielle Ausführungsbeispiel
davon, die in den beigefügten
Zeichnungen dargestellt sind. Es versteht sich, dass diese Zeichnungen
nur typische Ausführungsbeispiele
abbilden und deshalb nicht vorgesehen sind, um den Schutzumfang
der Erfindung einzuschränken.
Die Erfindung wird unter Verwendung der begleitenden Zeichnungen
ausführlicher
und detaillierter beschrieben, wobei in den Zeichnungen
-
1 ein
beispielhaftes System darstellt, das eine geeignete Betriebsumgebung
für die
vorliegende Erfindung bereitstellt,
-
2 eine
verschlüsselte
Datenübertragung in
einer Netzwerksystemumgebung darstellt,
-
3 die
Komponenten und den Datenfluss der Verschlüsselungsvorrichtung der 2 schematisch
darstellt;
-
4 ein
Ablaufdiagramm eines Verfahrens zum Verschlüsseln von Daten, das durch
die Verschlüsselungsvorrichtung
der 2 angewendet wird, darstellt,
-
5 schematisch
die Komponenten und den Datenfluss der Entschlüsselungsvorrichtung der 2 darstellt
und
-
6 ein
Ablaufdiagramm eines Verfahrens zum Entschlüsseln von Daten, das durch
die Entschlüsselungsvorrichtung
der 2 abgewendet wird, darstellt.
-
Ausführliche Beschreibung der Erfindung
-
Die
vorliegende Erfindung erstreckt sich sowohl auf Verfahren als auch
auf Systeme zum Erzeugen eines XX der ein Seed, das eine zufällige Bitfolge verwendet,
enthält.
Der Schlüssel
wird sowohl durch das Eingeben des Seeds als auch eines vorab ausgehandelten
Master-Geheimnisses in ein Schlüsselerzeugungs-Modul
zum Erzeugen eines Schlüssels erzeugt.
Anschließend
verwendet ein Verschlüsselungsmodul
den Schlüssel,
um ein Datenpaket zu verschlüsseln.
Das Datenpaket kann dann über
ein öffentliches
Netzwerk an den vorgesehenen Empfänger übertragen werden. Bei Empfang
des Paketes verwendet der Empfänger
ein vorab ausgehandeltes Master-Geheimnis und das aus dem Datenpaket
gelesene Seed als Eingaben für
dasselbe Schlüsselerzeugungs-Modul, das verwendet
wurde, um den XX zu erzeugen. Ein Entschlüsselungsmodul, das mit dem
Verschlüsselungsmodul
symmetrisch ist, verwendet anschließend diesen Schlüssel, um
das Datenpaket zu entschlüsseln.
In einem Ausführungsbeispiel
wird der Schlüssel
für jedes
Datenpaket durch das Ändern
der zufälligen
Bitfolge, die für
jedes Paket in dem Seed enthalten ist, geändert.
-
Das
Fehlen der Vorhersehbarkeit in dem Seed macht es für einen
Angreifer schwierig, den Schlüssel
und das Master-Geheimnis zu identifizieren. Zusätzlich verringert das Ändern des
für jedes Datenpaket
verwendeten Seeds den Schaden, der durch den Angreifer verursacht
wird, da selbst dann, wenn der Angreifer den Schlüssel identifiziert,
der Schlüssel
nur für
ein Datenpaket geeignet sein würde und
für das
nächste
nicht mehr zu verwenden wäre.
-
Die
Ausführungsbeispiele
der vorliegenden Erfindung können
einen Spezial- oder Allzweckcomputer, der verschiedene Computerhardware
enthält, umfassen,
wie im Folgenden ausführlicher
erörtert wird.
Die Ausführungsbeispiele
innerhalb des Schutzumfangs der Erfindung enthalten außerdem computerlesbare
Medien zum Tragen oder Besitzen von computerausführbaren Befehlen oder Datenstrukturen,
die darauf gespeichert sind. Derartige computerlesbare Medien können alle
erhältlichen
Medien, auf die durch einen Spezialcomputer oder einen Allzweckcomputer
zugegriffen werden können,
sein. Beispielsweise und nicht einschränkend können solche computerlesbaren
Medien physikalische Speichermedien, wie zum Beispiel RAM, ROM,
EEPROM, CD-ROM oder optische Plattenspeicher-, magnetische Plattenspeicher-
oder weitere magnetische Speichervorrichtungen oder jedes andere
Medium, das verwendet werden kann, um erwünschte Programmcodeeinrichtungen
in Form von computerausführbaren
Befehlen oder Datenstrukturen speichern können und auf die durch einen
Spezialcomputer oder einen Allzweckcomputer zugegriffen werden kann,
umfassen.
-
Wenn
Informationen über
ein Netzwerk oder eine andere Datenübertragungsverbindung (entweder
fest verdrahtet, drahtlos oder in einer Kombination aus fest verdrahtet
und drahtlos) zu einem Computer übertragen
werden, betrachtet der CompOuter die verbindung adäquat als
ein computerlesbares Medium. Infolgedessen wird jede solche Verbindung richtigerweise
als computerlesbares Medium bezeichnet. Kombinationen der oben aufgezählten sollten
ebenso in den Geltungsbereich der computerlesbaren Medien aufgenommen
werden. Computerlesbare Befehle umfassen beispielsweise Befehle
und Daten, die einen Allzweckcomputer, einen Spezialcomputer oder
eine spezielle Verarbeitungsvorrichtung veranlassen, eine bestimmte
Funktion oder eine Reihe von Funktionen auszuführen.
-
Die 1 und
die folgenden Diskussion sind vorgesehen, um eine kurze allgemeine
Beschreibung einer geeigneten EDV-Umgebung bereitzustellen, in der
die Erfindung angewendet werden kann. Obwohl nicht erforderlich,
wird die Erfindung in dem allgemeinen Kontext von computerausführbaren
Befehlen, wie zum Beispiel Programmmodulen, die durch Computer in
Netzwerkumgebungen ausgeführt
werden, beschrieben. Generell enthalten Programmmodule Objekte,
Komponenten, Datenstrukturen usw., die bestimmte Aufgaben durchführen oder
bestimmte abstrakte Datentypen implementieren. Computerlesbare Befehle,
zugehörige
Datenstrukturen und Programmmodule stellen Beispiele der Programmcodeeinrichtungen
zum Ausführen
der Schritte des hierin offen gelegten Verfahrens dar. Die bestimmte
Reihenfolge von solchen ausführbaren
Befehlen oder zugehörigen
Datenstrukturen stellen Beispiele der entsprechenden Handlungen
zum Implementieren der in solchen Schritten beschriebenen Funktionen dar.
-
Die
Fachleute in dieser Technik werden anerkennen, dass die Erfindung
in Netzwerk-EDV-Umgebungen
mit vielen Computersystemkonfigurationstypen, wie Personalcomputern,
tragbaren Vorrichtungen, Multiprozessorsystemen, mikroprozessorbasierter
oder programmierbarer Anwenderelektronik, Netzwerk-PCs, Minicomputern,
Großrechnern
und dergleichen, in die Praxis umgesetzt werden kann. Ebenso kann
die Erfindung in verteilten EDV-Umgebungen, in denen die Aufgaben
durch lokale und dezentrale Verarbeitungsvorrichtungen, die durch
ein Datenübertragungsnetzwerk
(entweder durch fest verdrahtete Links, drahtlose Links oder durch
eine Kombination von fest verdrahteten und drahtlosen Links) verbunden
sind, ausgeführt
werden. In einer verteilten EDV-Umgebung
können
die Programmmodule sowohl in den lokalen als auch in dezentralen Datenspeichervorrichtungen
angeordnet sein.
-
Unter
Bezugnahme auf die 1 enthält ein beispielhaftes System
zum Implementieren der Erfindung eine Allzweck-EDV-Vorrichtung in
Form eines konventionellen Computers 120, der einen Prozessor 121,
einen Systemspeicher 122 und einen Systembus 123,
der verschiedene Systemkomponenten, einschließlich den Systemspeicher 122,
mit dem Prozessor 121 koppelt, enthält. Der Systembus 123 kann jeder
einer Vielzahl von Busstrukturen sein, die einen Speicherbus oder
Speicherkontroller, einen Peripheriebus und einen lokalen Bus enthalten,
die jede eine Vielzahl von Busarchitekturen verwenden. Das System
enthält
einen Festspeicher (ROM) 124 und einen Direktzugriffsspeicher
(RAM) 125. Ein die Grundroutinen enthaltendes Eingabe-/Ausgabe-System (BIOS) 126,
das die Übertragung
von Informationen zwischen den Elementen in dem Computer 120 beispielsweise
beim Inbetriebsetzen unterstützt,
kann in dem ROM 124 gespeichert sein.
-
Der
Computer 120 kann außerdem
ein magnetisches Festplattenlaufwerk 127 zum Auslesen und
Beschreiben der magnetischen Festplatte 139, ein Magnetplattenlaufwerk 128 zum
Auslesen und Beschreiben einer herausnehmbaren Magnetplatte 129 und
ein optisches Plattenlaufwerk zum Auslesen und Beschreiben einer
herausnehmbaren optischen Platte 131, wie zum Beispiel
einer CD-ROM oder anderer optischer Medien, enthalten.
-
Das
magnetische Festplattenlaufwerk 127, das Magnetplattenlaufwerk 128 und
das optische Plattenlaufwerk 130 sind jeweils durch eine
Festplattenlaufwerk-Schnittstelle 132, eine Magnetplattenlaufwerk-Schnittstelle 133 und
eine Schnittstelle für das
optische Laufwerk mit dem Systembus 123 verbunden. Die
Laufwerke und die ihnen zugehörigen computerlesbaren
Medien stellen für
den Computer 120 das nichtflüchtige Speichern von computerausführbaren
Befehlen, Datenstrukturen, Programmmodulen und weiteren Daten bereit.
Obwohl die hierin beschriebene beispielhafte Umgebung eine magnetische
Festplatte 139, eine herausnehmbare Magnetplatte 129 und
eine herausnehmbare optische Platte 131 verwendet, können andere
Typen von computerlesbaren Medien zum Speichern von Daten, wie beispielsweise
Magnetkassetten, Flash-Speicherkarten, DVDs, Bernoulli-Kassetten,
RAMs, ROMs und dergleichen, verwendet werden.
-
Programmcodeeinrichtungen,
die ein Programmmodul oder mehrere Programmmodule umfassen, können auf
der Festplatte 139, der Magnetplatte 129, der
optischen Platte 131, in dem ROM 124 oder in dem
RAM 125, einschließlich
eines Betriebssystems 135, eines Anwendungsprogramms 136 oder
mehrerer Anwendungsprogramme 136, weiterer Programmmodule 137 und
weiterer Programmdaten 138, gespeichert werden. Ein Anwender
kann durch eine Tastatur 140, eine Zeigevorrichtung 142 oder
andere Eingabevorrichtungen (nicht gezeigt), wie zum Beispiel ein
Mikrofon, einen Steuerhebel, ein Gamepad, eine Satellitenantenne,
einen Scanner oder dergleichen, Befehle und Informationen in den Computer 120 eingeben.
Diese und weitere Eingabevorrichtungen werden oft durch eine an
den Systembus 123 gekoppelte serielle Eingangsschnittstelle 146 an
den Prozessor 121 angeschlossen. Alternativ können die
Eingabevorrichtungen durch andere Schnittstellen, wie zum Beispiel
einen Paralleleingang, einen Gameport oder einen universellen Serienbus
(USB) angeschlossen werden. Außerdem
ist über
eine Schnittstelle, wie zum Beispiel einen Videoadapter 148,
ein Monitor 147 oder eine andere Anzeigevorrichtung an
den Systembus 123 angeschlossen. Zusätzlich zu dem Monitor enthalten
Personalcomputer typischerweise weitere periphere Ausgabevorrichtungen
(nicht gezeigt), wie zum Beispiel Lautsprecher und Drucker.
-
Der
Computer 120 kann in einer Netzwerkumgebung arbeiten, die
logische Verbindungen zu einem dezentralen Computer oder zu mehreren
dezentralen Computern, wie die dezentralen Computer 149a und 149b,
verwendet.
-
Die
dezentralen Computer 149a und 149b können jeweils
ein weiterer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC,
eine Partnervorrichtung oder ein anderer gemeinsamer Netzwerkknoten
sein und enthalten typischerweise viele oder alle der oben in Bezug
auf den Computer 120 beschriebenen Elemente, obwohl in
der 1 nur die Datenspeichervorrichtungen 150a und 150b und die
ihnen zugehörigen
Anwendungsprogramme 136a und 136b gezeigt werden.
Die in der 1 abgebildeten logischen Verbindungen
enthalten ein Lokalnetzwerk (LAN) 151 und ein Fernnetzwerk
(WAN) 152, die hier beispielhaft und nicht einschränkend dargestellt
werden. Derartige Netzwerke sind in firmeninternen oder unternehmensweiten
Computernetzwerken, Intranetzen und im Internet weit verbreitet.
-
Wenn
der Computer 120 in einer LAN-Netzwerkumgebung verwendet
wird, ist der Computer 120 durch eine Netzwerkschnittstelle
oder einen Adapater 153 an das lokale Netzwerk 151 angeschlossen.
Wenn der Computer 120 in einer WAN-Netzwerkumgebung verwendet
wird, kann der Computer 120 ein Modem 154, einen
drahtlosen Link oder andere Einrichtungen zum Einrichten der Datenübertragung über das
Fernnetz 152, wie zum Beispiel das Internet, enthalten.
Das Modem 154, das extern oder intern sein kann, ist über eine
serielle Eingangsschnittstelle 146 mit dem Systembus 123 verbunden.
In einer Netzwerkumgebung können
die Programmmodule, die in Beziehung auf den Computer 120 abgebildet
sind, oder Teile davon in der dezentralen Datenspeichervorrichtung
gespeichert werden. Es wird anerkannt werden, dass die gezeigten
Netzwerkverbindungen beispielhaft sind und dass andere Einrichtungen
zum Einrichten von Datenübertragungen über das
Fernnetz 152 verwendet erden können.
-
Die 2 stellt
eine Netzwerksystem 200 dar, in dem die vorliegende Erfindung
arbeiten kann. Das Netzwerksystem 200 enthält ein erstes
Computersystem (beispielsweise die Verschlüsselungsvorrichtung 201),
das ein Netzwerk ist, das mit einem zweiten Computersystem (beispielsweise
der Entschlüsselungsvorrichtung 202)
netzwerkverbindbar ist. In dieser Beschreibung bedeutet der Ausdruck „netzwerkverbindbar", die Fähigkeit
mit dem Netzwerk verbunden sein zu können. Wenn zwei Vorrichtungen „netzwerkverbunden" sind, dann bedeutet dies,
dass die eine Vorrichtung mit der anderen Vorrichtung entweder direkt
oder durch ein Netzwerk oder durch mehrere Netzwerke kommunizieren
kann. Folglich umfasst „netzwerkverbunden" alle Formen von
elektronischen unidirektionalen oder bidirektionalen Verbindungen,
unabhängig
davon, ob eine derartige Datenübertragung
verbindungsorientiert ist. In einem Ausfürhungsbeispiel sind das erste
und das zweite Computersystem ähnlich
strukturiert wie der Computer 120, der unter Bezugnahme
auf die 1 beschrieben wurde, jedoch
ist dies nicht erforderlich.
-
In
Betrieb wird der Klartext 203 in dem ersten Computersystem
durch die Verschlüsselungsvorrichtung 201 in
wenigstens ein verschlüsseltes
Datenpaket 204 zur Datenübertragung über ein öffentliches Netzwerk 205 verschlüsselt. In
dieser Beschreibung und in den Ansprüchen bezeichnet „Klartext" alle Daten, die
durch einen Benutzer oder eine Anwendung ohne Entschlüsselung
gelesen (und interpretiert) werden können, und ist nicht auf Textdaten
beschränkt.
Das verschlüsselte
Datenpaket 204 wird dann in dem zweiten Computersystem
unter Verwendung der Entschlüsselungsvorrichtung 202 entschlüsselt, um
den Klartext 203 zu regenerieren.
-
In
einem Ausführungsbeispiel
wird das Datenpaket 204 unter Verwendung eines sicheren
unbestätigten
Push-Protokolls übertragen.
Ein „sicheres
unbestätigtes
Push-Protokoll" ist als jedes Protokoll
definiert, das verwendet werden kann, um ein Datenpaket in einer
sicheren Weise zu übertragen, ohne
dass Bestätigung
des Empfangs des Datenpaketes erforderlich ist und ohne dass erforderlich
ist, dass die Daten für
jede Übertragung
synchron abgefordert werden. Ein UDP-Protokoll (User Datagram Protocol)
ist ein Beispiel eines sicheren unbestätigten Push-Protokolls. In
diesem Fall kann das verschlüsselte
Datenpaket 204 ein UDP-Paket sein, das erste Computersystem
kann wenigstens Teil eines Computersystems sein, das der zweite
Computer für Benachrichtigungen über bestimmte
Ereignisse abboniert, und der zweite Computer kann wenigstens Teil
eines Klienten-Computersystems, wie beispielsweise eine drahtlose
Vorrichtung, sein.
-
Die 3 stellt
wenigstens einige der Komponenten und den Datenfluss der Verschlüsselungsvorrichtung 201 dar,
die verwendet erden kann, um für
die erfindungsgemäß verbesserte
Sicherheit einen Sicherheitsschlüssel
(beispielsweise einen Verschlüsselungsschlüssel) in
einer unikalen und dienlichen Form zu erzeugen.
-
Die
Komponenten und der Datenfluss der Verschlüsselungsvorrichtung 201 werden
unter häufiger
Bezugnahme sowohl auf die 3, die die Komponenten
und den Datenfluss der Verschlüsselungsvorrichtung 201 zeigt,
als auch auf die 4, die ein Ablaufdiagramm, das
den Betreib der Verschlüsselungsvorrichtung 201 darstellt,
ist, beschrieben.
-
Einige
Schritte in dem Verfahren der 4 werden
durch das erste (Verschlüsselungs-)Computersystem
durchgeführt,
wie in der linken Spalte mit der Überschrift ERSTES (VERSCHLÜSSELUNGS-)COMPUTERSYSTEM
aufgelistet, einige Vorgänge
werden durch das zweite (Entschlüsselungs-)Computersystem
durchgeführt,
wie in der rechten Spalte mit der Überschrift ZWEITES (ENTSCHLÜSSELUNGS-)COMPUTERSYSTEM
aufgelistet, und einige Handlungen werden von beiden Computersystemen
durchgeführt,
wie in der mittleren Spalte mit dem Titel BEIDE aufgelistet.
-
Wie
durch die 4 dargestellt, handeln das erste
und das zweite Computersystem, bevor die sichere Datenübertragung
beginnt, sicher ein Master-Geheimnis (Schritt 401) aus,
das nur das erste und das zweite Computersystem kennen. Weitere Parameter,
wie zum Beispiel ein Sicherheitsparameterindex (SPI) und eine Algorithmusfolge
können
in derselben Sitzung ebenso ausgehandelt werden. Die Technologien
zum sicheren Aushandeln eines Master-Geheimnisses sind in der Technik
wohlbekannt und können
die Verwendung von asymmetrischen Verschlüsselungstechniken umfassen.
-
Bei
der asymmetrischen Verschlüsselung
erfolgt die Datenübertragung
in beiden Richtungen dadurch, dass das übertragende Computersystem
eine Nachricht unter Verwendung eines öffentlichen Schlüssels, der
für das
empfangenden Computersystem speziell ist, verschlüsselt, wobei
der öffentliche Schlüsse allgemein
bekannt ist. Der Verschlüsselungsalgorithmus
ist in dem Sinne asymmetrisch, dass die Nachricht, obwohl der öffentliche
Schlüssel verwendet
werden kann, um eine Nachricht zu verschlüsseln, nicht unter Verwendung
desselben Schlüssels
entschlüsselt
werden kann, sondern nur durch einen privaten Schlüssel, der
nur dem empfangenden Computersystem bekannt ist, entschlüsselt werden
kann. Folglich kann die verschlüsselte
Nachricht über
ein öffentliches
Netzwerk sicher zu dem empfangenden Computersystem übertragen
werden, obwohl die Nachricht unter Verwendung eines öffentlichen
Schlüssels,
der allgemein bekannt ist, verschlüsselt wurde.
-
Die
Datenübertragung
kann in der entgegengesetzten Richtung ebenso erfolgen, bis ein
Master-Geheimnis sicher ausgehandelt ist. An dieser Stelle kann
ein geringerer Overhead symmetrischer Verschlüsselungsmechanismen verwendet
werden, in dem derselbe Schlüssel,
der verwendet wird, um die Daten zu verschlüsseln, verwendet wird, um die Daten
zu entschlüsseln.
-
Sobald
das Master-Geheimnis ausgehandelt ist (Schritt 401) implementiert
die Verschlüsselungsvorrichtung
einen Schritt zum Erzeugen eines Schlüssels, der das Master-Geheimnis und ein
Seed verwendet, so dass das Master-Geheimnis und der Schlüssel für einen
Angreifer schwierig zu identifizieren sind (Schritt 402).
Die Handlungen, die diesem Schritt entsprechen sind in der 4 als
Schritt 403, Schritt 404, Schritt 405 und
Schritt 406 dargestellt.
-
Speziell
erzeugt die Verschlüsselungsvorrichtung
eine zufällige
Bitfolge (Schritt 403).
-
Bezug
nehmend auf die 3, kann dies durch ein kryptografisch
sicheres Zufallszahlgeneratormodul 301, das die zufällige Bitfolge 302 erzeugt, erreicht
werden. In einem Ausführungsbeispiel
ist die zufällige
Bitfolge 8 Byte oder 64 Bits lang.
-
Als
Nächstes
wird die zufällige
Bitfolge 302 in ein Seed eingefügt, um ein Zufalls-Seed zu
erzeugen (Schritt 404). In der Beschreibung und in den
Patentansprüchen
ist ein Zufalls-Seed als eine Bitfolge, die verwendet wird, um eine
sichere Schlüsselbitfolge
zu erzeugen, und das eine zufällige
Bitfolge enthält,
definiert. Bezug nehmend auf die 3, kann
die zufällige
Bitfolge 302 mit einer weiteren Bitfolge 303,
die durch ein anderes Bitfolgegeneratormodul 304 erzeugt
wird, kombiniert werden, um ein Zufalls-Seed 305 zu bilden.
In einem Ausführungsbeispiel
ist die andere Bitfolge 303 vier Bytes und stellt die aktuelle UTC-Zeit
(Universal Time Coordinated) in Sekunden seit Beginn der UNIX-Epoche dar. Die UNIX-Epoche begann
genau um Mitternacht, am Morgen des 1. Januars 1970. Die Vier-Byte-UTC-Zeit
bildet kombiniert mit der zufälligen
Bitfolge von achte Bytes ein Zufalls-seed von 12 Bytes oder 96 Bits.
-
Das
Zufalls-Seed und das Master-Geheimnis werden dann in ein Schlüsselerzeugungsmodul eingegeben
(Schritt 405), das einen Schlüssel erzeugt (Schritt 406).
Bezug auf die 3 nehmend, werden das Zufalls-Seed 305 und
das Master-Geheimnis 306 in ein Schlüsselerzeugungsmodul 307 eingegeben,
um die Schlüsselbitfolge 308 zu
erzeugen. Das Master-Geheimnis 306 wurde in dem Schritt 401 durch
das erste und das zweite Computersystem ausgehandelt. Die Identität des Schlüsselerzeugungsmoduls 307 kann
ebenso während
derselben Anfangssitzung, in der das Master-Geheimnis ausgehandelt
wird, ausgehandelt werden. Das Schlüsselerzeugungsmodul 307 kann
jedes Modul sein, das fähig
ist, einen kryptografisch sicheren Schlüssel, der ein Seed und ein
Master-Geheimnis verwendet, zu erzeugen.
-
Ein
Beispiel eines solches Moduls oder einer solchen Funktion ist die
Pseudozufallsfunktion, die in dem TLS-Protokoll beschrieben wird.
Spezieller nimmt die als „PRF" bezeichnete Zufallsfunktion
des TLS-Protokolls als seine Eingabe das Master-Geheimnis (auch
einfach als „Geheimnis" bezeichnet), ein
Seed (d. h., das Zufalls-Seed, wenn die vorliegende Erfindung angewendet
wird) und ein Kennzeichnungslabel. Basierend auf diesen Eingaben
erzeugt die PRF eine Ausgabe arbiträrer Länge. Für zusätzliche Sicherheit verwendet
die PRF des TLS-Protokolls zwei Hash-Algorithmen in einer Art und
Weise, die seine Sicherheit garantieren muss, sofern beide Algorithmen
sicher bleiben.
-
Da
die Pseudozufallsfunktion, die in dem TLS-Protokoll beschrieben
wird, unter einer Funktion HMAC definiert ist, wird hierin zuerst
die Funktion HMAC beschrieben. HMAC wird ebenso als RFC 2104 beschrieben.
HMAC kann mit einer Vielzahl verschiedener Hash-Algorithmen, einschließlich der wohlbekannten
MD5- und SHA-1-Hash-Algorithmen, verwendet
werden. Wenn der MD5-Hash-Algorithmus verwendet wird, wird die Funktion
HMAC als HMAC_MD5(secret, text) gekennzeichnet. Wenn der SHA-1-Algorithmus verwendet
wird, wird die Funktion HMAC als HMAC_SHA(secret, text) bezeichnet. Der
Algorithmus empfängt
als seine erste Eingabe „secret", das in der vorliegenden
Erfindung das Master-Geheimnis sein kann. Der Algorithmus empfängt als
seine zweite Eingabe einige Bitfolgen „text".
-
Diese
Hash-Algorithmen arbeiten durch das Iterieren einer Grundkompressionsfunktion
an Datenblöcken.
Die Bytelänge
solcher Blocks wird hierin als „B" bezeichnet, wobei B sowohl für MD5 als
auch SHA-1 64 ist. Die Bytelänge
der Hash-Ausgaben wird hierin als „L" bezeichnet, wobei L für den MD5-Hash-Algorithmus
gleich 16 ist und L für
den SHA-1-Algorithmus
gleich 20 ist.
-
Das
Master-Geheimnis oder „secret" kann jeder Länge bis
zu B Bytes, der Blocklänge
der Hash-Funktion, sein. Aus Gründen
der Übersichtlichkeit
beim Definieren von HMAC werden zwei feststehende und verschiedene
Strings, ipad und opad, wie folgt definiert (das „i" und das „o" sind mnemonische Zeichen
für innerer
und äußerer):
ipad
= das Byte 0x36 B mal wiederholt und
opad = das Byte 0x5C B
mal wiederholt.
-
Um
HMAC über
die zweite Eingabe „text" zu errechnen, werden
die folgenden sieben Schritte ausgeführt:
Schritt (1): An das
Ende der ersten Eingabe „secret" werden Nullen angehängt, um
einen B-Bytestring zu erzeugen. Wenn beispielsweise das Master-Geheimnis
von einer Länge
von 20 Bytes ist und B gleich 64 ist, dann werden an das Master-Geheimnis
44 Nullen Bytes 0x00 angehängt,
um einen 64-Bytestring zu erzeugen.
Schritt (2): XOR (bitweise
exklusive-OR) des in Schritt (1) errechneten B-Bytestrings mit ipad.
Schritt (3):
Anhängen
der zweiten Eingabe „text" an den sich aus
Schritt (2) ergebenden B-Bytestring.
Schritt (4): Anwenden
des adäquaten
Hash-Algorithmus auf den in Schritt (3) generierten Strom.
Beispielsweise
wird der Strom für
die Funktion HMAC_MD5(secret, text) unter Verwendung des wohlbekannten
MD5-Hash-Algorithmus gehasht.
Schritt (5): XOR (bitweise exclusives-OR)
den in Schritt (1) errechneten B-Bytestring
mit opad.
Schritt (6): Anhängen
des gehashten Ergebnisses aus Schritt (4) an den sich aus
Schritt
(5) ergebenden B-Bytestring.
Schritt (7): Anwenden des adäquaten Hash-Algorithmus
auf den in Schritt (6) erzeugten Strom und Ausgeben des Ergebnisses.
-
Nachdem
HMCA beschrieben wurde, wird eine Datenenrweiterungsfunktion P_hash(secret,
data) definiert. Die Datenerweiterungsfunktion P_hash(secret, data)
verwendet eine einzelne Hash-Funktion, um ein Geheimnis und ein
Seed in eine arbiträre
Ausgabemenge zu erweitern. Diese Funktion wird wie folgt definiert:
P_hash(secret,
seed) =
HMAC_hash(secret, A(1) + seed) +
HMAC_hash(secret,
A(2) + seed) +
HMAC_hash(secret, A(3) + seed) +
usw.,
bis die erwünschte
Ausgabelänge
erreicht ist.
-
In
dieser Definition zeigt das Additionszeichen „+" Konkatenation an. Infolgedessen ist
die Ausgabe der Funktion P_hash(secret, seed) eine Konkatenation
von Ausgaben der Funktion HMAC_hash. In dieser Definition ist A(i)
als gleich HMAC_hash(secret, A(i–l)) definiert, wobei A(0)
dem Seed gleich ist. Wenn beispielsweise P_SHA-1 (unten beschrieben)
verwendet wurde, um 64 Datenbytes zu erzeugen, so würden diese
viermal iteriert werden (durch A(4)), um 80 Bytes Ausgabedaten zu erzeugen.
Die restlichen 16 Bytes der letzten Iteration würden verworfen werden, so dass
64 Bytes Ausgabedaten übrig
bleiben.
-
Die
Pseudozufallsfunktion in dem TLS-Protokoll wird durch das Zerlegen
des Master-Geheimnisses
in zwei Hälften
und das Verwenden der einen Hälfte
(hierin „S1" genannt), um Daten
mit P-MD5 zu erzeugen (d. h. P-hash, wobei HMAC_hash HMAC_MD5 ist)
und Verwenden der anderen Hälfte (hierin „S2" genannt), um Daten
mit P_SHA-1 zu erzeugen (d. h. P_hash, wobei HMAC_hash HMAC_SHA
ist), erzeugt. Die Ergebnisse von P-MD5 und P_SHA werden bitweise
ge-x-odert.
-
S1
und S2 sind die beiden Hälften
des Master-Geheimnisses, und jede hat die gleiche Länge. S1
wird von der ersten Hälfte
des Geheimnisses, S2 von der zweiten Hälfte genommen. Ihre Länge wird durch
Rundung der halben Gesamtlänge
des Geheimnisses berechnet; folglich ist, wenn das ursprüngliche
Geheimnis eine ungerade Anzahl von Bytes lang ist, das letzte Byte
von S1 gleich dem ersten von S2. Wenn beispielsweise L-S die Gesamtlänge des
Geheimnisses in Bytes ist, dann ist die Länge der ersten Hälfte L-S1
gleich der Länge
der zweiten Hälfte
L_S2, die beide gleich L_S/2 aufgerundet sind. S1 wird durch Berücksichtigung
der ersten L-S1-Bytes des Geheimnisses erhalten und S2 wird durch
Berücksichtigung
der letzten L_S2-Bytes des Geheimnisses erhalten.
-
Die
Pseudozufallsfunktion, die in der TLS-Spezifikation beschrieben
ist, empfängt
als Eingaben das Master-Geheimnis, ein Label und ein Seed. Diese
Pseudozufallsfunktion PRF(secret5, label, sed) wird wie folgt definiert.
PRF(secret,
label, seed) =
P_MD5(S1, label + seed)XOR
P_SHA-1(S2,
label + seed).
-
Das
Label ist ein ASCII-String. Er muss in genau dieser Form übernommen
werden, ohne Längenbyte
oder angehängte
Nullzeichen. Das Label "slithy
toves" würde beispielsweise
durch Hashen der folgenden Bytes, hexadezimal dargestellt, verarbeitet werden:
73
6C 69 74 68 79 20 74 6F 76 65 73
-
Man
beachte: Weil MD5 16 Bytes Ausgabe erzeugt und SHA_1 20 Bytes Ausgaben
erzeugt, stimmen die Grenzen der internen Iteration nicht überein.
Um eine 80-Byte-Ausgabe
zu erzeugen, muss P_MD5 bis A(5) iteriert werden, P_SHA-1 jedoch
nur bis A(4) iteriert werden.
-
Oben
wurde eine Pseudozufallsfunktion gemäß dem TLS-Protokoll beschrieben,
die durch das Schlüsselerzeugungsmodul 307 angewendet
werden kann. In einem anderen Beispiel kann das Schlüsselerzeugungsmodul
die Pseudozufallsfunktion, die in dem WTLS-Protokoll beschrieben
ist, anwenden. Das WTLS unterschiedet sich von dem TLS dahingehend,
dass bei dem TLS-Standard zwei Hash-Algorithmen (zum Beispiel MD5
und SHA-1) verwendet wurden, um die Pseudozufallsfunktion so sicher
wie möglich
zu machen. Um Ressourcen einzusparen, verwendet die Pseudozufallsfunktion
des WLS nur einen Hash-Algorithmus, der anfänglich, wenn das Master-Geheimnis
ausgehandelt wird, ausgehandelt wird. Die Pseudozufallsfunktion
PRF des WTLS wird wie folgt definiert:
PRF(secret, label, seed)
= P_hash(secret, label, seed),
wobei das Additionszeichen „+" Konkatenation anzeigt,
wobei
P-hash P-MD5 ist, wenn der MD5-Hash-Algorithmus verwendet wird,
und
wobei P-hash P_SHA-1 ist, wenn der SHA-1-Algorithmus verwendet
wird.
-
Es
ist zu beachten, dass anstelle des Teilens des Master-Geheimnisses
in zwei Hälften
das gesamte Master-Geheimnis in die P-hash-Funktion eingeht.
-
Nachdem
der Schlüssel
erzeugt ist (Schritt 406), wird der erzeugte Schlüsse 308 an
ein Verschlüsselungsmodul 309 bereitgestellt,
das den Schlüssel
verwendet, um den Klartext 203 zu verschlüsseln und
dadurch den Ciphertext 310 zu bilden (Schritt 407).
Die Identifizierung des Verschlüsselungsmoduls
und des Entschlüsselungsmoduls
kann ebenso während
der Anfangssitzung, in der das Master-Geheimnis ausgehandelt wird,
ausgehandelt werden.
-
Als
Nächstes
werden die verschlüsselten Daten
(d. h. der Ciphertext 310) und das Zufalls-Seed 305 in
das verschlüsselte
Datenpaket 204 eingefügt (Schritt 408).
Spezieller wird der Ciphertext 310 als ein Teil eines verschlüsselten
Nutzdatenfeldes 311 eingefügt. Ein sicherer Parameter-Index
(SPI) ist eine Bitfolge von 96 Bit (12 Bytes, die für das zweite Computersystem
unikal ist. Der SPI kann eingefügt werden,
um die Kompatibilität
mit dem ESP-Protokoll (Encapsulation Security Payload Protocol)
des IPSec-Protokolls
(Internet Protocol Security Protocol) sicherzustellen, obgleich
ein solcher Index, wenn andere Datenpaketformate verwendet werden,
nicht erforderlich ist.
-
Anschließend wird
das Datenpaket 204 zu dem zweiten Computersystem übertragen
(Schritt 409), um durch die Entschlüsselungsvorrichtung 202 entschlüsselt zu
werden. Die Funktionen und der Datenfluss der Verschlüsselungsvorrichtung
werden in der 5 schematisch gezeigt, wohingegen
in der 6 ein entsprechendes Ablaufdiagramm, das die Entschlüsselung
beschreibt, dargestellt wird. Beim Beschreiben des Entschlüsselungsvorganges
wird sowohl auf die 5 als auch auf die 6 Bezug genommen.
-
Zuerst
empfängt
die Entschlüsselungsvorrichtung 202 das
verschlüsselte
Datenpaket 204 (Schritt 601) und liest das Klartext-Zufalls-Seed 305 aus
dem Datenpaket 204 (Schritt 602. Sowohl das ausgehandelte
Master-Geheimnis 306 als auch das Zufalls-Seed 305 werden
in das Schlüsselerzeugungsmodul 607 eingegeben
(Schritt 603). Das Schlüsselerzeugungsmodul 607 in
der Entschlüsselungsvorrichtung 202 fürht dann
den selben Schlüsselerzeugungsalgorithmus
aus, der durch das Schlüsselerzeugungsmodul 307 in
der Verschlüsselungsvorrichtung 201 ausgeführt wurde.
Da die Schlüsselerzeugungsfunktion
identisch ist und die Eingaben in diese Funktion identisch mit jenen
sind, die in der Verschlüsselungsvorrichtung 201 verwendet
wurden, erzeugt das Schlüsselerzeugungsmodul 607 dieselbe
Schlüsselbitfolge 308,
die verwendet wurde, um das Datenpaket zu verschlüsseln (Schritt 604).
Der Schlüssel
wird dann an das Entschlüsselungsmodul 609 bereitgestellt.
Da das Entschlüsselungsmodul 609 kryptografisch
symmetrisch mit dem Verschlüsselungsmodul 309 ist,
wird der Schlüssel anschließend verwendet,
um den Ciphertext 310 aus dem Datenpaket 204 zu
entschlüsseln
(Schritt 605), um dadurch den Klartext 203, der
anfänglich
durch die Verschlüsselungsvorrichtung 201 verschlüsselt wurde,
zu regenerieren.
-
Ein
Vorteil der vorliegenden Erfindung ist, dass das Seed, das verwendet
wird, um den Schlüssel
zu erzuegen, eine zufällige
Bitfolge enthält.
Dies macht es für
einen Angreifer schwieriger den Verschlüsselungsschlüssel oder
Master-Geheimnis zu identifizieren, um so zur Entschlüsselung
in der Lage zu sein und die Nachricht abzufangen.
-
In
einem Ausführungsbeispiel
der vorliegenden Erfindung wird für jedes Datenpaket, das von
einem ersten Computersystem zu einem zweiten Computersystem übertragen
wird, eine neu zufällige
Bitfolge erzeugt. Dies bedeutet, dass das Zufalls-Seed und infolgedessen
der Verschlüsselungspaket
für jedes
Datenpaket verschieden sein werden. Infolgedessen ist ein Angreifer,
der einen Verschlüsselungsschlüssel für ein Datenpaket
identifiziert, nicht automatisch in der Lage, weitere Datenpakete
abzufangen, ohne einen weiteren Entschlüsselungsschlüssel zu
brechen. Folglich machen es die Prinzipien der vorliegenden Erfindung
nicht nur schwieriger den Schlüssel
zu brechen, sondern verringern außerdem die Belohnung dafür einen
Schlüssel
gebrochen zu haben.
-
Das
Master-Geheimnis ist schwieriger zu brechen als jeder Einzelschlüssel. Dennoch
könnte der
Angreifer, wenn er irgendwie fähig
wäre, das Master-Geheimnis
zu identifizieren, nur die Datenpakete entschlüsseln, die unter Verwendung
eines Schlüssels
der auf dem Master-Geheimnis basiert verschlüsselt wurden. Um das Risiko
des Schadens durch die Entdeckung des Master-Geheimnisses zu verringern,
können
das erste und das zweite Computersystem anfänglich einen Parameter, der
das Ablaufdatum der gültigen
Lebensdauer des Master-Geheimnisses identifiziert, aushandeln. Sobald
die Lebensdauer des Master-Geheimnisses abgelaufen ist, würden das
erste und das zweite Computersystem dann sicher ein weiteres Master-Geheimnis
neu aushandeln.
-
Die
vorliegende Erfindung kann in anderen speziellen Formen ausgeführt werden.
Die beschriebenen Ausführungsbeispiele
sind in jeder Hinsicht als beispielhaft und nicht als einschränkend zu
betrachten. Der Schutzumfang der vorliegenden Erfindung wird nicht
in der vorstehenden Beschreibung, sondern in den angehängten Patentansprüchen dargestellt.
Der Schutzanspruch umfasst alle Änderungen,
die innerhalb des Begriffsinhalt und innerhalb äquivalenter Bereiche der Patentansprüche liegen.