DE102018101812A1 - Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen - Google Patents

Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen Download PDF

Info

Publication number
DE102018101812A1
DE102018101812A1 DE102018101812.6A DE102018101812A DE102018101812A1 DE 102018101812 A1 DE102018101812 A1 DE 102018101812A1 DE 102018101812 A DE102018101812 A DE 102018101812A DE 102018101812 A1 DE102018101812 A1 DE 102018101812A1
Authority
DE
Germany
Prior art keywords
key
trustee
encrypted
user
bundle
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
DE102018101812.6A
Other languages
English (en)
Other versions
DE102018101812B4 (de
Inventor
Thomas Michael Leavy
Christopher A. Howell
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.)
Amazon Technologies Inc
Original Assignee
Wickr Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wickr Inc filed Critical Wickr Inc
Publication of DE102018101812A1 publication Critical patent/DE102018101812A1/de
Application granted granted Critical
Publication of DE102018101812B4 publication Critical patent/DE102018101812B4/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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Die vorliegende Offenbarung beschreibt ein System, ein Verfahren und ein nichtflüchtiges, computerlesbares Medium zum Bereitstellen mehrerer Instanzen einer sicheren Kommunikationsanwendung auf mehreren Vorrichtungen. Eine sichere Kommunikationsanwendung auf einer ersten Vorrichtung erzeugt einen ersten Satz aus privaten Schlüsseln, die dem Benutzer zugeordnet sind, und einen zweiten Satz aus Schlüsseln, die der sicheren Kommunikationsanwendung zugeordnet sind, die auf der ersten Vorrichtung ausgeführt wird. Der erste Satz aus privaten Schlüsseln richtet einen Satz aus Grundidentifizierungsschlüsseln für den Benutzer ein, die identisch für alle Installationen der sicheren Kommunikationsanwendung sind, während der zweite Satz aus Schlüsseln von Vorrichtung zu Vorrichtung variiert. Diesbezüglich muss der erste Satz aus Grund-Identifizierungsschlüsseln von der ersten Vorrichtung zu jeglichen nachfolgenden Installationen der sicheren Kommunikationsanwendung auf einer oder mehreren zweiten Vorrichtungen sicher übertragen werden. Dies ermöglicht einen hohen Grad an Vertrauen, da jede Installation der sicheren Kommunikationsanwendung mit dem ersten Satz von Grund-Identifizierungsschlüsseln verknüpft ist und dem Benutzer erlaubt, verschlüsselte Kommunikation auf mehreren Vorrichtungen von denselben vertrauenswürdigen Grundschlüsseln zu senden und zu empfangen.

Description

  • Hintergrund der Erfindung
  • Benutzer installieren Kommunikationsanwendungen, wie beispielsweise Messaging- und Ruf-Anwendungen auf mehreren Vorrichtungen, um mit Freunden, der Familie, Mitarbeitern, Klienten und Kunden in Verbindung zu bleiben. Einige dieser Kommunikationsanwendungen erlauben es Benutzern, verschlüsselte Kommunikation auszutauschen. Als Teil des Registrierungsprozesses für diese Kommunikationsanwendungen kann die Anwendung private Schlüssel herleiten, die spezifisch für den Benutzer sind. Diese privaten Schlüssel dürfen nur dem Endbenutzer bekannt bleiben und können verwendet werden, um ein Grundvertrauen einzurichten. Diesbezüglich stellt jegliche nachfolgende Installation einer Kommunikationsanwendung ein Sicherheitsrisiko während der Übertragung der privaten Schlüssel von der ersten Installation zu jeglicher nachfolgenden Installation dar. D.h., wenn die privaten Schlüssel durch einen böswilligen Benutzer erworben werden würden, wäre der böswillige Benutzer in der Lage, den legitimen Benutzer zu imitieren und seine eigene Instanz der Kommunikationsanwendung zu erzeugen. Dies würde es dem böswilligen Benutzer erlauben, Nachrichten im Namen des legitimen Benutzers zu senden und/oder die Konversationen des legitimen Benutzers abzuhören. Somit besteht ein Bedarf in der Technik einem legitimen Benutzer zu ermöglichen, seine privaten Schlüssel sicher von einer ersten Installation einer sicheren Kommunikationsanwendung bis zu einer nachfolgenden Installation einer sicheren Kommunikationsanwendung zu übertragen.
  • Kurze Zusammenfassung der Erfindung
  • Die vorliegende Anmeldung beschreibt ein System, das einen Prozessor und einen Speicher umfasst, der Anweisungen umfasst. Der Prozessor ist ausgebildet, um einen Registrierungsprozess auszuführen, der das Herleiten eines Grund-Benutzeridentifizierers (root user identifier), eines Grundidentitäts-Schlüsselpaares (root identity key pair), eines privaten Grundschlüssels (root private key), eines Femspeicher-Grundschlüssels (remote storage root key), eines Knotenspeicher-Grundschlüssels (node storage root key) und eines Treuhänder-Schlüssels (escrow key) umfasst. Der Prozessor verschlüsselt den privaten Grundschlüssel, den Fernspeicher-Grundschlüssel und den Knotenspeicher-Grundschlüssel mit dem Treuhänder-Schlüssel. Der Treuhänder-Schlüssel wird dann verschlüsselt mit einem Passwort-basierten Schlüssel, der gemäß einer Passwort-basierten Schlüsselherleitungsfunktion hergeleitet wird. Der Prozessor erzeugt dann ein Schlüsseltreuhänderbündel, das den verschlüsselten privaten Grundschlüssel, den verschlüsselten Fernspeicher-Grundschlüssel und die verschlüsselten Knotenspeicher-Grundschlüssel umfasst und den Grund-Benutzeridentifizierer, einen öffentlichen Grundschlüssel und das Schlüsseltreuhänderbündel an einen Server weiterleitet. Bei einigen Beispielen ist der verschlüsselte Treuhänderschlüssel in dem Schlüsseltreuhänderbündel umfasst, das an den Server übertragen wird.
  • Gemäß einem anderen Beispiel der vorliegenden Anmeldung umfasst ein Verfahren das Ausführen eines Registrierungsprozesses, der das das Herleiten eines Grund- Benutzeridentifizierers, eines Grundidentitäts-Schlüsselpaares, eines privaten Grundschlüssels, eines Femspeicher-Grundschlüssels, eines Knotenspeicher-Grundschlüssels und eines Treuhänder-Schlüssels umfasst. Das Verfahren verschlüsselt den privaten Grundschlüssel, den Fernspeicher-Grundschlüssel und den Knotenspeicher-Grundschlüssel mit dem Treuhänder-Schlüssel und verschlüsselt dann den Treuhänder-Schlüssel mit einem Passwort-basierten Schlüssel, der gemäß einer Passwort-basierten Schlüsselherleitungsfunktion hergeleitet wird. Das Verfahren erzeugt ein Schlüsseltreuhänderbündel, das den verschlüsselten privaten Grundschlüssel, den verschlüsselten Femspeicher-Grundschlüssel und die verschlüsselten Knotenspeicher-Grundschlüssel umfasst und den Grund-Benutzeridentifizierer, einen öffentlichen Grundschlüssel und das Schlüsseltreuhänderbündel an einen Server weiterleitet.
  • Ein anderes Beispiel der vorliegenden Offenbarung umfasst ein nichtflüchtiges, computerlesbares Medium, das Anweisungen zum Ausführen eines Registrierungsprozesses umfasst. Als Teil des Registrierungsprozesses werden ein Grund- Benutzeridentifizierer, ein Grundidentitäts-Schlüsselpaar, ein privater Grundschlüssel, ein Femspeicher-Grundschlüssel, ein Knotenspeicher-Grundschlüssel und ein Treuhänder-Schlüssel hergeleitet. Der private Grundschlüssel, der Fernspeicher-Grundschlüssel und der Knotenspeicher-Grundschlüssel werden unter Verwendung eines Treuhänder-Schlüssels verschlüsselt. Der Treuhänder-Schlüssel wird dann mit einem Passwort-basierten Schlüssel verschlüsselt, der gemäß einer Passwort-basierten Schlüsselherleitungsfunktion hergeleitet wird. Nachdem die Schlüssel verschlüsselt sind, wird ein Schlüsseltreuhänderbündel erzeugt und an einen ersten Server übertragen.
  • Gemäß einem wiederum anderen Beispiel beschreibt die vorliegende Offenbarung ein System, das einen Prozessor und einen Speicher umfasst. Der Prozessor ist ausgebildet, um das verschlüsselte Schlüsseltreuhänderbündel aus einem Server wiederzugewinnen. Diesbezüglich fordert der Prozessor das verschlüsselte Schlüsseltreuhänderbündel von dem Server und empfängt dies nachfolgend. Das Schlüsseltreuhänderbündel umfasst zumindest einen eines privaten Grundschlüssels, eines Fernspeicher-Grundschlüssels, eines Knotenspeicher-Grundschlüssels und eines Treuhänder-Schlüssels. Als nächstes erhält der Prozessor einen Treuhänder-Schlüssel, der verwendet wird, um das verschlüsselte Schlüsseltreuhänderbündel zu entschlüsseln, das von dem Server empfangen wird. Dementsprechend stellt der Prozessor eine sichere Kommunikationsanwendung auf der Vorrichtung unter Verwendung der Informationen bereit, die in dem entschlüsselten Schlüsseltreuhänderbündel enthalten sind. Bei einigen Beispielen wird das verschlüsselte Schlüsseltreuhänderbündel auf den Server durch eine unterschiedliche Vorrichtung hochgeladen.
  • Ein anderes Beispiel der vorliegenden Offenbarung beschreibt ein Verfahren zum Abrufen eines verschlüsselten Schlüsseltreuhänderbündels aus einem Server. Das Verfahren beginnt mit einer Anfrage nach einem Schlüsseltreuhänderbündel, das an den Server von einer Klienten-Vorrichtung übertragen wird. Die Klienten-Vorrichtung empfängt ein verschlüsseltes Schlüsseltreuhänderbündel von dem Server und erhält einen Treuhänder-Schlüssel, der verwendet wird, um das verschlüsselte Schlüsseltreuhänderbündel zu entschlüsseln, das von dem Server empfangen wird. Ein privater Grundschlüssel, ein Fernspeicher-Grundschlüssel und ein Knotenspeicher-Grundschlüssel werden aus dem entschlüsselten Schlüsseltreuhänderbündel abgerufen. Eine sichere Kommunikationsanwendung wird auf einer sekundären Vorrichtung unter Verwendung des privaten Grundschlüssels, des Fernspeicher-Knoten-Schlüssels und des Knotenspeicher-Grundschlüssels ausgebildet.
  • Ein anderes Ausführungsbeispiel, das durch die vorliegende Offenbarung dargestellt wird, umfasst ein nichtflüchtiges computerlesbares Medium, das Anweisungen zum Abrufen eines verschlüsselten Schlüsseltreuhänderbündels aus einem Server umfasst. Die Anweisungen übertragen eine Anfrage nach einem Schlüsseltreuhänderbündel an den Server von einer Klienten-Vorrichtung. Ansprechend auf die Anfrage empfängt die Klienten-Vorrichtung ein verschlüsseltes Schlüsseltreuhänderbündel von dem Server. Die Anweisungen umfassen das Erhalten eines Treuhänder-Schlüssels, der verwendet wird, um das verschlüsselte Schlüsseltreuhänderbündel zu entschlüsseln, das von dem Server empfangen wird. Ein privater Grundschlüssel, ein Fernspeicher-Grundschlüssel und ein Knotenspeicher-Grundschlüssel werden aus dem entschlüsselten Schlüsseltreuhänderbündel erhalten und werden verwendet, um eine sekundäre Vorrichtung auszubilden.
  • Figurenliste
  • Verschiedene Ausführungsbeispiele der Erfindung werden in der nachfolgenden detaillierten Beschreibung und den beiliegenden Zeichnungen offenbart.
    • 1 zeigt ein Beispiel einer Umgebung, wo sichere Kommunikation ausgetauscht wird.
    • 2 zeigt eine Klienten-Vorrichtung, die verschlüsselte Kommunikation unter Verwendung einer sicheren Kollaborations-Anwendung überträgt und empfängt.
    • 3 zeigt einen beispielhaften Prozess für einen Benutzer, der sich an einer sicheren Kommunikationsplattform registriert.
    • 4 zeigt einen exemplarischen Prozess zum Erzeugen eines Schlüsseltreuhänderbündels und Speichern des Schlüsseltreuhänderbündels auf einem Server.
    • 5 zeigt ein Beispiel zum Registrieren einer Vorrichtung an der sicheren Kommunikationsplattform.
    • 6 zeigt ein Beispiel eines Prozesses zum Erzeugen eines Pools aus flüchtigen Schlüsseln als Teil eines Schlüssel-Vereinbarungsprotokolls.
    • 7 zeigt ein Beispiel eines Prozesses zum Bereitstellen einer sekundären Vorrichtung.
    • 8A-8C zeigen einen Prozess zum Übertragen einer verschlüsselten Kommunikation gemäß einem Ausführungsbeispiel der Offenbarung.
    • 9A und 9B zeigen einen Prozess zum Empfangen und Entschlüsseln einer verschlüsselten Kommunikation gemäß einem Ausführungsbeispiel der Offenbarung.
    • 10 zeigt ein Beispiel einer mobilen Schnittstelle für eine verschlüsselte Ende-zu-Ende-Kommunikation zwischen einem ersten und einem zweiten Benutzer.
    • 11 zeigt ein darstellendes Beispiel einer Schnittstelle für eine verschlüsselte Ende-zu-Ende-Kommunikation zwischen zwei Benutzern.
  • Detaillierte Beschreibung
  • Die vorliegende Offenbarung beschreibt ein System und ein Verfahren zum Bereitstellen mehrerer Instanzen einer sicheren Kommunikationsanwendung auf mehreren Vorrichtungen. Sobald die mehreren Instanzen der sicheren Kommunikationsanwendung bereitgestellt sind, ist der Benutzer in der Lage, verschlüsselte Kommunikation über alle seine Vorrichtungen zu senden und zu empfangen.
  • Die vorliegende Offenbarung kann auf zahlreiche Weisen implementiert werden, einschließlich als Prozess; eine Vorrichtung; ein System; eine Materialzusammensetzung; ein Computerprogrammprodukt, das auf einem nichtflüchtigen, computerlesbaren Speicherungsmedium verkörpert ist; und/oder ein Prozessor, wie beispielsweise ein Prozessor, der ausgebildet ist, um Anweisungen auszuführen, die gespeichert sind auf und/oder bereitgestellt werden durch einen Speicher, der mit dem Prozessor gekoppelt ist. Diese Implementierungen oder jegliche andere Form, die die vorliegende Offenbarung annehmen kann, können als Techniken bezeichnet werden. Im Allgemeinen kann die Reihenfolge der Schritte des offenbarten Prozesses innerhalb des Schutzbereichs der vorliegenden Offenbarung geändert werden. Außer anderweitig angegeben kann eine Komponente, wie beispielsweise ein Prozessor oder ein Speicher, der derart beschrieben ist, dass er ausgebildet ist, um eine Aufgabe auszuführen, als eine allgemeine Komponente implementiert sein, die temporär ausgebildet ist, um die Aufgabe zu einer gegebenen Zeit auszuführen, oder als eine spezifische Komponente, die hergestellt ist, um die Aufgabe auszuführen. Wie hierin verwendet bezieht sich der Ausdruck „Prozessor“ auf eine oder mehrere Vorrichtungen, Schaltungen und/oder Verarbeitungskerne, die ausgebildet sind, um Daten zu verarbeiten, wie beispielsweise Computerprogramm-Anweisungen.
  • Eine detaillierte Beschreibung von einem oder mehreren Ausführungsbeispielen der vorliegenden Offenbarung wird nachfolgend zusammen mit beiliegenden Zeichnungen bereitgestellt, die die Prinzipien der vorliegenden Offenbarung darstellen. Die vorliegende Offenbarung wird in Verbindung mit solchen Ausführungsbeispielen beschrieben, aber die vorliegende Offenbarung ist nicht auf jegliches Ausführungsbeispiel beschränkt. Der Schutzbereich der vorliegenden Offenbarung ist nur durch die Ansprüche eingeschränkt und die vorliegende Offenbarung umfasst zahlreiche Alternativen, Modifikationen und Entsprechungen. Zahlreiche spezifische Details werden in der nachfolgenden Beschreibung ausgeführt, um ein tiefgreifendes Verständnis der vorliegenden Offenbarung bereitzustellen. Diese Details werden zum Zweck eines Beispiels bereitgestellt und die vorliegende Offenbarung kann gemäß den Ansprüchen praktiziert werden, ohne einige oder alle dieser spezifischen Details. Der Klarheit halber wurde technisches Material, das auf den technischen Gebieten bekannt ist, die sich auf die vorliegende Offenbarung beziehen, nicht detailliert beschrieben, so dass die vorliegende Offenbarung nicht unnötig verunklart wird.
  • 1 zeigt ein Ausführungsbeispiel einer Umgebung, in der sichere Kommunikation ausgetauscht wird. Genauer gesagt zeigt 1 eine erste Klienten-Vorrichtung 116 und eine zweite Klienten-Vorrichtung 118, die mit einer sicheren Kommunikationsplattform 120, die auf einem Server 100 angeordnet ist, über ein Netzwerk 112 verbunden sind.
  • Üblicherweise wird eine sichere Kommunikation unter Verwendung sicherer Nachricht-Datagramme ausgetauscht, die die Nachricht eines Senders kapseln. Das Datagramm erlaubt auch, dass sich Informationen, wie beispielsweise Verschlüsselungs-Informationen, Hardware bindende Informationen, Nachrichtsicherheits-Steuerungen und Entschlüsselungs-Informationen - für mehrere Empfänger (je nach Bedarf) - sicher mit der Nachricht bewegen. Das sichere Nachricht-Datagramm stellt auch Plattform-übergreifende Unterstützung bereit, so dass Benutzer kommunizieren können, unabhängig von ihren Betriebssystemen (z.B., Linux, iOS, und Windows), Mobiltelefonplattformen (z.B., iPhone, Android, Windows, Blackberry, etc.) und Vorrichtungstypen (z.B. Mobiltelefon, Tablet, Laptop, Desktop, etc.). Unter Verwendung der hierin beschriebenen Techniken sind nur vorgesehene Konten auf vorgesehenen Vorrichtungen in der Lage, die Nachrichten zu entschlüsseln. Somit ist zum Beispiel die sichere Kommunikationsplattform 120 nicht in der Lage, Nachrichten zu entschlüsseln. Wie nachfolgend detaillierter beschrieben wird, können unter Verwendung der hierin beschriebenen Techniken Nachrichten-Teilnehmer einen geheimen, sicheren Vorwärts-Kommunikationskanal beibehalten, egal ob sie synchron (z.B. wo alle Teilnehmer online sind oder anderweitig in der Lage sind, mit der Plattform 120 zu kommunizieren) oder asynchron (z.B. wo zumindest ein Teilnehmer offline oder anderweitig nicht in Kommunikation mit der Plattform 120 ist) kommunizieren.
  • Wie in 1 gezeigt ist, kann eine sichere Kommunikationsplattform 120 auf dem Server 100 implementiert sein. Der Server 100 kann einen Prozessor 102, einen Speicher 104, ein Benutzerverzeichnis 106 und die sichere Kommunikationsplattform 120 umfassen. Diesbezüglich kann der Server 100 ein allein stehender Server, ein Unternehmens-Server oder ein Server sein, der in einer Server-Farm- oder Cloud-Rechenumgebung angeordnet ist. Bei einigen Ausführungsbeispielen kann der Server 100 ein Cloud-Dienstanbieter sein, der eine virtuelle Maschine betreibt, die ausgebildet ist, um eine sichere Kommunikationsplattform 120 an ein Unternehmen als Software as a Service (SaaS; Software als Dienst) bereitzustellen.
  • Der Prozessor 102 kann jeglicher herkömmliche Prozessor sein, der in der Lage ist, mit einem Speicher 104, einem Benutzerverzeichnis 106 und der sicheren Kommunikationsplattform 120 in Wechselwirkung zu treten. Diesbezüglich kann der Prozessor 102 einen Prozessor, einen Multiprozessor, einen Multikern-Prozessor (multicore processor) oder jegliche Kombination derselben umfassen. Alternativ kann der Prozessor 102 eine dedizierte Steuerung sein, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC = Application Specific Integrated Circuit) oder ein feld-programmierbares Gate-Array (FPGA = Field-Programmable Gate Array).
  • Der Speicher 104 speichert Informationen, die durch den Prozessor 102 zugreifbar sind, einschließlich Anweisungen und Daten, die ausgeführt oder anderweitig durch den Prozessor verwendet werden können. Der Speicher 104 kann jeglicher Medientyp sein, der in der Lage ist, Informationen zu speichern, die durch den Prozessor 102 zugreifbar sind, einschließlich einem nichtflüchtigen, computerlesbaren Medium oder jeglichem anderen Medium, das Daten speichert, die mit der Hilfe einer elektronischen Vorrichtung gelesen werden können, wie beispielsweise mit einer Festplatte, einem Solid-State-Laufwerk, einer Speicherkarte, einem Flash-Drive, ROM, RAM, DVD oder anderen optischen Platten sowie anderen schreibfähigen und Nurlese-Speichern. Der Speicher 104 kann eine Kurzzeit- oder temporäre Speicherung sowie eine Langzeit- oder dauerhafte Speicherung umfassen. Gemäß einigen Ausführungsbeispielen kann der Speicher 104 ein SAN (storage area network; Speicherbereichsnetz) umfassen, das durch die sichere Kommunikationsplattform 120 zugreifbar ist.
  • Das Benutzerverzeichnis 106 kann jegliche Datenbank oder Tabelle sein, die in der Lage ist, Verzeichnisdienste bereitzustellen. Zum Beispiel kann das Benutzerverzeichnis ein Unternehmensverzeichnis umfassen, das Vor- und Nachnamen von Angestellten, Benutzemamen, Email-Adresse, Telefonnummern, Abteilungsinformation, etc. umfasst. Alternativ kann das Benutzerverzeichnis 106 eine Datenbank oder Tabelle sein, um Benutzerinformationen für Benutzer einer sicheren Kommunikationsplattform 120 beizubehalten. Diesbezüglich kann das Benutzerverzeichnis 106 verschlüsselt sein. Bei einigen Ausführungsbeispielen kann das Benutzerverzeichnis 106 als ein sicheres Verzeichnis dienen, das eine Tabelle aus zu einem Hash-Wert verarbeiteten (hashed) Benutzemamen, eine Tabelle aus appIDs (Anwendungs-IDs) und eine Tabelle aus deviceIDs (Vorrichtungs-IDs) für eine sichere Kommunikationsanwendung umfasst. Dementsprechend kann ein Benutzerverzeichnis 106 verwendet werden, um Informationen über Benutzer, Systeme, Netze, Dienste und Anwendungen gemeinschaftlich zu verwenden. Gemäß einigen Ausführungsbeispielen kann das Benutzerverzeichnis 106 ein LDAP (Lightweight Directory Access Protocol; leichtgewichtiges Verzeichniszugriffsprotokoll) umfassen.
  • Obwohl 1 den Prozessor 102, den Speicher 104, das Benutzerverzeichnis 106 und die sichere Kommunikationsplattform 120 derart darstellt, dass sie auf dem Server 100 angeordnet sind, können der Prozessor 102 und der Speicher 104 mehrere Prozessoren und Speicher aufweisen, die innerhalb desselben physischen Gehäuses angeordnet sein können oder nicht. Zum Beispiel kann der Speicher 104 eine Festplatte oder ein anderes Speichermedien sein, das in einer Serverfarm eines Datencenters angeordnet ist, wie beispielsweise ein Speicherbereichsnetz (SAN). Dementsprechend sind Bezugnahmen auf einen Prozessor, einen Computer oder einen Speicher derart zu verstehen, dass sie Bezugnahmen auf eine Sammlung aus Prozessoren oder Computern oder Speichern umfassen, die parallel arbeiten können oder nicht. Ferner kann das Benutzerverzeichnis 106 in einem separaten physischen Gehäuse von der Verarbeitungsmaschine 102 und dem Speicher 104 angeordnet sein. Ferner kann eine sichere Kommunikationsplattform 120 über mehrere Server verteilt sein.
  • Die sichere Kommunikationsplattform 120 kann ausgebildet sein, um den Austausch einer Kommunikation für Benutzer einer sicheren Kommunikationsanwendung zu erleichtern. Wie hierin verwendet kann „Kommunikation“ und „Nachrichten“ eine Vielzahl von Formen annehmen, einschließlich: Textnachrichten, Chatroom-Nachrichten, Steuerungsnachrichten, Befehle, E-Mails, Dokumente, audiovisuelle Dateien, Kurznachrichten (SMS; Short Message Service), Sprachanrufe (d. H. VOIP) und Videoanrufe. Zusätzlich kann der Inhalt von Nachrichten und/oder Kommunikation elektronische Transaktionen betreffen, wie beispielsweise Kreditkartensicherheit, Passwort-Schutz, Verzeichnisse und Speicherlaufwerk-Schutz, Videoabruf-Sicherheit, Online-Spiele, Glücksspiel, elektronische Verteilung von Musik, Videos, Dokumenten, Online-Lernsystemen, Datenbanken, Cloud-Speicher und Cloud-Umgebungen, Banktransaktionen, Abstimm-Prozesse, militärische Kommunikation, Sicherheit bei medizinischen Aufzeichnungen, Kommunikation zwischen medizinisch implantierten Vorrichtungen und Ärzten, etc. Der Austausch von Nachrichten und/oder Kommunikation wird nachfolgend ausführlicher erklärt.
  • Eine sichere Kommunikationsplattform 120 kann verschlüsselte Kommunikation bereitstellen, die ohne weiteres in bestehende Systeme integriert werden und diese sichern kann, während eine konforme und sichere Kommunikation bereitgestellt wird. Diesbezüglich kann die sichere Kommunikationsplattform 120 in existierende Identitätssysteme integriert werden, wie beispielsweise das Benutzerverzeichnis 106. Ferner kann die sichere Kommunikationsplattform 120 eine eingebaute Unterstützung für Untemehmens-Datenspeicherungs- und Unterstützungs-Systeme umfassen.
  • Die sichere Kommunikationsplattform 120 kann auch eine Datenbank 130 umfassen. Die Datenbank 130 kann eine relationale Datenbank sein, die Informationen in einer Vielzahl von Tabellen speichert. Diesbezüglich kann die Datenbank 130 eine Aufzeichnung für jeden Benutzer der Plattform 120 umfassen, um Benutzern zu ermöglichen, andere Benutzer zu finden und mit anderen zu kommunizieren. Dementsprechend kann die Datenbank 130 eine Tabelle aus Grund-Identifizierern 132, eine Tabelle aus Knoten-Identifizierem 134, einen Pool aus flüchtigen Schlüsseln 136 und eine Tabelle aus Benutzerprofil-Informationen 130 umfassen, die Schlüsseltreuhänderbündel von Benutzern umfassen. Zusätzlich können Benutzerprofil-Informationen Privatsphäremodus- und Privatsphärelisten-Einträge speichern, um zu kontrollieren, mit wem der Benutzer kommunizieren könnte. Zusätzlich kann die Datenbank 130 eine Tabelle aus Kommunikation 140 umfassen. D.h., die sichere Kommunikationsplattform kann Kommunikation für eine vorbestimmte Zeit in der Tabelle 140 speichern. Zum Beispiel, wenn eine Kommunikation empfangen wird, kann die sichere Kommunikationsplattform die Kommunikation in der Tabelle aus Kommunikationen 140 speichern und eine Warnung an den Empfänger bereitstellen, wie z.B. eine Push-Benachrichtigung. Dementsprechend kann ein Empfänger auf die sichere Kommunikationsplattform zugreifen, um seine oder ihre Kommunikation zu erhalten, die in der Tabelle 140 gespeichert ist. Bei bevorzugten Ausführungsbeispielen kann die Tabelle 140 Kommunikation 30 Tage lang speichern; dies kann jedoch nach Bedarf eingestellt werden, basierend auf Industriestandards und/oder oder entsprechend Regulierungsrahmen.
  • Während in 1 eine Datenbank gezeigt ist, können andere Techniken verwendet werden, um die Informationen zu speichern, die durch die Plattform 120 verwendet werden, um den Austausch einer verschlüsselten Kommunikation zu ermöglichen. Zum Beispiel kann die Kommunikationstabelle in einem separaten Speicher gespeichert sein, wie beispielsweise Speicher 104, anstelle in der Datenbank 130 gespeichert zu sein. Alternativ können die Informationen, die in der Datenbank 130 enthalten sind, zwischen Datenbank 130 und Benutzerverzeichnis 106 aufgeteilt werden. Diesbezüglich können Datenbank 130 und Benutzerverzeichnis 106 schnittstellenmäßig verbunden sein, um Informationen auszutauschen. Ferner können zusätzliche Informationen sicher auf der Plattform 120 gespeichert werden, ob in der Datenbank 130 oder einem anderen geeigneten Ort.
  • Die sichere Kommunikationsplattform 120 kann eine oder mehrere Schnittstelle(n) zum Kommunizieren mit der ersten Klienten-Vorrichtung 116 und der zweiten Klienten-Vorrichtung 118 umfassen. Als ein Beispiel kann die Plattform 120 eine Anwendungs-Programmierungs-Schnittstelle (API; application programming interface) bereitstellen, die ausgebildet ist, um mit Anwendungen zu kommunizieren, die auf Klienten-Vorrichtungen installiert sind. Die Plattform 120 kann auch andere Typen von Schnittstellen bereitstellen, wie beispielsweise eine Web-Schnittstelle oder alleinstehende Software-Programme für Desktop-Computer und Laptops, die auf verschiedenen Betriebssystemen (BS) laufen. Die Web-Schnittstelle kann es Benutzern von Klienten-Vorrichtungen erlauben, sicher Kommunikation auszutauschen (ob miteinander oder mit anderen Benutzem), ohne den Bedarf nach einer separat installierten Kommunikationsanwendung. Das alleistehende Software-Programm kann es Benutzern erlauben, sicher Kommunikation über Software auszutauschen, die durch jeden Benutzer heruntergeladen wird. Gemäß einigen Ausführungsbeispielen kann die Plattform 120 eine Haupt-Uhr-Zeit (master clock time) verfügbar machen, die über eine oder mehrere Schnittstelle(n) 122 verfügbar ist. Die Haupt-Uhr-Zeit kann von Klienten-Anwendungen verwendet werden, um sichere Lebenszeit- (TTL-; time-to-live) Werte von Nachrichten durchzusetzen. Die TTL-Werte können verwendet werden, um Zeit-Einschränkungen (z.B. im Namen eines Nachricht-Senders) auf einen Kommunikations-Zugriff (z.B. durch einen Empfänger) durchzusetzen.
  • Benutzer von Klienten-Vorrichtungen, wie beispielsweise der Klienten-Vorrichtungen 116 und 118, können sicher miteinander unter Verwendung der hierin beschriebenen Techniken kommunizieren. Zum Beispiel können die erste Klienten-Vorrichtung 116 und die zweite Klienten-Vorrichtung 118 die sichere Kommunikationsplattform 120 und die Techniken, die hierin beschrieben sind, über eine sichere Kommunikationsanwendung 146 und/oder 148 verwenden. Wie in 1 gezeigt ist, können Klienten-Vorrichtungen mobile Vorrichtungen sein, wie beispielsweise Laptops, Smartphones oder Tablets, oder Rechenvorrichtungen, wie beispielsweise Desktop-Computer oder Server. Wie vorangehend erwähnt wurde, erlaubt die sichere Kommunikationsanwendung, die hierin beschrieben wird, eine Plattform-übergreifende Kommunikation, wodurch es Benutzern von verschiedenen Vorrichtungen ermöglicht wird, nahtlos zu kommunizieren. Ferner kann jeder Benutzer unterschiedliche Instanzen der Kommunikationsanwendung über mehrere Vorrichtungen haben. D.h., der Benutzer der Vorrichtung 116 kann in der Lage sein, Nachrichten sowohl auf der Vorrichtung 116 als auch jeglichen anderen Vorrichtungen zu empfangen, die der Benutzer haben kann, die eine Kopie der sicheren Kommunikationsanwendung umfasst, wie beispielsweise ein Laptop. Bei einigen Ausführungsbeispielen können Klienten-Vorrichtungen 116 und 118 persönliche Vorrichtungen des Benutzers sein (d. h. ein BYOD-Szenario; bring your own device; bring deine eigene Vorrichtung). Alternativ können Klienten-Vorrichtungen andere Typen von Vorrichtungen umfassen, wie beispielsweise Spielekonsolen, Kamera/Video-Recorder, Video-Abspielgeräte (z.B. einschließlich DVD, Blu-ray, rote Laser, optische und/oder Streaming-Technologien), Smart-TVs und andere mit dem Netzwerk verbundene Geräte, je nach Bedarf.
  • Eine Kommunikation zwischen Benutzern von Klienten-Vorrichtungen 116 und 118 kann über das Netzwerk 112 ausgetauscht werden. Das Netzwerk 112 kann verschiedene Konfigurationen umfassen und verschiedene Protokolle verwenden, einschließlich das Internet, World Wide Web, Intranetze, virtuelle private Netze, lokale Ethernet-Netzwerke, private Netze, die Kommunikationsprotokolle verwenden, die einem oder mehreren Unternehmen gehören, zelluläre und drahtlose Netze (z.B. Wifi), Sofortnachrichtendienste, HTTP, und SMTP und verschiedene Kombinationen der Vorangehenden.
  • Wie nachfolgend detaillierter beschrieben wird, kann der Prozessor 102 eine Mehrzahl von Aufgaben im Namen der sicheren Kommunikationsplattform 120 ausführen. Ferner, immer wenn beschrieben wird, dass die Plattform 120 eine Aufgabe ausführt, kann entweder eine einzelne Komponente oder eine Teilmenge an Komponenten oder alle Komponenten der Plattform 120 oder des Unternehmensservers 100 zusammenarbeiten, um die Aufgabe auszuführen. Zum Beispiel kann die Plattform 120 einen der Schlüssel in einem Pool aus öffentlichen ECDH-Schlüsseln als einen „Reserve“-Schlüssel designieren, der von einem Benutzer einer Vorrichtung empfangen wird. Eine andere Aufgabe, die durch Plattform 120 ausgeführt wird, kann das Ermöglichen der Hinzufügung von neuen Schlüsseln zu einem Pool aus öffentlichen Schlüsseln eines Benutzers umfassen, wenn sie verwendet werden. Eine wiederum andere Aufgabe, die durch Plattform 120 ausgeführt wird, kann das dynamische Einstellen der Größe eines Pools aus öffentlichen Schlüsseln eines Benutzers nach Bedarf umfassen.
  • Um die oben beschriebene, sichere Kommunikationsplattform zu verwenden, müssen Benutzer die sichere Kommunikationsanwendung auf ihre Klienten-Vorrichtung herunterladen und installieren. 2 zeigt eine exemplarische Klienten-Vorrichtung 200, die auf die Sicherheitsplattform 120 über eine sichere Kollaborationsanwendung zugreifen kann. Diesbezüglich umfasst die Klienten-Vorrichtung 200 einen Prozessor 202, einen Speicher 204, eine Anzeige 206, eine I/O-Einheit (I/O = input/output; Eingang/Ausgang) 208, einen kryptographischen („Krypto-“) Beschleuniger 212 und eine Netzwerk-Schnittstelle 214, die alle durch den Bus 216 miteinander verbunden sind.
  • Der Prozessor 202 kann jeglicher Prozessor sein, der in der Lage ist, mit den Komponenten der Klienten-Vorrichtung 200 zusammenzuwirken. Zum Beispiel kann der Prozessor 202 einen Prozessor, Multiprozessoren, Multikern-Prozessor, eine dedizierte Steuerung, wie beispielsweise einen ARM-Prozessor, eine ASIC oder eine FPGA oder eine Kombination derselben umfassen. Der Speicher 204 kann Informationen speichern, die durch den Prozessor 202 zugreifbar sind, einschließlich Anweisungen und Daten, die durch den Prozessor 202 und/oder den Krypto-Beschleuniger 212 ausgeführt oder anderweitig verwendet werden können. Zum Beispiel kann der Speicher 204 Anweisungen speichern, wie beispielsweise die Anwendung 224. Bei bevorzugten Ausführungsbeispielen kann die Anwendung 224 eine sichere Kollaborations-Anwendung sein, die Benutzern die Fähigkeit bereitstellt, an Stimm- und Video-Anrufen teilzunehmen, verschlüsselten Inhalt gemeinschaftlich zu verwenden und verschlüsselte Kommunikation auszutauschen. Eine verschlüsselte Kommunikation kann eine direkte Kommunikation (z.B. eins-zu-eins-Kommunikation zwischen einem Sender und einem Empfänger), Gruppen-Chat oder sichere Chatroom-Kommunikation umfassen. Daten, die durch den Speicher 204 gespeichert werden, können die Datenbank 234 umfassen. Die Datenbank 234 kann über einen Verschlüsselungs-Algorithmus verschlüsselt werden, wie beispielsweise einen AES (Advanced Encryption Standard; hochentwickelter Verschlüsselungsstandard), einen 256-Bit-Schlüssel, der hierin nachfolgend als lokaler Speicherschlüssel bezeichnet wird. Bei einigen Ausführungsbeispielen kann die Datenbank 234 Informationen speichern, die sich auf eine sichere Kollaborations-Anwendung 224 beziehen. Zum Beispiel kann die Datenbank 234 Informationen indizieren, die sich auf die sichere Kollaborations-Anwendung beziehen, wie beispielsweise Schlüssel-Informationen, Benutzer-Informationen, Freunde-Informationen und Kommunikation. Diesbezüglich kann Kommunikation, die durch die sichere Kollaborations-Anwendung übertragen und empfangen wird, in der Datenbank 234 gespeichert werden, einschließlich einem Nachricht-Identifizierer, einem Hash des Anwendungs-Identifizierers des Senders, einem Hash-Wert des Benutzemamens des Empfängers, einem Hash-Wert des Anwendungs-Identifizierers des Empfängers, dem Kommunikations-Verschlüsselungsschlüssel und einem Zeitstempel jeder Kommunikation. Dementsprechend kann der Speicher 204 jeglicher Medientyp sein, der in der Lage ist, die obigen Informationen zu speichern, einschließlich einem nichtflüchtigen, computerlesbaren Medium oder jeglichem anderen geeigneten Medium, das Daten speichert, die mit der Hilfe einer elektronischen Vorrichtung gelesen werden können, wie beispielsweise mit einer Festplatte, einem Solid-State-Laufwerk, einer Speicherkarte, einem Flash-Drive, ROM, RAM, DVD oder anderen optischen Platten sowie anderen schreibfähigen und Nurlese-Speichern. Ferner kann der Speicher 204 eine Kurzzeit- oder temporäre Speicherung umfassen sowie eine Langzeit- oder dauerhafte Speicherung.
  • Die Anzeige 206 kann jegliche elektronische Vorrichtung sein, die in der Lage ist, Informationen visuell zu präsentieren. Bei mobilen Geräten, wie beispielsweise Smartphones und Tablets, kann die Anzeige 206 eine Touchscreen-Anzeige sein. Dementsprechend kann die Anzeige 206 in eine I/O-Einheit 208 integriert sein, um Benutzereingaben sowie Ausgangsdaten zu detektieren. Bei Rechenvorrichtungen kann die Anzeige 206 ein Ausgang sein, wie beispielsweise ein VGA-, DVI- oder HDMI-Ausgang, der ausgebildet ist, um mit einem Monitor verbunden zu sein. Die I/O-Einheit kann in der Lage sein, eine Eingabe von einem Benutzer zu empfangen. Wie vorangehend erwähnt wurde kann die I/O-Einheit 208 mit Touchscreen-Anzeigen arbeiten, um eine Eingabe von einem Benutzer zu empfangen. Alternativ kann die I/O-Einheit eine Schnittstelle sein, die in der Lage ist, mit Eingangs- und Ausgangs-Vorrichtungen zusammenzuwirken, wie beispielsweise Tastaturen, Mäusen, Monitoren, Druckern, etc. Zusätzlich kann die I/O-Einheit 208 zumindest einen Beschleunigungsmesser, ein GPS-System (GPS = Global Positioning Satellite), einen Magnetometer, einen Näherungssensor, einen Umgebungslichtsensor, einen Feuchtigkeitssensor, ein Gyroskop, etc. umfassen, um die Ausrichtung der Vorrichtung sowie Umgebungsfaktoren zu bestimmen.
  • Ein Krypto-Beschleuniger 212 kann dedizierte Hardware, Software oder jegliche Kombination derselben sein, die in der Lage ist, kryptographische Operationen auszuführen, wie beispielsweise eine Schlüsselerzeugung, Zufallszahlen-Erzeugung, Verschlüsselung/Entschlüsselung, Signatur-Erzeugung, Signatur-Verifizierung, etc. Bei bevorzugten Ausführungsbeispielen ist der Krypto-Beschleuniger 212 ein dedizierter Prozessor, der ausgebildet ist, um kryptographische Operationen im Namen des Prozessors 202 auszuführen. Diesbezüglich kann die Anwendung 224 den Krypto-Beschleuniger 212 verwenden, um die sicheren Kommunikationsfunktionen bereitzustellen, die nachfolgend detaillierter beschrieben werden.
  • Die Netzwerkschnittstelle 214 kann eine dedizierte Hardware, Software oder jegliche Kombination derselben sein, die in der Lage ist, die Klienten-Vorrichtung 200 mit dem Netzwerk 112 zu verbinden. Diesbezüglich kann die Netzwerkschnittstelle 214 verschiedene Kombinationen umfassen und verschiedene Kommunikationsprotokolle verwenden, einschließlich Ethernet, TCP/IP, zelluläre und drahtlose Kommunikationsprotokolle (z.B. 802.11, LTE), Sofortnachrichtendienste, HTTP, und SMTP und verschiedene Kombinationen der Vorangehenden.
  • Nach dem Installieren der sicheren Kommunikationsanwendung muss sich der Benutzer selbst und seine erste Vorrichtung auf der sicheren Kommunikationsplattform registrieren. 3 zeigt einen Prozess 300 für eine Benutzer-Registrierung an der sicheren Kommunikationsplattform. Der Prozess 300 beginnt bei Block 310 mit dem Herleiten eines Grund-Benutzeridentifizierers (IDr). Bei bevorzugten Ausführungsbeispielen ist der Grund-Benutzeridentifizierer (IDr) ein Benutzername, den der erste Benutzer mit der sicheren Kommunikationsplattform aushandelt. Bei alternativen Beispielen kann der Grund-Benutzeridentifizierer (IDr) ein Identifizierer sein, der durch einen Dritten zugewiesen wird, wie beispielsweise einen Systemadministrator. Gemäß diesen Ausführungsbeispielen kann der Grund-Benutzeridentifizierer (IDr) Firmen-, Unternehmens- oder Regierungs-Anmeldeinformationen zugeordnet sein. Bei einigen Beispielen kann der Grund-Benutzeridentifizierer (IDr) ein zufälliger Identifizierer sein, der dem Benutzer zugewiesen ist. Der zufällige Identifizierer kann durch die sichere Kommunikationsanwendung erzeugt und durch die sichere Kommunikationsplattform bestätigt werden. Alternativ kann der zufällige Identifizierer dem Benutzer durch die sichere Kommunikationsplattform zugewiesen werden.
  • Bei Block 320 erzeugt die sichere Kommunikationsanwendung ein Grundidentitäts-Schlüsselpaar (Kr, PKr) für den Benutzer. Das Grundidentitäts-Schlüsselpaar kann ein asymmetrisches Langzeit-Schlüsselpaar sein, das unter Verwendung einer asymmetrischen Herleitungsfunktion erzeugt wird. Bei bevorzugten Ausführungsbeispielen wird das Grundidentitäts-Schlüsselpaar gemäß einer elliptischen Kurven-Kryptographie (ECC; elliptic curve cryptography) unter Verwendung einer ersten P-521-Kurve erzeugt. Bei Block 330 erzeugt die sichere Kommunikationsanwendung einen Fernspeicher-Grundschlüssel (Krs). Der Fernspeicher-Grundschlüssel ist ein symmetrischer Schlüssel, der zufällig durch die sichere Kommunikationsanwendung erzeugt wird. Der Fernspeicher-Grundschlüssel kann verwendet werden, um Sicherungen auf Account-Ebene der sicheren Kommunikationsanwendung zu verschlüsseln. D.h., Account- bzw.- Konto-Informationen können mit dem Fernspeicher-Grundschlüssel unter Verwendung jegliches symmetrischen Verschlüsselungs-Algorithmus verschlüsselt werden, wie beispielsweise AES-GCM, und auf der sicheren Kommunikationsplattform gespeichert werden. Als nächstes erzeugt die sichere Kommunikationsanwendung einen Knotenspeicher-Grundschlüssel (Knsr) bei Block 340. Der Knotenspeicher-Grundschlüssel wird zufällig erzeugt und verwendet, um Daten zu verschlüsseln, die auf der Vorrichtung des Benutzers gespeichert sind. Daten, die auf der Benutzervorrichtung gespeichert sind, können gemäß jeglichem symmetrischen Verschlüsselungs-Algorithmus verschlüsselt werden, vorzugsweise AES-GCM. Bei Block 350 leitet die sichere Kommunikationsanwendung einen Treuhänder-Schlüssel (Ke) her. Der Treuhänder-Schlüssel wird zufällig erzeugt. Wie nachfolgend detaillierter erklärt wird, wird der Treuhänder-Schlüssel verwendet, um Benutzerinformationen zu verschlüsseln, einschließlich einer Mehrzahl von Schlüsseln, die zum Identifizieren des Benutzers verwendet werden, die auf die sichere Kommunikationsplattform hochgeladen und dort gespeichert werden. Die Benutzerregistrierung wird bei Block 360 abgeschlossen, wenn die sichere Kommunikationsanwendung den öffentlichen Grundschlüssel (PK; public key; öffentlicher Schlüssel) (PKr) und den Grund-Benutzeridentifizierer (IDr) an die sichere Kommunikationsplattform überträgt. Ansprechend auf das Empfangen des öffentlichen Grundschlüssels (PKr) und des Grund-Benutzeridentifizierers (IDr) erzeugt die sichere Kommunikationsplattform einen neuen Eintrag in der Datenbank 130 für den Benutzer.
  • In Fällen, in denen der Benutzer mehrere Vorrichtungen hat oder seine/ihre Vorrichtung austauscht besteht ein Bedarf zum sicheren Übertragen der Schlüssel, die den Benutzer identifizieren, an die nachfolgenden Vorrichtungen. 4 zeigt einen Prozess 400 zum sicheren Hochladen dieser Schlüssel auf die sichere Kommunikationsplattform. Bei Block 410 werden der private Grundschlüssel (Kr), der Fernspeicher-Schlüssel (Krs), und der Knotenspeicher-Grundschlüssel (Knsr) mit dem Treuhänder-Schlüssel (Ke) verschlüsselt. Vorzugsweise werden der private Grundschlüssel (Kr), der Fernspeicher-Schlüssel (Krs), und der Knotenspeicher-Grundschlüssel (Knsr) unter Verwendung eines symmetrischen Verschlüsselungs-Algorithmus verschlüsselt, wie beispielsweise AES-GCM. Bei Block 420 leitet die sichere Kommunikationsanwendung einen Schlüssel aus dem Passwort des Benutzers her. Der Passwort-basierte Schlüssel wird unter Verwendung einer Passwort-basierten Schlüsselherleitungsfunktion erzeugt, wie beispielsweise Scrypt. Bei Block 430 wird der Treuhänder-Schlüssel mit dem hergeleiteten, Passwort-basierten Schlüssel verschlüsselt. Bei Block 440 erzeugt die sichere Kommunikationsanwendung ein Schlüsseltreuhänderbündel, das den verschlüsselten privaten Grundschlüssel, den verschlüsselten Fernspeicher-Schlüssel (Krs) und den verschlüsselten Knotenspeicher-Grundschlüssel umfasst. Gemäß einigen Ausführungsbeispielen kann der verschlüsselte Treuhänder-Schlüssel in dem Schlüsseltreuhänderbündel umfasst sein, das durch die sichere Kommunikationsanwendung erzeugt und auf die sichere Kommunikationsplattform hochgeladen wird. Alternativ kann der verschlüsselte Treuhänder-Schlüssel lokal auf der Vorrichtung des Benutzers, auf einem nichtflüchtigen, computerlesbaren Medium, oder auf einem Dritt-Repository gespeichert werden. Bei Block 450 wird das Schlüsseltreuhänderbündel zu dem Server übertragen. Auf dem Server wird das Schlüsseltreuhänderbündel in der Datenbank der sicheren Kommunikationsplattform gespeichert, wo es dem Profil des Benutzers zugeordnet ist und nach Anfrage von dem Benutzer verfügbar gemacht wird. Wie nachfolgend detaillierter erörtert wird, können nachfolgende Installationen der sicheren Kommunikationsanwendung das Schlüsseltreuhänderbündel von dem Server anfragen, um die nachfolgende Installation mit den Schlüsseln des Benutzers bereitzustellen. Bei sichereren Implementierungen kann der Block 450 übersprungen werden. Diesbezüglich muss der Benutzer das Schlüsseltreuhänderbündel an nachfolgende Installationen übertragen. Während dies schwieriger zu implementieren sein kann, würde es einen höheren Grad an Sicherheit bereitstellen.
  • Wie vorangehend erwähnt wurde, umfasst ein Teil des Registrierungsprozesses das Registrieren der Vorrichtung des Benutzers an der sicheren Kommunikationsplattform. Eine Vorrichtungs-Registrierung tritt jedes Mal auf, wenn sich ein Benutzer an der sicheren Kommunikationsanwendung auf einer neuen Vorrichtung anmeldet, einschließlich auf der ersten Vorrichtung nachdem die Benutzerregistrierung auftritt. 5 zeigt einen Beispielprozess 500 zum Registrieren einer Vorrichtung an der sicheren Kommunikationsplattform.
  • Die Vorrichtungs-Registrierung beginnt bei Block 510, wo die sichere Kommunikationsanwendung ein Knotenidentitäts-Schlüsselpaar (Kn, PKn) erzeugt. Das Knotenidentitäts-Schlüsselpaar kann ein asymmetrisches Langzeit-Schlüsselpaar sein, das unter Verwendung einer asymmetrischen Herleitungsfunktion erzeugt wird. Bei bevorzugten Ausführungsbeispielen wird das Knotenidentitäts-Schlüsselpaar gemäß EEC unter Verwendung einer zweiten P-521-Kurve erzeugt. Das Knotenidentitäts-Schlüsselpaar ist eindeutig für die Instanz der sicheren Kommunikationsanwendung. Diesbezüglich, wenn der Benutzer die sichere Kommunikationsanwendung auf mehreren Vorrichtungen installiert hat, hat jede Vorrichtung ihr eigenes, eindeutiges Knotenidentitäts-Schlüsselpaar, während das Grundidentitäts-Schlüsselpaar für jede Installation dasselbe ist.
  • Bei Block 520 leitet die sichere Kommunikationsanwendung einen Lokalspeicher-Vorrichtungs-Schlüssel (Klsd) her. Der Lokalspeicher-Vorrichtungs-Schlüssel schützt Daten, die lokal auf der Vorrichtung des Benutzers gespeichert sind, über symmetrische Verschlüsselung. Diesbezüglich wird der Lokalspeicher-Vorrichtungs-Schlüssel erzeugt durch Kombinieren des Knotenspeicher-Grundschlüssels und Vorrichtungsdaten durch eine Schlüsselherleitungsfunktion. Bei bevorzugten Ausführungsbeispielen ist die Schlüsselherleitungsfunktion eine HMAC-Schlüsselherleitungsfunktion mit SHA-256 als zugrundeliegende Hash-Funktion. Bei nachfolgenden Installationen erhält die Kommunikationsanwendung den Knotenspeicher-Grundschlüssel von der sicheren Kommunikationsplattform, wie nachfolgend detaillierter erörtert wird. Vorrichtungsdaten umfassen Vorrichtungs-spezifische Daten und/oder Identifizierer, die aus installierten Hardware- oder Betriebssystem-Quellen hergeleitet werden und konstant über Anwendungs-Installationen sind. Zum Beispiel umfassen Vorrichtungsdaten Festplatten-Identifizierer, Motherboard-Identifizierer, CPU-Identifizierer und MAC-Adressen für drahtlos, LAN, Bluetooth und optische Karten, Konfigurationsinformationen oder eine Kombination der Vorangehenden.
  • Bei Block 530 erzeugt die sichere Kommunikationsanwendung einen Knoten-Identifizierer (IDn). Der Knoten-Identifizierer ist ein zufälliger Identifizierer, der durch zu einem Hash-Wert verarbeiten eines Satzes aus Pseudozufallsbytes unter Verwendung von SHA256 erzeugt wird. Der Knoten-Identifizierer wird durch die sichere Kommunikationsplattform verwendet, um die sichere Kommunikationsanwendung und die Vorrichtung zu identifizieren, der sie zugeordnet ist. Bei Block 540 erzeugt die sichere Kommunikationsanwendung eine erste Signatur des öffentlichen Knotenidentitäts-Schüssels unter Verwendung des privaten Grundidentitäts-Schlüssels. Bei bevorzugten Ausführungsbeispielen erzeugt die sichere Kommunikationsanwendung die Signatur gemäß dem ECDSA (Elliptic Curve Digital Signature Algorithm; Digital-Signaturalgorithmus einer elliptischen Kurve). Bei Block 550 werden der Knoten-Identifizierer (IDn), der öffentliche Knoten-Schlüssel (PKn) und die erste Signatur des öffentlichen Knotenidentitäts-Schlüssels (SKr(PKn)) an den Server übertragen. Die sichere Kommunikationsplattform speichert den Knoten-Identifizierer (IDn), den öffentlichen Knoten-Schlüssel (PKn) und die erste Signatur des öffentlichen Knotenidentitäts-Schlüssels (SKr(PKn)) in dem Benutzerprofil auf der sicheren Kommunikationsplattform.
  • Nachdem sowohl Benutzer- als auch Vorrichtungs-Registrierung abgeschlossen sind, erzeugt jede Instanz der sicheren Kommunikationsanwendung einen Pool aus asymmetrischen Schlüsselpaaren. Diese Schlüsselpaare werden als Teil eines Schlüssel-Vereinbarungsprotokolls verwendet und ermöglichen, dass die sichere Kommunikationsanwendung mit dem Empfangen einer verschlüsselten Kommunikation beginnt. Wenn die sichere Kommunikationsanwendung mit dem Empfangen einer verschlüsselten Kommunikation beginnt, wird der Pool an asymmetrischen Schlüsselpaaren entleert und muss wieder aufgefüllt werden. 6 zeigt ein Verfahren 600 zum Bestücken des Pools aus flüchtigen asymmetrischen Schlüsselpaaren.
  • Bei Block 610 erzeugt die sichere Kommunikationsanwendung einen Pool aus flüchtigen, asymmetrischen Schlüsselpaaren (KEn und PKEn). Bei bevorzugten Ausführungsbeispielen werden die flüchtigen, asymmetrischen Schlüsselpaare gemäß EEC unter gemäß einer dritten P-521-Kurve erzeugt. Bei Block 620 wird jedem Schlüsselpaar (KEn und PKEn) ein eindeutiger Identifizierer (IDken) zugewiesen. Als nächstes berechnet bei Block 630 die sichere Kommunikationsanwendung eine Signatur für jeden der flüchtigen öffentlichen Schlüssel (Ephemeral Public Keys; PKEn) unter Verwendung des privaten Knotenidentitäts-Schlüssels (Kn). Die Signaturen für jeden flüchtigen, öffentlichen Schlüssel können gemäß jeglichem standardmäßigen Signaturerzeugungs-Algorithmus erzeugt werden, einschließlich ECDSA. Bei Block 640 wird jeder der flüchtigen, öffentlichen Schlüssel (PKEn) zusammen mit seinem eindeutigen Identifizierer und entsprechender Signatur auf den Server hochgeladen. Dementsprechend speichert der Server den Pool aus flüchtigen, öffentlichen Schlüsseln in dem Benutzerprofil auf der sicheren Kommunikationsplattform. Der entsprechende Pool aus flüchtigen, privaten Schlüsseln wird mit dem Lokalspeicher-Vorrichtungs-Schlüssel verschlüsselt und sicher, zusammen mit ihren zugewiesenen eindeutigen Identifizierern, auf der Vorrichtung des Benutzers gespeichert.
  • Wie vorangehend erwähnt wurde, wird der Prozess 600 anfänglich ausgeführt, nach der ersten Benutzerregistrierung und Vorrichtungsregistrierung des Benutzers. Der Prozess 600 wird für jede neue Vorrichtungsregistrierung wiederholt. Schließlich kann das in 6 gezeigte Verfahren nach Bedarf wiederholt werden, wenn der Pool aus asymmetrischen Schlüsseln leer wird. Wie nachfolgend detaillierter beschrieben wird, wenn eine sendesichere Kommunikationsanwendung einen der öffentlichen Schlüssel verwendet, entfernt die sichere Kommunikationsplattform den öffentlichen Schlüssel aus dem Pool von verfügbaren Schlüsseln auf der sicheren Kommunikationsplattform. Falls der Pool erschöpft ist, wird der letzte Schlüssel in dem Pool wieder verwendet, bis der Pool wieder aufgefüllt werden kann.
  • Wie vorangehend erörtert wurde, kann ein Benutzer die sichere Kommunikationsanwendung auf eines oder mehrere sekundäre Vorrichtungen herunterladen und installieren. Gemäß den hierin beschriebenen Verschlüsselungstechniken muss der Benutzer die eine oder mehreren sekundären Vorrichtungen mit Grund-Identifizierern und -Schlüsseln konfigurieren, die während der anfänglichen Registrierung für den Benutzer und seine erste Vorrichtung erzeugt wurden. 7 zeigt einen Prozess zum Bereitstellen einer sekundären Vorrichtung mit einem oder mehreren Grund-Identifizierern und -Schlüsseln.
  • Nach dem Herunterladen der sicheren Kommunikationsanwendung auf seine sekundäre Vorrichtung gibt der Benutzer seinen Grund-Identifizierer (z.B. Benutzernamen) und Passphrase ein. Bei Block 710 empfängt die sichere Kommunikationsanwendung Grund-Identifizierer und Passphrase. Bei Block 720 fordert die sichere Kommunikationsanwendung ein Schlüsseltreuhänderbündel von der sicheren Kommunikationsplattform. Die Anfrage nach dem Schlüsseltreuhänderbündel kann den Grund-Identifizierer oder einen anderen eindeutigen Identifizierer umfassen, um der sicheren Kommunikationsplattform zu ermöglichen, durch ihre Datenbank zu suchen, um zu bestimmen, ob ein Schlüsseltreuhänderbündel existiert. Wenn das Schlüsseltreuhänderbündel nicht in der Datenbank vorhanden ist, benachrichtigt die sichere Kommunikationsplattform die sichere Kommunikationsanwendung, dass es nicht existiert und fordert an, dass die sichere Kommunikationsanwendung ein Schlüsseltreuhänderbündel bereitstellt. Diesbezüglich folgt die sichere Kommunikationsanwendung den oben beschriebenen Techniken. Wenn jedoch ein Schlüsseltreuhänderbündel auf dem Server gespeichert ist, empfängt die sichere Kommunikationsanwendung ein verschlüsseltes Schlüsseltreuhänderbündel von dem Server bei Block 730.
  • Bei Block 740 erhält die sichere Kommunikationsanwendung den Treuhänder-Schlüssel. Gemäß einigen Beispielen ist der Treuhänder-Schlüssel mit einem aus der Passphrase hergeleiteten Schlüssel verschlüsselt und auf der sicheren Kommunikationsplattform mit dem Schlüsseltreuhänderbündel gespeichert. Die sichere Kommunikationsanwendung leitet den aus der Passphrase hergeleiteten Schlüssel aus der empfangenen Passphrase her und entschlüsselt den verschlüsselten Treuhänder-Schlüssel, der in dem verschlüsselten Schlüsseltreuhänderbündel empfangen wurde, das von der sicheren Kommunikationsplattform empfangen wurde. Bei anderen Beispielen kann der Benutzer den Treuhänder-Schlüssel von seiner ersten Vorrichtung erhalten. Zum Beispiel kann der Treuhänder-Schlüssel von der ersten Vorrichtung zu der zweiten Vorrichtung über ein USB-Laufwerk übertragen werden. Alternativ kann der Treuhänder-Schlüssel über einen unterschiedlichen Kanal übertragen werden, wie beispielsweise Email, Textnachricht oder ein Dritt-Repository. Bei diesen Beispielen kann der Treuhänder-Schlüssel mit dem aus der Passphrase hergeleiteten Schlüssel verschlüsselt werden, bevor er von der ersten Vorrichtung übertragen wird. Dementsprechend berechnet die zweite Vorrichtung den aus dem Password hergeleiteten Schlüssel und entschlüsselt den Treuhänder-Schlüssel. Dies stellt ein zusätzliches Sicherheitsmerkmal gegen böswillige Benutzer das, die die sichere Kommunikationsanwendung zu betrügerischen Zwecken bereitstellen, da nur das korrekte Passwort in der Lage ist, den Treuhänder-Schlüssel zu entschlüsseln und den entschlüsselten Treuhänder-Schlüssel zu verwenden, um die Inhalte des Schlüsseltreuhänderbündels zu entschlüsseln.
  • Bei Block 750 entschlüsselt die sichere Kommunikationsanwendung das verschlüsselte Schlüsseltreuhänderbündel unter Verwendung des Treuhänder-Schlüssels. Das Schlüsseltreuhänderbündel kann gemäß einem symmetrischen Verschlüsselungs-Algorithmus verschlüsselt werden, wie beispielsweise AES. Bei Block 760 wird die sichere Kommunikationsanwendung auf der zweiten Vorrichtung unter Verwendung der Informationen ausgebildet, die in dem entschlüsselten Schlüsseltreuhänderbündel enthalten sind. Diesbezüglich erhält die sichere Kommunikationsanwendung auf der zweiten Vorrichtung den privaten Grundschlüssel (Kr), den Fernspeicher-Grundschlüssel (Krs) und den Knotenspeicher-Grundschlüssel (Knsr) von dem entschlüsselten Schlüsseltreuhänderbündel. Nach dem Entpacken des Schlüsseltreuhänderbündels ist die sichere Kommunikationsanwendung in der Lage, die Vorrichtungs-Registrierung unter Verwendung der Informationen abzuschließen, die aus dem entschlüsselten Schlüsseltreuhänderbündel erhalten werden. Dies ermöglicht die sichere Übertragung einer Mehrzahl von Schlüsseln von einer Benutzervorrichtung zur Anderen, was es beiden Vorrichtungen erlauben würde, sichere Kommunikation basierend auf demselben vertrauenswürdigen Grund-Identifizierer zu senden und zu empfangen. Ferner stellt dies eine Verbesserung gegenüber Systemen auf dem Stand der Technik dar, die erfordern würden, dass der Benutzer einen neuen Satz aus privaten Schlüsseln für jede nachfolgende Installation erzeugt. Somit ermöglichen die hierin beschriebenen Techniken eine effizientere und sicherere Installation von nachfolgenden Anwendungen.
  • Die sichere Kommunikation, die durch die sichere Kommunikationsplattform bereitgestellt wird, kann besser derart verstanden werden, dass sie eine Knoten-zu-Knoten-Kommunikation und keine Benutzer-zu-Benutzer-Kommunikation bereitstellt. Wie oben erörtert wurde, kann ein einzelner Benutzer die sichere Kommunikationsanwendung haben, die auf mehreren zugeordneten Vorrichtungen ausgeführt wird. Zum Zwecke der Übertragung einer Kommunikation sollte jede Instanz der sicheren Kommunikationsanwendung als ein Knoten betrachtet werden. Zum Beispiel sendet ein erster Benutzer mit zwei Vorrichtungen, der eine Nachricht an einen zweiten Benutzer mit drei Vorrichtungen sendet, eine verschlüsselte Nachricht an vier Knoten - die drei Vorrichtungen, die dem zweiten Benutzer zugeordnet sind und die zweite Vorrichtung des ersten Benutzers. 8A - 8C stellen einen Prozess 800 zum Übertragen einer verschlüsselten Kommunikation über dieses Prinzip dar.
  • Bei Block 805 gewinnt die sichere Kommunikationsanwendung der Sendevorrichtung eine oder mehrere Benutzerprofilinformationen aus der sicheren Kommunikationsplattform wieder. Diesbezüglich kann die sendesichere Kommunikationsanwendung die Profilinformationen des empfangenden Benutzers von der sicheren Kommunikationsplattform anfordern. Dies kann z.B. auftreten, wenn der sendende Benutzer mit dem verfassen der Kommunikation beginnt. Die Benutzerprofil-Informationen umfassen den öffentlichen Grundidentitäts-Schlüssel des Benutzers (PKr), eine Liste der Vorrichtungsknoten des Benutzers, den öffentlichen Knotenidentitäts-Schlüssel für jede Vorrichtung (PKn; Node Identity Public Key) und den signierten öffentlichen Knotenidentitäts-Schlüssel (SKr(PKn); Signed Node Identity Public Key) für jeden Knoten. Als nächstes baut die sendesichere Kommunikationsanwendung eine Liste aus Empfangsknoten basierend auf einer Vereinigung der empfangenden Benutzervorrichtungen und der Vorrichtungen des Senders bei Block 810 auf. Bei Block 815 gewinnt die sendesichere Kommunikationsanwendung einen signierten, flüchtigen öffentlichen Schlüssel und seinen zugeordneten eindeutigen Identifizierer aus der sicheren Kommunikationsplattform für jede der Empfangsvorrichtungen wieder. Gemäß einigen Ausführungsbeispielen können der signierte, flüchtige öffentliche Schlüssel und der zugeordnete, eindeutige Identifizierer zusammen mit den Profilinformationen des empfangenden Benutzers erhalten werden. Bei Block 820 validiert die sendesichere Kommunikationsanwendung die Signaturkette für jeden flüchtigen, öffentlichen Schlüssel, der von der sicheren Kommunikationsplattform empfangen wird. Diesbezüglich wird die Signatur des flüchtigen, öffentlichen Schlüssels gemäß einem Signatur-Verifizierungs-Algorithmus authentifiziert, wie beispielsweise ECDSA, unter Verwendung des öffentlichen Knotenidentitäts-Schlüssels; die Signatur des öffentlichen Knotenidentitäts-Schlüssels wird unter Verwendung eines öffentlichen Grundidentitäts-Schlüssels verifiziert; und der öffentliche Grundidentitäts-Schlüssel entspricht einer erwarteten Benutzeridentität. Wenn die Signaturkette ungültig ist, kann die sichere Kommunikationsanwendung die eine oder mehreren Profilinformationen des empfangenden Benutzers aus der sicheren Kommunikationsplattform anfordern. Alternativ kann die sichere Kommunikationsanwendung die Kommunikation verwerfen und ablehnen, mit dem einen oder den mehreren Empfangsknoten mit der ungültigen Signaturkette zu kommunizieren. Wenn die Signaturkette gültig ist, dann fährt die sichere Kommunikationsanwendung mit dem Vorbereiten der Kommunikation fort, um sie an den einen oder die mehreren Empfängerknoten zu senden.
  • Bei Block 825 erzeugt die sendesichere Kommunikationsanwendung einen zufälligen Nachricht-Nutzlast-Verschlüsselungsschlüssel (Kpayload). Bei bevorzugten Ausführungsbeispielen ist der erste Nachricht-Nutzlast-Verschlüsselungsschlüssel ein 256-Bit-Schlüssel, der durch Anwendung einer Schlüsselherleitungsfunktion (z.B. HKDF) an einen ersten Satz aus Pseudozufalls-Bytes erzeugt wird, die aus der Vorrichtung eines sendenden Klienten hergeleitet werden. Der erste Satz aus Pseudozufalls-Bytes kann aus einem flüchtigen Umgebungsrauschen hergeleitet werden, das aus Vorrichtungstreibern und anderen Kernel-Operationen erhalten wird. Zum Beispiel können Daten aus den verschiedenen Sensoren (z.B. dem zumindest einen Beschleunigungsmesser, GPS-System (GPS = Global Positioning Satellite), Magnetometer, Näherungssensor, Umgebungslichtsensor, Feuchtigkeitssensor und Gyroskop) als der erste Satz aus Pseudozufalls-Bytes verwendet werden.
  • Bei Block 830 berechnet die sendesichere Kommunikationsanwendung einen Paket-Anfangsblock-Verschlüsselungsschlüssel (Kheader). Bei bevorzugten Ausführungsbeispielen wird der Paket-Anfangsblock-Verschlüsselungsschlüssel berechnet durch Kombinieren des Grund-Identifizierers mit dem Knoten-Identifizierer der sicheren Kommunikationsanwendung und weiterleiten beider Datensätze durch eine Schlüsselherleitungsfunktion. Bei Block 835 erzeugt die sendesichere Kommunikationsanwendung ein flüchtiges Schlüsselpaar (KEs, PKEs). Bei Block 840 berechnet die sendesichere Kommunikationsanwendung einen Schlüssel-Verschlüsselungsschlüssel (KEK; key-encrypting key) für jeden Empfängerknoten. Der Schlüssel-Verschlüsselungsschlüssel wird wie folge berechnet: KEK = KDF ( DH ( KEs ,PKEn ) Ι DN_r )
    Figure DE102018101812A1_0001
  • Diesbezüglich leitet die sendesichere Kommunikationsanwendung ein gemeinschaftlich verwendetes Geheimnis unter Verwendung des flüchtigen privaten Schlüssels, den die sendesichere Kommunikationsanwendung erzeugt hat, und des flüchtigen öffentlichen Schlüssels des Empfangsknotens, der von der sicheren Kommunikationsplattform empfangen wird her. Bei bevorzugten Ausführungsbeispielen wird das gemeinschaftlich verwendete Geheimnis gemäß Diffie-Hellman hergeleitet. Das gemeinschaftlich verwendete Geheimnis und der Knoten-Identifizierer des Empfangsknotens werden in eine Schlüsselherleitungsfunktion eingegeben, um einen Schlüssel-Verschlüsselungsschlüssel herzuleiten, der effektiv die Kommunikation an die sichere Kollaborations-Anwendung des Empfängers bindet. Dies verbessert die Sicherheit, durch Erlauben, dass nur der Empfangsknoten auf die Kommunikation zugreift. D.h., ein Empfänger wäre nicht in der Lage, die Kommunikation von einer Vorrichtung zu einer anderen zu übertragen und wäre weiterhin in der Lage, die Nachricht zu entschlüsseln, da die Schlüssel, die verwendet werden, um den Schlüssel-Verschlüsselungsschlüssel zu erzeugen, eindeutig für die spezifische Installation der sicheren Kommunikationsanwendung sind. Block 840 wird für jede der einen oder mehreren Empfängervorrichtungen wiederholt.
  • Nach dem Berechnen des Schlüssel-Verschlüsselungsschlüssels für jede der einen oder mehreren Empfängervorrichtungen erzeugt die sendesichere Kommunikationsanwendung Schlüsselaustauschdaten (KED; Key Exchange Data) für jeden Empfängerknoten bei Block 845. Die Schlüsselaustauschdaten umfassen den zufälligen Nachricht-Nutzlast-Verschlüsselungsschlüssel (Kpay load), der mit dem Schlüssel-Verschlüsselungsschlüssel für einen Empfängerknoten verschlüsselt ist, den Knoten-Identifizierer des Sendeknotens und den eindeutigen Identifizierer, der dem flüchtigen, öffentlichen Schlüssel (IDken) des Empfangsknotens zugeordnet ist. Dementsprechend wird Block 845 für jeden der Empfängerknoten wiederholt.
  • Bei Block 850 erzeugt die sendesichere Kommunikationsanwendung eine Schlüsselaustauschliste für jeden Empfängerknoten. Zum Beispiel kann die sichere Kommunikationsanwendung jedes der Schlüsselaustauschdaten-Informationselemente, die bei Block 845 erzeugt werden kombinieren, um die Schlüsselaustauschliste (KEL; Key Exchange List) zu erzeugen. Bei Block 855 erzeugt die sendesichere Kommunikationsanwendung einen verschlüsselten Paket-Anfangsblock (packet header). Diesbezüglich erzeugt die sendesichere Kommunikationsanwendung einen verschlüsselten Paket-Anfangsblock durch verschlüsseln der Schlüsselaustauschliste und des flüchtigen öffentlichen Schlüssels des Senders mit dem Anfangsblock-Verschlüsselungsschlüssel. Bei bevorzugten Ausführungsbeispielen werden die Schlüsselaustauschliste und der flüchtige öffentliche Schlüssel des Senders über einen symmetrischen Verschlüsselungs-Algorithmus verschlüsselt, wie beispielsweise AES.
  • Nach dem Erzeugen des verschlüsselten Paket-Anfangsblocks beginnt die sendesichere Kommunikationsanwendung mit dem Vorbereiten des Paketinhalts zur Übertragung. Bei Block 860 erzeugt die sendesichere Kommunikationsanwendung Kommunikations-Metadaten. Die Kommunikations-Metadaten können den Typ von Inhalt identifizieren, der in der Kommunikation enthalten ist. Zusätzlich können die Kommunikations-Metadaten eine Flüchtigkeit der Kommunikation umfassen. D.h., der Sender kann eine Lebenszeit für die Kommunikation spezifizieren. Nachdem die Lebenszeit abgelaufen ist, ist der Empfangsknoten nicht mehr in der Lage, auf die Kommunikation zuzugreifen.
  • Bei Block 865 erzeugt die sendesichere Kommunikationsanwendung eine verschlüsselte Nachricht-Nutzlast. Die verschlüsselte Nachricht-Nutzlast wird durch Verschlüsseln erzeugt, über einen symmetrischen Verschlüsselungs-Algorithmus, die Nachricht-Metadaten und den Nachricht-Inhalt unter Verwendung des zufälligen Nachricht-Nutzlast-Verschlüsselungsschlüssels. Bei Block 870 erzeugt der sendesichere Kommunikations-Algorithmus eine Paket-Signatur. Die Paket-Signatur wird erzeugt durch Anwenden des privaten Knoten-Identitäts-Schlüssels an den verschlüsselten Paket-Anfangsblock und die verschlüsselte Nachricht-Nutzlast gemäß einem Signatur-Erzeugungsalgorithmus. Bei Block 875 erzeugt die sendesichere Kommunikationsanwendung ein serialisiertes Paket, das Versionsinformationen, kryptographische Konfigurationsinformationen, das verschlüsselte Paket, den verschlüsselten Paket-Anfangsblock und die Paket-Signatur umfasst. Bei Block 880 überträgt die sendesichere Kommunikationsanwendung das serialisierte Paket zu der sicheren Kommunikationsplattform zur Verteilung an den einen oder die mehreren Empfängerknoten. Auf diese Weise empfängt die sichere Kommunikationsplattform ein einzelnes Paket und verteilt das einzelne Paket an den einen oder die mehreren Empfängerknoten.
  • Die sichere Kommunikationsplattform stellt jedem des einen oder der mehreren Empfängerknoten eine Warnung bereit, wie beispielsweise eine Push-Benachrichtigung, dass sie eine neue Kommunikation empfangen haben. Die sicheren Kommunikationsanwendungen kontaktieren die sichere Kommunikationsplattform und laden die neue Kommunikation auf ihre Vorrichtungen herunter. 9A und 9B stellen ein Verfahren 900 zum Empfangen und Entschlüsseln einer verschlüsselten Kommunikation auf einem Empfangsknoten dar.
  • Bei Block 905 empfängt der Empfängerknoten ein serialisiertes Paket von einem Sendeknoten. Das Empfangen des serialisierten Pakets umfasst das Abrufen des serialisierten Pakets von der sicheren Kommunikationsplattform ansprechend auf das Empfangen einer Warnung oder Benachrichtigung. Zusätzlich ist der Empfängerknoten verantwortlich für das Identifizieren des geeigneten Schlüsselmaterials zum Entschlüsseln des Kommunikationsinhalts. Zu diesem Zweck erhält der Empfangsknoten Informationen über den Sendeknoten von der sicheren Kommunikationsplattform bei Block 910. Die Informationen umfassen den Identifizierer des Sendeknotens (IDn_s), den Identifizierer der Grundlage (root) dieses Knotens (IDr_s) und Benutzerprofil-Informationen des Sendeknotens.
  • Nach dem Erhalten der Kommunikation und Informationen über den Sender, deserialisiert die sichere Kommunikationsanwendung auf dem Empfangsknoten das Paket und stellt die entsprechende Version und kryptographische Konfiguration bei Block 915 ein. Bei Block 920 verifiziert die sichere Kommunikationsanwendung auf dem Empfangsknoten die Paketsignatur. Diesbezüglich wird die Signatur des verschlüsselten Paket-Anfangsblocks und der verschlüsselten Paket-Nutzlast authentifiziert; die Signatur des öffentlichen Knotenidentitäts-Schlüssels wird unter Verwendung eines öffentlichen Grundidentitäts-Schlüssels verifiziert; und der öffentliche Grundidentitäts-Schlüssel entspricht einer erwarteten Benutzeridentität. Falls jegliche der Signaturen ungültig sind, kann die sichere Kommunikationsanwendung auf dem Empfangsknoten das Entschlüsseln des empfangenen Pakets beenden und es verwerfen. Alternativ kann die sichere Kommunikationsanwendung auf dem Empfangsknoten den Entschlüsselungsprozess fortsetzen und dem Benutzer eine Benachrichtigung bereitstellen, dass der Inhalt der Kommunikation nicht verifiziert werden konnte. Wenn die Signaturen validiert sind, fährt die sichere Kommunikationsanwendung des Empfangsknotens mit dem Entschlüsselungsprozess fort.
  • Bei Block 925 berechnet die sichere Kommunikationsanwendung des Empfangsknotens den Paket-Anfangsblock-Verschlüsselungsschlüssel (Kheader) aus der Profilinformation des Senders, die von der sicheren Kommunikationsplattform empfangen wird. Wie oben erörtert wurde, wird der Paket-Anfangsblock-Verschlüsselungsschlüssel aus dem Grund-Identifizierer (IDr_s) des Senders und dem Knoten-Identifizierer (IDn_s) des Senders hergeleitet. Bei Block 930 entschlüsselt die sichere Kommunikationsanwendung des Empfangsknotens den Paket-Anfangsblock unter Verwendung des hergeleiteten Paket-Anfangsblock-Verschlüsselungsschlüssels, um den flüchtigen, öffentlichen Schlüssel (PKEs) des Senders und die Schlüsselaustauschliste zu erhalten.
  • Bei Block 935 verwendet die sichere Kommunikationsanwendung des Empfangsknotens seinen Knoten-Identifizierer (IDn_r), um die Schlüsselaustauschdaten aus der entschlüsselten Schlüsselaustauschliste abzurufen. Genauer gesagt erhält der Empfangsknoten den verschlüsselten Nutzlast-Schlüssel (EKEK(Kpayload)), den Knoten-Identifizierer (IDn) des Empfangsknotens und den eindeutigen Identifizierer des flüchtigen, öffentlichen Schlüssels (IDken) des Empfangsknotens. Bei Block 940 verwendet die sichere Kommunikationsanwendung des Empfangsknotens den eindeutigen Identifizierer (IDken) zum Identifizieren und Abrufen des flüchtigen Schlüsselpaars (KEn, PKEn) , das durch den Sendeknoten für den Schlüsselaustausch von dem lokalen Speicher auf dem Empfangsknoten verwendet wird.
  • Nach dem Erhalten des flüchtigen Schlüsselpaars aus der Speichervorrichtung berechnet die sichere Kommunikationsanwendung auf dem Empfangsknoten den Schlüssel-Verschlüsselungsschlüssel bei Block 940. Genauer gesagt berechnet der Empfangsknoten ein gemeinschaftlich verwendetes Geheimnis unter Verwendung des flüchtigen, privaten Schlüssels des Empfangsknotens und des flüchtigen öffentlichen Schlüssels des Sendeknotens. Das gemeinschaftlich verwendete Geheimnis und der Knoten-Identifizierer des Empfangsknotens werden in eine Schlüsselherleitungsfunktion eingegeben, um den Schlüssel-Verschlüsselungsschlüssel zu erzeugen. Bei Block 945 entschlüsselt die sichere Kommunikationsanwendung des Empfangsknotens den verschlüsselten Nutzlast-Verschlüsselungsschlüssel. Bei Block 950 wird der verschlüsselte Nutzlast-Verschlüsselungsschlüssel verwendet, um die Nachricht zu entschlüsseln. Genauer gesagt erhält die sichere Kommunikationsanwendung die Nachrichten-Metadaten und den Nachrichteninhalt von der entschlüsselten Nachricht. Bei Block 955 stellt die sichere Kommunikationsanwendung des Empfangsknotens die entschlüsselte Nachricht an den Benutzer bereit. Bei Block 960 wird die Nachricht-Nutzlast mit dem Lokalspeicher-Vorrichtungs-Schlüssel des Empfangsknotens verschlüsselt und in einer lokalen Speichervorrichtung auf dem Empfangsknoten gespeichert.
  • Kurzlebige Schlüssel, wie beispielsweise die flüchtigen Schlüsselpaare des Senders und des Empfängers und der Nutzlast-Verschlüsselungsschlüssel werden gelöscht, kurz nachdem der Nachrichtinhalt entschlüsselt wurde. Die sichere Kommunikationsanwendung führt Aktionen gemäß den Nachricht-Metadaten aus. Zum Beispiel kann jeder verschlüsselten Nachricht ein Ablaufzeit- oder ein Lebenszeit- (TTL; time-to-live) Wert zugeordnet sein, wobei nach dieser Zeit die sicheren Kommunikationsanwendungen die Nachricht löschen müssen. Dementsprechend setzen die sicheren Kommunikationsanwendungen den Ablaufzeit- oder den TTL-Wert durch und löschen die Nachricht nachdem sie abgelaufen ist.
  • 10 zeigt ein Beispiel einer mobilen Schnittstelle 1000 für eine verschlüsselte Ende-zu-Ende-Kommunikation zwischen einem ersten und einem zweiten Benutzer. Die Schnittstelle 1000 umfasst ein Titelfeld 1010. Wenn der Benutzer in einem sicheren Chatroom teilnimmt, wird der Titel des sicheren Chatrooms angezeigt. Auf ähnliche Weise wird der Name des anderen Teilnehmers gezeigt, wenn der Benutzer an einer eins-zu-eins Kommunikation teilnimmt. Die Schnittstelle 1000 kann ein Suchfeld 1020 umfassen, um dem Benutzer die Fähigkeit bereitzustellen, eine Textsuche durchzuführen. Zusätzlich kann die Schnittstelle 1000 ein Anruf-Optionsfeld 1030 umfassen, das es dem Benutzer erlaubt, an einem sicheren Sprach- oder Video-Anruf teilzunehmen. Die Schnittstelle 1000 umfasst ein Textfenster 1140, das die eingehende und ausgehende Kommunikation anzeigt, und eine Text-Schnittstelle 1150, um Text einzugeben und Dateien hochzuladen.
  • 11 zeigt ein darstellendes Beispiel einer Desktop-Schnittstelle 1100 für eine verschlüsselte Ende-zu-Ende-Kommunikation zwischen zwei Benutzern. Der Schnittstellenraum 1100 zeigt Benutzerinformationen in dem Feld 1105 an. Diesbezüglich gehört die Schnittstelle 1100 zu Vernicious Knids, wie durch Feld 1105 angezeigt wird. Feld 1110 zeigt die sicheren Chatrooms an, in denen der Benutzer Teilnehmer ist, während Feld 1115 die eins-zu-eins Kommunikation des Benutzers darstellt. Wie dargestellt ist, ist der Name Arthur Slugworth hervorgehoben, was angezeigt, dass die eins-zu-eins Kommunikation mit Arthur Slugworth angezeigt wird. Dies wird auch in dem Anfangsblockfeld 1130 angezeigt, das den Namen des anderen Benutzers anzeigt. Wenn ein sicherer Chatroom ausgewählt wurde, würde das Anfangsblockfeld 1130 den Namen des sicheren Chatrooms anzeigen. Zusätzlich kann die Schnittstelle 1100 ein Suchfeld 835 umfassen, den TTL-Status in Feld 1140 und ein Anrufoptionsfeld 1145. Das Suchfeld 1135 stellt Benutzern die Fähigkeit bereit, eine Textsuche nach Kommunikation durchzuführen, die in der Schnittstelle 1100 getätigt wurde. Das TTL-Statusfeld 1140 erlaubt einem Benutzer, die Ablaufzeit einer Nachricht zu ändern, die in dem sicheren Chatroom gesendet wird. Das Anrufoptionsfeld 1145 ermöglicht dem Benutzer, an einem verschlüsselten Audio- oder Video-Anruf teilzunehmen. Die Schnittstelle 1100 umfasst ferner ein Textfenster 1145, das die eingehende und ausgehende Kommunikation anzeigt. Schließlich umfasst die Schnittstelle 1100 ein Fenster 1150, um dem Benutzer zu erlauben, Text einzugeben und Dateien hochzuladen.
  • Obwohl die vorangehenden Ausführungsbeispiele zu Zwecken der Klarheit des Verständnisses detailliert beschrieben wurden, ist die vorliegende Offenbarung nicht auf die angegebenen Details beschränkt. Es gibt viele alternative Möglichkeiten zum Implementieren der vorliegenden Offenbarung. Die offenbarten Ausführungsbeispiele sind darstellend und nicht einschränkend.

Claims (18)

  1. Ein System, umfassend: einen Prozessor (102), ausgebildet zum: Herleiten eines privaten Grundschlüssels (Kr), eines Fernspeicher-Grundschlüssels (Krs), eines Knotenspeicher-Grundschlüssels (Knsr) und eines Treuhänder-Schlüssels (Ke) während eines Registrierungsprozesses; Verschlüsseln des privaten Grundschlüssels (Kr), des Fernspeicher-Grundschlüssels (Krs) und des Knotenspeicher-Grundschlüssels (Knsr) mit dem Treuhänder-Schlüssel (Ke); Herleiten eines Passwort-basierten Schlüssels; Verschlüsseln des Treuhänder-Schlüssels (Ke) mit dem Passwort-basierten Schlüssel; Erzeugen eines Schlüsseltreuhänderbündels, wobei das Schlüsseltreuhänderbündel den verschlüsselten privaten Grundschlüssel, den verschlüsselten Fernspeicher-Grundschlüssel und den verschlüsselten Knotenspeicher-Grundschlüssel umfasst; und Übertragen des Schlüsseltreuhänderbündels an einen ersten Server; und einen Speicher (104), der mit dem Prozessor (102) gekoppelt ist und ausgebildet ist, um dem Prozessor (102) Anweisungen bereitzustellen.
  2. Das System gemäß Anspruch 1, wobei der verschlüsselte Treuhänder-Schlüssel in dem Schlüsseltreuhänderbündel umfasst, das an den Server übertragen wird.
  3. Das System gemäß Anspruch 1 oder 2, wobei der Registrierungsprozess ein Benutzer-Registrierungsprozess ist.
  4. Das System gemäß einem der vorangehenden Ansprüche, wobei der Prozessor (102) ausgebildet ist zum: Herleiten des Passwort-basierten Schlüssels unter Verwendung einer Passwort-basierten Schlüsselherleitungsfunktion.
  5. Das System gemäß einem der vorangehenden Ansprüche, wobei der Prozessor (102) ausgebildet ist zum: Herleiten eines Grund-Benutzeridentifizierers (IDr) und eines Grundidentitäts-Schlüsselpaars (Kr, PKr).
  6. Das System gemäß Anspruch 5, wobei der Prozessor (102) ausgebildet ist zum: Übertragen des Grund-Benutzeridentifizierers (IDr) und eines öffentlichen Grundschlüssels (PKr) von dem Grundidentitäts-Schlüsselpaar (Kr, PKr) zu dem ersten Server.
  7. Ein Verfahren (400) umfassend: Herleiten, auf einer ersten Vorrichtung, eines privaten Grundschlüssels (Kr), eines Fernspeicher-Grundschlüssels, eines Knotenspeicher-Grundschlüssels und eines Treuhänder-Schlüssels (Ke) während eines Registrierungsprozesses; Verschlüsseln (410), durch die erste Vorrichtung, des privaten Grundschlüssels (Kr), des Fernspeicher-Grundschlüssels (Krs) und des Knotenspeicher-Grundschlüssels (Knsr) mit einem Treuhänder-Schlüssel (Ke); Herleiten (420), auf der ersten Vorrichtung, eines Passwort-basierten Schlüssels; Verschlüsseln (430), durch die erste Vorrichtung, des Treuhänder-Schlüssels (Ke) mit dem Passwort-basierten Schlüssel; Erzeugen (440), auf der ersten Vorrichtung, eines Schlüsseltreuhänderbündels, wobei das Schlüsseltreuhänderbündel einen verschlüsselten privaten Grundschlüssel, den verschlüsselten Fernspeicher-Grundschlüssel und den verschlüsselten Knotenspeicher-Grundschlüssel umfasst; und Übertragen (450), durch die erste Vorrichtung, des Schlüsseltreuhänderbündels an einen ersten Server.
  8. Das Verfahren (400) gemäß Anspruch 7, wobei der verschlüsselte Treuhänder-Schlüssel in dem Schlüsseltreuhänderbündel umfasst ist, das an den Server übertragen wird.
  9. Das Verfahren (400) gemäß Anspruch 7 oder 8, wobei der Registrierungsprozess ein Benutzer-Registrierungsprozess ist.
  10. Das Verfahren (400) gemäß einem der Ansprüche 7 bis 9, ferner umfassend: Herleiten des Passwort-basierten Schlüssels unter Verwendung einer Passwort-basierten Schlüsselherleitungsfunktion.
  11. Das Verfahren (400) gemäß einem der Ansprüche 7 bis 10, ferner umfassend: Herleiten, durch die erste Vorrichtung, eines Grund-Benutzeridentifizierers und eines Grundidentitäts-Schlüsselpaars.
  12. Das Verfahren (400) gemäß Anspruch 11, ferner umfassend: Übertragen, durch die erste Vorrichtung, des Grund-Benutzeridentifizierers und eines öffentlichen Grundschlüssels von dem Grundidentitäts-Schlüsselpaar zu dem ersten Server.
  13. Ein nichtflüchtiges, computerlesbares Medium, umfassend Anweisungen, die, wenn sie durch zumindest einen Prozessor ausgeführt werden, folgende Schritte ausführen: Herleiten eines privaten Grundschlüssels (Kr), eines Fernspeicher-Grundschlüssels, eines Knotenspeicher-Grundschlüssels und eines Treuhänder-Schlüssels (Ke) während eines Registrierungsprozesses; Verschlüsseln (410) des privaten Grundschlüssels (Kr), des Femspeicher-Grundschlüssels (Krs) und des Knotenspeicher-Grundschlüssels (Knsr) mit dem Treuhänder-Schlüssel (Ke); Herleiten (420) eines Passwort-basierten Schlüssels; Verschlüsseln (430) des Treuhänder-Schlüssels (Ke) mit dem Passwort-basierten Schlüssel. Erzeugen (440) eines Schlüsseltreuhänderbündels, wobei das Schlüsseltreuhänderbündel einen verschlüsselten privaten Grundschlüssel, den verschlüsselten Fernspeicher-Grundschlüssel und den verschlüsselten Knotenspeicher-Grundschlüssel umfasst; und Übertragen (450) des Schlüsseltreuhänderbündels an einen ersten Server.
  14. Das nichtflüchtige, computerlesbare Medium gemäß Anspruch 13, wobei der verschlüsselte Treuhänder-Schlüssel in dem Schlüsseltreuhänderbündel umfasst ist, das an den Server übertragen wird.
  15. Das nichtflüchtige, computerlesbare Medium gemäß Anspruch 13 oder 14, wobei der Registrierungsprozess ein Benutzer-Registrierungsprozess ist.
  16. Das nichtflüchtige, computerlesbare Medium gemäß einem der Ansprüche 13 bis 15, umfassend Anweisungen zum: Herleiten des Passwort-basierten Schlüssels unter Verwendung einer Passwort-basierten Schlüsselherleitungsfunktion.
  17. Das nichtflüchtige, computerlesbare Medium gemäß einem der Ansprüche 13 bis 16, umfassend Anweisungen zum: Herleiten eines Grund-Benutzeridentifizierers und eines Grundidentitäts-Schlüsselpaars.
  18. Das nichtflüchtige, computerlesbare Medium gemäß Anspruch 17, umfassend Anweisungen zum: Übertragen des Grund-Benutzeridentifizierers und eines öffentlichen Grundschlüssels von dem Grundidentitäts-Schlüsselpaar zu dem ersten Server.
DE102018101812.6A 2017-01-26 2018-01-26 Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen Active DE102018101812B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762450968P 2017-01-26 2017-01-26
US62/450,968 2017-01-26

Publications (2)

Publication Number Publication Date
DE102018101812A1 true DE102018101812A1 (de) 2018-07-26
DE102018101812B4 DE102018101812B4 (de) 2024-02-08

Family

ID=61558235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018101812.6A Active DE102018101812B4 (de) 2017-01-26 2018-01-26 Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen

Country Status (4)

Country Link
US (2) US10396987B2 (de)
JP (1) JP7086327B2 (de)
DE (1) DE102018101812B4 (de)
GB (1) GB2560434B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105681032B (zh) * 2016-01-08 2017-09-12 腾讯科技(深圳)有限公司 密钥存储方法、密钥管理方法及装置
CN110754061A (zh) 2017-06-14 2020-02-04 区块链控股有限公司 用于避免或减少区块链网络上的加密滞留资源的系统和方法
US10693849B2 (en) * 2017-11-15 2020-06-23 International Business Machines Corporation Sending message in multilayer system
US10938792B2 (en) * 2018-01-31 2021-03-02 Dell Products L.P. Layered encryption for end to end communication
US11121876B2 (en) * 2018-04-11 2021-09-14 Microsoft Technology Licensing, Llc Distributed access control
US11349646B1 (en) * 2018-05-03 2022-05-31 Berryville Holdings, LLC Method of providing secure communications to multiple devices and multiple parties
US10412063B1 (en) 2019-02-05 2019-09-10 Qrypt, Inc. End-to-end double-ratchet encryption with epoch key exchange
CN110098925B (zh) * 2019-04-22 2023-09-05 如般量子科技有限公司 基于非对称密钥池对和随机数的量子通信服务站密钥协商方法和系统
US10735189B2 (en) 2019-07-01 2020-08-04 Alibaba Group Holding Limited Data exchange for multi-party computation
CN110460435B (zh) * 2019-07-01 2021-01-01 创新先进技术有限公司 数据交互方法、装置、服务器和电子设备
CN114556887A (zh) * 2019-08-16 2022-05-27 三星电子株式会社 用于在设备之间传送捆绑包的方法和设备
US11709928B2 (en) * 2020-05-22 2023-07-25 Jpmorgan Chase Bank, N.A. Method and system for securing access to a private key
KR20220017212A (ko) 2020-08-04 2022-02-11 삼성전자주식회사 기기 간 번들 또는 프로파일 이동 시 연계 방법 및 장치
CN112511361B (zh) * 2021-02-05 2021-06-04 支付宝(杭州)信息技术有限公司 模型训练方法、装置和计算设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11202765A (ja) * 1998-01-16 1999-07-30 Mitsubishi Materials Corp 暗号化情報処理装置、暗号化情報処理方法および記録媒体
WO2000079368A1 (en) 1999-06-23 2000-12-28 The Brodia Group Software smart card
JP4028849B2 (ja) 2004-01-21 2007-12-26 株式会社エヌ・ティ・ティ・データ 通信システム、携帯端末及びプログラム
US7949138B2 (en) 2005-06-30 2011-05-24 Microsoft Corporation Secure instant messaging
US8028885B2 (en) * 2006-05-19 2011-10-04 Ethicon Endo-Surgery, Inc. Electric surgical instrument with optimized power supply and drive
JP4764103B2 (ja) * 2005-08-18 2011-08-31 株式会社東芝 コンテンツデータ配信システム、及び情報処理装置
FR2892876A1 (fr) 2005-11-02 2007-05-04 Gemplus Sa Procede de depot securise de donnees numeriques, procede associe de recuperation de donnees numeriques, dispositifs associes pour la mise en oeuvre des procedes, et systeme comprenant les dits dispositifs
CN101064598B (zh) 2006-04-28 2011-04-20 腾讯科技(深圳)有限公司 一种客户端即时通信数据的加密和解密方法
US8707454B1 (en) 2012-07-16 2014-04-22 Wickr Inc. Multi party messaging
US9106411B2 (en) 2012-09-30 2015-08-11 Apple Inc. Secure escrow service
US9124563B2 (en) 2013-08-19 2015-09-01 Gemalto Sa Method for asynchronously provisioning keys from one secure device to another
US9712512B2 (en) 2013-09-17 2017-07-18 Confide Inc. Secure content messaging
CN104144049B (zh) 2014-03-11 2016-02-17 腾讯科技(深圳)有限公司 一种加密通信方法、系统和装置
GB2529633A (en) 2014-08-26 2016-03-02 Ibm Password-based generation and management of secret cryptographic keys
US9842062B2 (en) * 2015-05-31 2017-12-12 Apple Inc. Backup accessible by subset of related devices
US9961030B2 (en) 2015-06-24 2018-05-01 Private Giant Method and system for sender-controlled messaging and content sharing
KR102395799B1 (ko) 2015-07-09 2022-05-10 삼성전자주식회사 메신저 서비스를 제공하는 장치 및 방법
US20190268145A1 (en) 2016-06-28 2019-08-29 Verimatrix Gmbh Systems and Methods for Authenticating Communications Using a Single Message Exchange and Symmetric Key

Also Published As

Publication number Publication date
GB2560434A (en) 2018-09-12
US10396987B2 (en) 2019-08-27
JP2018121334A (ja) 2018-08-02
GB2560434A8 (en) 2018-10-10
JP7086327B2 (ja) 2022-06-20
US20180212771A1 (en) 2018-07-26
GB201801308D0 (en) 2018-03-14
US20180212772A1 (en) 2018-07-26
US10230524B2 (en) 2019-03-12
DE102018101812B4 (de) 2024-02-08
GB2560434B (en) 2019-08-07

Similar Documents

Publication Publication Date Title
DE102018101812B4 (de) Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen
US10142300B1 (en) Decentralized authoritative messaging
US10242217B1 (en) Secure file transfer
US20210328976A1 (en) Sending Secure Communications Using a Local Ephemeral Key Pool
US10715504B2 (en) Provisioning ephemeral key pools for sending and receiving secure communications
US9654288B1 (en) Securing group communications
US20180367540A1 (en) Controlling access to content
DE102014100173B4 (de) Verfahren zum geschützten Übermitteln eines Datenobjekts
US20210075587A1 (en) Generating new encryption keys during a secure communication session
US11316666B2 (en) Generating ephemeral key pools for sending and receiving secure communications
US9866591B1 (en) Enterprise messaging platform
US11025440B2 (en) Secure time-to-live
US10187360B2 (en) Method, system, server, client, and application for sharing digital content between communication devices within an internet network
US20170046646A1 (en) Secure time-to-live
US20170053248A1 (en) Secure time-to-live
US11330003B1 (en) Enterprise messaging platform

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: AMAZON TECHNOLOGIES, INC., SEATTLE, US

Free format text: FORMER OWNER: WICKR INC., SAN FRANCISCO, CALIF., US

R016 Response to examination communication
R018 Grant decision by examination section/examining division