DE112017002726T5 - Kommunikationssicherheitssysteme und verfahren - Google Patents

Kommunikationssicherheitssysteme und verfahren Download PDF

Info

Publication number
DE112017002726T5
DE112017002726T5 DE112017002726.8T DE112017002726T DE112017002726T5 DE 112017002726 T5 DE112017002726 T5 DE 112017002726T5 DE 112017002726 T DE112017002726 T DE 112017002726T DE 112017002726 T5 DE112017002726 T5 DE 112017002726T5
Authority
DE
Germany
Prior art keywords
application
client device
session key
message
connection
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.)
Pending
Application number
DE112017002726.8T
Other languages
English (en)
Inventor
Brian J. Hernacki
Sumanth Naropanth
Chandra Prakash Gopalaiah
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112017002726T5 publication Critical patent/DE112017002726T5/de
Pending legal-status Critical Current

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/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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Verschiedene Beispiele sind auf Systeme und Verfahren zur Kommunikationssicherheit gerichtet. Beispielsweise kann eine Rechnervorrichtung eine Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung erzeugen. Eine erste Anwendung, die auf der Rechnervorrichtung ausgeführt wird, kann einen ersten Anwendungssitzungsschlüssel über die Verbindung an die Clientvorrichtung senden. Die erste Anwendung kann eine kryptografische Funktion auf eine erste Nachricht ausführen, die mindestens teilweise auf dem ersten Anwendungssitzungsschlüssel basiert, um ein erstes kryptographisches Ergebnis zu erzeugen und das erste kryptographische Ergebnis über die Verbindung an die Clientvorrichtung zu senden. Die erste Anwendung kann über die Verbindung ein zweites kryptographisches Ergebnis von der Clientvorrichtung empfangen und bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde.

Description

  • PRIORITÄTSANMELDUNG
  • Diese Anmeldung beansprucht den Vorteil der Priorität vor der U.S.-Anmeldung mit Lfd. Nr. 15/169,245 , eingereicht am 31. Mai 2016, die hierin durch Verweis vollständig eingeschlossen ist.
  • TECHNISCHER BEREICH
  • Hierin allgemein beschriebene Beispiele beziehen sich auf Systeme und Verfahren für die drahtlose Sicherheit.
  • ALLGEMEINER STAND DER TECHNIK
  • Bei der drahtlosen Kommunikation ist es wünschenswert, zu verhindern, dass Nachrichten abgefangen werden, und sicherzustellen, dass empfangene Kommunikationen von der vorgesehenen Partei stammen.
  • Figurenliste
  • In den Zeichnen, die nicht notwendigerweise maßstabsgetreu gezeichnet sind, können gleiche Ziffern ähnliche Bestandteile in unterschiedlichen Ansichten beschreiben. Gleiche Ziffern mit unterschiedlichen Buchstabensuffixen können verschiedene Instanzen gleicher Bestandteile darstellen. Einige Beispiele werden beispielhaft und nicht einschränkend in den Figuren der beiliegenden Zeichnungen illustriert, wobei:
    • 1 ein Diagramm ist, das ein Beispiel einer Umgebung für eine Verbindung auf Anwendungsebene mit einer Client-Vorrichtung darstellt.
    • 2 ein Blockdiagramm ist, das eine Beispielarchitektur einer mobilen Rechnervorrichtung darstellt.
    • 3 ein Ablaufdiagramm ist, das ein Beispiel für einen Prozessablauf darstellt, der in der Umgebung von 1 ausgeführt werden kann, um Kommunikationssicherheit wie hierin beschrieben umzusetzen.
    • 4 ein Ablaufdiagramm ist, das ein Beispiel für einen Prozessablauf darstellt, der in der Umgebung von 1 ausgeführt werden kann, um einen Anwendungskanal zwischen einer Anwendung und einer Clientvorrichtung zu erzeugen.
    • 5 ein Ablaufdiagramm ist, das ein Beispiel eines Prozessablaufs zeigt, das durch die Clientvorrichtung 4 ausgeführt werden kann, um auf eine Kommunikation der Rechnervorrichtung zu reagieren.
    • 6 ein Ablaufdiagramm ist, das ein anderes Beispiel für einen Prozessablauf darstellt, der an der Clientvorrichtung ausgeführt werden kann, wenn ein Anwendungssitzungsschlüssel empfangen wird.
    • 7 bis 10 Timingdiagramme sind, die Beispiele für Schlüsselaustausche und Authentifizierungen zwischen der Companion-Anwendung und der Clientvorrichtung zeigen.
    • 11 ein Blockdiagramm ist, das ein Beispiel einer Softwarearchitektur für eine Rechnervorrichtung darstellt.
    • 12 ein Blockdiagramm ist, das eine Rechnervorrichtungshardwarearchitektur illustriert, in der ein Satz oder eine Sequenz von Anweisungen ausgeführt werden kann, um die Maschine zu veranlassen, Beispiele einer der hierin besprochenen Methoden durchzuführen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details dargestellt, um ein eingehendes Verständnis einiger Beispiele bereitzustellen. Es ist jedoch für einen Fachmann offensichtlich, dass die vorliegende Offenbarung ohne diese spezifischen Details ausgeführt werden kann.
  • Verschiedene Beispiele, die hierin beschrieben sind, zielen auf Systeme und Methoden für die Umsetzung von Kommunikationssicherheit, beispielsweise auf Anwendungseben ab. Viele Zwischenvorrichtungskommunikationsprotokolle wie Bluetooth®, Bluetooth® LE und andere verwenden zustandsfreie Verbindungen. Beispielsweise kann eine Rechnervorrichtung eine Verbindung auf Systemebene mit einer Clientvorrichtung erzeugen. Die Verbindung auf Systemebene verwendet Sicherheitsmaßnahmen wie etwa Verschlüsselung, um Nachrichten zu authentifizieren, die über die Verbindung gesendet werden, und um zu verhindern, dass andere Rechnervorrichtungen und/oder Clientvorrichtungen die Nachrichten abfangen und lesen. Einige Betriebssysteme gestatten jedoch mehreren Anwendungen die Verwendung einer Verbindung auf Systemebene mit einer Clientvorrichtung. Dementsprechend kann die Verbindung auf Systemebene, auch, wenn sie eine Sicherheit bezüglich anderer Vorrichtungen bereitstellen kann, möglicherweise keinen Schutz vor anderen Anwendungen, wie etwa Malware, bereitstellen, die auf der Clientvorrichtung ausgeführt werden.
  • In verschiedenen Beispielen kann eine Anwendung, die auf einer Rechnervorrichtung ausgeführt wird, eine Verbindung auf Anwendungsebene mit einer Clientvorrichtung aufbauen. Die Rechnervorrichtung, beispielsweise ein Betriebssystem oder ein anderer geeigneter Verbindungschaltkreis, baut eine Verbindung auf Systemebene mit der Clientvorrichtung auf. Die Anwendung erzeugt eine separate Verbindung auf Anwendungsebene mit der Clientvorrichtung über die Verbindung auf Systemebene. Beispielsweise kann die Anwendung einen Anwendungssitzungsschlüssel erzeugen und den Anwendungssitzungsschlüssel der Clientvorrichtung über die Verbindung auf Systemebene bereitstellen. Nachrichten, die zwischen der Clientvorrichtung und der Anwendung verschickt werden, werden dem Anwendungssitzungsschlüssel oder einem Derivativ davon entsprechend verschlüsselt. Die Clientvorrichtung kann programmiert werden, um nur auf Anweisungen zu reagieren, die dem Anwendungssitzungsschlüssel entsprechend verschlüsselt sind. Auf diese Weise können andere Anwendungen, die auf der Rechnervorrichtung ausgeführt werden, daran gehindert werden, auf die Clientvorrichtung zuzugreifen.
  • 1 ist ein Diagramm, das ein Beispiel einer Umgebung 10 für eine Verbindung auf Anwendungsebene mit einer Client-Vorrichtung darstellt. Die Umgebung 10 enthält eine Rechnervorrichtung 2 und eine Clientvorrichtung 4. Die Rechnervorrichtung 2 baut eine Verbindung auf Systemebene 8 mit der Clientvorrichtung 4 auf. Beispielsweise kann die Verbindung auf Systemebene 8 durch ein Betriebssystem (OS) 14 der Rechnervorrichtung 2 aufgebaut und/oder verwaltet werden. Die Verbindung auf Systemebene 8 kann über jedes geeignete verkabelte und/oder drahtlose Kommunikationsmedium erfolgen. In einigen Beispielen, einschließlich einigen Beispielen, die einen Bluetooth®-Standard verwenden, kann die Verbindung auf Systemebene über ein drahtloses Medium erfolgen, das durch eine direkte drahtlose Kommunikation zwischen einem Transceiver an der Rechnervorrichtung 2 und einem Transceiver an der Clientvorrichtung 4 erzeugt wird. Eine Companion-Anwendung 12, die auf der Rechnervorrichtung 2 ausgeführt wird, kommuniziert mit der Clientvorrichtung 4 unter Verwendung einer Verbindung auf Anwendungsebene 6 innerhalb der Verbindung auf Systemebene 8. Auf diese Weise kann die Companion-Anwendung 12 wie hierin beschrieben in einer Weise mit der Clientvorrichtung 4 kommunizieren, die für andere Anwendungen, wie etwa die Anwendung 11, nicht zugänglich ist.
  • Die Rechnervorrichtung 2 kann jede Vorrichtung sein, die sich für den Aufbau einer Verbindung auf Systemebene 8 mit der Clientvorrichtung 4 eignet. Beispiele der Rechnervorrichtung 2 enthalten ein Smartphone, einen Tabletcomputer, einen Laptopcomputer, einen Desktopcomputer, eine tragbare Computervorrichtung usw. Die Rechnervorrichtung 2 umfasst eine Hardwareschicht 16. Die Hardwareschicht 16 enthält mindestens einen Prozessor und geeigneten Speicher in Kommunikation mit dem Prozessor. Die Hardwareschicht 16 kann auch eine oder mehrere Eingabe-/Ausgabevorrichtungen zur Umsetzung der Verbindung auf Systemebene 8 umfassen, wie etwa einen Transceiver zur drahtlosen Kommunikation und/oder einen Ausgangsport zur verkabelten Kommunikation. Eine Beispielkonfiguration für die Hardwareschicht 16 wird hierin dargestellt mit Verweis auf 2.
  • Die Rechnervorrichtung 2 führt ein Betriebssystem 14 und eine Companion-Anwendung 12 aus. Die Companion-Anwendung 12 kann eine Anwendung sein, die konfiguriert ist, mit der Clientvorrichtung 4 zu kommunizieren. Wenn beispielsweise die Clientvorrichtung 4 einen Schrittzähler enthält, kann die Companion-Anwendung 12 konfiguriert sein, mit der Clientvorrichtung 4 zu kommunizieren, um die Schritte, die der Benutzer gegangen ist, zu empfangen und zu verfolgen. In einigen Beispielen führt die Computervorrichtung 2 auch weitere Anwendungen aus, wie etwa die Anwendung 11. Die Rechnervorrichtung 2 kenn jedes geeignete Betriebssystem 14 nutzen, einschließlich beispielsweise ein Windows®-Betriebssystem, ein iOS™ oder anderes OS-Betriebssystem von Apple, Inc., ein Android™-Betriebssystem, ein LINUX-Betriebssystem, usw. Anwendungen 11, 12 können clientseitige und/oder Webanwendungen sein. Die Anwendungen 11, 12 können über das BS 14 auf die Hardwareschicht 16 zugreifen. Beispielsweise kann das BS 14 den Anwendungen 11, 12 Zugang zu einem Transceiver, Ausgangsport oder anderer Hardware für die Kommunikation über die Verbindung auf Systemebene 8 bereitstellen.
  • Die Clientvorrichtung 4 kann eine Client-Hardwareschicht 22 enthalten. Die Client-Hardwareschicht 22 kann mindestens einen Prozessor und geeigneten Speicher in Kommunikation mit dem Prozessor enthalten. Die Client-Hardwareschicht 22 kann außerdem eine oder mehrere Eingabe-/Ausgabevorrichtungen zur Kommunikation mit der Rechnervorrichtung 2 enthalten, um die Verbindung auf Systemebene 6 und die Verbindung auf Anwendungsebene 8 umzusetzen. Die Clientvorrichtung 4 kann in einigen Beispielen außerdem ein Client-BS 20 und eine Client-Anwendung 18 ausführen. Das Client-BS 20 kann jedes geeignete BS sein. In einigen Beispielen kann die Clientvorrichtung 4 ein BS nutzen, das für Niedrigenergievorrichtungen optimiert ist, wie etwa beispielsweise Android Wear™, Tizen®, und/oder ein Echtzeitbetriebssystem (RTOS).
  • 1 zeigt auch eine Beispielumsetzung 30 der Umgebung 10, einschließlich einer Beispiel-Rechnervorrichtung 32 und einer Beispiel-Clientvorrichtung 34. Die Beispiel-Rechnervorrichtung 32 ist ein Mobiltelefon und die Beispiel-Clientvorrichtung 34 ist eine tragbare Rechnervorrichtung, dargestellt an einem Handgelenk eines Benutzers 33 positioniert. Die Clientvorrichtung 34 kann einen oder mehrere Sensoren zur Erkennung von Bewegungen und/oder biometrischen Funktionen des Benutzers 33 enthalten, wie etwa Puls, Atemrate usw. Die Clientvorrichtung 34 kann mit einer Companion-Anwendung an der Rechnervorrichtung 32 kommunizieren, um die erfassten Daten an den Benutzer 33 bereitzustellen. Die Umsetzung 30 ist nur ein Beispiel für die Umsetzung der beschriebenen Kommunikationssicherheitssysteme und Verfahren.
  • 2 ist ein Blockdiagramm, das eine Beispielarchitektur 200 einer mobilen Rechnervorrichtung darstellt. In einigen Beispielen können die Rechnervorrichtungen 2, 32 und/oder Clientvorrichtungen 4, 34 der Architektur 200 entsprechend umgesetzt werden. Die Architektur 200 umfasst eine Prozessoreinheit 210. Die Prozessoreinheit 210 kann einen oder mehrere Prozessoren umfassen. Jeder aus einer Vielzahl verschiedener Arten von kommerziell verfügbaren Prozessoren, die sich für mobile Rechnervorrichtungen eignen, können verwendet werden (beispielsweise ein XScale-Architektur-Mikroprozessor, ein Microprocessor-without-Interlocked Pipeline-Stages-(MIPS) Architekturprozessor oder eine andere Art von Prozessor). Ein Speicher 220, wie etwa ein Random-Access-Speicher (RAM), ein Flash-Speicher oder eine andere Art von Speicher oder Datenspeicher ist üblicherweise für den Prozessor zugänglich. Der Speicher 220 kann angepasst sein, ein Betriebssystem (OS) 230 sowie Anwendungen 240 zu speichern, wie etwa beispielsweise die oben beschriebenen Anwendungen 11, 12, 18. Der Speicher 220 kann auch einen Schlüsselspeicher 242 enthalten. Der Schlüsselspeicher 242 kann sich an einem Ort oder einer Reihe von Orten im Speicher befinden, an denen eine Anwendung sichere Daten speichern kann, wie etwa Verschlüsselungsschlüssel, die nicht für andere Anwendungen zugänglich sind. In einigen Beispielen wird der Schlüsselspeicher 242 durch das BS 230 verwaltet. Wenn beispielsweise das BS 230 ein iOS-Betriebssystem ist, kann der Schlüsselspeicher 242 durch die Keychain®-Funktion von iOS umgesetzt sein. In Beispielen, in denen das BS 230 ein Android™-Betriebssystem ist, kann der Schlüsselspeicher 242 durch Schlüsselspeicherfunktionen von Android™ umgesetzt sein.
  • Die Prozessoreinheit 210 kann entweder direkt oder über geeignete Zwischenhardware mit einer Anzeige 250 und mit einer oder mehreren Eingabe-/Ausgabe- (E/A) Vorrichtungen 260 verbunden sein, wie etwa einem Ziffernfeld, einem Touchpanelsensor, einem Mikrofon usw. Ähnlich kann in einigen Beispielen der Prozessor 210 mit einem Transceiver 270 verbunden sein, der eine Schnittstelle mit einer Antenne 290 aufweist. Der Transceiver 270 kann konfiguriert sein, Handynetzwerksignale, drahtlose Datensignale oder andere Arten von Signalen über die Antenne 290 zu senden und zu empfangen, abhängig von der Art der mobilen Rechnervorrichtung, die durch die Architektur 200 umgesetzt ist. Auch, wenn ein Transceiver 270 dargestellt ist, enthält die Architektur 200 in einigen Beispielen weitere Transceiver. Beispielsweise kann ein drahtloser Transceiver verwendet werden, um nach einer IEEE 802.11-Spezifikation wie Wi-Fi und/oder mit einem Kurzstreckenkommunikationsmedium wie Bluetooth®, Near-Field-Communication (NFC) usw. zu kommunizieren. Einige Kurzstreckenkommunikationsmedien wie etwa NFC können einen separaten, speziellen Transceiver verwenden. Ferner verwendet in einigen Konfigurationen ein optionaler GPS-Empfänger 280 die Antenne 290 zum Empfangen der GPS-Signale.
  • 3 ist ein Ablaufdiagramm, das ein Beispiel für einen Prozessablauf 300 darstellt, der in der Umgebung 10 ausgeführt werden kann, um die Kommunikationssicherheit wie hierin beschrieben umzusetzen. Der Prozessablauf 300 ist in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Der Prozessablauf 300 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen.
  • Optional kann sich bei Aktion 302 die Rechnervorrichtung 2 (z. B. das Betriebssystem 14) mit der Clientvorrichtung pairen. Beispielsweise verwenden einige Kommunikationsmedien wie Bluetooth® ein zweistufiges Protokoll. Auf der ersten Stufe können sich die Rechnervorrichtung 2 und die Clientvorrichtung 4 vor dem Aufbau einer sicheren Verbindung gegenseitig authentifizieren; dieser Prozess wird gelegentlich als Pairing bezeichnet. In einigen Beispielen stellt die Rechnervorrichtung 2 ein Passwort (z. B. einen alphanumerischen Code) an die Clientvorrichtung 4 die Clientvorrichtung bereit. Die Clientvorrichtung 4 vergleicht den alphanumerischen Code mit einem örtlich gespeicherten Referenzcode. Wenn sich die Codes entsprechen, kann die Clientvorrichtung 2 das Pairing akzeptieren. In einigen Beispielen stellt ein Benutzer das Passwort für die Rechnervorrichtung manuell bereit, wie etwa durch eine E/A-Vorrichtung der Rechnervorrichtung 2. Jede andere geeignete Authentifizierung kann verwendet werden, um das Pairing umzusetzen. Außerdem kann in Beispielen, die eine Kommunikationen verwenden, die nicht ein zweistufiges Protokoll umfasst, Aktion 302 ausgelassen werden.
  • Bei Aktion 304 kann die Rechnervorrichtung 2 und/oder Clientvorrichtung 4 eine Verbindung auf Systemebene 8 erzeugen. Beispielsweise kann das BS 14 der Rechnervorrichtung 2 einen oder mehrere Verschlüsselungsschlüssel mit der Clientvorrichtung 4 (z. B. einem Client-BS 20 und/oder einer Clientanwendung 18 davon) verhandeln. Jedes geeignete Schlüsselaustauschprotokoll kann verwendet werden, einschließlich, beispielsweise, Diffie-Hellman, das Secure-Simple-Pairing-Modell, Just Works, Passkey Entry usw. Bei Abschluss des Verbindungsprozesses können die Rechnervorrichtung 2 (z. B. das BS 14) und die Clientvorrichtung 4 jeweils einen Systemverschlüsselungsschlüssel besitzen. Der Systemverschlüsselungsschlüssel kann ein symmetrischer Schlüssel sein und kann für die gegenseitige Authentifizierung und/oder zum Verschlüsseln von Nachrichten verwendet werden. In Bluetooth®-Umsetzungen beispielsweise kann der Systemverschlüsselungsschlüssel als Linkschlüssel bezeichnet werden. Nachrichten, die zwischen der Rechnervorrichtung 2 und der Clientvorrichtung 4 über die Verbindung auf Systemebene übertragen werden, können mit dem Systemverschlüsselungsschlüssel verschlüsselt werden.
  • Wenn die Verbindung auf Systemebene aufgebaut ist, kann das BS 14 den Anwendungen 11, 12, die auf der Rechnervorrichtung 2 ausgeführt werden, Zugriff auf die Verbindung auf Systemebene 8 geben. Beispielsweise kann eine Anwendung beim BS 14 Namen von Clientvorrichtungen anfragen, wie etwa Client 4, die mit der Rechnervorrichtung 2 gepairt und/oder verbunden sind. Das BS 14 kann eine Liste gepairter und/oder verbundener Vorrichtungen zurückgeben. Die Anwendung kann anfordern, dass eine Nachricht beispielsweise mit dem Systemverschlüsselungsschlüssel verschlüsselt an die Clientvorrichtung 4 gesendet wird. In einigen Beispielen kann eine Anwendung auch anfordern, dass das BS 14 den Pairingprozess wie oben beschrieben einleitet.
  • Bei Aktion 306 kann die Companion-Anwendung 12 und Clientvorrichtung 4 eine Verbindung auf Anwendungsebene 6 mit der Clientvorrichtung 4 erzeugen. Beispielsweise kann die Companion-Anwendung 12 einen Anwendungssitzungsschlüssel erzeugen und den Anwendungssitzungsschlüssel der Clientvorrichtung 4 bereitstellen. Die Clientvorrichtung 4 und Companion-Anwendung 12 können den Anwendungssitzungsschlüssel wie hierin beschrieben verwenden, um sich gegenseitig zu authentifizieren und Nachrichten zu verschlüsseln, die zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 übertragen werden.
  • Bei Aktion 308 können die Companion-Anwendung 12 und die Clientvorrichtung 4 Nachrichten über die Verbindung auf Anwendungsebene 6 austauschen. Beispielsweise kann die Companion-Anwendung 12 eine erste kryptografische Funktion auf die erste Nachricht anwenden, mindestens teilweise basierend auf dem Anwendungssitzungsschlüssel zum Erzeugen eines ersten kryptografischen Ergebnisses, und das kryptografische Ergebnis an die Clientvorrichtung 4 senden. Die Clientvorrichtung 4 kann eine zweite kryptografische Funktion durchführen, um die erste Nachricht zu authentifizieren.
  • In einigen Beispielen sind die kryptografischen Funktionen Verschlüsselung und Entschlüsselung. Beispielsweise kann die erste kryptografische Funktion die Companion-Anwendung 12 enthalten, die die erste Nachricht mit dem Anwendungssitzungsschlüssel verschlüsselt. Das erste kryptografische Ergebnis kann eine verschlüsselte Form der ersten Nachricht sein. Die zweite kryptografische Funktion kann enthalten, dass die Clientvorrichtung 4 das erste kryptografische Ergebnis entschlüsselt, um die erste Nachricht zu erzeugen. Ähnlich kann die Clientvorrichtung 4 in einigen Beispielen eine zweite Nachricht verschlüsseln und die verschlüsselte zweite Nachricht an die Companion-Anwendung 12 senden. Die Companion-Anwendung 12 kann die verschlüsselte zweite Nachricht entschlüsseln, um die zweite Nachricht zu erzeugen.
  • In einigen Beispielen können die Companion-Anwendung 12 und Clientvorrichtung 4 neben oder statt der Verschlüsselung der Nachrichten einen hashbasierten Nachrichtenauthentifizierungscode (HMAC) verwenden. Beispielsweise kann die erste kryptografische Funktion die Anwendung einer Hashfunktion auf die erste Nachricht unter Verwendung des Anwendungssitzungsschlüssels enthalten. Jede geeignete Hashfunktion kann verwendet werden, einschließlich beispielsweise der hierin beschriebenen. Das erste kryptografische Ergebnis kann ein Hashwert sein, der auch als ein „Message Authentication Code“ (MAC) oder HMAC bezeichnet wird. Die Companion-Anwendung 12 kann die erste Nachricht und das erste kryptografische Ergebnis oder HMAC an die Clientvorrichtung 4 senden. In einigen Beispielen wird die erste Nachricht auf der Verbindung auf Anwendungsebene unverschlüsselt oder „in-the-clear“ gesendet, kann jedoch auf der Verbindung auf Systemebene verschlüsselt sein.
  • Nach Empfang der ersten Nachricht und des HMAC kann die Clientvorrichtung 4 die Hashfunktion auf die erste Nachricht unter Verwendung der Kopie des Anwendungssitzungsschlüssels anwenden, der an der Clientvorrichtung 4 gespeichert ist, um einen zweiten Hashwert zu erzeugen. Die Anwendung der Hashfunktion auf die erste Nachricht kann die zweite kryptografische Funktion sein. Die Clientvorrichtung 4 kann den zweiten Hashwert mit dem HMAC vergleichen. Wenn der zweite Hashwert zu dem HMAC passt, kann er anzeigen, dass die Nachricht von einer Partei erzeugt wurde, die den Anwendungssitzungsschlüssel besitzt (z. B. um den HMAC zu erzeugen), und daher wahrscheinlich die Companion-Anwendung 12 ist, die die Gegenpartei der Verbindung auf Anwendungsebene ist. Die Clientvorrichtung 4 kann ähnlich einen HMAC in Verbindung mit einer Nachricht verwenden, um sich der Companion-Anwendung 12 gegenüber zu authentifizieren. Ähnlich kann die Clientvorrichtung 4 einen HMAC für eine zweite Nachricht erzeugen und die zweite Nachricht und den HMAC an die Companion-Anwendung 12 senden. Die Companion-Anwendung 12 kann die Hashfunktion auf die zweite Nachricht mit dem Anwendungssitzungsschlüssel anwenden, um ein zweites kryptografisches Ergebnis zu erzeugen, und kann das zweite kryptografische Ergebnis mit dem HMAC vergleichen.
  • In einigen Beispielen kann die Clientvorrichtung 4 konfiguriert sein, um die Kommunikation mit der Rechnervorrichtung 2 ohne Verwendung des Anwendungssitzungsschlüssels zu vermeiden. Auf diese Weise kann die Companion-Anwendung 12 die einzige Anwendung sein, die auf der Rechnervorrichtung 2 ausgeführt wird, die konfiguriert ist, um mit der Clientvorrichtung 4 zu kommunizieren. In einigen Beispielen kann die Rechnervorrichtung 2 mehrere Verbindungen auf Anwendungsebene mit der Clientvorrichtung 4 aufweisen. Beispielsweise können die Companion-Anwendung 12 und Anwendung 11 separate Verbindungen mit separaten Verschlüsselungsschlüsseln aufweisen. Die Clientvorrichtung 4 kann konfiguriert sein, einige Daten oder Datentypen über die erste Verbindung (z. B. an die Companion-Anwendung 12) und andere Daten oder Datentypen über die zweite Verbindung (z. B. an die Anwendung 11) bereitzustellen.
  • 4 ist ein Ablaufdiagramm, das ein Beispiel für einen Prozessablauf 400 darstellt, der in der Umgebung 10 von 1 ausgeführt werden kann, um eine Verbindung 6 auf Anwendungsebene zwischen einer Anwendung und einer Clientvorrichtung zu erzeugen. Der Prozessablauf 400 ist in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Der Prozessablauf 400 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen. Außerdem kann der Prozessablauf 400 beispielsweise nach Aufbau einer Verbindung auf Systemebene 8 zwischen der Rechnervorrichtung 2 und der Clientvorrichtung 4 ausgeführt werden.
  • Der Prozessablauf 400 enthält zwei Spalten. Eine erste Spalte 401 enthält Aktionen, die durch die Companion-Anwendung 12, die auf der Rechnervorrichtung 2 ausgeführt wird, ausgeführt werden. Eine zweite Spalte 403 enthält Aktionen, die durch die Clientvorrichtung 4 ausgeführt werden, wie etwa beispielsweise ein Client-BS 20 und/oder eine Clientanwendung 18. Bei Aktion 402 kann die Companion-Anwendung 12 die Clientvorrichtung 4 identifizieren. In einigen Beispielen fordert die Companion-Anwendung 12 das BS 14 auf, eine Liste gepairter und/oder verbundener Vorrichtungen bereitzustellen. Die Companion-Anwendung 12 kann bestimmen, ob die Clientvorrichtung 4 in der empfangenen Liste enthalten ist.
  • Bei Aktion 404 kann die Companion-Anwendung 12 einen Anwendungssitzungsschlüssel erzeugen. Beispielsweise kann die Companion-Anwendung 12 zufällig eine Zahl erzeugen, die als Anwendungssitzungsschlüssel verwendet werden soll. Die Companion-Anwendung 12 oder ein anderer Bestandteil kann zufällig eine Zahl erzeugen, beispielsweise unter Verwendung einer Zufalls- oder Pseudozufallszahlengeneratorvorrichtung und/oder eines -algorithmus. In einigen Beispielen, in denen die Rechnervorrichtung 2 ein Android™-Betriebssystem ausführt, kann die zufällige Erzeugung einer Zahl den Aufruf der Klasse SecureRandom() enthalten. In einigen Beispielen, in denen die Rechnervorrichtung 2 ein IOS™-Betriebssystem ausführt, kann die zufällige Erzeugung einer Zahl den Aufruf der Funktion srandom() enthalten. In einigen Beispielen kann die Companion-Anwendung 12 den Anwendungssitzungsschlüssel an einem sicheren Speicherort speichern, wie etwa am hierin beschriebenen Schlüsselspeicherort 242.
  • Bei Aktion 406 kann die Companion-Anwendung 12 eine Anwendungssitzungsschlüsselnachricht 405, die den Anwendungssitzungsschlüssel enthält, an die Clientvorrichtung 4 senden. Die Anwendungssitzungsschlüsselnachricht 405 kann über die Verbindung auf Systemebene 8 gesendet werden. Beispielsweise kann die Companion-Anwendung 12 den Anwendungssitzungsschlüssel mit einer Anfrage, dass er an die Clientvorrichtung 4 gesendet werden soll, an das BS 14 senden. Das BS 14 kann den Anwendungssitzungsschlüssel mit dem Schlüssel für die Verbindung auf Systemebene verschlüsseln, um die Anwendungssitzungsschlüsselnachricht 405 zu erzeugen das BS 14 kann die Sitzungsschlüsselnachricht 405 an die Clientvorrichtung 4 leiten. Die Clientvorrichtung 4 kann die Anwendungssitzungsschlüsselnachricht 405 bei Aktion 408 empfangen. Weil die Clientvorrichtung 4 auch den Schlüssel für die Verbindung auf Systemebene besitzt, kann sie die Anwendungssitzungsschlüsselnachricht 405 entschlüsseln und den Anwendungssitzungsschlüssel abrufen.
  • Bei Aktionen 410 und 412 können die Companion-Anwendung 12 und die Clientvorrichtung 4 einen Anwendungssitzungsschüsseltest 407 ausführen. Dem Anwendungssitzungsschlüsseltest 407 entsprechend können die Companion-Anwendung 12 und Clientvorrichtung 4 verschiedene Nachrichten austauschen, um sich gegenseitig zu authentifizieren und/oder sicherzustellen, dass beide Parteien denselben Anwendungssitzungsschlüssel aufweisen. Beispielanwendungssitzungsschlüsseltests 407 sind hierin bereitgestellt, beispielsweise mit Verweis auf 7-9.
  • Wenn ein Anwendungssitzungsschlüsseltest 407 erfolgreich ist (z. B. wenn beide Parteien eine Kopie desselben Anwendungssitzungsschlüssels besitzen), kann eine Verbindung auf Anwendungsebene 6 zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 erzeugt werden. Beispielsweise kann die Companion-Anwendung 12 eine erste Nachricht erzeugen und die erste Nachricht mit dem Anwendungssitzungsschlüssel verschlüsseln. Die anwendungsverschlüsselte erste Nachricht kann dem BS 14 bereitgestellt werden, das die anwendungsverschlüsselte erste Nachricht mit dem Schlüssel für die Verbindung auf Systemebene verschlüsseln kann, um eine systemverschlüsselte erste Nachricht zu erzeugen. Die systemverschlüsselte erste Nachricht wird dann an die Clientvorrichtung 4 gesendet. Die Clientvorrichtung 4 kann die systemverschlüsselte erste Nachricht mit dem Schlüssel für die Verbindung auf Systemebene entschlüsseln, um die anwendungsverschlüsselte erste Nachricht zu erzeugen. Die Clientvorrichtung 4 kann außerdem die anwendungsverschlüsselte erste Nachricht entschlüsseln, um die erste Klarnachricht zu erzeugen.
  • Ähnlich kann die Clientvorrichtung 4 eine zweite Nachricht erstellen und die zweite Nachricht mit dem Anwendungssitzungsschlüssel verschlüsseln, um eine anwendungsverschlüsselte zweite Nachricht zu erzeugen. Die Clientvorrichtung 4 kann außerdem die anwendungsverschlüsselte zweite Nachricht mit dem Schlüssel für die Verbindung auf Systemebene verschlüsseln, um eine systemverschlüsselte zweite Nachricht zu erzeugen, die an die Rechnervorrichtung 2 gesendet werden kann. Bei der Rechnervorrichtung 2 kann das BS 14 die systemverschlüsselte zweite Nachricht mit dem Schlüssel für die Verbindung auf Systemebene entschlüsseln, um die anwendungsverschlüsselte Nachricht zu erzeugen. Das BS 14 kann die anwendungsverschlüsselte Nachricht an die Companion-Anwendung zurückgeben. Die Companion-Anwendung 12 kann den Anwendungssitzungsschlüssel, der mit der Clientvorrichtung 4 verknüpft ist, abrufen und die anwendungsverschlüsselte Nachricht entschlüsseln, um die zweite Klarnachricht zu erzeugen.
  • Erneut mit Verweis auf 4 zeigt der Prozessablauf 400 auch optionale Aktionen 414, 416, 418, 420, die beispielsweise ausgeführt werden können, wenn die Companion-Anwendung 12 einen Datentyp von der Clientvorrichtung 4 abonnieren soll. Beispielsweise kann die Clientvorrichtung 4 eine tragbare Vorrichtung sein, die Aktivitätsdaten über den Benutzer erfasst (z. B. Benutzeraktivitätsdaten), wie etwa eine Anzahl von gegangenen Schritten, Puls, verbrauchte Kalorien, Schlafmuster usw., oder andere Daten über einen Benutzer. Die Companion-Anwendung 12 kann einen Teil oder alle der erfassten Aktivitätsdaten abonnieren. In einem anderen Beispiel kann die Clientvorrichtung 4 eine Mitteilung erhalten, wenn ein Ereignis auf Social Media oder ein anderes ähnliches Ereignis auf einen Benutzer der Rechnervorrichtung 2 gerichtet ist. Die Companion-Anwendung 12 kann den Empfang von Nachrichten bei Auftreten von einem oder mehreren dieser Ereignisse abonnieren.
  • Bei Aktion 414 kann die Companion-Anwendung 12 Clientinhalte abonnieren, wie etwa die oben beschrieben biometrischen Daten. Die Companion-Anwendung 12 kann eine Abonnementnachricht 409 oder eine andere geeignete Datenanfrage an die Clientvorrichtung 4 senden. Die Abonnementnachricht 409 kann Daten enthalten, die die Art von Clientvorrichtungsdaten beschreiben, die die Companion-Anwendung 12 empfangen wird. Die Abonnementnachricht 409 kann über die Verbindung auf Systemebene 8 und die Verbindung auf Anwendungsebene 6 gleichermaßen gesendet werden. Beispielsweise kann die Abonnementnachricht 409 mit dem Anwendungssitzungsschlüssel und mit der Gebühr für die Verbindung auf Systemebene verschlüsselt sein. Die Clientvorrichtung 4 kann die Abonnementnachricht bei Aktion 416 empfangen und eine geeignete Entschlüsselung durchführen.
  • Bei 418 kann die Clientvorrichtung 4 Abonnementdaten 411 an die Companion-Anwendung 12 senden, beispielsweise über die Verbindung auf Systemebene 8 und die Verbindung auf Anwendungsebene 6. Die Abonnementdaten 411 können Daten von der Art enthalten, auf die in der Abonnementnachricht 409 verwiesen wird. Abonnementdaten 411 können auf einem Speicher der Clientvorrichtung 4 zu einem Zeitpunkt der Abonnementnachricht 409 gespeichert und/oder nachfolgend durch die Clientvorrichtung 4 erfasst oder anderweitig empfangen werden. In einigen Beispielen kann die Clientvorrichtung 4 konfiguriert sein, neu empfangene Abonnementdaten an die Companion-Anwendung zu senden, beispielsweise wie sie empfangen werden und/oder periodisch. Die Companion-Anwendung kann die Abonnementdaten bei 420 empfangen. Die Companion-Anwendung 12 kann die Abonnementdaten 411 mit dem Anwendungssitzungsschlüssel entschlüsseln. (Z. B. kann die Companion-Anwendung 12 die Abonnementdaten 411 empfangen, nachdem das BS sie mit dem Schlüssel für die Verbindung auf Systemebene entschlüsselt hat.)
  • In einigen Beispielen kann die Clientvorrichtung 4 programmiert sein, auf Kommunikationen von der Rechnervorrichtung in einer Weise zu reagieren, die die Sicherheit der Verbindung auf Anwendungsebene erhält. Beispielsweise zeigt 5 ein Ablaufdiagramm, das ein Beispiel eines Prozessablaufs 500 zeigt, das durch die Clientvorrichtung 4 ausgeführt werden kann, um auf eine Kommunikation der Rechnervorrichtung 2 zu reagieren. Die Aktionen des Prozessablaufs 500 können durch jeden geeigneten Bestandteil der Clientvorrichtung 4, einschließlich beispielsweise dem Client-BS 20 und/oder der Clientanwendung 18, ausgeführt werden. Außerdem ist der Prozessablauf 500 in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Der Prozessablauf 500 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen.
  • Bei Aktion 502 kann die Clientvorrichtung 4 eine Kommunikationsanfrage von der Rechnervorrichtung 2 empfangen (z. B. von einer Anwendung 11, 12, die auf der Rechnervorrichtung 2 ausgeführt werden). Bei Aktion 504 kann die Clientvorrichtung 4 bestimmen, ob die Rechnervorrichtung 2 eine Verbindung auf Anwendungsebene 6 mit dem Sender der Kommunikationsanfrage besitzt. Die Clientvorrichtung 4 kann bestimmen, ob sie eine Verbindung auf Anwendungsebene 6 mit dem Sender in einer geeigneten Weise besitzt. Beispielsweise kann die Clientvorrichtung 4 die Kommunikationsanfrage mit dem Schlüssel für die Verbindung auf Systemebene entschlüsseln und dann bestimmen, ob sie einen Anwendungssitzungsschlüssel aufweist, der das Ergebnis entschlüsseln kann. Wenn die Clientvorrichtung 4 mehr als einen aktiven Anwendungssitzungsschlüssel aufweist, kann sie versuchen, alle aktiven Sitzungsschlüssel zu verwenden, die sie besitzt. In einigen Beispielen kann die Kommunikationsanfrage die Identifizierung von Daten umfassen, die die sendende Anwendung angeben. Dementsprechend kann die Bestimmung, ob die Clientvorrichtung 4 eine Verbindung auf Anwendungsebene 6 mit dem Sender aufweist, die Bestimmung umfassen, ob die Clientvorrichtung 4 einen Anwendungssitzungsschlüssel aufweist, der mit dem Sender verknüpft ist, und die Bestimmung, ob der Anwendungssitzungsschlüssel, der mit dem Sender verknüpft ist, in der Lage ist, die Kommunikationsanfrage zu entschlüsseln.
  • Wenn die Clientvorrichtung 4 bei Aktion 504 bestimmt, dass sie eine Verbindung auf Anwendungsebene mit dem Sender der Kommunikationsanfrage besitzt, kann sie die Kommunikationsanfrage bei Aktion 506 empfangen und/oder darauf reagieren. Wenn die Clientvorrichtung 4 bei Aktion 504 bestimmt, dass sie keine Verbindung auf Anwendungsebene mit dem Sender der Kommunikationsanfrage besitzt, kann sie die Kommunikationsanfrage bei Aktion 508 verweigern. Die Verweigerung der Kommunikationsanfrage kann umfassen, dass einfach nicht auf die Kommunikationsanfrage reagiert wird, dass eine Ablehnungsnachricht an die Rechnervorrichtung 2 gesendet wird oder jede andere geeignete Aktion, die anzeigt, dass die Clientvorrichtung 4 die Kommunikationsanfrage verweigert hat.
  • 6 ist ein Ablaufdiagramm, das ein anderes Beispiel für einen Prozessablauf 600 darstellt, der an der Clientvorrichtung 4 ausgeführt werden kann, wenn ein Anwendungssitzungsschlüssel empfange wird, beispielsweise wie oben bezüglich Aktion 408 beschrieben. Die Aktionen des Prozessablaufs 600 können durch jeden geeigneten Bestandteil der Clientvorrichtung 4, einschließlich beispielsweise dem Client-BS 20 und/oder der Clientanwendung 18, ausgeführt werden. Außerdem ist der Prozessablauf 600 in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Der Prozessablauf 600 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen.
  • Bei Aktion 602 kann die Clientvorrichtung 4 einen Anwendungssitzungsschlüssel empfangen. Bei Aktion 604 kann die Clientvorrichtung 4 bestimmen, ob sie einen vorherigen Anwendungssitzungsschlüssel gespeichert hat. Wenn die Clientvorrichtung 4 programmiert ist, mehrere Verbindungen auf Anwendungsebene zu unterhalten, kann sie bestimmen, ob sie einen Anwendungssitzungsschlüssel besitzt, der einem Sender des Anwendungssitzungsschlüssels entspricht, beispielsweise durch Vergleich des empfangenen Anwendungssitzungsschlüssels mit einem oder mehreren gespeicherten Anwendungssitzungsschlüsseln. Wenn kein vorheriger Anwendungssitzungsschlüssel gespeichert ist, kann die Clientvorrichtung 4 mit der Verbindung auf Anwendungsebene unter Verwendung des neu empfangenen Anwendungssitzungsschlüssels bei Aktion 608 fortfahren. Wenn ein vorheriger Anwendungssitzungsschlüssel gespeichert ist, kann die Clientvorrichtung 4 mit dem vorherigen Anwendungsschlüssel bei Aktion 606 fortfahren. Dies kann, wie hierin beschrieben, die Anfälligkeit der Clientvorrichtung 4 einer betrügerischen Verbindung auf Anwendungsebene gegenüber verringern.
  • 7 ist ein Timingdiagramm 700, das ein Beispiel für einen Schlüsselaustausch und eine Authentifizierung zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 zeigt. Das Timingdiagramm 700 ist in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Das Timingdiagramm 700 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen. Die verschiedenen Nachrichten, die nach dem Timingdiagramm 700 verschickt werden, können beispielsweise nach der Verbindung auf Systemebene 8 verschickt werden (z. B. wenn die Verbindung auf Systemebene 8 abgeschlossen ist). Das Timingdiagramm 700 kann ganz oder teilweise ein Beispiel des Anwendungssitzungsschlüsseltests 407 sein, der hierin bezüglich des Prozessablaufs 400 beschrieben ist. Beispielsweise kann das Erzeugen des Anwendungssitzungsschlüssels k bei Aktion 712 durch Nachricht 740 ein Beispiel eines Anwendungssitzungsschlüsseltests 407 darstellen.
  • Bei Nachricht 702 kann die Rechnervorrichtung 2 sich mit der Clientvorrichtung 4 pairen. Bei Nachricht 704 kann die Clientvorrichtung 4 anzeigen, dass das Pairen erfolgreich war. Bei Nachricht 706 kann die Rechnervorrichtung 2 eine Verbindung auf Systemebene mit der Clientvorrichtung 4 aufbauen. Die Clientvorrichtung 4 bei Nachricht 708 kann anzeigen, dass die Verbindung auf Systemebene erfolgreich hergestellt wurde. Wie hierin beschrieben, können Nachrichten 702 und 706 durch die Companion-Anwendung 12 und/oder durch das BS 14 versendet werden, beispielsweise in Reaktion auf eine Anfrage von der Companion-Anwendung 12.
  • Bei Aktion 710 kann die Companion-Anwendung 12 erkennen, dass eine neue Clientvorrichtung (z. B. die Clientvorrichtung 4) gepairt und mit der Rechnervorrichtung verbunden wurde. Beispielsweise kann die Companion-Anwendung 12 bei dem BS 14 neue Clientvorrichtungen abfragen und/oder das BS 14 kann konfiguriert sein, die Companion-Anwendung 12 zu informieren, dass die neue Clientvorrichtung verbunden wurde. Bei Aktion 712 kann die Companion-Anwendung einen Anwendungssitzungsschlüssel k für die Clientvorrichtung 4 erzeugen. Bei Nachricht 714 kann die Companion-Anwendung 12 den Anwendungssitzungsschlüssel k über die Verbindung auf Systemebene an die Clientvorrichtung 4 senden. Optional kann die Clientvorrichtung 4 eine Antwortnachricht 716, die anzeigt, dass der Anwendungssitzungsschlüssel k empfangen wurde, senden. In einigen Beispielen kann die Clientvorrichtung 4 den Prozessablauf 600 wie hierin beschrieben ausführen, um zu bestimmen, ob er einen Anwendungssitzungsschlüssel besitzt, der zuvor von der Companion-Anwendung 12 empfangen wurde. In dem in 7 dargestellten Beispiel kann die Clientvorrichtung 4 bestimmt haben, dass sie keinen zuvor empfangenen Anwendungssitzungsschlüssel von der Companion-Anwendung besessen hat, sodass sie mit dem neu empfangenen Anwendungssitzungsschlüssel k fortfährt.
  • Bei Aktion 718, kann die Companion-Anwendung 12 zufällig eine Zahl v erzeugen, beispielsweise wie hierin beschrieben, und die zufällig erzeugte Zahl v bei Nachricht 720 an die Clientvorrichtung 4 senden. Die Clientvorrichtung 4 kann bei Aktion 722 eine Hashfunktion auf den Anwendungssitzungsschlüssel k und die zufällig erzeugte Zahl v anwenden, um einen Hashwert x zu erzeugen. Jede geeignete Hashfunktion kann beispielsweise einschließlich einer NIST Hashfunktion, einer Bernstein-Hashfunktion, einer Fowler-Noll-Vo-Hashfunktion usw. verwendet werden. Die Clientvorrichtung 4 kann außerdem bei Aktion 724 zufällig eine zweite Zahl v1 erzeugen. Die Clientvorrichtung 4 kann den Hashwert x und die zweite Zahl v1 bei Nachricht 726 an die Companion-Anwendung 12 senden.
  • Die Companion-Anwendung 12 kann bei Aktion 728 die Hashfunktion unter Verwendung der Kopie des Anwendungssitzungsschlüssels k, der in der Rechnervorrichtung 2 gespeichert ist, auf die Zahl v anwenden, um einen Hashwert y zu erzeugen. Die Companion-Anwendung 12 kann programmiert sein, dieselbe Hashfunktion anzuwenden, die die Clientvorrichtung 4 bei Aktion 722 angewendet hat. Dementsprechend sollte, wenn die Kopie eines Anwendungssitzungsschlüssels k, der in der Rechnervorrichtung 2 gespeichert ist, zu der Kopie des Anwendungssitzungsschlüssels k passt, der in der Clientvorrichtung 4 gespeichert ist, der Hashwert x dem Hashwert y entsprechen. Die Companion-Anwendung kann bei Aktion 730 x und y vergleichen. In dem Beispiel-Timingdiagramm 700 können x und y gleich sein. Weil x und y gleich sind, kann die Companion-Anwendung 12 bestimmen, dass die Clientvorrichtung 4 dieselbe Version des Anwendungssitzungsschlüssels k verwendet, die in der Rechnervorrichtung 2 gespeichert ist.
  • Die Companion-Anwendung 12 kann außerdem bei Aktion 732 die Hashfunktion auf Zahl v1 und den Anwendungssitzungsschlüssel k (z. B. die Kopie des Anwendungssitzungsschlüssels, die in der Rechnervorrichtung 2 gespeichert ist) anwenden. Dies kann einen Hashwert y1 erzeugen. Die Companion-Anwendung 12 kann eine Nachricht 734 einschließlich des Hashwerts y1 an die Clientvorrichtung 4 senden. Optional kann die Nachricht 734 auch anzeigen, dass die Companion-Anwendung 12 erfolgreich das Hashen der Zahl v und des Anwendungssitzungsschlüssels k (z. B. durch erfolgreiche Neuerstellung des Hash) verifiziert hat.
  • Bei Aktion 736 kann die Clientvorrichtung 4 die Hashfunktion auf Zahl v1 und den Anwendungssitzungsschlüssel k (z. B. die Version des Anwendungssitzungsschlüssels k, die in der Rechnervorrichtung 4 gespeichert ist) anwenden. Bei Aktion 738 kann die Clientvorrichtung 4 die Hashwerte x1 und y1 vergleichen. Weil in dem Beispiel-Timingdiagramm 700 die Clientvorrichtung 4 und die Companion-Anwendung 12 denselben Anwendungssitzungsschlüssel aufweisen, kann x1 y1 entsprechen. Die Clientvorrichtung 4 kann eine Nachricht 740 an die Companion-Anwendung senden, um anzuzeigen, dass die Clientvorrichtung 4 erfolgreich das Hashen der Zahl v1 und des Anwendungssitzungsschlüssels k (z. B. durch erfolgreiche Neuerstellung des Hashs) verifiziert hat.
  • 8 ist ein Timingdiagramm 800, das ein Beispiel für einen Schlüsselaustausch und eine Authentifizierung zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 zeigt. Beispielsweise kann das Timingdiagramm 800 einen Prozess, der durch die Clientvorrichtung 4 und die Companion-Anwendung 12 ausgeführt wird, wenn die Clientvorrichtung 4 und die Companion-Anwendung 12 bereits zuvor verbunden waren und bereits einen Anwendungssitzungsschlüssel ausgetauscht haben, der von k gegeben wurde, darstellen. Außerdem ist das Timingdiagramm 800 in Verbindung mit der Beispielumgebung 10 aus 1 beschrieben, die die Rechnervorrichtung 2 und die Clientvorrichtung 4 enthält. Das Timingdiagramm 800 kann jedoch ausgeführt werden, um Kommunikationssicherheit zwischen zwei beliebigen geeigneten Vorrichtungen und/oder Anwendungen umzusetzen. Die verschiedenen Nachrichten, die nach dem Timingdiagramm 800 verschickt werden, können beispielsweise nach der Verbindung auf Systemebene 8 verschickt werden (z. B. wenn die Verbindung auf Systemebene 8 abgeschlossen ist) .
  • Das Timingdiagramm 800 beginnt mit einer Verbindung zwischen der Rechnervorrichtung 2 (z. B. dem BS 14 davon) und der Clientvorrichtung 4, einschließlich einer Verbindungsnachricht 802 von der Rechnervorrichtung 2 und einer Verbindungserfolgsnachricht 804 von der Clientvorrichtung 4 mit der Rechnervorrichtung 2. In verschiedenen Beispielen kann dies die Verbindung auf Systemebene 8 aufbauen, worauf die nachfolgende Kommunikationen zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 gesendet werden kann.
  • Bei Aktion 806 kann die Companion-Anwendung 12 den Anwendungssitzungsschlüssel k von dem Speicher der Rechnervorrichtung 2 abrufen. Beispielsweise kann die Companion-Anwendung 12 eine Anfrage an das BS 14 senden, den Anwendungssitzungsschlüssel k an einem Schlüsselspeicher-Speicherort abzurufen, wie hierin beschrieben. Die Companion-Anwendung 12 kann optional den Anwendungssitzungsschlüssel k (z. B. die Kopie des Anwendungssitzungsschlüssels k, der in der Rechnervorrichtung 2 gespeichert ist) in einer Nachricht 808 an die Clientvorrichtung 4 senden. Die Clientvorrichtung 4 sendet in einigen Beispielen eine Nachricht 810 an die Companion-Anwendung 12 und zeigt an, dass der Schlüssel empfangen wurde. Wie oben bezüglich des Prozessablaufs 600 beschrieben, kann die Clientvorrichtung 4 nach Empfang des Anwendungssitzungsschlüssels k bestimmen, dass sie einen vorherigen Schlüssel für die Companion-Anwendung 12 gespeichert hat, und kann daher mit dem Timingdiagramm 800 mit seiner gespeicherten Version des Anwendungssitzungsschlüssels k fortfahren, der hierin als Kopie des Anwendungssitzungsschlüssels k bezeichnet ist, der in der Clientvorrichtung 4 gespeichert ist.
  • Bei Aktion 812 kann die Companion-Anwendung 12 beispielsweise zufällig eine Zahl v erzeugen, wie hierin beschrieben. Die Companion-Anwendung kann eine Nachricht 814 an die Clientvorrichtung 4 senden, die die Zahl v enthält. Die Clientvorrichtung 4 kann bei Aktion 816 eine Hashfunktion auf die empfangene Zahl v und die Kopie des Anwendungssitzungsschlüssels k, der in der Clientvorrichtung 4 gespeichert ist, anwenden, um einen Hashwert x zu erzeugen. Bei Aktion 818 kann die Clientvorrichtung 4 zufällig eine andere Zahl v1 erzeugen. Die Clientvorrichtung kann den Hashwert x und die Zahl v1 bei Nachricht 819 an die Companion-Anwendung senden.
  • Nach Empfang der Nachricht 819 kann die Companion-Anwendung 12 bei Aktion 820 die Hashfunktion auf die Zahl v und die Kopie des Anwendungssitzungsschlüssels k, der in der Rechnervorrichtung 2 gespeichert ist, anwenden, um einen anderen Hashwert y zu erzeugen. Bei Aktion 822 kann die Companion-Anwendung 12 x und y vergleichen. Wenn die Kopie des Anwendungssitzungsschlüssels k, die durch die Companion-Anwendung 12 beispielsweise in einem Schlüsselspeicher gespeichert ist, der Kopie des Anwendungssitzungsschlüssels k entspricht, der in der Clientvorrichtung 4 gespeichert ist, kann x y entsprechen. In dem Beispiel-Timingdiagramm 800 können die Kopien des Anwendungssitzungsschlüssels k, die durch die Companion-Anwendung 12 und die Clientvorrichtung 4 gespeichert sind, sich entsprechen, sodass das Companion-x und y sich entsprechen können.
  • Die Companion-Anwendung 12 kann die Hashfunktion auf die Zahl v1 und ihre Kopie des Anwendungssitzungsschlüssels k bei Aktion 824 anwenden, um einen Hashwert y1 zu erzeugen, und kann eine Nachricht 826 einschließlich des Hashwerts y1 und eine Angabe des Erfolgs des Vergleichs von x und y senden. Die Clientvorrichtung kann die Nachricht 826 empfangen und bei Aktion 828 die Hashfunktion auf den Hashwert v1 und die Kopie des Anwendungssitzungsschlüssels k anwenden, der in der Clientvorrichtung 4 gespeichert ist. Die Clientvorrichtung 4 kann x1 und y1 bei Aktion 832 vergleichen. Weil die Kopien des Anwendungssitzungsschlüssels, die durch die Companion-Anwendung 12 und die Clientvorrichtung 4 gespeichert sind, sich in dem Beispieltimingdiagramm 800 entsprechen, können sich x1 und x2 entsprechen. Dementsprechend kann die Clientvorrichtung 4 eine Nachricht 832 senden, die den Erfolg des Vergleichs von x1 und y1 anzeigt. Optional kann die Nachricht 832 auch den Hashwert x1 umfassen, der bei Aktion 828 berechnet wurde.
  • 9 ist ein Timingdiagramm 900, das ein Beispiel für einen Schlüsselaustausch und eine Authentifizierung zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 zeigt. Beispielsweise kann das Timingdiagramm 900 einen Prozess anzeigen, der durch die Clientvorrichtung 4 und die Companion-Anwendung 12 ausgeführt wurde, wenn die Companion-Anwendung 12 versucht, einen neuen Anwendungssitzungsschlüssel k zu erzeugen, wenn die Clientvorrichtung 4 einen zuvor gespeicherten Anwendungssitzungsschlüssel k aufweist. Dies kann beispielsweise erfolgen, wenn die Companion-Anwendung 12 auf der Rechnervorrichtung 2 neu installiert wird, wenn die Verbindung auf Systemebene 8 zwischen der Rechnervorrichtung 2 und der Clientvorrichtung 4 zurückgesetzt wird, oder aus anderen geeigneten Gründen.
  • Das Timingdiagramm 900 beginnt mit einer Verbindung zwischen der Rechnervorrichtung 2 (z. B. dem BS 14 davon) und der Clientvorrichtung 4, einschließlich einer Verbindungsnachricht 902 von der Rechnervorrichtung 2 und einer Verbindungserfolgsnachricht 904 von der Clientvorrichtung 4 mit der Rechnervorrichtung 2. In verschiedenen Beispielen kann dies die Verbindung auf Systemebene 8 aufbauen, worauf die nachfolgende Kommunikationen zwischen der Companion-Anwendung 12 und der Clientvorrichtung 4 gesendet werden kann.
  • Bei Aktion 906 kann die Companion-Anwendung 12 einen Anwendungssitzungsschlüssel k für die Clientvorrichtung 4 erzeugen, die in der Beschreibung des Timingdiagramms 900 als neuer Schlüssel bezeichnet wird. Bei Nachricht 908 kann die Companion-Anwendung 12 den neuen Schlüssel k über die Verbindung 8 auf Systemebene an die Clientvorrichtung 4 senden. Optional kann die Clientvorrichtung 4 eine Antwortnachricht 910, die anzeigt, dass der neue Schlüssel k empfangen wurde, senden. Die Clientvorrichtung 4 kann den Prozessablauf 600 wie hierin oben beschrieben ausführen. Die Clientvorrichtung 4 kann bestimmen, dass sie eine Kopie des zuvor empfangenen Anwendungssitzungsschlüssels k, der mit der Companion-Anwendung 12 verknüpft ist, und auf den in der Beschreibung des Timingdiagramms 900 verwiesen ist, als im Client gespeicherten Schlüssel aufweist. Dementsprechend kann die Clientvorrichtung 4 den Rest des Timingdiagramms 900 mit dem im Client gespeicherten Schlüssel vervollständigen.
  • Bei Aktion 912, kann die Companion-Anwendung 12 zufällig eine Zahl v erzeugen, beispielsweise wie hierin beschrieben, und die zufällig erzeugte Zahl v bei Nachricht 914 an die Clientvorrichtung 4 senden. Die Clientvorrichtung 4 kann bei Aktion 916 eine Hashfunktion auf die zufällig erzeugte Zahl v und den vom im Client gespeicherten Schlüssel anwenden. Die Clientvorrichtung 4 kann außerdem bei Aktion 918 zufällig eine zweite Zahl v1 erzeugen. Die Clientvorrichtung 4 kann den Hashwert x und die zweite Zahl v1 bei Nachricht 920 an die Companion-Anwendung 12 senden.
  • Die Companion-Anwendung 12 kann bei Aktion 922 die Hashfunktion unter Verwendung des neuen Schlüssels auf die Zahl v anwenden, um einen Hashwert y zu finden. Bei Aktion 924 kann die Companion-Anwendung 12 x und y vergleichen. Weil der Hashwert x durch Anwendung der Hashfunktion mit dem im Client gespeicherten Schlüssel gefunden wurde und der Hashwert y durch Anwendung der Hashfunktion mit dem neuen Schlüssel gefunden wurde, können x und y unterschiedlich sein. Die Companion-Anwendung 12 kann bei Aktion 926 bestimmen, dass der Abgleich von x und y fehlgeschlagen ist, und bei Aktion 928 ein Zurücksetzen der Clientvorrichtung 4 auslösen. Beispielsweise kann die Companion-Anwendung 12 eine Nachricht an die Clientvorrichtung 4 senden, die anfordert, dass sie zurückgesetzt wird. In einigen Beispielen kann die Companion-Anwendung 12 an einer Ausgabevorrichtung der Rechnervorrichtung 2 eine Anfrage anzeigen, dass der Benutzer manuell die Clientvorrichtung 4 zurücksetzen soll.
  • 10 ist ein Timingdiagramm 1000, das ein Beispiel für einen Schlüsselaustausch und eine Authentifizierung zwischen der Anwendung 11 und der Clientvorrichtung 4 zeigt. Beispielsweise kann das Timingdiagramm 1000 einen Prozess, der durch die Clientvorrichtung 4 ausgeführt wird, und eine zweite Anwendung 11 anzeigen, wenn die Anwendung 11 versucht, auf die Clientvorrichtung 4 zuzugreifen, nachdem die Companion-Anwendung 12 eine Verbindung auf Anwendungsebene 6 mit der Clientvorrichtung erzeugt hat. Dementsprechend hat die Clientvorrichtung 4 zu Beginn des Timingdiagramms 1000 einen gespeicherten Anwendungssitzungsschlüssel, der in der Darstellung des Timingdiagramms 1000 als im Client gespeicherter Schlüssel bezeichnet ist.
  • Das Timingdiagramm 1000 beginnt mit einer Verbindung zwischen der Rechnervorrichtung 2 (z. B. dem BS 14 davon) und der Clientvorrichtung 4, einschließlich einer Verbindungsnachricht 1002 von der Rechnervorrichtung 2 und einer Verbindungserfolgsnachricht 1004 von der Clientvorrichtung 4 mit der Rechnervorrichtung 2. In verschiedenen Beispielen kann dies die Verbindung auf Systemebene 8 aufbauen, worauf die nachfolgende Kommunikationen zwischen der Anwendung 11 und der Clientvorrichtung 4 gesendet werden kann.
  • Bei Aktion 1006 kann die Anwendung 11 einen Anwendungssitzungsschlüssel k für die Clientvorrichtung 4 erzeugen und/oder einen zuvor erzeugten Anwendungssitzungsschlüssel von seinem Schlüsselspeicher abrufen. Dieser Anwendungssitzungsschlüssel, die durch die Anwendung 11 erzeugt und/oder abgerufen wird, wird als nicht entsprechender Schlüssel bezeichnet, da er nicht dem im Client gespeicherten Schlüssel entspricht. Bei Nachricht 1008 kann die Anwendung 11 den nicht entsprechenden Schlüssel k über die Verbindung 8 auf Systemebene an die Clientvorrichtung 4 senden. Optional kann die Clientvorrichtung 4 eine Antwortnachricht 1010, die anzeigt, dass der nicht entsprechende Schlüssel k empfangen wurde, senden. Die Clientvorrichtung 4 kann den Prozessablauf 600 wie hierin oben beschrieben ausführen. Die Clientvorrichtung 4 kann bestimmen, dass sie eine Kopie des im Client gespeicherten Schlüssels aufweist. Dementsprechend kann die Clientvorrichtung 4 den Rest des Timingdiagramms 1000 mit dem im Client gespeicherten Schlüssel vervollständigen.
  • Bei Aktion 1012, kann die Anwendung 11 zufällig eine Zahl v erzeugen, beispielsweise wie hierin beschrieben, und die zufällig erzeugte Zahl v an die Clientvorrichtung 4 bei Nachricht 1014 senden. Die Clientvorrichtung 4 kann bei Aktion 1016 eine Hashfunktion auf die zufällig erzeugte Zahl v und den vom im Client gespeicherten Schlüssel anwenden. Die Clientvorrichtung 4 kann außerdem bei Aktion 1018 zufällig eine zweite Zahl v1 erzeugen. Die Clientvorrichtung 4 kann den Hashwert x und die zweite Zahl v1 bei Nachricht 1020 an die Anwendung 11 senden.
  • Die Anwendung 11 kann bei Aktion 1022 die Hashfunktion unter Verwendung des nicht entsprechenden Schlüssels auf die Zahl v anwenden, um einen Hashwert y zu finden. Bei Aktion 1024 kann die Anwendung 11 x und y vergleichen. Weil der Hashwert x durch Anwendung der Hashfunktion mit dem im Client gespeicherten Schlüssel gefunden wurde und der Hashwert y durch Anwendung der Hashfunktion mit dem nicht entsprechenden Schlüssel gefunden wurde, können x und y unterschiedlich sein. Die Anwendung 11 kann bei Aktion 1026 bestimmen, dass der Abgleich von x und y fehlgeschlagen ist, und bei Aktion 1028 ein Zurücksetzen der Clientvorrichtung 4 auslösen. Beispielsweise kann die Anwendung 11 eine Nachricht an die Clientvorrichtung 4 senden, die anfordert, dass sie zurückgesetzt wird. In einigen Beispielen kann die Anwendung 11 an einer Ausgabevorrichtung der Rechnervorrichtung 2 eine Anfrage anzeigen, dass der Benutzer manuell die Clientvorrichtung 4 zurücksetzen soll. In einigen Beispielen kann die Aufforderung zum Zurücksetzen die Anwendung 11 anzeigen, die das Zurücksetzen verlangt. Wenn der Benutzer die Anwendung 11 nicht als korrekt mit der Clientvorrichtung 4 verknüpft erkennt, kann er das Zurücksetzen ablehnen, was verhindern kann, dass die Anwendung 11 mit der Clientvorrichtung 4 kommuniziert.
  • 11 ist ein Blockdiagramm 1100, das ein Beispiel einer Softwarearchitektur 1102 für eine Rechnervorrichtung darstellt. Die Architektur 1102 kann in Zusammenhang mit verschiedenen Hardwarearchitekturen verwendet werden, beispielsweise wie hierin beschrieben. 11 ist nur ein nicht einschränkendes Beispiel einer Softwarearchitektur und viele anderen Architekturen können umgesetzt werden, um die hierin beschrieben Funktion zu ermöglichen. Die Softwarearchitektur 1102 kann auf einer Hardware ausgeführt werden, wie beispielsweise den Rechnervorrichtungen 2, 32 und/oder den Clientvorrichtungen 4, 34. Eine repräsentative Hardwareschicht 1104 ist illustriert und kann beispielsweise jede der oben genannten Rechnervorrichtungen darstellen. In einigen Beispielen kann die Hardwareschicht 1104 der Architektur 200 von 2 und/oder der Architektur 1200 von 12 entsprechend umgesetzt sein.
  • Die repräsentative Hardwareschicht 1104 umfasst eine oder mehrere Verarbeitungseinheiten 1106, die entsprechende ausführbare Anweisungen 1108 aufweisen. Ausführbare Anweisungen 1108 stellen die ausführbaren Anweisungen der Softwarearchitektur 1102 dar, einschließlich der Umsetzung der Verfahren, Module, Bestandteile und so weiter aus 1 und 3 bis 10. Die Hardwareschicht 1104 enthält ebenfalls Speicher und/oder Speichermodule 1110, die ebenfalls ausführbare Anweisungen 1108 aufweisen. Die Hardwareschicht 1104 kann auch andere Hardware umfassen, wie durch 1112 angegeben, die jede andere Hardware der Hardwareschicht 1104 darstellt, wie etwa die andere Hardware, die als Teil der Hardwarearchitektur 1200 illustriert ist.
  • In der Beispielarchitektur von 11 kann die Software 1102 als Stapel von Schichten konzeptualisiert sein, wobei jede Schicht eine bestimmte Funktion bereitstellt. Beispielsweise kann die Software 1102 Schichten umfassen, wie ein Betriebssystem 1114, Bibliotheken 1116, Rahmen/Middleware 1118, Anwendungen 1120 und eine Präsentationsschicht 1144. Funktional können die Anwendungen 1120 und/oder anderen Bestandteile innerhalb der Schichten Aufrufe 1124 der Anwendungsprogrammierschnittstelle (API) durch den Softwarestapel einleiten und eine Antwort, zurückgegebene Werte und so weiter, die als Nachrichten 1126 illustriert sind, in Reaktion auf die API-Aufrufe 1124 empfangen. Die illustrierten Schichten sind repräsentativer Art und nicht alle Softwarearchitekturen weisen alle Schichten auf. Beispielsweise können einige mobile oder Spezialzweck-Betriebssysteme keine Rahmen-/Middelwareschicht 1118 aufweisen, während andere eine solche Schicht aufweisen können. Andere Softwarearchitekturen können weitere oder andere Schichten aufweisen.
  • Das Betriebssystem 1114 kann Hardwareressourcen verwalten, die gemeinsame Leistungen bereitstellen. Das Betriebssystem 1114 kann beispielsweise einen Kernel 1128, Dienste 1130 und Treiber 1132 enthalten. Der Kernel 1128 kann als Abstraktionsschicht zwischen der Hardware und den anderen Softwareschichten dienen. Beispielsweise kann der Kernel 1128 für das Speichermanagement, Prozessormanagement (z. B. Planung), Bauteilmanagement, Networking, Sicherheitseinstellungen und so weiter verantwortlich sein. Die Dienste 1130 können andere gemeinsame Dienste für die anderen Softwareschichten bereitstellen. Die Treiber 1132 können für die Steuerung oder Schnittstellen mit der zugrundliegenden Hardware verantwortlich sein. Beispielsweise können die Treiber 1132 Anzeigetreiber, Kameratreiber, Bluetooth®-Treiber, Flash-Speichertreiber, serielle Kommunikationstreiber (z. B. Universal-Serial-Bus- (USB) Treiber), Wi-Fi®-Treiber, NFC-Treiber, Audiotreiber, Leistungsmanagementtreiber und so weiter enthalten, abhängig von der Hardwarekonfiguration.
  • Die Bibliotheken 1116 können eine gemeinsame Infrastruktur bereitstellen, die durch die Anwendungen 1120 und/oder andere Bestandteile und/oder Schichten verwendet werden können. Die Bibliotheken 1116 stellen üblicherweise eine Funktion bereit, die es anderen Softwaremodulen erlaubt, Aufgaben in einer einfacheren Weise auszuführen, als durch direkte Schnittstelle mit der Funktion des zugrundeliegenden Betriebssystems 1114 (z. B. Kernel 1128, Dienste 1130 und/oder Treiber 1132). Die Bibliotheken 1116 können System- 1134 Bibliotheken (z. B. C-Standard-Bibliothek) umfassen, die Funktionen wie Speicherzuordnungsfunktionen, Stringmanipulationsfunktionen, mathematische Funktionen und ähnliches bereitstellen können. Weiterhin können die Bibliotheken 1116 API-Bibliotheken 1136 enthalten, wie Medienbibliotheken (z. B. Bibliotheken zur Unterstützung der Präsentation und Manipulation eines verschiedenen Medienformats wie MPEG4, H.264, MP3, AAC, AMR, JPG, PNG), Grafikbibliotheken (z. B. ein OpenGL-Rahmen, der verwendet werden kann, um 2D und 9D in einem grafischen Inhalt auf einer Anzeige zu rendern), Datenbankbibliotheken (z. B. SQLite, das verschiedene relationale Datenbankfunktionen bereitstellen kann), Web-Bibliotheken (z. B. WebKit, die eine Webbrowsingfunktion bereitstellen kann), und ähnliches. Die Bibliotheken 1116 können auch eine große Vielzahl anderer Bibliotheken 1138 enthalten, um viele andere APIs der Anwendungen 1120 und anderen Softwarebestandteile/-module bereitzustellen.
  • Die Rahmen 1118 (auch gelegentlich bezeichnet als Middleware) können eine gemeinsame Infrastruktur auf höherer Ebene bereitstellen, die durch die Anwendungen 1120 und/oder andere Softwarebestandteile/- module bereitgestellt werden kann. Beispielsweise können die Rahmen 1118 verschiedene grafische Benutzeroberflächen- (GUI) Funktionen, High-Level-Ressourcenmanagement, High-Level-Standortdienste und so weiter bereitstellen. Die Rahmen 1118 können ein breites Spektrum anderer APIs bereitstellen, die durch die Anwendungen 1120 und/oder andere Softwarebestandteile/-module verwendet werden können, von denen einige spezifisch für ein bestimmtes Betriebssystem oder eine Plattform sind.
  • Die Anwendungen 1120 enthält eingebaute Anwendungen 1140 und/oder Drittanwendungen 1142. Beispiele für repräsentative eingebaute Anwendungen 1140 können enthalten, sind jedoch nicht beschränkt auf eine Kontakteanwendung, eine Browser-Anwendung, eine Book-Reader-Anwendung, eine Standortanwendung, eine Medienanwendung, eine Nachrichtenanwendung, und/oder eine Spielanwendung. Drittanwendungen 1142 können jede der eingebauten Anwendungen enthalten, sowie eine breite Auswahl an anderen Anwendungen. In einem spezifischen Beispiel kann die Drittanwendung 1142 (z. B. eine Anwendung, die unter Verwendung des Software Development Kit (SDK) von Android™ oder iOS™ durch eine andere Einheit als den Anbieter der entsprechenden Plattform entwickelt wurde) mobile Software sein, die auf einem mobilen Betriebssystem wie etwa iOS™, Android™, Windows® Phone oder anderen mobilen Betriebssystemen läuft. In diesem Beispiel kann die Drittanwendung 1142 die API-Aufrufe 1124 einleiten, die durch das mobile Betriebssystem wie etwa Betriebssystem 1114 bereitgestellt werden, um die hierin beschrieben Funktion zu ermöglichen.
  • Die Anwendungen 1120 können eingebaute Betriebssystemfunktionen (z. B. Kernel 1128, Dienste 1130 und/oder Treiber 1132), Bibliotheken (z. B. System 1134, APIs 1136 und andere Bibliotheken 1138), Rahmen / Middleware 1118 verwenden, um Benutzerschnittstellen zu erzeugen, um mit Benutzern des Systems zu interagieren. Alternativ oder außerdem können in einigen Systeme Interaktionen mit einem Benutzer durch eine Präsentationsschicht auftreten, wie etwa die Präsentationsschicht 1144. In diesen Systemen kann die Anwendungs-/Modul-„Logik“ von den Aspekten der Anwendung/des Moduls getrennt sein, die/das mit einem Benutzer interagiert.
  • Einige Softwarearchitekturen verwenden Virtual Machines. In dem Beispiel von 11 ist dies durch die Virtual Machine 1148 illustriert. Eine Virtual Machine erzeugt eine Softwareumgebung, in der Anwendungen/Module ausgeführt werden können, als ob sie auf einer Hardware-Rechnervorrichtung ausgeführt würden. Eine Virtual Machine wird durch ein HostBetriebssystem gehostet (Betriebssystem 1114) und weist typischerweise, wenn auch nicht immer, einen Virtual-Machine-Monitor 1146 auf, der die Funktionen der Virtual Machine sowie die Schnittstelle mit dem Hostbetriebssystem (d. h. Betriebssystem 1114) verwaltet. Eine Softwarearchitektur wird innerhalb der Virtual Machine ausgeführt, wie etwa in einem Betriebssystem 1150, in Bibliotheken 1152, Rahmen / Middleware 1154, Anwendungen 1156 und/oder der Präsentationsschicht 1158. Diese Schichten der Softwarearchitektur, die innerhalb der Virtual Machine 1148 ausgeführt werden, können dieselben sein, wie entsprechende Schichten, die zuvor beschrieben wurden, oder sich von diesen unterscheiden.
  • 12 ist ein Blockdiagramm, das eine Rechnervorrichtungshardwarearchitektur 1200 illustriert, in der ein Satz oder eine Sequenz von Anweisungen ausgeführt werden kann, um die Maschine zu veranlassen, Beispiele einer der hierin besprochenen Methoden durchzuführen. Beispielsweise kann die Architektur 1200 die Softwarearchitektur 1102, die für 11 beschrieben wurde, ausführen. Die Architektur 1200 kann als eigenständige Vorrichtung oder kann mit anderen Maschinen verbunden sein (z. B. als Netzwerk). In einem Netzwerkeinsatz kann die Architektur 1200 in der Eigenschaft als Server oder Client in Server-Client-Netzwerkumgebungen laufen, oder als Peermaschine in Peer-to-Peer (oder verteilten) Netzwerkumgebungen wirken. Die Architektur 1200 kann in einem Personal Computer (PC), einem Tablet PC, einem Hybridtablet, einer Set-Top Box (STB), einem Personal Digital Assistant (PDA), einem Mobiltelefon, einer Webvorrichtung, einem Netzwerkrouter, Switch oder Bridge, oder einer anderen Maschine ausgeführt werden, die in der Lage ist, Anweisungen auszuführen (sequenziell oder anderweitig), die Aktionen vorgeben, die durch diese Maschine zu ergreifen sind.
  • Die Beispielarchitektur 1200 enthält eine Prozessoreinheit 1202, die mindestens einen Prozessor umfasst (z. B. eine Central Processing Unit (CPU), eine Graphics Processing Unit (GPU) oder beides, Prozessorkerne, Computerknoten usw.). Die Architektur 1200 kann ferner einen Hauptspeicher 1204 und einen statischen Speicher 1206 umfassen, die miteinander über einen Link 1208 (z. B. Bus) kommunizieren. Die Architektur 1200 kann ferner eine Videoanzeigeeinheit 1210, eine alphanumerische Eingabevorrichtung 1212 (z. B. eine Tastatur) und eine Benutzerschnittstellen- (UI) Navigationsvorrichtung 1214 (z. B. eine Maus) enthalten. In einigen Beispielen sind die Videoanzeigeeinheit 1210, Eingabevorrichtung 1212 und UI-Navigationsvorrichtung 1214 in eine Touchscreenanzeige eingebaut. Die Architektur 1200 kann weiterhin eine Speichervorrichtung 1216 (z. B. eine Laufwerkseinheit), eine Signalerzeugungsvorrichtung 1218 (z. B. einen Lautsprecher), eine Netzwerkschnittstellenvorrichtung 1220 und einen oder mehrere Sensoren (nicht dargestellt), wie etwa einen Global-Positioning-System- (GPS) Sensor, Kompass, Beschleunigungsmesser oder anderen Sensor enthalten.
  • Die Speichervorrichtung 1216 enthält ein maschinenlesbares Medium 1222, auf dem ein oder mehrere Sätze Datenstrukturen und Anweisungen 1224 (z. B. Software) gespeichert sind, die ein oder mehrere der Verfahren oder Funktionen wie hierin beschrieben verkörpert oder davon genutzt werden. Die Anweisungen 1224 können sich ebenfalls vollständig oder zumindest teilweise in dem Hauptspeicher 1204, statischen Speicher 1206 und/oder in dem Prozessor 1202 befinden, während sie durch die Architektur 1200 ausgeführt werden, wobei der Hauptspeicher 1204, statische Speicher 1206 und der Prozessor 1202 ebenfalls maschinenlesbare Medien darstellen. Anweisungen, die in dem maschinenlesbaren Medium 1222 gespeichert wurden, können beispielsweise Anweisungen für die Umsetzung der Softwarearchitektur 1102, Anweisungen zum Ausführen einer der hierin beschriebenen Funktionen usw. enthalten.
  • Während das maschinenlesbare Medium 1222 in einem Beispielen als ein einzelnes Medium illustriert ist, kann der Begriff „maschinenlesbares Medium“ ein einzelnes Medium oder mehrere Medien enthalten (z. B. eine zentralisierte oder verteilte Datenbank und/oder verbundene Caches und Server), die die einen oder mehreren Anweisungen 1224 speichern. Der Begriff „maschinenlesbares medium“ soll ebenfalls jedes greifbare Medium umfassen, das in der Lage ist, Anweisungen zum Ausführen durch die Maschine zu speichern, codieren oder zu tragen, und die Maschine zu veranlassen, ein oder mehrere der Verfahren der vorliegenden Offenbarung auszuführen, die in der Lage ist, Datenstrukturen zu speichern, codieren oder zu tragen, die durch diese Anweisung verwendet werden oder mit dieser verbunden sind. Der Begriff „maschinenlesbares Medium“ ist entsprechend zu verstehen als umfassend, aber nicht beschränkt auf Solid-State-Speicher und optische sowie magnetische Medien. Spezifische Beispiele maschinenlesbarer Medien enthalten nichtflüchtige Speicher, einschließlich, aber nicht beschränkt auf beispielsweise Halbleiterspeichervorrichtungen (z. B. Electrically Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) und Flashspeichervorrichtungen; Magnetscheiben wie internen Festplatten und entfernbaren Disketten; magnetooptische Platten; und CD-ROM und DVD-ROM-Scheiben.
  • Die Anweisungen 1224 können ferner über ein Kommunikationsnetzwerk 1226 unter Verwendung eines Sendemediums über die Netzwerkschnittstellenvorrichtung 1220 unter Verwendung eines aus einer Anzahl bekannter Transferprotokolle (z. B. HTTP) gesendet oder empfangen werden. Beispiele für Kommunikationsnetzwerke enthalten ein Local Area Network (LAN), Wide Area Network (WAN), das Internet, Mobiltelefonnetzwerke, Plain Old Telephone (POTS) Netzwerkle und Drahtlosdatennetzwerke (z. B. Wi-Fi, 3G und 6G LTE/LTE-A oder WiMAX-Netzwerke). Der Begriff „Übertragungsmedium“ ist zu verstehen als enthalten alle nicht greifbaren Medien, die in der Lage sind, Anweisungen für die Ausführung durch die Maschine zu speichern, codieren oder zu tragen, und digitale oder analoge Kommunikationssignale oder andere nicht greifbare Medien zu tragen, um die Kommunikation dieser Software zu vereinfachen.
  • Beispiele wie hierin beschrieben können eine Logik oder eine Anzahl von Bestandteilen, Engines oder Modulen, Schaltungen, die zum Zweck der Einheitlichkeit als Schaltungen bezeichnet sind, auch wenn es sich versteht, dass diese Begriffe austauschbar verwendet werden, enthalten. Schaltungen können Hardware, Software oder Firmware sein, die kommunikativ mit einem oder mehreren Prozessoren verbunden sind, um die hierin beschriebenen Funktionen auszuführen. Schaltungen können Hardwareschaltungen sein und so können Schaltungen als greifbare Einheiten betrachtet werden, die in der Lage sind, vorgegebenen Funktionen auszuführen, und in einer bestimmten Weise konfiguriert oder angeordnet sein können. In einem Beispiel können Schaltungen in einer vorgegebenen Weise als eine Schaltung angeordnet sein (z. B. intern oder bezüglich externer Einheiten wie anderen Schaltkreisen). In einem Beispiel können eine oder mehrere Rechnerplattformen (z. B. eine Standalone-, Client- oder Server-Plattform) oder eine oder mehrere Hardware-Prozessoren ganz oder teilweise durch Firmware oder Software (z. B. Anweisungen, einen Anwendungsabschnitt oder eine Anwendung) als eine Schaltung konfiguriert sein, die funktioniert, um vorgegebene Funktionen auszuführen. In einem Beispiel kann sich die Software auf einem maschinenlesbaren Medium befinden. In einem Beispiel veranlasst die Software, wenn sie durch die zugrundeliegende Hardware der Schaltung ausgeführt wird, die Hardware zum Ausführen der vorgegebenen Funktionen. Dementsprechend wird der Begriff Hardwareschaltung so verstanden, dass er eine greifbare Einheit umfasst, egal, ob die Einheit physisch aufgebaut, speziell konfiguriert (z. B. fest verkabelt) oder temporär (z. B. transitorisch) konfiguriert (z. B. programmiert) ist, in einer vorgegebenen Weise zu funktionieren oder einen Teil oder alle der hierin beschriebenen Funktionen durchzuführen.
  • Unter Beachtung der Beispiele, in denen Schaltungen temporär konfiguriert sind, muss jede der Schaltungen nicht zu einem bestimmten Zeitpunkt instanziiert sein. Beispielsweise kann, wenn die Schaltungen einen allgemeinen Hardwareprozessor umfassen, der unter Verwendung von Software konfiguriert ist, der allgemeine Hardwareprozessor als jeweils unterschiedliche Schaltungen zu unterschiedlichen Zeiten konfiguriert sein. Software kann einen Hardware-Prozessor entsprechend konfigurieren, beispielsweise, um eine bestimmte Schaltung an einer Zeitinstanz darzustellen, und um eine andere Schaltung zu einer anderen Zeitinstanz darzustellen.
  • Weitere Hinweise & Beispiele:
  • Beispiel 1 ist ein System, umfassend: eine Rechnervorrichtung, umfassend mindestens einen Prozessor und einen Speicher in Kommunikation mit dem mindestens einen Prozessor, umfassend: eine Verbindungsschaltung zum Erzeugen einer Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung; eine erste Anwendung, die auf der Rechnervorrichtung ausgeführt wird, um: einen ersten Anwendungssitzungsschlüssel über die Verbindung an die Clientvorrichtung zu senden; eine kryptografische Funktion auf eine erste Nachricht mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines ersten kryptografischen Ergebnisses durchzuführen; das erste kryptografische Ergebnis über die Verbindung an die Clientvorrichtung zu senden; ein zweites kryptografisches Ergebnis über die Verbindung von der Clientvorrichtung zu empfangen; und zu bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde.
  • In Beispiel 2 enthält der Inhalt von Beispiel 1 optional ein Betriebssystem, das auf der Rechnervorrichtung ausgeführt wird, um: von der ersten Anwendung eine Anfrage zu erhalten, den ersten Anwendungssitzungsschlüssel zu speichern; und den ersten Anwendungssitzungsschlüssel an einem Standort des Speichers zu speichern, der mit der ersten Anwendung verknüpft ist.
  • In Beispiel 3 enthält der Inhalt von einem oder mehreren der Beispiele 1 bis 2 optional, wobei die erste Anwendung auch Folgendes ausführen soll: zufälliges Erzeugen einer ersten Zahl; Senden der ersten Zahl über die Verbindung an die Clientvorrichtung; Empfangen eines ersten Werts von der Clientvorrichtung über die Verbindung; Anwendung einer Hashfunktion auf die erste Zahl, mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; und Bestimmen, dass der erste Wert dem zweiten Wert entspricht.
  • In Beispiel 4 enthält der Inhalt von Beispiel 3 optional wobei die erste Anwendung auch Folgendes ausführen soll: Empfangen einer zweiten Zahl von der Clientvorrichtung über die Verbindung; Anwendung der Hashfunktion auf die zweite Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten Werts; Senden des dritten Werts über die Verbindung an die Clientvorrichtung; und Empfangen einer Erfolgsnachricht von der Clientvorrichtung über die Verbindung, wobei die Erfolgsnachricht anzeigt, dass die Clientvorrichtung den dritten Wert verifiziert hat.
  • In Beispiel 5 enthält der Inhalt eines oder mehrerer der Beispiele 1 bis 4 optional, wobei die erste Anwendung auch Folgendes ausführen soll: Bestimmen, dass die Clientvorrichtung nicht den ersten Anwendungssitzungsschlüssel besitzt; und Anfordern eines Zurücksetzens der Clientvorrichtung.
  • In Beispiel 6 enthält der Inhalt eines oder mehrerer der Beispiele 1 bis 5 optional, wobei die erste Anwendung auch Folgendes ausführen soll: Erzeugen eines zweiten Anwendungssitzungsschlüssels; Senden des zweiten Anwendungssitzungsschlüssels an die Clientvorrichtung; zufälliges Erzeugen einer ersten Zahl; Senden der ersten Zahl an die Clientvorrichtung; Empfangenen eines ersten Werts von der Clientvorrichtung; Anwenden einer Hashfunktion auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; Bestimmen, dass der zweite Wert nicht dem ersten Wert entspricht; und Anfordern eines Zurücksetzens der Clientvorrichtung.
  • In Beispiel 7 enthält der Inhalt eines oder mehrerer der Beispiele 1 bis 6 optional eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, wobei die zweite Anwendung Folgendes ausführen soll: Senden einer dritten Nachricht an die Clientvorrichtung, wobei die dritte Nachricht Daten von der Clientvorrichtung anfordert; und Empfangen einer Ablehnungsnachricht von der Clientvorrichtung.
  • In Beispiel 8 enthält der Inhalt eines oder mehrerer der Beispiele 1-7 optional, wobei die erste Nachricht einen ersten Datentyp beschreibt, der durch die erste Anwendung angefordert wird.
  • In Beispiel 9 enthält der Inhalt eines oder mehrerer der Beispiele 1-8 optional, wobei das Ausführen der kryptografischen Funktion auf die erste Nachricht die erste Nachricht mit dem ersten Anwendungssitzungsschlüssel verschlüsseln soll, und wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel zum Erzeugen einer zweiten Nachricht entschlüsseln soll.
  • In Beispiel 10 enthält der Inhalt eines oder mehrerer der Beispiele 1-9 optional, wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, Folgendes ausführen soll: Anwenden einer Hashfunktion auf eine zweite Nachricht, die von der Clientvorrichtung mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten kryptografischen Ergebnisses; und Bestimmen, dass das dritte kryptografische Ergebnis dem zweiten zweite kryptografischen Ergebnis entspricht.
  • In Beispiel 11 enthält der Inhalt eines oder mehrerer der Beispiele 110 optional, dass die Clientvorrichtung: eine Datenanfrage über die Verbindung und von einer zweiten Anwendung empfängt, die auf der Rechnervorrichtung ausgeführt wird; bestimmt, dass die Clientvorrichtung keinen zweiten Anwendungssitzungsschlüssel von der zweiten Anwendung besitzt; und die Datenanfrage verweigert.
  • In Beispiel 12 enthält der Inhalt eines oder mehrerer der Beispiele 1 bis 11 optional, dass die Clientvorrichtung: einen zweiten Anwendungssitzungsschlüssel über die Verbindung empfängt; eine Zahl über die Verbindung empfängt; eine Hashfunktion auf die Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines ersten Werts empfängt; und den ersten Wert an die Rechnervorrichtung sendet.
  • In Beispiel 13 enthält der Inhalt eines oder mehrerer der Beispiele 1 bis 12 optional, wobei die erste Anwendung auch den ersten Anwendungssitzungsschlüssel erzeugen soll.
  • Beispiel 14 ist ein Verfahren, umfassend: Erzeugung einer Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung; Senden eines ersten Anwendungssitzungsschlüssels durch eine erste Anwendung, die auf einer Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; Durchführung einer kryptografischen Funktion auf eine erste Nachricht mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels durch die erste Anwendung zum Erzeugen eines ersten kryptografischen Ergebnisses; Senden des ersten kryptografischen Ergebnisses durch die erste Anwendung über die Verbindung an die Clientvorrichtung; Empfangen eines zweiten kryptografischen Ergebnisses durch die erste Anwendung von der Clientvorrichtung über die Verbindung; und Bestimmung durch die erste Anwendung, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde.
  • In Beispiel 15 enthält der Inhalt von Beispiel 14 optional das Empfangen einer Anfrage zum Speichern des Anwendungssitzungsschlüssels durch ein Betriebssystem, das auf der Rechnervorrichtung ausgeführt wird, und von der ersten Anwendung enthält; und das Speichern des ersten Anwendungssitzungsschlüssels durch das Betriebssystem an einem Standort eines Speichers, der mit der ersten Anwendung verknüpft ist.
  • In Beispiel 16 enthält der Inhalt eines oder mehrerer der Beispiele 1415 optional das zufällige Erzeugen einer ersten Zahl durch die erste Anwendung; das Senden der ersten Zahl durch die erste Anwendung über die Verbindung an die Clientvorrichtung; das Empfangen eines ersten Werts durch die erste Anwendung von der Clientvorrichtung über die Verbindung; die Anwendung einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; und das Bestimmen, dass der erste Wert dem zweiten Wert entspricht, durch die erste Anwendung.
  • In Beispiel 17 enthält der Inhalt von Beispiel 16 optional das Empfangen einer zweiten Zahl durch die erste Anwendung von der Clientvorrichtung über die Verbindung; die Anwendung der Hashfunktion durch die erste Anwendung auf die zweite Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten Werts; das Senden des dritten Wertes durch die erste Anwendung über die Verbindung an die Clientvorrichtung; und das Empfangen einer Erfolgsnachricht von der Clientvorrichtung durch die erste Anwendung über die Verbindung, wobei die Erfolgsnachricht anzeigt, dass die Clientvorrichtung den dritten Wert verifiziert hat.
  • In Beispiel 18 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 17 optional das Bestimmen, dass die Clientvorrichtung den ersten Anwendungssitzungsschlüssel nicht besitzt, durch die erste Anwendung; und das Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  • In Beispiel 19 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 18 optional das Erzeugen eines zweiten Anwendungssitzungsschlüssels durch die erste Anwendung; das Senden des zweiten Anwendungssitzungsschlüssels durch die erste Anwendung an die Clientvorrichtung; das zufällige Erzeugen einer ersten Zahl durch die erste Anwendung; das Senden der ersten Zahl durch die erste Anwendung an die Clientvorrichtung; das Empfangen eines ersten Werts von der Clientvorrichtung durch die erste Anwendung; die Anwendung einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; die Bestimmung durch die erste Anwendung, dass der zweite Wert nicht dem ersten Wert entspricht; und das Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  • In Beispiel 20 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 19 optional das Senden einer dritten Nachricht durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, an die Clientvorrichtung, wobei die dritte Nachricht Daten von der Clientvorrichtung anfordert; und das Empfangen einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  • In Beispiel 21 enthält der Inhalt eines oder mehrerer der Beispiele 14-20 optional, wobei die erste Nachricht einen ersten Datentyp beschreibt, der durch die erste Anwendung angefordert wird.
  • In Beispiel 22 enthält der Inhalt eines oder mehrerer der Beispiele 14-21 optional, wobei das Ausführen der kryptografischen Funktion auf die erste Nachricht das Verschlüsseln der ersten Nachricht mit dem ersten Anwendungssitzungsschlüssel umfasst und wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, das Entschlüsseln des zweiten kryptografischen Ergebnisses mit dem ersten Anwendungssitzungsschlüssel zum Erzeugen einer zweiten Nachricht umfasst.
  • In Beispiel 23 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 22 optional, wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde die Anwendung einer Hashfunktion auf eine zweite Nachricht, die von der Clientvorrichtung mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten kryptografischen Ergebnisses; und das Bestimmen, dass das dritte kryptografische Ergebnis dem zweiten zweite kryptografischen Ergebnis entspricht, umfasst.
  • In Beispiel 24, wobei der Inhalt eines oder mehrerer der Beispiele 14 bis 23 optional das Senden einer Datenanfrage über die Verbindung durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird; und das Empfangen einer Ablehnungsnachricht, die die Datenanfrage verweigert, durch die zweite Anwendung umfasst.
  • In Beispiel 25 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 24 optional das Senden eines zweiten Anwendungssitzungsschlüssels durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; die Bestimmung eines Hashwerts einer Zahl mindestens teilweise auf Grundlage des zweiten Anwendungssitzungsschlüssels; das Senden der Zahl und des Hashwerts durch die zweite Anwendung und über die Verbindung an die Clientvorrichtung; dem Empfang einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  • In Beispiel 26 enthält der Inhalt eines oder mehrerer der Beispiele 14 bis 25 optional das Erzeugen des ersten Anwendungssitzungsschlüssels durch die erste Anwendung.
  • Beispiel 27 ist mindestens ein computerlesbares Medium, umfassend Anweisungen darauf zum Ausführen eines der Verfahren der Beispiele 1 bis 26.
  • Beispiel 28 ist eine Vorrichtung, umfassend Mittel zum Ausführen eines der Verfahren aus Beispielen 1 bis 26.
  • Beispiel 29 ist eine Vorrichtung, umfassend: Mittel zur Erzeugung einer Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung; Mittel zum Senden eines ersten Anwendungssitzungsschlüssels durch eine erste Anwendung, die auf einer Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; Mittel zum Durchführen einer kryptografischen Funktion auf eine erste Nachricht mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels durch die erste Anwendung zum Erzeugen eines ersten kryptografischen Ergebnisses; Mittel zum Senden des ersten kryptografischen Ergebnisses durch die erste Anwendung über die Verbindung an die Clientvorrichtung; Mittel zum Empfang eines zweiten kryptografischen Ergebnisses durch die erste Anwendung von der Clientvorrichtung über die Verbindung; und Mittel zur Bestimmung durch die erste Anwendung, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde.
  • In Beispiel 30 enthält der Inhalt von Beispiel 29 optional Mittel zum Empfang einer Anfrage zum Speichern des Anwendungssitzungsschlüssels durch ein Betriebssystem, das auf der Rechnervorrichtung ausgeführt wird, und von der ersten Anwendung enthält; und Mittel zum Speichern des ersten Anwendungssitzungsschlüssels durch das Betriebssystem an einem Standort eines Speichers, der mit der ersten Anwendung verknüpft ist.
  • In Beispiel 31 enthält der Inhalt eines oder mehrerer der Beispiele 2930 optional Mittel zum zufälligen Erzeugen einer ersten Zahl durch die erste Anwendung; Mittel zum Senden der ersten Zahl durch die erste Anwendung über die Verbindung an die Clientvorrichtung; Mittel zum Empfang eines ersten Werts durch die erste Anwendung von der Clientvorrichtung über die Verbindung; Mittel zum Anwenden einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; und Mittel zur Bestimmung, dass der erste Wert dem zweiten Wert entspricht, durch die erste Anwendung.
  • In Beispiel 32 enthält der Inhalt von Beispiel 31 optional Mittel zum Empfang einer zweiten Zahl durch die erste Anwendung, von der Clientvorrichtung über die Verbindung; Mittel zum Anwenden der Hashfunktion durch die erste Anwendung auf die zweite Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten Werts; Mittel zum Senden des dritten Wertes durch die erste Anwendung über die Verbindung an die Clientvorrichtung; und Mittel zum Empfang einer Erfolgsnachricht von der Clientvorrichtung durch die erste Anwendung über die Verbindung, wobei die Erfolgsnachricht anzeigt, dass die Clientvorrichtung den dritten Wert verifiziert hat.
  • In Beispiel 33 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 32 optional Mittel zur Bestimmung, dass die Clientvorrichtung den ersten Anwendungssitzungsschlüssel nicht besitzt, durch die erste Anwendung; und Mittel zum Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  • In Beispiel 34 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 33 optional Mittel zum Erzeugen eines zweiten Anwendungssitzungsschlüssels durch die erste Anwendung; Mittel zum Senden des zweiten Anwendungssitzungsschlüssels durch die erste Anwendung an die Clientvorrichtung; Mittel zum zufälligen Erzeugen einer ersten Zahl durch die erste Anwendung; Mittel zum Senden der ersten Zahl durch die erste Anwendung an die Clientvorrichtung; Mittel zum Empfang eines ersten Werts von der Clientvorrichtung durch die erste Anwendung; Mittel zum Anwenden einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; Mittel zur Bestimmung durch die erste Anwendung, dass der zweite Wert nicht dem ersten Wert entspricht; und Mittel zum Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  • In Beispiel 35 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 34 optional Mittel zum Senden einer dritten Nachricht durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, an die Clientvorrichtung, wobei die dritte Nachricht Daten von der Clientvorrichtung anfordert; und Mittel zum Empfangen einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  • In Beispiel 36 enthält der Inhalt eines oder mehrerer der Beispiele 29-35 optional, wobei die erste Nachricht einen ersten Datentyp beschreibt, der durch die erste Anwendung angefordert wird.
  • In Beispiel 37 enthält der Inhalt eines oder mehrerer der Beispiele 29-36 optional, wobei die Mittel zum Ausführen der kryptografischen Funktion auf die erste Nachricht Mittel zum Verschlüsseln der ersten Nachricht mit dem ersten Anwendungssitzungsschlüssel umfasst und wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, das Entschlüsseln des zweiten kryptografischen Ergebnisses mit dem ersten Anwendungssitzungsschlüssel zum Erzeugen einer zweiten Nachricht umfasst.
  • In Beispiel 38 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 37 optional, wobei das Mittel zum Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, umfasst: Mittel zum Anwenden einer Hashfunktion auf eine zweite Nachricht, die von der Clientvorrichtung mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten kryptografischen Ergebnisses; und Mittel zum Bestimmen, dass das dritte kryptografische Ergebnis dem zweiten zweite kryptografischen Ergebnis entspricht.
  • In Beispiel 39, wobei der Inhalt eines oder mehrerer der Beispiele 29 bis 38 optional Mittel zum Senden einer Datenanfrage über die Verbindung durch eine zweite Anwendung die auf der Rechnervorrichtung ausgeführt wird; und Mittel zum Empfang einer Ablehnungsnachricht, die die Datenanfrage verweigert, durch die zweite Anwendung enthält.
  • In Beispiel 40 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 39 optional Mittel zum Senden eines zweiten Anwendungssitzungsschlüssels durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; Mittel zum Bestimmen eines Hashwerts einer Zahl mindestens teilweise auf Grundlage des zweiten Anwendungssitzungsschlüssels; Mittel zum Senden der Zahl und des Hashwerts durch die zweite Anwendung und über die Verbindung an die Clientvorrichtung; Mittel zum Empfang einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  • In Beispiel 41 enthält der Inhalt eines oder mehrerer der Beispiele 29 bis 40 optional ein Mittel zur Erzeugung des ersten Anwendungssitzungsschlüssels durch die erste Anwendung.
  • Die obige ausführliche Beschreibung enthält Verweise auf die beiliegenden Zeichnungen, die Teil der ausführlichen Beschreibung bilden. Die Zeichnungen zeigen als Illustration spezifische Beispiele, die ausführt werden können. Diese Beispiele werden hierin ebenfalls als „Beispiele“ bezeichnet. Solche Beispiele können weitere Element enthalten als die, die dargestellt oder beschrieben sind. Es werden jedoch ebenfalls Beispiele betrachtet, die die dargestellten oder beschriebenen Elemente enthalten. Weiterhin werden auch Beispiele betrachtet, die jede Kombination oder Permutation der dargestellten oder beschriebenen Elemente enthalten (oder einen oder mehrere Aspekte davon), entweder bezüglich eines bestimmten Beispiels (oder eines oder mehrere Aspekte davon), oder bezüglich der anderen Beispiele (oder eines oder mehrerer Aspekte davon), die hierin dargestellt oder beschrieben sind.
  • In diesem Dokument wird der Begriffe „ein“ oder „eine“, wie in Patentdokumenten üblich, verwendet, um einen oder mehr als einen zu enthalten, unabhängig von anderen Instanzen oder Verwendung von „mindestens ein“ oder „ein oder mehrere“. In diesem Dokument wird der Begriff „oder“ verwendet, um ein nicht ausschließliches oder zu bezeichnen, sodass „A oder B“ „A aber nicht B“, „B aber nicht A“ und „A und B“ enthält, wenn nicht anders angegeben. In den beiliegenden Ansprüchen werden die Begriffe „einschließlich“ und „in dem“ als einfache sprachliche Gegenstücke für die jeweiligen Begriffe „umfassend“ und „worin“ verwendet. Außerdem sind in den folgenden Ansprüchen die Begriffe „einschließlich“ und „umfassend“ offen zu verstehen, d. h. ein System, eine Vorrichtung, ein Artikel oder ein Prozess, das/die/der neben den nach einem solchen Begriff in einem Anspruch genannten Elementen auch andere Elemente enthält, werden noch immer als unter den Umfang des Anspruchs fallend betrachtet. Weiter werden in den folgenden Ansprüchen die Begriffe „erster“, „zweiter“ und „dritter“ usw. nur beschreibend verwendet und sollen nicht eine numerische Reihenfolge ihrer Objekte andeuten.
  • Die obige Beschreibung dient illustrativen und nicht einschränkenden Zwecken. Beispielsweise können die oben beschriebenen Beispiele (oder ein oder mehrere Aspekte davon) in Kombination mit anderen verwendet werden. Andere Beispiele können etwa durch einen gewöhnlichen Fachmann bei Betrachtung der obigen Beschreibung verwendet werden. Die Zusammenfassung soll dem Leser schnell die Erkennung der Art der technischen Offenbarung erlauben. Sie wird mit dem Verständnis eingereicht, dass sie nicht verwendet wird, den Umfang oder die Bedeutung der Ansprüche auszulegen oder zu beschränken. In der obigen ausführlichen Beschreibung könne außerdem verschiedene Merkmale zusammengruppiert werden, um die Offenbarung schlanker zu gestalten. Die Ansprüche legen jedoch möglichweise nicht jedes hierin offenbarte Merkmal dar, da Beispiele einen Untersatz der Merkmale darstellen können. Ferner können Beispiele weniger Merkmale enthalten, als die in einem bestimmten Beispiel offenbarten. Daher sind die folgenden Ansprüche hiermit in die detaillierte Beschreibung einbezogen, wobei ein Anspruch eigenständig als ein separates Beispiel dient. Der Umfang der hierin offenbarten Beispiele wird mit Verweis auf die beiliegenden Ansprüche offenbart, zusammen mit dem vollen Umfang der Entsprechungen, die diesen Ansprüchen zustehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 15/169245 [0001]

Claims (28)

  1. System zur sicheren Kommunikation, umfassend: eine Rechnervorrichtung, umfassend mindestens einen Prozessor und einen Speicher in Kommunikation mit dem mindestens einen Prozessor, umfassend: eine Verbindungsschaltung zum Erzeugen einer Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung; eine erste Anwendung, die auf der Rechnervorrichtung ausgeführt wird, um: einen ersten Anwendungssitzungsschlüssel über die Verbindung an die Clientvorrichtung zu senden; eine kryptografische Funktion auf eine erste Nachricht mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines ersten kryptografischen Ergebnisses auszuführen; das erste kryptografische Ergebnis über die Verbindung an die Clientvorrichtung zu senden; ein zweites kryptografisches Ergebnis über die Verbindung von der Clientvorrichtung zu empfangen; und zu bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde.
  2. System nach einem der Ansprüche 1, ferner umfassend: ein Betriebssystem, das auf der Rechnervorrichtung ausgeführt wird, um: von der ersten Anwendung eine Anfrage zu empfangen, den ersten Anwendungssitzungsschlüssel zu speichern; und den ersten Anwendungssitzungsschlüssel an einer Stelle des Speichers zu speichern, die mit der ersten Anwendung verknüpft ist.
  3. System nach Anspruch 1, wobei die erste Anwendung auch Folgendes ausführen soll: zufälliges Erzeugen einer ersten Zahl; Senden der ersten Zahl über die Verbindung an die Clientvorrichtung; Empfangen eines ersten Werts über die Verbindung von der Clientvorrichtung; Anwenden einer Hashfunktion auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; und Bestimmen, dass der erste Wert dem zweiten Wert entspricht.
  4. System nach Anspruch 3, wobei die erste Anwendung auch Folgendes ausführen soll: Empfangen einer zweiten Zahl über die Verbindung von der Clientvorrichtung; Anwenden der Hashfunktion auf die zweite Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten Werts; Senden des dritten Werts über die Verbindung an die Clientvorrichtung; und Empfangen einer Erfolgsnachricht über die Verbindung von der Clientvorrichtung, wobei die Erfolgsnachricht anzeigt, dass die Clientvorrichtung den dritten Wert verifiziert hat.
  5. System nach Anspruch 1, wobei die erste Anwendung auch Folgendes ausführen soll: Bestimmen, dass die Clientvorrichtung den ersten Anwendungssitzungsschlüssel nicht besitzt; und Anfordern eines Zurücksetzens der Clientvorrichtung.
  6. System nach Anspruch 1, wobei die erste Anwendung auch Folgendes ausführen soll: Erzeugen eines zweiten Anwendungssitzungsschlüssels; Senden des zweiten Anwendungssitzungsschlüssels an die Clientvorrichtung; zufälliges Erzeugen einer ersten Zahl; Senden der ersten Zahl an die Clientvorrichtung; Empfangen eines ersten Werts von der Clientvorrichtung; Anwenden einer Hashfunktion auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; Bestimmen, dass der zweite Wert dem ersten Wert nicht entspricht; und Anfordern eines Zurücksetzens der Clientvorrichtung.
  7. System nach Anspruch 1, ferner umfassend eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, wobei die zweite Anwendung Folgendes ausführen soll: Senden einer dritten Nachricht an die Clientvorrichtung, wobei die dritte Nachricht Daten von der Clientvorrichtung abfragt; und Empfangen einer Ablehnungsnachricht von der Clientvorrichtung.
  8. System nach Anspruch 1, wobei die erste Nachricht einen ersten Datentyp beschreibt, der durch die erste Anwendung angefordert wird.
  9. System nach Anspruch 1, wobei das Ausführen der kryptografischen Funktion auf die erste Nachricht die erste Nachricht mit dem ersten Anwendungssitzungsschlüssel verschlüsseln soll, und wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel zum Erzeugen einer zweiten Nachricht entschlüsseln soll.
  10. System nach Anspruch 1, wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, Folgendes ausführen soll: Anwenden einer Hashfunktion auf eine zweite Nachricht, die von der Clientvorrichtung empfangen wurde, mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten kryptografischen Ergebnisses; und Bestimmen, dass das dritte kryptografische Ergebnis dem zweiten kryptografischen Ergebnis entspricht.
  11. System nach Anspruch 1, ferner umfassend, dass die Clientvorrichtung Folgendes ausführen soll: Empfangen einer Datenanfrage über die Verbindung und von einer zweiten Anwendung, die auf der Rechnervorrichtung ausgeführt wird; Bestimmen, dass die Clientvorrichtung einen zweiten Anwendungssitzungsschlüssel von der zweiten Anwendung nicht besitzt; und Verweigern der Datenanfrage.
  12. System nach Anspruch 1, ferner umfassend, dass die Clientvorrichtung Folgendes ausführen soll: Empfangen eines zweiten Anwendungssitzungsschlüssels über die Verbindung; Empfangen einer Zahl über die Verbindung; Anwenden einer Hashfunktion auf die Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines ersten Werts; und Senden des ersten Werts an die Rechnervorrichtung.
  13. System nach Anspruch 1, wobei die erste Anwendung auch den ersten Anwendungssitzungsschlüssel erzeugen soll.
  14. Verfahren zur sicheren Kommunikation, umfassend: Erzeugen einer Verbindung zwischen der Rechnervorrichtung und einer Clientvorrichtung; Senden eines ersten Anwendungssitzungsschlüssels durch eine erste Anwendung, die auf einer Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; Durchführen einer kryptografischen Funktion durch die erste Anwendung auf eine erste Nachricht mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines ersten kryptografischen Ergebnisses; Senden des ersten kryptografischen Ergebnisses durch die erste Anwendung über die Verbindung an die Clientvorrichtung; Empfangen eines zweiten kryptografischen Ergebnisses durch die erste Anwendung über die Verbindung von der Clientvorrichtung; und Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, durch die erste Anwendung.
  15. Verfahren nach Anspruch 14, ferner umfassend: Empfangen einer Anfrage zum Speichern des ersten Anwendungssitzungsschlüssels durch ein Betriebssystem, das auf der Rechnervorrichtung ausgeführt wird, und von der ersten Anwendung; und Speichern des ersten Anwendungssitzungsschlüssels durch das Betriebssystem an einer Stelle eines Speichers, die mit der ersten Anwendung verknüpft ist.
  16. Verfahren nach Anspruch 14, ferner umfassend: zufälliges Erzeugen einer ersten Zahl durch die erste Anwendung; Senden der ersten Zahl durch die erste Anwendung über die Verbindung an die Clientvorrichtung; Empfangen eines ersten Werts von der Clientvorrichtung durch die erste Anwendung über die Verbindung; Anwenden einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; und Bestimmen durch die erste Anwendung, dass der erste Wert dem zweiten Wert entspricht.
  17. Verfahren nach Anspruch 16, ferner umfassend: Empfangen einer zweiten Zahl durch die erste Anwendung von der Clientvorrichtung über die Verbindung; Anwenden der Hashfunktion durch die erste Anwendung auf die zweite Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten Werts; Senden des dritten Werts durch die erste Anwendung über die Verbindung an die Clientvorrichtung; und Empfangen einer Erfolgsnachricht von der Clientvorrichtung durch die erste Anwendung über die Verbindung, wobei die Erfolgsnachricht anzeigt, dass die Clientvorrichtung den dritten Wert verifiziert hat.
  18. Verfahren nach Anspruch 14, ferner umfassend: Bestimmen durch die erste Anwendung, dass die Clientvorrichtung den ersten Anwendungssitzungsschlüssel nicht besitzt; und Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  19. Verfahren nach Anspruch 14, ferner umfassend: Erzeugen eines zweiten Anwendungssitzungsschlüssels durch die erste Anwendung; Senden des zweiten Anwendungssitzungsschlüssels durch die erste Anwendung an die Clientvorrichtung; zufälliges Erzeugen einer ersten Zahl durch die erste Anwendung; Senden der ersten Zahl durch die erste Anwendung an die Clientvorrichtung; Empfangen eines ersten Werts von der Clientvorrichtung durch die erste Anwendung; Anwenden einer Hashfunktion durch die erste Anwendung auf die erste Zahl mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines zweiten Werts; Bestimmen durch die erste Anwendung, dass der zweite Wert dem ersten Wert nicht entspricht; und Anfordern eines Zurücksetzens der Clientvorrichtung durch die erste Anwendung.
  20. Verfahren nach Anspruch 14, ferner umfassend: Senden einer dritten Nachricht durch eine zweite Anwendung, die auf der Computervorrichtung ausgeführt wird, an die Clientvorrichtung, wobei die dritte Nachricht Daten von der Clientvorrichtung abfragt; und Empfangen einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  21. Verfahren nach Anspruch 14, wobei die erste Nachricht einen ersten Datentyp beschreibt, der durch die erste Anwendung angefordert wird.
  22. Verfahren nach Anspruch 14, wobei das Ausführen der kryptografischen Funktion auf die erste Nachricht das Verschlüsseln der ersten Nachricht mit dem ersten Anwendungssitzungsschlüssel umfasst, und wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, das Entschlüsseln des zweiten kryptografischen Ergebnisses mit dem ersten Anwendungssitzungsschlüssel zum Erzeugen einer zweiten Nachricht umfasst.
  23. Verfahren nach Anspruch 14, wobei das Bestimmen, dass das zweite kryptografische Ergebnis mit dem ersten Anwendungssitzungsschlüssel erhalten wurde, umfasst: Anwenden einer Hashfunktion auf eine zweite Nachricht, die von der Clientvorrichtung empfangen wurde, mindestens teilweise auf Grundlage des ersten Anwendungssitzungsschlüssels zum Erzeugen eines dritten kryptografischen Ergebnisses; und Bestimmen, dass das dritte kryptografische Ergebnis dem zweiten kryptografischen Ergebnis entspricht.
  24. Verfahren nach Anspruch 14, ferner umfassend: Senden einer Datenanfrage über die Verbindung durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird; und Empfangen einer Ablehnungsnachricht, die die Datenanfrage verweigert, durch die zweite Anwendung.
  25. Verfahren nach Anspruch 14, ferner umfassend: Senden eines zweiten Anwendungssitzungsschlüssels durch eine zweite Anwendung, die auf der Rechnervorrichtung ausgeführt wird, über die Verbindung an die Clientvorrichtung; Bestimmen eines Hashwerts einer Zahl mindestens teilweise auf Grundlage des zweiten Anwendungssitzungsschlüssels; Senden der Zahl und des Hashwerts durch die zweite Anwendung und an die Clientvorrichtung über die Verbindung; Empfangen einer Ablehnungsnachricht von der Clientvorrichtung durch die zweite Anwendung.
  26. Verfahren nach Anspruch 14, ferner umfassend das Erzeugen des ersten Anwendungssitzungsschlüssels durch die erste Anwendung.
  27. Computerlesbares Medium bzw. computerlesbare Medien, umfassend Anweisungen darauf zum Ausführen eines der Verfahren der Ansprüche 14-26.
  28. Vorrichtung, umfassend Mittel zum Ausführen eines der Verfahren der Ansprüche 14-26.
DE112017002726.8T 2016-05-31 2017-05-02 Kommunikationssicherheitssysteme und verfahren Pending DE112017002726T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/169,245 2016-05-31
US15/169,245 US10764059B2 (en) 2016-05-31 2016-05-31 Communications security systems and methods
PCT/US2017/030632 WO2017209885A1 (en) 2016-05-31 2017-05-02 Communications security systems and methods

Publications (1)

Publication Number Publication Date
DE112017002726T5 true DE112017002726T5 (de) 2019-02-21

Family

ID=60421140

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017002726.8T Pending DE112017002726T5 (de) 2016-05-31 2017-05-02 Kommunikationssicherheitssysteme und verfahren

Country Status (5)

Country Link
US (1) US10764059B2 (de)
KR (1) KR102616751B1 (de)
CN (1) CN109075966B (de)
DE (1) DE112017002726T5 (de)
WO (1) WO2017209885A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10764059B2 (en) 2016-05-31 2020-09-01 Intel Corporation Communications security systems and methods

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7395893B2 (ja) * 2019-09-12 2023-12-12 富士フイルムビジネスイノベーション株式会社 機器及びプログラム
US11818278B2 (en) 2021-07-26 2023-11-14 Vmware, Inc. Dynamic certificate management in cryptographic agility frameworks

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487661B2 (en) * 1995-04-21 2002-11-26 Certicom Corp. Key agreement and transport protocol
US6539479B1 (en) * 1997-07-15 2003-03-25 The Board Of Trustees Of The Leland Stanford Junior University System and method for securely logging onto a remotely located computer
US7581100B2 (en) * 2003-09-02 2009-08-25 Authernative, Inc. Key generation method for communication session encryption and authentication system
US8060745B2 (en) 2003-12-16 2011-11-15 Seiko Epson Corporation Security for wireless transmission
CN101163010B (zh) * 2007-11-14 2010-12-08 华为软件技术有限公司 对请求消息的鉴权方法和相关设备
CN102238000B (zh) 2010-04-21 2015-01-21 华为技术有限公司 加密通信方法、装置及系统
CN102244575A (zh) * 2010-05-10 2011-11-16 航天信息股份有限公司 增值税网上报税数据安全传输系统及方法
US9191375B2 (en) * 2011-01-13 2015-11-17 Infosys Limited System and method for accessing integrated applications in a single sign-on enabled enterprise solution
US20140206289A1 (en) 2011-06-10 2014-07-24 Aliphcom Data-capable band management in an integrated application and network communication data environment
CN103716280B (zh) * 2012-09-28 2018-09-04 腾讯科技(深圳)有限公司 数据传输方法、服务器及系统
US20160037345A1 (en) 2013-03-15 2016-02-04 Apple Inc. Controlling access to protected functionality of a host device using a wireless device
WO2014143814A1 (en) * 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Facilitating a secure session between paired devices
US20160027062A1 (en) 2013-03-15 2016-01-28 Yandex Europe Ag Method of and system for providing a client device with particularized information without employing unique identifiers
US10460314B2 (en) * 2013-07-10 2019-10-29 Ca, Inc. Pre-generation of session keys for electronic transactions and devices that pre-generate session keys for electronic transactions
KR101746193B1 (ko) * 2013-11-13 2017-06-20 한국전자통신연구원 보안 도우미 서비스 제공장치 및 서비스 제공방법
US9286453B2 (en) * 2014-05-06 2016-03-15 International Business Machines Corporation Dynamic adjustment of authentication policy
US9680831B2 (en) * 2014-07-30 2017-06-13 Verily Life Sciences Llc Data permission management for wearable devices
US9197414B1 (en) 2014-08-18 2015-11-24 Nymi Inc. Cryptographic protocol for portable devices
US9531692B2 (en) * 2014-09-19 2016-12-27 Bank Of America Corporation Method of securing mobile applications using distributed keys
KR20160035753A (ko) * 2014-09-24 2016-04-01 삼성전자주식회사 메시지 자동 생성 방법 및 장치
CN104579688B (zh) * 2015-01-20 2018-12-21 江西理工大学 一种基于Hash函数可同步更新密钥的RFID双向认证方法
US10671760B2 (en) * 2015-02-27 2020-06-02 Arash Esmailzadeh Secure and private data storage
US10764059B2 (en) 2016-05-31 2020-09-01 Intel Corporation Communications security systems and methods

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10764059B2 (en) 2016-05-31 2020-09-01 Intel Corporation Communications security systems and methods

Also Published As

Publication number Publication date
KR20190004273A (ko) 2019-01-11
CN109075966B (zh) 2021-11-19
WO2017209885A1 (en) 2017-12-07
KR102616751B1 (ko) 2023-12-20
CN109075966A (zh) 2018-12-21
US20170346636A1 (en) 2017-11-30
US10764059B2 (en) 2020-09-01

Similar Documents

Publication Publication Date Title
DE112009000416B4 (de) Zweiwege-Authentifizierung zwischen zwei Kommunikationsendpunkten unter Verwendung eines Einweg-Out-Of-Band(OOB)-Kanals
DE102018101812B4 (de) Sicheres Übertragen von Benutzerinformationen zwischen Anwendungen
DE202016107487U1 (de) Authentifizierung eines lokalen Gerätes
DE112016003280B4 (de) Systeme und verfahren zur überwachung eines betriebssystems eines drahtlosen kommunikationsgerätes auf unautorisierte modifikationen
DE60311036T2 (de) Verfahren zur Authentisierung potentieller Mitglieder eingeladen, eine Gruppe anzuschliessen
DE102014113582B4 (de) Vorrichtung, Verfahren und System für die kontextbewusste Sicherheitssteuerung in einer Cloud-Umgebung
DE202017100417U1 (de) Sichere Verbindungen für Niedrigenergie-Geräte
DE112017002032T5 (de) Verfahren und Vorrichtung zur Verwendung einer biometrischen Vorlage zum Steuern des Zugangs zu einer Benutzeranmeldeinformation für ein gemeinsam genutztes drahtloses Kommunikationsgerät
DE112015004267T5 (de) Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen
DE112017000483T5 (de) System, gerät und verfahren für schlüsselbereitstellungsdelegation
DE112017002263T5 (de) Infrastruktur mit öffentlichen Schlüssel unter Verwendung von Blockchains
DE102018101307A1 (de) Techniken für SGX-Enklaven-Fernauthentifizierung
DE112018007007T5 (de) Verteilte selbstsouveräne identitäten zur virtualisierung von netzwerkfunktionen
DE112012005564T5 (de) Sichere Peer-Ermittlung und Authentifizierung unter Verwendung eines gemeinsamen Geheimnisses
CN103873692B (zh) 一种分享资源的方法、装置及系统
DE112013002656T5 (de) Kommunikationssitzungsübertragung zwischen Geräten
DE112017002476T5 (de) System, vorrichtung und verfahren für massiv skalierbares dynamic-multipoint-virtual-private-network unter verwendung von gruppenverschlüsselungsschlüsseln
DE10393847B4 (de) Verfahren und Vorrichtung zum Auffinden einer gemeinsam genutzten vertraulichen Information ohne Beeinträchtigung nicht-gemeinsam genutzter vertraulicher Informationen
DE112017002726T5 (de) Kommunikationssicherheitssysteme und verfahren
DE112021005478T5 (de) Verfahren zum schutz eines edge-gerät-vertrauenswerts
DE112017000633T5 (de) Sichere archivierung und wiederherstellung von multifaktor-authentifizierungsschablonen
DE112018001616T5 (de) Sichere systeme und verfahren für abtastbare codes
DE202023100535U1 (de) Systeme für Multi-Blockchain- und Multi-Token-Interoperabilität durch gemeinsame Blockchain-Integration
DE102017117742A1 (de) Transaktionsbasierte Nachrichtensicherheit
DE102013009494A1 (de) System und Verfahren, um es einer Hostvorrichtung zu ermöglichen, sich sicher mit einer Peripherievorrichtung zu verbinden

Legal Events

Date Code Title Description
R012 Request for examination validly filed