DE112015002927T5 - Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage - Google Patents

Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage Download PDF

Info

Publication number
DE112015002927T5
DE112015002927T5 DE112015002927.3T DE112015002927T DE112015002927T5 DE 112015002927 T5 DE112015002927 T5 DE 112015002927T5 DE 112015002927 T DE112015002927 T DE 112015002927T DE 112015002927 T5 DE112015002927 T5 DE 112015002927T5
Authority
DE
Germany
Prior art keywords
user
value
server
computer
secret
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.)
Granted
Application number
DE112015002927.3T
Other languages
English (en)
Other versions
DE112015002927B4 (de
Inventor
Anja Lehmann
Gregory Neven
Jan Leonhard Camenisch
Robert R. Enderlein
Stephan Krenn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112015002927T5 publication Critical patent/DE112015002927T5/de
Application granted granted Critical
Publication of DE112015002927B4 publication Critical patent/DE112015002927B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

Bereitgestellt werden Verfahren und Vorrichtungen zum Generieren eines geheimen Chiffrierschlüssels eines Benutzercomputers 3, der sich über ein Netzwerk 4 mit einem Server 2 verbinden lässt. Auf dem Benutzercomputer 3 wird ein geheimer Benutzerwert bereitgestellt. Auf dem Server 2 wird ein geheimer Serverwert mit einem Prüfwert bereitgestellt, der den geheimen Benutzerwert und ein Benutzerkennwort codiert. Als Reaktion auf eine Eingabe eines Eingabekennworts auf dem Benutzercomputer 3 codiert der Benutzercomputer den geheimen Benutzerwert und das Eingabekennwort, um einen ersten Wert zu erzeugen, der dem Prüfwert entspricht, und überträgt den ersten Wert über das Netzwerk 4 an den Server 2. Als Reaktion darauf vergleicht der Server 2 den ersten Wert und den Prüfwert, um zu prüfen, ob das Eingabekennwort gleich dem Benutzerkennwort ist. Wenn dies der Fall ist, codiert der Server 2 den ersten Wert und den geheimen Serverwert, um einen zweiten Wert zu erzeugen, und überträgt den zweiten Wert über das Netzwerk 4 an den Benutzercomputer 3. Als Reaktion darauf generiert der Benutzercomputer den geheimen Chiffrierschlüssel, indem er den zweiten Wert, das Eingabekennwort und den geheimen Benutzerwert codiert.

Description

  • Diese Erfindung bezieht sich im Allgemeinen auf eine Generierung geheimer Chiffrierschlüssel auf Grundlage eines Kennworts. Bereitgestellt werden Verfahren zum Generieren geheimer Chiffrierschlüssel auf Benutzercomputern auf Grundlage einer Eingabe von Benutzerkennwörtern zusammen mit entsprechenden Vorrichtungen und Computerprogrammen sowie Schlüsselverwaltungsanwendungen, die solche Verfahren einsetzen.
  • Chiffrierschlüssel werden für eine Vielfalt von Zwecken auf persönlichen Benutzereinheiten wie z. B. Personal Computern, Smartphones, Tablets und anderen Computereinheiten verwendet. Derartige Schlüssel können zum Beispiel verwendet werden, um Nachrichten zu unterzeichnen, um den Benutzercomputer gegenüber anderen Einheiten auf seine Berechtigung zu prüfen oder um auf dem Computer gespeicherte sensible Daten zu verschlüsseln bzw. zu entschlüsseln. Der Chiffrierschlüssel darf oft nur dem Benutzercomputer bekannt sein, so dass der Schlüssel nicht mit einem wie auch immer gearteten anderen Computer gemeinsam genutzt wird, der mit dem Benutzercomputer Daten austauscht. Eine sichere Verwaltung solcher geheimer Schlüssel ist schwierig. Der Schlüssel sollte für die erforderliche Verwendung leicht verfügbar, zugleich jedoch gegen unberechtigten Zugriff, z. B. bei Verlust oder Diebstahl des Benutzercomputers, geschützt sein. Da von Benutzern nicht erwartet werden kann, dass sie sich Chiffrierschlüssel merken, kann eine Verwendung eines geheimen, auf einem Benutzercomputer gespeicherten Schlüssels die Eingabe eines gültigen Benutzerkennworts durch den Benutzer erfordern. Allerdings sind typische Benutzerkennwörter kryptographisch schwach und können von einem Dieb anhand eines effizienten Offline-Brute-Force-Angriffs leicht erraten werden. Außerdem verwendet ein Benutzer oft dasselbe oder ein ähnliches Kennwort für andere Zwecke wie beispielsweise für Firmen-eMails, so dass ein Kompromittieren seines Kennworts in anderen Zusammenhängen die Sicherheit geheimer Schlüssel beeinträchtigen kann.
  • Für eine sichere Verwaltung geheimer Schlüssel wurde die Verwendung von vertrauenswürdigen Hardware-Einheiten wie z. B. Smartcards oder TPM-Chips (Trusted Platform Module) vorgeschlagen. Solche Einheiten sind jedoch nicht immer verfügbar, und ihre Verwendung erhöht Kosten und Systemkomplexität. Andere Ansätze beinhalten eine dynamische Generierung des Schlüssels auf dem Benutzercomputer über eine Datenübertragung mit einem oder mehreren Servern über ein Netzwerk. Das Problem des Erhaltens eines (starken) Chiffrierschlüssels aus einem (schwachen) Kennwort mit Hilfe eines oder mehrerer Server ist in der Kryptographie hinreichend bekannt, z. B. in Zusammenhang mit Schlüsselaustausch-Schemata. Schlüsselaustausch-Schemata, bei denen ein Benutzer auf Grundlage eines schwachen Kennworts gegenüber einem Server auf seine Berechtigung geprüft wird und bei denen anschließend ein gemeinsam genutzter Chiffrierschlüssel erhalten wird, werden erörtert in: „Efficient Password-Authenticated Key Exchange Using Human-Memorable Passwords”, Katz et al., EUROCRYPT 2001; und „Universally Composable Password-Based Key Exchange”, Canetti et al., EUROCRYPT 2005. Bei diesen Schemata wird der resultierende Schlüssel sowohl durch den Benutzercomputer als auch durch den Server gemeinsam genutzt, und wenn der Server kompromittiert wird, ist das Kennwort des Benutzers für einen Offline-Brute-Force-Angriff anfällig.
  • Weitere Ansätze haben das oben erwähnte Problem durch die Verwendung einer Mehrzahl von Servern gelöst, die alle kompromittiert sein müssen, bevor ein Angreifer einen Offline-Brute-Force-Angriff gegen den Server starten kann. Beispiele werden beschrieben in: „Two-Server Password-Only Authenticated Key Exchange”, Katz et al., Applied Cryptography and Network Security 2005; und „Practical yet universally composable two-server password-authenticated secret sharing”, Camenisch et al., ACM CCS 2012, wobei der Benutzer selbst einen starken Chiffrierschlüssel wählt, den er mit Hilfe seines Kennworts von zwei Servern abrufen kann. Beide Server müssen kompromittiert sein, bevor das Kennwort des Benutzers offenliegt. Auch US-Patentschrift 6 829 356 B1 offenbart ein Client-Server-System zum Generieren eines starken Schlüssels wie z. B. eines Chiffrierschlüssels aus einem Benutzerkennwort und eines ephemeren Clientschlüssels mittels einer Interaktion zwischen dem Client und einer Mehrzahl von Servern. Dazu zählen geheime Schlüssel enthaltende Server, die entsprechende Schlüssel enthalten, welche zum Generieren des Schlüssels dienen, sowie Überprüfungsserver, denen der Client anschließend die erfolgreiche Generierung des Schlüssels nachweist. US Patentschrift 7 359 507 B2 beschreibt des Weiteren Variationen des oben genannten Schemas unter Verwendung rechenintensiver Ganzzahl-Arithmetik.
  • Verbesserte Schemata zur Generierung von Chiffrierschlüsseln auf Kennwortgrundlage wären äußerst wünschenswert.
  • Eine Ausführungsform eines Aspekts der vorliegenden Erfindung stellt ein Verfahren zum Generieren eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer bereit, der sich über ein Netzwerk mit einem Server verbinden lässt. Das Verfahren weist auf:
    Bereitstellen eines geheimen Benutzerwerts auf dem Benutzercomputer;
    Bereitstellen eines geheimen Serverwerts und eines Prüfwerts, der den geheimen Benutzerwert und ein Benutzerkennwort codiert, auf dem Server;
    auf dem Benutzercomputer als Reaktion auf eine Eingabe eines Eingabekennworts Codieren des geheimen Benutzerwerts und des Eingabekennworts, um einen ersten Wert zu erzeugen, der dem Prüfwert entspricht, und Übertragen des ersten Werts über das Netzwerk an den Server;
    auf dem Server als Reaktion auf die Übertragung des ersten Werts Vergleichen des ersten Werts und des Prüfwerts, um zu prüfen, ob das Eingabekennwort gleich dem Benutzerkennwort ist, und wenn dies der Fall ist, Codieren des ersten Werts und des geheimen Serverwerts, um einen zweiten Wert zu erzeugen und den zweiten Wert über das Netzwerk an den Benutzercomputer zu übertragen; und
    auf dem Benutzercomputer als Reaktion auf die Übertragung des zweiten Werts Generieren des geheimen Chiffrierschlüssels durch Codieren des zweiten Werts, des Eingabekennworts und des geheimen Benutzerwerts.
  • Verfahren, welche die Erfindung enthalten, können mittels einer Interaktion mit einem einzigen Server eine sichere Generierung eines geheimen Schlüssels eines Benutzercomputers auf Kennwortgrundlage bereitstellen. Der Schlüssel kann bei Eingabe eines gültigen Kennworts wann immer erforderlich generiert werden. Der Server kann prüfen, ob das Eingabekennwort korrekt ist, und sendet dem Benutzercomputer nur dann die für eine Schlüsselgenerierung notwendigen Daten, wenn dies der Fall ist. Weder das Benutzerkennwort noch der Schlüssel sind dem Server jemals bekannt. Mit den verschiedenen Werten, die bei der Durchführung des Protokolls verwendet werden, lässt sich der Schlüssel auf eine Art und Weise effizient generieren, die gegen Offline-Angriffe zum Erraten von Kennwörtern geschützt ist, falls entweder der Server oder der Benutzercomputer kompromittiert ist. Darüber hinaus können die Erfindung enthaltende Verfahren mittels einfacher, wenig aufwändiger Rechenoperationen realisiert werden. Ausführungsformen der Erfindung bieten somit elegante und überaus praktische Systeme für eine sichere Generierung geheimer Schlüssel.
  • Der geheime Benutzerwert und der geheime Serverwert können Zufallswerte oder wie auch immer geartete (vorzugsweise kryptographisch starke) Schlüssel aufweisen, die nur dem Benutzercomputer bzw. dem Server bekannt sind. Diese geheimen Werte können als ein Ergebnis eines Vorabspeicherns im Arbeitsspeicher ihrer betreffenden Einheiten bereitgestellt werden, oder sie können über Schritte aktiv bereitgestellt werden, die in bevorzugten, die Erfindung enthaltenden Verfahren durchgeführt werden, z. B. während einer Einrichtungsprozedur. Insbesondere beinhalten die bevorzugten Verfahren in einer Einrichtungsprozedur und vor einem Erzeugen des Schlüssels:
    auf dem Benutzercomputer als Reaktion auf eine Eingabe des Benutzerkennworts Codieren des geheimen Benutzerwerts und des Benutzerkennworts, um den Prüfwert zu erzeugen, und Übertragen des Prüfwerts über das Netzwerk an den Server; und
    auf dem Server Speichern des empfangenen Prüfwerts.
  • Die Einrichtungsprozedur kann praktischerweise beinhalten, den geheimen Benutzerwert auf dem Benutzercomputer zu generieren und zu speichern und den geheimen Serverwert auf dem Server zu generieren und zu speichern. Eine solche Benutzerprozedur kann unabhängige Einrichtungsoperationen für den Server und den Benutzercomputer aufweisen. Die Einrichtungsprozedur kann außerdem eine erstmalige Generierung des Schlüssels beinhalten. Im Besonderen kann die Einrichtungsprozedur beinhalten:
    auf dem Server Codieren des empfangenen Prüfwerts und des geheimen Serverwerts, um den zweiten Wert zu erzeugen, und Übertragen des zweiten Werts über das Netzwerk an den Benutzercomputer; und
    auf dem Benutzercomputer als Reaktion auf die Übertragung des zweiten Werts erstmaliges Erzeugen des ersten Chiffrierschlüssels durch Codieren des zweiten Werts, des Benutzerkennworts und des geheimen Benutzerwerts, Verwenden des Schlüssels in einer Verschlüsselungsoperation und Löschen des Benutzerkennworts, des Prüfwerts, des zweiten Werts und des Schlüssels nach der Verwendung.
  • Die erste Verwendung des Schlüssels in der Einrichtungsprozedur kann daraufhin den Schlüssel definieren, der für eine Verwendung in anschließenden Verschlüsselungsoperationen benötigt wird, z. B. zum Entschlüsseln eines Datenträgers, der unter Verwendung des in der Einrichtungsprozedur generierten Schlüssels verschlüsselt wurde. Der Schlüssel kann durch den Benutzer bei Bedarf neu generiert werden, ohne dass hierfür Daten gespeichert werden müssen, mit denen ein Angreifer durch eine unberechtigte Verwendung des Benutzercomputers den Schlüssel oder das Kennwort erhalten könnte.
  • Bevorzugte Verfahren können des Weiteren beinhalten:
    Bereitstellen eines Benutzerbezeichners auf dem Computer zum eindeutigen Identifizieren des Benutzercomputers gegenüber dem Server;
    auf dem Server Bereitstellen des Benutzerbezeichners mit dem Prüfwert für den Benutzercomputer; und
    auf dem Benutzercomputer Übertragen des Benutzerbezeichners mit dem ersten Wert an den Server.
  • Ein derartiger Benutzerbezeichner kann im Allgemeinen ein oder mehrere Elemente aufweisen. Für eine einfache Realisierung und bessere Sicherheit kann der Benutzerbezeichner auch in Codierprozessen verwendet werden, die bei der Schlüsselerzeugungsoperation durchgeführt werden. Bevorzugte Verfahren können daher beinhalten: auf dem Benutzercomputer Codieren des Benutzerbezeichners in mindestens dem ersten Wert oder dem Chiffrierschlüssel und vorzugsweise in beiden; und/oder auf dem Server Codieren des Benutzerbezeichners in dem zweiten Wert. Im Besonderen können bevorzugte Verfahren auch beinhalten:
    auf dem Server Bereitstellen eines Serverbezeichners zum eindeutigen Identifizieren des Servers gegenüber dem Benutzercomputer;
    auf dem Benutzercomputer Abrufen des Serverbezeichners und Codieren des Serverbezeichners in dem ersten Wert;
    auf dem Server Codieren des Serverbezeichners in dem zweiten Wert; und
    auf dem Benutzercomputer Codieren des Serverbezeichners in dem Chiffrierschlüssel.
  • In bevorzugten Ausführungsformen enthalten somit die verschiedenen, für eine Realisierung des Protokolls übertragenen Werte Daten, die das Computer-Server-Paar eindeutig identifizieren. Der Benutzercomputer kann den Serverbezeichner abrufen, indem er diesen Bezeichner von einer beliebigen geeigneten Stelle erhält. Je nach Realisierung kann der Serverbezeichner zum Beispiel dynamisch von dem Server erhalten werden oder auf dem Benutzercomputer vorab gespeichert werden.
  • Für eine sichere Schlüsselverwaltung bei typischen Anwendungen können der Schlüssel und die sensiblen Protokolldaten nach der Verwendung gelöscht werden, da der Schlüssel neu generiert werden kann, wann immer der berechtigte Benutzer dies benötigt. Somit stellt eine Ausführungsform eines zweiten Aspekts der Erfindung ein Verfahren zum Verwalten eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer bereit, der sich über ein Netzwerk mit einem Server verbinden lässt. Das Verfahren kann aufweisen: Erzeugen des geheimen Chiffrierschlüssels durch ein Verfahren gemäß dem ersten Aspekt der Erfindung; und auf dem Computer Verwenden des geheimen Chiffrierschlüssels in einer Verschlüsselungsoperation sowie Löschen des Eingabekennworts, des ersten Werts, des zweiten Werts und des Schlüssels nach der Verwendung. Der Schlüssel kann zum Beispiel zum Entschlüsseln von Daten verwendet werden, die zuvor unter Verwendung des Schlüssels auf dem Benutzercomputer verschlüsselt wurden.
  • Eine Ausführungsform eines dritten Aspekts der Erfindung stellt ein Verfahren zum Verschlüsseln und Entschlüsseln von Daten unter Verwendung eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer bereit, der sich über ein Netzwerk mit einem Server verbinden lässt. Das Verfahren kann aufweisen:
    Erzeugen des geheimen Chiffrierschlüssels durch ein Verfahren gemäß dem ersten Aspekt der Erfindung, wobei der Schlüssel erstmals während einer Einrichtungsprozedur generiert wird, wie sie oben beschrieben wird;
    beim erstmaligen Erzeugen des Schlüssels auf dem Benutzercomputer Verwenden des Schlüssels zum Verschlüsseln von auf dem Benutzercomputer gespeicherten Daten; und
    beim Erzeugen des Schlüssels auf dem Benutzercomputer nach dem ersten Mal Verwenden des Schlüssels zum Entschlüsseln der auf dem Benutzercomputer gespeicherten Daten.
  • Eine Ausführungsform eines vierten Aspekts der Erfindung stellt einen Benutzercomputer zum Austauschen von Daten mit einem Server über ein Netzwerk bereit, um einen geheimen Chiffrierschlüssel des Benutzercomputers zu generieren, wobei der Server einen geheimen Serverwert und einen Prüfwert speichert, der einen geheimen Benutzerwert des Benutzercomputers und ein Benutzerkennwort codiert. Der Benutzercomputer kann einen Arbeitsspeicher zum Speichern des geheimen Benutzerwerts, eine Benutzeroberfläche, eine Datenübertragungsschnittstelle zum Austauschen von Daten mit dem Server über das Netzwerk und Steuerlogik aufweisen, die so gestaltet ist, dass sie:
    als Reaktion auf eine Eingabe über die Benutzeroberfläche den geheimen Benutzerwert und das Eingabekennwort codiert, um einen ersten Wert zu erzeugen, der dem Prüfwert entspricht, und den ersten Wert über die Datenübertragungsschnittstelle an den Server überträgt; und
    als Reaktion auf die Übertragung eines zweiten Werts, der durch Codieren des ersten Werts und des geheimen Serverwerts erzeugt wurde, durch den Server den geheimen Chiffrierschlüssel generiert, indem sie den zweiten Wert, das Eingabekennwort und den geheimen Benutzerwert codiert.
    eine Ausführungsform eines fünften Aspekts der Erfindung stellt einen Server zur Verwendung beim Erzeugen eines geheimen Chiffrierschlüssels eines Benutzercomputers bereit, der einen geheimen Benutzerwert speichert und sich über ein Netzwerk mit dem Server verbinden lässt. Der Server kann aufweisen:
    einen Arbeitsspeicher zum Speichern eines geheimen Serverwerts und eines Prüfwerts, der den geheimen Benutzerwert und ein Benutzerkennwort codiert;
    eine Datenübertragungsschnittstelle zum Austauschen von Daten mit dem Benutzercomputer über das Netzwerk; und
    Steuerlogik, die so gestaltet ist, dass sie als Reaktion auf einen Empfang eines erstens Werts, der dem Prüfwert entspricht und den geheimen Benutzerwert und ein Eingabekennwort codiert, von dem Benutzercomputer den ersten Wert und den Prüfwert vergleicht, um zu prüfen, ob das Eingabekennwort gleich dem Benutzerkennwort ist, und wenn dies der Fall ist, den ersten Wert und den geheimen Serverwert codiert, um einen zweiten Wert zu erzeugen, und den zweiten Wert über die Datenübertragungsschnittstelle an den Benutzercomputer überträgt.
  • Die Erfindung stellt des Weiteren ein System bereit, das einen Benutzercomputer gemäß Ausführungsformen des vierten Aspekts der Erfindung und einen Server gemäß Ausführungsformen des fünften Aspekts der Erfindung aufweist.
  • Weitere Aspekte der Erfindung stellen ein Computerprogramm und Computerprogrammprodukt bereit.
  • Sofern Merkmale hier mit Bezug auf eine Ausführungsform der Erfindung beschrieben sind, können entsprechende Merkmale gegebenenfalls auch in Ausführungsformen eines weiteren Aspekts der Erfindung bereitgestellt werden.
  • Im Folgenden werden beispielhafte und mit Blick auf die beigefügten Zeichnungen bevorzugte Ausführungsformen der Erfindung beschrieben, wobei:
  • 1 eine schematische Darstellung eines Datenverarbeitungssystems zum Realisieren eines Schlüsselgenerierungsverfahrens ist, das die Erfindung enthält;
  • die 2 und 3 Schritte angeben, die bei der Realisierung des Schlüsselgenerierungsverfahrens durchgeführt werden;
  • die 4a und 4b betreffende Einrichtungsoperationen für einen Server und einen Benutzercomputer des Systems aus 1 in einer bevorzugten Ausführungsform des Schlüsselgenerierungsverfahrens nennen; und
  • 5 eine Schlüsselgenerierungsoperation mit dem bevorzugten Verfahren angibt.
  • 1 zeigt ein beispielhaftes Datenverarbeitungssystem 1 zum Realisieren eines Schlüsselgenerierungsschemas, das die Erfindung enthält. Das System 1 weist einen Server 2 und einen Benutzercomputer 3 auf, die für einen Datenaustausch über ein Datenübertragungsnetzwerk 4 gestaltet sind. Das Netzwerk 4 kann im Allgemeinen ein oder mehrere Komponentennetzwerke oder Verbundnetzwerke wie z. B. das Internet aufweisen. In diesem Beispiel ist der Benutzercomputer 3 durch einen Universal-PC (Personal Computer) realisiert, und der Server 2 ist als ein Universalcomputer ausgeführt, der eine Serverfunktionalität für einen Datenaustausch mit entfernt angeordneten Computern über das Netzwerk 4 realisiert. Der Benutzer-PC 3 wird hier einfach so gezeigt, dass er eine Datenübertragungsschnittstelle 5 zum Austauschen von Daten mit dem Server 2 über das Netzwerk 4, eine Schlüsselgeneratorlogik 6 zum Bereitstellen einer Funktionalität zur Verwendung bei dem zu beschreibenden Schlüsselgenerierungsschema, eine Benutzerschnittstelle 7 für Dateneingabe-/Datenausgabe-Interaktionen mit dem PC-Benutzer und einen Arbeitsspeicher 8 aufweist. Der Arbeitsspeicher 8 speichert Daten, die durch die Schlüsselgeneratorlogik 6 bei der Durchführung des Schlüsselgenerierungsschemas verwendet werden. Hierzu zählt ein als Benutzerschlüssel S bezeichneter geheimer Benutzerwert, der nur dem Benutzer-PC 3 bekannt ist. Der abgebildete Server 2 weist eine Datenübertragungsschnittstelle 9, eine Serverlogik 10, die eine Funktionalität zur Verwendung bei dem weiter unten näher erläuterten Schlüsselgenerierungsschema bereitstellt, und einen Arbeitsspeicher 11 auf, der Daten speichert, die von der Logik 10 während der Durchführung verwendet werden. Dazu zählen ein als Serverschlüssel SK bezeichneter geheimer Serverschlüssel, der nur dem Server 2 bekannt ist, und ein weiter unten ausführlicher beschriebener Prüfwert VC.
  • Die Schlüsselgenerierungslogik 6 und die Serverlogik 10 könnten generell in Hardware, in Software oder in einer Kombination hiervon realisiert werden. In diesem Beispiel ist die Schlüsselgenerierungslogik 6 praktischerweise durch Software realisiert, die auf dem Benutzercomputer 3 läuft, um den Computer zur Durchführung der weiter unten näher erläuterten Funktionen zu veranlassen. Entsprechend ist die Serverlogik 10 praktischerweise durch Software realisiert, um den Computer 2 so zu steuern, dass er die beschriebene Funktionalität realisiert.
  • Das durch das System 1 realisierte Schlüsselgenerierungsverfahren ermöglicht dem Benutzer-PC 3, im Zusammenwirken mit dem Server 2 einen (starken) Chiffrierschlüssel K zu generieren, der nur dem Benutzer-PC bekannt ist. Zur erfolgreichen Generierung des Schlüssels K ist die Eingabe eines (schwachen) Benutzerkennworts P an dem Benutzercomputer 3 durch den Benutzer erforderlich.
  • Der Schlüssel kann nur generiert werden, wenn der Server 2 überprüft hat, dass das Benutzerkennwort korrekt ist.
  • Die 2 und 3 geben einen Überblick über das Schlüsselgenerierungsschema in Gestalt von entsprechenden Ablaufplänen, welche die wichtigsten Schritte angeben, die bei der Durchführung des Schemas stattfinden. 2 gibt die Schritte an, die bei einer Einrichtungsprozedur durchgeführt werden, und 3 gibt die Schritte des anschließenden Verfahrens zur Schlüsselgenerierung an. Mit Blick auf 2 werden nach Beginn der Einrichtungsprozedur, wie in Schritt 20 angegeben, zunächst der Benutzerschlüssel S und der Serverschlüssel SK generiert und durch den Benutzer-PC bzw. Server gespeichert. Dieser durch Schritt 21 dargestellte Prozess kann durch eine Zufallserzeugung von kryptographisch starken Werten in der Logik 6 bzw. 10 erfolgen, d. h. von Werten mit einer ausreichenden Entropie (genügend kryptographisch zufälligen Bits), um es einem Angreifer unmöglich zu machen, die Werte zu erraten. Wie in Schritt 22 angegeben, wird danach durch den Benutzer über die Benutzerschnittstelle 7 des PCs 3 ein Benutzerkennwort P eingegeben und durch die Schlüsselgeneratorlogik 6 empfangen. Als Reaktion darauf codiert die Logik 6 (mindestens) den Benutzerschlüssel S und das Benutzerkennwort P, um einen Prüfwert VC zu erzeugen. Der Prüfwert kann anhand eines beliebigen Algorithmus generiert werden, wobei konkrete Beispiele weiter unten genannt werden. In Schritt 24 wird der Prüfwert VC über die Schnittstelle 5 und das Netzwerk 4 an den Server 2 übertragen. (Wenn ein Wert wie hier beschrieben an eine Einheit übertragen wird, kann der Wert generell als solcher gesendet werden (im Interesse der Sicherheit während der Übertragung vorzugsweise nach einer Verschlüsselung), oder er kann in eine andere Funktion eingebettet werden, so dass der Wert durch die empfangende Einheit abgeleitet werden kann.) Der Prüfwert VC wird über die Schnittstelle 9 von der Serverlogik 10 empfangen, und in Schritt 25 wird der Prüfwert für den Benutzer-PC 3 in dem Serverarbeitsspeicher 11 gespeichert. Hiermit sind die für die anschließende Schlüsselgenerierung notwendigen Einrichtungsschritte abgeschlossen. Bei manchen Anwendungen kann die Einrichtungsprozedur allerdings ein erstmaliges Erzeugen und Verwenden des Schlüssels K beinhalten. Ein konkretes Beispiel wird weiter unten beschrieben. Wie durch dieses Beispiel veranschaulicht wird, kann darüber hinaus die Einrichtungsprozedur aus 2 in der Praxis mittels unabhängiger Einrichtungsoperationen für den Server 2 und den Benutzer-PC 3 realisiert werden.
  • Mit Blick auf 3 gibt der Benutzer zu Beginn der Schlüsselgenerierungsoperation, wie in Schritt 30 angegeben, in Schritt 31 am Benutzer-PC 3 einen Kennwortversuch P' ein. Als Reaktion auf das Eingabekennwort P' codiert die Logik 6 in Schritt 32 das Eingabekennwort P' und den Benutzerschlüssel S aus dem Arbeitsspeicher 8, um einen ersten Wert V1 zu erzeugen, der dem Prüfwert VC entspricht. Der erste Wert V1 wird hier auf dieselbe Art und Weise wie der Prüfwert VC unter Verwendung desselben Codieralgorithmus erzeugt, verwendet jedoch anstelle des Benutzerkennworts P, das für die Einrichtungsprozedur eingegeben wurde, das Eingabekennwort P'. In Schritt 33 wird der erste Wert V1 über das Netzwerk 4 an den Server 2 übertragen. Nach dem Empfang von V1 vergleicht die Serverlogik 10 in Schritt 34 den ersten Wert V1 und den im Arbeitsspeicher 11 gespeicherten Prüfwert VC, um zu prüfen, ob das Eingabekennwort P' gleich dem Benutzerkennwort P ist. Wenn das Eingabekennwort hier korrekt ist, sind im Besonderen die beiden Werte V1 und VC identisch. Wenn das Eingabekennwort P' inkorrekt ist (dargestellt durch „Nein” (N) in Entscheidungsblock 35), bricht die Serverlogik das Schlüsselgenerierungsprotokoll ab, wie in Schritt 36 angegeben, und der Prozess wird beendet. Wenn das Eingabekennwort jedoch korrekt ist („Ja” (J) in Entscheidungsblock 35), codiert die Serverlogik 10 (mindestens) den ersten Wert V1 (der hier mit VC identisch ist) und den vorab in dem Arbeitsspeicher 11 gespeicherten Serverschlüssel SK, um in Schritt 37 einen zweiten Wert V2 zu erzeugen. Wie zuvor, kann auch hier jeder beliebige Codieralgorithmus verwendet werden, wobei bevorzugte Beispiele weiter unten genannt werden. In Schritt 38 wird der zweite Wert V2 über das Netzwerk 4 an den Benutzer-PC 3 übertragen. Nach dem Empfang von V2 generiert die Schlüsselgeneratorlogik in Schritt 39 den geheimen Chiffrierschlüssel K, indem sie (mindestens) den zweiten Wert V2, das Eingabekennwort P' und den in dem Arbeitsspeicher 8 gespeicherten Benutzerschlüssel S codiert. Auch hierfür werden weiter unten Beispiele für bevorzugte Algorithmen genannt. Danach ist der Prozess zur Schlüsselgenerierung abgeschlossen. Der Schlüssel K kann wie erforderlich auf dem Benutzer-PC 3 verwendet und nach der Verwendung gelöscht werden, um den Schlüssel gegen Diebstahl oder unberechtigte Verwendung des PCs 3 zu schützen. Die Steuerlogik 8 löscht zudem das Eingabekennwort P', den ersten Wert und den zweiten Wert V2, so dass nur die Daten auf dem PC 3 gespeichert werden, die für eine berechtigte Schlüsselgenerierung durch den Kennwortinhaber benötigt werden.
  • Im Folgenden wird eine bevorzugte Realisierung des oben beschriebenen Schemas ausführlicher beschrieben. In diesem Beispiel wird das Schlüsselgenerierungsschema bei einer Anwendung zur Datenträgerverschlüsselung bzw. -entschlüsselung verwendet, bei welcher der Schlüssel K ein Chiffrierschlüssel ist. Das Protokoll beinhaltet im Allgemeinen eine Einrichtungsprozedur und eine Schlüsselgenerierungsprozedur wie oben beschrieben, wobei die Einrichtungsprozedur hier jedoch mittels unabhängiger Teilprotokolle für eine Einrichtung des Servers und des Benutzer-PCs realisiert wird. Das Teilprotokoll zur Servereinrichtung, bei dem der Server 2 sein kryptographisches Material generiert, ist in 4a schematisch dargestellt. Das Teilprotokoll zur Einrichtung der Einheit, bei dem sich der Benutzer-PC 3 bei dem Server registriert und zuerst den Schlüssel K generiert, ist in 4b schematisch dargestellt. 5 ist eine schematische Darstellung der anschließenden Schlüsselgenerierung oder des Abruf-Teilprotokolls, bei dem der Schlüssel K mit Hilfe des Servers durch den Benutzercomputer neu generiert wird. Für eine erhöhte Sicherheit bei dieser Ausführungsform finden alle Protokollübertragungen zwischen dem Benutzer-PC 3 und dem Server 2 über einen vorwärtssicheren Kanal C mit den folgenden Eigenschaften statt:
    • – der Kanal wird über eine Datenübertragungsverbindung betrieben;
    • – der Kanal ermöglicht einer ersten Partei, eine Bitfolge mit einer willkürlichen Länge an eine zweite Partei zu senden, und der zweiten Partei, mit einer Bitfolge mit einer willkürlichen Länge zu antworten;
    • – die zweite Partei wird gegenüber der ersten Partei auf ihre Berechtigung geprüft;
    • – die Bitfolgen werden vertraulich gesendet und vor einer Änderung durch eine dritte Partei geschützt;
    • – die Vertraulichkeit der gesendeten Bitfolgen wird nicht kompromittiert, wenn eine oder beide Parteien kompromittiert werden, nachdem der Kanal abgebaut wurde.
  • Diese Eigenschaften von Kanal C lassen sich auf eine hinlängliche bekannte Art erreichen, z. B. anhand des SSL-Protokolls (Secure Sockets Layer) oder TLS-Protokolls (Transport Layer Security). In einem weiteren Beispiel könnten beide Parteien einen gemeinsam genutzten, geheimen Schlüssel aufweisen, mit dem sie einen Diffie-Hellman-Schlüsselaustausch auf seine Berechtigung prüfen. Der aus dem Schlüsselaustauschprotokoll resultierende Schlüssel kann dann als der Sitzungsschlüssel für den Kanal verwendet werden. In dem folgenden Beispiel besitzt die zweite Partei (Server 2) jedoch ein Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle (Certification Authority, CA) unterzeichnet wurde, und der Kanal C wird mit dem TLS-Protokoll über das Internet realisiert.
  • Servereinrichtung
  • 4a veranschaulicht die Einrichtungsoperation für den Server 2 mit Blick auf die Interaktion zwischen dem Server und der Zertifizierungsstelle CA, deren jeweilige Operationen in der linken bzw. rechten Spalte der Figur dargestellt sind. Der Server führt das Teilprotokoll ein Mal durch. In Schritt (a) wählt die Serverlogik 10 einen eindeutigen Serverbezeichner SID aus, um den Server 2 gegenüber den Benutzercomputern, denen er die Schlüsselgenerierung bereitstellt, eindeutig zu identifizieren. Zusätzlich wählt die Serverlogik einen zufälligen Serverschlüssel (Serverschlüssel SK) aus, der mindestens eine Entropie von η Bit beinhaltet, wobei η ein Sicherheitsparameter ist, der nach Wunsch gesetzt werden kann. In diesem konkreten Beispiel ist η = 128. In Schritt (b) generiert die Serverlogik 10 Schlüsselmaterial, mit dem vorwärtssichere Kanäle aufgebaut werden können. Hier weist dies einen öffentlichen Anteil SC und einen privaten Anteil SP (privater Schlüssel) auf, wobei der öffentliche Anteil SC durch die Interaktion mit der Zertifizierungsstelle CA generiert wird und ein Zertifikat in einem öffentlichen Schlüssel aufweist, der einem privaten Schlüssel SP entspricht. In Schritt (c) speichert der Server SK, SID, SC und SP in seinem internen Speicher 11. In Schritt (d) veröffentlicht der Server das Zertifikat SC zusammen mit seinem Serverbezeichner SID, wodurch (SID, SC) den mit dem Netzwerk 4 verbundenen Computern verfügbar gemacht wird.
  • Einrichtung der Einheit
  • 4b veranschaulicht die Einrichtungsoperation für den Benutzer-PC 3 mit Blick auf die Interaktion zwischen dem Benutzer, dem Benutzer-PC 3 und dem Server 2, deren jeweilige Operationen in der linken bzw. rechten Spalte der Figur dargestellt sind. Der Benutzer-PC 3 führt dieses Teilprotokoll ein Mal aus, nachdem der Server 2 die oben beschriebene Servereinrichtung abgeschlossen hat. In Schritt (a) wählt die Schlüsselgeneratorlogik 6 einen geheimen Zufallswert (Benutzerschlüssel S) aus, der eine Entropie von mindestens η Bit aufweist. Die Logik 6 generiert außerdem Identitätsdaten, die einen eindeutigen Benutzerbezeichner UID aufweisen, um den Benutzer-PC gegenüber dem Server 2 eindeutig zu identifizieren. Hier beinhalten die Identitätsdaten des Weiteren einen Authentifikator UA. Der Wert UA ist vorzugsweise ein kryptographisch starker Wert und kann aus einem zufällig gewählten Wert mit einer Entropie von mindestens η Bit bestehen. In einem weiteren Beispiel könnte UA durch ein Hashing des Benutzerschlüssels S mit einer kollisionssicheren Hash-Funktion generiert werden. Durch die Bereitstellung sowohl von UID als auch von UA in diesem Beispiel kann UID als einer komfortabler (schwacher) Wert wie beispielsweise ein Benutzername oder eine eMail-Adresse ausgewählt werden, während UA einen kryptographisch starken Wert bereitstellt, der dazu verwendet wird, den Benutzer-PC in anschließenden Protokollschritten gegenüber dem Server sicher zu identifizieren.
  • In Schritt (b) aus 4b ruft der Benutzer-PC 3 den Serverbezeichner SID und das Serverzertifikat SC für den Server 2 ab. Diese Daten können zum Beispiel von dem Server 2 erhalten werden, oder sie können nach der Veröffentlichung während der Servereinrichtung auf dem Benutzer-PC 3 vorab gespeichert werden. Im Zuge dieses Prozesses wird das öffentliche Zertifikat SC auf bekannte Art und Weise durch die Logik 6 auf seine Berechtigung geprüft (üblicherweise unter Verwendung eines öffentlichen Schlüssels der Zertifizierungsstelle CA). Als Nächstes fordert die Logik in Schritt (c) den Benutzer zur Eingabe eines Kennworts auf, woraufhin der Benutzer das Benutzerkennwort P eingibt. In Schritt (d) generiert die Logik 6 dann den Prüfwert VC, indem sie eine Bitfolge hasht, die den Benutzerschlüssel S, das Kennwort P und Daten aufweist, die das PC-Server-Paar eindeutig identifizieren, in diesem Fall das Triplet (UID, SID, SC). In diesem Beispiel wird der erste Wert V1 wie folgt generiert:
    VC ← H(0x01, S, P, UID, SID, SC)
    wobei: H eine kollisionssichere Hash-Funktion wie z. B. die Hash-Funktion SHA-256 ist; und
    der Hexadezimalwert 0x01 (und entsprechende Werte in unten genannten Funktionen) sicherstellt, dass Eindeutigkeit darüber besteht, auf welchen Schritt des Protokolls sich die zu hashende Bitfolge bezieht.
  • In Schritt (e) aus 4b richten die Einheit und der Server einen vorwärtssicheren Kanal C ein, der aus dem Serverzertifikat SC erhalten wird, wobei der Server seine gespeicherten Werte SK, SID, SC und SP während dieses Vorgangs aus dem Arbeitsspeicher 11 abruft. In Schritt (f) sendet der Benutzer-PC die Identitätsdaten UID, UA mit dem Prüfwert VC über den Kanal C an den Server 2. Nach dem Empfang prüft die Serverlogik 10 in Schritt (g), dass der Benutzerbezeichner UID eindeutig ist, d. h. dass sie UID noch nicht kennt. Wenn UID nicht eindeutig ist, löscht die Serverlogik alle Daten, die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 11 gespeichert werden müssen (d. h. alle Daten mit Ausnahme von SK, SID, SC und SP), und bricht das Protokoll ab. In diesem Fall kann eine geeignete Fehlermeldung an den PC 3 gesendet werden. Wenn UID eindeutig ist, speichert der Server das Triplet (UID, UA, VC) in dem Arbeitsspeicher 11. Als Nächstes berechnet die Serverlogik in Schritt (h) den zweiten Wert V2, indem sie eine Bitfolge hasht, die den Prüfwert VC, den Serverschlüssel SK und Daten aufweist, die das PC-Server-Paar eindeutig identifizieren, hier das Triplet (UID, SID, SC). In diesem Beispiel wird der zweite Wert V2 wie folgt generiert:
    V2 ← H(0x02, VC, SK, UID, SID, SC)
  • In Schritt (i) sendet der Server V2 über den Kanal C an den Benutzer-PC und löscht alle Daten, die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 11 gespeichert werden müssen.
  • Nach dem Empfang des zweiten Werts V2 speichert die Logik 6 des Benutzer-PCs 3 in Schritt (j) S, UID, UA, SID, und SC in ihrem internen Speicher 8. In Schritt (k) berechnet die Logik 6 daraufhin erstmals den kryptographisch starken Schlüssel K, indem sie eine Bitfolge hasht, die das Benutzerkennwort P, den zweiten Wert V2 und den Benutzerschlüssel S aufweist, hier zusammen mit dem Triplet (UID, SID, SC), welches das PC-Server-Paar eindeutig kennzeichnet. in diesem Beispiel wird der Schlüssel K wie folgt generiert:
    K ← H(0x03, P, S, V2, UID, SID, SC)
  • In diesem Szenario verwendet die Logik 6 dann in Schritt (I) den Schlüssel, um die Festplatte des PCs 3 zu verschlüsseln. Nach der Verwendung des Schlüssels löscht die Logik 6 in Schritt (m) alle Daten (einschließlich des Schlüssels K, des Kennworts P, des Prüfwerts VC und des zweiten Werts V2), die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 8 gespeichert werden müssen. Diese Aktion wird praktischerweise beim Herunterfahren des PCs 3 durchgeführt.
  • Schlüsselabruf
  • 5 veranschaulicht das Abruf-Teilprotokoll zum Neugenerieren des Schlüssels auf dem Benutzer-PC 3. Dieses Teilprotokoll kann mehrere Male ausgeführt werden, nachdem der Benutzer-PC und der Server die oben beschriebenen Einrichtungsteilprotokolle abgeschlossen haben. In Schritt (a) dieser Operation fordert die Logik 6 den Benutzer zur Eingabe eines Kennworts auf, woraufhin der Benutzer einen Kennwortversuch P' eingibt. In Schritt (b) ruft die Logik 6 S, UID, UA, SID und SC aus dem Arbeitsspeicher 8 ab. In Schritt (c) berechnet die Logik 6 dann den ersten Wert V1, der dem Prüfwert VC entspricht, als:
    V1 ← H(0x01, S, P', UID, SID, SC)
  • In Schritt (d) richten die Einheit und der Server daraufhin einen vorwärtssicheren Kanal C ein, der aus dem Serverzertifikat SC erhalten wird, wobei der Server seine gespeicherten Werte SK, SID, SC und SP während dieses Vorgangs aus dem Arbeitsspeicher 11 abruft. In Schritt (e) sendet der Benutzer-PC die Identitätsdaten UID, UA mit dem ersten Wert V1 über den Kanal C an den Server 2. Nach dem Empfang prüft die Serverlogik 10 in Schritt (f), dass sie zuvor ein Triplet gespeichert hat, bei dem die ersten beiden Elemente UID, UA lauten. Wenn kein solches Triplet gefunden wird, löscht der Server alle Daten, die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 11 gespeichert werden müssen, und bricht das Protokoll ab. Die Serverlogik prüft zudem, ob ein Begrenzungsmechanismus aktiviert wurde, der durch den Server für die UID verwaltet wird. Begrenzungsmechanismen sind in der Kryptographie hinlänglich bekannt und stellen Prozeduren bereit, um Anmeldungen durch Systembenutzer zu überwachen und auf Grundlage des Anmeldeverhaltens zu ermitteln, ob ein bestimmtes Benutzerkonto gesperrt werden sollte. Begrenzungsmechanismen sperren Benutzerkonten in der Regel, wenn das Anmeldeverhalten ein vordefiniertes Kriterium erfüllt, das auf eine möglicherweise böswillige Aktion hindeutet. In diesem Beispiel kann der Begrenzungsmechanismus für eine UID aktiviert sein, wenn innerhalb einer gegebenen Zeitspanne und/oder unter Verwendung eines inkorrekten Kennworts mehr als ein Schwellenwert von Abrufanforderungen für die UID erfolgt. Wenn der Begrenzungsmechanismus für die UID aktiviert ist, verweigert die Serverlogik die Bedienung dieser Abrufanforderung und sendet eine Fehlermeldung wie z. B. „Verbindung wurde begrenzt” zurück an den Benutzer-PC 2. Der Server kann alle Daten löschen, die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 11 gespeichert werden, und das Protokoll abbrechen. Nach dem Empfang einer solchen Fehlermeldung kann die Logik 6 des PCs 3 alle Daten löschen, die nicht ausdrücklich in dem oben erwähnten Arbeitsspeicher 8 gespeichert werden, und das Protokoll abbrechen.
  • Wenn alle Prüfungen in Schritt (f) bestanden werden, prüft der Server in Schritt (g), dass das dritte Element VC in dem gespeicherten Triplet für UID, UA gleich dem empfangenen ersten Wert V1 ist Wenn dies nicht der Fall ist, kann der Server eine Meldung „falsches Kennwort” über den Kanal C an den PC 3 senden. Der Server und der PC können dann wie zuvor alle unwesentlichen Protokolldaten löschen und das Protokoll abbrechen. Der Begrenzungsmechanismus der Serverlogik 10 zeichnet außerdem dieses Kennwortfehler-Ereignis auf um zu ermitteln, ob das Konto für anschließende Durchführungen des oben beschriebenen Schritts (f) begrenzt werden sollte.
  • Wenn das Kennwort P' in Schritt (g) als gültig betrachtet wird, entsprechen die nächsten Schritte im Wesentlichen den betreffenden Schritten der oben beschriebenen Operation zur Einrichtung der Einheit. Somit berechnet die Serverlogik in Schritt (h) den zweiten Wert V2 als:
    V2 ← H(0x02, V1, SK, UID, SID, SC)
  • In Schritt (i) sendet der Server V2 über den Kanal C an den Benutzer-PC und löscht dann wie zuvor alle unwesentlichen Daten. Nachdem in Schritt (i) der zweite Wert V2 erhalten wurde, berechnet die Logik 6 den Schlüssel K als:
    K ← H(0x03, P', S, V2, UID, SID, SC)
  • Danach verwendet die Logik 6 den Schlüssel in Schritt (j), um die Festplatte des PCs 3 zu entschlüsseln. Wenn die Einheit den Schlüssel nicht mehr benötigt, löscht die Logik in Schritt (I) wie zuvor alle unwesentlichen Daten. Auch diese Aktion wird praktischerweise beim Herunterfahren des PCs 3 durchgeführt.
  • Oben beschriebene Ausführungen machen deutlich, dass der geheime Chiffrierschlüssel K bei einer Benutzereingabe eines gültigen Kennworts wann immer erforderlich durch den PC 2 generiert werden kann. Die zum Generieren des Schlüssels benötigten Daten können durch den Benutzer-PC nur erhalten werden, wenn (1) der Benutzer das korrekte Kennwort eingibt und (2) der Server die Gültigkeit des Kennworts geprüft hat. Darüber hinaus gewährleistet des oben beschriebene Schema, dass sowohl das Kennwort als auch der Chiffrierschlüssel auch sicher bleiben, wenn entweder der PC gestohlen oder der Server kompromittiert wird. Im Besonderen lassen die Daten, die gemeinsam mit den Protokollmeldungen auf dem Benutzer-PC gespeichert werden, keinen Offline-Angriff zum Erraten von Kennwörtern zu. Auf ähnliche Art und Weise lassen die Daten, die gemeinsam mit den Protokollmeldungen auf dem Server gespeichert werden, keinen Offline-Angriff zum Erraten von Kennwörtern zu. Um Daten zu dem Schlüssel zu erhalten, ist es notwendig, die durch den Benutzer-PC gespeicherten Daten zu kennen, das Kennwort zu kennen und entweder (1) die durch den Server gespeicherten Daten zu kennen oder (2) die Kooperation des Servers sicherzustellen. Aufwand und Komplexität einer Verwendung von mehreren Servern oder vertrauenswürdiger Hardware wie beim Stand der Technik werden vermieden, und das System kann mit wenig aufwändigen Rechenoperationen wie z. B. Hash-Funktionen realisiert werden. Darüber hinaus kann das Begrenzen auf dem Server 2 auf Grundlage einer inkorrekten Kennworteingabe erfolgen und so einen hochgradig wirksamen Schutz gegen Online-Angriffe bereitstellen. Das Schema bietet somit ein sicheres und praxistaugliches System, um über eine Interaktion mit nur einem Server einen geheimen Schlüssel eines Benutzercomputers zu generieren.
  • Obwohl bis hierher beispielhafte Ausführungsformen beschrieben wurden, sind viele Alternativen und Abwandlungen denkbar. So können andere Ausführungsformen unterschiedliche Codieralgorithmen verwenden, um Werte zu generieren, die in dem Protokoll verwendet werden. Andere geeignete Beispiele beinhalten Funktionen für das Erhalten eines Schlüssels auf Kennwortgrundlage wie z. B. den (im RFC 2898 der Internet Engineering Task Force veröffentlichten) PBKDF2-Algorithmus oder den (in „A Future-Adaptable Password Scheme”, Niels Provos und David Maziéres, USENIX 1999 beschriebenen) bcrypt-Algorithmus. Im Allgemeinen können Werte, die gemäß diesen Ausführungen zum Codieren bestimmter Elemente dienen, zusätzlich weitere Elemente codieren, und Datenübertragungen können andere Elemente als die hier konkret genannten übertragen.
  • Der in anderen Ausführungsformen generierte Schlüssel K kann für eine Verschlüsselung/Entschlüsselung beliebiger gespeicherter Daten oder für andere kryptographische Operationen als eine Verschlüsselung/Entschlüsselung verwendet werden. Geheime Benutzercomputerschlüssel können zum Beispiel dazu dienen, die Berechtigung des Benutzercomputers gegenüber einem Dritten zu prüfen oder Nachrichten zu unterzeichnen.
  • Obwohl hier aus Gründen der Veranschaulichung ein einfaches Datenverarbeitungssystem 1 beschrieben wird, sind auch andere Formen eines Datenverarbeitungssystems denkbar.
  • Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder -medien) mit darauf enthaltenen computerlesbaren Programmbefehlen beinhalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung durchzuführen.
  • Das computerlesbare Speichermedium kann eine gegenständliche Einheit sein, die Befehle zur Verwendung durch eine Befehlsausführungseinheit beibehalten und speichern kann. Das computerlesbare Speichermedium kann z. B. eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination der vorgenannten Einheiten sein, ohne jedoch darauf beschränkt zu sein. Eine nicht vollständige Liste konkreterer Beispiele des computerlesbaren Speichermediums beinhaltet Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren, programmierbaren Nur-Lese-Speicher (EPROM- oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren CD-ROM, eine DVD, einen Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie z. B. Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Befehlen sowie eine beliebige geeignete Kombination der vorgenannten Elemente. Bei einem computerlesbaren Speichermedium, wie es hier verwendet wird, ist nicht davon auszugehen, dass es sich per se um flüchtige Signale wie z. B. Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder ein anderes Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen), oder elektrische Signalen, die über eine Leitung übertragen werden, handelt.
  • Hier beschriebene computerlesbare Programmbefehle können über ein Netzwerk wie beispielsweise das Internet, ein lokales Netz (Local Area Network, LAN), ein Weitverkehrsnetz (Wide Area Network, WAN) und/oder ein drahtloses Netzwerk von einem computerlesbaren Speichermedium auf entsprechende Datenverarbeitungs-Nerarbeitungs-Einheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, eine drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-Nerarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zur Speicherung auf einem computerlesbaren Speichermedium innerhalb der betreffenden Datenverarbeitungs-Nerarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Durchführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, ISA-Befehle (Instruction-Set-Architecture), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, einen Zustand festlegende Daten oder aber entweder um Quellcode oder um Objektcode handeln, der in einer beliebigen Kombination von einer oder mehreren Programmiersprachen wie z. B. einer objektorientierten Programmiersprache wie Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie z. B. der Programmiersprache „C” oder ähnlichen Programmiersprachen geschrieben ist. Die computerlesbaren Programmbefehle können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder aber vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Im letztgenannten Szenario kann der entfernt angeordnete Computer über eine beliebige Art von Netzwerk, unter anderem ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), mit dem Computer des Benutzers verbunden sein, oder die Verbindung kann mit einem externen Computer (z. B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei manchen Ausführungsformen kann ein elektronischer Schaltkreis wie z. B. ein programmierbarer Logikschaltkreis, Field-Programmable-Gate-Arrays (FPGAs) oder Programmable-Logic-Arrays (PLAs) die computerlesbaren Programmbefehle ausführen, indem er Zustandsdaten der computerlesbaren Programmbefehle verwendet, um die elektronische Schaltung zu personalisieren und Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Darstellungen von Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Dabei dürfte klar sein, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaubilder sowie Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaubildern durch computerlesbare Programmbefehle realisiert werden kann/können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, Spezialcomputers oder einer anderweitigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Computers oder der anderweitigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel erzeugen, mit dem die Funktionen/Handlungen realisiert werden können, die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegeben werden. Diese computerlesbaren Programmbefehle können auch auf einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darauf gespeicherten Befehlen einen Herstellungsartikel aufweist, der Befehle enthält, welche Aspekte der in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktion/Handlung realisieren.
  • Die computerlesbaren Programmbefehle können zudem in einen Computer, eine anderweitige programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um zu veranlassen, dass eine Reihe von Funktionsschritten auf dem Computer, der anderweitigen programmierbaren Datenvorrichtung oder der anderen Einheit ausgeführt wird, so dass die Befehle, die auf dem Computer, der anderweitigen Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden, die in dem Block bzw. den Blöcken des Ablaufplans und/oder des Blockschaubilds angegebenen Funktionen/Handlungen realisieren.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren stellen die Architektur, Funktionalität und den Betrieb möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung bereit. Somit kann jeder Block der Ablaufpläne oder Blockschaubilder ein Modul, Segment oder einen Teil von Befehlen darstellen, das/der einen oder mehrere ausführbare Befehle aufweist, mit denen sich die eine oder mehreren angegebenen logischen Funktionen realisieren lassen. Bei manchen alternativen Ausführungsformen können die in dem Block erwähnten Funknonen in einer anderen Reihenfolge als der in den Figuren genannten auftreten. So können zwei aufeinanderfolgend dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig stattfinden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden, wobei dies abhängig von der betreffenden Funktionalität ist. Zu erwähnen ist ebenfalls, dass jeder Block der Blockschaubilder und/oder der Ablaufplan-Darstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder Ablaufplan-Darstellungen durch Spezialsysteme auf Hardwaregrundlage, welche die angegebenen Funktionen oder Handlungen oder Kombinationen hiervon ausführen, oder durch Kombinationen von Spezial-Hardware- und Computerbefehlen realisiert bzw. durchgeführt werden kann/können.

Claims (21)

  1. Verfahren zum Generieren eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer, der sich über ein Netzwerk mit einem Server verbinden lässt, wobei das Verfahren aufweist: Bereitstellen eines geheimen Benutzerwerts auf dem Benutzercomputer. Bereitstellen eines geheimen Serverwerts und eines Prüfwerts, der den geheimen Benutzerwert und ein Benutzerkennwort codiert, auf dem Server. auf dem Benutzercomputer als Reaktion auf eine Eingabe eines Eingabekennworts Codieren des geheimen Benutzerwerts und des Eingabekennworts, um einen ersten Wert zu erzeugen, der dem Prüfwert entspricht, und Übertragen des ersten Werts über das Netzwerk an den Server; auf dem Server als Reaktion auf die Übertragung des ersten Werts Vergleichen des ersten Werts und des Prüfwerts, um zu prüfen, ob das Eingabekennwort gleich dem Benutzerkennwort ist, und wenn dies der Fall ist, Codieren des ersten Werts und des geheimen Serverwerts, um einen zweiten Wert zu erzeugen und den zweiten Wert über das Netzwerk an den Benutzercomputer zu übertragen; und auf dem Benutzercomputer als Reaktion auf die Übertragung des zweiten Werts Erzeugen des geheimen Chiffrierschlüssels durch Codieren des zweiten Werts, des Eingabekennworts und des geheimen Benutzerwerts.
  2. Verfahren nach Anspruch 1, beinhaltend in einer Einrichtungsprozedur vor Generierung des Schlüssels: auf dem Benutzercomputer als Reaktion auf eine Eingabe des Benutzerkennworts Codieren des geheimen Benutzerwerts und des Benutzerkennworts, um den Prüfwert zu erzeugen, und Übertragen des Prüfwerts über das Netzwerk an den Server; und auf dem Server Speichern des empfangenen Prüfwerts.
  3. Verfahren nach Anspruch 2, beinhaltend in der Einrichtungsprozedur: auf dem Benutzercomputer Erzeugen und Speichern des geheimen Benutzerwerts; und auf dem Server Erzeugen und Speichern des geheimen Serverwerts.
  4. Verfahren nach Anspruch 2 oder Anspruch 3, wobei die Einrichtungsprozedur beinhaltet: auf dem Server Codieren des empfangenen Prüfwerts und des geheimen Serverwerts, um den zweiten Wert zu erzeugen, und Übertragen des zweiten Werts über das Netzwerk an den Benutzercomputer; und auf dem Benutzercomputer als Reaktion auf die Übertragung des zweiten Werts erstmaliges Erzeugen des ersten Chiffrierschlüssels durch Codieren des zweiten Werts, des Benutzerkennworts und des geheimen Benutzerwerts, Verwenden des Schlüssels in einer Verschlüsselungsoperation und Löschen des Benutzerkennworts, des Prüfwerts, des zweiten Werts und des Schlüssels nach der Verwendung.
  5. Verfahren nach einem beliebigen vorangehenden Anspruch, beinhaltend: Bereitstellen eines Benutzerbezeichners auf dem Computer zum eindeutigen Identifizieren des Benutzercomputers gegenüber dem Server; auf dem Server Bereitstellen des Benutzerbezeichners mit dem Prüfwert für den Benutzercomputer; und auf dem Benutzercomputer Übertragen des Benutzerbezeichners mit dem ersten Wert an den Server.
  6. Verfahren nach Anspruch 5, beinhaltend auf dem Benutzercomputer Codieren des Benutzerbezeichners in dem ersten Wert.
  7. Verfahren nach Anspruch 5 oder Anspruch 6, beinhaltend auf dem Benutzercomputer Codieren des Benutzerbezeichners in dem Chiffrierschlüssel.
  8. Verfahren nach einem beliebigen der Ansprüche 5 bis 7, beinhaltend auf dem Server Codieren des Benutzerbezeichners in dem zweiten Wert.
  9. Verfahren nach einem beliebigen der Ansprüche 6 bis 8, beinhaltend: auf dem Server Bereitstellen eines Serverbezeichners zum eindeutigen Identifizieren des Servers gegenüber dem Benutzercomputer; auf dem Benutzercomputer Abrufen des Serverbezeichners und Codieren des Serverbezeichners in dem ersten Wert; auf dem Server Codieren des Serverbezeichners in dem zweiten Wert; und auf dem Benutzercomputer Codieren des Serverbezeichners in dem Chiffrierschlüssel.
  10. Verfahren nach einem beliebigen vorangehenden Anspruch, beinhaltend durch eine Interaktion des Benutzercomputers und des Servers Einrichten eines sicheren Kanals über das Netzwerk, wobei das Übertragen durch den Benutzercomputer und den Server über den sicheren Kanal erfolgt.
  11. Verfahren nach einem beliebigen vorangehenden Anspruch, beinhaltend, auf dem Server, ein Realisieren eines Begrenzungsmechanismus in Abhängigkeit davon, ob das Eingabekennwort gleich dem Benutzerkennwort ist.
  12. Verfahren nach einem beliebigen vorangehenden Anspruch, wobei: der Prüfwert über eine Hash-Funktion den geheimen Benutzerwert und das Benutzerkennwort codiert; der Benutzercomputer den ersten Wert erzeugt, indem er den geheimen Benutzerwerk und das Eingabekennwort mittels der Hash-Funktion codiert; der Server den zweiten Wert erzeugt, indem er den ersten Wert und den geheimen Serverwert mittels der Hash-Funktion codiert; und der Benutzercomputer den geheimen Chiffrierschlüssel generiert, indem er den zweiten Wert, das Eingabekennwort und den geheimen Benutzerwert mittels der Hash-Funktion codiert.
  13. Verfahren zum Generieren eines geheimen Chiffrierschlüssels auf einem Benutzercomputer, der sich über ein Netzwerk mit einem Server verbinden lässt, wobei das Verfahren im Wesentlichen dem weiter oben mit Blick auf die beigefügten Zeichnungen beschriebenen Verfahren entspricht.
  14. Verfahren zum Verwalten eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer, der sich über ein Netzwerk mit einem Server verbinden lässt, wobei das Verfahren aufweist: Erzeugen des geheimen Chiffrierschlüssels durch ein Verfahren nach einem beliebigen vorangehenden Anspruch; und auf dem Benutzercomputer Verwenden des geheimen Chiffrierschlüssels in einer Verschlüsselungsoperation und Löschen des Eingabekennworts, des ersten Werts, des zweiten Werts und des Schlüssels nach der Verwendung.
  15. Verfahren nach Anspruch 14 beinhaltend ein Verwenden des Schlüssels zum Entschlüsseln von Daten, die zuvor unter Verwendung des Schlüssels verschlüsselt wurden.
  16. Verfahren zum Verschlüsseln und Entschlüsseln von Daten unter Verwendung eines geheimen Chiffrierschlüssels des Benutzercomputers auf einem Benutzercomputer, der sich über ein Netzwerk mit einem Server verbinden lässt, wobei das Verfahren aufweist: Erzeugen des geheimen Chiffrierschlüssels durch ein Verfahren nach Anspruch 4 oder nach einem beliebigen der Ansprüche 5 bis 13, sofern dieser von Anspruch 4 abhängig ist; beim erstmaligen Erzeugen des Schlüssels auf dem Benutzercomputer Verwenden des Schlüssels zum Verschlüsseln von auf dem Benutzercomputer gespeicherten Daten; und beim Erzeugen des Schlüssels auf dem Benutzercomputer nach dem ersten Mal Verwenden des Schlüssels zum Entschlüsseln der auf dem Benutzercomputer gespeicherten Daten.
  17. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darauf enthaltenen Programmbefehlen aufweist, wobei die Programmbefehle durch ein Computersystem ausführbar sind, um das Computersystem zum Durchführen eines Verfahrens nach einem beliebigen vorangehenden Anspruch zu veranlassen.
  18. Benutzercomputer zum Austauschen von Daten mit einem Server über ein Netzwerk, um einen geheimen Chiffrierschlüssel des Benutzercomputers zu generieren, wobei der Server einen geheimen Serverwert und einen Prüfwert speichert, der einen geheimen Benutzerwert des Benutzercomputers und ein Benutzerkennwort codiert, wobei der Benutzercomputer Arbeitsspeicher zum Speichern des geheimen Benutzerwerts, eine Benutzeroberfläche, eine Datenübertragungsschnittstelle zum Austauschen von Daten mit dem Server über ein Netzwerk und Steuerlogik aufweist, die so gestaltet ist, dass sie: als Reaktion auf eine Eingabe über die Benutzeroberfläche den geheimen Benutzerwert und das Eingabekennwort codiert, um einen ersten Wert zu erzeugen, der dem Prüfwert entspricht, und den ersten Wert über die Datenübertragungsschnittstelle an den Server überträgt; und als Reaktion auf die Übertragung eines zweiten Werts, der durch Codieren des ersten Werts und des geheimen Serverwerts erzeugt wurde, durch den Server den geheimen Chiffrierschlüssel generiert, indem sie den zweiten Wert, das Eingabekennwort und den geheimen Benutzerwert codiert.
  19. Server zur Verwendung beim Erzeugen eines geheimen Chiffrierschlüssels eines Benutzercomputers, der einen geheimen Benutzerwert speichert und sich über ein Netzwerk mit dem Senner verbinden lässt, wobei der Server aufweist: Arbeitsspeicher zum Speichern eines geheimen Serverwerts und eines Prüfwerts, der den geheimen Benutzerwert und ein Benutzerkennwort codiert; eine Datenübertragungsschnittstelle zum Austauschen von Daten mit dem Benutzercomputer über das Netzwerk; und Steuerlogik, die so gestaltet ist, dass sie als Reaktion auf einen Empfang eines erstens Werts, der dem Prüfwert entspricht und den geheimen Benutzerwert und ein Eingabekennwort codiert, von dem Benutzercomputer den ersten Wert und den Prüfwert vergleicht, um zu prüfen, ob das Eingabekennwort gleich dem Benutzerkennwort ist, und wenn dies der Fall ist, den ersten Wert und den geheimen Serverwert codiert, um einen zweiten Wert zu erzeugen, und den zweiten Wert über die Datenübertragungsschnittstelle an den Benutzercomputer überträgt.
  20. System, aufweisend einen Benutzercomputer nach Anspruch 18 und einen Server nach Anspruch 19.
  21. System zum Generieren eines geheimen Chiffrierschlüssels eines Benutzercomputers, wobei das System im Wesentlichen dem weiter oben mit Blick auf die beigefügten Zeichnungen beschriebenen System entspricht.
DE112015002927.3T 2014-08-26 2015-08-25 Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage Active DE112015002927B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1415070.0A GB2529633A (en) 2014-08-26 2014-08-26 Password-based generation and management of secret cryptographic keys
GB14150700 2014-08-26
PCT/IB2015/056433 WO2016030820A1 (en) 2014-08-26 2015-08-25 Password-based generation and management of secret cryptographic keys

Publications (2)

Publication Number Publication Date
DE112015002927T5 true DE112015002927T5 (de) 2017-03-16
DE112015002927B4 DE112015002927B4 (de) 2023-01-19

Family

ID=51727037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015002927.3T Active DE112015002927B4 (de) 2014-08-26 2015-08-25 Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage

Country Status (5)

Country Link
US (2) US9847877B2 (de)
CN (1) CN106664209B (de)
DE (1) DE112015002927B4 (de)
GB (2) GB2529633A (de)
WO (1) WO2016030820A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018101812B4 (de) 2017-01-26 2024-02-08 Amazon Technologies, Inc. Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10686598B2 (en) * 2017-02-27 2020-06-16 Cord3 Innovation Inc. One-to-many symmetric cryptographic system and method
US10841080B2 (en) * 2018-03-20 2020-11-17 International Business Machines Corporation Oblivious pseudorandom function in a key management system
US11646870B2 (en) 2019-01-23 2023-05-09 International Business Machines Corporation Securing mobile device by RAM-encryption
CN111625844A (zh) * 2020-04-17 2020-09-04 国家电网有限公司客户服务中心 调查数据安全加密方法、装置、电子设备及存储介质
TWI729812B (zh) * 2020-05-15 2021-06-01 昕力資訊股份有限公司 加密和驗證敏感參數的電腦程式產品和裝置
EP4197162B1 (de) * 2020-09-17 2024-09-11 Huawei Technologies Co., Ltd. Synchronisation von sensiblen informationen zwischen mehreren netzwerkknoten
CN114362941A (zh) * 2021-12-30 2022-04-15 深圳市元征科技股份有限公司 离线模式授权方法、装置、电子设备及存储介质
CN115396241B (zh) * 2022-10-28 2023-01-31 北京佳芯信息科技有限公司 一种数据加密方法及数据加密系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829356B1 (en) * 1999-06-29 2004-12-07 Verisign, Inc. Server-assisted regeneration of a strong secret from a weak secret
US7359507B2 (en) 2000-03-10 2008-04-15 Rsa Security Inc. Server-assisted regeneration of a strong secret from a weak secret
JP4660899B2 (ja) * 2000-07-24 2011-03-30 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US7149311B2 (en) * 2001-02-08 2006-12-12 Lucent Technologies Inc. Methods and apparatus for providing networked cryptographic devices resilient to capture
JP3946047B2 (ja) 2002-01-21 2007-07-18 アルパイン株式会社 スピーカの磁気回路
US7480384B2 (en) * 2003-02-10 2009-01-20 International Business Machines Corporation Method for distributing and authenticating public keys using random numbers and Diffie-Hellman public keys
US7861078B2 (en) * 2005-10-14 2010-12-28 Juniper Networks, Inc. Password-authenticated asymmetric key exchange
US7822206B2 (en) * 2006-10-26 2010-10-26 International Business Machines Corporation Systems and methods for management and auto-generation of encryption keys
EP1976322A1 (de) * 2007-03-27 2008-10-01 British Telecommunications Public Limited Company Authentifizierungsverfahren
US20080313462A1 (en) * 2007-06-13 2008-12-18 Meiyuan Zhao Apparatus and method for deriving keys for securing peer links
CN101651666A (zh) * 2008-08-14 2010-02-17 中兴通讯股份有限公司 一种基于虚拟专用网的身份认证及单点登录的方法和装置
CN101465735B (zh) * 2008-12-19 2011-06-01 北京大学 网络用户身份验证方法、服务器及客户端
WO2012014231A1 (en) 2010-07-29 2012-02-02 Nirmal Juthani System and method for generating a strong multi factor personalized server key from a simple user password
US8732462B2 (en) * 2011-07-07 2014-05-20 Ziptr, Inc. Methods and apparatus for secure data sharing
US8789150B2 (en) * 2011-09-22 2014-07-22 Kinesis Identity Security System Inc. System and method for user authentication
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
CN103780379B (zh) * 2012-10-19 2017-09-19 阿里巴巴集团控股有限公司 密码加密方法和系统以及密码校验方法和系统
US9374369B2 (en) * 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
CN103475466A (zh) * 2013-09-10 2013-12-25 上海动联信息技术股份有限公司 一种USBKey总线保护实现方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018101812B4 (de) 2017-01-26 2024-02-08 Amazon Technologies, Inc. Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen

Also Published As

Publication number Publication date
CN106664209B (zh) 2019-11-19
US10057060B2 (en) 2018-08-21
GB201703301D0 (en) 2017-04-12
WO2016030820A1 (en) 2016-03-03
CN106664209A (zh) 2017-05-10
DE112015002927B4 (de) 2023-01-19
GB201415070D0 (en) 2014-10-08
GB2543726A (en) 2017-04-26
US20160065366A1 (en) 2016-03-03
GB2529633A (en) 2016-03-02
US9847877B2 (en) 2017-12-19
GB2543726B (en) 2019-11-20
US20170373846A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
DE112015002927B4 (de) Generierung und Verwaltung geheimer Chiffrierschlüssel auf Kennwortgrundlage
DE112015000213B4 (de) Passwortgestützte Berechtigungsprüfung
DE60302276T2 (de) Verfahren zur ferngesteuerten Änderung eines Kommunikationspasswortes
DE60036112T2 (de) Serverunterstützte wiedergewinnung eines starken geheimnisses aus einem schwachen geheimnis
EP2929648B1 (de) Verfahren zum aufbau einer sicheren verbindung zwischen clients
DE60314060T2 (de) Verfahren und Vorrichtung zur Schlüsselverwaltung für gesicherte Datenübertragung
DE60314402T2 (de) System und methode zum speichern sowie abrufen kryptographischer geheimnisse von unterschiedlichen kundenendgeräten in einem netzwerk
DE102018216915A1 (de) System und Verfahren für sichere Kommunikationen zwischen Steuereinrichtungen in einem Fahrzeugnetzwerk
EP3031226B1 (de) Unterstützung der nutzung eines geheimen schlüssels
EP3443705B1 (de) Verfahren und anordnung zum aufbauen einer sicheren kommunikation zwischen einer ersten netzwerkeinrichtung (initiator) und einer zweiten netzwerkeinrichtung (responder)
EP1080557B1 (de) Verfahren und anordnung zum rechnergestützten austausch kryptographischer schlüssel zwischen einer ersten computereinheit und einer zweiten computereinheit
DE212015000047U1 (de) Sichere Anmeldung ohne Passwörter
DE112008001436T5 (de) Sichere Kommunikation
DE102016210786A1 (de) Komponente zur Anbindung an einen Datenbus und Verfahren zur Umsetzung einer kryptografischen Funktionalität in einer solchen Komponente
DE19622630C1 (de) Verfahren zum gruppenbasierten kryptographischen Schlüsselmanagement zwischen einer ersten Computereinheit und Gruppencomputereinheiten
EP3220575B1 (de) Verfahren zur herstellung einer sicheren kommunikation zwischen einem client und einem server
EP3672142A1 (de) Verfahren und system zur sicheren übertragung eines datensatzes
EP3198826B1 (de) Authentisierungs-stick
DE102017006200A1 (de) Verfahren, Hardware und System zur dynamischen Datenübertragung an ein Blockchain Rechner Netzwerk zur Abspeicherung Persönlicher Daten um diese Teils wieder Blockweise als Grundlage zur End zu Endverschlüsselung verwendet werden um den Prozess der Datensammlung über das Datenübertragungsmodul weitere Daten in Echtzeit von Sensoreinheiten dynamisch aktualisiert werden. Die Blockmodule auf dem Blockchaindatenbanksystem sind unbegrenzt erweiterbar.
DE60021985T2 (de) Verfahren ind vorrichtung zur sicheren erzeugung von öffentlichen/geheimen schlüsselpaaren
EP4099611B1 (de) Erzeugung quantensicherer schlüssel in einem netzwerk
EP3050244B1 (de) Bereitstellung und verwendung pseudonymer schlüssel bei hybrider verschlüsselung
LU103094B1 (de) Innovatives serverbasiertes verfahren zum management geheimer daten
DE102014212219A1 (de) Verfahren zur Authentifizierung und Anbindung eines Geräts an ein Netzwerk sowie hierzu eingerichteter Teilnehmer des Netzwerks
EP4436096A1 (de) Beglaubigung von daten eines authentisierungs- und schlüsselvereinbarungsprotokoll-ablaufs

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0009320000

Ipc: H04L0009080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final