DE102022104902A1 - Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen - Google Patents

Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen Download PDF

Info

Publication number
DE102022104902A1
DE102022104902A1 DE102022104902.7A DE102022104902A DE102022104902A1 DE 102022104902 A1 DE102022104902 A1 DE 102022104902A1 DE 102022104902 A DE102022104902 A DE 102022104902A DE 102022104902 A1 DE102022104902 A1 DE 102022104902A1
Authority
DE
Germany
Prior art keywords
storage device
terminal
server
security
key
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
DE102022104902.7A
Other languages
English (en)
Inventor
Jeffrey Charles Shiner
Lance W. Dover
Oliver Duval
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/485,166 external-priority patent/US20220129389A1/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102022104902A1 publication Critical patent/DE102022104902A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • H04L63/045Network 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 wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Sicherheitsserver zum Bereitstellen von Sicherheitsdiensten über ein Computer-Netzwerk basierend auf Sicherheitsmerkmalen von mit Host-Systemen verbundenen Speichervorrichtungen. Die Sicherheitsmerkmale einer Speichervorrichtung können beispielsweise einen eindeutigen Vorrichtungsschlüssel, eine Kryptographie-Engine und eine Zugriffssteuerung zum Implementieren von Zugriffsberechtigungen, die durch kryptographische Schlüssel dargestellt werden, beinhalten. Nach dem Empfangen von Identitätsdaten, die von der Speichervorrichtung erzeugt und durch einen kryptographischen Schlüssel dargestellt werden, kann der Sicherheitsserver die Authentizität der Speichervorrichtung basierend auf seiner Kopie des eindeutigen Vorrichtungsschlüssels der Speichervorrichtung bestimmen. Der Sicherheitsserver kann einen Verifizierungscode für einen Befehl erzeugen und veranlassen, dass der Befehl und der Verifizierungscode an die Speichervorrichtung übermittelt werden, wobei die Zugriffssteuerung der Speichervorrichtung den Verifizierungscode überprüft, um zu bestimmen, ob das Ausführen des Befehls in der Speichervorrichtung blockiert werden soll.

Description

  • VERWANDTE ANMELDUNGEN
  • Die vorliegende Anmeldung beansprucht den Vorteil des Anmeldetags der Vorl. US-Pat. Anm. Ser. Nr. 63/105,820 , eingereicht am 26. Oktober 2020, mit dem Titel „Virtual Subscriber Identification Module and Virtual Smart Card (Virtuelles Teilnehmeridentifikationsmodul und virtuelle Smartcard)“, wobei die vorliegende Anmeldung auch den Vorteil des Anmeldetags der Vorl. US-Pat. Anm. Ser. Nr. 63/156,224 , eingereicht am 3. März 2021 mit dem Titel „Online Security Services based on Security Features Implemented in Memory Devices (Online-Sicherheitsdienste basierend auf in Speichervorrichtungen implementierten Sicherheitsfunktionen)“, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • Die vorliegende Anmeldung bezieht sich auf die US-Pat. Anm. Ser. Nr. 17/005,565 , eingereicht am 28. August 2020, mit dem Titel „Secure Memory System Programming for Host Device Verification (Sichere Speichersystem-Programmierung zur Überprüfung einer Host-Vorrichtung)“, das den Vorteil des Anmeldetags der Vorl. US-Pat. Anm. Ser. Nr. 63/059,617 , eingereicht am 31.07.2020, US-Pat. Anm. Ser. Nr. 17/080,684 , eingereicht am 26.10.2020, mit dem Titel „Endpoint Authentication based on Boot-Time Binding of Multiple Components (Endgeräte-Authentifizierung basierend auf der Bindung mehrerer Komponenten zum Zeitpunkt des Systemstarts)“, US-Pat. Anm. Ser. Nr. 16/374,905 , eingereicht am 4. April 2019, mit dem Titel „Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers (Onboarding-Software auf sicheren Geräten zum Erzeugen von Vorrichtungsidentitäten für die Authentifizierung mit Remote-Servern),“ und veröffentlicht als US-Pat. Anm. Pub. Nr. 2020/0322134 am 8. Oktober 2020, und US-Pat. Anm. Ser. Nr. 17/014,203 , eingereicht am 8. September 2020, mit dem Titel „Customer-Specific Activation of Functionality in a Semiconductor Device (Kundenspezifische Aktivierung der Funktionalität in einer Halbleitervorrichtung)“, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • TECHNISCHES GEBIET
  • Zumindest einige der hierin offenbarten Ausführungsformen beziehen sich auf die Authentifizierung im Allgemeinen und insbesondere, aber nicht beschränkt auf die Authentifizierung eines Kommunikationsendpunkts, der eine sichere Speichervorrichtung in einem Netzwerk aufweist.
  • HINTERGRUND
  • Ein Speicher-Subsystem kann ein oder mehrere Speichervorrichtungen beinhalten, die Daten speichern. Die Speichervorrichtungen können beispielsweise nichtflüchtige Speichervorrichtungen und flüchtige Speichervorrichtungen sein. Im Allgemeinen kann ein Host-System ein Speicher-Subsystem verwenden, um Daten in den Speichervorrichtungen zu speichern und Daten von den Speichervorrichtungen abzurufen.
  • Standards für Device Identity Composition Engine (DICE) und Robust Internet-of-Things (RIoT) wurden für die Berechnung von Daten zur Identifizierung und Authentifizierung von Identitäten von Rechenvorrichtungen basierend auf kryptografischen Berechnungen entwickelt.
  • Figurenliste
  • Die Ausführungsformen sind beispielhaft und nicht beschränkend in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen ähnliche Referenzen ähnliche Elemente angeben.
    • 1 veranschaulicht ein beispielhaftes Computersystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2 veranschaulicht die Erzeugung von Identitätsdaten in einer Speichervorrichtung mit integrierter Schaltung gemäß einer Ausführungsform.
    • 3 veranschaulicht eine Technik zum Steuern der Ausführung eines Befehls in einer Speichervorrichtung gemäß einer Ausführungsform.
    • 4 veranschaulicht eine Technik zum Überprüfen einer Integrität von in einem Speicher gespeicherten Daten gemäß einer Ausführungsform.
    • 5 veranschaulicht Sicherheitsdienste eines Sicherheitsservers, die einem Client-Server basierend auf Sicherheitsmerkmalen bereitgestellt werden, die in einer Speichervorrichtung gemäß einer Ausführungsform implementiert sind.
    • 6 zeigt ein System und Verfahren zum Konfigurieren und Authentifizieren eines Endgeräts für einen kartenbasierten Dienst gemäß einer Ausführungsform.
    • 7 veranschaulicht ein Kartenprofil einer virtuellen Smartcard gemäß einer Ausführungsform.
    • 8 veranschaulicht ein Kartenprofil eines virtuellen Teilnehmeridentifikationsmoduls (Subscriber Identification Module - SIM) gemäß einer Ausführungsform.
    • 9 veranschaulicht eine Technik zum Authentifizieren einer Speichervorrichtung gemäß einer Ausführungsform.
    • 10 veranschaulicht eine Technik zum Erzeugen eines Befehls zum Steuern von Sicherheitsoperationen einer Speichervorrichtung gemäß einer Ausführungsform.
    • 11 zeigt ein Verfahren für eine virtuelle Smartcard gemäß einer Ausführungsform.
    • 12 zeigt ein Verfahren für Sicherheitsdienste, die basierend auf Sicherheitsmerkmalen einer Speichervorrichtung gemäß einer Ausführungsform bereitgestellt werden.
    • 13 zeigt ein Verfahren zum Onboarding eines Endgeräts für einen Dienst, der gemäß einer Ausführungsform für ein Konto abonniert wurde.
    • 14 zeigt eine Technik zur Anpassung von Endgeräten unter Verwendung eines Online-Firmwarespeichers gemäß einer Ausführungsform.
    • 15 zeigt eine Technik zur Weiterleitung von Diensten an ein Endgerät über einen Online-Servicespeicher gemäß einer Ausführungsform.
    • 16 zeigt ein Verfahren zum Aktualisieren von Firmware unter Verwendung eines Firmware-Speichers und eines Sicherheitsservers gemäß einer Ausführungsform.
    • 17 zeigt ein Verfahren zur Anpassung von Endgeräten unter Verwendung eines Servicespeichers und eines Sicherheitsservers gemäß einer Ausführungsform.
    • 18 veranschaulicht die Erzeugung von Identitätsdaten zur Erleichterung der Überwachung der Integrität und/oder der Aktivitäten eines Endgeräts gemäß einer Ausführungsform.
    • 19 veranschaulicht eine Technik zum Aufrechterhalten der Integrität von Paketen, die auf einem Endgerät gespeichert sind, gemäß einer Ausführungsform.
    • 20 zeigt ein System, das Sicherheitsoperationen basierend auf der Verfolgung von Aktivitäten eines Endgeräts gemäß einer Ausführungsform implementiert.
    • 21 zeigt ein Verfahren zum Aktualisieren oder Reparieren eines in einem Endgerät gespeicherten Pakets gemäß einer Ausführungsform.
    • 22 zeigt ein Verfahren zum Durchführen einer Sicherheitsoperation basierend auf einer oder mehreren Aktivitäten eines Endgeräts gemäß einer Ausführungsform.
    • 23 und 24 veranschaulichen Systeme, die konfiguriert sind, die gemeinsame Nutzung von Abonnements durch eine Gruppe von Endgeräten gemäß einer Ausführungsform zu implementieren.
    • 25 zeigt ein Verfahren zum Erleichtern der gemeinsamen Nutzung von Abonnements in einer Gruppe von Endgeräten gemäß einer Ausführungsform.
    • 26 zeigt Techniken zum Verwalten einer Identifizierung eines Endgeräts gemäß einer Ausführungsform.
    • 27 zeigt ein Verfahren zum Verwalten einer Identifizierung eines Endgeräts gemäß einer Ausführungsform.
    • 28 ist ein Blockdiagramm eines beispielhaften Computersystems, in dem Ausführungsformen der vorliegenden Offenbarung betrieben werden können.
  • DETAILLIERTE BESCHREIBUNG
  • Zumindest einige Aspekte der vorliegenden Offenbarung sind auf einen Sicherheitsserver und Speichervorrichtungen gerichtet, die Sicherheitsmerkmale aufweisen. Der Sicherheitsserver ist für die Bereitstellung von Online-Sicherheitsdiensten in einem Computernetzwerk (z. B. Internet) basierend auf den Sicherheitsmerkmalen der Speichervorrichtung konfiguriert. Host-Systeme der Speichervorrichtungen können die Speicherfunktionen der Speichervorrichtungen verwenden, um Anweisungen und/oder Daten zum Verarbeiten zu speichern und um Verarbeitungsergebnisse zu speichern.
  • Im Allgemeinen kann ein Speicher-Subsystem eine Speichervorrichtung und/oder ein Speichermodul beinhalten. Ein Host-System kann ein Speicher-Subsystem verwenden, das eine oder mehrere Komponenten beinhaltet, wie Speichervorrichtungen, die Daten speichern. Das Host-System kann Daten bereitstellen, die in dem Speicher-Subsystem gespeichert werden sollen, und kann Daten anfordern, die aus dem Speicher-Subsystem abgerufen werden sollen.
  • So kann beispielsweise ein Teil der Daten, die in einem Speicher gespeichert sind, aus Anweisungen bestehen, wie Anweisungen, die für Software, Firmware, einen Bootloader, ein Betriebssystem, eine Routine, einen Vorrichtungstreiber, ein Anwendungspaket usw. programmiert wurden. Die Anweisungen können für eine Rechenvorrichtung gespeichert werden, das unter Verwendung eines Host-Systems implementiert ist, mit dem die Speichervorrichtung verbunden ist.
  • Ein anderer Teil der Daten, die in dem Speicher gespeichert sind, kann Operanden oder Eingaben für die Anweisungen bereitstellen, wenn die Anweisungen in einer oder mehreren Verarbeitungsvorrichtungen des Host-Systems ausgeführt werden.
  • Ein weiterer Teil der in dem Speicher gespeicherten Daten kann Ergebnisse beinhalten, die aus den Ausführungen der Anweisungen unter Verwendung der in dem Speicher gespeicherten Eingaben und/oder anderer Eingaben erzeugt wurden.
  • Beispiele einer solchen Rechenvorrichtung beinhalten einen Personal Computer, einen mobilen Computer, einen Tablet-Computer, einen Personal Media Player, ein Smartphone, einen Smart-TV, einen Smart-Lautsprecher, eine intelligente Vorrichtung, eine IoT-Vorrichtung (Internet der Dinge) usw.
  • Die in einer Speichervorrichtung implementierten Sicherheitsmerkmale können dazu verwendet werden, die Kommunikation zwischen der Speichervorrichtung und dem Sicherheitsserver über ein Computer-Netzwerk zu sichern. Der Kommunikationspfad zwischen der Speichervorrichtung und dem Sicherheitsserver ist möglicherweise nicht sicher. Die Kommunikation zwischen dem Sicherheitsserver und der Speichervorrichtung ermöglicht die Überprüfung der Identität der Speichervorrichtung und/oder die Steuerung des Zugriffs auf die Speichervorrichtung, um Fälschungen, Manipulationen, Hackerangriffe und/oder unsichere Operationen zu verhindern und zu erkennen.
  • Die Kombination aus den Sicherheitsmerkmalen der Speichervorrichtung und den Sicherheitsdiensten des Sicherheitsservers ermöglicht es verschiedenen Parteien, die an der Verwendung der Speichervorrichtung und/oder der Rechenvorrichtung mit der Speichervorrichtung beteiligt sind, Vertrauen in die Authentizität der Rechenvorrichtung und/oder der Speichervorrichtung sowie Vertrauen in die Integrität der in der Speichervorrichtung gespeicherten Daten, wie beispielsweise der in der Rechenvorrichtung auszuführenden Anweisungen und der Eingaben für die Anweisungen, zu haben.
  • Beispielsweise können der Sicherheitsserver und die Speichervorrichtung kombiniert werden, um den Austausch eines Teilnehmeridentitätsmoduls (subscriber identity module - SIM) zu implementieren.
  • Eine SIM-Karte wird üblicherweise verwendet, um die Identität eines Teilnehmers eines Mobilfunkdienstes in einem Telekommunikationsnetz darzustellen. Wenn eine SIM-Karte in ein Mobiltelefon eingelegt wird, kann das Mobiltelefon auf den für ein Konto des Teilnehmers bereitgestellten Mobilfunkdienst zugreifen; und wenn die SIM-Karte in ein alternatives Mobiltelefon eingelegt wird, kann der Teilnehmer unter Verwendung des alternativen Mobiltelefons auf den Mobilfunkdienst zugreifen, der dem Konto zugeordnet ist.
  • Wenn die Identität einer Speichervorrichtung, die in einem Mobiltelefon installiert ist, sicher konfiguriert werden kann, um die Identität eines Teilnehmers darzustellen, kann der Bedarf an einer physischen SIM-Karte entfallen. Die Identität der Speichervorrichtung kann über die Sicherheitsmerkmale der Speichervorrichtung und die Sicherheitsdienste des Sicherheitsservers konfiguriert und geschützt werden.
  • Im Allgemeinen kann der Sicherheitsserver im Internet so konfiguriert werden, dass er Computern und Servern Dritter sicherheitsbezogene Dienste basierend auf den in den Speichervorrichtungen integrierten Sicherheitsmerkmalen bereitstellt. Die Sicherheitsmerkmale sind in die Speichervorrichtungen integriert und verpackt. Die Sicherheitsmerkmale und die Sicherheitsdienste können verwendet werden, ohne den Sicherheitsimplementierungen von Rechenvorrichtungen zu vertrauen, in denen die Speichervorrichtungen installiert sind. Somit können Sicherheitsimplementierungen bei der Entwicklung der Sicherheitsmerkmale in den Speichervorrichtungen und dem Sicherheitsserver zentralisiert werden. Durch die einfache Verwendung der Speichervorrichtungen, welche die Sicherheitsmerkmale aufweisen, kann die Sicherheit der Rechenvorrichtungen, welche die Speichervorrichtungen verwenden, ohne großen Aufwand für die Entwickler und/oder Hersteller der Rechenvorrichtungen verbessert werden.
  • Der Sicherheitsserver kann Dienste zum Überprüfen der Identität und/oder Authentizität von Vorrichtungen, zum Erkennen gefälschter und/oder manipulierter Vorrichtungen, zum Verfolgen und Verwalten des Eigentums an Vorrichtungen, zum Erleichtern der Übertragung des Eigentums/der Steuerung von Vorrichtungen, zum Erleichtern des Konfigurierens von Rechenvorrichtungen für den Zugriff auf Dienste von Servern und/oder Netzwerken von Dritten usw. anbieten.
  • Sicherheitsmerkmale einer Speichervorrichtung können in dem Gehäuse einer integrierten Schaltung (integrated circuit - IC) der Speichervorrichtung während der Herstellung der Speichervorrichtung implementiert werden. Die Speichervorrichtung kann eine Logikschaltung (oder Steuerung) und Speicherzellen aufweisen, die auf einem oder mehreren Chips der integrierten Schaltung ausgebildet sind. Zumindest einige der Speicherzellen der Speichervorrichtung können nichtflüchtig sein, sodass Daten in den nichtflüchtigen Speicherzellen auch dann gehalten werden können, wenn die Speichervorrichtung über einen längeren Zeitraum (z. B. Tage, Monate oder sogar Jahre) nicht mit Strom versorgt wird. Der nichtflüchtige Speicher der die Speichervorrichtung kann verwendet werden, um Anweisungen und Daten für die Operationen eines Host-Systems der Speicherzelle zu speichern.
  • Die Speichervorrichtung kann einen eindeutigen Vorrichtungsschlüssel (Unique Device Secret - UDS) aufweisen. Der eindeutige Vorrichtungsschlüssel kann in der Speichervorrichtung derart gesichert werden, dass nach Fertigstellung der Herstellung der Speichervorrichtung der eindeutige Vorrichtungsschlüssel nicht außerhalb der Speichervorrichtung kommuniziert wird und nicht von einem Host-System über eine Schnittstelle der Speichervorrichtung gelesen werden kann.
  • Das Vorhandensein des eindeutigen Vorrichtungsschlüssels der Speichervorrichtung kann von dem Sicherheitsserver durch kryptographische Berechnungen überprüft werden, beispielsweise durch Erzeugung von kryptographischen Schlüsseln, Erzeugung eines Hashwerts einer Nachricht unter Verwendung einer kryptographischen Funktion und Erzeugung eines verschlüsselten Textes einer Nachricht durch Verschlüsselung der Nachricht mit einem kryptographischen Schlüssel.
  • Die kryptographische Berechnung zum Verschlüsseln einer Nachricht unter Verwendung eines kryptographischen Schlüssels beinhaltet die Berechnung eines Chiffretextes zum Darstellen der Nachricht. Die Nachricht kann effizient unter Verwendung eines entsprechenden kryptographischen Schlüssels aus dem Chiffretext wiederhergestellt werden, indem eine vordefinierte Entschlüsselungsberechnung durchgeführt wird. Ohne den entsprechenden kryptographischen Schlüssel für die Entschlüsselung ist es im Allgemeinen nicht möglich, die Nachricht aus dem Chiffretext wiederherzustellen. Der Schwierigkeitsgrad zum Wiederherstellen der Nachricht ohne Kenntnis des entsprechenden kryptographischen Schlüssels zur Entschlüsselung stellt die Sicherheitsstufe der Verschlüsselungsberechnung dar. Die Sicherheitsstufe hängt im Allgemeinen von der Länge des kryptographischen Schlüssels ab, der bei der Verschlüsselung verwendet wird, sowie von dem verwendeten Algorithmus.
  • Wenn symmetrische Kryptographie verwendet wird, sind der kryptographische Schlüssel zur Entschlüsselung und der kryptographische Schlüssel zur Verschlüsselung identisch. Wenn asymmetrische Kryptographie verwendet wird, sind der Entschlüsselungsschlüssel und der Verschlüsselungsschlüssel unterschiedlich und werden als Paar erzeugt. Einer des Paares kann als privater Schlüssel und somit als Geheimcode verwendet werden; der andere des Paares kann als öffentlicher Schlüssel verwendet werden. Im Allgemeinen ist es unpraktisch, den privaten Schlüssel anhand des öffentlichen Schlüssels zu berechnen. Der Schwierigkeitsgrad zum Wiederherstellen des privaten Schlüssels aus dem öffentlichen Schlüssel stellt die Sicherheitsstufe der asymmetrischen Kryptographie dar.
  • Die kryptographische Berechnung zum Hashing einer Nachricht ordnet die Nachricht einem Hash-Wert zu, um die Nachricht darzustellen. Allerdings gehen bei der Berechnung des Hash-Werts eine Reihe von Informationen verloren, sodass die Nachricht nicht aus dem Hash-Wert wiederhergestellt werden kann. Viele Nachrichten können auf denselben Hash-Wert abgebildet werden. Im Allgemeinen ist es unpraktisch, eine modifizierte Version der Nachricht zu erzeugen, die mit demselben Hash-Wert versehen werden kann, insbesondere wenn die modifizierte Version der ursprünglichen Nachricht ähnlich ist.
  • Die kryptographische Berechnung der Schlüsselgenerierung beinhaltet das Berechnen eines kryptographischen Schlüssels für die symmetrische Kryptographie oder eines Paares von kryptographischen Schlüsseln für die asymmetrische Kryptographie, basierend auf einem Datensatz. Die Wahrscheinlichkeit, den gleichen Schlüssel oder das gleiche Schlüsselpaar zu erzeugen, ohne den gleichen Datensatz ist gering. Die Höhe der Wahrscheinlichkeit steht für die Stärke der kryptographischen Berechnung, die bei der Schlüsselgenerierung verwendet wird.
  • Im Allgemeinen können alle Techniken kryptographischer Berechnungen zur Verschlüsselung, zum Hashing und zur Schlüsselgenerierung mit der Speichervorrichtung und dem Sicherheitsserver verwendet werden. Somit ist die vorliegende Offenbarung nicht auf eine bestimmte Technik der Verschlüsselung, des Hashings und/oder der Schlüsselgenerierung beschränkt.
  • Neben dem eindeutigen Geheimcode der Speichervorrichtung kann der Speicher zusätzliche Daten speichern, welche die Daten und/oder Hardwarekonfiguration der Speichervorrichtung und/oder der Rechenvorrichtung, in der die Speichervorrichtung installiert ist, darstellen. Ein Teil der zusätzlichen Daten kann als Geheimcode in der Speichervorrichtung aufbewahrt werden, jedoch nicht unbedingt. Der eindeutige Geheimcode und die zusätzlichen Daten können zum Erzeugen eines geheimen kryptographischen Schlüssels verwendet werden, um die Identität der Speichervorrichtung und/oder der Rechenvorrichtung darzustellen.
  • Die Logikschaltung (oder lokale Steuerung) der Speichervorrichtung kann eine kryptographische Engine, eine Identitäts-Engine und eine Zugriffssteuerung implementieren. Die kryptographische Engine der Speichervorrichtung ist zum Durchführen kryptographischer Berechnungen (z. B. Hashing, Verschlüsseln/Entschlüsseln, Schlüsselgenerierung) innerhalb der Speichervorrichtung konfiguriert, um die Operationen der Identitäts-Engine und der Zugriffssteuerung zu unterstützen. Die Implementierung der kryptographischen Engine in der Speichervorrichtung vermeidet die Notwendigkeit, sich auf einen externen Prozessor für Sicherheitsberechnungen der Speichervorrichtungen zu verlassen, und verbessert somit die Sicherheit durch Verhindern der Übertragung von Geheimnissen außerhalb des Speichervorrichtung und durch Verhindern von Manipulationen und Hackerangriffen auf kryptographische Berechnungen. Optional kann zumindest ein Teil der kryptographischen Berechnungen, die in den Sicherheitsmerkmalen der Speichervorrichtung enthalten sind, durch das Speichern von Befehlen in der Speichervorrichtung zum Ausführen durch das Host-System der Speichervorrichtung implementiert werden, wobei ein Kompromiss zwischen der Sicherheitsstufe und der Komplexität der Logikschaltung (oder lokalen Steuerung) der Speichervorrichtung besteht.
  • Die kryptographische Engine der Speichervorrichtung kann verwendet werden, um eine kryptographische Hash-Funktion auf eine Nachricht anzuwenden, um einen Hash-Wert zu erzeugen, um einen symmetrischen kryptographischen Schlüssel oder ein Paar asymmetrischer kryptographischer Schlüssel aus einem Datensatz zu erzeugen, um den Chiffretext einer Nachricht unter Verwendung eines kryptographischen Schlüssels zu erzeugen und/oder um eine Nachricht aus dem Chiffretext unter Verwendung eines kryptographischen Schlüssels wiederherzustellen.
  • Die Zugriffssteuerung der Speichervorrichtung ist konfiguriert, um die Ausführung von in der Speichervorrichtung empfangenen Befehlen unter Verwendung kryptographischer Schlüssel zu steuern. Beispielsweise können Berechtigungen erforderlich sein, um die Speichervorrichtung aufzufordern, Befehle zum Ausführen von Lese-, Schreib-, Lösch-, Modifizierungsusw. für verschiedene Abschnitte des nichtflüchtigen Speichers der Speichervorrichtung auszuführen. Die Berechtigungen können durch entsprechende kryptographische Schlüssel dargestellt werden. Nach dem Empfangen eines berechtigten Befehls in der Speichervorrichtung zum Ausführen kann die Zugriffssteuerung unter Verwendung der kryptographischen Engine eine Berechnung durchführen, um zu ermitteln, ob der Befehl von einem Absender stammt, der einen kryptographischen Schlüssel besitzt, der die Berechtigung darstellt. Die Zugriffssteuerung ermöglicht die Ausführung des Befehls in der Speichervorrichtung, nachdem die Berechnung ergeben hat, dass der Absender den kryptographischen Schlüssel und damit das Recht dazu besitzt. Andernfalls kann die Zugriffssteuerung den Befehl zurückweisen, ignorieren oder verwerfen. Eine solche Zugriffssteuerung kann den unbefugten Zugriff auf die in der Speichervorrichtung gespeicherten Daten verhindern, unbefugte Änderungen an der Speichervorrichtung verhindern und Manipulationen und/oder Hackerangriffe verhindern, die dazu dienen, Fälschungen der Speichervorrichtung und/oder unsicherer Vorrichtungen zu erstellen.
  • Im Allgemeinen schließt das Überprüfen, ob ein Absender einer Nachricht einen kryptographischen Schlüssel aufweist, das Überprüfen eines Verifizierungscodes der Nachricht ein. Der Verifizierungscode kann in Form eines Hash-Digest, einer digitalen Signatur, eines Hash-basierten Nachrichten-Authentifizierungscodes (Hash-based Message Authentication Code - HMAC), eines Chiffre-basierten Nachrichten-Authentifizierungscodes (Cipher-based Message Authentication Code - CMAC) usw. ausgebildet sein. Der Verifizierungscode wird unter Verwendung des kryptographischen Schlüssels und der Nachricht als Eingabe für kryptographische Operationen wie Hashing, Verschlüsseln und/oder andere Berechnungen erzeugt, sodass es im Allgemeinen unpraktisch ist, den Verifizierungscode ohne den kryptographischen Schlüssel zu erzeugen und den Verifizierungscode aus einer modifizierten Version der Nachricht zu erzeugen. Somit kann der Empfänger, wenn er bestätigt, dass der empfangene Verifizierungscode für die empfangene Nachricht und einen kryptographischen Schlüssel gültig ist, darauf schließen, dass der Absender den entsprechenden kryptographischen Schlüssel aufweist und die empfangene Nachricht mit der Nachricht übereinstimmt, die zum Erzeugen des empfangenen kryptographischen Schlüssels verwendet wurde.
  • In einigen Implementierungen führt der Empfänger die Überprüfung eines Verifizierungscodes einer Nachricht unter Verwendung desselben kryptographischen Schlüssels durch, den der Absender zum Erzeugen des Verifizierungscodes verwendet hat. Beispielsweise verwendet der Empfänger denselben kryptographischen Schlüssel, um den Verifizierungscode der empfangenen Nachricht zu erzeugen und den erzeugten Verifizierungscode mit dem empfangenen Verifizierungscode zu vergleichen. Bei einer Übereinstimmung ist der empfangene Verifizierungscode für die empfangene Nachricht gültig; und der Absender kann als derjenige angesehen werden, der den kryptographischen Schlüssel aufweist. Andernfalls ist der empfangene Verifizierungscode für die empfangene Nachricht ungültig; entweder wurde die empfangene Nachricht seit dem Erzeugen des Verifizierungscodes geändert, oder der empfangene Verifizierungscode wurde unter Verwendung eines anderen kryptographischen Schlüssels erzeugt, oder beides.
  • In einigen Implementierungen führt der Empfänger die Überprüfung eines Verifizierungscodes einer Nachricht unter Verwendung eines öffentlichen kryptographischen Schlüssels in einem Schlüsselpaar durch; und der Absender erzeugt den Verifizierungscode unter Verwendung eines privaten kryptographischen Schlüssels im Schlüsselpaar. Beispielsweise kann der Verifizierungscode durch Anwenden einer Hash-Funktion auf die Nachricht zum Erzeugen eines Hash-Werts der Nachricht erzeugt werden. Der Chiffretext des Hash-Werts, der durch Verschlüsseln des Hash-Werts erhalten wird, die unter Verwendung eines Verschlüsselungsschlüssels durchgeführt wird, kann als Verifizierungscode verwendet werden. Ein Empfänger der Nachricht und des Verifizierungscodes führt die Überprüfung unter Verwendung eines entsprechenden Entschlüsselungsschlüssels durch, der mit dem Verschlüsselungsschlüssel identisch ist, wenn symmetrische Kryptographie verwendet wird, und ein unterschiedlicher Schlüssel in einem Schlüsselpaar ist, wenn asymmetrische Kryptographie verwendet wird. Nach dem Wiederherstellen eines Hash-Werts aus dem Chiffretext unter Verwendung des Entschlüsselungsschlüssels kann der wiederhergestellte Hash-Wert mit dem Hash-Wert der empfangenen Nachricht verglichen werden; bei einer Übereinstimmung ist der empfangene Verifizierungscode für die empfangene Nachricht gültig; andernfalls ist der empfangene Verifizierungscode für die empfangene Nachricht ungültig. Alternativ kann der Empfänger den Verschlüsselungsschlüssel verwenden, um die Überprüfung durchzuführen, ohne eine Entschlüsselung durchzuführen. Der Empfänger kann den Verifizierungscode der Nachricht erzeugen, indem er den Verschlüsselungsschlüssel zum Vergleich mit dem empfangenen Verifizierungscode verwendet.
  • In einigen Implementieren werden eine Nachricht und ein kryptographischer Schlüssel kombiniert, um einen Hash-Wert als Verifizierungscode zu erzeugen, wie in einer Technik des Hash-basierten Nachrichtenauthentifizierungscodes (HMAC). Beispielsweise kann ein kryptographischer Schlüssel zum Erzeugen von zwei Schlüsseln verwendet werden. Nach dem Kombinieren einer der beiden Schlüssel mit der Nachricht, um eine durch den Schlüssel modifizierte Nachricht zu erzeugen, kann eine kryptographische Hash-Funktion auf die schlüsselmodifizierte Nachricht angewendet werden, um einen Hash-Wert zu erzeugen, der ferner mit dem anderen Schlüssel kombiniert wird, um eine weitere Nachricht zu erzeugen. Nach dem Anwenden der kryptographischen Hash-Funktion (oder einer anderen kryptographischen Hash-Funktion) auf die weitere Nachricht wird ein Hash-basierter Nachrichtenauthentifizierungscode erzeugt. Ein Empfänger der Nachricht kann den gleichen kryptographischen Schlüssel verwenden, um den Hash-basierten Nachrichtenauthentifizierungscode der empfangenen Nachricht zum Vergleichen mit dem empfangenen Hash-basierten Nachrichtenauthentifizierungscode zu erzeugen. Bei einer Übereinstimmung ist die Überprüfung erfolgreich; andernfalls schlägt die Überprüfung fehl.
  • Im Allgemeinen können alle Techniken zum Erzeugen und Überprüfen eines Verifizierungscodes für eine Nachricht von einem Absender und eines kryptographischen Schlüssels, den der Absender zum Erzeugen des Verifizierungscodes verwendet, dazu verwendet werden, zu bestimmen, ob der Absender den kryptographischen Schlüssel besitzt. Der Empfänger verwendet einen geeigneten kryptographischen Schlüssel, um die Überprüfung durchzuführen, welcher der gleiche sein kann wie der kryptographische Schlüssel, der zum Erzeugen des Verifizierungscodes verwendet wurde, oder das gleiche Paar asymmetrischer kryptographischer Schlüssel. Somit ist die vorliegende Offenbarung nicht auf eine bestimmte Technik eines Hash-Digest, einer digitalen Signatur und/oder eines Hash-basierten Nachrichtenauthentifizierungscodes beschränkt.
  • Der Einfachheit halber kann ein Verifizierungscode, der für eine Nachricht unter Verwendung eines kryptographischen Schlüssels zur Darstellung sowohl der Nachricht als auch des kryptographischen Schlüssels erzeugt wird, im Allgemeinen als digitale Signatur der mit dem kryptographischen Schlüssel signierten Nachricht bezeichnet werden, sodass der Verifizierungscode mit verschiedenen Techniken erzeugt werden kann, beispielsweise mit einem Hash-basierten Nachrichtenauthentifizierungscode.
  • Die Speichervorrichtung kann konfiguriert sein, um relevante kryptographische Schlüssel zum Überprüfen der Verifizierungscodes zu speichern, die mit kryptographischen Schlüsseln signiert sind, die so konfiguriert sind, dass sie die Anforderungen zum Ausführen der Befehle in der Speichervorrichtung darstellen.
  • Beispielsweise kann die Zugriffssteuerung eine Reihe von Berechtigungen für einen Besitzer der Speichervorrichtung bereitstellen, sodass der Besitzer ein oder mehrere Sicherheitsmerkmale der Speichervorrichtung aktivieren oder deaktivieren, eine oder mehrere Sicherheitseinstellungen, Parameter, Konfigurationen oder Präferenzen der Speichervorrichtung ändern und/oder Daten aus einem Abschnitt der Speichervorrichtung lesen kann, der von anderen Benutzern der Speichervorrichtung nicht gelesen werden kann.
  • Beispielsweise kann die Zugriffssteuerung autorisierten Benutzern der Speichervorrichtung bestimmte Berechtigungen zum Lesen, Schreiben, Löschen oder Ändern bestimmter Abschnitte der Speichervorrichtung bereitstellen.
  • Wenn die Speichervorrichtung einen Befehl empfängt, der ein Zugriffsrecht zum Ausführen erfordert, kann die Zugriffssteuerung einen entsprechenden kryptographischen Schlüssel abrufen, um einen Verifizierungscode oder eine digitale Signatur für eine Nachricht, die den Befehl beinhaltet, zu überprüfen. Wenn die Überprüfung des für den empfangenen Befehl empfangenen Verifizierungscodes erfolgreich ist, wird der empfangene Befehl als von einem Absender stammend betrachtet, der den kryptographischen Schlüssel besitzt, der die Berechtigungen darstellt, den Befehl in einer Speichervorrichtung auszuführen. In Reaktion darauf erlaubt die Zugriffssteuerung die Ausführung des Befehls in der Speichervorrichtung. Andernfalls blockiert die Zugriffssteuerung die Ausführung des Befehls.
  • Die Speichervorrichtung kann so hergestellt sein, dass sie zunächst im Besitz des Sicherheitsservers ist. Anschließend kann der Sicherheitsserver einige oder alle Berechtigungen an einen oder mehrere Besitzer und Benutzer bereitstellen und/oder übertragen, in einem Prozess, beginnend mit der Anordnung der Speichervorrichtung in einer Rechenvorrichtung bis zu der Rechenvorrichtung welche die Speichervorrichtung aufweist, die von einem Endbenutzer verwendet wird. Die Zugriffssteuerung kann Manipulationen, Hackerangriffe und unbefugten Zugriff verhindern und gleichzeitig die Flexibilität bereitstellen, verschiedene Muster zur Übertragung von Berechtigungen an verschiedene Besitzer und Benutzer zu unterstützen, wie z. B. einen Hersteller einer Komponente einer Rechenvorrichtung, in der die Speichervorrichtung installiert ist, einen Hersteller einer Rechenvorrichtung, in der die Komponente der Rechenvorrichtung installiert ist, einen Einzelhändler, einen Unternehmensbenutzer, einen Endbenutzer und einen alternativen Endbenutzer usw.
  • Der Identitäts-Engine der Speichervorrichtung ist zum Erzeugen von Daten konfiguriert, die auf die Identität der Speichervorrichtung und/oder die Identität der Rechenvorrichtung, in der die Speichervorrichtung installiert ist, schließen lassen. Zum Erzeugen der Identitätsdaten verwendet die Identitäts-Engine die kryptographische Engine, um einen geheimen kryptographischen Schlüssel aus dem eindeutigen Vorrichtungsschlüssel und anderen Daten zu erzeugen, die in der Speichervorrichtung gespeichert sind und/oder durch die Speichervorrichtung gesammelt werden (z. B. während des Startvorgangs der Rechenvorrichtung). Das Vorhandensein des geheimen kryptographischen Schlüssels in der Speichervorrichtung kann als Nachweis dafür angesehen werden, dass die Speichervorrichtung im Besitz des eindeutigen Vorrichtungsschlüssels der Vorrichtung und der anderen Daten ist, die zum Erzeugen des geheimen kryptographischen Schlüssels verwendet werden. Das Vorhandensein des geheimen kryptographischen Schlüssels in der Speichervorrichtung kann durch den Sicherheitsserver anhand eines Verifizierungscodes oder einer digitalen Signatur unter Verwendung des geheimen kryptographischen Schlüssels überprüft werden.
  • Während der Herstellung der Speichervorrichtung wird eine Kopie des eindeutigen Geheimcodes der Vorrichtung in dem Sicherheitsserver registriert und/oder sicher und ohne Aufdeckung weitergegeben. Anschließend ist der Sicherheitsserver konfiguriert, um denselben geheimen kryptographischen Schlüssel (und/oder einen entsprechenden öffentlichen Schlüssel, wenn asymmetrische Kryptographie verwendet wird) unabhängig von der Speichervorrichtung abzuleiten, ohne dass die Speichervorrichtung ihren eindeutigen Geheimcode außerhalb der Speichervorrichtung mitteilt. Somit kann der Sicherheitsserver überprüfen, dass die Speichervorrichtung den eindeutigen Vorrichtungsschlüssel aufweist, indem er überprüft, ob die Speichervorrichtung den geheimen kryptographischen Schlüssel aufweist; und der geheime kryptographische Schlüssel als Identität der Speichervorrichtung kann sich während der Verarbeitung der Speichervorrichtung ändern, die in eine Komponente, eine Vorrichtung, ein System integriert ist und zwischen Herstellern, Einzelhändlern, Distributoren, Unternehmen und/oder Endbenutzern übertragen wird. Ohne Ändern des eindeutigen Vorrichtungsschlüssels kann die Entität der Speichervorrichtung, wie sie durch einen geheimen kryptographischen Schlüssel dargestellt wird, aktualisiert werden, um die Speichervorrichtung so darzustellen, dass sie zu einer Komponente, einer Vorrichtung, einem System zusammengebaut wird, dass sie angepasst und/oder personalisiert wird und/oder dass sie im Besitz von verschiedenen Entitäten oder Benutzern ist und/oder von diesen betrieben wird.
  • Kryptographische Operationen und Kommunikationen können durchgeführt werden, um dem Sicherheitsserver zu ermöglichen, zu überprüfen, ob der Speichervorrichtung den geheimen kryptographischen Schlüssel aufweist.
  • Beispielsweise können die von der Speichervorrichtung zur Überprüfung vorliegenden Identifizierungsdaten eine Nachricht beinhalten, die eine öffentliche Identifizierung der Speichervorrichtung anzeigt. Die öffentliche Identifizierung kann verwendet werden, um die Speichervorrichtung von anderen Speichervorrichtungen zu unterscheiden. Die Identitätsdaten können einen Verifizierungscode oder eine digitale Signatur einer Nachricht in den Identitätsdaten beinhalten, die unter Verwendung des geheimen kryptographischen Schlüssels signiert wurde. Die Identitätsdaten beinhalten eine Kopie der Nachricht und den Verifizierungscode oder die digitale Signatur. Sobald der Verifizierungscode und die Nachrichtendaten vom Sicherheitsserver überprüft wurden, kann der Sicherheitsserver daraus schließen, dass die in den Identifizierungsdaten bereitgestellte öffentliche Identifizierung authentisch ist und die Identifizierungsdaten von der Speichervorrichtung stammen, die den geheimen kryptographischen Schlüssel aufweist.
  • Der geheime kryptographische Schlüssel der Speichervorrichtung kann nicht nur unter Verwendung des eindeutigen Vorrichtungsschlüssels der Speichervorrichtung erzeugt werden, sondern auch unter Verwendung zusätzlicher Daten, die für einige Aspekte der Speichervorrichtung und/oder der Rechenvorrichtung, in der die Speichervorrichtung installiert ist, repräsentativ sind. Die zusätzlichen Daten können repräsentativ sein für Software, Firmware, Bootloader, Anwendungen, in der Speichervorrichtung gespeicherte Trace-Daten, Kennungen von Komponenten der Rechenvorrichtung, die sich in der Rechenvorrichtung zu einem bestimmten Zeitpunkt des letzten Startvorgangs der Rechenvorrichtung befinden. Wenn die zusätzlichen Daten verändert wurden, erzeugt die Identitäts-Engine einen veränderten geheimen kryptographischen Schlüssel. Folglich besteht der Verifizierungscode, der unter Verwendung des geänderten kryptographischen Geheimcodes erzeugt wurde, die auf dem Sicherheitsserver durchgeführte Überprüfung nicht. Somit wird durch die Überprüfung des von der Identitäts-Engine erzeugten Verifizierungscodes auch die Integrität und Authentizität der Hardware-/Software-/Datenzusammensetzung der Speichervorrichtung und der Rechenvorrichtung, in der die Speichervorrichtung installiert ist, überprüft.
  • Die Überprüfung der Identität der Speichervorrichtung und/oder des Host-Systems kann gefälschte, manipulierte und gestohlene/verlorene Vorrichtungen erkennen. Basierend auf einer Anforderung des Besitzers kann der Sicherheitsserver eine gestohlene/verlorene Speichervorrichtung so konfigurieren, dass sie in einem von mehreren degradierten Modi betrieben wird, beispielsweise nicht bootfähig, nicht lesbar, Verschlüsselung/Löschung von Daten in dem nichtflüchtigen Speicher, Selbstzerstörung der Speicherfunktionalität der Speichervorrichtung usw.
  • Der Sicherheitsserver ist mit einer Datenbank von Informationen zum Überprüfen von Identitätsdaten konfiguriert, die in den Identitäts-Engines von Speichervorrichtungen erzeugt werden. Die Datenbank ermöglicht es dem Sicherheitsserver, die entsprechenden geheimen kryptographischen Schlüssel in den Speichervorrichtungen zu erzeugen (und/oder die entsprechenden öffentlichen Schlüssel, wenn asymmetrische Kryptographie verwendet wird). Die kryptographischen Schlüssel können vom Sicherheitsserver erzeugt werden, ohne dass die Speichervorrichtungen ihre eindeutigen Geheimcodes außerhalb der Speichervorrichtungen nach der Herstellung der Speichervorrichtungen mitteilen. Die kryptographischen Schlüssel können zumindest teilweise basierend auf den zusätzlichen Daten erzeugt werden, die nach der Herstellung der Speichervorrichtungen zur Verfügung stehen.
  • Der Sicherheitsserver kann einen kryptographischen Schlüssel speichern, der die Berechtigungen des Besitzers einer Speichervorrichtung darstellt. Unter Verwendung des kryptographischen Schlüssels kann der Sicherheitsserver Befehle erzeugen, um das Eigentum an der Speichervorrichtung zu übertragen und ausgewählte Berechtigungen zu konfigurieren und/oder zu übertragen, um ausgewählte Befehle in der Speichervorrichtung auszuführen. Nachdem eine Rechenvorrichtung als verloren/gestohlen gemeldet wurde, kann der Sicherheitsserver die Verwendung seiner Speichervorrichtung während der Überprüfung der Speichervorrichtung in Verbindung mit einer Dienstanforderung bei einem Server eines Dritten erkennen.
  • Wenn beispielsweise der Server eines Dritten eine Dienstanforderung von einer Rechenvorrichtung mit der Speichervorrichtung empfängt, leitet er die durch die Speichervorrichtung erzeugten Identitätsdaten von der Rechenvorrichtung zur Überprüfung an den Sicherheitsserver weiter. Wenn die Identitätsdaten durch den Sicherheitsserver überprüft werden, kann der Server eines Dritten der Rechenvorrichtung Dienste bereitstellen; andernfalls kann die Anforderung abgelehnt, verworfen oder ignoriert werden.
  • Auf Anforderung durch eine autorisierte Partei kann der Sicherheitsserver Befehle signieren oder Verifizierungscodes für die Befehle erzeugen, um den Zugriff auf den nichtflüchtigen Speicher in der Speichervorrichtung zu gewähren oder zu entziehen. Die autorisierte Partei kann die signierten Befehle in der Speichervorrichtung zum Ausführen weiterleiten. Ein signierter Befehl beinhaltet eine Nachricht, die den Befehl und einen Verifizierungscode für die Nachricht aufweist, der unter Verwendung eines kryptographischen Schlüssels, der die Berechtigungen zum Ausführen des Befehls in der Speichervorrichtung darstellt, signiert/erzeugt wurde.
  • Die Speichervorrichtung kann in einer Rechenvorrichtung als Teil der Identität der Rechenvorrichtung und zum Bereitstellen der Hauptspeicherkapazität für die Rechenvorrichtung installiert werden. Beispielsweise können die in der Rechenvorrichtung auszuführenden Anweisungen und die zugehörigen Daten in der Speichervorrichtung gespeichert und über Sicherheitsmerkmale der Speichervorrichtung gegen Verfälschung, Manipulation und/oder Hacking geschützt werden. Da die von der Identitäts-Engine der Speichervorrichtung erzeugten Identitätsdaten zumindest teilweise auf den in der Speichervorrichtung gespeicherten Befehlen/Daten basieren, wird die Integrität und/oder Authentizität der von der Speichervorrichtung zu verwendenden Befehle und Daten zumindest während des Prozesses zum Überprüfen der Identität der Speichervorrichtung und/oder der Rechenvorrichtung überprüft.
  • Die Sicherheitsdienste, die durch den Sicherheitsserver bereitgestellt werden, entlasten die Server von Dritten von der Sicherung von Operationen und Rechenvorrichtungen. Ein unbefugte Zugriff kann durch die Verwendung der Speichervorrichtungen und die Dienste des Sicherheitsservers ohne großen Aufwand von den Herstellern der Rechenvorrichtungen und den Betreibern der Drittanbieter-Server verhindert werden. Somit können die Server von Dritten ihre Kernkompetenzen beim Bereitstellen ihrer jeweiligen Dienste betreiben, ohne die Sicherheit zu beeinträchtigen.
  • Die durch den Sicherheitsserver bereitgestellten Dienste können von einem Dritten genutzt werden, um seinen Teilnehmern deren Dienste bereitzustellen, ohne dass die Teilnehmer manuelle Operationen durchführen müssen, um die von den Teilnehmern verwendeten Rechenvorrichtungen zu konfigurieren. Beispielsweise kann ein Teilnehmer eine Rechenvorrichtung verwenden, um auf den abonnierten Mobilfunkdienst im Konto des Abonnenten zuzugreifen, ohne eine physische SIM-Karte in die Rechenvorrichtung einlegen zu müssen und/oder andere Operationen zum Anpassen der Rechenvorrichtung für den Zugriff unter Verwendung des Kontos des Teilnehmers durchzuführen.
  • Teilnehmer können durch Identifizierungen von Konten dargestellt werden. Wenn ein Teilnehmer eine Rechenvorrichtung kauft, kann das Eigentum an der Rechenvorrichtung über den Sicherheitsserver auf den Teilnehmer übertragen werden. Die Sicherheitsmerkmale der Speichervorrichtung, die in der Rechenvorrichtung konfiguriert sind, können dazu verwendet werden, eine Vorrichtungsidentität zu erzeugen. Wenn die Rechenvorrichtung mit dem Server eines Dritten für Dienste verbunden ist, fordert der Server des Dritten den Sicherheitsserver an, die Vorrichtungsidentität zu überprüfen. Basierend auf dem Eigentum der Rechenvorrichtung und dem Eigentum des Kontos kann die Rechenvorrichtung dynamisch mit dem Konto verknüpft werden, um der Rechenvorrichtung zu erlauben, auf die von einem Dritten bereitgestellten Dienste zuzugreifen, der das Konto nutzt, ohne dass manuelle Operationen zum Konfigurieren der Rechenvorrichtung erforderlich sind.
  • Beispielsweise wird während der Überprüfung der Identität der Rechenvorrichtung der Besitzer/Teilnehmer der Rechenvorrichtung durch den Eigentümerverwaltungsdienst des Sicherheitsservers identifiziert. Sobald der Eigentümer/Teilnehmer identifiziert ist, kann die Identifizierung des Teilnehmers in die Vorrichtungsidentität der Rechenvorrichtung integriert werden oder der Vorrichtungsidentität in der Datenbank des Sicherheitsservers zugeordnet werden. Anschließend, wenn die Vorrichtungsidentität überprüft ist, können die Dienste in dem Konto des Teilnehmers durch den Dritten für die Rechenvorrichtung bereitgestellt werden, ohne dass der Teilnehmer die Dienste ausdrücklich an die Rechenvorrichtung leiten/anfordern muss.
  • Wahlweise kann die Rechenvorrichtung separate Anmeldeinformationen mit dem Server eines Dritten einrichten, sodass der Server des Dritten nicht jedes Mal den Sicherheitsserver kontaktieren muss, wenn sich die Rechenvorrichtung mit dem Server des Dritten verbindet, um Dienste in Anspruch zu nehmen.
  • 1 veranschaulicht ein beispielhaftes Computersystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
  • In 1 weist eine integrierte Speicherschaltungsvorrichtung 130 Sicherheitsmerkmale auf, wie oben erläutert.
  • Die sichere Speichervorrichtung 130 kann einen eindeutigen Vorrichtungsschlüssel 101 zu ihrer Authentifizierung speichern. In einem Beispiel wird der eindeutige Vorrichtungsschlüssel 101 in die Speichervorrichtung 130 in einer sicheren Einrichtung eingespeist und in einem Register der Speichervorrichtung 130 gespeichert. In einem anderen Beispiel kann der eindeutige Vorrichtungsschlüssel 101 von einer physikalisch nicht klonbaren Funktion (PUF) der Speichervorrichtung 130 erhalten werden. Der eindeutige Vorrichtungsschlüssel 101 kann erhalten und in dem Sicherheitsserver 140 über die sichere Einrichtung registriert werden. Beispielsweise kann die Sicherheitseinrichtung Teil einer Fertigungsanlage für Speichervorrichtungen (z. B. 130) sein. Nach der Herstellung der Speichervorrichtung 130 und/oder dem Verlassen der gesicherten Einrichtung ist der eindeutige Vorrichtungsschlüssel 101 nicht mehr über eine Schnittstelle (z. B. die Host-Schnittstelle 147) in der Speichervorrichtung 130 zugänglich. Somit wird nach der Herstellung der Speichervorrichtung 130 der eindeutige Vorrichtungsschlüssel 101 wie in der Speichervorrichtung 130 in dem integrierten Schaltungspaket der Speichervorrichtung 130 versiegelt. Eine Kopie des eindeutigen Vorrichtungsschlüssels 101 wird innerhalb des Sicherheitsservers 140 mit starken Sicherheitsmaßnahmen (z. B. Verwendung eines Hardware-Sicherheitsmoduls (HSM)) gesichert, um Hackerangriffe und unbefugten Zugriff zu verhindern.
  • Die Speichervorrichtung 130 beinhaltet eine Logikschaltung oder eine lokale Steuerung, die eine Kryptographie-Engine 107 implementiert. Die Kryptographie-Engine 107 kann kryptographische Berechnungen, wie z. B. Hashing, Schlüsselableitung, Verschlüsseln und/oder Entschlüsseln, durchführen, ohne auf die Verarbeitungsleistung außerhalb der Speichervorrichtung 130, wie z. B. eine Rechenvorrichtung 118 eines Host-Systems 120, angewiesen zu sein.
  • So können beispielsweise gemäß einem durch die Standards für Device Identity Composition Engine (DICE) und Robust Internet-of-Things (RIoT) spezifizierten Verfahren oder einem anderen Verfahren kryptographische Schlüssel 105 beim Booten basierend auf einer Kombination des eindeutigen Vorrichtungsschlüssels 101 und der in den Speicherzellen 103 der Speichervorrichtung 130 gespeicherten und/oder erhaltenen Vorrichtungsinformationen 121 erzeugt werden. Die Vorrichtungsinformationen 121 können nicht geheime Daten beinhalten, die von einer Stelle außerhalb des Sicherheitsservers 140 und der Speichervorrichtung 130 erhalten werden können. Zur Verbesserung der Sicherheit können die Vorrichtungsinformationen 121 auch zeitbezogene Informationen beinhalten.
  • Beispielsweise können die kryptographischen Schlüssel 105 zwei Paare von asymmetrischen kryptographischen Schlüsseln beinhalten. Ein erstes Paar asymmetrischer Schlüssel wird als Vorrichtungsidentifizierungsschlüssel bezeichnet; ein zweites Paar asymmetrischer Schlüssel wird als Alias-Schlüssel bezeichnet. Der private Vorrichtungsidentifizierungsschlüssel wird verwendet, um die Authentizität der Alias-Schlüssel zu zertifizieren, und reduziert somit seine Verwendung und die damit verbundenen Risiken. Die Alias-Schlüssel können bei mehr Transaktionen/Kommunikationen verwendet werden; und die Alias-Schlüssel können häufiger ersetzt werden als die Vorrichtungsidentifizierungsschlüssel, um die Sicherheit in Anbetracht ihrer häufigeren Verwendung und somit des Risikos zu verbessern. Beispielsweise kann der private Vorrichtungsidentifizierungsschlüssel beim Booten erzeugt und zum Signieren von Zertifikaten verwendet werden, beispielsweise eines Zertifikats des öffentlichen Alias-Schlüssels; anschließend wird der private Vorrichtungsidentifizierungsschlüssel sofort aus der Speichervorrichtung 130 gelöscht, um seine Geheimhaltung zu gewährleisten.
  • Im Allgemeinen kann einer der kryptographischen Schlüssel 105, der unter Verwendung des eindeutigen Vorrichtungsschlüssels 101 und der Vorrichtungsinformationen 121 erzeugt wird, als Geheimcode und Identität der Speichervorrichtung 130 verwendet werden, der vom Sicherheitsserver 140 zu überprüfen ist.
  • Die Authentifizierung der Speichervorrichtung 130 kann beispielsweise durch Überprüfung durchgeführt werden, ob die Speichervorrichtung 130 den geheimen kryptographischen Schlüssel 105 aufweist. Der geheime kryptographische Schlüssel 105 in der Speichervorrichtung 130 kann als Nachweis dafür angesehen werden, dass die Speichervorrichtung 130 den eindeutigen Vorrichtungsschlüssel 101 aufweist und eine nicht manipulierte Version der nicht geheimen Daten speichert.
  • Unter Verwendung des kryptographischen Schlüssels 107 kann die Speichervorrichtung 130 belegen, dass die Speichervorrichtung 130 den geheimen kryptographischen Schlüssel 105 besitzt, ohne den geheimen kryptographischen Schlüssel 105 und/oder den eindeutigen Vorrichtungsschlüssel 101 außerhalb der Speichervorrichtung 130 zu kommunizieren. Der Speichervorrichtung 130 kann beispielsweise ein Zertifikat oder eine Nachricht unter Verwendung des geheimen kryptographischen Schlüssels 105 digital signieren, um einen Verifizierungscode der Nachricht und des geheimen kryptographischen Schlüssels 105 bereitzustellen. Wenn der Sicherheitsserver 140 den Verifizierungscode erfolgreich überprüft hat, kann der Sicherheitsserver 140 daraus schließen, dass die Speichervorrichtung 130 den geheimen kryptographischen Schlüssel 105 und somit die Identität, die durch den eindeutigen Vorrichtungsschlüssel 101 dargestellt wird, aufweist.
  • Die Speichervorrichtung 130 beinhaltet eine Host-Schnittstelle 147, die zum Empfangen von Befehlen in einem Host-System 120 verwendet werden kann. Eine Steuerung 116 des Host-Systems kann Befehle an die Speichervorrichtung 130 senden, um das Lesen von Daten aus den Speicherzellen 103, das Schreiben von Daten in die Speicherzellen 103, das Löschen von Daten in einem Abschnitt der Speicherzellen 103, das Ändern von Daten in einem Abschnitt der Speicherzellen 103, das Aktivieren eines Sicherheitsmerkmals der Speichervorrichtung 130, das Konfigurieren von für ein Sicherheitsmerkmal in der Speichervorrichtung 130 relevanten Parametern usw. anzufordern. Zumindest einige der Befehle erfordern Berechtigungen durch einen kryptographischen Schlüssel 106, der im Sicherheitsserver 140 gespeichert ist. Den kryptographischen Schlüssel 106 zum Signieren des Befehls aufzuweisen, wird als Hinweis darauf betrachtet, die Berechtigung aufzuweisen, die Speichervorrichtung 130 zum Ausführen des Befehls aufzufordern.
  • Die Speichervorrichtung 130 beinhaltet eine Zugriffssteuerung 109, die so konfiguriert ist, dass sie die Kryptographie-Engine 107 verwendet, um einen Verifizierungscode zu überprüfen, der unter Verwendung eines kryptographischen Schlüssels 106 erzeugt wird, der die dem Befehl zugeordnete Berechtigung darstellt. Wenn ein Befehl mit einem gültigen Verifizierungscode empfangen wird, erlaubt die Zugriffssteuerung 109 der Speichervorrichtung 130, den Befehl auszuführen; andernfalls kann der Befehl zurückgewiesen, ignoriert oder verworfen werden.
  • Wenn die Speichervorrichtung 130 hergestellt wird, wird einer oder mehrere relevante kryptographische Schlüssel 105 in der Speichervorrichtung 130 gespeichert, um die Berechtigungen des Besitzers dem Sicherheitsserver 140 bereitzustellen. Unter Verwendung der Besitzerberechtigungen kann der Sicherheitsserver 140 Befehle zum Ausführen in der Speichervorrichtung 130 signieren, um Sicherheitsmerkmale zu aktivieren oder zu deaktivieren, um das Ersetzen eines geheimen kryptographischen Schlüssels als Identität der Speichervorrichtung 130 auszulösen, um einen kryptographischen Schlüssel zu ersetzen, der von der Zugriffssteuerung 109 zum Überprüfen von Berechtigungen verwendet wird, um einen oder mehrere Befehle in der Speichervorrichtung 130 für einen oder mehrere Bereiche der Speicherzellen 103 auszuführen usw.
  • Wahlweise kann der Sicherheitsserver 140 nach der Authentifizierung der Identität eines autorisierten Anforderers einen Befehl unter Verwendung eines kryptographischen Schlüssels signieren, um einen Verifizierungscode oder eine digitale Signatur für den Befehl zu erzeugen, sodass der Anforderer den Befehl mit dem Verifizierungscode an die Host-Schnittstelle 147 der Speichervorrichtung 130 senden kann, um zu veranlassen, dass der Befehl in der Speichervorrichtung 130 ausgeführt wird.
  • Wahlweise kann der Sicherheitsserver 140 einer Entität bestimmte Berechtigungen bereitstellen, indem er einen kryptographischen Schlüssel 105 in der Speichervorrichtung 130 ersetzt oder einen entsprechenden kryptographischen Schlüssel 106, der die Berechtigungen darstellt, der Entität bereitstellt.
  • Typischerweise ist die Speichervorrichtung 130 mit einem Host-System 120 verbunden, um ein Endgerät 150 in einem Kommunikationsnetzwerk 110, beispielsweise dem Internet, zu bilden. Im Allgemeinen ist das Endgerät 150 eine Rechenvorrichtung. Beispiele des Endgeräts 150 beinhalten einen Personal Computer, einen mobilen Computer, einen Personal Media Player, einen Tablet-Computer, ein Smartphone, einen Smart-TV, einen Smart-Lautsprecher, eine intelligente Vorrichtung, eine IoT-Vorrichtung (Internet der Dinge) usw.
  • Die Speicherzellen 103 der Speichervorrichtung 130 können die Speicherplatz-/Speicherkapazität für das Host-System 120 bereitstellen, um Anweisungen und Daten für die Implementierung der Funktionalität des Endgeräts 150 zu speichern. Beispielsweise ist die Verarbeitungsvorrichtung 118 des Host-Systems 120 so konfiguriert, dass sie Anweisungen ausführt, die aus der Speichervorrichtung 130 zum Booten und zum Durchführen von Operationen geladen wurden.
  • Das Host-System 120 kann eine Netzwerk-Schnittstelle 114 oder eine andere Kommunikationsvorrichtung beinhalten, um mit einem oder mehreren Client-Servern 141, ..., 143 zu kommunizieren, um Dienste von den Client-Servern 141, ..., 143 zu empfangen.
  • Eine Anforderung für Dienste, die vom Endgerät 150 an einen Client-Server 141 gesendet wird, kann Identitätsdaten beinhalten, die von der Kryptographie-Engine 107 der Speichervorrichtung 130 erzeugt werden. Der Client-Server 141 kann den Sicherheitsserver 140 anfordern, den in den Identitätsdaten beinhalteten Verifizierungscode zu überprüfen.
  • Zusätzlich zu den Diensten zur Authentifizierung der Identität der Speichervorrichtung 130 kann der Sicherheitsserver 140 Sicherheitsdienste zum Verwalten von Berechtigungen zum Betreiben der Speichervorrichtung 130, zum Konfigurieren oder Ändern der Sicherheitsmerkmale oder -einstellungen der Speichervorrichtung 130, zum Erkennen verlorener/gestohlener Vorrichtungen, zum Deaktivieren verlorener/gestohlener Vorrichtungen usw. bieten.
  • Die Speichervorrichtung 130 und/oder das Endgerät 150 können eine eindeutige Identifizierung 111 aufweisen, die nicht geheim ist. Die eindeutige Identifizierung 111 kann verwendet werden, um die Speichervorrichtung 130 und/oder das Endgerät 150 in einer Population von Speichervorrichtungen und/oder Endgeräten eindeutig zu identifizieren.
  • Beispielsweise kann die eindeutige Identifizierung 111 der Speichervorrichtung 130 eine Herstellernummer (MPN) der Speichervorrichtung 130 und/oder eine Seriennummer der Speichervorrichtung 130 beinhalten. Beispielsweise kann die eindeutige Identifizierung 111 der Speichervorrichtung 130 einen öffentlichen Schlüssel in einem Paar asymmetrischer kryptographischer Schlüssel beinhalten, die zumindest teilweise basierend auf dem eindeutigen Vorrichtungsschlüssel erzeugt werden.
  • Um zu authentifizieren, dass die Speichervorrichtung 130 und/oder das Endgerät 150 die durch die eindeutige Identifizierung 111 dargestellte Identität aufweisen, überprüft der Sicherheitsserver 140 eine Nachricht, die die eindeutige Identifizierung 111 (und andere Daten 127) enthält, über einen Verifizierungscode der Nachricht, die unter Verwendung eines geheimen kryptographischen Schlüssels 105 der Speichervorrichtung signiert wurde. Der geheime kryptographische Schlüssel 105 in der Speichervorrichtung 130 wird unter Verwendung des eindeutigen Vorrichtungsschlüssels 101 in der Speichervorrichtung erzeugt; und der entsprechende kryptographische Schlüssel 106, der zum Überprüfen eines mit dem geheimen kryptographischen Schlüssel 105 der Speichervorrichtung 130 signierten Verifizierungscodes verwendet wird, wird in dem Sicherheitsserver 140 aus dem entsprechenden eindeutigen Vorrichtungsschlüssel 101 erzeugt.
  • Der geheime kryptographische Schlüssel 105 der Speichervorrichtung 130, der zum Nachweis der Vorrichtungsidentität der Speichervorrichtung 130 verwendet wird, kann nicht nur basierend auf dem eindeutigen Vorrichtungsschlüssel 101, sondern auch auf den der Speichervorrichtung 130 zugänglichen Vorrichtungsinformationen 121 erzeugt werden.
  • Die Vorrichtungsinformationen 121 können beispielsweise einen Hash-Wert von Anweisungen und/oder Daten beinhalten, die in den Speicherzellen 103 gespeichert sind. Ferner können die Vorrichtungsinformationen 121 in den Speicherzellen 103 gespeicherte Trace-Daten beinhalten, um die Speichervorrichtung 130 und/oder das Endgerät 150 während der Anordnung der Komponenten zum Errichten des Endgeräts 150 zu personalisieren/individualisieren. Ferner können die Vorrichtungsinformationen 121 Identifizierungsinformationen anderer Komponenten in dem Endgerät 150 beinhalten, wie z. B. eine Identifizierung der Steuerung 116, eine Identifizierung der Verarbeitungsvorrichtung 118, eine Identifizierung der Netzwerk-Schnittstelle 114, eine Identifizierung zusätzlicher Software oder Datenpakete des Endgeräts 150, die nicht in der Speichervorrichtung 130 gespeichert sind, und/oder eine Identifizierung und/oder einen Hash-Wert der Firmware, die für die Steuerung/den Betrieb der Speichervorrichtung 130 konfiguriert ist. Während des Bootens können die Identifizierungsdaten als Vorrichtungsinformationen 121 gesammelt werden, die zum Erzeugen des geheimen kryptographischen Schlüssels 105 in der Speichervorrichtung 130 verwendet werden.
  • In einem Registrierungsprozess, wenn die Speichervorrichtung 130 so konfiguriert ist, dass sie die Vorrichtungsinformationen 121 aufweist, wird eine Kopie der Vorrichtungsinformationen 121 zum Sicherheitsserver 140 hochgeladen, um sie der eindeutigen Identifizierung 111 der Speichervorrichtung 130 und/oder dem Endgerät 150 zuzuordnen. Durch die Registrierung der Vorrichtungsinformationen 121 kann die Identität der Speichervorrichtung 130 mit der Daten-, Software- und/oder Hardwarekonfiguration verknüpft werden, die durch die Kombination des eindeutigen Vorrichtungsschlüssels 101 mit den Vorrichtungsinformationen 121 dargestellt wird.
  • 2 veranschaulicht die Erzeugung von Identitätsdaten in einer Speichervorrichtung mit integrierter Schaltung gemäß einer Ausführungsform. Beispielsweise kann die Technik von 2 in dem Computersystem implementiert werden von 1.
  • In 2 wird die kryptographische Engine 107 einer Speichervorrichtung 130 (z. B. wie in 1) verwendet, um zumindest einen geheimen Schlüssel 137 unter Verwendung ihres eindeutigen Vorrichtungsschlüssels 101 und der Vorrichtungsinformationen 121 zu erzeugen.
  • Wenn beispielsweise asymmetrische Kryptographie verwendet wird, ist der geheime Schlüssel 137 ein privater Schlüssel eines kryptographischen Schlüsselpaares 135. Ein zugeordneter öffentlicher Schlüssel 139 wird zusammen mit dem privaten Schlüssel unter Verwendung der Kryptographie-Engine 107 erzeugt.
  • Alternativ kann, wenn symmetrische Kryptographie verwendet wird, der geheime Schlüssel 137 ohne einen öffentlichen Schlüssel 139 und ohne das Schlüsselpaar 135 erzeugt und verwendet werden.
  • In einigen Implementierungen werden mehrere Schlüsselpaare 135 erzeugt und verwendet. Wenn beispielsweise ein Verfahren von Device Identity Composition Engine (DICE) und Robust Internet-of-Things (RIoT) verwendet wird, wird ein erstes Paar asymmetrischer Schlüssel als Vorrichtungsidentifizierungsschlüssel und ein zweites Paar asymmetrischer Schlüssel als Alias-Schlüssel bezeichnet. Der private Vorrichtungsidentifizierungsschlüssel kann verwendet werden, um die Authentizität der Alias-Schlüssel zu zertifizieren, und dann sofort aus der Speichervorrichtung 130 und/oder dem Endgerät 150 zu löschen und zu bereinigen, um seine Geheimhaltung zu gewährleisten, insbesondere wenn das Erzeugen oder Verwenden des privaten Vorrichtungsidentifizierungsschlüssels zumindest teilweise in dem Host-System 120 erfolgt. Die Alias-Schlüssel können zur Authentifizierung bei weiteren Transaktionen und/oder Kommunikationen verwendet werden. Der private Vorrichtungsidentifizierungsschlüssel kann beispielsweise beim Booten erzeugt und zum Signieren von Zertifikaten verwendet werden, beispielsweise eines Zertifikats des öffentlichen Alias-Schlüssels, und wird anschließend gelöscht. Nachdem die Identität der Speichervorrichtung 130 und die Authentifizierung des öffentlichen Alias-Schlüssels unter Verwendung der Zertifikate, die mit dem privaten Vorrichtungsidentifizierungsschlüssel als geheimem Schlüssel 137 signiert wurden, überprüft oder bestätigt wurden, kann der private Alias-Schlüssel als geheimer Schlüssel 137 der Speichervorrichtung 130 in nachfolgenden Operationen verwendet werden, bis das Endgerät 150 neu startet.
  • Die in den Speicherzellen 103 gespeicherten Daten 123 für die Vorrichtungsinformationen 121 können beispielsweise einen Anweisungssatz (z. B. Software, Firmware, Betriebssystem, Anwendung) beinhalten, die von der Verarbeitungsvorrichtung 118 des Host-Systems 120, mit dem die Host-Schnittstelle 147 der Speichervorrichtung 130 verbunden ist, ausgeführt werden sollen.
  • Die Daten 123 können beispielsweise einen kryptografischen Hash-Wert des Anweisungssatzes beinhalten. Ein bekannter Hash-Wert des Anweisungssatzes kann beispielsweise in den Speicherzellen 103 gespeichert werden; und der aktuelle Hash-Wert des Anweisungssatzes kann zum Vergleich mit dem bekannten Hash-Wert berechnet werden. Wenn die beiden Hash-Werte miteinander übereinstimmen, wird die Integrität des Anweisungssatzes überprüft, und der Hash-Wert der Integrität des Anweisungssatzes kann als Teil der Vorrichtungsinformationen 121 verwendet werden, um den geheimen Schlüssel 137 zu berechnen.
  • Alternativ kann der aktuelle Hash-Wert des in den Speicherzellen 103 gespeicherten Anweisungssatzes direkt für die Berechnung des geheimen Schlüssels 137 verwendet werden. Wenn die Anweisungen Änderungen aufweisen (z. B. aufgrund von Datenkorruption und/oder Manipulation oder Hacking), schlägt die Überprüfung des geheimen Schlüssels 137 durch den Sicherheitsserver 140 fehl.
  • Wahlweise kann der Datensatz 123 eine Identifizierung des Anweisungssatzes beinhalten, wie beispielsweise einen Hash-Wert des Quellcodes der Anweisungen, einen Namen des durch die Anweisungen dargestellten Software-/Firmware-Pakets, eine Versionsnummer und/oder ein Veröffentlichungsdatum des Pakets usw.
  • Wahlweise können die Daten 123 Trace-Daten beinhalten, die in den Speicherzellen 103 während des Prozesses des Errichtens und/oder Anpassens des Endgeräts 150, das die Speichervorrichtung 130 beinhaltet, gespeichert wurden. Wenn beispielsweise die Speichervorrichtung 130 in eine Komponentenvorrichtung (z. B. ein Speicher-Subsystem) eingebaut wird, wird ein Teil von Trace-Daten, die den Hersteller der Komponentenvorrichtung, das Modell der Komponentenvorrichtung und/oder die Seriennummer der Komponentenvorrichtung darstellen, in den Speicherzellen 103 als Teil der Vorrichtungsinformationen 121 gespeichert. Anschließend, wenn die Komponentenvorrichtung in das Endgerät 150 eingebaut wird, wird ein Teil der Trace-Daten in die Speicherzellen als Teil der Vorrichtungsinformationen 121 hinzugefügt. Ferner können Trace-Daten in die Speicherzellen 103 als Teil der Vorrichtungsinformationen 121 hinzugefügt werden, um den Verlauf der Speichervorrichtung 130 zur Individualisierung der Identität der Speichervorrichtung 130 zu reflektieren.
  • Wahlweise können die Vorrichtungsinformationen 121 ferner Daten 125 beinhalten, die in dem Host-System 120 empfangen wurden, mit dem die Host-Schnittstelle 147 der Speichervorrichtung 130 verbunden ist.
  • Das Endgerät 150 kann beispielsweise das Host-System 120 und die Speichervorrichtung 130 aufweisen. Einige der Komponenten des Host-Systems 120 können entfernt oder ersetzt werden. Beim Hochfahren des Endgeräts 150 wird ein Abschnitt der in der Speicherzelle 103 gespeicherten Anweisungen ausgeführt, um Daten 125 über die Komponenten zu sammeln, die beim Booten in dem Host-System 120 vorliegen. Somit können die Vorrichtungsinformationen 121 eine bestimmte Konfiguration von Software/Daten und Hardwarekombinationen der Speichervorrichtung 130 und/oder des Endgeräts 150 darstellen. Der geheime Schlüssel 137, der basierend auf den Vorrichtungsinformationen 121 und dem eindeutigen Vorrichtungsschlüssel 101 erzeugt wird, stellt die Identität der Speichervorrichtung 130 mit der jeweiligen Konfiguration dar.
  • Um die Identität der Speichervorrichtung 130 und/oder des Endgeräts 150 darzustellen, erzeugt die Kryptographie-Engine 107 einen Verifizierungscode 133 aus einer Nachricht 131 und dem geheimen Schlüssel 137.
  • Wie vorstehend erläutert, kann der Verifizierungscode 133 des geheimen Schlüssels 137 und der Nachricht 131 unter Verwendung verschiedener Techniken konstruiert und/oder überprüft werden, beispielsweise eines Hash-Digest, einer digitalen Signatur oder eines Hash-basierten Nachrichtenauthentifizierungscodes, symmetrischer Kryptographie und/oder asymmetrischer Kryptographie. Somit ist der Verifizierungscode 133 nicht auf eine bestimmte Implementierung beschränkt.
  • Wahlweise kann die Nachricht 131 eine Benutzeridentifizierung beinhalten, beispielsweise einen Namen, eine E-Mail-Adresse, einen registrierten Benutzernamen oder eine andere Kennung eines Besitzers oder autorisierten Benutzers des Endgeräts 150, in dem die Identitätsdaten 113 erzeugt werden.
  • Wahlweise kann ein Teil der Nachricht 131 Informationen in verschlüsselter Form bereitstellen. Die Informationen können beispielsweise mit einem öffentlichen Schlüssel des Sicherheitsservers 140 verschlüsselt werden, sodass ein Dritter keinen Zugriff auf die Informationen hat.
  • Die Nachricht 131 kann ein Zertifikat sein, in dem die eindeutige Identifizierung 111 der Speichervorrichtung 130 und/oder des Endgeräts 150 vorliegt. Die Nachricht 131 kann ferner andere Daten 127, beispielsweise einen in der Speichervorrichtung 130 verwalteten Zählerwert, eine kryptographische Nonce und/oder andere Informationen in Bezug auf die Überprüfung der Identitätsdaten 113 enthalten. Die Speichervorrichtung 130 kann den Zählerwert monoton erhöhen, um Identitätsdaten, die niedrigere Abschnitte aufweisen, ungültig zu machen, um Wiederholungsangriffe zu verhindern.
  • In einigen Implementierungen können die Daten 127 einen Teil der Vorrichtungsinformationen 121 beinhalten, die zum Erzeugen des geheimen Schlüssels 137 verwendet werden.
  • In einigen Implementierungen ist der geheime Schlüssel 137 ein privater Alias-Schlüssel in einem asymmetrischen Schlüsselpaar. Die Daten 127 beinhalten ein Zertifikat, in dem der entsprechende öffentliche Alias-Schlüssel des asymmetrischen Schlüsselpaares vorliegt. Das Zertifikat, das den öffentlichen Alias-Schlüssel darstellt, wird unter Verwendung eines Vorrichtungsidentifizierungsschlüssels der Speichervorrichtung 130 signiert. Der öffentliche Alias-Schlüssel kann verwendet werden, um den Verifizierungscode 133 für die Nachricht 131 und den privaten Alias-Schlüssel, der als geheimer Schlüssel 137 verwendet wird, zu überprüfen. Sobald der Sicherheitsserver 140 das Zertifikat überprüft hat, das den öffentlichen Alias-Schlüssel darstellt, der unter Verwendung des Vorrichtungsidentifizierungsschlüssels der Speichervorrichtung 130 signiert und als Teil der Daten 127 bereitgestellt wurde, kann der Sicherheitsserver 140 den öffentlichen Alias-Schlüssel verwenden, um den Verifizierungscode 133 zu überprüfen, der unter Verwendung des privaten Alias-Schlüssels als geheimer Schlüssel 137 signiert wurde. In einer solchen Implementierung kann der Sicherheitsserver 140 den in der Nachricht 131 bereitgestellten öffentlichen Alias-Schlüssel verwenden, um den Verifizierungscode 133 zu überprüfen, ohne das Alias-Schlüsselpaar neu zu erzeugen; und der Speicher 130 kann das Alias-Schlüsselpaar 135 unter Verwendung von Daten erzeugen, die dem Sicherheitsserver 140 nicht bekannt sind.
  • Das Zertifikat, das den öffentlichen Alias-Schlüssel darstellt, kann wie in 2 erzeugt und überprüft werden, wobei der geheime Schlüssel 137 der Vorrichtungsidentifizierungsschlüssel ist, der unter Verwendung der Vorrichtungsinformationen 121 und des eindeutigen Vorrichtungsschlüssels 101 erzeugt wird. Wahlweise stellt die Speichervorrichtung 130 dem Sicherheitsserver 140 zunächst das Zertifikat bereit, das den öffentlichen Alias-Schlüssel aufweist. Anschließend kann die Speichervorrichtung 130 den privaten Alias-Schlüssel als geheimen Schlüssel 137 verwenden, ohne den öffentlichen Alias-Schlüssel in der Nachricht 131 zu beinhalten, oder ohne das Zertifikat des öffentlichen Alias-Schlüssels in der Nachricht 131 zu beinhalten.
  • Die Daten 127 in der Nachricht 131, die zum Erzeugen des Verifizierungscodes 133 signiert wurde, können eine Herausforderung beinhalten. Um beispielsweise die Speichervorrichtung 130 zu bewegen, zu demonstrieren, dass sie im Besitz eines geheimen Schlüssels 137 ist, kann ein zufälliges Datenelement als Teil der zu signierenden Daten 127 unter Verwendung des geheimen Schlüssels 137 dargestellt werden. In einigen Implementierungen kann ein monoton erhöhter Zählerwert als Herausforderung verwendet werden.
  • Ferner kann die Überprüfung der Identität der Speichervorrichtung 130 das Verwenden mehrerer geheimer Schlüssel und Verifizierungscodes beinhalten, die unter Verwendung der geheimen Schlüssel signiert werden. Ein geheimer Vorrichtungsidentifizierungsschlüssel kann beispielsweise verwendet werden, um zunächst die Authentifizierung eines geheimen Alias-Schlüssels und die Identität der Speichervorrichtung 130 herzustellen; und anschließend kann der geheime Alias-Schlüssel verwendet werden, um die Authentifizierung der Identität der Speichervorrichtung 130 zu überprüfen. Im Allgemeinen können der geheime Vorrichtungsidentifizierungsschlüssel und der geheime Alias-Schlüssel auf asymmetrischer Kryptographie oder symmetrischer Kryptographie basieren, da der Sicherheitsserver 140 die entsprechenden kryptographischen Schlüssel mit der Speichervorrichtung 130 erzeugen kann.
  • Zur Verbesserung der Sicherheit verwendet die Speichervorrichtung 130 keine Verarbeitungsleistung außerhalb der Speichervorrichtung 130, um ihre Kopie des geheimen Schlüssels 137 zu erzeugen, und übermittelt den geheimen Schlüssel 137 nicht außerhalb der Speichervorrichtung 130. Die Erzeugung und Verwendung des geheimen Schlüssels 137 wird unter Verwendung der Logikschaltung der Kryptographie-Engine 107 durchgeführt, die in der Speichervorrichtung 130 versiegelt ist.
  • Alternativ kann ein Teil der Operationen zum Erzeugen und Verwenden des geheimen Schlüssels 137 über einen Anweisungssatz, der in den Speicherzellen 103 gespeichert und in die Verarbeitungsvorrichtung 118 des Host-Systems 120 zum Ausführen geladen wird, implementiert werden. Zur Verbesserung der Sicherheit wird der geheime Schlüssel 137 nicht über die Host-Schnittstelle 147 im Klartext kommuniziert; und die Anweisungen können so konfiguriert sein, dass der geheime Schlüssel 137 nach dem Erzeugen und/oder nach dem Verwenden aus dem Host-System 120 gelöscht wird.
  • Die Identitätsdaten 113 können in Reaktion auf das Einschalten der Speichervorrichtung 130, in Reaktion auf eine in der Host-Schnittstelle 147 empfangene Anforderung und/oder in Reaktion auf das Hochfahren des Endgeräts 150 erzeugt werden (z. B. durch Ausführen eines in den Speicherzellen 103 gespeicherten Bootloaders). Die Daten 127 können einen Zählwert beinhalten, der in der Speichervorrichtung 130 aufrechterhalten wird. Der Zählwert erhöht sich, wenn die Operation zum Erzeugen der Identitätsdaten 113 durchgeführt wird. Somit weist eine Version der Identitätsdaten 113 einen Zählwert auf, der frühere Versionen der Identitätsdaten 113 ungültig macht, die Zählwerte aufweisen, die unter dem Zählwert liegen.
  • 3 veranschaulicht eine Technik zum Steuern der Ausführung eines Befehls in einer Speichervorrichtung gemäß einer Ausführungsform. Die Technik von 3 kann beispielsweise in dem Computersystem von 1 implementiert sein und verwendet werden mit der Technik von 2.
  • In 3, wenn die Steuerung 116 des Host-Systems 120 einen Befehl 155 an die Host-Schnittstelle 147 der Speichervorrichtung 130 sendet, bestimmt die Zugriffssteuerung 109, ob der Absender des Befehls 155 die Berechtigung hat, die Speichervorrichtung 130 aufzufordern, den Befehl 155 auszuführen.
  • Ein kryptographischer Schlüssel 145 ist zum Darstellen der Berechtigung konfiguriert. Ein Absender des Befehls 155 kann einen Verifizierungscode 153 aus dem kryptographischen Schlüssel 145 und einer Nachricht 151 erzeugen, die den Befehl 155 enthält.
  • Wie vorstehend erläutert, kann der Verifizierungscode 153 des kryptographischen Schlüssels 145 und der Nachricht 151 unter Verwendung verschiedener Techniken konstruiert und/oder überprüft werden, beispielsweise eines Hash-Digest, einer digitalen Signatur oder eines Hash-basierten Nachrichtenauthentifizierungscodes, symmetrischer Kryptographie und/oder asymmetrischer Kryptographie. Somit ist der Verifizierungscode 153 nicht auf eine bestimmte Implementierung beschränkt.
  • Die Zugriffssteuerung 109 verwendet einen entsprechenden Zugriffskontrollschlüssel 149, um den Verifizierungscode 153 zu überprüfen, der an die Host-Schnittstelle 147 für den Befehl 155 übermittelt wurde. Die Zugriffssteuerung 109 verwendet die Kryptographie-Engine 107, um ein Überprüfungsergebnis 159 der empfangenen Nachricht 151 und des empfangenen Verifizierungscodes 153 zu erzeugen. Basierend auf dem Validierungsergebnis 159 kann die Zugriffssteuerung 109 selektiv die Ausführung des Befehls 155 in der Speichervorrichtung 130 erlauben oder die Ausführung des Befehls 155 blockieren.
  • Der Zugriffskontrollschlüssel 149 kann beispielsweise einer der kryptographischen Schlüssel 105 sein, die in der Speichervorrichtung 130 gespeichert sind. Unterschiedliche Zugriffskontrollschlüssel können verwendet werden, um unterschiedliche Berechtigungen zum Ausführen verschiedener Befehle und/oder zum Ausführen eines Befehls, der auf unterschiedlichen Abschnitten der Speicherzellen 103 betrieben wird, zu steuern.
  • Der kryptographische Schlüssel 145 kann beispielsweise in dem Sicherheitsserver 140 gespeichert sein, um die zugeordnete Berechtigung an den Sicherheitsserver 140 bereitzustellen.
  • In einer Ausführungsform ist der Sicherheitsserver 140 konfiguriert, den Verifizierungscode 153 im Namen einer Entität zu erzeugen, in Reaktion darauf, dass die Entität den Verifizierungscode 153 zum Ausführen des Befehls 155 in der Speichervorrichtung 130 anfordert.
  • Wahlweise wird der kryptographische Schlüssel 145 bei der Überprüfung der Identitätsdaten 113 erzeugt, die unter Verwendung des geheimen Schlüssels 137 erstellt wurden; und ein Geheimcode (z. B. der geheime Schlüssel 137), der zwischen der Speichervorrichtung 130 und dem Sicherheitsserver 140 bekannt ist, ermöglicht das Erzeugen eines Sitzungsschlüssels als kryptographischer Schlüssel 145, um die Berechtigungen zum Ausführen ausgewählter Befehle in der Speichervorrichtung 130 während einer Kommunikationssitzung mit zeitlicher Begrenzung darzustellen. Wahlweise kann der Zeitraum, in dem die Vorrichtung eingeschaltet ist, als Sitzungsbegrenzer verwendet werden, sodass bei einem nächsten Einschaltvorgang ein neuer Zählwert erzeugt wird, um das Erzeugen eines neuen Sitzungsschlüssels zu veranlassen.
  • Der kryptographische Schlüssel 145 kann so konfiguriert sein, dass er nach der Überprüfung der Identitätsdaten 113 und der Einrichtung des Sitzungsschlüssels für eine kurze Zeit gültig ist. Nachdem der Sicherheitsserver 140 überprüft hat, dass die Entität berechtigt ist, den Befehl 155 in der Speichervorrichtung 130 auszuführen, kann der Sicherheitsserver 140 den Verifizierungscode 153 erzeugen und ihn der Entität bereitstellen. Die Entität kann dann die Nachricht 151 und den Verifizierungscode 153 an die Host-Schnittstelle 147 senden. Sobald die Zugriffssteuerung 109 der Speichervorrichtung 130 unter Verwendung des kryptographischen Schlüssels 107 und des Zugriffskontrollschlüssels 149 bestimmt, dass der Verifizierungscode 153 gültig ist, erlaubt das Validierungsergebnis 159 der Speichervorrichtung 130, den empfangenen Befehl 155 auszuführen; andernfalls kann die Zugriffssteuerung 109 den empfangenen Befehl 155 zurückweisen oder ignorieren.
  • In einer anderen Ausführungsform kann der Sicherheitsserver 140, nachdem er den Zugriffskontrollschlüssel 149 in der Speichervorrichtung 130 konfiguriert hat, der Entität den kryptographischen Schlüssel 145 bereitstellen, der die Berechtigung zum Ausführen des Befehls 155 in der Speichervorrichtung 130 darstellt.
  • Die Nachricht 151 kann Daten 157 beinhalten, die Einschränkungen für die Anforderung zum Ausführen des Befehls 155 darstellen.
  • Der Datenwert 157 kann beispielsweise einen Ausführungszählwert beinhalten, der in der Speichervorrichtung 130 aufrechterhalten wird, sodass Verifizierungscodes, die für niedrigere Zählungen erzeugt werden, ungültig sind.
  • Die Daten 157 können beispielsweise eine kryptografische Nonce beinhalten, die insbesondere für eine spezifische Instanz einer Anforderung zum Ausführen des Befehls 155 eingerichtet wurde, sodass der Verifizierungscode 153 nicht für eine andere Instanz wiederverwendet werden kann.
  • Die Daten 157 können beispielsweise ein Zeitfenster beinhalten, in dem der Verifizierungscode 153 überprüft wird.
  • Die Daten 157 können beispielsweise die Identifizierung eines Speicherbereichs beinhalten, in dem der Befehl 155 zum Ausführen erlaubt ist.
  • Die Daten 157 können beispielsweise eine Art von Operationen beinhalten, die zum Ausführen des Befehls 155 in der Speichervorrichtung 130 erlaubt sind.
  • 4 veranschaulicht eine Technik zum Überprüfen einer Integrität von in einem Speicher gespeicherten Daten gemäß einer Ausführungsform. Der Technik von 4 kann beispielsweise in der Speichervorrichtung 130 von 1 verwendet werden und in Verbindung mit den Techniken von 2 and/or 3.
  • In 4 speichert die Speichervorrichtung 130 nicht nur den Inhalt 161 in den Speicherzellen 103, sondern auch einen Hash-Wert 163 des Inhalts 161. Um den Integritätsstatus 165 des Inhalts 161 zu bestimmen, wendet die Kryptographie-Engine 107 eine kryptographische Hash-Funktion auf den Inhalt 161 an, um den aktuellen Hash-Wert des Inhalts 161 zu erzeugen; und die Kryptographie-Engine 107 vergleicht den aktuellen Hash-Wert und den gespeicherten Hash-Wert 163, um zu bestimmen, ob sie gleich sind. Wenn ja, wird die Integrität des Inhalts 161 entsprechend dem gespeicherten Hash-Wert 163 bestätig
  • Der Hash-Wert 163 kann als Teil der Vorrichtungsinformationen 121 gespeichert werden, die zum Erzeugen des geheimen Schlüssels 137 für die Überprüfung der Identität der Speichervorrichtung 130 verwendet werden.
  • Der Inhalt 161 und der Hash-Wert 163 werden in unterschiedlichen Abschnitten der Speichervorrichtung 130 gespeichert. Die Zugriffssteuerung 109 stellt verschiedene Berechtigungsstufen für den Zugriff auf den Inhalt 161 und den Hash-Wert 163 bereit und/oder erzwingt sie.
  • Ein Hersteller des Endgeräts 150 kann beispielsweise den Inhalt 161 in den Speicherzellen 103 speichern, sodass die Verarbeitungsvorrichtung 118 des Host-Systems 120 im Endgerät 150 ein Programm oder eine Routine in dem Inhalt 161 ausführen kann, um eine entwickelte Funktion des Endgeräts 150 bereitzustellen. Ferner kann der Hersteller und/oder der Sicherheitsserver 140 den Hash-Wert 163 in einem separaten Abschnitt für die Integritätsprüfung speichem. Ein Endbenutzer des Endgeräts 150 kann auf den Inhalt 161 in den Speicherzellen zugreifen und ihn verwenden, kann jedoch nicht auf den Hash-Wert 163 zugreifen. Wenn der Inhalt 161 beschädigt oder manipuliert ist, kann die Kryptographie-Engine 107 die Änderung erkennen und einen Integritätsstatus 165 erzeugen, um die Zugriffssteuerung 109 zu veranlassen, die Verwendung des Inhalts 161 zu verhindern. Wenn der Hersteller eine aktualisierte Version des Inhalts 161 (oder einen Ersatz) aufweist, kann er die Aktualisierung in den Speicherzellen 103 durchführen und einen Befehl 155 mit einem Verifizierungscode 153 zum Aktualisieren des Hash-Werts 163 erteilen. Wahlweise kann der Sicherheitsserver 140 den Verifizierungscode 153 in Reaktion auf eine Anforderung durch den Hersteller erzeugen.
  • Die Vorrichtungsinformationen 121 und die kryptographischen Schlüssel 105 in der Speichervorrichtung 130 können in einem gesicherten Bereich in der Speichervorrichtung 130 gespeichert und über die Zugriffssteuerung 109 durch Berechtigungen des Besitzers geschützt werden, die durch einen in dem Sicherheitsserver 140 gespeicherten kryptographischen Schlüssel 106 dargestellt werden.
  • Verschiedene Geheimcodes (z. B. eindeutige Vorrichtungsschlüssel 101, geheimer Schlüssel 137) und Inhalte (z. B. Vorrichtungsinformationen 121, Inhalte 161) können auf unterschiedlichen Sicherheitsstufen und/oder mit unterschiedlichen Sicherheitsstrategien geschützt werden, um Sicherheit und Nutzen auszugleichen.
  • Der eindeutige Vorrichtungsschlüssel 101 kann in der Speichervorrichtung 130 in der höchsten Sicherheitsstufe geschützt werden. Sobald beispielsweise die Speichervorrichtung 130 eine gesicherte Herstellungseinrichtung für Speichervorrichtungen verlässt und/oder nach Fertigstellung der Operationen zur Herstellung der Speichervorrichtung 130, ist der eindeutige Vorrichtungsschlüssel 101 nicht mehr über einen Befehl an die Host-Schnittstelle 147 (und/oder eine beliebige Schnittstelle der Speichervorrichtung 130) veränderbar. Vorzugsweise ist der eindeutige Vorrichtungsschlüssel 101 nur für die Kryptographie-Engine 107 während des Erzeugens der geheimen Schlüssel (z. B. 137) zugänglich, die zum Darstellen der Identität der Speichervorrichtung 130 und/oder des Endgerätes 150 verwendet werden. Der eindeutige Vorrichtungsschlüssel 101 kann beispielsweise so konfiguriert sein, dass er beim Hochfahren des Endgeräts 150 nur für eine begrenzte Zeit verfügbar ist.
  • So kann beispielsweise ein Vorrichtungsidentifizierungsschlüssel gesichert werden, indem seine Verwendung auf ein Minimum beschränkt wird. Ein Alias-Identifizierungsschlüssel kann besser gesichert werden, wenn er häufiger ersetzt wird als der Vorrichtungsidentifizierungsschlüssel. Es können verschiedene Operationen und/oder Berechtigungen zum Ersetzen des Vorrichtungsidentifizierungsschlüssels und des Alias-Identifizierungsschlüssels verwendet werden.
  • 5 veranschaulicht Sicherheitsdienste eines Sicherheitsservers, die einem Client-Server basierend auf Sicherheitsmerkmalen bereitgestellt werden, die in einer Speichervorrichtung gemäß einer Ausführungsform implementiert sind.
  • So können beispielsweise die in 5 veranschaulichten Sicherheitsdienste in dem Computersystem von 1 basierend auf den in den 2, 3, und/oder 4 veranschaulichten Sicherheitsmerkmalen implementiert werden.
  • In 5 ist ein Client-Server 141 konfiguriert, um Dienste für Rechenvorrichtungen bereitzustellen, wie z. B. ein Endgerät 150, das eine Speichervorrichtung 130 aufweist, die mit einem Host-System 120 verbunden ist, wie in 1.
  • Um einen Dienst von dem Client-Server 141 anzufordern, fordert das Host-System 120 (z. B. führt Anweisungen aus, die von der Speichervorrichtung 130 abgerufen werden) Identitätsdaten 113 in der Speichervorrichtung 130 an. Die Identitätsdaten 113 können beispielsweise auf eine Weise erzeugt werden, wie veranschaulicht in 2.
  • Das Host-System 120 bettet die Identitätsdaten 113 in die an den Client-Server 141 übermittelte Anforderung 171 ein.
  • Um zu bestimmen, ob das Endgerät 150 Anspruch auf Dienste hat, extrahiert der Client-Server 141 die Identitätsdaten 113 aus der Anforderung 171 und erzeugt eine Anforderung 173 an den Sicherheitsserver 140, Sicherheitsdienste basierend auf den Identitätsdaten 113 bereitzustellen.
  • Der Sicherheitsserver 140 kann eine Überprüfung der Identitätsdaten 113 durchführen, bestimmen, ob die Authentizität der Speichervorrichtung 130 und/oder des Endgeräts 150 gegeben ist, und ein Ergebnis in der Antwort 174 an den Client-Server 141 bereitstellen. Basierend auf dem Ergebnis kann der Client-Server 141 eine Antwort 172 an das Host-System 120 bereitstellen.
  • In der Antwort 174 kann beispielsweise angegeben werden, ob die Identitätsdaten 113 von einer gefälschten Vorrichtung oder von einer Vorrichtung stammen, bei der die Daten 123 oder der Inhalt 161, die für die Identität des Endgeräts 150 und/oder der Speichervorrichtung 130 relevant sind, verändert, verfälscht oder manipuliert wurden, oder ob es sich um eine verlorene oder gestohlene Vorrichtung handelt.
  • In einigen Implementierungen kann die Anforderung 173 einen Befehl 155 identifizieren, der in der Speichervorrichtung 130 ausgeführt werden soll. Nach Überprüfen der Identitätsdaten 113 und Überprüfen der Berechtigung des Client-Servers 141 und/oder des Endgeräts 150, den Befehl 155 zum Ausführen in der Speichervorrichtung 130 anzufordern, kann der Sicherheitsserver 140 einen Verifizierungscode 153 für den Befehl 155 unter Verwendung des kryptographischen Schlüssels 145 erzeugen und den Verifizierungscode 153 in der Antwort 174 an den Client-Server 141 bereitstellen. Unter Verwendung des Sicherheitsdiensts kann der Client-Server 141 von den Sicherheitsbelastungen entlastet werden, die mit der Verwaltung der Berechtigungen und dem kryptographischen Schlüssel 145, der die Berechtigungen darstellt, assoziiert sind.
  • Wahlweise kann die Antwort 174 den kryptographischen Schlüssel 145 beinhalten, der die Berechtigungen zum Ausführen des Befehls 155 in der Speichervorrichtung 130 aufweist. Für reduzierte Sicherheitsbelastungen für den Client-Server 141 kann der kryptographische Schlüssel 145 so konfiguriert sein, dass er in einem kurzen Zeitraum abläuft.
  • Wahlweise kann, wenn bestimmt wird, dass die Identitätsdaten 113 einer verlorenen oder gestohlenen Vorrichtung zugeordnet sind, die Antwort 174 einen Befehl 155 und/oder dessen Verifizierungscode 153 beinhalten, sodass, wenn der Befehl 155 in der Speichervorrichtung 130 ausgeführt wird, die Zugriffssteuerung 109 zumindest einige Funktionen deaktivieren kann, die für das Host-System 120 über die Host-Schnittstelle 147 zugänglich sind.
  • Nach der Ausführung des Befehls 155 in der Speichervorrichtung 130 kann beispielsweise die Zugriffssteuerung 109 so konfiguriert werden, dass der in den Speicherzellen 103 der Speichervorrichtung 130 gespeicherte Bootloader deaktiviert wird.
  • Der Befehl 155 kann beispielsweise die Zugriffssteuerung 109 dazu veranlassen, den Zugriff auf einen oder mehrere Abschnitte der Speicherzellen 103 zu blockieren.
  • Der Befehl 155 kann beispielsweise die Zugriffssteuerung 109 veranlassen, Berechtigungen in Form eines neuen kryptographischen Schlüssels 106, der in dem Sicherheitsserver 140 gespeichert ist, anzufordern, um auf einen oder mehrere Abschnitte der Speicherzellen 103 zuzugreifen.
  • Der Befehl 155 kann beispielsweise die Zugriffssteuerung 109 veranlassen, Daten in einem oder mehreren Abschnitten der Speicherzellen durch Bereinigen eines Entschlüsselungsschlüssels, der für die Entschlüsselung von Daten verwendet wird, die in dem einen oder den mehreren Abschnitten gespeichert sind, zu zerstören.
  • Der Befehl 155 kann beispielsweise veranlassen, dass sich die Speichervorrichtung 130 selbst zerstört und irreversibel beschädigt wird.
  • Die Anweisungen, die aus den Speicherzellen 103 zur Ausführung in dem Host-System 120 abgerufen werden, können eine Routine beinhalten, die den Befehl 155 in Reaktion auf das Bereitstellen der Identitätsdaten 113 an die Speichervorrichtung 130 akzeptiert. In einigen Implementierungen kann der Client-Server 141 eine Verbindung bereitstellen, die es dem Sicherheitsserver 140 ermöglicht, den Befehl 155 an die Speichervorrichtung 130 zur Ausführung zu senden.
  • Die oben erläuterten Techniken können verwendet werden, um neue Wege zum Authentifizieren von Dienstteilnehmern zu implementieren.
  • Eine Speichervorrichtung 130 kann beispielsweise so konfiguriert sein, dass sie in dem Endgerät 150 eine Multi-Faktor-Geräteplattform-Identität mit verbesserter Sicherheit erzeugt. Die Identität kann durch Kombinieren eines eindeutigen Vorrichtungsschlüssels 101 der Speichervorrichtung 130, eines Plattform-Quellcodes, der eine oder mehrere auf dem Endgerät 150 laufende Anwendungen identifiziert, um eine sichere Verbindung zu einem Dienst oder Netzwerk (z. B. einem Client-Server 141 oder 143) herzustellen, und einer eindeutigen Kennung einer Netzwerk-Schnittstelle 114 oder einer Kommunikationsvorrichtung erzeugt werden. Eine eindeutige Kennung kann beispielsweise die Kennung eines Modems sein, das auf dem Endgerät 150 zur Kommunikation in dem Kommunikationsnetzwerk 110 installiert ist. Die Multi-Faktor-Geräteplattform-Identität kann beispielsweise zumindest teilweise auf einer IMEI-Nummer (International Mobile Equipment Identity) für ein Endgerät 150 basieren, das für den Zugriff auf Mobilfunkdienste konfiguriert ist. So kann beispielsweise die Multi-Faktor-Geräteplattform-Identität zumindest teilweise auf einer Fahrzeugidentifikationsnummer (VIN) basieren, wenn das Endgerät 150 ein Fahrzeug einschließt. Eine solche starke Identität kann in Verbindung mit einer Cloudbasierten Teilnehmeridentitätsmodul-(SIM)-Funktion beim Onboarding, Netzwerkzugriff und der Registrierung eines Cloud-Dienstes, beispielsweise eines Mobilfunk-Abonnementdienstes, verwendet werden.
  • Der Sicherheitsserver 140 und die Sicherheitsmerkmale der Speichervorrichtungen (z. B. 130) können eine sichere Technologieplattform für Speichervorrichtungen bereitstellen. Die Plattform kann so konfiguriert werden, dass sie die Authentifizierung von Endgeräten 150 durch Messen von Daten unterstützt, die in den Speicherzellen 103 von sicheren Speichervorrichtungen (z. B. 130) gespeichert sind. Ein zusätzlicher Cybersicherheitsschutz für Endgeräte kann durch die Steuerung des Zugriffs auf die in den Speichervorrichtungen (z. B. 130) gespeicherten Inhalte 161 erreicht werden. Die Zugriffssteuerung kann durch sichere Hardwareherstellungsoperationen und eine Kryptographie-basierte Berechtigungssteuerung implementiert werden, wie oben in Verbindung mit den 1 bis 5 erläutert wurde. Eine Plattform, die mit solchen Speichervorrichtungen (z. B. 130) ausgestattet ist, kann eine ausreichende Cybersicherheitsstufe erreichen, um eine Cloud-basierte virtuelle SIM-Lösung zu unterstützen und die Notwendigkeit einer physischen SIM-Karte in einem Endgerät 150 für den Zugriff auf eine Mobilfunkverbindung zu beseitigen.
  • Die sichere Technologieplattform für Speichervorrichtungen kann eine Kombination aus sicheren Speichervorrichtungen (z. B. 130) und Software beinhalten, die die DICE RIoT-Anforderungen erfüllt, um Identitätsdaten 113 für Endgeräte (z. B. 150) zu erzeugen, die die sicheren Speichervorrichtungen zum Booten verwenden. Diese Identitätsdaten 113 eines Endgeräts 150 werden basierend auf der Identität der Speichervorrichtung 130, die in dem Speicher verwendet wird, um das Endgerät 150 zu booten, und anderen Faktoren erzeugt. Diese Identitätsdaten 113 können während des Onboarding (z. B. zur Registrierung für einen Dienst) an einen Client-Server 141 weitergegeben werden. Der Client-Server 141 kann mit dem Sicherheitsserver 140 kommunizieren, um die Identität des Endgeräts 150 zu bestätigen. Wenn die Identitätsdaten 113 überprüft sind, kann der Client-Server 141 darauf vertrauen, dass das Endgerät 150 authentisch ist und somit einen Dienst für das Endgerät 150 registrieren.
  • Ein derartiger Dienst kann beispielsweise eine Mobilfunkverbindung sein, die herkömmlicherweise auf physischen SIM-Karten registriert ist. Die von der Technologieplattform für sichere Speichervorrichtungen überprüften und durch sicheres Onboarding gesicherten Identitätsdaten 113 können die Identifizierung von Endgeräten (z. B. 150) in einer Weise bereitstellen, die genauso sicher oder sogar sicherer ist als die Verwendung physischer SIM-Karten zur Identifizierung von Endgeräten. Eine Cloud-basierte virtuelle SIM-Karte kann an Identitätsdaten 113 gebunden sein, die von der Technologieplattform für sichere Speichervorrichtungen für die Dauer des Dienstabonnements überprüft wurden.
  • Typischerweise kann ein Teilnehmer von einem Netzwerk (z. B. einem Zahlungskartennetz, einem Mobilfunknetz) über eine Smartcard erkannt werden. Eine herkömmliche Smartcard ist als integrierter Schaltungs-Chip konfiguriert, der in eine Plastikkarte eingebettet ist. Der integrierte Schaltungs-Chip in der Chipkarte speichert Daten, die ein Konto eines Kunden identifizieren, und kann optional Daten speichern, die sich auf die vom Netzwerk bereitgestellten Dienste für das Konto beziehen. Der integrierte Schaltungs-Chip kann über Metallkontakte, die in einem Bereich der Oberfläche der Plastikkarte konfiguriert sind, und/oder einen drahtlosen Transceiver ausgelesen werden.
  • So ist beispielsweise ein Teilnehmeridentifizierungsmodul (SIM) (auch als SIM-Karte bekannt) eine Art von Smartcard. Eine SIM-Karte wird typischerweise in einem Mobiltelefon verwendet, um ein Konto für den Zugriff auf die Dienste eines Mobilfunknetzes zu identifizieren. Wenn die SIM-Karte an einem Mobiltelefon angebracht ist, stellt das zelluläre Kommunikationsnetzwerk Dienste für das Mobiltelefon bereit, die einem von der SIM-Karte identifizierten Konto entsprechen. Wenn die SIM-Karte an einem Ersatz-Mobiltelefon angebracht ist, kann das Ersatz-Mobiltelefon auf die Dienste zugreifen, die für das Konto konfiguriert sind.
  • So kann eine SIM-Karte beispielsweise die Identität eines Mobilfunkteilnehmers speichern, beispielsweise die internationale Mobilfunkteilnehmer-Identifikationsnummer (International Mobile Subscriber Identity, IMSI). Der Betreiber eines Mobilfunknetzes bzw. eines zellularen Netzwerks kann der IMSI-Nummer und der SIM-Karte einen Authentifizierungsschlüssel zuweisen. Auf der SIM-Karte ist der Authentifizierungsschlüssel gespeichert. Die SIM-Karte kann basierend auf digitalen Signaturen authentifiziert werden, die mit dem Authentifizierungsschlüssel verwendet werden. Nach der Authentifizierung der SIM-Karte kann das Mobiltelefon, das die SIM-Karte aufweist, mobile/zelluläre Dienste auf dem Konto empfangen, das mit der Identität des mobilen Teilnehmers assoziiert ist.
  • Europay-MasterCard-Visa (EMV)-Karten sind ein weiteres Beispiel für Smartcards. EMV-Karten können zum Empfangen von Finanzdienstleistungen in einem Kartenverarbeitungsnetzwerk verwendet werden, um Zugriff auf Bankkonten, beispielsweise Debitkonten und Kreditkonten, zu erhalten.
  • Die integrierte Speicherschaltungsvorrichtung 130 kann so konfiguriert werden, dass ein unbefugter Zugriff auf ihre Speicherzellen 103 verhindert und eine eindeutige Identität der Speichervorrichtung 130 selbst und/oder eines Endgeräts 150, in dem die Speichervorrichtung 130 installiert ist, sichergestellt wird. Eine sichere Speichervorrichtung 130, die Sicherheitsmerkmale aufweist, kann verwendet werden, um die Funktionalität von Smartcards, beispielsweise SIM-Karten und EMV-Karten, zu implementieren, indem Daten verwendet werden, die den sicheren Speichervorrichtungen aus der Ferne bereitgestellt werden, und/oder indem Daten verwendet werden, die in dem Speicher gespeichert sind, wie in 6.
  • 6 zeigt ein System und Verfahren zum Konfigurieren und Authentifizieren eines Endgeräts für einen kartenbasierten Dienst gemäß einer Ausführungsform.
  • Zum Beispiel können das System und das Verfahren von 6 in dem Computersystem von 1 implementiert werden, indem die Techniken der 2 bis 5 verwendet werden.
  • In 6 kann die Speichervorrichtung 130 unter Verwendung der integrierten Speicherschaltungsvorrichtung 130 implementiert werden, die die Sicherheitsmerkmale der 1 bis 5 aufweist. Eine Zugriffssteuerung 109 der Speichervorrichtung 130 kann einen oder mehrere Zugriffskontrollschlüssel 213 verwenden, um Lese- und Schreiboperationen für den Zugriff auf zumindest einige Speicherbereiche in der Speichervorrichtung 130 zu steuern.
  • So wird beispielsweise die Speichervorrichtung 130 zunächst mit einem Zugriffskontrollschlüssel 213 hergestellt, um dem Sicherheitsserver 140 zu ermöglichen, vollen Zugriff auf die Speicherbereiche in der Speichervorrichtung 130 zu erhalten. Die Speichervorrichtung 130 ist ferner so hergestellt, dass sie zumindest einen Teil der Vorrichtungsidentitätsdaten 211 beinhaltet, welche die Speichervorrichtung 130 in einer Population von Speichervorrichtungen eindeutig identifizieren.
  • Die Vorrichtungsidentitätsdaten 211 können beispielsweise mit einer Technik erzeugt werden, wie veranschaulicht in 2.
  • Zum Beispiel wird während der Herstellung der Speichervorrichtung 130 in der Operation der Speicherregistrierung 231 ein Root-Code (z. B. ein eindeutiger Vorrichtungsschlüssel 101) der Speichervorrichtung 130 in einen Sicherheitsserver 140 geladen. Der Root-Code kann eine Zahl sein, die von einer Physical Unclonable Function (PUF) der Speichervorrichtung 130 erzeugt wird, oder eine Zufallszahl, die in der Speichervorrichtung 130 während der Herstellung der Speichervorrichtung 130 ausgewählt und gespeichert wird. Der Sicherheitsserver 140 kann einen Schlüsselverwaltungsserver beinhalten, der konfiguriert ist, die kryptographischen Schlüssel von sicheren Speichervorrichtungen (z. B. 130) zu verwalten. Der Root-Code kann als ein geheimer kryptographischer Schlüssel betrachtet und/oder verwendet werden. Während der Herstellung der Speichervorrichtung 130 kann der Root-Code von der Speichervorrichtung 130 erhalten werden oder in die Speichervorrichtung 130 zur Speicherregistrierung 231 eingespeist werden. Der Speicher 130 ist vorzugsweise so hergestellt, dass die Speichervorrichtung 130 nach ihrer Herstellung den Root-Code nicht außerhalb der Speichervorrichtung 130 bereitstellt.
  • Die Vorrichtungsidentitätsdaten 211 können ein Root-Code sein, der nicht offengelegt, nicht geändert und nicht außerhalb der Speichervorrichtung 130 bereitgestellt wird.
  • Nachdem die Speichervorrichtung 130 die Fertigungseinrichtung verlassen hat, sind der Root-Code und andere Geheiminformationen in den Vorrichtungsidentitätsdaten 211 nicht mehr über die Kommunikationsschnittstelle (z. B. die Host-Schnittstelle 147) der Speichervorrichtung 130 abrufbar. Da die Speichervorrichtung 130 eine Richtlinie für den Datenzugriff durchsetzt, um das Durchsickern von Geheiminformationen und die Manipulation von Daten, die in den zugriffsgeschützten Bereichen der Speichervorrichtung 130 gespeichert sind, zu verhindern, kann die Speichervorrichtung 130 als eine sichere Speichervorrichtung angesehen werden. Der Sicherheitsserver 140 speichert Informationen, die die von der Speichervorrichtung 130 durchgeführte Berechnung zum Erzeugen der abgeleiteten Codes unabhängig von der Speichervorrichtung 130 replizieren können. Der Sicherheitsserver 140 kann somit die abgeleiteten Codes der Speichervorrichtung 130 regenerieren, ohne dass die Speichervorrichtung 130 die abgeleiteten Codes über ihre Kommunikationsschnittstelle (z. B. die Host-Schnittstelle 147) übermittelt.
  • Der Root-Code der Speichervorrichtung 130 kann beispielsweise mittels einer Physical Unclonable Function (PUF) implementiert werden. Der Root-Code der Speichervorrichtung 130 kann aus der Speichervorrichtung 130 abgerufen und in dem Sicherheitsserver 140 für die Speicherregistrierung 231 während der Herstellung der Speichervorrichtung 130 gespeichert werden. Der Root-Code kann verwendet werden, um einen abgeleiteten Code aus den Vorrichtungsidentitätsdaten 211 zu erzeugen. Zum Beispiel kann die PUF dazu verwendet werden, ein Diffie-Hellman-Schlüsselpaar abzuleiten; und das Diffie-Hellman-Schlüsselpaar kann zum Erstellen des eindeutigen Vorrichtungsschlüssels (UDS) 101 verwendet werden, der sicher zwischen der Vorrichtung und dem Sicherheitsserver ausgetauscht werden kann.
  • Die Vorrichtungsidentitätsdaten 211 können beispielsweise mit einer Technik erzeugt werden, wie in 2.
  • Der abgeleitete Code wird so erzeugt (z. B. basierend auf einer kryptographischen Hash-Funktion, einer Zufallszahl und/oder einem monotonen Zählwert), dass der Root-Code nicht aus dem abgeleiteten Code und/oder anderen Informationen, die bei der Erzeugung des abgeleiteten Codes verwendet wurden, errechnet werden kann. Zum Beispiel kann der abgeleitete Code einen privaten Schlüssel eines Paares asymmetrischer kryptographischer Schlüssel beinhalten. Zum Beispiel kann der abgeleitete Code einen symmetrischen kryptographischen Schlüssel beinhalten.
  • Die Vorrichtungsidentitätsdaten 211 können eine nicht geheime, öffentliche Identifikationsnummer der Speichervorrichtung 130, wie beispielsweise eine Seriennummer der Speichervorrichtung 130, eine eindeutige Identifikationsnummer der Speichervorrichtung 130 und/oder einen öffentlichen Schlüssel eines Paars asymmetrischer kryptographischer Schlüssel usw. beinhalten. Die Veröffentlichungsidentifikationsnummer kann verwendet werden, um die Speichervorrichtung 130 in einer Population von Speichervorrichtungen eindeutig zu identifizieren, ohne die Geheiminformationen der Speichervorrichtung 130 preiszugeben; und die Geheiminformationen der Speichervorrichtung 130 können bei der Authentifizierung/Bestätigung verwendet werden, dass die Speichervorrichtung 130 die ist, wie durch die öffentliche Identifikationsnummer identifiziert.
  • Abgeleitete Codes in den Vorrichtungsidentitätsdaten 211 können erzeugt und/oder ersetzt werden, nachdem die Speichervorrichtung 130 die Fertigungseinrichtung verlassen hat. Der Zugriffskontrollschlüssel 213 kann zum Steuern der Ausführung der Operationen zum Erzeugen und/oder Ersetzen der abgeleiteten Codes verwendet werden, um Manipulationen zu verhindern. Die abgeleiteten Codes können beispielsweise kryptographische Schlüssel und/oder Zertifikate beinhalten, die gemäß einem Standard für die Device Identity Composition Engine (DICE) erzeugt werden.
  • Während der Speicherregistrierung 231 wird zumindest der Root-Code der Speichervorrichtung 130 in Verbindung mit einer öffentlichen Identifikationsnummer der Speichervorrichtung 130 in dem Sicherheitsserver 140 gespeichert. Der Root-Code der Speichervorrichtung 130 ist zwischen der Speichervorrichtung 130 und dem Sicherheitsserver 140 während der Speicherregistrierung 231 in einer sicheren Umgebung bei der Herstellung der Speichervorrichtung 130 bekannt. Anschließend können zusätzliche Informationen, die zum Erzeugen abgeleiteter Codes verwendet werden, öffentlich sein, ohne die Geheimhaltung der abgeleiteten Codes zu umfassen. Die abgeleiteten Codes können in der Authentifizierung einer Speichervorrichtung 130 verwendet werden und können optional ersetzt werden.
  • Ein Zugriffskontrollschlüssel 213 ist konfiguriert, um den unbefugten Zugriff auf die Geheiminformationen in den Vorrichtungsidentitätsdaten 211 und/oder die Operation daran zu verhindern. Sobald beispielsweise ein Zugriffskontrollschlüssel 213 in der Speichervorrichtung 130 konfiguriert ist, können die Geheiminformationen nur noch von der Kryptographie-Engine 107 verwendet werden (z. B. um abgeleitete Codes zu regenerieren und/oder digitale Signaturen zu erzeugen). So muss beispielsweise ein Befehl/eine Anforderung, der/die in der Host-Schnittstelle 147 der Speichervorrichtung 130 empfangen wird, mit dem Zugriffskontrollschlüssel 213 verifizierbar digital signiert werden, wie dies veranschaulicht ist in 3. Wenn die auf den Befehl/die Anforderung angewandte digitale Signatur gemäß dem Zugriffskontrollschlüssel 213 gültig ist, kann der Befehl/die Anforderung abgelehnt und/oder ignoriert werden.
  • So kann beispielsweise der Zugriffskontrollschlüssel 213 zum Authentifizieren der digitalen Signaturen verwendet werden, die auf Befehle zum Durchführen bestimmter Operationen relativ zu den Vorrichtungsidentitätsdaten 211 angewendet werden, wie beispielsweise das Ersetzen eines kryptographischen Schlüssels oder eines asymmetrischen kryptographischen Schlüsselpaares.
  • Ferner können ein oder mehrere zusätzliche Zugriffskontrollschlüssel 213 verwendet werden, um die digitalen Signaturen des Besitzers und/oder der berechtigten Benutzer der Speichervorrichtung 130 zu authentifizieren. Verschiedene autorisierte Benutzer können auf den Zugriff auf verschiedene Bereiche des Speichervorrichtung für bestimmte Operationen (z. B. Schreiben, Löschen, Lesen) eingeschränkt werden. Ein Besitzer und andere autorisierte Benutzer können unterschiedliche Geltungsbereiche und/oder Berechtigungen in der Operation der Speichervorrichtung 130 aufweisen.
  • Der Sicherheitsserver 140 kann als anfänglicher Besitzer der Speichervorrichtung 130 konfiguriert werden. So kann beispielsweise ein öffentlicher Schlüssel des Sicherheitsservers 140 zunächst in der Speichervorrichtung 130 als Zugriffskontrollschlüssel 213 des Besitzers gespeichert werden, um Befehlen, die mit dem privaten Schlüssel des Sicherheitsservers 140 signiert wurden, Besitzerberechtigungen bereitzustellen. Nach der Auslieferung der Speichervorrichtung 130 an einen Kunden kann ein öffentlicher Schlüssel des Kunden als Ersatz für den Zugriffskontrollschlüssel 213 des Besitzers gespeichert werden, um die Besitzerberechtigungen auf den Kunden zu übertragen.
  • Wahlweise können bestimmte Sicherheitsfunktionen der Speichervorrichtung 130 für einen Kunden aktiviert werden. Einige Aspekte der Speichervorrichtung 130 in Bezug auf die Aktivierung von Sicherheitsfunktionen finden sich im US-Pat. Anm. Ser. Nr. 17/014,203, eingereicht am 8. September 2020, mit dem Titel „Customer-Specific Activation of Functionality in a Semiconductor Device (Kundenspezifische Aktivierung der Funktionalität in einer Halbleitervorrichtung)“, deren gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • Ein Endgerät 150 kann so konstruiert sein, dass es eine Speichervorrichtung 130 und andere Komponenten 187 beinhaltet. Während der Konstruktion 233 des Endgeräts 150 wird die Speichervorrichtung 130 in das Endgerät 150 eingebaut/montiert; und Softmodule 217 und Trace-Daten 215 können in der Speichervorrichtung 130 gespeichert werden.
  • Ein Softmodul 217 kann beispielsweise einen Bootloader des Endgeräts 150, Firmware der Speichervorrichtung 130 und/oder eines Speicher-Subsystems, das die Speichervorrichtung 130 enthält, oder ein Betriebssystem oder eine Softwareanwendung des Endgeräts 150 beinhalten. Das Softmodul 217 kann Anweisungen und Daten beinhalten, die zum Implementieren einer Funktion konfiguriert sind. Die Anweisungen können von der Logikschaltung der Speichervorrichtung 130, der Steuerung eines Speicher-Subsystems, in dem die Speichervorrichtung 130 installiert ist, und/oder der Verarbeitungsvorrichtung 118 des Host-Systems 120 der Speichervorrichtung 130 und/oder dem Speicher-Subsystem ausgeführt werden.
  • Während der Konstruktion des Endgeräts 233 kann eine Endgeräteregistrierung 235 durchgeführt werden, um Trace-Daten 215 in dem Sicherheitsserver 140 und/oder in der Speichervorrichtung 130 zu speichern. Die Trace-Daten 215 können Teil der Konfiguration und/oder Identität des Endgeräts 150 sein.
  • So können die Trace-Daten 215 beispielsweise einen Hash-Wert der Softmodule 217 beinhalten, der unter Verwendung einer kryptographischen Hash-Funktion berechnet wird. Die Trace-Daten 215 können beispielsweise Geheiminformationen beinhalten, die dem Endgerät 150 zugewiesen sind. Die Trace-Daten 215 können sein
  • Eine Fälschung des Endgeräts 150, das die Trace-Daten 215 nicht aufweist, kann die von den Trace-Daten 215 abhängige Endgerät-Authentifizierung 239 nicht bestehen. Somit wird die Sicherheit des Systems verbessert. Weitere Details und Beispiele zu den Techniken in Bezug auf die Trace-Daten 215 finden sich im US-Pat. Anm. Ser. Nr. 17/005,565 , eingereicht am 28. August 2020, mit dem Titel „Secure Memory System Programming for Host-Vorrichtung Verification (Sichere Speichersystem-Programmierung für die Überprüfung einer Host-Vorrichtung)“, dessen gesamte Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • Die Endgerät-Identitätsdaten 188 können unter Verwendung der Techniken von 2 erzeugt werden, um die Konfiguration des Endgeräts 150 beim Booten darzustellen. Die Endgerät-Identitätsdaten 188 können beispielsweise ein Zertifikat (z. B. Nachricht 131) beinhalten, das basierend auf einer Kombination eines Teils der Vorrichtungsidentitätsdaten 211, der Trace-Daten 215 und der Identifizierungsdaten anderer Komponenten (z. B. Netzwerkschnittstelle 114, Verarbeitungsvorrichtung 118, Steuerung 116) erzeugt wird, die beim Booten des Endgeräts 150 vorliegen.
  • Die Vorrichtungsidentitätsdaten 211 und/oder die Endgerät-Identitätsdaten 188 können ein oder mehrere Zertifikate beinhalten, die unter Verwendung einer Device Identity Composition Engine (DICE) gemäß einem von der Trusted Computing Group (TCG) entwickelten Standard erzeugt werden, der Hardware-Geheimnisse und Quellcode kombiniert, um vertrauenswürdige Identitäten zu erzeugen. Weitere Details und Beispiele für Techniken zum Erzeugen der Vorrichtungsidentität finden sich im US-Pat. Anm. Ser. Nr. 16/374,905 , eingereicht am 4. April 2019, mit dem Titel „Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers (Onboarding-Software auf sicheren Geräten zum Erzeugen von Vorrichtungsidentitäten für die Authentifizierung mit Remote-Servern),“ und veröffentlicht als US-Pat. Anm. Pub. Nr. 2020/0322134 am 8. Oktober 2020, dessen gesamte Offenbarung hiermit durch Bezugnahme hierin aufgenommen wird.
  • Eine Operation der virtuellen Kartenregistrierung 237 kann durchgeführt werden, um das Endgerät 150 für Dienste eines kartenbasierten Netzwerks 225 zu konfigurieren, beispielsweise ein mobiles/zellulares Kommunikationsnetzwerk, ein Bankkartenverarbeitungsnetzwerk usw.
  • Das Endgerät 150 kann beispielsweise eine Verbindung zu einem Kartenserver 223 herstellen, um ein Kartenprofil 219 für das Endgerät 150 anzufordern, das durch die Vorrichtungsidentitätsdaten 211 dargestellt wird. Um das Kartenprofil 219 anzufordern, übermittelt das Endgerät 150 einen öffentlichen Teil der Endgerät-Identitätsdaten 188 an den Kartenserver 223. Der Kartenserver 223 leitet die Endgerät-Identitätsdaten 188 an den Sicherheitsserver 140 zur Authentifizierung 239 des Endgeräts 150 weiter. Zum Beispiel kann die in 2 erläuterte Authentifizierungstechnik verwendet werden.
  • Sobald der Sicherheitsserver 140 überprüft hat, dass die Endgerät-Identitätsdaten 188 unter Verwendung einer korrekten Kombination der Vorrichtungsidentitätsdaten 211 der Speichervorrichtung 130, der Trace-Daten 215 und anderer Daten des Endgeräts 150, die während der Endgerätregistrierung 235 an den Sicherheitsserver 140 übermittelt und/oder dort aufgezeichnet wurden, erstellt wurden, kann der Kartenserver 223 der Speichervorrichtung 130 das Kartenprofil 219 zuweisen und/oder speichern, oder das Kartenprofil 219 mit den Endgerät-Identitätsdaten 188 assoziieren.
  • Die virtuelle Kartenregistrierung 237 kann über ein in der Speichervorrichtung 130 gesichertes Softmodul 217 und/oder über den Sicherheitsmanager durchgeführt werden, sodass das in der Speichervorrichtung 130 gespeicherte Kartenprofil 219 nicht verfälscht werden kann. Wahlweise kann der Sicherheitsserver 140 einen Verifizierungscode für einen Befehl 155 zum Schreiben des Kartenprofils 219 in einen sicheren Abschnitt der Speichervorrichtung 130 erzeugen. Die Schreibberechtigung des gesicherten Abschnitts kann über einen kryptographischen Schlüssel gesteuert werden, der im Sicherheitsserver 140 gespeichert ist. So kann beispielsweise ein Zugriffskontrollschlüssel 213, der dem Kartenserver 223 oder dem Sicherheitsserver 140 entspricht, von der Zugriffssteuerung 109 verwendet werden, um das Speichern und/oder Ersetzen des Kartenprofils 219 in der Speichervorrichtung 130 zu steuern.
  • Ferner kann die Speichervorrichtung 130 die Integrität des Kartenprofils und/oder eines Softmoduls 217, das zur Verwendung des Kartenprofils 219 verantwortlich ist, überprüfen, wie dies veranschaulicht ist in 4.
  • Mit dem Kartenprofil 219, das in der Speichervorrichtung 130 im Endgerät 150 gesichert ist, funktionieren die Speichervorrichtung 130 und/oder das Endgerät 150 in einer Weise, die gleichwertig ist mit einer entsprechenden Smartcard, die im Endgerät 150 installiert ist. Das Kartenprofil 219, das sicher mit den Vorrichtungsidentitätsdaten 211 verbunden ist, kann als eine virtuelle Smartcard angesehen werden.
  • In einigen Implementierungen ist ein Softmodul 217 konfiguriert, um die kryptografischen Funktionen und/oder die Verarbeitungsfähigkeit der Logikschaltung der integrierten Speicherschaltungsvorrichtung 130 zu nutzen, um die kryptografischen Operationen zu implementieren, die in die Verwendung des Kartenprofils 219 einbezogen sind. Das Kartenprofil 219 kann beispielsweise einen Authentifizierungsschlüssel beinhalten; und das Softmodul 217 kann konfiguriert sein, um eine digitale Signatur für die Authentifizierung/Verifizierung zu erzeugen, dass das Kartenprofil 219 den Authentifizierungsschlüssel beinhaltet.
  • Das Kartenprofil 219 kann beispielsweise sein wie veranschaulicht in 7 und 8.
  • 7 veranschaulicht ein Kartenprofil einer virtuellen Smartcard gemäß einer Ausführungsform.
  • In 7 kann das Kartenprofil 219 Kartendaten 241 und ein Softcard-Modul 243 beinhalten. Wahlweise kann das Softcard-Modul 243 als Teil der in der Speichervorrichtung 130 gespeicherten Softmodule 217 installiert werden.
  • Die Kartendaten 241 können die Identifizierung einer Smartcard (z. B. einer virtuellen Karte), eines Kontos und/oder eines Teilnehmers beinhalten. Die Kartendaten 241 können beispielsweise einen Smartcard-Typ, einen für das Konto/die Karte abonnierten Dienst und/oder Kundendaten im Zusammenhang mit den Diensten identifizieren (z. B. einen Saldobetrag, einen Transaktionsdatensatz, eine Nachricht usw.). In einigen Implementierungen können die Kartendaten 241 den gleichen Datensatz beinhalten, der in einer physischen Smartcard gespeichert ist (z. B. in einem integrierten Schaltungs-Chip, der in eine Plastikkarte eingebettet ist, die gemäß einem Standard für eine Universal Integrated Circuit Card (UICC) konfiguriert ist).
  • Das Softcard-Modul 243 kann Anweisungen beinhalten, um die Kartendaten 241 in einer Kryptographie-Engine 107 in der Speichervorrichtung 130 zu betreiben. So kann beispielsweise die Rechenfunktion eines integrierten Schaltungs-Chips, der in einem besonderen Typ von Smartcards verwendet wird, durch Ausführen des Softcard-Moduls 243 in der sicheren Speichervorrichtung 130 implementiert werden. Das Softcard-Modul 243 ermöglicht es einem Endgerät 150, die Rechenoperationen einer physischen Smartcard zu emulieren.
  • 8 veranschaulicht ein Kartenprofil eines virtuellen Teilnehmeridentifikationsmoduls (SIM) gemäß einer Ausführungsform.
  • In 8 beinhaltet das Kartenprofil 245 Kartendaten 241, beispielsweise einen Integrated Circuit Card Identifier (ICCI) 251, eine Mobilgeräte-Identifikationsnummer 253, eine internationale Mobilfunkteilnehmer-Identifikationsnummer 255, einen Authentifizierungsschlüssel 257, welcher der internationalen Mobilfunkteilnehmer-Identifikationsnummer 255 zugewiesen ist, und Service-Daten 247 in Bezug auf den mobilen/zellularen Kommunikationsdienst für die internationale Mobilfunkteilnehmer-Identifikationsnummer 255.
  • In einem herkömmlichen Mobiltelefon, das eine herkömmliche SIM-Karte verwendet, wird ein Integrated Circuit Card Identifier (ICCI) 251 verwendet, um die SIM-Karte in einer Population von SIM-Karten zu identifizieren. Eine Mobile Equipment Identity Number 253 (z. B. in Form einer International Mobile Equipment Identity (IMEI)-Nummer oder einer IMEI-Softwareversion (IMEISV)) wird verwendet, um das Mobiltelefon in einer Population von Mobiltelefonen zu identifizieren. Eine IMSI-Nummer (International Mobile Subscriber Identity) wird zur Identifizierung eines Teilnehmers/Kunden/Kontos in einer Population verwendet. Diese Nummern in dem Kartenprofil 245 können für ähnliche Funktionen verwendet werden, wenn das Kartenprofil 245 am Endgerät 150 angebracht ist. Wenn beispielsweise das Endgerät 150 ein Mobiltelefon ohne physische SIM-Karte ist, kann das Kartenprofil 245 als virtuelle SIM-Karte fungieren, um die Karte, den Teilnehmer und das Endgerät/Mobiltelefon zu identifizieren. Der Integrated Circuit Card Identifier (ICCI) 251 entspricht beispielsweise den Vorrichtungsidentitätsdaten 211 der Speichervorrichtung 130 und/oder identifiziert diese; die Mobilgeräte-Identifikationsnummer 253 entspricht den Endgeräte-Identitätsdaten 188 des Endgeräts 150 und/oder identifiziert diese; und die internationale Mobilteilnehmer-Identifikationsnummer 255 steht für den Teilnehmer/Kunden/Konto in einem mobilen/zellularen Kommunikationsnetzwerk.
  • Der Authentifizierungsschlüssel 257 ist beispielsweise der Geheimcode, der der internationalen Mobilteilnehmer-Identitätsnummer 255 zugewiesen ist. Wenn ein Endgerät 150 die internationale Mobilfunkteilnehmer-Identifikationsnummer 255 verwendet, um eine Verbindung in einem Kommunikationsnetzwerk anzufordern, kann der Betreiber des mobilen/zellularen Netzwerks den Authentifizierungsschlüssel 257 in einer Datenbank nachschlagen und das Endgerät 150 auffordern zu zeigen, dass es im Besitz des Authentifizierungsschlüssels 257 ist. Die Sicherheitsabfrage kann das digitale Signieren einer Nachricht, die eine Zufallszahl (RAND) beinhaltet, unter Verwendung des Authentifizierungsschlüssels 257 beinhalten. Eine Antwort auf die Sicherheitsabfrage kann einen Abschnitt der digitalen Signatur zur Überprüfung durch den Betreiber des Mobilfunknetzes beinhalten. Der Betreiber signiert die Nachricht selbstständig unter Verwendung des entsprechenden Authentifizierungsschlüssels 257, der mit der internationalen Mobilteilnehmer-Identifikationsnummer 255 in der Datenbank assoziiert ist. Stimmt die Antwort mit der vom Betreiber des mobilen/zellularen Netzwerks berechneten Antwort überein, wird die digitale Signatur überprüft, und als Ergebnis wird festgestellt, dass das Endgerät 150 den Authentifizierungsschlüssel 257 aufweist, der der internationalen Mobilteilnehmer-Identitätsnummer 255 zugewiesen ist, und berechtigt ist, die Dienste zu empfangen, die mit der internationalen Mobilteilnehmer-Identitätsnummer 255 assoziiert sind. Ferner kann aus der digitalen Signatur ein symmetrischer kryptographischer Schlüssel abgeleitet werden, um die Kommunikation zwischen dem Endgerät 150 und dem mobilen/zellularen Kommunikationsnetzwerk in der nachfolgenden Kommunikationssitzung zu sichern.
  • Wenn beispielsweise das Kartenprofil 245 in dem Endgerät 150 installiert ist, kann das Endgerät 150 mit dem Betreiber des mobilen/zellularen Netzwerks kommunizieren, um eine Verbindung anzufordern und auf eine Sicherheitsabfrage zu antworten, wobei dasselbe Protokoll verwendet wird wie bei einem Mobiltelefon mit einer physischen SIM-Karte. Somit muss der Betreiber des mobilen/zellularen Netzwerks nicht zwischen dem Endgerät 150, welches das Kartenprofil 245 als virtuelle SIM-Karte aufweist, und anderen Mobiltelefonen, die physische SIM-Karten aufweisen, unterscheiden.
  • Wahlweise kann das Kartenprofil 245 ein Authentifizierungsmodul 259 beinhalten, das so konfiguriert ist, dass es von einer Kryptographie-Engine der sicheren Speichervorrichtung 130 und/oder der Verarbeitungsvorrichtung 118 des Endgeräts 150 ausgeführt wird, um kryptographische Berechnungen während der Verwendung des Kartenprofils 245 durchzuführen, wie etwa die Erzeugung der Antwort auf die Sicherheitsabfrage und/oder des symmetrischen kryptographischen Schlüssels für die Kommunikationssitzung.
  • In 6 kann das Endgerät 150 nach dem Empfangen der virtuellen Kartenregistrierung 237 Dienste vom kartenbasierten Netzwerk 225 unter Verwendung des Kartenprofils 219 empfangen, um einen Teilnehmer/Kunden/Konto zu identifizieren. Das kartenbasierte Servicenetz 225, das zunächst zum Bereitstellen von Diensten für herkömmliche Smartcards konfiguriert ist, kann beispielsweise nahtlos ferner Dienste für Endgeräte (z. B. 150) bereitstellen, die über virtuelle Smartcards verfügen, die in sicheren Speichervorrichtungen (z. B. 130) durch das Speichern von Kartenprofilen (z. B. 219) implementiert sind.
  • Wahlweise kann das Endgerät 150 so konfiguriert sein, dass es die Kommunikation mit dem kartenbasierten Netzwerk 225 in der gleichen Weise durchführt wie ein Mobilgerät, das eine physische Smartcard (z. B. SIM-Karte) oder eine Smartcard (z. B. EMV-Karte) aufweist.
  • Das Endgerät 150 kann beispielsweise als Smartcard für ein Lesegerät fungieren. Das Endgerät 150 kann Metallkontakte für eine Verbindung mit einem Lesegerät beinhalten. Das Endgerät 150 kann beispielsweise einen Transceiver beinhalten, der mit Lesegeräten für drahtlose Smartcards vergleichbar ist. Alternativ können zusätzliche Lesegeräte im kartenbasierten Netzwerk 225 konfiguriert sein, die alternative Kommunikationsverbindungen verwenden, um die virtuellen Karten vom Endgerät 150 zu lesen. Beispiele für alternative Verbindungen können eine Nahfeldkommunikationsverbindung (NFC), eine Bluetooth-Verbindung, eine Wi-Fi-Verbindung, eine Universal Serial Bus (USB)-Verbindung usw. beinhalten.
  • In einem anderen Beispiel kann das Endgerät 150 als Mobilstation fungieren, die ein integriertes Lesegerät aufweist, um eine in die Mobilstation eingeführte Smartcard zu lesen, beispielsweise ein Mobiltelefon, das eine SIM-Karte besitzt. Das Endgerät 150 kann mit dem kartenbasierten Netzwerk 225 kommunizieren, um auf den Dienst 227 zuzugreifen, indem es das gleiche Kommunikationsprotokoll wie eine Mobilstation verwendet, die eine physische SIM-Karte aufweist.
  • Wahlweise kann das Kartenprofil 219 in dem Kartenserver 223 in Verbindung mit den Identitätsdaten des Endgeräts 188 gespeichert werden. Das Endgerät 150 kann unter Verwendung der Endgeräte-Identitätsdaten 188 auf Dienste 227 im kartenbasierten Netzwerk 225 zugreifen. In Reaktion darauf kann das kartenbasierte Netzwerk 225 mit dem Kartenserver 223 kommunizieren, um ein Kartenprofil 219 basierend auf den Endgeräte-Identitätsdaten 188 zu identifizieren. Ferner kann der Kartenserver 223 basierend auf den Endgerät-Identitätsdaten 188 mit dem Sicherheitsserver 140 kommunizieren, um eine Endgerätauthentifizierung 239 durchzuführen, um zu überprüfen, ob das Endgerät 150 die sichere Speichervorrichtung 130 wie zum Zeitpunkt der virtuellen Kartenregistrierung aufweist und dieselbe Konfiguration besitzt, die durch die Kombination aus den Trace-Daten 215, Softmodulen 217 und den Komponenten 187 dargestellt wird. Wenn das Endgerät 150 manipuliert und/oder modifiziert wird, können die Änderungen bei der Statusprüfung 229 und/oder der Endgeräteauthentifizierung 239 erkannt werden; in Reaktion darauf kann das kartenbasierte Netzwerk 225 die Anforderung für den Zugriff auf Dienste 227 ablehnen.
  • Wahlweise kann die virtuelle Kartenregistrierung 237 just-in-time in Verbindung mit der Anforderung des Zugriffs auf die Dienste 227 durchgeführt werden. In Reaktion auf die Anforderung werden die Endgeräte-Identitätsdaten 188 durch die Endgeräteauthentifizierung 239 überprüft. Nach erfolgreicher Überprüfung des Endgeräts kann das Kartenprofil 219 ein Kartenprofil 219 sein, das mit den Endgerät-Identitätsdaten 188 assoziiert und/oder in dem Speicher 130 gespeichert ist.
  • In einigen Implementierungen ist der Kartenserver 223 als Teil des Sicherheitsservers 140 implementiert.
  • In einigen Implementierungen ist der Kartenserver 223 als Teil eines Netzwerkbetreibers in dem kartenbasierten Servicenetzwerk 225 implementiert.
  • Beispielsweise kann das System von 6 zur Vereinfachung, Sicherung und Beschleunigung des groß angelegten globalen Einsatzes von IoT-Geräten (Internet der Dinge) und eines reichhaltigen Ökosystems von IoT-Diensten So können beispielsweise virtuelle Teilnehmeridentitätsmodule (SIM-Karten) von IoT-Geräten (z. B. Endgerät 150) verwendet werden, um über mobile/zelluläre Kommunikationsnetzwerke mit dem Internet verbunden zu werden.
  • Der Sicherheitsserver 140 kann als speicherbasierte Security-as-a-Service-Plattform für Endgeräte (z. B. 150) verwendet werden, beispielsweise für IoT-Edge-Geräte. Ein Kartenserver kann verwendet werden, um eine Mobilfunkverbindung für derartige Endgeräte bereitzustellen. Durch die Kombination wie in 6 kann eine universelle End-to-End-Lösung für das Zero-Touch-Onboarding von IoT-Geräten mit Mobilfunkverbindung in Cloud-Dienste erstellt werden.
  • Die Komplexität des Implementierens von IoT in Unternehmen stellt eine Herausforderung für den groß angelegten globalen Einsatz von IoT-Geräten dar. Die Herausforderungen beinhalten Schwierigkeiten beim Implementieren der Mobilfunkverbindung und der Cybersicherheit. Mobilfunkverbindungen weisen gegenüber drahtlosen lokalen Netzwerken (z. B. Wi-Fi) für IoT-Einsätze erhebliche Vorteile auf, beispielsweise eine größere Reichweite, bessere Leistung im Freien, höhere Sicherheit und eine bestehende globale Infrastruktur. Die Anforderungen an physische SIM-Karten und Verträge mit Betreibern von mobilen/zellularen Netzwerken verlangsamen die Verwendung von Mobilfunkverbindungen für IoT-Geräte. Eine Lösung, wie sie in 6 veranschaulicht wird, nimmt sich solcher Herausforderungen an.
  • Virtuelle SIM-Karten, die über ein sicheres Assoziieren eines Kartenprofils 219 mit Endgerät-Identitätsdaten 188 und/oder Vorrichtungsidentitätsdaten 211 implementiert sind, können den Bedarf an physischen SIM-Karten überflüssig machen. Der Einsatz virtueller SIM-Karten bietet hochgradig skalierbare IoT-Sicherheit, Cloud-basiertes SIM-Management, sichere Zero-Touch-Geräteregistrierung und Onboarding für IoT-Dienste, fließende globale Konnektivität und Just-in-Time-SIM-Aktivierung.
  • Eine Lösung, wie sie in 6 veranschaulicht wird, ist vor allem für die Industrie, die Infrastruktur, die Automobilindustrie, die Luftfahrt sowie den Transport- und Logistiksektor von Vorteil, die weitreichende, grenzenlose Konnektivität für tragbare Geräte auch an den entlegensten Standorten benötigen, die nicht durch Grenzen und Wi-Fi-Netzwerke im Nahbereich behindert werden.
  • Ein System, wie in 6 veranschaulicht, kann die flexible globale Konnektivität drastisch vereinfachen und vielfältige Möglichkeiten für Innovationen auf dem IoT-Markt eröffnen.
  • Die Verwendung von physischen Smartcards erfordert eine enge Verknüpfung der Karten- und/oder Vorrichtungsidentität mit den von einem Netzwerk (z. B. 225) angebotenen Diensten während der Herstellung, um unsichere Geräte, unsichere Operationen, Betrug und/oder Fälschungen zu verhindern.
  • Der Sicherheitsserver 140 kann dazu verwendet werden, eine Zero-Touch-Authentifizierung und eine späte Bindung von Zertifikaten für Dienste von Drittanbietern zu implementieren, wodurch Endbenutzer einen sicheren Zugriff auf mehr verschiedene IoT-Dienste von Drittanbietern erhalten können.
  • Der Sicherheitsserver 140 und/oder der Kartenserver 223 können zur sicheren Installation von Softmodulen zum Anpassen von IoT-Geräten verwendet werden. So kann beispielsweise ein Online-Softmodul-Speicher bereitgestellt werden, der es ermöglicht, ein Softmodul in einem Endgerät 150 zu speichern, um dessen Funktionalität in ähnlicher Weise anzupassen, wie dies in dem bereitgestellten Beispiel für die Bereitstellung der Funktionalität verschiedener Arten von Smartcards und/oder SIM-Karten erläutert wurde. Eine derartige Anpassung ermöglicht es Unternehmen, auf herstellerunabhängige IoT-Dienste zuzugreifen, um intelligente Funktionen und Dateneinblicke auf neue Weise zu nutzen und damit zu experimentieren.
  • Da die Bedrohungslage durch ausgeklügelte bösartige Akteure und Hacks auf Geräte vom IoT-Aquarium bis zum Babyphon immer riskanter wird, weist die Cybersicherheit eine Schwachstelle bei der IoT-Einführung auf. Der Sicherheitsserver 140 kann Security-as-a-Service anbieten, der von den in Speichervorrichtungen (z. B. 130) implementierten Sicherheitsmerkmalen gespeist wird, die den Zugriff und die Vorrichtungsidentitätsdaten 211 steuern. Dank ihres Silicon Root-of-Trust stellt eine sichere Speichervorrichtung 130 ein einzigartiges Schutzniveau für die untersten Schichten der IoT-Software bereit - beginnend mit dem Boot-Prozess, mit starken kryptografischen Identitäts- und Sicherheitsmerkmalen, die nativ in die Speichervorrichtung 130 eingebaut sind.
  • Beispielsweise kann der Security-as-a-Service, der über eine Kombination aus dem Sicherheitsserver 140 und den in sichere Speichervorrichtungen (z. B. 130) eingebetteten Sicherheitsmerkmalen implementiert wird, die Überprüfung der Authentifizierung einer Speichervorrichtung (z. B. 130), die eine öffentliche Identifizierungsnummer aufweist, beinhalten, indem überprüft wird, ob die Speichervorrichtung (z. B. 130) einen Root-Code aufweist, der über die während der Herstellung der Speichervorrichtung 130 durchgeführte Speicherregistrierung 231 aufgezeichnet wurde.
  • Der Security-as-a-Service kann beispielsweise fakultativ ferner die Identifizierung eines Besitzers der Speichervorrichtung 130 basierend auf einem kryptographischen Schlüssel beinhalten, der dem Zugriffskontrollschlüssel 213 entspricht, der implementiert wurde, um Besitzerberechtigungen bereitzustellen.
  • Beispielsweise kann der Security-as-a-Service optional ferner die Identifizierung eines Dienstanbieters des Endgeräts 150 mit der Speichervorrichtung 130 aufweisen, basierend auf der Identität des Besitzers/Herstellers der Speichervorrichtung 130, bevor das Endgerät 150 an einen Endbenutzer/Kunden verteilt wird. Basierend auf dem Anbieter kann der Sicherheitsserver 140 ein Softmodul 217 herunterladen, das für die vom Anbieter bereitgestellten Dienste relevant ist, um das Endgerät 150 individuell anzupassen. Beispielsweise kann die Anpassung während der Endgerätregistrierung 235 durchgeführt werden. Wahlweise kann ein Endbenutzer oder ein Unternehmensbenutzer einen Anbieter auswählen, und der Sicherheitsserver 140 und/oder der Kartenserver 223 können das Softmodul 217 in der Speichervorrichtung 130 bereitstellen. Ferner kann der Sicherheitsserver 140 in Reaktion auf die Authentifizierung einer Speichervorrichtung 239 automatisch ein Software-Update in die Speichervorrichtung einspielen. Somit kann die Sicherheitsanfälligkeit von Endgeräten (z. B. 150) in der Praxis auf automatisierte Weise reduziert und/oder minimiert werden, ohne dass die einzelnen OEMs von Endgeräten (z. B. 150) zusätzliche Anstrengungen unternehmen müssen.
  • Beispielsweise kann der Security-as-a-Service optional ferner die Verfolgung von verlorenen/gestohlenen Geräten beinhalten. In Reaktion auf eine Endgerätauthentifizierung 239 eines Endgeräts 150, das im Sicherheitsserver 140 als gestohlen registriert ist, kann der Sicherheitsserver 140 die Zugriffssteuerung 109 der Speichervorrichtung 130 anfordern, den Zugriff auf bestimmte Speicherbereiche zu sperren und/oder Daten aus bestimmten Speicherbereichen zu löschen. In einigen Instanzen kann die Zugriffssteuerung 109 die normalen Operationen des Endgeräts 150 deaktivieren, indem sie den Zugriff auf Ressourcen wie beispielsweise einen Bootloader, ein Betriebssystem, eine Anwendung usw. einschränkt. In einigen Instanzen kann die Zugriffssteuerung 109 eine Operation zur irreversiblen Zerstörung der Speicherfunktionalität in der Speichervorrichtung 130 durchführen.
  • Der Security-as-Service kann beispielsweise ferner einen Audit-Service für die Integrität des Endgeräts 150 beinhalten. Der Speichervorrichtung 130 kann beispielsweise die Endgerät-Identitätsdaten 188 basierend auf den kryptografischen Hash-Werten von Softmodulen 217, die in der Speichervorrichtung 130 gespeichert sind, aufbauen, sodass der Sicherheitsserver 140 bei einem Wechsel der Softmodule 217 überprüfen kann, ob es sich bei den aktuellen Softmodulen 217 um gültige Distributionen von entsprechenden Anbietern der Softmodule 217 handelt. Wenn sich herausstellt, dass ein Softmodul 217 beschädigt ist, manipuliert wurde und/oder beschädigt ist, kann der Sicherheitsserver 140 eine Operation zur Reparatur des Softmoduls einleiten, indem er eine gültige Distribution aus einem Online-Software-Shop verwendet.
  • Wenn eine aktualisierte Version eines Softmoduls 217 verfügbar ist, kann der Sicherheitsserver 140 die Endgerät-Identitätsdaten 188 für die Authentifizierung des Endgeräts 150 neu berechnen. Somit kann, wenn das Endgerät 150 ein veraltetes Softmodul 217 aufweist, der Sicherheitsserver 140 das Vorhandensein der veralteten Version erkennen und ein Over-the-Air-Update des Softmoduls 217 anfordern/einleiten. Wahlweise kann der Sicherheitsserver 140 den Verlauf der Konfigurationsänderungen des Endgeräts 150 verfolgen, die sich auf die Endgerät-Identitätsdaten 188 auswirken. Wenn beispielsweise angefordert, kann der Sicherheitsserver 140 mit der Speichervorrichtung 130 kommunizieren, um zu einer früheren Konfiguration zurückzukehren.
  • Der Security-as-Service kann beispielsweise ferner einen Geräteverfolgungsdienst beinhalten, der einem Besitzer des Endgeräts 150, der dem Zugriffskontrollschlüssel 213 des Besitzers entspricht (oder einem anderen autorisierten Benutzer, der einem anderen Zugriffskontrollschlüssel entspricht), Aktivitätsdaten bereitstellen kann. Die Aktivitätsdaten können beispielsweise Standortdaten und die Verwendung des Endgeräts 150 in verschiedenen Diensten des kartenbasierten Service-Netzwerks 225 beinhalten.
  • Die Endgerät-Identitätsdaten 188 können eine öffentliche Identität des Endgeräts 150 beinhalten, beispielsweise eine IMEI-Nummer (International Mobile Equipment Identity) (z. B. die Mobilgeräte-Identitätsnummer 253). Die Anmeldung der öffentlichen Identität des Endgeräts 150 für einen Dienst des kartenbasierten Netzwerks 225 (z. B. Mobilfunkverbindungen) kann mit dem Kartenserver (223) vorregistriert werden, ohne das Endgerät 150 zu verwenden. Die IMEI-Nummer kann beispielsweise mit einer internationalen Mobilteilnehmer-Identitätsnummer 255 in einer Datenbank des Kartenservers 223 assoziiert sein.
  • Wenn das Endgerät 150 versucht, sich mit dem kartenbasierten Netzwerk 225 zu verbinden, wird die öffentliche Identität (z. B. die IMEI-Nummer) des Endgeräts 150 in der Endgerätauthentifizierung 239 unter Verwendung der Endgerät-Identitätsdaten 188 authentifiziert. In Reaktion darauf wird das für die internationale Mobilteilnehmer-Identitätsnummer 255 registrierte Abonnement identifiziert und zur Erzeugung des Kartenprofils 219 verwendet, um das Kartenprofil 219 an das Endgerät 150 zu binden. Die Bindung kann in der Form erfolgen, dass das Kartenprofil 219 in der sicheren Speichervorrichtung 130 in dem Endgerät 150 gespeichert wird. Alternativ kann die Bindung auch in Form einer Zuordnung in einer Datenbank des Kartenservers 223 des Kartenprofils 219 zu den Endgerät-Identitätsdaten 188 ausgebildet sein.
  • In einigen Instanzen kann eine Reihe von Endgeräten (z. B. im Besitz eines Unternehmens-Client) eine reduzierte Anzahl von virtuellen SIM-Karten für die Mobilfunkverbindung gemeinsam nutzen. So benötigen beispielsweise IoT-Geräte des Unternehmens-Clients möglicherweise nicht gleichzeitig eine Mobilfunkverbindung. Wenn ein Endgerät 150 des Unternehmens-Clients eine Mobilfunkverbindung benötigt, wird ein verfügbares Kartenprofil 219, das eine virtuelle SIM-Karte darstellt, dynamisch für das Endgerät 150 just-in-time für die Mobilfunkdienste nach der Endgerätauthentifizierung 239 für die Dauer einer Kommunikationssitzung „installiert“. Wenn die Kommunikationssitzung beendet ist, kann die virtuelle SIM-Karte von einem anderen Endgerät des Unternehmens-Clients verwendet werden. Eine physische SIM-Karte kann von einem Mobiltelefon zu einem anderen Mobiltelefon bewegt werden, um verschiedenen Mobiltelefonen den Zugriff auf die auf derselben SIM-Karte registrierten Mobilfunkdienste zu ermöglichen. Das physische Bewegen der SIM-Karte von einem Mobiltelefon zu einem anderen ist jedoch ineffizient und für einen großen Einsatz nicht skalierbar. Die Just-in-Time-Installation einer virtuellen SIM-Karte kann die Einschränkungen der physischen SIM-Karten überwinden und bietet eine verbesserte Sicherheit durch die Endgerätauthentifizierung 239 vor der Installation der virtuellen SIM-Karte.
  • So kann beispielsweise eine derartige Just-in-Time-Installation einer virtuellen SIM-Karte dazu verwendet werden, die seltene oder einmalige Verwendung von Mobilfunkverbindungen zu erleichtern. So kann beispielsweise die Mobilfunkverbindung verwendet werden, um eine Over-the-Air-Aktualisierung der Firmware/Software durchzuführen. Der zu verwendende Status kann beispielsweise dazu verwendet werden, den Status des Endgeräts 150 in regelmäßigen Abständen (z. B. einmal pro Tag, Woche oder Monat) zu melden. Das Endgerät 150 kann beispielsweise seinen Betriebszustand und/oder seinen Standort in Bezug auf einen Garantieservice melden, der auf dem Standort des Endgeräts 150 basiert.
  • Der Security-as-a-Service kann beispielsweise ferner einen Identitätsdienst beinhalten, mit dem die öffentliche Identität des Endgeräts 150 auf sichere Weise geändert werden kann. So können beispielsweise eine Reihe von Endgeräten eines Unternehmens-Clients eine reduzierte Anzahl von IMEI-Nummern gemeinsam nutzen. Wenn ein Endgerät 150 versucht, sich mit dem kartenbasierten Service-Netzwerk 225 unter Verwendung einer alternativen öffentlichen Identitätsnummer in den Endgerät-Identitätsdaten 188 zu verbinden, kann der Kartenserver 223 und/oder der Sicherheitsserver 140 eine Endgerätauthentifizierung 239 durchführen, dem Endgerät 150 eine nicht verwendete IMEI-Nummer zuweisen, das Kartenprofil 219 mit der dem Endgerät 150 zugewiesenen IMEI-Nummer assoziieren, um das Endgerät 150 in die Lage zu versetzen, die Dienste von dem Netzwerk 225 als ein Gerät zu erhalten, das durch die IMEI-Nummer dargestellt wird.
  • Wenn eine derartige sichere Speichervorrichtung 130 mit dem vom Sicherheitsserver 140 angebotenen Security-as-a-Service verwendet wird, kann ein Original Equipment Manufacturer (OEM) von Endgeräten (z. B. 150) Sicherheit bereitstellen, indem er die sichere Speichervorrichtung 130 in die Endgeräte (z. B. 150) einbaut, ohne eigene Sicherheitsoperationen durchführen zu müssen, wie z. B. die Einspeisung von Sicherheitsschlüsseln, das Entwerfen und Implementieren von sicheren Elementen, Hardware-Komponenten oder speziellen System-on-a-Chip (SoC)-Funktionen. Somit können der Sicherheitsserver 140 und die sicheren Speichervorrichtungen (z. B. 130) den OEMs von IoT-Geräten (z. B. Endgeräten 150) Plug-and-Play-Sicherheit bieten.
  • Die Dienste des Sicherheitsservers 140 können verwendet werden, um sichere Speichervorrichtungen (z. B. 130) in einem Edge-Bereich nach dem Einsatz zu authentifizieren, zu aktivieren und zu verwalten. Diese Fähigkeit ermöglicht eine Plattformhärtung und einen Geräteschutz über den gesamten Lebenszyklus, der sich von der Fertigungslieferkette bis zur Installation und Verwaltung vor Ort erstreckt.
  • 9 veranschaulicht eine Technik zum Authentifizieren einer Speichervorrichtung gemäß einer Ausführungsform. Beispielsweise kann die Technik von 9 verwendet werden, um einen Sicherheitsdienst von 5 zu implementieren, der Identitätsdaten verwendet von 2.
  • Durch die Authentifizierungsoperationen von 9 kann ein Sitzungsschlüssel 263 eingerichtet werden, um die Kommunikation zwischen einem Sicherheitsserver 140 und einer Speichervorrichtung 130 zu sichern, ohne einem Client-Server 141 bei der Handhabung der Sicherheit zu vertrauen, um die Vertraulichkeit der Speichervorrichtung 130 zu schützen. Wahlweise kann der Sitzungsschlüssel 263 von der Zugriffssteuerung 109 verwendet werden, um Berechtigungen zur Anforderung ausgewählter Befehle 155 in der Speichervorrichtung 130 zu implementieren.
  • In 9 kann der Client-Server 141 an die Speichervorrichtung 130 eine Anforderung 271 für Identitätsdaten 113 der Speichervorrichtung 130 senden.
  • Die Anforderung 271 kann eine kryptographische Nonce 267 beinhalten. Beispielsweise kann die kryptografische Nonce 267 vom Sicherheitsserver 140 in Reaktion auf eine Anforderung vom Client-Server 141 erzeugt werden oder vom Client-Server 141 erzeugt und dem Sicherheitsserver 140 für die Anforderung 271 mitgeteilt werden. Alternativ kann die Speichervorrichtung 130 in Reaktion auf die Anforderung 271 die kryptographische Nonce 267 erzeugen und eine entsprechende Antwort 273 bereitstellen, die die kryptographische Nonce 267 beinhaltet.
  • In Reaktion auf die Anforderung 271 von Identitätsdaten 113 der Speichervorrichtung 130 stellt die Speichervorrichtung 130 eine Antwort 273 bereit, die eine Nachricht beinhaltet, die die eindeutige Identifizierung 111 der Speichervorrichtung 130 identifiziert.
  • Ein Verifizierungscode 133 wird für die Nachricht, die in der Antwort 273 bereitgestellt wird, unter Verwendung des geheimen Schlüssels 137 der Speichervorrichtung 130 erzeugt. Wie oben erläutert, kann der Verifizierungscode 133 implementiert werden, indem Techniken wie Hash-Digest, digitale Signatur und/oder hashbasierter Nachrichtenauthentifizierungscode verwendet werden. Die Überprüfung des Verifizierungscodes 133 kann von dem Sicherheitsserver 140 unter Verwendung eines entsprechenden kryptographischen Schlüssels 106 durchgeführt werden, der in Verbindung mit der eindeutigen Identifizierung 111 gespeichert ist.
  • Um die Antwort 273 und/oder den Verifizierungscode 133 vor Sicherheitsangriffen zu schützen (z. B. Wiederverwendung der Antwort 273 und/oder Versuche, den geheimen Schlüssel 137 wiederherzustellen), wird der Verifizierungscode 133 für eine Nachricht 131 erzeugt, die die eindeutige Identifizierung 111, einen Zählerwert 265 und die kryptographische Nonce 267 beinhaltet. Der Zählerwert 265 wird von einem Zähler 261 in der Speichervorrichtung 130 erhalten. Der Wert des Zählers 261 erhöht sich monoton. Beispielsweise kann der Zähler 261 dazu verwendet werden, einen Wert zu speichern, der die Anzahl der empfangenen Anforderungen von Identitätsdaten und/oder anderen Datenelementen oder sicherheitsrelevanten Operationen darstellt. Somit kann eine Antwort, die einen Zählerwert 265 enthält, der niedriger ist als ein zuvor gesehener Zählerwert, als ungültig betrachtet werden. Die kryptographische Nonce 267 wird bei der Erzeugung der Antwort 273 einmal verwendet und in der Speichervorrichtung 130 verworfen. Wenn die kryptographische Nonce 267 zuvor dem Sicherheitsserver 140 bereitgestellt oder von diesem erzeugt wurde, muss die Antwort 273 die kryptographische Nonce 267 nicht ausdrücklich in der Antwort 273 beinhalten.
  • Der Client-Server 141 leitet die Antwort 273 an den Sicherheitsserver 140 weiter, um die Authentifizierung der Speichervorrichtung 130 anzufordern. Unter Verwendung der eindeutigen Kennung 111, die in der Antwort 273 bereitgestellt wird, kann der Sicherheitsserver 140 einen entsprechenden kryptographischen Schlüssel 106 für die Überprüfung des Verifizierungscodes 133 lokalisieren. Beispielsweise kann der entsprechende kryptographische Schlüssel 106 der geheime Schlüssel 137 sein, oder ein entsprechender öffentlicher Schlüssel, wenn asymmetrische Kryptographie verwendet wird.
  • Basierend auf der Überprüfung des Verifizierungscodes 133 stellt der Sicherheitsserver 140 dem Client-Server 141 eine Authentizitätskennung 275 bereit. Die Authentizitätskennung 275 gibt an, ob die Speichervorrichtung 130 als authentisch gilt. Der Sicherheitsserver 140 kann beispielsweise ein Zertifikat erzeugen und bereitstellen, das vom Sicherheitsserver 140 signiert wurde, um die Zertifikatskette einer Speichervorrichtung 130 zurück zum Verifizierer (z. B. dem Sicherheitsserver) zu verlängern. Wahlweise kann der Sicherheitsserver 140 das Herunterladen einer Zertifikatsignierungsanforderung (certificate signing request - CSR) zulassen, die es dem Anforderer ermöglicht, eine Zertifizierungsstelle (certificate authority - CA) seiner Wahl (und nicht den Sicherheitsserver 140) zu verwenden.
  • Durch die Authentifizierung der Speichervorrichtung 130 können die Speichervorrichtung 130 und der Sicherheitsserver 140 einen Sitzungsschlüssel 263 für die Kommunikation miteinander in einer nachfolgenden Kommunikationssitzung einrichten. Die Sitzung kann durch einen Zeitpunkt vorbestimmter Länge nach der Antwort 273 oder der Überprüfung des Verifizierungscodes 133 eingeschränkt werden. Nach Ablauf des Zeitraums läuft der Sitzungsschlüssel 263 ab und kann somit zerstört oder verworfen werden. Ferner kann eine nachfolgende Anforderung von Identitätsdaten die vorherige Sitzung beenden, die durch die vorherige Anforderung von Identitätsdaten begonnen wurde.
  • Der Sitzungsschlüssel 263 kann zumindest teilweise basierend auf einem Geheimcode erzeugt werden, der zwischen dem Sicherheitsserver 140 und der Speichervorrichtung 130 bekannt ist, aber einem Kommunikationskanal zwischen dem Sicherheitsserver 140 und der Speichervorrichtung 130 nicht zur Verfügung steht.
  • Beispielsweise kann der Sitzungsschlüssel 263 zumindest teilweise basierend auf dem geheimen Schlüssel 137 abgeleitet werden. Ferner kann der Sitzungsschlüssel 263 zumindest zum Teil auf dem Zählerwert 265 und/oder der kryptographischen Nonce 267 basieren. Wahlweise kann der Sitzungsschlüssel 263 zumindest zum Teil auf dem Verifizierungscode 133 basieren. So können beispielsweise der Verifizierungscode 133 und der geheime Schlüssel 137 kombiniert werden, um den Sitzungsschlüssel 263 zu erzeugen.
  • In einigen Implementierungen ist der Sitzungsschlüssel 263 unabhängig von dem Verifizierungscode 133; und der Verifizierungscode 133 kann unter Verwendung des Sitzungsschlüssels 263 erzeugt werden, der von dem geheimen Schlüssel 137 oder einem anderen zwischen dem Sicherheitsserver 140 und der Speichervorrichtung 130 bekannten Code abgeleitet ist.
  • 10 veranschaulicht eine Technik zum Erzeugen eines Befehls zum Steuern von Sicherheitsoperationen einer Speichervorrichtung gemäß einer Ausführungsform. Beispielsweise kann die Technik von 9 verwendet werden, um einen Sicherheitsdienst von 5 unter Verwendung der Techniken der 3 und 10 zu implementieren.
  • Zum Beispiel, nachdem die Berechtigung des Client-Servers 141, die Ausführung eines Befehls 155 in der Speichervorrichtung 130 anzufordern, unter Verwendung von Client-Berechtigungsdaten 283 überprüft wurde, kann der Sicherheitsserver 140 dem Client-Server 141 in Reaktion auf eine Anfrage 281 des Client-Servers 141 einen Verifizierungscode 153 für den Befehl 155 bereitstellen.
  • Einige der Kommunikationen in 9 und 10 können kombiniert werden. In einigen Instanzen kann die Anforderung 281 beispielsweise die Identitätsdaten 113 beinhalten, die in der Speichervorrichtung 130 in der Antwort 273 auf eine Anforderung 271 an die Speichervorrichtung 130 bereitgestellt werden.
  • Nachdem der Client-Server 141 die Anforderung 281 gesendet hat, die den Befehl 155 und die Speichervorrichtung 130 identifiziert, kann der Sicherheitsserver 140 einen Verifizierungscode 153 für den Befehl 155 erzeugen, wenn der Client-Server 141 als berechtigt bestimmt wird, die Speichervorrichtung 130 unter Verwendung des Befehls 155 zu steuern oder zu betreiben. Die Anforderung 281 kann die eindeutige Identifizierung 111 der Speichervorrichtung 130 beinhalten, in welcher der Befehl 155 ausgeführt werden soll. Die eindeutige Identifizierung 111 kann beispielsweise vom Client-Server 141 aus der Antwort 273 auf die Anforderung 271 nach Identitätsdaten der Speichervorrichtung 130 und/oder der vom Sicherheitsserver 140 bereitgestellten Authentizitätskennung 275 extrahiert werden.
  • Wie oben erläutert, kann der Verifizierungscode 153 implementiert werden, indem Techniken wie Hash-Digest, digitale Signatur und/oder hashbasierter Nachrichtenauthentifizierungscode verwendet werden. Die Überprüfung des Verifizierungscodes 153 kann von der Zugriffssteuerung 109 unter Verwendung eines Zugriffskontrollschlüssels 149 für den Befehl 155 durchgeführt werden. Der Verifizierungscode 153 kann unter Verwendung eines kryptographischen Schlüssels 277 erzeugt werden, der im Sicherheitsserver 140 gespeichert ist, um die Berechtigungen zum Ausführen des Befehls 155 in der Speichervorrichtung 130 darzustellen. Der kryptographische Schlüssel 277 kann beispielsweise der Zugriffskontrollschlüssel 149 sein, wenn keine asymmetrische Kryptographie verwendet wird; alternativ dazu kann, wenn asymmetrische Kryptographie verwendet wird, der Zugriffskontrollschlüssel 149 ein öffentlicher Schlüssel in einem Schlüsselpaar sein und der kryptographische Schlüssel 277 ein privater Schlüssel in dem Schlüsselpaar.
  • In einer Ausführungsform sind der Zugriffskontrollschlüssel 149 und der kryptographische Schlüssel 277 für die Berechtigungen für den Befehl 155 vorkonfiguriert. In einer anderen Ausführungsform basieren der Zugriffskontrollschlüssel 149 und der kryptographische Schlüssel 277 auf dem Sitzungsschlüssel 263. So kann beispielsweise der Sitzungsschlüssel 263 als Zugriffskontrollschlüssel 149 und der kryptographische Schlüssel 277 für die Zugriffssteuerung des Befehls 155 verwendet werden. In einigen Ausführungsformen ist der Sitzungsschlüssel 263 ein Schlüssel in einem Paar asymmetrischer Schlüssel, der verwendet werden kann, um den kryptographischen Schlüssel 277 und den Zugriffskontrollschlüssel 149 zu implementieren, wobei die Verschlüsselung unter Verwendung asymmetrischer Kryptographie durchgeführt wird.
  • Wenn der Verifizierungscode 153 auf dem Sitzungsschlüssel 263 basiert, läuft der Verifizierungscode 153 ab, wenn der Sitzungsschlüssel 263 abläuft, was die Wiederverwendung des Verifizierungscodes 153 über die Sitzung hinaus verhindert, in der der Sitzungsschlüssel 263 gültig ist.
  • Eine in der Anforderung 285 bereitgestellte Nachricht 151 kann den Befehl 155 und eine kryptographische Nonce 287 beinhalten. Die kryptographische Nonce 287 ist für den Befehl 155/die Anforderung 285 angeordnet und unterscheidet sich somit von der kryptographischen Nonce 267 für die Übertragung der Identitätsdaten der Speichervorrichtung 130.
  • Der Sicherheitsserver 140 kann beispielsweise in Reaktion auf die Anforderung 281 die kryptographische Nonce 287 erzeugen und sie für die Erzeugung des Verifizierungscodes 153 verwenden. Die kryptographische Nonce 287 kann mit dem Verifizierungscode 153 bereitgestellt werden, damit der Client-Server 141 die Anforderung 285 erzeugen kann. Alternativ dazu kann der Client-Server 141 die kryptographische Nonce 287 erzeugen und sie dem Sicherheitsserver 140 mit der Anforderung 281 bereitstellen. Alternativ dazu kann der Client-Server 141 zum Erzeugen der Anforderung 281 die kryptographische Nonce 287 vom Sicherheitsserver 140 anfordern.
  • Nachdem der Client-Server 141 die Anforderung 285 mit dem von dem Sicherheitsserver 140 erhaltenen Verifizierungscode 153 gesendet hat, verwendet der Speichervorrichtung 130 den Zugriffskontrollschlüssel 149, um den Verifizierungscode 153 für die in der Anforderung 285 enthaltene Nachricht 151 zu überprüfen. Wenn der Verifizierungscode 153 gültig ist, erlaubt die Zugriffssteuerung 109 der Speichervorrichtung 130, den Befehl 155 auszuführen; andernfalls kann die Zugriffssteuerung 109 die Ausführung des Befehls 155 in der Speichervorrichtung 130 blockieren.
  • Der Befehl 155 kann beispielsweise konfiguriert sein, um ein Sicherheitsmerkmal in der Speichervorrichtung 130 zu aktivieren.
  • Der Befehl 155 kann beispielsweise konfiguriert sein, um den Zugriffskontrollschlüssel 149 oder einen geheimen Schlüssel 137 in der Speichervorrichtung 130 zu ersetzen. Der neue geheime Schlüssel 137 kann beispielsweise unter Verwendung zusätzlicher nicht geheimer Daten erzeugt werden, die während der Herstellung einer Rechenvorrichtung bereitgestellt werden, in der die Speichervorrichtung 130 installiert ist, die aber zum Zeitpunkt der Herstellung der Speichervorrichtung 130 nicht verfügbar sind. Der neue Zugriffskontrollschlüssel 149 kann beispielsweise so konfiguriert sein, dass er dem Client-Server 141 eine Reihe von Berechtigungen bereitstellt.
  • Nach der Ausführung des Befehls 155 stellt die Speichervorrichtung 130 eine Antwort 289 bereit, die von dem Client-Server 141 an den Sicherheitsserver 140 weitergeleitet werden kann. Der Sicherheitsserver 140 kann bestimmen, ob die Antwort 289 korrekt ist. Die Speichervorrichtung 130 kann beispielsweise die Antwort unter Verwendung des Sitzungsschlüssels 263 zur Überprüfung durch den Sicherheitsserver 140 signieren.
  • In einigen Implementierungen wird ein geheimer Ersatzschlüssel zum Ersetzen eines bestehenden geheimen Schlüssels 137 der Speichervorrichtung 130 unabhängig von der Speichervorrichtung 130 und vom Sicherheitsserver 140 aus einem Geheimcode (z. B. einem eindeutigen Vorrichtungsschlüssel 101) und zusätzlichen Daten erzeugt, die über den Client-Server 141 ausgetauscht werden. Wahlweise können die zusätzlichen Daten durch eine Verschlüsselung geschützt werden, die unter Verwendung des Sitzungsschlüssels 263 durchgeführt wird.
  • In einigen Implementierungen wird ein geheimer Ersatzschlüssel von der Speichervorrichtung 130 an den Sicherheitsserver 140 in einer verschlüsselten Form eines Chiffretextes übermittelt, der unter Verwendung des Sitzungsschlüssels 263 erzeugt wurde.
  • 11 zeigt ein Verfahren für eine virtuelle Smartcard gemäß einer Ausführungsform. Beispielsweise kann das Verfahren von 11 in dem in 6 veranschaulichten System mit dem Sicherheitsserver 140 und den Sicherheitsmerkmalen einer Speichervorrichtung 130, die oben im Zusammenhang mit den 1-5 erläutert wurden, unter Verwendung der Techniken von 9 und 10 implementiert werden.
  • Bei Block 301 liefert eine Logikschaltung oder eine Steuerung, die in einem integrierten Schaltungspaket einer Speichervorrichtung 130 untergebracht ist, Vorrichtungsidentitätsdaten 211, die für die Speichervorrichtung 130 repräsentativ sind und zumindest teilweise auf einem Root-Code der Speichervorrichtung 130 basieren.
  • Die Speichervorrichtung 130 kann beispielsweise eine Physical Unclonable Function (PUF) zum Erzeugen des Root-Codes aufweisen.
  • Die Logikschaltung oder Steuerung kann beispielsweise eine Kryptographie-Engine beinhalten, die so konfiguriert ist, dass sie kryptographische Berechnungen durchführt, ohne einen Prozessor außerhalb des integrierten Schaltungspakets zu verwenden.
  • Bei Block 303 speichert die Speichervorrichtung 130 in einem ersten Speicherbereich von integrierten Schaltungsspeicherzellen, die auf einem oder mehreren in dem integrierten Schaltungspaket eingeschlossenen Chip(s) ausgebildet sind, die Vorrichtungsidentitätsdaten 211.
  • Bei Block 305 steuert die Logikschaltung den Zugriff auf den ersten Speicherbereich basierend auf einem Zugriffskontrollschlüssel 213.
  • Bei Block 307 speichert die Speichervorrichtung 130 in einem zweiten Speicherbereich der integrierten Schaltungsspeicherzellen Boot-Anweisungen, die von einem Endgerät 150 ausgeführt werden können, das die Speichervorrichtung 130 als eine von einer Vielzahl von Komponenten des Endgeräts 150 aufweist.
  • So können beispielsweise die Vorrichtungsidentitätsdaten 211 basierend auf einem Hash-Wert berechnet und/oder aktualisiert werden, der durch das Anwenden einer kryptographischen Hash-Funktion auf die im zweiten Speicherbereich in der Speichervorrichtung 130 gespeicherten Boot-Anweisungen ermittelt wurde. Somit können die Vorrichtungsidentitätsdaten 211 nicht nur mit der Hardware der Speichervorrichtung 130, sondern auch mit den in der Speichervorrichtung 130 gespeicherten Boot-Anweisungen (und/oder anderen Daten, wie beispielsweise den Trace-Daten 215) verknüpft werden.
  • Bei Block 309 wird ein Kartenprofil 219 in die integrierten Schaltungsspeicherzellen der Speichervorrichtung 130 geschrieben, um eine Funktion einer Smartcard basierend auf dem Kartenprofil 219 zu emulieren.
  • Der Endgerät 150 kann beispielsweise in der Speichervorrichtung 130 so konfiguriert sein, dass er in einer Speichervorrichtung 130 Identitätsdaten 188 erzeugt, die für eine Komponentenkonfiguration des Endgeräts 150 beim Booten repräsentativ sind. Die Endgerät-Identitätsdaten 188 können unter Verwendung der Vorrichtungsidentitätsdaten 211, der während der Konstruktion 233 des Endgeräts 150 in der Speichervorrichtung 130 gespeicherten Trace-Daten 215 und der Identifizierungsdaten von Komponenten des Endgeräts 150, die sich außerhalb des integrierten Schaltungspakets der Speichervorrichtung 130 befinden, berechnet werden.
  • Das Kartenprofil 219 kann beispielsweise basierend auf der Identifizierung der Endgerät-Identitätsdaten 188 identifiziert, erzeugt und/oder dem Endgerät 150 zugewiesen werden.
  • Das Kartenprofil 219 kann beispielsweise ein Softmodul (z. B. Softkartenmodul 243, Authentifizierungsmodul 259) beinhalten, das Anweisungen aufweist, die von der Logikschaltung oder einem Prozessor des Endgeräts 150 oder einer beliebigen Kombination davon ausgeführt werden können, um die Funktion der Smartcard zu emulieren.
  • Das Kartenprofil 219 kann beispielsweise in der Speichervorrichtung 130 gespeichert werden, um eine SIM-Karte (Subscriber Identification Module) zu emulieren, die typischerweise in der Authentifizierung eines Mobiltelefons beim Zugriff auf ein Mobilfunknetz verwendet wird. Das Kartenprofil 219 kann beispielsweise die internationale Mobilteilnehmer-Identitätsnummer 255 und einen Authentifizierungsschlüssel 257 beinhalten, der mit der internationalen Mobilteilnehmer-Identitätsnummer 255 assoziiert ist.
  • Wenn beispielsweise das Endgerät 150 eine Mobilfunkverbindung zur internationalen Mobilteilnehmer-Identitätsnummer 255 anfordert, kann ein Betreiber von mobilen/zellularen Netzwerken eine Sicherheitsabfrage stellen, um das Endgerät 150 zu authentifizieren. In Reaktion darauf kann das Kartenprofil 219 dazu verwendet werden, eine Antwort auf eine Sicherheitsabfrage zu erzeugen, indem eine Nachricht mit einer Zufallszahl unter Verwendung des Authentifizierungsschlüssels 257 signiert wird, um zu zeigen, dass das Endgerät im Besitz des Authentifizierungsschlüssels 257 ist. So kann beispielsweise die Nachricht, die die Zufallszahl aufweist, unter Verwendung des Authentifizierungsschlüssels 257 signiert werden. Eine Antwort auf die Sicherheitsabfrage kann einen Teil der digitalen Signatur zur Authentifizierung beinhalten; und ein anderer Teil der digitalen Signatur kann als symmetrischer kryptographischer Schlüssel zum Verschlüsseln einer mit der Mobilfunkverbindung assoziierten Kommunikationssitzung verwendet werden.
  • 12 zeigt ein Verfahren für Sicherheitsdienste, die basierend auf Sicherheitsmerkmalen einer Speichervorrichtung gemäß einer Ausführungsform bereitgestellt werden. Beispielsweise kann das Verfahren von 12 in dem Computersystem von 1 basierend auf den Sicherheitsmerkmalen einer Speichervorrichtung 130, die oben in Verbindung mit den 1-5 erläutert wurden, unter Verwendung der Techniken der 9 und 10 implementiert werden.
  • Bei Block 321 empfängt ein Sicherheitsserver 140 eine Anforderung (z. B. 173 und/oder 281) von einem Client-Server 141. Die Anforderung beinhaltet Identitätsdaten 113 einer Speichervorrichtung 130, die eine Zugriffssteuerung 109 aufweist. Die Anforderung kann ferner eine Challenge-Nonce von dem Sicherheitsserver 140 beinhalten, um die Anforderung und/oder die Antwort auf die Anforderung nicht wiederholbar zu machen und somit Wiederholungsangriffe abzuwehren.
  • Bei Block 323 bestimmt der Sicherheitsserver 140, basierend auf einem Geheimcode der Speichervorrichtung 130 und den Identitätsdaten 113, die Authentifizierung der Speichervorrichtung 130.
  • Beispielsweise kann der Geheimcode ein eindeutiger Vorrichtungsschlüssel 101 sein, der außerhalb der Speichervorrichtung 130 nach der Fertigstellung der Speichervorrichtung 130 in einer sicheren Einrichtung nicht weitergegeben wird. Die Identitätsdaten 113 basieren auf einem geheimen Schlüssel 137, der zumindest teilweise basierend auf dem eindeutigen Vorrichtungsschlüssel 101 erzeugt wird. Während der Herstellung der Speichervorrichtung in der gesicherten Einrichtung wird der Geheimcode in den Sicherheitsserver 140 eingespeichert, um, zumindest teilweise basierend auf dem Geheimcode, einen kryptographischen Schlüssel 106 zu erzeugen, der in den Identitätsdaten 113 überprüft wird. Der zur Überprüfung der Identitätsdaten 113 verwendete kryptographische Schlüssel 106 kann ferner basierend auf Daten 125 erzeugt werden, die von einem Host-System 120 der Speichervorrichtung 130 während des Bootens des Host-Systems 120 empfangen wurden. Nach der Fertigstellung der Herstellung der Speichervorrichtung 130 in der gesicherten Einrichtung kann die Speichervorrichtung 130 in ein Endgerät 150 eingebaut werden, welches das Host-System 120 aufweist, das mit einer Host-Schnittstelle 147 der Speichervorrichtung 130 verbunden ist. Zumindest ein Abschnitt der Anweisungen, die in einer Verarbeitungsvorrichtung 118 des Host-Systems 120 zur Ausführung konfiguriert sind, ist in der Speichervorrichtung 130 gespeichert.
  • Bei Block 325 erzeugt der Sicherheitsserver 140 einen Verifizierungscode 153 für einen Befehl 155.
  • Zum Beispiel, nach dem Bestimmen, basierend auf den im Sicherheitsserver 140 gespeicherten Client-Berechtigungsdaten 283, dass der Client-Server 141 Berechtigungen zum Ausführen des Befehls 155 in der Speichervorrichtung 130 aufweist, kann der Verifizierungscode 153 für den Client-Server 141 erzeugt und in der Antwort 174, basierend auf den Berechtigungen, bereitgestellt werden.
  • Zum Beispiel kann, nach dem Bestimmen, dass sich die Speichervorrichtung 130 in einem Endgerät 150 befindet, das als verloren oder gestohlen gemeldet wurde, der Verifizierungscode 153 für den Befehl 155 zum Deaktivieren der Speichervorrichtung 130 erzeugt werden.
  • Bei Block 327 kommuniziert der Sicherheitsserver 140 an den Client-Server 141 eine Antwort 174, die den Verifizierungscode 153 enthält.
  • Die Antwort 174 kann beispielsweise auf einer Bestimmung basieren, dass die Speichervorrichtung 130 den Geheimcode aufweist, wenn die Identitätsdaten 113 einen Verifizierungscode 133 enthalten, der unter Verwendung des Geheimcodes erzeugt wurde.
  • Bei Block 329 überträgt der Client-Server 141 den Befehl 155 und den Verifizierungscode 153 an die Speichervorrichtung 130.
  • Bei Block 331 überprüft die Zugriffssteuerung 109 der Speichervorrichtung 130 den Verifizierungscode 153, um zu bestimmen, ob die Ausführung des Befehls 155 in der Speichervorrichtung 130 blockiert werden soll.
  • Bei Ausführung in der Speichervorrichtung 130 bewirkt der Befehl 155 beispielsweise eine Änderung eines Zugriffskontrollschlüssels 149, der von der Zugriffssteuerung 109 verwendet wird, um Verifizierungscodes (z. B. 153) zu überprüfen, die unter Verwendung eines kryptographischen Schlüssels 145 erzeugt wurden, der für eine Berechtigung steht, einen oder mehrere Befehle in der Speichervorrichtung 130 auszuführen.
  • Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 beispielsweise eine Änderung der Einstellung von Sicherheitsmerkmalen der Speichervorrichtung 130 oder eine Änderung des in der Speichervorrichtung gespeicherten Inhalts (z. B. für ein Over-the-Air-Update). Wahlweise kann der Befehl 155 die Speichervorrichtung 130 veranlassen, eine kryptografische Messung von Daten, die in der Speichervorrichtung 130 gespeichert sind, und/oder eine digitale Signatur, die von der Speichervorrichtung 130 signiert wurde, für die Daten, die in der Speichervorrichtung 130 gespeichert sind, zu erzeugen. Die Änderung kann beispielsweise die Aktivierung eines Sicherheitsmerkmals in der Speichervorrichtung 130 oder die Deaktivierung des Sicherheitsmerkmals beinhalten.
  • Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 beispielsweise die Speichervorrichtung 130, den Zugriff auf einen in der Speichervorrichtung 130 gespeicherten Plattform-Bootloader zu sperren, nachdem das Endgerät 150, das die Speichervorrichtung 130 enthält, als verloren oder gestohlen gemeldet wurde.
  • Beispielsweise veranlasst der Befehl 155 bei Ausführung in der Speichervorrichtung 130 die Zugriffssteuerung 116, den Zugriff auf einen oder mehrere Abschnitte der Speicherzellen 103 in dem Speichervorrichtung 130 zu sperren.
  • Beispielsweise veranlasst der Befehl 155, wenn er in der Speichervorrichtung 130 ausgeführt wird, die Speichervorrichtung 130, einen Entschlüsselungsschlüssel für in der Speichervorrichtung 130 gespeicherte Daten zu löschen.
  • Beispielsweise veranlasst der Befehl 155, wenn er in der Speichervorrichtung 130 ausgeführt wird, die Speichervorrichtung 130, zumindest einen Aspekt der Speichervorrichtung 130 irreversibel zu zerstören.
  • Beispielsweise kann, basierend auf einer Überprüfung der Identitätsdaten 113, ein Sitzungsschlüssel 263 zwischen dem Sicherheitsserver 140 und der Speichervorrichtung 130 eingerichtet und bekannt gemacht werden, ohne dass der Sitzungsschlüssel 263 über eine Verbindung zwischen dem Sicherheitsserver 140 und der Speichervorrichtung 130 übermittelt wird. Ein Zugriffskontrollschlüssel 149, der von der Zugriffssteuerung 109 verwendet wird, um einen Verifizierungscode 153 für einen Befehl 155 zu überprüfen, kann auf dem Sitzungsschlüssel 263 basieren.
  • Wahlweise kann der Sicherheitsserver 140 veranlassen, dass der Befehl 155 und der Verifizierungscode 153 basierend auf Anweisungen, die von der Speichervorrichtung 130 geladen und zum Ausführen in dem Host-System 120 ausgeführt werden, an die Speichervorrichtung 130 übertragen werden.
  • 13 zeigt ein Verfahren zum Onboarding eines Endgeräts für einen Dienst, der gemäß einer Ausführungsform für ein Konto abonniert wurde. Beispielsweise kann das Verfahren von 13 in dem Computersystem von 1 basierend auf den Sicherheitsmerkmalen einer Speichervorrichtung 130, die oben in Verbindung mit den 1-5 erläutert wurden, unter Verwendung der Techniken der 9 und 10 implementiert werden.
  • Bei Block 341 empfängt ein Server-System von einem Endgerät 150 eine Anforderung (z. B. 171 und/oder 173), die mit einem Dienst assoziiert ist. Der Dienst wird über ein Computer-Netzwerk (z. B. Netzwerk 110) bereitgestellt, das eine Vielzahl von Abonnenten bedient, die durch unterschiedliche Konten dargestellt werden. Die Anforderung beinhaltet Identitätsdaten 113, die von einer Speichervorrichtung 130 erzeugt werden, die in dem Endgerät 150 konfiguriert ist.
  • Das Server-System kann beispielsweise den Sicherheitsserver 140 und/oder den Kartenserver 223 beinhalten. Wahlweise kann das Server-System ferner einen Client-Server 141 beinhalten, der mit dem Sicherheitsserver 140 kommuniziert.
  • Der Dienst kann beispielsweise ein Dienst für Mobilfunkverbindungen, ein Zahlungskartendienst, ein Videoüberwachungsdienst, ein Cloud-basierter Speicher- oder Berechnungsdienst usw. sein.
  • Bei Block 343 bestimmt das Server-System in Reaktion auf die Anforderung und basierend auf einem Geheimcode der Speichervorrichtung 130 und den Identitätsdaten 113 die Authentifizierung des Endgeräts 150. Beispielsweise können die Operationen in Block 343 auf ähnliche Weise wie die in Block 323 betriebenen Operationen durchgeführt werden.
  • Bei Block 345 wird basierend auf den Identitätsdaten 113 ein Teilnehmer aus der Vielzahl von Teilnehmern basierend auf den Eigentumsdaten des Endgeräts 150 identifiziert.
  • Beispielsweise wird bei der Herstellung des Endgeräts 150 in einer Fertigungseinrichtung eines Endgeräteherstellers (z. B. 150) die Speichervorrichtung 130 mit dem Host-System 120 verbunden; und in der Speichervorrichtung 130 wird ein Softwarepaket für die Operation des Endgeräts 150 installiert. Das Endgerät 150 wird getestet. In der Endgerätregistrierung 235 ist die Speichervorrichtung 130 konfiguriert, um den geheimen Schlüssel 137 zu erzeugen, der nicht nur die Speichervorrichtung 130 mit dem eindeutigen Vorrichtungsschlüssel 101 darstellt, sondern auch das Endgerät 150, das die Speichervorrichtung 130 mit den Daten 123 in den Speicherzellen 103 und den Daten 125 aus dem Host-System 120 beim Booten aufweist.
  • Wenn das Endgerät 150 vom Hersteller an einen Händler und an einen Benutzer oder Teilnehmer übertragen wird, werden Daten, die mit der öffentlichen Identifizierung des Endgeräts 150 und der Identität des Teilnehmers assoziiert sind, im Server-System gespeichert. Die Eigentumsdaten können im Server-System gespeichert werden, ohne dass das Endgerät 150 physisch betrieben werden muss (z. B. ohne die Verpackung zu öffnen, in der das Endgerät 150 seit der Herstellung des Endgeräts 150 verpackt ist). Beispielsweise kann die öffentliche Identifizierung des Endgeräts 150 die eindeutige Identifizierung 111 des Endgeräts 150 und/oder Daten 127 beinhalten, die den Hersteller, das Modell und die Seriennummer des Endgeräts 150 identifizieren, wie sie dem Hersteller des Endgeräts 150 bekannt sind.
  • Wenn der Teilnehmer ein Konto für den dem Endgerät 150 bereitgestellten Dienst einrichtet, kann die Identität des Teilnehmers mit dem Konto assoziiert werden.
  • Beispielsweise können die Client-Berechtigungsdaten 283 die Eigentumsdaten des Endgeräts 150 und/oder die Teilnehmerdaten, die das Konto des Teilnehmers anzeigen, beinhalten.
  • Bei Block 347 wird in Reaktion auf die in Block 341 empfangene Anforderung ein Konto des identifizierten Teilnehmers bestimmt.
  • Beispielsweise kann das Konto identifiziert werden, indem die Identität des Teilnehmers, die mit den Identitätsdaten 113 in den Eigentümerdaten assoziiert ist, mit derjenigen übereinstimmt, die mit dem Konto in den Teilnehmerdaten assoziiert ist.
  • Bei Block 349 veranlasst das Server-System, dass der Dienst dem Endgerät 150 basierend auf dem Konto bereitgestellt wird.
  • In einigen Implementierungen geben die im Sicherheitsserver 140 gespeicherten Client-Berechtigungsdaten 283 die Verbindung zwischen den Identitätsdaten 113 und dem Konto des Teilnehmers an. Somit kann bei der Überprüfung der Authentizität des Endgeräts 150 basierend auf den empfangenen Identitätsdaten 113 das Konto anhand der Client-Berechtigungsdaten 283 identifiziert werden.
  • In alternativen Implementierungen geben die im Sicherheitsserver 140 gespeicherten Client-Berechtigungsdaten 283 die Verbindung zwischen den Identitätsdaten 113 und der Identität des Teilnehmers als Besitzer an. Somit kann bei der Überprüfung der Authentizität des Endgeräts 150 basierend auf den empfangenen Identitätsdaten 113 den Teilnehmer anhand der Client-Berechtigungsdaten 283 identifiziert werden. Ein anderer Server (z. B. Client-Server 141 oder Kartenserver 223) speichert die Teilnehmerdaten, um das Konto basierend auf dem vom Sicherheitsserver 140 identifizierten Teilnehmer zu identifizieren.
  • Unter Verwendung des Verfahrens von 13 kann der für ein Konto abonnierte Dienst einem Endgerät 150 bereitgestellt/zugeführt werden, ohne dass das Endgerät 150 selbst an den Teilnehmer und/oder das Konto des Teilnehmers angepasst werden muss. Beispielsweise kann der Teilnehmer einfach die Verpackung öffnen, in der das Endgerät 150 bei der Herstellung des Endgeräts 150 untergebracht ist, und das Endgerät 150 verwenden, um auf den für das Konto des Teilnehmers abonnierten Dienst zuzugreifen, ohne eine Karte (z. B. eine SIM-Karte) zur Identifizierung des Teilnehmers oder des Kontos einzulegen und/oder ohne mit einer Anwendung oder einem Dienstprogramm zu interagieren, die bzw. das im Endgerät 150 läuft, um den Teilnehmer oder das Konto zu identifizieren.
  • Beispielsweise weist das Endgerät 150 nach der Herstellung des Endgeräts 150 vor dem Empfangen der Anforderung in Block 341 keine Anpassung für den Teilnehmer und keine Anpassung für das Konto auf. Das Endgerät 150 ist so hergestellt, dass es von einer Vielzahl von Teilnehmern genutzt werden kann. In Reaktion auf die in Block 341 empfangene Anforderung wird das Endgerät 150 automatisch mit dem betreffenden Konto des Teilnehmers für den Dienst verknüpft.
  • Beispielsweise enthält das Endgerät 150 vor und/oder nach dem Empfangen des Dienstes für das Konto des Teilnehmers keine Hardwarekomponente, die in das Endgerät 150 eingesetzt wird, um den Teilnehmer, das Konto oder eine beliebige Kombination davon darzustellen.
  • Beispielsweise enthält das Endgerät 150 zumindest vor der in Block 341 empfangenen Anforderung keine Daten, die im Endgerät 150 gespeichert sind, um den Teilnehmer, das Konto oder eine beliebige Kombination davon darzustellen.
  • Beispielsweise enthält das Endgerät 150 zumindest vor der in Block 341 angeforderten Anforderung keine Kennung des Teilnehmers, des Kontos oder einer beliebigen Kombination davon, ohne die Eigentumsdaten des Endgeräts 150; und die Eigentumsdaten sind im Server-System, nicht aber im Endgerät 150 gespeichert.
  • Wahlweise kann das Server-System und/oder das Endgerät 150 in Reaktion auf die in Block 341 empfangene Anforderung die Zuordnung der Identitätsdaten des Endgeräts 150 zu dem Konto des Teilnehmers speichern.
  • Beispielsweise kann der Sicherheitsserver 140 unter Verwendung eines kryptographischen Schlüssels 145 einen Verifizierungscode 153 für einen Befehl 155 erzeugen. Das Server-System kann die Speichervorrichtung 130 veranlassen, den Befehl 155 und den Verifizierungscode 153 zu empfangen. Vor der Ausführung des Befehls 155 in der Speichervorrichtung 130 ist die Zugriffssteuerung 109 der Speichervorrichtung 130 konfiguriert, um den Verifizierungscode 153 basierend auf einem Zugriffskontrollschlüssel 149 zu überprüfen. Wahlweise können der Zugriffskontrollschlüssel 149 und der kryptographische Schlüssel 145 auf einem Sitzungsschlüssel basieren, der in der Art und Weise eingerichtet wurde, wie in 9 erläutert.
  • Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 die Speichervorrichtung 130, zusätzliche Daten zum Identifizieren des Kontos zu speichern. Beispielsweise können die zusätzlichen Daten Teil der Vorrichtungsinformationen 121 sein, die zum Erzeugen des geheimen Schlüssels 137 beim Erzeugen aktualisierter Identitätsdaten 113 verwendet werden. Beispielsweise können die zusätzlichen Daten in den Daten 127 in einer Nachricht 131 in aktualisierten Identitätsdaten 113 enthalten sein, die in der Speichervorrichtung 130 nach der Ausführung des Befehls erzeugt werden. Die zusätzlichen Daten können beispielsweise ein Kartenprofil 219 beinhalten, welches das Konto des Teilnehmers identifiziert.
  • Alternativ können Daten, die den Identitätsdaten 113 der Speichervorrichtung 130 und/oder des Endgeräts 150 zugeordnet sind, in dem Server-System gespeichert werden (z. B. als Teil der Client-Berechtigungsdaten 283 und/oder des Kartenprofils 219), ohne den geheimen Schlüssel 137 zu ändern, der zum Signieren der Identitätsdaten 113 verwendet wird.
  • Da keine Operation am Endgerät 150 erforderlich ist, um den Dienst eines Kontos eines Teilnehmers an das Endgerät 150 zu leiten, kann das Endgerät 150 als IoT-Gerät mit Mobilfunkverbindung konfiguriert sein, ohne dass eine Benutzeroberfläche für dessen Anpassung erforderlich ist, um Mobilfunkverbindungsdienste zu empfangen. Das Endgerät 150 kann beispielsweise ohne einen Steckplatz konfiguriert sein, in den eine Karte zum Identifizieren des Teilnehmers eingesteckt werden kann. Das Endgerät 150 kann beispielsweise ohne eine Benutzeroberfläche konfiguriert sein, um Eingaben von einem Endbenutzer zum Identifizieren des Teilnehmers zu empfangen.
  • In einigen Implementierungen weist ein Endgerät 150 eine generische Hardwarekonfiguration auf, die mit unterschiedlicher Firmware betrieben werden kann, um verschiedene Funktionen bereitzustellen. Ferner kann eine aktualisierte Version der Firmware auf dem Endgerät 150 installiert werden, um Defekte oder Bugs im Endgerät 150, auf dem die vorherige Version der Firmware läuft, zu korrigieren, um die Leistung zu verbessern und/oder um neue Funktionen bereitzustellen. Wahlweise kann eine Firmware-Anwendung auf einer Basisversion der Firmware laufen, um Funktionen, Merkmale und/oder Dienste hinzuzufügen.
  • So können beispielsweise verschiedene Client-Server 141, ..., 143 verschiedene Dienste bereitstellen, indem sie die gleiche Hardware des Endgeräts 150 verwenden, auf dem unterschiedliche Firmware läuft. So können beispielsweise die verschiedenen Client-Server 141, ..., 143 ähnliche Dienste bereitstellen, indem sie dieselbe Hardware des Endgeräts 150 verwenden, aber unterschiedliche Prozesse durchführen, die mit unterschiedlicher Firmware implementiert sind.
  • Das Endgerät 150 kann für verschiedene Client-Server 141, ..., 143 angepasst werden, nachdem das Endgerät 150 zusammengestellt und an einen Endbenutzer oder Teilnehmer versandt wurde, indem eine andere Firmware installiert wird.
  • Zum Beispiel kann im Kommunikationsnetzwerk 110 ein Online-Firmware-Speicher konfiguriert sein, damit der Benutzer eine Firmware-Version erwerben kann. Die Installation einer ausgewählten Firmware-Version kann die Installation einer Firmware-Anwendung beinhalten, die mit einer Basisversion der Firmware läuft, oder auch nicht. Nach der Installation der ausgewählten Firmware-Version wird das Endgerät 150 in mindestens einem Aspekt angepasst, der sich von dem Endgerät 150 unterscheidet, auf dem die vorherige Firmware läuft.
  • In einigen Instanzen stellt die aktualisierte Firmware eine Anforderung des Endgeräts 150 dar, die vom Benutzer des Endgeräts 150 angefordert wurde. Der Dienst des Endgeräts 150 kann sich auf die Dienste eines Client-Servers oder eines Anbieters stützen, oder auch nicht.
  • Die Funktionalität des Endgeräts 150 kann zumindest teilweise durch seine Firmware definiert sein. Wenn beispielsweise auf dem Endgerät 150 eine Version der Firmware läuft, kann das Endgerät 150 dem Benutzer des Endgeräts 150 eine Funktion bereitstellen; und wenn auf dem Endgerät 150 eine andere Version der Firmware läuft, kann das Endgerät 150 dem Benutzer des Endgeräts 150 eine andere Funktion bereitstellen.
  • So können beispielsweise verschiedene Anbieter von Drittdiensten Software-/Firmware-Lösungen für IoT-Geräte basierend auf einer gemeinsamen, generischen Hardware-Plattform bereitstellen. So kann beispielsweise die im Online-Store bereitgestellte Firmware so programmiert werden, dass ein generisches IoT-Gerät mit einem Server eines Dritten zusammenarbeiten kann, um eine bestimmte Art von Diensten bereitzustellen. Wahlweise kann eine im Online-Store bereitgestellte Firmware-Anwendung auf einer generischen Version der Firmware laufen und die von der generischen Firmware bereitgestellten Basisdienste verwenden, um die Dienste einer bestimmten Art bereitzustellen. Eine Kombination aus einer Basisversion der Firmware und einer Firmware-Anwendung kann als eine erweiterte Version der Firmware angesehen werden. Wenn Basisversionen von Firmware für verschiedene Endgeräte-Hardwareplattformen standardisierte Dienste anbieten, kann eine Firmware-Anwendung geräteunabhängig sein und eine Reihe von IoT-Geräten verschiedener Hersteller unterstützen. Alternativ kann eine Firmware-Anwendung auch geräteabhängig sein und Hardware-Funktionen verwenden, die von Hersteller zu Hersteller variieren können.
  • Ein Sicherheitsserver 140 kann mit dem Online-Firmwarespeicher gekoppelt werden, um in Reaktion auf die Überprüfung der Authentizität der Endgeräte Firmware-Updates für die Endgeräte (z. B. 150) bereitzustellen.
  • Wenn zum Beispiel ein Endgerät 150 zunächst mit einem Client-Server 141 verbunden wird, kommuniziert der Client-Server 141 mit dem Sicherheitsserver 140, um die Identität und/oder Authentizität des Endgeräts 150 zu überprüfen. Der Besitzer des Endgeräts 150 kann im Rahmen des Überprüfungsprozesses bestimmt werden. Nachdem die abonnierten Dienste des Endgeräts 150 identifiziert wurden, kann eine entsprechende Firmware-Anwendung aus dem Online-Firmware-Store heruntergeladen und durch ein Over-the-Air (OTA)-Update auf dem Endgerät 150 installiert werden.
  • Zum Beispiel kann der Sicherheitsserver 140 den Verifizierungscode 153 für den Befehl 155 zum Installieren der Firmware-Anwendung in der Speichervorrichtung 130 erzeugen. Nach der Ausführung des Befehls 155 wird die Firmware-Anwendung Teil der Daten 123, die in den Speicherzellen 103 der Speichervorrichtung 130 gespeichert sind und als Teil der Vorrichtungsinformationen 121 beim Erzeugen eines aktualisierten geheimen Schlüssels 137 für aktualisierte Identitätsdaten 113 der Speichervorrichtung 130 und des Endgeräts 150 verwendet werden.
  • Wenn anschließend ein Update für die Firmware-Anwendung im Online-Firmware-Speicher verfügbar ist, kann die veraltete Firmware-Anwendung im Endgerät 150 während der Überprüfung der Identitätsdaten 113 erkannt werden, und der Sicherheitsserver 140 kann ein O-ver-the-Air-Update (OTA) für das Endgerät 150 einleiten, um das Sicherheitsrisiko zu reduzieren.
  • So kann beispielsweise ein Online-Service-Store Cloud-basierte Dienste anbieten, die über Endgeräte (z. B. 150), beispielsweise IoT-Geräte (Internet der Dinge), bereitgestellt werden. Dasselbe Endgerät 150 kann über Firmware-Updates angepasst werden, die bei den verschiedenen Anbietern verwendet werden, die unterschiedliche Client-Server 141, ..., 143 betreiben können.
  • Der Benutzer des Endgeräts 150 kann beispielsweise den Online-Store besuchen, um einen Dienst eines Anbieters zu abonnieren, den abonnierten Dienst zu ändern und/oder das Abonnement von einem Anbieter zu einem anderen Anbieter zu bewegen. Das vom Benutzer für das Endgerät 150 bestellte Abonnement kann als Teil der Client-Berechtigungsdaten 283 verfolgt werden, die mit der Identität des Endgerätes 150 assoziiert sind. Wenn die Identitätsdaten 113 des Endgeräts 150 vom Sicherheitsserver 140 überprüft werden, kann der Sicherheitsserver 140 prüfen, ob für das Endgerät 150 ein Firmware-Update für den abonnierten Dienst und/oder der Austausch einer veralteten Firmware-Version erforderlich ist. Wenn dies der Fall ist, kann der Sicherheitsserver 140 ein Firmware-Update über den Online-Store veranlassen, um das Endgerät 150 anzupassen und/oder zu aktualisieren, bevor das Endgerät 150 den abonnierten Dienst vom Anbieter empfängt. Wahlweise kommuniziert der Sicherheitsserver 140 mit dem Endgerät 150, um das Endgerät 150 an den aktuellen Client-Server 141 des Anbieters zu verweisen. Alternativ veranlasst die aktualisierte Firmware das Endgerät 150, sich mit dem aktuellen Client-Server 141 des Anbieters zu verbinden.
  • Im Allgemeinen kann der Sicherheitsserver 140 mit dem Online-Service-Store und/oder dem Online-Firmware-Store verbunden sein oder diesen beinhalten. Ein Server-System kann den Sicherheitsserver 140, den Online-Service-Store und/oder den Online-Firmware-Store aufweisen. Das Server-System kann die Konten verfolgen, die verwendet werden, um die Dienste verschiedener Anbieter zu abonnieren, und die von den Benutzern der Endgeräte (z. B. 150) ausgewählte/gekaufte Firmware-Anpassung verfolgen.
  • Ein Konto des Benutzers des Endgeräts 150 bei einem Anbieter von Diensten, die für das Endgerät 150 abonniert sind, kann unter Verwendung einer Identität des Benutzers verfolgt und mit der Identität des Benutzers als Besitzer des Endgeräts 150 für die automatische Firmware-Aktualisierung korreliert werden. Durch die Korrelation kann die vom Benutzer im Online-Service-Store und/oder im Online-Firmware-Store getroffene Auswahl der Firmware und/oder des Dienstes auf das Endgerät 150 des Benutzers abgebildet werden. Alternativ kann der Benutzer des Endgeräts 150 die Firmware und/oder Dienste explizit für das Endgerät 150 auswählen, indem er eine öffentliche Identifizierung des Endgeräts 150 verwendet, die Teil der Identitätsdaten 113 des Endgeräts 150 ist.
  • In einigen Implementierungen verbindet sich das Endgerät 150 zunächst mit dem Sicherheitsserver 140, um Dienste in Anspruch zu nehmen. Der Sicherheitsserver 140 kann den aktuellen Anbieter des abonnierten Dienstes, der im Online-Service-Store registriert ist, basierend auf den Daten zur Berechtigung des Clients 283 identifizieren. Nachdem die Authentizität des Endgeräts 150 überprüft und der Dienstanbieter bestimmt wurde, konfiguriert der Sicherheitsserver 140 die Firmware des Endgeräts 150 für den Dienstanbieter (z. B. unter Verwendung des Online-Firmware-Stores) und leitet das Endgerät 150 an den Client-Server (z. B. 141, ..., oder 143) des Dienstanbieters weiter. Somit kann das Endgerät 150 die im Online-Service-Store bestellten Dienste nahtlos und mit minimalem Aufwand für den Benutzer bereitstellen.
  • 14 zeigt eine Technik zur Anpassung von Endgeräten unter Verwendung eines Online-Firmwarespeichers gemäß einer Ausführungsform. Zum Beispiel kann die Technik von 14 in einem Computersystem von 1 und/oder 6 mit den in den 1 bis 5 erläuterten Sicherheitsdiensten und -merkmalen implementiert werden. Die Technik von 14 kann in Kombination mit den Techniken der 9 bis 13 verwendet werden.
  • In 14 ist ein Online-Firmware-Speicher 170 konfiguriert, um die Auswahl von Firmware und/oder Firmware-Anwendungen für die Anpassung und/oder Aktualisierung von Endgeräten (z. B. 150) in Verbindung mit dem Sicherheitsserver 140 zu erleichtern, der die Identität der Endgeräte (z. B. 150) überprüft.
  • Das Endgerät 150 weist eine Reihe von Hardware auf, darunter ein Host-System 120 und eine Speichervorrichtung 130 mit Sicherheitsmerkmalen. Die Funktionalität des Endgeräts 150 kann definiert, angepasst und aktualisiert werden durch die Firmware 363, die in der Speichervorrichtung 130 gespeichert ist und in dem Host-System 120 des Endgeräts 150 ausgeführt wird.
  • Ein Hersteller des Endgeräts 150 kann eine Basisversion der Firmware 363 installieren, die so programmiert ist, dass das Endgerät 150 Identitätsdaten 113 erzeugen und zur Überprüfung durch den Sicherheitsserver 140 übermitteln kann. Die Basisversion der Firmware 363 ist ferner konfiguriert, eine Aktualisierung der Firmware über den Firmware-Speicher 170 in Verbindung mit der Überprüfung der Identitätsdaten 113 durch den Sicherheitsserver 140 zu ermöglichen.
  • Im Allgemeinen kann die Firmware-Aktualisierung für das Endgerät 150 der Ersatz der gesamten Firmware 363 zum Ausführen im Host-System 120 sein, oder das Hinzufügen und/oder Ersetzen einer oder mehrerer Firmware-Anwendungen (z. B. App 367, ..., 369).
  • Eine Endgeräteplattform 361 kann verwendet werden, um eine Klasse von Endgerätehardware darzustellen. Jedes Endgerät (z. B. 150) in der Klasse kann mit verschiedenen Firmware-Versionen (z. B. 363, ..., 365) betrieben werden, um unterschiedliche Funktionen und/oder Dienste bereitzustellen.
  • In einigen Implementierungen kann die Firmware 363 über eine oder mehrere Firmware-Anwendungen (z. B. App 367, ..., 369) angepasst werden. So kann beispielsweise das Endgerät 150, auf dem die Firmware 363 läuft, ferner eine optionale Anwendung (z. B. App 367, ... oder 369) ausführen, um eine neue, in der Firmware 363 nicht vorhandene Funktion bereitzustellen, eine vorhandene Funktion in der Firmware 363 zu deaktivieren, eine vorhandene Funktion in der Firmware 363 zu ändern oder anzupassen usw.
  • Wenn zum Beispiel eine Firmware-Anwendung (z. B. App 367) auf der Firmware 363 im Endgerät 150 läuft, ist das Endgerät 150 für die Kommunikation mit einem Client-Server 141 eines Anbieters angepasst, um einen Dienst oder eine Funktion zu implementieren und/oder einen Dienst vom Anbieter zu empfangen. Wenn eine andere Firmware-Anwendung (z. B. App 369) auf der Firmware 363 im Endgerät 150 läuft, wird das Endgerät 150 anders für die Kommunikation mit einem anderen Client-Server 143 eines anderen Anbieters angepasst, um einen alternativen oder ähnlichen Dienst oder eine Funktion zu implementieren und/oder einen alternativen oder ähnlichen Dienst von dem anderen Anbieter zu empfangen.
  • So kann beispielsweise die Firmware-Anwendung (z. B. App 367) so programmiert werden, dass sie ein Kommunikationsprotokoll implementiert, das für den Client-Server 141 spezifisch ist.
  • Die Firmware-Anwendung (z. B. App 367) kann zum Beispiel so programmiert werden, dass sie eine neue Rechenfunktion durchführt, die eine neue Art von Ergebnissen erzeugt.
  • Zum Beispiel kann die Firmware-Anwendung (z. B. App 367) so programmiert werden, dass sie mit dem Client-Server 141 für einen über den Client-Server 141 bereitgestellten Dienst kommuniziert. Beispiele für den Dienst des Client-Servers 141 beinhalten Rechenressourcen des Client-Servers 141 zur Verarbeitung von Daten für das Endgerät 150, eine Datenspeichereinrichtung des Client-Servers 141 für Daten, die vom Endgerät 150 erzeugt wurden, eine Nachrichteneinrichtung für Benachrichtigungen und/oder Warnungen an ein oder mehrere andere Geräte, die mit dem Endgerät 150 assoziiert sind, Konnektivität über den Client-Server 141 mit einem oder mehreren anderen Geräten, die mit dem Endgerät 150 assoziiert sind, Internetzugang durch das Endgerät 150 über einen Wi-Fi-Zugangspunkt, einen Kommunikationssatelliten und/oder eine Kommunikationsverbindung oder -ausrüstung, die vom Client-Server 141 gesteuert wird, usw.
  • Im Allgemeinen können verschiedene Anbieter unterschiedliche Firmware-Versionen und/oder unterschiedliche Firmware-Anwendungen bereitstellen, um die Endgeräte (z. B. 150) in derselben Endgeräteplattform 361 anzupassen. Endgeräte in der Plattform 361 können von demselben Hersteller oder von verschiedenen Herstellern hergestellt und/oder montiert werden.
  • Wahlweise kann eine Basisversion der Firmware (z. B. 363) einen standardisierten Funktionssatz bieten, auf dessen Grundlage die Firmware-Anwendungen (z. B. App 367, ..., 369) ausgeführt werden können. Somit kann dieselbe Firmware-Anwendung (z. B. App 367) installiert werden, um Endgeräte (z. B. 150) anzupassen, die eine unterschiedliche Hardwarekonfiguration und/oder unterschiedliche Basisversionen der Firmware (z. B. 363, ..., 365) aufweisen. Alternativ können verschiedene Firmware-Anwendungen für verschiedene Basisversionen der Firmware (z. B. 363, ..., 365) programmiert werden, die auf Endgeräten mit unterschiedlichen Hardware-Implementierungen laufen, um dieselbe kundenspezifische Funktion der betreffenden Endgeräte und/oder für denselben Dienst eines Client-Servers 141 bereitzustellen.
  • Die Verwendung von Firmware-Anwendungen (z. B. App 367, ..., 369) kann die Grö-ße der Daten reduzieren, die vom Firmware-Speicher 170 auf das Endgerät 150 heruntergeladen werden müssen, wenn eine Firmware-Aktualisierung durchgeführt wird. Alternativ können verschiedene Sätze von Firmware-Funktionen unter Verwendung unterschiedlicher Firmware (z. B. 363, ..., 365) ohne zusätzliche Firmware-Anwendungen implementiert werden. Im Allgemeinen kann eine Firmware-Aktualisierung im Endgerät 150 den Ersatz der bestehenden Firmware 363 in ihrer Gesamtheit oder die Installation einer Firmware-Anwendung (z. B. App 367) beinhalten.
  • Wahlweise ist der Firmware-Store 170 so konfiguriert, dass ein Benutzer des Endgeräts 150 einen Computer 180 verwenden kann, um 371 Firmware für die individuelle Anpassung des Endgeräts 150 auszuwählen und/oder zu bestellen. In einigen Instanzen stellt der Kauf einer ausgewählten Firmware-Version (z. B. 363) und/oder einer Firmware-Anwendung (z. B. 367) die Anforderung eines Dienstes von einem Dienstanbieter und/oder einem Client-Server (z. B. 141) dar. In Reaktion darauf kann der Firmware-Store 170 und/oder der Sicherheitsserver 140 Daten speichern, die eine gewünschte Firmware-Konfiguration und/oder einen angeforderten Dienst für das Endgerät 150 angeben. Zum Beispiel können die Client-Berechtigungsdaten 283 aktualisiert werden, um die Auswahl der Firmware und/oder des Dienstes zu reflektieren, die mit dem Benutzer-Computer 180 verwendet wurden.
  • Im Allgemeinen kann der Benutzer-Computer 180 von dem Endgerät 150 verschieden und getrennt sein. Somit ist eine für den Benutzer des Endgeräts 150 zugängliche Hardware- und/oder Softwareschnittstelle zur Anpassung des Endgeräts 150 für dessen Verwendung mit einem Konto und/oder einem Anbieter nicht erforderlich. Wahlweise kann das Endgerät 150 einiger Implementierungen und/oder Kategorien eine Benutzeroberfläche beinhalten, die es ermöglicht, diese als Benutzer-Computer 180 zu verwenden, um Firmware für das Endgerät 150 zu bestellen 371.
  • Zum Beispiel kann der Besitzer oder Benutzer des Endgeräts 150 den Benutzer-Computer 180 verwenden, um den Online-Firmware-Store 170 zu besuchen und Firmware für das Endgerät 150 zu bestellen 371, indem er eine Firmware-Anwendung (z. B. App 367), eine Ersatzversion der Firmware oder eine Kombination aus einer Ersatzversion der Firmware und einer Firmware-Anwendung auswählt. Die Bestellung kann für den Benutzer als Dienstteilnehmer und/oder das Endgerät 150 als anzupassendes Gerät identifiziert werden.
  • Das Endgerät 150 kann beispielsweise über eine öffentliche Identifizierung des Endgeräts 150 identifiziert werden, beispielsweise über eine Modell- und Seriennummer des Endgeräts 150, eine Mobilgeräte-Identitätsnummer 253, eine internationale Mobilteilnehmer-Identitätsnummer 255, die eindeutige Identifizierung 111 und/oder eine andere in den Daten 127 der Identitätsdaten 113 enthaltene Identifizierung.
  • Die Identität des Benutzers oder Teilnehmers kann beispielsweise über eine Kontokennung und/oder personenbezogene Daten identifiziert werden, beispielsweise eine E-Mail-Adresse, eine Telefonnummer, ein Name und eine Adresse usw.
  • Der Sicherheitsserver 140 kann Identitätsdaten 113 überprüfen 373, die von dem Endgerät 150 und/oder dessen Speichervorrichtung 130 übermittelt werden, wie oben in Verbindung mit den 2, 5 und 9 erläutert.
  • Im Allgemeinen können die Identitätsdaten 113 dem Sicherheitsserver 140 über einen Client-Server (z. B. 141 oder 143), über den Firmware-Speicher 170, über einen anderen Server oder ein Gateway oder ohne Durchlauf durch einen der Client-Server 141, ..., 143 und den Firmware-Store 170 übermittelt werden.
  • Zum Beispiel kann das Endgerät 150 über die vorhandene Firmware 363 so konfiguriert sein, dass es automatisch den Firmware-Store 170 und/oder den Sicherheitsserver 140 zur Identitätsüberprüfung, Firmware-Aktualisierung und/oder Dienstanpassung besucht. Somit können die Identitätsdaten 113 in einigen Instanzen über den Firmware-Store 170 an den Sicherheitsserver 140 übermittelt werden, während sie in anderen Instanzen direkt an den Sicherheitsserver 140 übermittelt werden.
  • Wenn zum Beispiel ein Server (z. B. ein Client-Server 141 oder 143, der Firmware-Store 170 oder ein anderer Server) die Identitätsdaten 113 für eine Anforderung 171 vom Endgerät 150 empfängt, stellt der Server (z. B. 141) die Identitätsdaten 113 dem Sicherheitsserver 140 in einer Anforderung 173 zur Überprüfung bereit. In Reaktion auf eine derartige Anforderung 173 kann der Sicherheitsserver 140 mit dem Firmware-Store 170 kommunizieren, um zu identifizieren 375, ob eine Firmware-Aktualisierung für das Endgerät 150 vorhanden ist. Ist dies der Fall, kann der Sicherheitsserver 140 den Firmware-Store 170 veranlassen, die Firmware des Endgeräts 150 zu aktualisieren 377. Nachdem beispielsweise ein Firmware-Download durchgeführt wurde, um eine neue Version der Firmware und/oder eine Firmware-Anwendung (z. B. App 367) in der Speichervorrichtung 130 zu speichern, wird dann ein mit einem kryptographischen Schlüssel 145 signierter Befehl 155 in der Speichervorrichtung 130 ausgeführt, um zu veranlassen, dass eine neue Version der Firmware und/oder die Firmware-Anwendung (z. B. App 367) in der Speichervorrichtung 130 ausgeführt wird und Teil der Identität der Speichervorrichtung 130 und/oder des Endgeräts 150 wird.
  • Zum Beispiel kann die Firmware 363 zunächst in dem Endgerät 150 installiert werden (z. B. von einem Hersteller des Endgeräts 150), um einen Dienst über einen Client-Server 141 bereitzustellen. Nachdem eine neue Version der Firmware 363 im Firmware-Store 170 für den Zugriff auf denselben Dienst des Client-Servers 141 verfügbar ist, kann der Sicherheitsserver 140 in Reaktion auf die erfolgreiche Überprüfung der Identitätsdaten 113 die Installation der neuen Version einleiten. Wahlweise kann die Aktualisierung 377 durch die Installation einer Firmware-Anwendung (z. B. App 367) implementiert werden, die auf der bestehenden Firmware 363 läuft, oder durch die Installation einer neuen Firmware (z. B. 365).
  • Wenn beispielsweise der Benutzer der Firmware 363 den Firmware-Store 170 besucht, um eine alternative Version der Firmware 365 zum Anpassen des Endgeräts 150 zu bestellen 371, und wenn die Identitätsdaten 113 des Endgeräts 150 erfolgreich im Sicherheitsserver 140 überprüft wurden, kann der Firmware-Store 170 die Firmware des Endgeräts 150 gemäß der Bestellung 371 aktualisieren 377.
  • In einigen Instanzen besucht das Endgerät 150 zuerst den Sicherheitsserver 140. Nachdem der Sicherheitsserver 140 die Identität des Endgeräts 150 überprüft hat (373), kann der Sicherheitsserver 140 mit dem Firmware-Store 170 kommunizieren, um eine Firmware-Aktualisierung des Endgeräts 150 zu identifizieren (375).
  • Im Allgemeinen kann eine Firmware-Aktualisierung die Installation einer Firmware-Anwendung (z. B. App 367), das Ersetzen einer bestehenden Firmware-Anwendung durch eine andere Firmware-Anwendung und/oder die Installation einer neuen Firmware 365 beinhalten.
  • Nachdem die gewünschte Firmware-Aktualisierung identifiziert wurde, kommuniziert der Firmware-Store 170 mit dem Endgerät 150, um das Endgerät 150 zu aktualisieren 377.
  • Die Zugriffssteuerung der Speichervorrichtung 130 ist konfiguriert, um die Überprüfung einer Berechtigung zur Anforderung zum Ausführen eines Befehls 155 in der Speichervorrichtung 130 anzufordern, um eine Änderung der in der Speichervorrichtung 130 gespeicherten Firmware vorzunehmen.
  • Nachdem beispielsweise die für die Firmware-Aktualisierung erforderlichen Daten in einem Abschnitt der Speichervorrichtung 130 gespeichert sind, kann der Befehl 155 an die Host-Schnittstelle 147 gesendet werden, um die Operationen der Firmware-Aktualisierung in der Speichervorrichtung 130 durchzuführen. Die Berechtigung, den Befehl 155 in der Speichervorrichtung 130 auszuführen, kann durch einen kryptographischen Schlüssel 145 dargestellt werden. Der kryptographische Schlüssel 145 kann zuvor konfiguriert oder in Reaktion auf die Überprüfung der Identitätsdaten 113 in der Speichervorrichtung 130 des Endgeräts 150 erzeugt werden. Beispielsweise kann der kryptographische Schlüssel 145 der Sitzungsschlüssel 263 sein, der basierend auf der Überprüfung der Authentizität des Endgeräts 150 in ähnlicher Weise wie in 9 erzeugt wird; und der Sicherheitsserver 140 kann einen Verifizierungscode 153 für den Befehl erzeugen, indem er den kryptographischen Schlüssel 145 für den Firmware-Store 170 verwendet, um das Endgerät 150 zu aktualisieren. Alternativ kann der Sicherheitsserver 140 den Sitzungsschlüssel 263 und/oder den kryptographischen Schlüssel 145 dem Firmware-Store 170 bereitstellen, um die Firmware 377 des Endgeräts 150 zu aktualisieren.
  • Nach der erfolgreichen Firmware-Aktualisierung werden die Vorrichtungsinformationen 121 zur Erzeugung des geheimen Schlüssels 137 aktualisiert, um die installierte Firmware und/oder Firmware-Anwendung zu reflektieren. Zum Beispiel kann ein Hash-Wert 163 der installierten Firmware und/oder Firmware-Anwendung als Teil der Vorrichtungsinformationen 121 gespeichert werden, um deren Integrität zu überprüfen, wie in 4. Anschließend basieren die von der Speichervorrichtung 130 erzeugten Identitätsdaten 113 für das Endgerät 150 auf den aktualisierten Vorrichtungsinformationen 121 und reflektieren die Konfiguration des Endgeräts 150, das die aktualisierte Firmware-Funktionalität oder Konfiguration aufweist.
  • In einigen Ausführungsformen ist der Firmware-Store 170 Teil eines Server-Systems, das den Sicherheitsserver 140 implementiert. In einer anderen Ausführungsform wird der Firmware-Store 170 auf einem separaten Server-Computer gehostet.
  • In einigen Implementierungen kann die Aktualisierung 377 der Firmware automatisch basierend auf dem für das Endgerät 150 abonnierten Dienst durchgeführt werden, wie weiter unten erläutert in Verbindung mit 15.
  • 15 zeigt eine Technik zur Weiterleitung von Diensten an ein Endgerät über einen Online-Servicespeicher gemäß einer Ausführungsform. Die Technik von 15 kann beispielsweise in Kombination mit den Techniken verwendet werden von 14.
  • In 15 ist ein Online-Service-Store 190 konfiguriert, um einem Endgerät 150 die Auswahl eines Dienstes aus einer Vielzahl von Diensten zu erleichtern, die von einem oder mehreren Anbietern bereitgestellt werden (z. B. 381). Der Dienst eines Dienstanbieters (z. B. 381) kann über eine oder mehrere Endgeräte-Plattformen (z. B. 361, ..., 362) implementiert werden.
  • Zum Beispiel kann ein Benutzer des Endgeräts 150 einen Computer 180 verwenden, um den Online-Service-Store 190 zu besuchen, um einen Dienst bei einem Dienstanbieter 381 unter Verwendung eines Computers 180 zu bestellen 391. Der vom Dienstanbieter 381 bereitgestellte Dienst kann mit Endgeräten mehrerer Endgeräteplattformen (z. B. 361, ..., 362) verwendet werden. Auf den Endgeräten (z. B. 150) in den Endgeräteplattformen (z. B. 361, ..., 362) läuft unterschiedliche Firmware für den Dienst des Dienstanbieters 381. Der Service-Store 190 weist Abonnementdaten 387 auf, welche die von den Abonnenten und/oder für die Endgeräte (z. B. 150) bestellten Dienste identifizieren.
  • Der vom Dienstanbieter 381 angebotene Dienst kann beispielsweise über einen Client-Server 141 implementiert werden, und die Abonnementdaten 387 können die Server identifizieren, mit denen sich die Endgeräte verbinden sollen, um die jeweils für die Endgeräte abonnierten Dienste zu empfangen.
  • Zum Beispiel kann ein Dienst explizit für das Endgerät 150 mit einem Bezug auf eine öffentliche Identifizierung des Endgeräts 150, eine Modell- und Seriennummer des Endgeräts 150, eine Mobilgeräte-Identitätsnummer 253, eine internationale Mobilteilnehmer-Identitätsnummer 255, die eindeutige Identifizierung 111 und/oder eine andere, in den Daten 127 der Identitätsdaten 113 enthaltene Identifizierung bestellt werden.
  • Alternativ oder in Kombination kann ein Dienst mit einem Bezug auf die Identität des Benutzers oder Abonnenten bestellt werden, der über eine Kontokennung und/oder personenbezogene Informationen wie beispielsweise eine E-Mail-Adresse, eine Telefonnummer, einen Namen und eine Adresse usw. identifiziert werden kann.
  • Wie in 14 ist der Benutzer-Computer 180 typischerweise verschieden und vom Endgerät 150 getrennt. In einigen Instanzen kann das Endgerät 150 eine Benutzeroberfläche beinhalten, die es erlaubt, sie als Computer 180 zu verwenden, um Dienste für das Endgerät 150 zu bestellen 391.
  • Wenn ein Dienst implizit für das Endgerät 150 bestellt wird, kann die Identität des Teilnehmers verwendet werden, um die Dienste der Endgeräte des Teilnehmers basierend auf der Übereinstimmung der Identität des Teilnehmers, die für die Bestellung des Dienstes verwendet wurde, und der Identität des Besitzers des Endgeräts 150 zu bestimmen.
  • Um beispielsweise einen Dienst bei dem Dienstanbieter 381 zu bestellen 391, kann der Benutzer des Endgeräts 150 (oder ein Vertreter des Benutzers) den Service-Store 190 besuchen, um ein Konto zum Abonnieren des Dienstes des Dienstanbieters 381 einzurichten.
  • Der Sicherheitsserver 140 und der Service-Store 190 können miteinander kommunizieren, um einen für das Endgerät 150 abonnierten Dienst zu identifizieren 393, in Reaktion darauf, dass der Dienst bestellt oder geändert wird oder in Reaktion darauf, dass die Identitätsdaten 113 des Endgeräts 150 überprüft wurden.
  • In Reaktion auf eine Dienstanforderung 171 vom Endgerät 150 überprüft 373 der Sicherheitsserver 140 die Identitätsdaten 113 des Endgeräts 150, die in der Dienstanforderung 171 bereitgestellt wurden.
  • Im Allgemeinen kann die Dienstanforderung 171 zunächst in einem Client-Server (z. B. 141 oder 143) oder in dem Service-Store 190 oder dem Firmware-Store 170 oder direkt in dem Sicherheitsserver 140 empfangen werden.
  • Nachdem der Sicherheitsserver 140 die Identität und Authentizität des Endgeräts 150 überprüft 373 hat, kann der Sicherheitsserver 140 basierend auf den im Sicherheitsserver 140 gespeicherten Client-Berechtigungsdaten 283 und/oder basierend auf den Abonnementdaten 387 im Service-Store 190 den für das Endgerät 150 abonnierten Dienst identifizieren 393.
  • Basierend auf dem identifizierten Dienst kann der Sicherheitsserver 140 mit dem Firmware-Store 170 kommunizieren, um eine Firmware-Aktualisierung für das Endgerät 150 zu identifizieren 375. Beispielsweise kann das Endgerät 150 durch Ersetzen der Firmware oder Installation einer Firmware-Anwendung (z. B. App 367) aktualisiert werden, um das Endgerät 150 an den abonnierten Dienst anzupassen. Die Firmware-Aktualisierung kann auf die gleiche Weise durchgeführt und gesichert werden, wie oben in Verbindung erläutert wurde mit 14.
  • Zum Beispiel kann das Endgerät 150 mit einer generischen Version der Firmware 363 hergestellt werden, die nicht in der Lage ist, den Dienst vom Dienstanbieter 381 zu empfangen, die keine Kenntnis über den Client-Server 141 für den vom Dienstanbieter 381 angebotenen Dienst aufweist und/oder die kein Kommunikationsprotokoll für die Kommunikation mit dem Client-Server 141 implementiert hat. Es kann eine Firmware-Anwendung (z. B. App 367) installiert werden, die auf der allgemeinen Firmware 363 läuft, um das Endgerät 150 an den für das Endgerät 150 bestellten Dienst anzupassen. Sobald das Endgerät 150 über die Firmware-Anwendung (z. B. App 367) angepasst wurde, kann es den Dienst des Dienstanbieters 381 von dem Client-Server 141 empfangen. Zum Beispiel weist das Endgerät 150 nach der Installation der Firmware-Anwendung (z. B. App 367) zum Aktualisieren 377 der Firmware das Wissen über den Client-Server 141, die Kommunikationsfähigkeit zur Kommunikation mit dem Client-Server 141 gemäß einem vom Client-Server 141 verwendeten Kommunikationsprotokoll und die Verarbeitungsroutinen zur Verwendung des vom Client-Server 141 angebotenen Dienstes auf.
  • Zum Beispiel kann der für die Operationen des Endgeräts 150 abonnierte Dienst die vom Client-Server 141 durchgeführten Berechnungen zum Verarbeiten von Daten für das Endgerät 150, das Speichern von durch das Endgerät 150 erzeugten Daten im Client-Server 141, das Senden von Benachrichtigungen und/oder Warnungen an ein oder mehrere andere mit dem Endgerät 150 verbundene Geräte, das Verbinden des Endgeräts 150 über den Client-Server 141 mit einem Computer-Netzwerk oder dem Internet unter Verwendung einer Basisstation, eines Wi-Fi-Zugangspunkts, eines Kommunikationssatelliten und/oder einer vom Client-Server 141 gesteuerten Kommunikationsverbindung oder Ausrüstung usw. umfassen.
  • Wahlweise, nach der Firmware-Aktualisierung 377, ist das Endgerät 150 über seine Firmware 363 und/oder eine Firmware-Anwendung (z. B. App 367) so konfiguriert, dass es automatisch den Client-Server 141 für den abonnierten Dienst besucht. Alternativ kann der Sicherheitsserver 140 das Endgerät 150 an den Client-Server 141 umleiten, um auf den abonnierten Dienst 379 zuzugreifen, nachdem er die Identitätsdaten 113 des Endgeräts 150, das die aktualisierte Firmware aufweist, überprüft hat.
  • Im Allgemeinen kann der Service-Store 190 von einem Benutzer (oder einem Vertreter des Benutzers) verwendet werden, um einen Dienst eines Dienstanbieters 381 für das Endgerät 150 zu abonnieren, einen abonnierten Dienst zu ändern, ein Abonnement von einem Dienstanbieter 381 zu einem anderen Dienstanbieter zu bewegen. Die Firmware 363 des Endgeräts 150 wird automatisch aktualisiert, um den aktuell abonnierten Dienst zu unterstützen, ohne dass der Benutzer des Endgeräts 150 eine Operation am Endgerät 150 betreibt, um das Endgerät 150 für den abonnierten Dienst anzupassen.
  • 16 zeigt ein Verfahren zum Aktualisieren von Firmware unter Verwendung eines Firmware-Speichers und eines Sicherheitsservers gemäß einer Ausführungsform. Beispielsweise kann das Verfahren von 16 unter Verwendung der Technik implementiert werden von 14.
  • Bei Block 401 empfängt ein Server-System von einem Endgerät 150 eine Anforderung mit Identitätsdaten 113, die von einer in dem Endgerät 150 konfigurierten Speichervorrichtung 130 erzeugt wurden.
  • Das Server-System kann beispielsweise den Sicherheitsserver 140 beinhalten. Wahlweise kann das Server-System ferner den Online-Firmware-Store 170 und/oder einen oder mehrere Client-Server (z. B. 141, ..., 143) beinhalten.
  • Das Endgerät 150 kann sich beispielsweise in einem Auslieferungszustand befinden, wie er bei der Herstellung von Endgeräten (z. B. 150) vorliegt, ohne dass eine Anpassung an bestimmte Server und/oder Dienstanbieter erforderlich ist.
  • Bei Block 403 bestimmt das Server-System in Reaktion auf die in Block 401 empfangene Anforderung und basierend auf einem Geheimcode der Speichervorrichtung 130 und den Identitätsdaten 113 die Authentifizierung des Endgeräts 150. Beispielsweise können die Operationen in Block 403 auf ähnliche Weise wie die in Block 323 und/oder Block 343 betriebenen Operationen durchgeführt werden.
  • Die Identitätsdaten 113 beinhalten beispielsweise einen Verifizierungscode 133 für eine in den Identitätsdaten 113 dargestellte Nachricht 131. Der Sicherheitsserver 140 kann überprüfen, ob der Verifizierungscode 133 unter Verwendung eines geheimen Schlüssels 137 der Speichervorrichtung 130 und der Nachricht 131 erzeugt wurde, ohne dass das Endgerät den geheimen Schlüssel 137 darstellt. Der geheime Schlüssel 137 wird unter Verwendung des eindeutigen Vorrichtungsschlüssels 101 der Speichervorrichtung 130 und der Vorrichtungsinformationen 121 erzeugt, die für die Software- und Hardwarekonfiguration des Endgeräts 150 repräsentativ sind.
  • Bei Block 405 wird basierend auf einem Online-Firmware-Store 170 eine Aktualisierung der ersten Firmware 363 bestimmt. Die erste Firmware wird in der Speichervorrichtung 130 gespeichert und in dem Endgerät 150 ausgeführt, um die in Block 401 empfangene Anforderung zu erzeugen.
  • Zum Beispiel kann der Firmware-Store 170 vor dem Empfangen der Anforderung in Block 401 eine Bestellung 391 von Firmware für das Endgerät 150 speichern. Die Bestellung 391 kann vorgenommen werden, um die Funktionalität des Endgeräts 150 unter Verwendung eines Benutzercomputers 180 anzupassen, ohne das Endgerät 150 zu durchlaufen. Die im Firmware-Store 170 empfangene Bestellung 391 kann verwendet werden, um die Aktualisierung 375 zu identifizieren 377.
  • Zum Beispiel kann die Bestellung 391 für das Endgerät 150 identifiziert werden, indem eine öffentliche Identifizierung des Endgeräts 150 verwendet wird. Die Identitätsdaten 113 können die öffentliche Identifizierung in der mit dem geheimen Schlüssel 137 signierten Nachricht 131 beinhalten, um den in den Identitätsdaten 113 bereitgestellten Verifizierungscode 133 zu erzeugen. Nach dem Überprüfen, dass die Nachricht 131 nicht geändert wurde, kann der Sicherheitsserver 140 den Online Firmware-Store 170 und/oder das Endgerät 150 anweisen, die Firmware 363 des Endgeräts 150 zu aktualisieren 377.
  • Bei Block 407, in Reaktion auf eine Bestimmung, dass das Endgerät 150 authentisch ist, erzeugt das Server-System einen Verifizierungscode 153 für einen Befehl 155, der in der Speichervorrichtung 130 ausführbar ist, um die Aktualisierung durchzuführen.
  • Bei Block 409 stellt das Server-System den Verifizierungscode 153 zur Ausführung des Befehls 155 in der Speichervorrichtung 130 zur Aktualisierung der Firmware bereit.
  • Zum Beispiel kann der Sicherheitsserver 140 in Reaktion auf die Bestimmung, dass das Endgerät authentifiziert ist, mit dem Online-Firmware-Store 170 kommunizieren, um Daten in eine Speichervorrichtung 130 herunterzuladen. Wenn der Befehl 155 in der Speichervorrichtung 130 ausgeführt wird, führt die Speichervorrichtung 130 die Aktualisierung der Firmware unter Verwendung der Daten durch.
  • Die in die Speichervorrichtung 130 heruntergeladenen Daten können beispielsweise eine zweite Firmware beinhalten, die nach der Ausführung des Befehls 155 zur Aktualisierung der Firmware die erste Firmware ersetzt, die zum Erzeugen der in Block 401 empfangenen Anforderung ausgeführt wurde.
  • Die in die Speichervorrichtung 130 heruntergeladenen Daten können beispielsweise eine Firmware-Anwendung (z. B. App 367) beinhalten, die nach der Ausführung des Befehls 155 zur Aktualisierung der Firmware mit der ersten Firmware läuft, die zum Erzeugen der Anforderung ausgeführt wird. Eine Kombination aus der Firmware-Anwendung (z. B. App 367) und der ersten Firmware stellt eine zweite Firmware für das Endgerät 150 bereit.
  • Zum Beispiel ist das Endgerät 150 nach der Ausführung des Befehls 155 zur Aktualisierung der Firmware über die zweite Firmware so konfiguriert, dass es eine Funktion bereitstellt, die in dem Endgerät mit der ersten Firmware vor der Aktualisierung nicht vorhanden war.
  • Nach der Ausführung des Befehls 155 zur Aktualisierung der Firmware kann die zweite Firmware Teil der Identität der Speichervorrichtung 130 und des Endgeräts 150 werden. Zum Beispiel ist der Speicher 130 basierend auf den Vorrichtungsinformationen 121 so konfiguriert, dass er einen geheimen Schlüssel 137 erzeugt, der für die Identität der Speichervorrichtung 130 und des Endgeräts 150 repräsentativ ist. Nach der Ausführung des Befehls 155 zur Aktualisierung 377 der Firmware werden die Vorrichtungsinformationen 121 aktualisiert, um einen Hash-Wert 163 der zweiten Firmware, die in den Speicherzellen 103 gespeichert ist, als Inhalt 161 aufzunehmen. Anschließend wird die Speichervorrichtung 130 konfiguriert, um Identitätsdaten 113 des Endgeräts 150 unter Verwendung eines kryptographischen Schlüssels zu erzeugen, der zumindest teilweise basierend auf dem Geheimcode (z. B. dem eindeutigen Vorrichtungsschlüssel 101) der Speichervorrichtung und der zweiten Firmware, die in der Speichervorrichtung 130 gespeichert ist, erzeugt wird.
  • 17 zeigt ein Verfahren zur Anpassung von Endgeräten unter Verwendung eines Servicespeichers und eines Sicherheitsservers gemäß einer Ausführungsform. Beispielsweise kann das Verfahren von 17 unter Verwendung der Technik implementiert werden von 14 und 15.
  • Bei Block 421 empfängt ein Server-System von einem Endgerät 150 eine Anforderung mit Identitätsdaten 113, die von einer in dem Endgerät 150 konfigurierten Speichervorrichtung 130, ähnlich zu Block 401, erzeugt wurden.
  • Das Server-System kann beispielsweise einen Sicherheitsserver 140 und/oder einen Service-Store 190 beinhalten.
  • Bei Block 423 überprüft der Sicherheitsserver 140 die Identitätsdaten 113 in Reaktion auf die in Block 421 empfangene Anforderung und basierend auf den im Sicherheitsserver 140 gespeicherten Informationen über das Endgerät 150. Diese Informationen beinhalten einen Geheimcode der Speichervorrichtung 130, beispielsweise den eindeutigen Vorrichtungsschlüssel 101. Diese Informationen können ferner Vorrichtungsinformationen 121 beinhalten, welche die Software-/Hardwarekonfigurationen des Endgeräts 150 darstellen. Die Überprüfung kann auf die gleiche Weise durchgeführt werden, wie oben in Verbindung erläutert wurde mit 2.
  • In Reaktion auf die Bestimmung, dass die Identitätsdaten 113 in der in Block 421 empfangenen Anforderung gültig sind, identifiziert das Server-System in Block 425 einen im Online-Service-Store 190 bestellten Dienst für das Endgerät 150.
  • Bei Block 427 wird ein Client-Server 141 identifiziert, der zum Bereitstellen des Dienstes konfiguriert ist.
  • Zum Beispiel kann der Online-Service-Store 190 vor dem Empfangen der Anforderung in Block 421 eine Bestellung 391 des Dienstes für das Endgerät 150 speichern. Der Client-Server 141 kann basierend auf der Bestellung 391 identifiziert werden.
  • Zum Beispiel kann die Bestellung 391 im Online-Service-Store 190 über einen Benutzer-Computer 180 und somit ohne Umweg über das Endgerät 150 empfangen werden. Die Bestellung 391 kann für das Endgerät 150 identifiziert/platziert werden, indem eine öffentliche Identifizierung des Endgeräts 150 verwendet wird. Die Identitätsdaten 113 können die öffentliche Identifizierung beinhalten. Alternativ kann die Bestellung 391 mit der Identität eines Benutzers als Besitzer des Endgeräts 150 in den Client-Berechtigungsdaten 283 des Sicherheitsservers assoziiert sein.
  • Bei Block 429 leitet das Server-System das Endgerät 150 an den Client-Server 141 weiter.
  • Zum Beispiel kann das Server-System in Reaktion auf die Bestimmung, dass die Identitätsdaten 113 in der in Block 421 empfangenen Anforderung gültig sind, das Endgerät 150 für den im Online-Service-Store 190 bestellten Dienst konfigurieren.
  • Um das Endgerät 150 für den Dienst zu konfigurieren, kann das Server-System beispielsweise die Firmware des Endgeräts 150 aktualisieren. Zum Beispiel kann die Firmware-Aktualisierung kann auf die gleiche Weise durchgeführt werden, wie oben in Verbindung mit den 14 bis 16 erläutert wurde.
  • Zum Beispiel ist das Endgerät 150 vor der Firmware-Aktualisierung 377 nicht in der Lage, den Dienst vom Client-Server 141 zu empfangen und weist keine Kenntnisse über den Client-Server 141 auf. Das Endgerät 150, wie es zunächst von einem Hersteller von Endgeräten (z. B. 150) konfiguriert wurde, ist beispielsweise so programmiert, dass es den Service-Store 190, den Firmware-Store 170, den Sicherheitsserver 140 oder einen anderen Gate-Keeper besucht, sodass das Endgerät 150 ordnungsgemäß für die Nutzung konfiguriert und/oder aktualisiert werden kann, ohne dass der Endbenutzer eine Operation am Endgerät 150 für dessen Anpassung vornehmen muss.
  • Zum Beispiel wird nach der Firmware-Aktualisierung 377 eine zweite Firmware in der Speichervorrichtung 130 gespeichert, um die erste Firmware zu ersetzen, die zum Erzeugen der in Block 421 empfangenen Anforderung verwendet wurde. Wenn das Endgerät 150 die zweite Firmware ausführt, weist das Endgerät eine Funktion auf, die das Endgerät mit der ersten Firmware vor der Firmware-Aktualisierung 377 nicht hatte. Zum Beispiel kann die zweite Firmware eine Identifizierung des Client-Servers 141 beinhalten, um das Endgerät anzuweisen, den Client-Server 141 für den im Online-Service-Store 190 bestellten Service zu besuchen. In einigen Implementierungen ist die zweite Firmware eine Kombination aus der ersten Firmware und einer zusätzlichen Firmware-Anwendung. Nach der Firmware-Aktualisierung 377 ist die Speichervorrichtung 130 so konfiguriert, dass sie die aktualisierten Identitätsdaten 113 des Endgeräts 150 unter Verwendung eines geheimen Schlüssels 137 erzeugt, der zumindest teilweise basierend auf dem Geheimcode (z. B. dem eindeutigen Vorrichtungsschlüssel 101) und der in der Speichervorrichtung 130 gespeicherten zweiten Firmware erzeugt wird.
  • Wahlweise identifiziert das Server-System, um das Endgerät 150 für den im Service-Store 190 bestellten Dienst zu konfigurieren, ein Konto, das verwendet wird, um den Dienst für das Endgerät 150 zu abonnieren. Die Speichervorrichtung 130 ist so konfiguriert, dass sie eine Identifizierung des Kontos speichert und die Identifizierung als Teil der Nachricht 131 in die aktualisierten Identitätsdaten 113 aufnimmt.
  • Zum Beispiel kann das Server-System zum Durchführen der Firmware-Aktualisierung 377 einen Verifizierungscode 153 für einen Befehl 155 unter Verwendung eines kryptographischen Schlüssels 145 erzeugen, der eine Berechtigung zum Ausführen des Befehls 155 in der Speichervorrichtung 130 aufweist. Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 das Ersetzen der ersten Firmware durch die zweite Firmware. Nachdem die Speichervorrichtung 130 den Befehl 155 und den Verifizierungscode 153 empfangen hat, überprüft die Speichervorrichtung 130 den Verifizierungscode 153 für die Berechtigung vor der Ausführung des Befehls 155.
  • Der Sicherheitsserver 140 kann nicht nur dazu verwendet werden, die Identifizierung eines Endgeräts 150 basierend auf den Sicherheitsmerkmalen einer Speichervorrichtung 130, die in dem Endgerät 150 konfiguriert ist, zu überprüfen, sondern auch die Integrität von Paketen, die in der Speichervorrichtung 130 und/oder in dem Endgerät 150 gespeichert sind, zu überwachen. Ein Paket, das im Endgerät 150 gespeichert ist, kann beispielsweise ein Bootloader, Firmware, Software, ein Modul, zumindest ein Teil eines Betriebssystems oder einer Anwendung, ein Satz von Dateien mit Angaben zu Ressourcen, Konfigurationsparametern und/oder anderen Daten eines Programms oder einer Routine usw. sein. Wenn ein Paket als beschädigt, modifiziert, manipuliert oder veraltet befunden wird, kann der Sicherheitsserver 140 ein Over-the-Air-Update (OTA) veranlassen, um die Integrität des Endgeräts 150 beizubehalten.
  • Die Speichervorrichtung 130 kann Inhalte 161 in Speicherzellen 103 speichern und separat einen Hash-Wert 163 als Teil der Vorrichtungsinformationen 121 speichern, wie veranschaulicht in 4. Wenn der aktuelle Hash-Wert, der aus dem in der Speicherzelle 103 gespeicherten Inhalt 161 berechnet wird, nicht mit dem erwarteten Hash-Wert 163 übereinstimmt, der als Teil der Geräteinformation 121 gespeichert ist, kann die Speichervorrichtung 130 die Modifizierung oder Beschädigung des Inhalts 161 erkennen und eine Reparatur des Inhalts einleiten.
  • Der Inhalt 161 kann beispielsweise ein Kernpaket des Endgeräts 150 beinhalten. Die Integrität des Kernpakets kann sich auf die Operationen des Endgeräts 150 bei der Kommunikation mit dem Sicherheitsserver 140 bei der Überprüfung 373 der Identität des Endgeräts 150 auswirken. Beispiele für ein Kernpaket können einen Bootloader, Firmware und/oder zumindest einen Teil des Betriebssystems des Endgeräts 150 beinhalten. Wenn das Kernpaket modifiziert, beschädigt oder manipuliert wird, ist die Sicherheit der Operationen des Endgeräts 150, die zur Überprüfung der Identität durchgeführt werden, möglicherweise nicht vertrauenswürdig. Wenn der von der Kryptographie-Engine 107 erzeugte Integritätsstatus 165 eine Änderung im Kernpaket anzeigt, kann die Zugriffssteuerung 109 das Host-System 120 am Zugriff auf den Inhalt 161 hindern, bis das Kernpaket repariert ist.
  • Zum Beispiel kann die Speichervorrichtung 130 eine zuverlässige Sicherungskopie des Kernpakets in einem separaten Abschnitt speichern; und wenn das Kernpaket in dem in den Speicherzellen 103 gespeicherten Inhalt 161 einen Hash-Wert aufweist, der sich von dem entsprechenden Hash-Wert 163 unterscheidet, der für die Vorrichtungsinformationen 121 gespeichert ist, kann die Speichervorrichtung 130 die in dem separaten Abschnitt gespeicherte Kopie verwenden, um das in den Speicherzellen 103 gespeicherte Kernpaket zu ersetzen. Wahlweise kann die Ausführung der Ersatzkopie im Endgerät 150 so konfiguriert sein, dass ein Wiederherstellungsprozess gestartet wird, um eine aktuelle Version des Pakets von einer zuverlässigen Quelle, beispielsweise dem Firmware-Store 170, zu erhalten. Alternativ kann der Sicherheitsserver 140 die Aktualisierung einleiten (z. B. unter Verwendung des Firmware-Stores 170), nachdem er die Identitätsdaten 113 der Speichervorrichtung 130 und/oder des Endgeräts 150, die über die Ersatzkopie übermittelt wurden, überprüft hat.
  • Einige in den Speicherzellen 103 gespeicherte Pakete haben keine Auswirkungen auf die Sicherheit der anfänglichen Operationen zum Überprüfen 373 der Identitätsdaten 113 des Endgeräts 150 und der nachfolgenden Operationen zur Aktualisierung des Endgeräts 150. Somit ist es nicht erforderlich, eine Wiederherstellungskopie dieser Pakete in der Speichervorrichtung 130 zu speichern. Die Reparatur und/oder Aktualisierung dieser Pakete kann über den Sicherheitsserver 140 durchgeführt werden. Wenn der Integritätsstatus 165 beispielsweise angibt, dass sich ein Nicht-Kernpaket geändert hat, kann die Zugriffssteuerung 109 das Host-System 120 für den Zugriff auf das beschädigte oder geänderte Paket blockieren, bis das Endgerät 150 mit dem Sicherheitsserver 140 kommuniziert, um das beschädigte Paket zu reparieren oder wiederherzustellen.
  • Wahlweise können die in den Identitätsdaten 113 bereitgestellten Daten 127 den aktuellen Hash-Wert eines Pakets in dem in den Speicherzellen 103 gespeicherten Inhalt 161 beinhalten. Während der Operationen zum Überprüfen 373 der Identitätsdaten 113 des Endgeräts 150 kann der Sicherheitsserver 140 den aktuellen Hash-Wert prüfen, der in den Identitätsdaten 113 für das Paket bereitgestellt wird. Wenn der aktuelle Hash-Wert des Pakets angibt, dass das Paket verändert, beschädigt oder veraltet ist, kann der Sicherheitsserver 140 die Reparatur oder Wiederherstellung des Pakets einleiten.
  • Ferner können einige Pakete des Endgerätes 150 in einem anderen Gerät gespeichert werden, das nicht die Sicherheitsmerkmale der Speichervorrichtung 130 aufweist. Die Ausführung des Kernpakets in dem Host-System 120 kann die aktuellen Hash-Werte der Pakete als Zustandskennungen der Pakete erzeugen. Die Zustandskennungen können als Teil der in die Identitätsdaten 113 des Endgeräts 150 eingebetteten Daten 127 bereitgestellt werden, um dem Sicherheitsserver 140 zu ermöglichen, die Integrität der Pakete zu überwachen.
  • Im Allgemeinen können die Identitätsdaten 113 Daten beinhalten, die Aufschluss über den Zustand der Pakete im Endgerät 150 geben. Als Teil der Operationen zum Überprüfen 373 der Identitätsdaten 113 des Endgeräts 150 kann der Sicherheitsserver 140 bestimmen, ob eines der Pakete repariert und/oder aktualisiert werden soll. Die Reparatur oder Aktualisierung kann durchgeführt werden, bevor der Sicherheitsserver 140 die Authentizität des Endgeräts 150 bestätigt.
  • Ferner kann der Sicherheitsserver 140 in Reaktion auf das Überprüfen 373 der Identitätsdaten 113 des Endgeräts 150 für den Zugriff auf Dienste von Client-Servern (z. B. 141, ..., 143) konfiguriert sein, um die Aktivitäten des Endgeräts 150 beim Zugriff auf Dienste zu verfolgen und/oder zu überwachen, um weitere Operationen zur Gewährleistung der Sicherheit zu implementieren.
  • Zum Beispiel kann ein Besitzer oder Benutzer des Endgeräts 150 den Sicherheitsserver 140 anfordern, die Aktivitäten des Endgeräts 150 zu verfolgen. Aspekte der Aktivitäten des Endgeräts 150 können von dem Endgerät 150 und/oder den Client-Servern (z. B. 141, ..., 143) in den Identitätsdaten 113 und/oder in den Anforderungen 173 zur Überprüfung der Identitätsdaten 113 dargestellt werden.
  • Die Informationen über die verfolgten Aktivitäten können beispielsweise Standortinformationen des Endgeräts 150 und/oder die Art der vom Endgerät 150 durch Übermitteln der Identitätsdaten 113 angeforderten Dienste beinhalten.
  • Um beispielsweise die Identitätsdaten 113 für einen Dienst von dem Client-Server 141 zu erzeugen, kann das Endgerät 150 in der Nachricht 131 der Identitätsdaten 113 nicht nur die eindeutige Identifizierung 111 des Endgeräts 150 beinhalten, sondern auch den Kontext und/oder die Aspekte des Dienstes, wie etwa die Identifizierung des Client-Servers 141, einen Standort des Endgeräts 150, ein Datum und einen Zeitpunkt der Anforderung, eine Kategorie/einen Typ des Dienstes, einen Parameter des Dienstes usw.
  • Wenn zum Beispiel das Endgerät 150 eine Anforderung 171 für einen Dienst an einen Client-Server 141 sendet, kann der Client-Server 141 in der Anforderung an den Sicherheitsserver 140 nicht nur die Identitätsdaten 113 des Endgeräts 150 bereitstellen, sondern auch Informationen über die Anforderung 171 für den Dienst des Client-Servers 141.
  • Zum Beispiel kann der Client-Server 141 in Reaktion auf eine Anforderung 171 von dem Endgerät 150 eine Schätzung des Standorts des Endgeräts 150 basierend auf einer drahtlosen Kommunikationsverbindung zu einem oder mehreren Zugangspunkten, die mit dem Client-Server 141 verbunden sind, vornehmen und den Standort dem Sicherheitsserver 140 in Verbindung mit der Anforderung 173 zur Authentifizierung der Identitätsdaten 113 bereitstellen.
  • Wahlweise kann der Besitzer oder Benutzer des Endgeräts 150 ein Portal des Sicherheitsservers 140 besuchen, um die verfolgten Aktivitäten einzusehen. Zum Beispiel kann der Besitzer oder Benutzer basierend auf den verfolgten Aktivitäten anhand eines oder mehrerer aktueller Standorte des Endgeräts 150 bestimmen, ob das Endgerät 150 gestohlen wurde oder verloren gegangen ist.
  • Wahlweise kann ein Elternteil das Portal des Sicherheitsservers 140 verwenden, um Einstellungen für die elterliche Kontrolle einzustellen, um die Aktivitäten des Endgeräts 150 einzuschränken; und der Sicherheitsserver 140 kann die Einschränkungseinstellungen in Verbindung mit der Authentifizierung der Identität des Endgeräts 150 implementieren.
  • 18 veranschaulicht die Erzeugung von Identitätsdaten zur Erleichterung der Überwachung der Integrität und/oder der Aktivitäten eines Endgeräts gemäß einer Ausführungsform.
  • Zum Beispiel kann die Technik von 18 in einem Computersystem von 1 und/oder 6 mit den in den 1 bis 5 erläuterten Sicherheitsdiensten und -merkmalen verwendet werden. Die Technik von 18 kann in Kombination mit den Techniken der 9 bis 17 verwendet werden.
  • In 18 speichert das Endgerät 150 ein Paket 167, das einen Hash-Wert 169 aufweist. Das Paket 167 kann in der Speichervorrichtung 130 gespeichert werden, die die oben erläuterten Sicherheitsmerkmale aufweist, oder in einer anderen Speichervorrichtung des Endgeräts 150 gespeichert werden, die Sicherheitsmerkmale der Speichervorrichtung 130 aufweisen kann oder nicht. Wenn das Paket 167 in der Speichervorrichtung 130 gespeichert ist, kann die Kryptographie-Engine 107 der Speichervorrichtung 130 den Hash-Wert 169 des Pakets 167 berechnen, ohne sich auf die Verarbeitungsvorrichtung 118 des Host-Systems 120 in dem Endgerät 150 zu verlassen. Wenn das Paket 167 außerhalb der Speichervorrichtung 130 gespeichert ist, kann der Hash-Wert 169 dadurch erhalten werden, dass die Verarbeitungsvorrichtung 118 des Host-Systems 120 eine Routine ausführt, die in der Speichervorrichtung 130 gespeichert ist und die daraufhin überprüft wurde, dass sie nicht verändert wurde (z. B. wie in 4).
  • Im Allgemeinen kann das Paket 167 Anweisungen und/oder Daten beinhalten, beispielsweise Ressourcen, die für einen Satz von Endgeräten (z. B. 150) gleich sind, sowie Konfigurationsparameter, die von einem Endgerät (z. B. 150) zu einem anderen Endgerät variieren können.
  • Der Hash-Wert 169 des Pakets 167 gibt den Zustand des Pakets 167 an.
  • In 18 ist der geheime Schlüssel 137, der zum Erzeugen des Verifizierungscodes 133 der Identitätsdaten 113 verwendet wird, unabhängig vom Hash-Wert 169 des Pakets 167. Um die Überwachung der Integrität des Pakets 167 durch den Sicherheitsserver 140 zu ermöglichen, wird der Hash-Wert 169 als Teil der Nachricht 131 in den Identitätsdaten 113 bereitgestellt.
  • Nachdem der Sicherheitsserver 140 bestimmt hat, dass die Identitätsdaten 113 gültig sind, kann der Sicherheitsserver 140 den in den Identitätsdaten 113 bereitgestellten Hash-Wert 169 extrahieren, um zu bestimmen, ob das Paket 167 in dem Endgerät 150 geändert wurde und/oder ob das Paket 167 nicht mehr aktuell ist.
  • Zum Beispiel kann eine funktionsfähige und aktuelle Kopie des Pakets 167 auf einem Server (z. B. Sicherheitsserver 140, Firmware-Store 170 oder einem anderen Server) gespeichert werden, um die Reparatur oder Wiederherstellung des Pakets 167 in dem Endgerät 150 zu erleichtern. Wenn der aus den Identitätsdaten 113 extrahierte Hash-Wert 169 von dem Hash-Wert der funktionsfähigen und aktuellen Kopie abweicht, kann der Sicherheitsserver 140 eine Aktualisierung in ähnlicher Weise wie die Aktualisierung 377 der Firmware 363 des Endgeräts 150 einleiten, wie in Verbindung mit den 14 bis 17 erläutert.
  • Das Paket 167 kann für das Endgerät 150 individualisiert werden. Wenn das Paket 167 Konfigurationsparameter beinhaltet, die für das Endgerät 150 in einer Plattform 361 spezifisch sind, aber nicht für andere Endgeräte in der Plattform 361 anwendbar sind, kann beispielsweise nach erfolgreichem Konfigurieren des Pakets 167 in dem Endgerät 150 eine funktionsfähige Kopie des Pakets 167 auf den Server (z. B. den Sicherheitsserver 140, den Firmware-Store 170 oder einen anderen Server) hochgeladen werden.
  • In einigen Implementierungen kann die Speichervorrichtung 130 und/oder das Endgerät 150 konfiguriert sein, um den Hash-Wert der funktionsfähigen, individualisierten Kopie des Pakets 167 zu speichern. Zum Beispiel kann der gesunde Hash-Wert als Teil der Vorrichtungsinformationen 121 gespeichert werden, die zum Erstellen des geheimen Schlüssels 137 verwendet werden. Die Nachricht 131 in den Identitätsdaten 113 kann eine Kennung beinhalten, die angibt, ob das aktuelle Paket 167 funktionsfähig ist, ohne den aktuellen Hash-Wert 169 des Pakets 167.
  • Für eine verbesserte Sicherheit und/oder einen besseren Schutz der Privatsphäre kann die funktionsfähige Kopie des individualisierten Pakets 167 in verschlüsselter Form unter Verwendung eines kryptographischen Schlüssels der Speichervorrichtung 130 in den Server hochgeladen und dort gespeichert werden. Zur Neuinstallation des Pakets 167 unter Verwendung der funktionsfähigen Kopie entschlüsselt die Speichervorrichtung 130 die verschlüsselte Version unter Verwendung eines entsprechenden Entschlüsselungsschlüssels der Speichervorrichtung 130.
  • Zum Beispiel können nach erfolgreicher Konfiguration des individualisierten Pakets 167 in dem Endgerät 150 das Endgerät 150 und/oder die Speichervorrichtung 130 den Hash-Wert der funktionsfähigen Kopie des individualisierten Pakets 167 berechnen und den öffentlichen Schlüssel 139 verwenden, um das individualisierte Paket 167 zu verschlüsseln. Das Endgerät 150 kann den Hash-Wert und das verschlüsselte Paket 167 zum Speichern auf dem Server übermitteln, um die Überwachung und/oder Wiederherstellung zu erleichtern. Während der Wiederherstellung ist der geheime Schlüssel 137 in dem Schlüsselpaar 135 zum Entschlüsseln des verschlüsselten Pakets zu verwenden. Wahlweise kann die Kryptographie-Engine 107 ein separates Schlüsselpaar erzeugen, um das individualisierte Paket 167 zu sichern.
  • Alternativ kann auch ein geheimer Schlüssel mit symmetrischer Kryptographie verwendet werden, um das individualisierte Paket 167 zu schützen. Ein Sitzungsschlüssel 263, der während der Überprüfung der Identitätsdaten 113 des Endgeräts 150 zum Zeitpunkt des erfolgreichen Konfigurierens des individualisierten Pakets 167 in dem Endgerät 150 erzeugt wurde, kann beispielsweise dazu verwendet werden, das individualisierte Paket 167 zu verschlüsseln, um es an den Server (z. B. den Sicherheitsserver 140, den Firmware-Store 170 oder einen anderen Server) zu übertragen und/oder dort zu speichern.
  • In 18 beinhalten die Identitätsdaten 113 nicht nur den aktuellen Hash-Wert 169 des Pakets 167, sondern auch Aktivitätsinformationen 177, die einige Aspekte des Kontexts, in dem die Identitätsdaten 113 verwendet werden, identifizieren. So kann beispielsweise die Aktivitätsinformation 177 durch das Host-System 120 erzeugt werden, das ein Paket (z. B. 167 oder ein anderes Paket, wie Firmware, Anwendung, Routine) ausführt oder laufen lässt.
  • So kann beispielsweise die Aktivitätsinformation 177 den aktuellen Standort des Endgeräts 150 beinhalten, wobei die Identitätsdaten 113 erzeugt werden.
  • So kann beispielsweise die Aktivitätsinformation 177 das Datum und den Zeitpunkt des Erzeugens der Identitätsdaten 113 beinhalten.
  • So kann beispielsweise die Aktivitätsinformation 177 eine Identifizierung des Client-Servers 141 beinhalten, an den die Identitätsdaten 113 übermittelt werden, um einen Dienst 171 anzufordern.
  • So können beispielsweise die Aktivitätsinformationen 177 ein oder mehrere Attribute des angeforderten Dienstes beinhalten, beispielsweise eine Kategorie eines Dienstes, eine Identifizierung einer anderen Partei, die an dem Dienst beteiligt ist, einen Betrag oder eine Menge, die an dem Dienst beteiligt ist, usw.
  • Wenn beispielsweise die Identitätsdaten 113 für eine Kommunikationsverbindung übermittelt werden, können die Attribute die Identifizierung des Verbindungstyps, die Bezeichnung der Verbindung usw. beinhalten.
  • Wenn zum Beispiel die Identitätsdaten 113 für eine Zahlung übermittelt werden, können die Attribute die Identifizierung einer Kaufkategorie, eines Zahlungsempfängers, eines Zahlungsbetrags usw. beinhalten.
  • Die Aktivitätsinformationen 177 können von dem Sicherheitsserver 140 verwendet werden, um betrügerische Aktivitäten und unbefugte Verwendungen des Endgeräts zu erkennen und Aktivitätsbeschränkungen durchzusetzen (z. B. wie in den Einstellungen der Kindersicherung angegeben) usw.
  • Um die Sicherheit und/oder den Schutz der Privatsphäre zu verbessern, können die Aktivitätsinformationen 177 in verschlüsselter Form in der Nachricht 131 enthalten sein. Zum Beispiel kann der Sitzungsschlüssel 263, der mit der Überprüfung der Identitätsdaten 113 assoziiert ist, verwendet werden, um den Chiffretext der Aktivitätsinformationen 177 zu erzeugen; und der Sicherheitsserver 140 kann die Aktivitätsinformationen 177 aus dem Chiffretext wiederherstellen, indem er den Sitzungsschlüssel 263 nach erfolgreicher Überprüfung des Verifizierungscodes 133 der Identitätsdaten 113 verwendet.
  • 19 veranschaulicht eine Technik zum Aufrechterhalten der Integrität von Paketen, die auf einem Endgerät gespeichert sind, gemäß einer Ausführungsform.
  • In 19 speichert das Endgerät 150 eine Vielzahl von Paketen 441, 443, ..., 445. Einige der Pakete werden in dem Speicher in der Speichervorrichtung 130 gespeichert, der die Sicherheitsmerkmale aufweist. Einige der Pakete können außerhalb der Speichervorrichtung 130 gespeichert werden.
  • Ein in der Speichervorrichtung 130 gespeichertes Kernpaket 441 kann in der Verarbeitungsvorrichtung 118 des Host-Systems 120 ausgeführt werden, das mit der Speichervorrichtung 130 in dem Endgerät 150 verbunden ist. Das Paket 441 steuert die Operationen des Endgeräts 150 beim Übermitteln der Identitätsdaten 113 des Endgeräts 150 an den Sicherheitsserver 140 und bei der Kommunikation mit einem Paketspeicher 191, um Pakete 441, 443, ..., 445 zu reparieren und/oder zu aktualisieren. Das Paket-Repository 191 kann beispielsweise den Firmware-Store 170 der 14 und 15 beinhalten.
  • Die Sicherheitsmerkmale der Speichervorrichtung 130 stellen sicher, dass in dem Endgerät 150 eine gültige Version des Pakets 441 ausgeführt wird, um Manipulationen und/oder Verfälschungen bei Operationen zum Überprüfen 373 der Identität des Endgeräts 150 und zur Reparatur 385 eines Pakets zu vermeiden.
  • Die Speichervorrichtung 130 kann zum Beispiel eine Backup-Version des Kernpakets 441 in einem sicheren Bereich der Speichervorrichtung 130 speichern. Wenn das Paket 441 eine Änderung aufweist, kann die Speichervorrichtung 130 die geänderte Version des Pakets 441 durch die Backup-Version ersetzen, um zumindest die Operationen zum Überprüfen 373 der Identität des Endgeräts 150 und zur Reparatur 385 und/oder zur Aktualisierung 377 der Pakete sicherzustellen.
  • Nachdem das Endgerät 150 die Identitätsdaten 113 erzeugt hat, übermittelt das Endgerät 150, welches das Paket 441 ausführt, die Identitätsdaten 113 zur Überprüfung 373 an den Sicherheitsserver 140. Die Identitätsdaten 113 können beispielsweise mit der Technik erzeugt werden von 18.
  • Die Identitätsdaten 113 können Informationen über den Funktionszustand der Pakete 447 beinhalten, beispielsweise aktuelle Hash-Werte der Pakete 441, 443, ..., 445, und/oder Angaben darüber, ob eines der Pakete 443, ..., 445 beschädigt ist, basierend auf einem Vergleich der aktuellen Hash-Werte und der gespeicherten Hash-Werte von Funktionsversionen der jeweiligen Pakete.
  • Wahlweise kann ein Teil der Nachricht 131 als Chiffretext bereitgestellt werden, der unter Verwendung des Sitzungsschlüssels 263 erzeugt wird. Zum Beispiel kann der verschlüsselte Teil der Nachricht Informationen über den Funktionszustand des Pakets 447 und/oder Informationen über die Aktivität 177 beinhalten. Der Sitzungsschlüssel 263 kann zur gemeinsamen Nutzung durch die Speichervorrichtung 130 und den Sicherheitsserver in Verbindung mit der Überprüfung 373 der Identität des Endgerätes 150 erzeugt werden, wie in 9 erläutert.
  • Im Allgemeinen können die Identitätsdaten 113 von dem Endgerät 150 an den Sicherheitsserver 140 direkt über eine Kommunikationsverbindung oder indirekt über einen Zwischenserver übertragen werden, beispielsweise einen Client-Server 141 wie in 5, 9, oder 10, einen Firmware-Store 170 in 14 oder 15, einen Service-Store 190 in 15, oder das Paket-Repository 191 von 19.
  • Nach der Überprüfung 373 der Identitätsdaten 113 kann der Sicherheitsserver 140 mit dem Paket-Repository 191 kommunizieren, um basierend auf den in den Identitätsdaten 113 bereitgestellten Paket-Informationen 447 die Integrität der Pakete 441, 443, ..., 445 zu überprüfen 383.
  • Zum Beispiel kann das Paket 441 in dem Endgerät 150 überprüft werden. Da jedoch eine neue Version des Pakets 441 im Paket-Repository 191 veröffentlicht wird, kann das Paket 441 veraltet sein. Somit kann durch das Aktualisieren des Pakets 441 die Sicherheit der Operationen des Endgeräts 150 und die Integrität des Systems verbessert werden.
  • Zum Beispiel kann das Paket 443 oder 445 in dem Endgerät 150 Änderungen aufweisen und somit beschädigt werden. Die Zustandsdaten 195 der entsprechenden Pakete 193 im Repository 191 können mit den in den Identitätsdaten 113 bereitgestellten Paketzustandsinformationen 447 verglichen werden, um die Änderung zu erkennen.
  • Wenn ein Paket (z. B. 441, 443, ..., 445) als veraltet oder beschädigt erkannt wird, kann der Sicherheitsserver 140 das Endgerät 150 und/oder das Paket-Repository 191 anweisen, das Paket 385 zu reparieren oder 377 zu aktualisieren.
  • Die Operation zum Reparieren 385 oder Aktualisieren 377 eines Pakets kann beinhalten, dass der Sicherheitsserver 140 einen Verifizierungscode 153 für einen Befehl 155 zum Schreiben von Daten in die Speichervorrichtung 130 erzeugt. Wenn ein Paket sensible Informationen beinhaltet, wie beispielsweise Konfigurationsparameter, die auf das Endgerät 150 angepasst sind, kann das Ersatzpaket in der Speichervorrichtung 130 als Chiffretext bereitgestellt werden, der mit dem Sitzungsschlüssel 263 oder einem anderen geheimen Schlüssel erzeugt wird.
  • Nach dem Reparieren 385 oder Aktualisieren 377 kann das Endgerät 150 die aktualisierten Identitätsdaten 113 übermitteln. Wenn der Sicherheitsserver 140 bestimmt, dass die Identitätsdaten 113 gültig sind und die Paketinformationen 447 in den Identitätsdaten 113 angeben, dass die Pakete 441, 443, ..., 445 in dem Endgerät 150 intakt und auf dem neuesten Stand sind, kann der Sicherheitsserver 140 die Authentizität des Endgeräts 150 zertifizieren.
  • 20 zeigt ein System, das Sicherheitsoperationen basierend auf der Verfolgung von Aktivitäten eines Endgeräts gemäß einer Ausführungsform implementiert.
  • Zum Beispiel können die Sicherheitsoperationen von 20 in Kombination mit den Techniken aus den 9, 10, 14, 15, und/oder 19, unter Verwendung von Sicherheitsmerkmalen in den Speichervorrichtungen, die in Verbindung mit den 1 bis 5, erläutert wurden, und in Kombination mit den Systemen von 1 und/oder 6 implementiert werden.
  • In 20 kann ein Benutzer-Computer 180 verwendet werden, um einen Aktivitäts-Tracker 451 zu besuchen, um Präferenzen 455 einzustellen und/oder verfolgte Aktivitätsaufzeichnungen 453 des Endgeräts 150, das die eindeutige Identifizierung 111 aufweist, zu überprüfen.
  • Wie in den 14 und 15, ist der Benutzer-Computer 180 typischerweise verschieden und vom Endgerät 150 getrennt. In einigen Instanzen kann das Endgerät 150 eine Benutzeroberfläche beinhalten, die es ermöglicht, den Computer 180 zum Einstellen von Benutzerpräferenzen 455 und/oder zur Überprüfung von Aktivitätsaufzeichnungen 453 zu verwenden.
  • Der Aktivitäts-Tracker 451 ist mit einem Sicherheitsserver 140 gekoppelt, um Aktivitätsaufzeichnungen 453 über die Aktivitäten des Endgeräts 150 zu speichern, in denen die Identitätsdaten 113 des Endgeräts 150 vom Sicherheitsserver 140 überprüft werden.
  • Die Präferenzen 455 können Sicherheitseinstellungen für die Aktivitäten des Endgeräts 150 beinhalten. Die Sicherheitseinstellungen können zum Beispiel dazu implementiert werden, eine Kindersicherung zu implementieren, betrügerische Verwendungen des Endgeräts 150 zu erkennen, den Standort des Endgeräts 150 zu verfolgen usw.
  • Zum Beispiel können die Referenzen 455 eine geografische Region für das Endgerät 150 identifizieren. Wenn das Endgerät 150 Identitätsdaten 113 von einem Standort außerhalb der geografischen Region sendet, kann der Aktivitäts-Tracker 451 eine Sicherheitsmeldung an einen registrierten Besitzer oder Benutzer des Endgeräts 150 erzeugen.
  • Die Sicherheitsmeldung kann beispielsweise an ein mobiles Gerät des Besitzers oder Benutzers, eine in den Präferenzen identifizierte E-Mail-Adresse oder Telefonnummer und/oder eine auf dem Benutzer-Computer 180, einem persönlichen Mediaplayer, einem Mobiltelefon, einem Smartphone usw. laufende Anwendung übermittelt werden.
  • Die Präferenzen 455 können zum Beispiel eine vom Benutzer ausgewählte Option beinhalten, die mit einer in den Präferenzen 455 angegebenen vorbestimmten Bedingung assoziiert ist. Wenn eine Aktivität, die mit der Übermittlung der Identitätsdaten 113 assoziiert ist, die Bedingung erfüllt, veranlasst die ausgewählte Option den Sicherheitsserver 140 und/oder den Client-Server 141, eine Zurückweisung in einer Zugriffsantwort 172 für die entsprechende Zugriffsanforderung 171 zu erzeugen. Alternativ oder in Kombination dazu kann die Option eine Sicherheitsmeldung an einen in den Einstellungen 455 registrierten Kontakt auslösen.
  • Das Endgerät 150 kann die Zugriffsanforderung 171 an den Client-Server 141 übermitteln, um einen Dienst anzufordern. Zum Beispiel kann der Dienst dem Endgerät 150 eine Mobilfunkverbindung, eine Internetverbindung, eine Verbindung zum Benutzer-Computer 180, eine Online-Lagerung, eine Online-Rechenressource usw. bereitstellen. Zum Beispiel kann der Dienst die Abwicklung einer Zahlung, einer Transaktion, einer Nachricht usw. beinhalten.
  • Die Identitätsdaten 113, die in der Zugriffsanforderung 171 bereitgestellt werden, können Aktivitätsinformationen 177 beinhalten, wie veranschaulicht in 18. Alternativ oder in Kombination dazu kann der Client-Server 141 ähnliche oder separate Aktivitätsinformationen in der an den Sicherheitsserver 140 angeforderten Überprüfung 173 bereitstellen. Der Client-Server 141 kann beispielsweise Zugriffsattribute 449 in der Überprüfung der Anforderung 173 angeben. Die Zugriffsattribute 449 identifizieren bestimmte Aspekte der aktuellen Aktivität des Endgeräts 150, für die die Identität des Endgeräts 150 durch den Sicherheitsserver 140 zu authentifizieren ist. Der Client-Server 141 überträgt die Überprüfungsanforderung 173 an den Sicherheitsserver 140, der die Identitätsdaten 113 überprüft, um die Authentizität der Identität des Endgeräts 150 zu bestimmen.
  • Nach der Überprüfung 373 der in der Überprüfungsanforderung 173 bereitgestellten Identitätsdaten 113 kann der Sicherheitsserver 140 einen Aktivitätsdatensatz 453 für den Aktivitäts-Tracker 451 erzeugen. Der Aktivitätsdatensatz 453 kann die aus den Identitätsdaten 113 extrahierten Aktivitätsinformationen 177 und/oder die aus der Überprüfungsanforderung 173 extrahierten Zugriffsattribute 449 der aktuellen Aktivität des Endgeräts 150 beinhalten.
  • Basierend auf dem Aktivitätsdatensatz 453 bestimmt der Aktivitäts-Tracker 451, ob die aktuelle Aktivität eine der in den Präferenzen 455 festgelegten Bedingungen erfüllt. Wenn eine Bedingung in den Einstellungen 455 erfüllt ist, kann der Aktivitäts-Tracker 451 eine Sicherheitsoperation zum Implementieren einer für die Bedingung ausgewählten Option betreiben.
  • Die Sicherheitsoperation kann beispielsweise eine Benachrichtigung an einen Registerinhaber oder Benutzer des Endgeräts 150 beinhalten.
  • Die Sicherheitsoperation kann beispielsweise die Anweisung an den Sicherheitsserver 140 beinhalten, eine Überprüfungsantwort 174 bereitzustellen, die eine Sicherheitseinschränkung, ein Sicherheitsproblem, eine nicht autorisierte Verwendung des Endgeräts 150 usw. angibt.
  • Wahlweise kann der Aktivitäts-Tracker 451 ein Muster von Aktivitäten des Endgeräts 150 anhand von Aufzeichnungen 453 über vergangene Aktivitäten identifizieren.
  • Das Muster kann beispielsweise einen geografischen Bereich oder eine Region des Endgeräts 150 beinhalten, in der das Endgerät 150 in der Vergangenheit betrieben wurde. Das Muster kann beispielsweise einen Zeitpunkt an einem Tag oder in einer Woche beinhalten, in dem das Endgerät 150 keine Aktivitäten in der Vergangenheit aufweist. Das Muster kann beispielsweise einen Bereich eines Zugriffsattributs 449 von vergangenen Aktivitäten des Endgeräts 150 beinhalten.
  • Wenn die aktuelle Aktivität von dem Muster abweicht, kann der Aktivitäts-Tracker 451 eine Benachrichtigung erzeugen und optional den Sicherheitsserver 140 und/oder den Client-Server 141 veranlassen, die Zugriffsanforderung 171 abzulehnen.
  • Wahlweise kann der Sicherheitsserver 140 die in den Identitätsdaten 113 bereitgestellten Aktivitätsinformationen 177 überprüfen, um Sicherheitsrisiken zu erkennen.
  • So können beispielsweise das Datum und der Zeitpunkt und/oder der Standort, die in den Aktivitätsinformationen 177 angegeben sind, mit den entsprechenden Informationen in den Zugriffsattributen 449 verglichen werden, um Unstimmigkeiten zu erkennen. Eine Nichtübereinstimmung kann eine Kennung für die Verwendung gestohlener Identitätsdaten 113, für die Manipulation des Endgeräts 150 oder für unsichere Operationen sein.
  • 21 zeigt ein Verfahren zum Aktualisieren oder Reparieren eines in einem Endgerät gespeicherten Pakets gemäß einer Ausführungsform. Beispielsweise kann das Verfahren von 21 unter Verwendung der Techniken implementiert werden aus den 18 und 19.
  • Bei Block 461 empfängt ein Server-System von einem Endgerät 150 Identitätsdaten 113, die von einer in dem Endgerät 150 konfigurierten Speichervorrichtung 130 erzeugt wurden.
  • Beispielsweise kann das Server-System einen Sicherheitsserver 140 beinhalten, der Geheimnisse von Speichervorrichtungen (z. B. 130) und/oder anderen Servern speichert, sodass beispielsweise ein Paket-Repository 191, ein Firmware-Store 170 und/oder ein anderer Server zur Verfügung steht.
  • Bei Block 463 überprüft der Sicherheitsserver 140 die Identitätsdaten basierend auf den im Sicherheitsserver 140 gespeicherten Informationen über das Endgerät 150, einschließlich einen Vorrichtungsschlüssel in der Speichervorrichtung 130.
  • Beispielsweise können die Operationen in Block 463 auf ähnliche Weise wie die in Block 323, Block 343, Block 403 und/oder Block 423 betriebenen Operationen durchgeführt werden.
  • In Block 465 extrahiert der Sicherheitsserver 140 aus den Identitätsdaten 113, die überprüft wurden, die Gesundheitsinformationen 447 eines Pakets (z. B. 167, 441, 443, ..., 445), das in dem Endgerät 150 gespeichert ist.
  • Die Zustandsinformationen 447 können beispielsweise einen aktuellen Hash-Wert 169 des Pakets 167 beinhalten, wie er in dem Endgerät 150 gespeichert ist. Der Sicherheitsserver 140 kann den aktuellen Hash-Wert 169, der aus den Identitätsdaten 113 extrahiert wurde, mit einem Hash-Wert einer funktionsfähigen, aktuellen Version des Pakets 167 vergleichen, das im Server-System gespeichert ist (z. B. im Repository 191, dem Firmware-Store 170).
  • Das Empfangen der Identitätsdaten in Block 461 kann beispielsweise das Ergebnis davon sein, dass das Endgerät 150 das Paket 167, wie es in dem Endgerät 150 gespeichert ist, ausführt. Das Paket 167 kann zumindest einen Teil der Firmware 363 oder eines Betriebssystems des Endgeräts 150 beinhalten. Die Zustandsinformationen 447 können verwendet werden, um zu bestimmen, ob das Paket 167 veraltet ist.
  • In einem anderen Beispiel kann das Empfangen der Identitätsdaten in Block 461 kann das Ergebnis davon sein, dass das Endgerät 150 ein erstes Paket 441, wie es in dem Endgerät 150 gespeichert ist, ausführt. Das erste Paket 441 kann zumindest einen Teil der Firmware 363 oder eines Betriebssystems des Endgeräts 150 beinhalten. Die Zustandsinformationen 447 können verwendet werden, um zu bestimmen, ob ein zweites Paket (z. B. 443 oder 445) veraltet, beschädigt oder geändert ist.
  • Wenn das zweite Paket (z. B. 443 oder 445) für das Endgerät 150 angepasste Daten beinhaltet. Das Server-System kann zu dem Zeitpunkt, an dem das zweite Paket (z. B. 443 oder 445) in dem Endgerät 150 erfolgreich konfiguriert ist, eine Kopie des zweiten Pakets (z. B. 443 oder 445) erhalten. Das zweite Paket (z. B. 443 oder 445) kann beispielsweise einen oder mehrere Konfigurationsparameter des Endgeräts 150 beinhalten. In Reaktion auf das erfolgreiche Konfigurieren des zweiten Pakets (z. B. 443 oder 445) kann das Server-System eine funktionsfähige Version des zweiten Pakets (z. B. 443 oder 445) von dem Endgerät 150 empfangen. Anschließend, wenn die bei Block 465 extrahierte Zustandsinformation 447 angibt, dass das zweite Paket (z. B. 443 oder 445) repariert werden muss, kann die im Repository 191 gespeicherte funktionsfähige Version verwendet werden.
  • In einigen Implementierungen beinhaltet das Extrahieren der Zustandsinformationen 447 aus den Identitätsdaten 113 das Entschlüsseln eines Abschnitts einer in den Identitätsdaten 113 bereitgestellten Nachricht 131 (z. B. unter Verwendung eines Sitzungsschlüssels 263).
  • Die Identitätsdaten 113 beinhalten einen ersten Verifizierungscode 133. Der Sicherheitsserver 140 überprüft die Identitätsdaten 113, indem er bestimmt, ob der erste Verifizierungscode 133 aus der Nachricht 131 und der Identität der Speichervorrichtung 130 erzeugt wurde. Das Geheimnis kann zum Beispiel der eindeutige Vorrichtungsschlüssel 101 in dem Speicher 130 und/oder der geheime Schlüssel 137 sein. Der Geheimcode der Speichervorrichtung 130 wird nicht außerhalb der Speichervorrichtung 130 übertragen, nachdem die Speichervorrichtung 130 in das Endgerät 150 eingebaut wurde.
  • Bei Block 467 blockiert der Sicherheitsserver 140 zumindest teilweise durch die Zustandsinformationen 447, dass das in dem Endgerät 150 gespeicherte Paket eine Aktualisierung oder Reparatur benötigt.
  • Bei Block 469 initiiert der Sicherheitsserver 140 eine Operation zum Durchführen der Aktualisierung oder Reparatur für das in dem Endgerät 150 gespeicherte Paket.
  • Zum Beispiel erzeugt der Sicherheitsserver 140 zum Ersetzen oder Reparieren eines in dem Speichervorrichtung 130 gespeicherten Pakets einen zweiten Verifizierungscode 153 für einen Befehl 155 unter Verwendung eines kryptographischen Schlüssels, der eine Berechtigung zum Ausführen des Befehls 155 in der Speichervorrichtung 130 darstellt. Zum Beispiel veranlasst der Befehl 155 bei Ausführung in der Speichervorrichtung 130 das Ersetzen des Pakets (z. B. 441 oder 443) in der Speichervorrichtung 130.
  • In einigen Implementierungen wird zum Reparieren eines Pakets 445, das außerhalb der Speichervorrichtung 130 gespeichert ist, zunächst ein Ersatz des Pakets 445 in der Speichervorrichtung 130 gespeichert. Nachdem die Speichervorrichtung die Unversehrtheit des Ersatzes überprüft hat, kann das Paket 445 durch die Ausführung von Anweisungen in einem aus der Speichervorrichtung 130 geladenen Paket 441 ersetzt werden. Wahlweise kann ein zweiter Verifizierungscode 153 erzeugt werden, um den Ersatz in die Speichervorrichtung 130 zu schreiben und/oder das Durchführen einer Reparatur oder eines Ersatzes des Pakets 445 zu ermöglichen.
  • 22 zeigt ein Verfahren zum Durchführen einer Sicherheitsoperation basierend auf einer oder mehreren Aktivitäten eines Endgeräts gemäß einer Ausführungsform. Beispielsweise kann das Verfahren von 22 unter Verwendung der Techniken implementiert werden aus den 18 und 20.
  • Bei Block 481 speichert ein Server-System Daten, die eine oder mehrere Präferenzen 455 für ein Endgerät 150 darstellen.
  • Beispielsweise kann das Server-System einen Sicherheitsserver 140 beinhalten, der Geheimnisse von Speichervorrichtungen (z. B. 130) und/oder anderen Servern speichert, sodass beispielsweise ein Aktivitäts-Tracker 451, ein Paket-Repository 191, ein Firmware-Store 170 und/oder ein anderer Server zur Verfügung steht.
  • Bei Block 483 empfängt das Server-System eine Überprüfungsanforderung 173 mit Identitätsdaten 113, die von einer in dem Endgerät 150 konfigurierten Speichervorrichtung 130 erzeugt wurden.
  • Bei Block 485 bestimmt das Server-System, dass die Identitätsdaten 113 zumindest teilweise basierend auf einer Identität der Speichervorrichtung gültig sind.
  • Beispielsweise können die Operationen in Block 485 auf ähnliche Weise wie die in Block 323, Block 343, Block 403, Block 423 und/oder Block 463 betriebenen Operationen durchgeführt werden.
  • Bei Block 487 bestimmt das Server-System, dass eine Aktivität, die mit den Identitätsdaten 113 assoziiert ist, eine für das Endgerät 150 spezifizierte Bedingung erfüllt.
  • Die Bedingung kann zum Beispiel in den Präferenzen 455 für das Endgerät 150 angegeben werden. Wenn
  • Bei Block 489 führt das Server-System eine Sicherheitsoperation durch, die mit der Bedingung assoziiert ist, indem es in Reaktion auf die Überprüfungsanforderung 173 eine Überprüfungsantwort 174 bereitstellt.
  • Die Operation kann zum Beispiel das Übertragen eines Alarms oder einer Benachrichtigung an einen Kontakt beinhalten, der in einer oder mehreren Referenzen 455 registriert ist.
  • Zum Beispiel kann die Sicherheitsoperation das Identifizieren eines Sicherheitsrisikos oder einer Einschränkung in der Überprüfungsantwort 174 beinhalten. Wahlweise kann der Sicherheitsserver 140 die Überprüfungsantwort 174 bereitstellen, die die Authentizität des Endgeräts 150 auch dann nicht bestätigt, wenn die Identitätsdaten 113 einen gültigen Verifizierungscode 133 aufweisen, und zwar in Anbetracht des geheimen Schlüssels 137 der Speichervorrichtung 130 und der in den Identitätsdaten 113 enthaltenen Nachricht 131. Wenn die Aktivität, die mit den Identitätsdaten 113 assoziiert ist, die Bedingung erfüllt, kann die Überprüfungsantwort 174 so konfiguriert sein, dass sie einen Client-Server veranlasst, eine Anforderung 171 für einen Dienst für das Endgerät 150, wie durch die Identitätsdaten 113 identifiziert, abzulehnen.
  • Die Bedingung kann für die Aktivität basierend auf Aktivitätsinformationen 177, die von der Speichervorrichtung 130 in die Identitätsdaten 113 und/oder Zugriffsattribute 449 eingebettet sind, die von einem Client-Server 141 in der Überprüfungsanforderung 173 bereitgestellt werden, bewertet werden.
  • Nachdem der Sicherheitsserver 140 beispielsweise bestimmt hat, dass der Verifizierungscode 133 in den Identitätsdaten 113 gültig ist, kann der Sicherheitsserver 140 darauf vertrauen, dass die in den Identitätsdaten 113 eingebettete Aktivitätsinformation 177 nicht verändert wurde, nachdem die Speichervorrichtung 130 den Verifizierungscode 133 erzeugt hat. Somit kann die Aktivitätsinformation 177 aus den Identitätsdaten 113 für die Bewertung der Bedingung extrahiert werden. Wahlweise kann die Aktivitätsinformation 177 in der Nachricht als Chiffretext bereitgestellt werden, der unter Verwendung eines in der in 9 erläuterten Weise erzeugten Sitzungsschlüssels 263 oder eines anderen geheimen kryptographischen Schlüssels zur Entschlüsselung in der Speichervorrichtung 130 zu entschlüsseln ist.
  • Alternativ oder in Kombination dazu kann der Sicherheitsserver 140 Zugriffsattribute 449 aus der Überprüfungsanforderung 173 extrahieren. Zum Beispiel, nachdem der Client-Server 141 die Zugriffsanforderung 171 für einen vom Client-Server 141 bereitgestellten Dienst erhalten hat, kann der Client-Server 141 die Überprüfungsanforderung 173 an den Sicherheitsserver 140 erzeugen. Die Überprüfungsanforderung 173 wird erzeugt, um die Identitätsdaten 113 aus der Zugriffsanforderung 171 zu beinhalten. Ferner kann der Client-Server 141 die Zugriffsattribute 449 hinzufügen, um Informationen über die Aktivität des Endgeräts 150 im Kontext des Anforderns des Dienstes des Client-Servers 141 bereitzustellen.
  • Zum Beispiel kann die Bedingung eine Nichtübereinstimmung in den Aktivitätsinformationen 177 und den Zugriffsattributen 449 beinhalten; und die Nichtübereinstimmung kann eine Ablehnung der Zugriffsanforderung 171 und/oder eine Ablehnung der Identitätsdaten 113 in der Überprüfungsantwort 174 auslösen, selbst wenn die Identitätsdaten 113 einen gültigen Verifizierungscode 133 aufweisen.
  • In einigen Implementierungen kommuniziert das Server-System mit einem Benutzer-Computer 180, um die Daten zu empfangen, die eine oder mehrere Präferenzen 455 für das Endgerät 150 darstellen.
  • Alternativ oder in Kombination dazu kann das Server-System die Präferenzen 455 aus den Aufzeichnungen 453 über frühere Aktivitäten ableiten.
  • Zum Beispiel kann ein Aktivitäts-Tracker 451 des Server-Systems eine Vielzahl von Aufzeichnungen 453 von Aktivitäten des Endgeräts 150 speichern. Basierend auf der Vielzahl von Aufzeichnungen 453 kann der Aktivitäts-Tracker 451 ein Muster der Aktivitäten des Endgeräts 150 bestimmen. Das Muster kann einen geografischen Bereich, einen Zeitpunkt an einem Tag oder in einer Woche oder einen Bereich eines Aktivitätsattributs oder eine beliebige Kombination davon beinhalten. Eine Bedingung zum Auslösen der Sicherheitsoperation von Block 489 kann durch eine vom Muster abweichende Aktivität erfüllt werden.
  • Wahlweise kann der Aktivitäts-Tracker 451 basierend auf den Aufzeichnungen 453 die Aktivitäten des Endgeräts 150 für einen Besitzer oder autorisierten Benutzer des Endgeräts 150 darstellen. Zum Beispiel kann der Besitzer oder autorisierte Benutzer basierend auf einer Überprüfung der vergangenen Aktivitäten Bedingungen für das Implementieren von Kindersicherung, Zugriffsbeschränkungen usw. festlegen.
  • Die Identität eines Endgeräts 150, das vom Sicherheitsserver 140 authentifiziert wurde, kann dynamisch mit einem Abonnementkonto assoziiert werden, das durch eine Kontokennung dargestellt wird, um die von einem Client-Server 141 für das Konto bereitgestellten Dienste zu empfangen. Wenn das Endgerät 150 die Dienste nicht verwendet, kann die Zuordnung zwischen der Identität des Endgeräts 150 und dem Abonnementkonto entfernt werden, um es einem anderen Endgerät zu ermöglichen, das Abonnementkonto zu verwenden. Somit kann eine Gruppe von Endgeräten (z. B. 150) so konfiguriert werden, dass sie das Abonnementkonto gemeinsam nutzen und das Abonnementkonto zu einem bestimmten Zeitpunkt verwenden.
  • Zum Beispiel kann eine Gruppe von Endgeräten so konfiguriert sein, dass sie den Dienst eines Client-Server 141 für Mobilfunkverbindungen verwenden. Traditionell wird eine Teilnehmeridentifikationsmodul (SIM)-Karte verwendet, um ein Teilnehmer-/Abonnementkonto darzustellen. Die Gruppe der Endgeräte kann das von der SIM-Karte dargestellte Abonnementkonto verwenden, indem sie die SIM-Karte zu einem bestimmten Zeitpunkt in ein Endgerät der Gruppe installiert. Um einem anderen Endgerät in der Gruppe zu erlauben, das Abonnementkonto zu verwenden, muss die SIM-Karte physisch von einem Endgerät zu einem anderen Endgerät bewegt werden.
  • Ein System, wie es oben in Verbindung mit 6 erläutert wurde, ermöglicht die Verwendung eines virtuellen Teilnehmeridentifikationsmoduls (vSIM), das an einem Endgerät (z. B. 150) durch eine virtuelle Kartenregistrierung 237 basierend auf der Identitätsüberprüfung oder Endgerätauthentifizierung 239 angebracht wird, die unter Verwendung des Sicherheitsservers 140 durchgeführt wird. Das System von 6 kann ferner konfiguriert sein, um das Endgerät (z. B. 150) von dem Kartenprofil 219, welches das Abonnementkonto darstellt, zu trennen, sodass die virtuelle Kartenregistrierung 237 für ein anderes Endgerät zur Verwendung des Abonnementkontos durchgeführt werden kann.
  • Beispielsweise kann ein abonnierter Dienst (z. B. eine Mobilfunkverbindung), der für ein Abonnementkonto bereitgestellt wird, von einer Reihe von Endgeräten, die einem Unternehmen (oder einer anderen Einrichtung) gehören, gemeinsam genutzt werden. Die Endgeräte (z. B. 150) in der Population benötigen den Dienst des Kontos möglicherweise nicht zum gleichen Zeitpunkt. Somit kann es von Vorteil sein, die Endgeräte in der Population so zu konfigurieren, dass sie sich ein oder mehrere Abonnementkonten teilen. Wenn mehr als ein Abonnementkonto für die gemeinsame Nutzung durch die Population von Endgeräten (z. B. IoT-Geräte (Internet der Dinge)) konfiguriert ist, kann ein kleiner Teil der Population die für die Konten abonnierten Dienste gleichzeitig verwenden.
  • Zum Beispiel kann ein Server-System so konfiguriert sein, dass es die aktuellen Nutzungszustände der Endgeräte in der Population verfolgt. Wenn ein Endgerät mit einem Client-Server kommuniziert, um einen Dienst anzufordern, kann das Endgerät dynamisch an ein Abonnementkonto gebunden werden. Wenn das Endgerät den Dienst nicht mehr aktiv verwendet, kann das Abonnementkonto vom Endgerät freigegeben werden. Wenn die Anzahl der Endgeräte, die aktiv die für die Abonnementkonten bereitgestellten Dienste nutzen, nicht größer ist als die Anzahl der zur gemeinsamen Nutzung verfügbaren Abonnementkonten, können die aktiven Endgeräte die Dienste der Konten gleichzeitig verwenden. Wenn die Abonnementkonten derzeit an einen Teil der Population gebunden sind und von dieser aktiv verwendet werden, kann eine Anforderung eines Dienstes von einem weiteren Endgerät abgelehnt werden, bis eines der Abonnementkonten von der aktiven Verwendung freigegeben wird und somit für die gemeinsame Nutzung zur Verfügung steht.
  • Zum Beispiel kann ein virtuelles Teilnehmeridentifikationsmodul (vSIM) an ein IoT-Gerät (Internet der Dinge) eines Unternehmens in Reaktion auf die Anforderung einer Mobilfunkverbindung durch das IoT-Gerät gebunden sein. Wenn die Mobilfunkverbindung für einen Zeitraum, der länger als ein Schwellenwert ist, im Leerlauf war, kann die Mobilfunkverbindung getrennt werden, und das virtuelle Teilnehmeridentifikationsmodul (vSIM) kann vom IoT-Gerät freigegeben und für die Verbindung mit einem anderen IoT-Gerät des Unternehmens verfügbar gemacht werden. Somit kann das Unternehmen eine reduzierte Anzahl von vSIMs abonnieren; und wenn alle vSIMs verwendet werden, kann die Anforderung einer Mobilfunkverbindung von einem weiteren Gerät in der Warteschleife platziert werden, bis eine der Verbindungen getrennt und eine vSIM für die Zuweisung an das Gerät in der Warteschleife frei wird.
  • Wahlweise kann der Sicherheitsserver 140 so konfiguriert sein, dass er die Weiterleitung der Anforderungen drosselt und/oder plant, um die Verwendung der begrenzten Anzahl der abonnierten Mobilfunkverbindungen zu steuern.
  • 23 und 24 veranschaulichen Systeme, die konfiguriert sind, die gemeinsame Nutzung von Abonnements durch eine Gruppe von Endgeräten gemäß einer Ausführungsform zu implementieren.
  • In den 23 and 24 weist ein Service-Store 190 Abonnementdaten 387 auf, die eine Endgerätegruppe 501 einer Teilnehmergruppe 503 zuordnen.
  • Die Endgerätegruppe 501 weist eine Vielzahl eindeutiger Identifizierungen 111, ..., 112 auf. Jede der eindeutigen Identifizierungen (z. B. 111) stellt eine Speichervorrichtung (z. B. 130) dar, die in einem entsprechenden Endgerät (z. B. 150) in einer Gruppe von Endgeräten installiert ist.
  • Die Teilnehmergruppe 503 weist eine oder mehrere Teilnehmeridentitätsnummern auf (z. B. 505). Jede Teilnehmeridentitätsnummer (z. B. 505) in der Teilnehmergruppe 503 stellt einen Teilnehmer des Dienstes eines Client-Servers 141 dar. Zum Beispiel kann jede Teilnehmeridentitätsnummer (z. B. 505) zum Identifizieren eines eindeutigen Abonnementkontos verwendet werden, das zu einem bestimmten Zeitpunkt von einem Teilnehmer verwendet werden soll.
  • Zum Beispiel kann die Teilnehmeridentitätsnummer 505 verwendet werden, um einen eindeutigen Teilnehmer darzustellen, so wie ein Teilnehmeridentifikationsmodul (SIM) einen Teilnehmer in einem Mobilfunknetz darstellt.
  • Wenn die SIM-Karte in ein Mobiltelefon eingelegt wird, wird eine Kommunikationsverbindung zum Teilnehmer hergestellt; und das Mobiltelefon wird mit den Diensten auf dem Konto des Teilnehmers bereitgestellt. Wenn die SIM-Karte in ein anderes Mobiltelefon eingelegt wird, wird die Kommunikationsverbindung zum Teilnehmer mit dem anderen Mobiltelefon hergestellt, das derzeit die SIM-Karte aufweist.
  • Ebenso werden, wenn die Teilnehmeridentitätsnummern 505 mit der eindeutigen Identifizierung 111 assoziiert sind, die Dienste, die dem Konto des durch die Teilnehmeridentitätsnummern 505 dargestellten Teilnehmers angeboten werden, dem Endgerät 150 bereitgestellt, das die eindeutige Identifizierung 111 aufweist. Wenn die Teilnehmeridentitätsnummern 505 mit einer alternativen eindeutigen Identifizierung 112 assoziiert sind, werden die Dienste, die dem Konto des Teilnehmers, das durch die Teilnehmeridentitätsnummern 505 dargestellt wird, angeboten werden, einem alternativen Endgerät bereitgestellt, das die eindeutige Identifizierung 112 aufweist.
  • In 23 ist der Sicherheitsserver 140 so konfiguriert, dass er eine Teilnehmeridentitätsnummer 505 aus der Teilnehmergruppe 503 und eine eindeutige Identifizierung 111 aus der Endgerätegruppe 501 dynamisch verknüpft.
  • Zum Beispiel kann der Sicherheitsserver 140 in Reaktion auf eine Überprüfungsanforderung 173 vom Client-Server 141, die die Identitätsdaten 113 aufweist, ermitteln, ob die Identitätsdaten 113 einen gültigen Verifizierungscode 133 für eine Speichervorrichtung 130 mit der eindeutigen Identifizierung 111 aufweisen. Wenn die Identitätsdaten 113 gültig sind, kann der Sicherheitsserver 140 bestimmen, ob die Teilnehmergruppe 503 derzeit eine Teilnehmeridentitätsnummer 505 aufweist, die von der Speichervorrichtung 130 und/oder dem Endgerät 150 mit der eindeutigen Identifizierung 111 verwendet werden kann. Ist dies der Fall, kann der Sicherheitsserver 140 eine Überprüfungsantwort 174 bereitstellen, die die Echtheit der Identitätsdaten 113 und ihre Zuordnung zu der Teilnehmeridentitätsnummer 505 bestätigt. In Reaktion darauf kann der Client-Server 141 dem Endgerät 150 die Dienste bereitstellen, die für das durch die Teilnehmeridentitätsnummer 505 identifizierte Konto angeboten werden.
  • Wenn keine Teilnehmeridentitätsnummer 505 in der Teilnehmergruppe 503 derzeit zur Verwendung durch das Endgerät 150 verfügbar ist, identifiziert die Überprüfungsantwort 174 keine Teilnehmeridentitätsnummer für die Identitätsdaten 113, was den Client-Server 141 in einigen Implementierungen veranlassen kann, eine Anforderung eines Dienstes aus dem Endgerät 150 abzulehnen.
  • Die Überprüfungsanforderung 173 in 23 kann Zugriffsattribute 449 beinhalten, die einen angeforderten Zeitraum für die Zuordnung der eindeutigen Identifizierung 111, die in den Identitätsdaten 113 identifiziert wurde, zu einer verfügbaren Teilnehmeridentitätsnummer (z. B. 505) zur Verwendung durch das Endgerät 150, das die eindeutige Identifizierung 111 aufweist, angeben.
  • In einigen Implementierungen ist das System so konfiguriert, dass es die eindeutige Identifizierung 111 und die Teilnehmeridentitätsnummer 505 für einen vorbestimmten Zeitraum nach der Überprüfungsantwort 174 zur Identifizierung der Teilnehmeridentitätsnummer 505 mit der eindeutigen Identifizierung 111 und/oder den Identitätsdaten 113 assoziiert. Nach dem vorbestimmten Zeitraum hebt der Service-Store 190 die Zuordnung der Teilnehmeridentitätsnummer 505 zur eindeutigen Identifizierung 111 auf und macht die Teilnehmeridentitätsnummer 505 zur Verwendung durch ein anderes Endgerät mit einer anderen eindeutigen Identifizierung (z. B. 112) in der Endgerätegruppe 501 verfügbar. Nach dem vorbestimmten Zeitraum stellt der Client-Server 141 die Dienste, die für das durch die Teilnehmeridentitätsnummer 505 repräsentierte Konto angeboten werden, keinem der Endgeräte (z. B. 150) mit den eindeutigen Identifizierungen 111, ..., 112 in der Endgerätegruppe 501 zur Verfügung, bis er eine weitere Überprüfungsantwort 174 von dem Sicherheitsserver 140 aufweist, die die Teilnehmeridentitätsnummer 505 mit einer der eindeutigen Identifizierungen 111, ..., 112 in der Endgerätegruppe 501 verknüpft.
  • Wenn die Endgeräte mit den eindeutigen Identifizierungen 111, ..., 112 bei der Verwendung der Teilnehmeridentitätsnummern (z. B. 505) aus der Teilnehmergruppe 503 konkurrieren, kann der Service-Store 190 die Zuweisung der Verwendung der Teilnehmeridentitätsnummern (z. B. 505) in der Teilnehmergruppe 503 steuern.
  • Zum Beispiel kann der Service-Store 190 die Endgeräte in der Gruppe 501 verfolgen, die Zugriffsanforderungen mangels verfügbarer Teilnehmeridentitätsnummern 505 zurückgewiesen haben, und die nachfolgenden Zuweisungen verfügbarer Teilnehmeridentitätsnummern 505 basierend auf verfolgten Prioritäten priorisieren.
  • Zum Beispiel kann der Service-Store 190, wenn die Teilnehmeridentitätsnummer 505 zur Verwendung verfügbar ist, ein Zeitfenster öffnen, in dem Zugriffsanforderungen von verschiedenen Endgeräten empfangen werden können; wenn mehrere Zugriffsanforderungen für die Gruppe 501 empfangen werden, kann ein Endgerät mit der frühesten Anforderung, die vor dem Zeitfenster abgelehnt wurde, die höchste Priorität aufweisen, um die Möglichkeit zu erhalten, die Teilnehmeridentitätsnummer 505 zu verwenden.
  • In einigen Implementierungen können die Endgeräte, die die eindeutigen Identifizierungen 111, ..., 112 in der Endgerätegruppe 501 aufweisen, um die Möglichkeit konkurrieren, die Teilnehmeridentitätsnummern (z. B. 505) in der Teilnehmergruppe 503 basierend auf einer oder mehreren vordefinierten Regeln zu verwenden. Zum Beispiel kann ein Endgerät (z. B. 150) nach dem Empfangen einer Ablehnung einer Anforderung einen zufälligen Zeitraum abwarten, um eine weitere Anforderung zu stellen. Durch die Zufälligkeit der Wartezeiten nach einer Ablehnung können die Möglichkeiten, die Teilnehmergruppe 503 für den Dienstzugriff zu verwenden, an Endgeräte verteilt werden, die Dienste benötigen.
  • In einigen Implementierungen kann ein Endgerät 150, dem vorübergehend eine Teilnehmeridentitätsnummer 505 zugewiesen wurde, den Client-Server 141 und/oder den Sicherheitsserver 140 informieren, um die Teilnehmeridentitätsnummer 505 von der Zuweisung an das Endgerät 150 zu befreien. Zum Beispiel kann das Endgerät 150, nachdem das Endgerät 150 die Kommunikation unter Verwendung eines für die Teilnehmeridentitätsnummer 505 bereitgestellten Dienstes abgeschlossen hat, die Teilnehmeridentitätsnummer 505 an einen Pool von Teilnehmeridentitätsnummern in der Gruppe 503 zurückgeben, die einem anderen Endgerät mit einer eindeutigen Identifizierung 112 in der Gruppe 501 zugewiesen und/oder von diesem verwendet werden können.
  • In einigen Implementierungen kann das System die aktiven Aktivitäten des Endgeräts 150 verfolgen, das die Teilnehmeridentitätsnummer 505 verwendet. Nach einer Zeit der Inaktivität kann der Service-Store 190 die Zuordnung der Teilnehmeridentitätsnummer 505 zur eindeutigen Identifizierung 111 aufheben.
  • 23 veranschaulicht eine Konfiguration, wobei die Zuweisung einer Teilnehmeridentitätsnummer 505 zu einer eindeutigen Identifizierung 111 von einem Sicherheitsserver 140 in Reaktion auf eine Überprüfungsanforderung 173 und/oder eine Überprüfungsantwort 174 gesteuert wird. Alternativ und/oder in Kombination kann der Client-Server 141 mit dem Service-Store 190 verbunden sein, um die Zuweisung zu implementieren und/oder die Zuweisung zu verwenden, um einen Dienst bereitzustellen, wie dies veranschaulicht ist in 24.
  • In 24, ist der Client-Server 141 mit einem Service-Store 190 und einem Aktivitäts-Tracker 451 gekoppelt. Basierend auf der Überprüfungsantwort 174, die die Authentizität des Endgeräts 150 mit der eindeutigen Identifizierung 111 und die Verfügbarkeit der Teilnehmeridentitätsnummer 505 zur Verwendung in der Endgerätegruppe 501 angibt, kann der Client-Server 141 den Service-Store 190 veranlassen, Daten zu speichern, die die vorübergehende Zuordnung der Teilnehmeridentitätsnummer 505 zur eindeutigen Identifizierung 111 angeben.
  • Anschließend kann der Client-Server 141 den Aktivitäts-Tracker 451 verwenden, um zu bestimmen, ob die Zuordnung der Teilnehmeridentitätsnummer 505 aus der eindeutigen Identifizierung 111 entfernt werden soll.
  • Zum Beispiel kann der Client-Server 141 nach einem inaktiven Zeitraum von vorbestimmter Dauer, in dem das Endgerät 150 die Dienste, die dem durch die Teilnehmeridentitätsnummer 505 dargestellten Konto angeboten werden, nicht nutzt, den Service-Store 190 veranlassen, die Abonnementdaten 387 zu aktualisieren und die Zuordnung der Teilnehmeridentitätsnummer 505 zur eindeutigen Identifizierung 111 zu beenden.
  • Zum Beispiel kann der Client-Server 141 nach dem Empfangen einer Kennung oder Benachrichtigung vom Endgerät 150 den Service-Store 190 veranlassen, die Zuordnung der Teilnehmeridentitätsnummer 505 zur eindeutigen Identifizierung 111 zu beenden.
  • In einigen Implementierungen kann der Client-Server 141 den Service-Store 190 veranlassen, die Zuordnung der Teilnehmeridentitätsnummer 505 zu der eindeutigen Identifizierung 111 nach einem Zeitraum zu beenden, der auf die Zuordnung der Teilnehmeridentitätsnummer 505 zu der eindeutigen Identifizierung 111 folgt. Der Zeitraum kann vorbestimmt sein oder aus einer vom Endgerät 150 empfangenen Zugriffsanforderung 171 bestimmt werden.
  • 25 zeigt ein Verfahren zum Erleichtern der gemeinsamen Nutzung von Abonnements in einer Gruppe von Endgeräten gemäß einer Ausführungsform. Zum Beispiel kann das Verfahren von 25 unter Verwendung der oben in Verbindung mit den 23 und 24 erläuterten Techniken in einem System mit Sicherheitsmerkmalen implementiert werden, das in Verbindung mit den 1 bis 19 erläutert wurde.
  • Bei Block 521 speichert ein Server-System Daten, durch die eine Endgerätegruppe 501 mit zumindest einer Teilnehmerkennung (z. B. Identitätsnummer 505) assoziiert ist. Die Endgerätegruppe 501 kann eine Vielzahl von Endgeräten (z. B. 150) aufweisen, die durch eindeutige Identifizierungen 111, ..., 112 identifiziert werden.
  • Beispielsweise kann das Server-System einen Sicherheitsserver 140 beinhalten, der Geheimnisse von Speichervorrichtungen (z. B. 130) und/oder anderen Servern speichert, sodass beispielsweise ein Service-Store 190, ein Aktivitäts-Tracker 451, ein Paket-Repository 191, ein Firmware-Store 170 und/oder ein anderer Server zur Verfügung steht. Das Server-System kann ferner einen Client-Server 141 und/oder einen Kartenserver 223 beinhalten, wie veranschaulicht in 6.
  • Bei Block 523 empfängt das Server-System eine Überprüfungsanforderung 173 mit Identitätsdaten 113, die von einer in einem Endgerät 150 konfigurierten Speichervorrichtung 130 erzeugt wurden. Die Identitätsdaten 113 identifizieren das Endgerät 150 anhand seiner eindeutigen Identifizierung 111, die sich in der Endgerätegruppe 501 befindet.
  • Bei Block 525, in Reaktion auf die Überprüfungsanforderung 173, bestimmt das Server-System, zumindest teilweise basierend auf einem Geheimcode der Speichervorrichtung 130, dass die Identitätsdaten 113 gültig sind.
  • Beispielsweise können die Operationen in Block 525 auf ähnliche Weise wie die in Block 323, Block 343, Block 403, Block 423, Block 463 und/oder Block 485 betriebenen Operationen durchgeführt werden.
  • Bei Block 527 bestimmt das Server-System, dass die Teilnehmerkennung (z. B. die Teilnehmeridentitätsnummer 505) derzeit keinem Endgerät in der Endgerätegruppe 501 zugewiesen ist.
  • Bei Block 529 weist das Server-System basierend auf den Daten, die der Endgerätegruppe 501 mit der Teilnehmerkennung (z. B. Identitätsnummer 505) zugeordnet sind, die Teilnehmerkennung dem Endgerät 150 zu. Die Zuweisung veranlasst, dass dem Endgerät ein Dienst für ein Konto bereitgestellt wird, das durch die Teilnehmerkennung (z. B. Identitätsnummer 505) dargestellt und/oder mit ihr assoziiert ist.
  • Zum Beispiel stellt die Teilnehmerkennung (z. B. Identitätsnummer 505) einen eindeutigen Teilnehmer des Dienstes dar, der in einem Netzwerk (z. B. 225) bereitgestellt wird, das mehrere Endgeräte (z. B. 150) aufweist, einschließlich der Vielzahl von Endgeräten aus der Endgerätegruppe 501 und weiterer Endgeräte, die nicht in der Endgerätegruppe 501 sind.
  • Zum Beispiel kann das Netzwerk (z. B. 225) so konfiguriert werden, dass es dem Endgerät Dienste wie eine Mobilfunkverbindung, eine Internetverbindung, eine Verbindung zu einem Benutzer-Computer, eine Online-Speichereinrichtung, eine Online-Computerressource, eine Zahlung, eine Transaktion oder eine Nachricht oder eine beliebige Kombination davon bereitstellt.
  • Zum Beispiel beinhaltet das Zuweisen der Teilnehmerkennung (z. B. Identitätsnummer 505) an das Endgerät 150 das Konfigurieren des Endgeräts 150, damit es eine eindeutige Identität aufweist, die durch die Teilnehmerkennung (z. B. Identitätsnummer 505) in einem Netzwerk (z. B. 225) dargestellt wird.
  • Zum Beispiel kann das Netzwerk (z. B. 225) für verschiedene Endgeräte im Netzwerk (z. B. 225) fordern, dass sie verschiedene Identitäten aufweisen, die durch verschiedene Teilnehmerkennungen (z. B. die Identitätsnummer 505) dargestellt werden. Die in der Speichervorrichtung 130 erzeugten Identitätsdaten 113 beinhalten keine Teilnehmerkennung. Die Identitätsdaten 113 und/oder eindeutige Identifizierung 111 der Speichervorrichtung 130 und/oder des Endgeräts 150 können dynamisch einer Teilnehmerkennung (z. B. Identitätsnummer 505) zugewiesen werden oder mit dieser assoziiert sein, um das Endgerät 150 für das Service-Netzwerk (z. B. 225) zu konfigurieren.
  • Zum Beispiel beinhaltet das Zuweisen der Teilnehmerkennung (z. B. Identitätsnummer 505) an das Endgerät 150 das Speichern von Daten, die die Zuweisung der Teilnehmerkennung an das Endgerät für einen Zeitraum darstellen.
  • Zum Beispiel kann das Server-System die Daten, die die Zuweisung der Teilnehmerkennung zum Endgerät darstellen, nach dem Zeitraum entfernen, um das Endgerät 150, das den Dienst in dem Netzwerk empfängt, als Teilnehmer abzuschalten. Nachdem die Daten entfernt wurden, weist das Endgerät 150 nicht mehr die Identität des Teilnehmers auf, die durch die Teilnehmerkennung (z. B. Identitätsnummer 505) im Service-Netzwerk (z. B. 225) dargestellt wird.
  • Zum Beispiel kann das Server-System die Aktivitäten des Endgeräts 150 beim Empfangen des Dienstes als Teilnehmer im Service-Netzwerk (z. B. 225) überwachen, und in Reaktion auf das Erkennen einer Zeit der Inaktivität des Endgeräts 150 beim Empfangen des Dienstes als Teilnehmer im Netzwerk (z. B. 225) kann das Server-System die Daten entfernen, um das Endgerät 150 so zu rekonfigurieren, dass es die Identität des Teilnehmers, die durch die Teilnehmerkennung (z. B. Identitätsnummer 505) dargestellt wird, im Service-Netzwerk (z. B. 225) nicht aufweist.
  • Alternativ kann das Freigeben des Endgeräts 150 von der Teilnehmerkennung (z. B. Teilnehmeridentitätsnummer 505), die in dem Service-Netzwerk (z. B. 225) konfiguriert ist, in Reaktion auf eine Nachricht oder Anforderung des Endgeräts 150 durchgeführt werden.
  • Alternativ kann die Länge des Zeitraums, nach dem die Teilnehmerkennung (z. B. die Identitätsnummer 505) aus der Bindung an das Endgerät 150 freigegeben wird, eine vorbestimmte Länge sein, beginnend mit einem Zeitpunkt der Zuweisung der Teilnehmerkennung (z. B. der Identitätsnummer 505) an das Endgerät 150.
  • Alternativ kann die Länge des Zeitraums in der Überprüfungsanforderung 173 angegeben werden.
  • Zum Beispiel wird die Überprüfungsanforderung 173 von einem Client-Server 141 in dem Service-Netzwerk (z. B. 225) empfangen. Um das Endgerät 150 so zu konfigurieren, dass es die Identität eines Teilnehmers durch die Teilnehmeridentifizierung (z. B. Identitätsnummer 505) aufweist, kann der Sicherheitsserver 140 eine Überprüfungsantwort 174 an den Client-Server 141 und in Reaktion auf die Überprüfungsanforderung 173 übertragen. Die Überprüfungsantwort 174 ist konfiguriert, um die Gültigkeit der Identitätsdaten 113 und die Zuordnung der Identitätsdaten 113 zu der Teilnehmerkennung (z. B. Identitätsnummer 505) anzugeben.
  • Im Allgemeinen kann ein Endgerät 150 identifiziert werden, indem verschiedene Identifizierungen für verschiedene Dienste, in verschiedenen Netzwerken und/oder verschiedenen Kontexten verwendet werden. Jede Identifizierung des Endgeräts 150 kann verwendet werden, um das Endgerät 150 als Mitglied, Teilnehmer, Konto, autorisiertes Gerät und/oder als eine Entität unter vielen in einer Gruppe darzustellen, die spezifisch für eine Art von Diensten, Verbindungen, Kommunikation usw. ist.
  • Zum Beispiel kann das Endgerät 150 so konfiguriert sein, dass es mit verschiedenen Client-Servern 141 , ..., 143 für ihre Dienste kommuniziert. Das Endgerät 150 kann unter Verwendung verschiedener Teilnehmererkennungen mit verschiedenen Client-Servern 141, ..., 143 identifiziert werden. Jede der Teilnehmer-Identifizierungen des Endgeräts 150 stellt einen eindeutigen Teilnehmer und/oder ein eindeutiges Konto dar, das von einem entsprechenden Client-Server (z. B. 141, ..., 143) für dessen Dienste an seine Teilnehmerpopulation erkannt wird.
  • Zum Beispiel kann das Endgerät 150 so konfiguriert sein, dass es mit einem Client-Server 141 für verschiedene Arten von Diensten kommuniziert. Verschiedene Identifizierungen des Endgeräts 150 können verwendet werden, um das Endgerät 150 als Teilnehmer einer anderen Art von Dienst darzustellen.
  • Dem Endgerät 150 kann beispielsweise eine integrierte Schaltungskartenkennung 251 zugewiesen werden, um als Smartcard zu fungieren, eine Mobilgeräteidentitätsnummer 253, um als Mobilfunkgerät zu fungieren, eine Teilnehmeridentitätsnummer 255, um als Teilnehmer von Mobilfunkverbindungen zu fungieren, usw.
  • Der Sicherheitsserver 140 kann so konfiguriert werden, dass er die Identitäten des Endgeräts 150 unter Verwendung der Sicherheitsmerkmale der Speichervorrichtung 130, die in dem Endgerät 150 konfiguriert ist, verwaltet.
  • Zum Beispiel kann ein Dritter den Sicherheitsserver 140 anfordern, einen abonnierten Dienst in einem Konto mit einer öffentlichen Identifizierung des Endgeräts 150 zu verknüpfen. Da die Identifizierung öffentlich bekannt sein kann, besteht ein potenzielles Risiko der betrügerischen Verwendung der öffentlichen Identifizierung. Die Identitätsdaten 113 des Endgeräts 150 können so konfiguriert sein, dass sie die öffentliche Identifizierung beinhalten. Basierend auf einem Unique Device Secret (UDS) 101 der in dem Endgerät 150 konfigurierten Speichervorrichtung 130 kann der Sicherheitsserver 140 überprüfen, ob die von dem Endgerät 150 empfangenen Identitätsdaten 113 authentisch sind; und somit weist das Endgerät 150 die Identität auf, die durch die in den Identitätsdaten 113 enthaltene öffentliche Identifizierung dargestellt wird. Durch die vom Sicherheitsserver 140 durchgeführte Überprüfung kann die betrügerische Verwendung der öffentlichen Identifizierung als Identität erkannt werden.
  • Der Sicherheitsserver 140 kann konfiguriert sein, um die sichere, dynamische Bindung der öffentlichen Identifizierung an das Endgerät 150 zu verwalten. Zum Beispiel kann der Sicherheitsserver 140 in Reaktion auf eine Anforderung von einer autorisierten Partei in einer Anwendungsdomäne eine eindeutige öffentliche Identifizierung an das Endgerät 150 für die Anwendungsdomäne binden. Die autorisierte Partei kann beispielsweise basierend auf der Verfolgung der Eigentumsberechtigungen von Speichervorrichtungen, die in den Endgeräten (z. B. 150) konfiguriert sind, überprüft werden. Jede Anwendungsdomäne kann eine Vielzahl von öffentlichen Identifizierungen aufweisen, die separate Identitäten in der Anwendungsdomäne darstellen. Der Sicherheitsserver 140 bindet eine eindeutige öffentliche Identifizierung an jeweils ein Endgerät.
  • Zum Beispiel kann der Sicherheitsserver 140 in Reaktion auf die Anforderung, eine öffentliche Identifizierung an ein Endgerät 150 zu binden, überprüfen, ob die öffentliche Identifizierung derzeit nicht an ein anderes Endgerät gebunden ist, und unter Verwendung eines kryptographischen Schlüssels, der eine Besitzerberechtigung für den Betrieb der Speichervorrichtung 130 darstellt, einen Befehl erzeugen, um die öffentliche Identifizierung in der Speichervorrichtung 130 als Teil der Vorrichtungsinformationen 121 für die Erzeugung der Identitätsdaten 113 der Speichervorrichtung 130 und/oder des Endgeräts 150 zu speichern.
  • Alternativ kann der Sicherheitsserver 140 Daten speichern, mit denen das Endgerät 150 mit der öffentlichen Identifizierung des Endgeräts 150 in einer Anwendungsdomäne assoziiert ist. In Reaktion auf eine Überprüfungsanforderung 173 in der Anwendungsdomäne überprüft der Sicherheitsserver 140 die in dem Endgerät 150 bereitgestellten Identitätsdaten 113 und schlägt die öffentliche Identifizierung des Endgeräts 150 in der Anwendungsdomäne nach. Die öffentliche Identifizierung kann in der Überprüfungsantwort 174 bereitgestellt werden.
  • Die sichere, dynamische Bindung der öffentlichen Identifizierung an das Endgerät 150 kann zur Erleichterung von Sicherheitsoperationen verwendet werden. Wenn zum Beispiel das Endgerät 150 verloren geht/gestohlen wird, kann der Besitzer des Endgeräts 150 den Sicherheitsserver 140 anfordern, die öffentliche Identifizierung des verlorenen/gestohlenen Endgeräts 150 an ein Ersatzendgerät zu binden. Sobald der Sicherheitsserver 140 die öffentliche Identifizierung des verlorenen/gestohlenen Endgeräts 150 an das Ersatzendgerät bindet, wird der für das verlorene/gestohlene Endgerät 150 abonnierte Dienst auf das Ersatzendgerät übertragen. Wahlweise kann der Besitzer des verlorenen/gestohlenen Endgeräts 150 die Übertragung von Daten von dem verlorenen/gestohlenen Endgerät 150 auf das Ersatzgerät anfordern; und nach der Übertragung kann der Besitzer die Deaktivierung des verlorenen/gestohlenen Endgeräts 150 anfordern, um den Verlust/die Auswirkung des Endgeräts 150 zu minimieren.
  • 26 zeigt Techniken zum Verwalten einer Identifizierung eines Endgeräts gemäß einer Ausführungsform.
  • Beispielsweise können die Techniken von 26 in dem System der 1 und/oder 6 verwendet werden, wobei Sicherheitsmerkmale in den Speichervorrichtungen verwendet werden, die im Zusammenhang mit den 1 bis 5 und 9 bis 10 erläutert wurden. Zum Beispiel können die Techniken von 26 mit den Diensten des Firmware-Stores der 14 und 15 des Service-Stores 190 der 15, 23 und 24, und/oder des Aktivitäts-Trackers 451 verwendet werden von 20.
  • In 26 speichert der Sicherheitsserver 140 eine eindeutige Identifizierung 111 einer Speichervorrichtung 130 und deren eindeutigen Vorrichtungsschlüssel 101. Ferner speichert der Sicherheitsserver 140 Vorrichtungsinformationen 121, die die Hardware-, Software- und/oder Datenkonfiguration des Endgeräts 150 charakterisieren, in dem die Speichervorrichtung 130 installiert ist. Wie in 2, basiert ein geheimer Schlüssel 137 auf dem eindeutigen Vorrichtungsschlüssel 101 und den Vorrichtungsinformationen 121. Der geheime Schlüssel 137 wird von der Speichervorrichtung 130 verwendet, um den Verifizierungscode 133 der Identitätsdaten 113 zu erzeugen; und der Sicherheitsserver 140 überprüft, dass der Verifizierungscode 133 unter Verwendung des geheimen Schlüssels 137 erzeugt wird, was angibt, dass die Identitätsdaten 113 in der Speichervorrichtung 130 erzeugt wurden, die den eindeutigen Vorrichtungsschlüssel 101 besitzt.
  • In 26 kann der Sicherheitsserver 140 die eindeutige Identifizierung 111 mit einer öffentlichen Identifizierung 541 des Endgeräts 150 verknüpfen. Nachdem beispielsweise die öffentliche Identifizierung 541 dem Endgerät 150 in einer Anwendungsdomäne zugewiesen wurde, kann der Sicherheitsserver 140 die öffentliche Identifizierung 541 als Teil der Vorrichtungsinformationen 121 speichern, die mit der eindeutigen Identifizierung der Speichervorrichtung 130 und/oder des Endgeräts 150 assoziiert sind.
  • Die Anwendungsdomäne kann zum Beispiel für die Mobilfunkverbindung, für den Smartcard-Prozess, für einen Dienst eines Client-Servers 141 usw. konfiguriert werden. Die Identifizierung 541 kann dazu verwendet werden, das Endgerät 150 in einer Population von Endgeräten in der Anwendungsdomäne darzustellen. Die Identifizierung 541 kann verwendet werden, um das Endgerät 150 als ein Gerät, ein Mitglied, einen Dienstteilnehmer, ein Konto, einen Kontakt usw. darzustellen.
  • Zum Beispiel kann der in der Anwendungsdomäne betriebene Client-Server 141 den Sicherheitsserver 140 anfordern, die öffentliche Identifizierung 541 an das Endgerät 150 zu binden, das die eindeutige Identifizierung 111 aufweist. In einer Anforderung 549 kann der Client-Server 141 die vom Endgerät 150 empfangenen Identitätsdaten 113 und die öffentliche Identifizierung 541 bereitstellen, die an das Endgerät 150 zu binden sind. In Reaktion auf die Anforderung 549 überprüft der Sicherheitsserver 140 die Identitätsdaten 113, indem er bestimmt, ob der Verifizierungscode 133 in den Identitätsdaten 113 unter Verwendung eines geheimen Schlüssels 137 der Speichervorrichtung 130, die die eindeutige Identifizierung 111 aufweist, erzeugt wurde.
  • Nach der Überprüfung der Identitätsdaten 113 kann der Sicherheitsserver 140 die öffentliche Identifizierung 541 zu den Vorrichtungsinformationen 121 hinzufügen und die Speichervorrichtung 130 in dem Endgerät 150 veranlassen, die Vorrichtungsinformationen 121 zu aktualisieren 543. Der Speicher 130 weist nach der Aktualisierung 543 einen neuen geheimen Schlüssel auf, mit dem er neue Identitätsdaten 113 erzeugt, die die öffentliche Identifizierung 541 beinhalten. Zum Beispiel kann die Nachricht 131 in den neuen Identitätsdaten 113, zusätzlich zu der eindeutigen Identifizierung 111, die öffentliche Identifizierung 541 beinhalten. Die Sicherheitsmerkmale der Speichervorrichtung 130 sind so konfiguriert, dass sie eine missbräuchliche Verwendung der eindeutigen Identifizierung 111 verhindern, und können auch die missbräuchliche Verwendung der öffentlichen Identifizierung 541 verhindern. Wenn der Client-Server 141 beispielsweise die neuen Identitätsdaten 113 empfängt, die die öffentliche Identifizierung 541 enthalten, kann der Client-Server 141 den Sicherheitsserver 140 anfordern, die neuen Identitätsdaten 113 zu überprüfen. Wenn die neuen Identitätsdaten 113 einen gültigen Verifizierungscode 133 aufweisen, wird dieser von einem Endgerät 150 erzeugt, dem die öffentliche Identifizierung 541 zugewiesen ist.
  • Der Sicherheitsserver 140 kann die Vorrichtungsinformationen 121 in ähnlicher Weise aktualisieren 543 wie die Aktualisierung 377 der Firmware des Endgeräts 150 und/oder die Reparatur 385 eines in dem Endgerät 150 installierten Pakets. Zum Beispiel kann der Sicherheitsserver 140 einen Verifizierungscode 153 für einen Befehl 155 erzeugen, um die öffentliche Identifizierung 541 in den Speicherzellen 103 der Speichervorrichtung 130 zu speichern. Der Verifizierungscode 153 wird unter Verwendung eines kryptographischen Schlüssels 145 erzeugt, der eine Besitzerberechtigung zum Betreiben der Speichervorrichtung 130 darstellt, einschließlich der durch die Zugriffssteuerung 109 in der Speichervorrichtung 130 kontrollierten Berechtigung zum Ausführen des Befehls 155 in der Speichervorrichtung 130.
  • Wahlweise ist es für die Zuordnung der öffentlichen Identifizierung 541 zu dem Endgerät 150 nicht erforderlich, einen neuen geheimen Schlüssel zu erzeugen, um die Speichervorrichtung 130 und/oder das Endgerät 150 darzustellen. Die öffentliche Identifizierung 541 kann in der Nachricht 131 enthalten sein, die verwendet wird, um den Verifizierungscode 133 zu erzeugen, der mit dem geheimen Schlüssel 137 signiert ist. Die Überprüfung des Verifizierungscodes 133 gibt an, dass die in der Nachricht 131 bereitgestellte öffentliche Identifizierung 541 nicht verändert wurde; und der Verifizierungscode 133 ist von der in dem Endgerät 150 installierten Speichervorrichtung 130 signiert.
  • Wahlweise wird die Aktualisierung 543 übersprungen; und die Speichervorrichtung 130 und/oder das Endgerät 150 speichern die öffentliche Identifizierung 541 nicht. Der Sicherheitsserver 140 speichert Daten, mit denen die eindeutige Identifizierung 111 mit der öffentlichen Identifizierung 541 assoziiert ist. Nachdem der Sicherheitsserver 140 die in einer Überprüfungsanforderung bereitgestellten Identitätsdaten 113 überprüft hat, kann der Sicherheitsserver 140 die für eine Anwendungsdomäne relevante öffentliche Identifizierung 541 für die in der Nachricht 131 der Identifizierungsdaten 113 identifizierte eindeutige Identifizierung 111 nachschlagen und die öffentliche Identifizierung 541 in einer Überprüfungsantwort bereitstellen, und zwar in ähnlicher Weise wie die Darstellung der Teilnehmeridentitätsnummer 505 in einer Überprüfungsantwort 174, veranschaulicht in 23.
  • Wahlweise weist der Sicherheitsserver 140 ein Portal 545 auf, das es einem Computer 180 ermöglicht, eine Anforderung 547 einzureichen, um die öffentliche Identifizierung 541 mit einem Endgerät 150 zu assoziieren, das die eindeutige Identifizierung 111 aufweist. Nachdem das Portal 545 überprüft hat, dass der Computer 180 von einem autorisierten Besitzer oder Benutzer des Endgeräts 150 betrieben wird, kann das Portal 545 mit dem Sicherheitsserver 140 kommunizieren, um die Vorrichtungsinformationen 121 der eindeutigen Identifizierung 111 zu aktualisieren.
  • In einer Ausführungsform weist das Endgerät 150 ein Paket auf, das in der Speichervorrichtung 130 gespeichert ist. Wenn das Paket aus der Speichervorrichtung 130 geladen und in dem Host-System 120 ausgeführt wird, kann das Endgerät 150 mit dem Server 140 zur Aktualisierung 543 kommunizieren. Die Kommunikation zwischen dem Endgerät 150 und dem Server 140 kann über einen Client-Server (z. B. 141), einen Firmware-Store 170, einen Service-Store 190, einen Aktivitäts-Tracker 451 oder einen anderen Server (z. B. das Portal 545) oder ohne Zwischenschaltung eines Servers erfolgen.
  • Zum Beispiel kann ein Hersteller von Endgeräten (z. B. 150) einen Computer 180 verwenden, um die Endgeräte (z. B. 150) zu konfigurieren und die Bindung von Identifizierungen (z. B. 541) anzufordern, die den Endgeräten (z. B. 150) vom Hersteller zugewiesen wurden. Derartige öffentliche Identifizierungen können beispielsweise Identifikationsnummern für Mobilgeräte sein (z. B. 253), die einzelne Geräte in einem Kommunikationsnetzwerk darstellen.
  • Zum Beispiel kann ein Dienstanbieter den Teilnehmern eines von ihm angebotenen Dienstes Teilnehmeridentitätsnummern (z. B. 255) zuweisen. Wenn ein Besitzer oder Benutzer eines Endgeräts 150 sich für die Dienste des Anbieters anmeldet, kann der Dienstanbieter einen Computer 180 verwenden, um die Bindung einer Teilnehmeridentitätsnummer 255 an das Endgerät 150 anzufordern.
  • 27 zeigt ein Verfahren zum Verwalten einer Identifizierung eines Endgeräts gemäß einer Ausführungsform. Zum Beispiel kann das Verfahren von 27 unter Verwendung der oben in Verbindung mit 26 erläuterten Techniken in einem System mit Sicherheitsmerkmalen implementiert werden, das in Verbindung mit den 1 bis 19 erläutert wurde.
  • Bei Block 561 speichert ein Server-System die Zuordnung eines Vorrichtungsschlüssels (z. B. 101) einer in einem Endgerät 150 konfigurierten Speichervorrichtung 130, einer ersten Identifizierung 111 und Vorrichtungsinformationen 121 des Endgeräts 150.
  • Das Server-System kann beispielsweise einen Sicherheitsserver 140 beinhalten. Wahlweise kann das Server-System ferner ein Portal 545, einen Firmware-Store 170, einen Service-Store 190, einen Aktivitäts-Tracker 451, ein Paket-Repository 191 und/oder einen anderen Server beinhalten. In einigen Implementierungen kann das Server-System ferner einen Client-Server 141 und/oder einen Kartenserver 223 beinhalten, wie veranschaulicht in 6.
  • Bei Block 563 empfängt das Server-System eine Anforderung (z. B. 547 oder 549), eine zweite Identifizierung 541 an das durch die erste Identifizierung 111 identifizierte Endgerät 150 zu binden.
  • Zum Beispiel kann die Anforderung (z. B. 547 oder 549), die zweite Identifizierung 541 an das Endgerät 150 zu binden, im Server-System von einem Computer (z. B. 180 oder einem Server 141) empfangen und/oder initiiert werden, der vom Endgerät 150 getrennt ist. Das Server-System ist konfiguriert, um zu bestimmen, ob der Computer die Berechtigung besitzt, eine solche zweite Identifizierung 541 an dem Endgerät 150 anzubringen. Ist dies der Fall, kann das Server-System 140 Daten speichern, die mit der ersten Identifizierung 111 und der zweiten Identifizierung 541 assoziiert sind.
  • In einer Ausführungsform ist die Berechtigung zum Anbringen einer solchen zweiten Identifizierung 541 an das Endgerät 150 mit einer Entität verbunden, die den Computer betreibt und im Besitz der Speichervorrichtung 130 ist (z. B. als Hersteller, Einzelhändler, Dienstanbieter, Endbenutzer des Endgeräts 150).
  • Zum Beispiel kann die Entität über den Computer mit dem Endgerät 150 und/oder der Speichervorrichtung 130 kommunizieren, um die aktuellen Identitätsdaten 113 abzurufen, die in der Speichervorrichtung 130 erzeugt wurden. Die aktuellen Identitätsdaten 113 beinhalten die erste Identifizierung 111 und können durch das Server-System überprüft werden, ob die aktuellen Identitätsdaten 113 in der Speichervorrichtung 130 authentifiziert sind.
  • Zum Beispiel kann das Server-System in Reaktion auf die Anforderung Daten speichem, mit denen die erste Identifizierung 111 mit der zweiten Identifizierung 541 assoziiert ist.
  • Zum Beispiel kann das Server-System die Vorrichtungsinformationen 121 der ersten Identifizierung 111 aktualisieren, um die zweite Identifizierung 541 zu beinhalten.
  • Zum Beispiel kann das Server-System mit dem Endgerät 150 kommunizieren, um die in der Speichervorrichtung 130 gespeicherten Daten zu aktualisieren und/oder die zweite Identifizierung 541 in der Speichervorrichtung 130 zu speichern.
  • Wahlweise kann die zweite Identifizierung 541 als Teil der Geräteinformation 121 in der Speichervorrichtung 130 verwendet werden, um einen geheimen Schlüssel 137 zu erzeugen, wobei der geheime Schlüssel 137 verwendet wird, um den Verifizierungscode 133 der Identitätsdaten 113 der Speichervorrichtung 130 und/oder des Endgeräts 150 zu erzeugen.
  • Wahlweise ändert die zweite Identifizierung 541 nichts an der Erzeugung des geheimen Schlüssels 137. Die zweite Identifizierung 541 wird jedoch in einem zugriffskontrollierten Bereich der Speichervorrichtung 130 gespeichert und in die in den Identitätsdaten 113 (z. B. als Teil der Daten C 127) dargestellte Nachricht 131 aufgenommen.
  • Zum Beispiel kann das Server-System in Reaktion auf die Aufforderung, die zweite Identifizierung 541 an das Endgerät 150 zu binden, einen Verifizierungscode 153 für einen Befehl 155 erzeugen und die Speichervorrichtung 130 veranlassen, den Befehl 155 im Hinblick auf den Verifizierungscode 153 auszuführen. Nach dem Empfangen des Befehls 155 und des Verifizierungscodes 153 für den Befehl 155 ist die Zugriffssteuerung 109 der Speichervorrichtung 130 so konfiguriert, dass sie den Verifizierungscode 153 für den Befehl 155 unter Verwendung eines kryptographischen Schlüssels (z. B. des Zugriffskontrollschlüssels 149) überprüft, der eine Berechtigung zur Ausführung des Befehls 155 in dem Speicher 130 aufweist. Die Speichervorrichtung 130 ist so konfiguriert, dass sie den Befehl 155 in Reaktion auf eine Bestimmung, dass der Verifizierungscode 153 für den Befehl 155 gültig ist, ausführt, die Ausführung des Befehls 155 in der Speichervorrichtung 130 speichert die zweite Identifizierung 541 in der Speichervorrichtung 130 für die anschließende Erzeugung der Identitätsdaten 113. Zum Beispiel kann die zweite Identifizierung 541 als Teil der Vorrichtungsinformationen 121 und/oder zur Darstellung in der Nachricht 131 der Identitätsdaten 113 gespeichert werden.
  • Der Speicher speichert beispielsweise einen Anweisungssatz, der in dem Endgerät 150 ausgeführt werden kann. Der Anweisungssatz kann Teil des Inhalts 161 oder eines Pakets 441 der Firmware oder des Betriebssystems des Endgeräts sein. Die Speichervorrichtung 130 ist konfiguriert, um die Integrität des Anweisungssatzes zu überprüfen, bevor dem Endgerät 150 gestattet wird, den Anweisungssatz zur Ausführung zu laden. Da der Anweisungssatz über die Speichervorrichtung 130 gesichert ist, kann das Server-System zuverlässig mit dem Endgerät 150 kommunizieren, das den Anweisungssatz ausführt, um die Speichervorrichtung 130 zur Ausführung des Befehls 155 zu veranlassen. Der Kommunikationspfad zwischen dem Endgerät 150 und dem Server-System kann wahlweise über einen Client-Server 141 erfolgen und/oder wahlweise über einen Sitzungsschlüssel 263 und symmetrische Kryptographie gesichert werden.
  • Bei Block 565 empfängt das Server-System eine Überprüfungsanforderung 173 mit Identitätsdaten 113, die von der Speichervorrichtung 130 erzeugt wurden. Die Identitätsdaten 113 beinhalten einen Verifizierungscode 133, der durch eine in den Identitätsdaten 113 dargestellte Nachricht 131 und einen kryptographischen Schlüssel (z. B. einen geheimen Schlüssel 137) erzeugt wird, der zumindest teilweise von dem Geheimcode (z. B. 101) abgeleitet ist.
  • In einigen Implementierungen enthält zum Beispiel die in den Identifizierungsdaten dargestellte Nachricht 131 die zweite Identifizierung 541. Wahlweise kann der kryptographische Schlüssel (z. B. der geheime Schlüssel 137), der zum Signieren der Nachricht 131 in Form des Verifizierungscodes 133 verwendet wird, ferner basierend auf der zweiten Identifizierung 541 abgeleitet werden, wenn die zweite Identifizierung 541 als Teil der Vorrichtungsinformationen 121 konfiguriert ist; alternativ ist der kryptographische Schlüssel unabhängig von der zweiten Identifizierung 541.
  • In einigen Implementierungen beinhaltet die in den Identifizierungsdaten 113 dargestellte Nachricht 131 nicht die zweite Identifizierung 541.
  • Bei Block 567 bestimmt das Server-System, dass die Identitätsdaten 113 zumindest teilweise basierend auf einem Geheimcode (z. B. 101) der Speichervorrichtung 130 gültig sind.
  • Beispielsweise können die Operationen in Block 567 auf ähnliche Weise wie die in Block 323, Block 343, Block 403, Block 423, Block 463, Block 485 und/oder Block 525 betriebenen Operationen durchgeführt werden.
  • Bei Block 569 stellt das Server-System in Reaktion auf die Bestimmung, dass die Identitätsdaten 113 gültig sind, eine Überprüfungsantwort 174 für die Überprüfungsanforderung 173 bereit. Die Überprüfungsantwort 174 ist konfiguriert, um anzugeben, dass die Identitätsdaten 113 von dem Endgerät 150 erzeugt wurden, das die zweite Identifizierung 541 aufweist.
  • Zum Beispiel kann das Server-System die zweite Identifizierung 541 in der Überprüfungsantwort 174 identifizieren, indem es die zweite Identifizierung 541, die mit der ersten Identifizierung assoziiert ist, in den im Sicherheitsserver 140 gespeicherten Daten nachschlägt oder die zweite Identifizierung 541 aus den Identitätsdaten 113 extrahiert. Alternativ kann das Server-System angeben, dass die Identitätsdaten 113 gültig sind, einschließlich der zweiten Identifizierung 541, die in der in den Identitätsdaten 113 enthaltenen Nachricht 131 dargestellt ist.
  • 28 veranschaulicht eine beispielhafte Maschine eines Computersystems 600, in dem ein Anweisungssatz ausgeführt werden kann, der die Maschine veranlasst, eine oder mehrere der hierin erläuterten Methodiken auszuführen. In einigen Ausführungsformen kann das Computersystem 600 einem Host-System entsprechen, das ein Speicher-Subsystem beinhaltet, mit diesem gekoppelt ist oder dieses verwendet, oder es kann verwendet werden, um die Operationen eines Sicherheitsmanagers 160 auszuführen (z. B. um Befehle auszuführen, um Operationen auszuführen, die dem Sicherheitsserver 140 und/oder den Sicherheitsmerkmalen der Speichervorrichtung 130 entsprechen, die mit Bezug auf die 1 - 27 beschrieben wurden). In alternativen Ausführungsformen kann die Maschine mit anderen Maschinen in einem LAN, einem Intranet, einem Extranet und/oder dem Internet verbunden (z. B. vernetzt) werden. Die Maschine kann in der Funktion eines Servers oder einer Client-Maschine in einer Client-Server-Netzwerkumgebung, als Peer-Maschine in einer Peer-to-Peer- (oder verteilten) Netzwerkumgebung oder als Server oder Client-Maschine in einer Cloud-Computing-Infrastruktur oder -Umgebung betrieben werden.
  • Die Maschine kann ein Personal Computer (PC), ein Tablet-PC, eine Set-Top-Box (STB), ein Personal Digital Assistant (PDA), ein Mobiltelefon, eine Web-Appliance, ein Server, ein Netzwerk-Router, ein Switch oder Bridge oder eine beliebige Maschine sein, die in der Lage ist, einen Anweisungssatz (sequenziell oder anderweitig) auszuführen, der die von dieser Maschine auszuführenden Aktionen festlegt. Ferner sollte der Begriff „Maschine“, auch wenn nur eine einzige Maschine veranschaulicht wird, eine beliebige Ansammlung von Maschinen beinhalten, die einzeln oder gemeinsam einen Anweisungssatz (oder mehrere Anweisungssätze) zum Durchführen einer oder mehrerer der hierin erläuterten Methodiken ausführen.
  • Das beispielhafte Computersystem 600 beinhaltet eine Verarbeitungsvorrichtung 602, einen Hauptspeicher 604 (z. B. Festwertspeicher (read-only memory - ROM), Flash-Speicher, dynamischer Direktzugriffsspeicher (DRAM) wie synchroner DRAM (dynamic random access memory - SDRAM) oder Rambus DRAM (Rambus DRAM - RDRAM), statischer Direktzugriffsspeicher (SRAM) usw.) und ein Datenspeichersystem 618, die über einen Bus 630 (der mehrere Busse umfassen kann) miteinander kommunizieren.
  • Die Verarbeitungsvorrichtung 602 stellt eine oder mehrere universell einsetzbare Verarbeitungsvorrichtungen dar, beispielsweise einen Mikroprozessor, eine Zentraleinheit oder dergleichen. Insbesondere kann die Verarbeitungsvorrichtung ein Complex Instruction Set Computing (CISC)-Mikroprozessor, ein Reduced Instruction Set Computing (RISC)-Mikroprozessor, ein Very Long Instruction Word (VLIW)-Mikroprozessor oder ein Prozessor sein, der andere Anweisungssätze implementiert, oder Prozessoren, die eine Kombination von Anweisungssätzen implementieren. Die Verarbeitungsvorrichtung 602 kann auch eine oder mehrere spezielle Verarbeitungsvorrichtungen sein, beispielsweise eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit - ASIC), ein Field Programmable Gate Array (FPGA), ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor oder dergleichen. Die Verarbeitungsvorrichtung 602 ist konfiguriert, um Anweisungen 626 zum Durchführen der hierin erläuterten Operationen und Schritte auszuführen. Das Computersystem 600 kann ferner eine Netzwerk-Schnittstellenvorrichtung 608 zum Kommunizieren über das Netzwerk 620 beinhalten.
  • Das Datenspeichersystem 618 kann ein maschinenlesbares Medium 624 (auch als computerlesbares Medium bezeichnet) beinhalten, auf dem ein oder mehrere Anweisungssätze 626 oder Software gespeichert sind, die eine oder mehrere der hierin beschriebenen Methodiken oder Funktionen verkörpern. Die Anweisungen 626 können sich auch vollständig oder zumindest teilweise im Hauptspeicher 604 und/oder in der Verarbeitungsvorrichtung 602 während ihrer Ausführung durch das Computersystem 600 befinden, wobei der Hauptspeicher 604 und die Verarbeitungsvorrichtung 602 auch maschinenlesbare Speichermedien darstellen. Das maschinenlesbare Medium 624, das Datenspeichersystem 618 und/oder der Hauptspeicher 604 können einem Speicher-Subsystem entsprechen.
  • In einer Ausführungsform beinhalten die Anweisungen 626 Anweisungen zum Implementieren von Funktionen, die einem Sicherheitsmanager 160 entsprechen (z. B. Operationen des Sicherheitsservers 140 und/oder die Sicherheitsmerkmale in der Speichervorrichtung 130, die unter Bezugnahme auf die 1 - 27 beschrieben sind). Während das maschinenlesbare Medium 624 in einer beispielhaften Ausführungsform als einzelnes Medium angezeigt wird, sollte der Begriff „maschinenlesbares Speichermedium“ ein einzelnes Medium oder mehrere Medien beinhalten, die den einen oder mehrere Anweisungssätze speichern. Der Begriff „maschinenlesbares Speichermedium“ sollte auch jedes Medium beinhalten, das in der Lage ist, einen Anweisungssatz zum Ausführen durch die Maschine zu speichern oder zu kodieren, der die Maschine veranlasst, eine oder mehrere der Methodiken der vorliegenden Offenbarung auszuführen. Der Begriff „maschinenlesbares Speichermedium“ sollte dementsprechend Festkörperspeicher, optische Medien und magnetische Medien beinhalten, ist aber nicht auf diese beschränkt.
  • Im Allgemeinen kann ein Endgerät 150, ein Server (z. B. der Sicherheitsserver 140, ein Client-Server 141 oder 143, oder ein Kartenserver 223) ein Computersystem sein, das ein Host-System 120 und ein Speicher-Subsystem aufweist. Der Speicher-Subsystem kann Medien beinhalten, beispielsweise eine oder mehrere flüchtige Speichervorrichtungen, eine oder mehrere nichtflüchtige Speichervorrichtungen (z. B. Speichervorrichtung 130) oder eine Kombination davon.
  • Der Speicher-Subsystem kann eine Speichervorrichtung, ein Speichermodul oder ein Hybrid aus Speichervorrichtung und Speichermodul sein. Beispiele für eine Speichervorrichtung beinhalten ein Solid-State-Laufwerk (solid-state drive - SSD), ein Flash-Laufwerk, ein USB-Flash-Laufwerk (Universal Serial Bus), ein eMMC-Laufwerk (Embedded Multi-Media Controller), ein UFS-Laufwerk (Universal Flash Storage), eine SD-Karte (Secure Digital) und ein Festplattenlaufwerk (hard disk drive - HDD). Beispiele für Speichermodule beinhalten ein Dual In-Line Memory Module (DIMM), ein Small Outline DIMM (SO-DINIM) und verschiedene Arten von nichtflüchtigen Dual In-Line Memory Module (NVDIMM).
  • Bei dem Computersystem kann es sich beispielsweise um eine Rechenvorrichtung wie einen Desktop-Computer, einen Laptop-Computer, einen Netzwerkserver, ein Mobilgerät, ein Fahrzeug (z. B. ein Flugzeug, eine Drohne, einen Zug, ein Auto oder ein anderes Transportmittel), ein IoT-fähiges Gerät (Internet der Dinge), einen eingebetteten Computer (z. B. einen in einem Fahrzeug, einer Industrieanlage oder einem vernetzten kommerziellen Gerät) oder ein solches Computersystem handeln, das einen Speicher und eine Verarbeitungsvorrichtung beinhaltet.
  • Das Host-System 120 des Computersystems ist mit einem oder mehreren Speicher-Subsystemen gekoppelt. Wie hierin verwendet, bezieht sich „gekoppelt an“ oder „gekoppelt mit“ im Allgemeinen auf eine Verbindung zwischen Komponenten, die sowohl eine indirekte kommunikative Verbindung als auch eine direkte kommunikative Verbindung (z. B. ohne zwischengeschaltete Komponenten) sein kann, unabhängig davon, ob sie verdrahtet oder drahtlos ist, einschließlich Verbindungen wie elektrische, optische, magnetische usw.
  • Das Host-System 120 kann einen Prozessor-Chipsatz (z. B. Verarbeitungsvorrichtung 118) und einen Software-Stack beinhalten, der vom Prozessor-Chipsatz ausgeführt wird. Der Prozessor-Chipsatz kann einen oder mehrere Kerne, einen oder mehrere Caches, eine Speichersteuerung (z. B. Steuerung 116) (z. B. NVDIMM-Steuerung) und eine Speicherprotokollsteuerung (z. B. PCIe-Steuerung, SATA-Steuerung) beinhalten. Das Host-System 120 verwendet das Speicher-Subsystem zum Beispiel, um Daten in das Speicher-Subsystem zu schreiben und Daten aus dem Speicher-Subsystem zu lesen.
  • Das Host-System 120 kann über eine physische Host-Schnittstelle mit dem Speicher-Subsystem gekoppelt werden. Beispiele einer physischen Host-Schnittstelle beinhalten, ohne darauf beschränkt zu sein, eine Serial Advanced Technology Attachment (SATA)-Schnittstelle, eine Peripheral Component Interconnect Express (PCIe)-Schnittstelle, eine Universal Serial Bus (USB)-Schnittstelle, eine Fibre Channel-, eine Serial Attached SCSI (SAS)-Schnittstelle, eine Double Data Rate (DDR)-Speicherbus-Schnittstelle, eine Small Computer System Interface (SCSI), eine Dual In-Line Memory Module (DIMM)-Schnittstelle (z. B., DIMM-Sockel-Schnittstelle, die Double Data Rate (DDR) unterstützt), eine Open-NAND-Flash-Schnittstelle (ONFI), eine Double Data Rate (DDR)-Schnittstelle, eine Low Power Double Data Rate (LPDDR)-Schnittstelle oder eine andere Schnittstelle. Die physische Host-Schnittstelle kann verwendet werden, um Daten zwischen dem Host-System 120 und dem Speicher-Subsystem zu übertragen. Das Host-System 120 kann ferner eine NVM Express (NVMe)-Schnittstelle verwenden, um auf Komponenten (z. B. Speichervorrichtungen 130) zuzugreifen, wenn das Speicher-Subsystem mit dem Host-System 120 über die PCIe-Schnittstelle gekoppelt ist. Die physische Host-Schnittstelle kann eine Schnittstelle zur Weitergabe von Steuer-, Adress-, Daten- und anderen Signalen zwischen dem Speicher-Subsystem und dem Host-System 120 bereitstellen. Im Allgemeinen kann das Host-System 120 auf ein oder mehrere Speicher-Subsysteme über eine einzelne Kommunikationsverbindung, mehrere separate Kommunikationsverbindungen und/oder eine Kombination von Kommunikationsverbindungen zugreifen.
  • Die Verarbeitungsvorrichtung 118 des Host-Systems 120 kann beispielsweise ein Mikroprozessor, eine Zentraleinheit (central processing unit - CPU), ein Verarbeitungskern eines Prozessors, eine Ausführungseinheit usw. sein. In einigen Instanzen kann die Steuerung 116 auch als Speichersteuerung, Speicherverwaltungseinheit und/oder Initiator bezeichnet werden. In einem Beispiel steuert die Steuerung 116 die Kommunikation über einen Bus, der zwischen dem Host-System 120 und dem Speicher-Subsystem gekoppelt ist. Im Allgemeinen kann die Steuerung 116 Befehle oder Anforderungen an das Speicher-Subsystem für den gewünschten Zugriff auf Speichervorrichtungen 130 senden. Die Steuerung 116 kann ferner eine Schnittstellenschaltung zum Kommunizieren mit dem Speicher-Subsystem beinhalten. Die Schnittstellenschaltung kann die vom Speicher-Subsystem empfangenen Antworten in Informationen für das Host-System 120 umwandeln.
  • Die Steuerung 116 des Host-Systems 120 kann mit der Steuerung des Speicher-Subsystems kommunizieren, um Operationen wie beispielsweise das Lesen von Daten, das Schreiben von Daten oder das Löschen von Daten in den Speichervorrichtungen 130 und andere derartige Operationen durchzuführen. In einigen Instanzen ist die Steuerung 116 in dasselbe Paket wie die Verarbeitungsvorrichtung 118 integriert. In anderen Instanzen ist die Steuerung 116 von der Packung der Verarbeitungsvorrichtung 118 getrennt. Die Steuerung 116 und/oder die Verarbeitungsvorrichtung 118 kann Hardware beinhalten, beispielsweise eine oder mehrere integrierte Schaltungen (ICs) und/oder diskrete Komponenten, einen Pufferspeicher, einen Cache-Speicher oder eine Kombination davon. Die Steuerung 116 und/oder die Verarbeitungsvorrichtung 118 kann ein Mikrocontroller, eine spezielle Logikschaltung (z. B. ein Field Programmable Gate Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) usw.) oder ein anderer geeigneter Prozessor sein.
  • Die Speichervorrichtungen 130 können jede beliebige Kombination der verschiedenen Typen von nichtflüchtigen und/oder flüchtigen Speicherkomponenten beinhalten. Die flüchtigen Speichervorrichtungen können, ohne darauf beschränkt zu sein, Direktzugriffsspeicher (RAM) wie dynamische Direktzugriffsspeicher (DRAM) und synchrone dynamische Direktzugriffsspeicher (SDRAM) sein.
  • Einige Beispiele für nichtflüchtige Speicherkomponenten beinhalten einen Flash-Speicher vom Typ Negative-and (oder NOT AND) (NAND) und einen Write-in-Place-Speicher, beispielsweise einen dreidimensionalen Kreuzpunktspeicher („3D-Kreuzpunkt“). Ein Kreuzpunkt-Array eines nichtflüchtigen Speichers kann in Verbindung mit einem stapelbaren Kreuzgitter-Datenzugriffs-Array eine auf einer Änderung des Volumenwiderstands basierende Bit-Speicherung durchführen. Darüber hinaus kann der nichtflüchtige Kreuzpunktspeicher im Gegensatz zu vielen Flash-basierten Speichern eine Write-in-Place Operation betreiben, wobei eine nichtflüchtige Speicherzelle programmiert werden kann, ohne dass die nichtflüchtige Speicherzelle zuvor gelöscht wurde. Der NAND-Typ-Flash-Speicher beinhaltet zum Beispiel zweidimensionales NAND (2D NAND) und dreidimensionales NAND (3D NAND).
  • Jeder der Speichervorrichtungen 130 kann eine oder mehrere Arrays von Speicherzellen beinhalten. Eine Art von Speicherzellen, z. B. Single-Level-Zellen (single level cells - SLC), kann ein Bit pro Zelle speichern. Andere Arten von Speicherzellen, wie Multi-Level-Zellen (multi level cells -MLC), Triple-Level-Zellen (triple level cells - TLC), Quad-Level-Zellen (quad level cells - QLC) und Penta-Level-Zellen (penta level cells - PLC) können mehrere Bits pro Zelle speichem. In einigen Ausführungsformen kann jede der Speichervorrichtungen 130 ein oder mehrere Arrays von Speicherzellen beinhalten, beispielsweise SLCs, MLCs, TLCs, QLCs, PLCs oder eine beliebige Kombination davon. In einigen Ausführungsformen kann eine bestimmte Speichervorrichtung einen SLC-Abschnitt, einen MLC-Abschnitt, einen TLC-Abschnitt, einen QLC-Abschnitt und/oder einen PLC-Abschnitt von Speicherzellen beinhalten. Die Speicherzellen der Speichervorrichtungen 130 können als Seiten gruppiert werden, die sich auf eine logische Einheit der Speichervorrichtung beziehen können, die zum Speichern von Daten verwendet wird. Bei einigen Speichertypen (z. B. NAND) können Seiten gruppiert werden, um Blöcke zu bilden.
  • Obwohl nichtflüchtige Speichervorrichtungen, wie beispielsweise 3D-Kreuzpunkt- und NAND-Speicher (z. B., 2D NAND, 3D NAND) beschrieben werden, kann die Speichervorrichtung 130 auf jedem anderen nichtflüchtigen Speichertyp basieren, beispielsweise Festwertspeicher (ROM), Phasenänderungsspeicher (phase change memory - PCM), selbstauswählende Speicher, andere chalcogenidbasierte Speicher, ferroelektrische Transistor-Direktzugriffsspeicher (ferroelectric transistor random-access memory - FeTRAM), ferroelektrischer Direktzugriffsspeicher (ferroelectric random access memory - FeRAM), Magneto-Random-Access-Memory (MRAM), Spin Transfer Torque (STT)-MRAM, Conductive Bridging RAM (CBRAM), Resistive Random-Access-Memory (RRAM), Oxid-basiertes RRAM (oxide based RRAM - OxRAM), Negative-or (NOR) Flash-Memory und elektrisch löschbarer programmierbarer Festwertspeicher (electrically erasable programmable read-only memory - EEPROM).
  • Eine Speicher-Subsystem-Steuerung kann mit den Speichervorrichtungen 130 kommunizieren, um Operationen wie das Lesen von Daten, das Schreiben von Daten oder das Löschen von Daten in den Speichervorrichtungen 130 und andere derartige Operationen durchzuführen (z. B. in Reaktion auf Befehle, die auf einem Befehlsbus von der Steuerung 116 geplant werden). Die Speicher-Subsystem-Steuerung kann Hardware beinhalten, beispielsweise eine oder mehrere integrierte Schaltungen (ICs) und/oder diskrete Komponenten, einen Pufferspeicher oder eine Kombination davon. Die Hardware kann digitale Schaltungen mit spezieller (z. B. hartkodierter) Logik zum Durchführen der hierin beschriebenen Operationen beinhalten. Die Speicher-Subsystem-Steuerung kann ein Mikrocontroller, eine spezielle Logikschaltung (z. B. ein Field Programmable Gate Array (FPGA), eine anwendungsspezifische integrierte Schaltung (ASIC) usw.) oder ein anderer geeigneter Prozessor sein.
  • Die Speicher-Subsystem-Steuerung kann eine Verarbeitungsvorrichtung (z. B. einen Prozessor) beinhalten, die zum Ausführen von Anweisungen konfiguriert ist, die in einem lokalen Speicher gespeichert sind. In dem veranschaulichten Beispiel beinhaltet der lokale Speicher der Speicher-Subsystem-Steuerung einen eingebetteten Speicher, der so konfiguriert ist, dass er Anweisungen zur Durchführung verschiedener Prozesse, Operationen, logischer Ströme und Routinen speichert, die die Operation des Speicher-Subsystems steuern, einschließlich der Handhabung der Kommunikation zwischen dem Speicher-Subsystem und dem Host-System 120.
  • In einigen Ausführungsformen kann der lokale Speicher Speicherregister beinhalten, die Speicherzeiger, abgefragte Daten usw. speichern. Der lokale Speicher kann auch einen Nur-Lese-Speicher (ROM) zum Speichern von Mikrocode beinhalten. Während einige Speicher-Subsysteme Speicher-Subsystem-Steuerungen aufweisen, weisen andere Speicher-Subsysteme keine Speicher-Subsystem-Steuerung auf und können sich stattdessen auf eine externe Steuerung verlassen (z. B. bereitgestellt durch einen externen Host oder durch einen vom Speicher-Subsystem getrennten Prozessor oder eine Steuerung).
  • Im Allgemeinen kann die Speicher-Subsystem-Steuerung Befehle oder Operationen vom Host-System 120 empfangen und die Befehle oder Operationen in Anweisungen oder geeignete Befehle umwandeln, um den gewünschten Zugriff auf die Speichervorrichtungen 130 zu erreichen. Die Speicher-Subsystem-Steuerung kann für andere Operationen verantwortlich sein, beispielsweise für Abnutzungsausgleichsoperationen, Müllsammlungsoperationen, Fehlererkennungs- und Fehlerkorrekturcode (error-correcting code - ECC)-Operationen, Verschlüsselungsoperationen, Zwischenspeicheroperationen und Adressübersetzungen zwischen einer logischen Adresse (z. B. logische Blockadresse (LBA), Namensraum) und einer physikalischen Adresse (z. B. physikalische Blockadresse), die mit den Speichervorrichtungen 130 verbunden sind. Die Speicher-Subsystem-Steuerung kann ferner eine Host-Schnittstellenschaltung zum Kommunizieren mit dem Host-System 120 über die physische Host-Schnittstelle beinhalten. Die Host-Schnittstellenschaltung kann die vom Host-System empfangenen Befehle in Befehle für den Zugriff auf die Speichervorrichtungen 130 umwandeln und die in den Speichervorrichtungen 130 assoziierten Antworten in Informationen für das Host-System 120 umwandeln.
  • Das Speicher-Subsystem kann auch zusätzliche Schaltungen oder Komponenten beinhalten, die nicht veranschaulicht sind. In einigen Ausführungsformen kann das Speicher-Subsystem einen Cache oder Puffer (z. B. DRAM) und Adressschaltungen (z. B. einen Zeilendecoder und einen Spaltendecoder) beinhalten, die eine Adresse von der Speicher-Subsystem-Steuerung empfangen und die Adresse dekodieren können, um auf die Speichervorrichtungen 130 zuzugreifen.
  • In einigen Ausführungsformen beinhalten die Speichervorrichtungen 130 lokale Mediensteuerungen, die in Verbindung mit der Speicher-Subsystem-Steuerung des Speicher-Subsystems arbeiten, um Operationen in einer oder mehreren Speicherzellen 103 der Speichervorrichtungen 130 auszuführen. Eine lokale Mediensteuerung kann verwendet werden, um die Kryptographie-Engine 107 und/oder die Zugriffssteuerung 109 zu implementieren. Eine externe Steuerung (z. B. die Speicher-Subsystem-Steuerung oder die Steuerung 116 des Host-Systems 120) kann die Speichervorrichtung 130 extern verwalten (z. B. Durchführen von Operationen zur Medienverwaltung in der Speichervorrichtung 130). In einigen Ausführungsformen ist eine Speichervorrichtung 130 eine verwaltete Speichervorrichtung, d. h. eine Rohspeichervorrichtung in Kombination mit einer lokalen Mediensteuerung für die Medienverwaltung in demselben Speichervorrichtungspaket. Ein Beispiel für eine verwaltete Speichervorrichtung ist eine verwaltete NAND-Vorrichtung (managed NAND - MNAND).
  • Die Speicher-Subsystem-Steuerung und/oder eine Speichervorrichtung 130 kann einen Sicherheitsmanager 160 beinhalten, die zum Bereitstellen der oben erläuterten Sicherheitsmerkmale konfiguriert ist. In einigen Ausführungsformen kann die Speicher-Subsystem-Steuerung und/oder die lokale Mediensteuerung in dem Speicher-Subsystem zumindest einen Teil des Sicherheitsmanagers 160 beinhalten. In anderen Ausführungsformen oder in Kombination kann die Steuerung 116 im Host-System 120 zumindest einen Teil des Sicherheitsmanagers 160 beinhalten. Der Speicher-Subsystem-Steuerung, die Steuerung 116 und/oder der Sicherheitsserver 140 können zum Beispiel Logikschaltungen beinhalten und/oder Anweisungen zum Implementieren des Sicherheitsmanagers 160 ausführen. Die Speicher-Subsystem-Steuerung oder die Verarbeitungsvorrichtung 118 (z. B. Prozessor) des Host-Systems 120 kann beispielsweise konfiguriert werden, um Anweisungen auszuführen, die in der Speichervorrichtung 130 zum Ausführen der hierin beschriebenen Operationen des Sicherheitsmanagers 160 gespeichert sind. In einigen Ausführungsformen ist der Sicherheitsmanager 160 in einem integrierten Schaltungs-Chip implementiert, der in dem Speicher-Subsystem angeordnet ist. In anderen Ausführungsformen kann der Sicherheitsmanager 160 Teil der Firmware des Speicher-Subsystems, eines Betriebssystems des Host-Systems 120, eines Gerätetreibers oder einer Anwendung bzw. einer beliebigen Kombination davon sein.
  • Einige Abschnitte der vorhergehenden detaillierten Beschreibungen wurden in Form von Algorithmen und symbolischen Darstellungen von Operationen auf Datenbits in einem Computerspeicher dargestellt. Diese algorithmischen Beschreibungen und Darstellungen werden von den Fachleuten der Datenverarbeitung verwendet, um anderen Fachleuten den Inhalt ihrer Arbeit möglichst effektiv zu übertragen. Ein Algorithmus wird hier und im Allgemeinen als eine in sich konsistente Sequenz von Operationen verstanden, die zu einem gewünschten Ergebnis führt. Bei den Operationen handelt es sich um jene, die physische Manipulationen von physischen Größen erfordern. Normalerweise, aber nicht zwangsläufig, sind diese Größen in Form von elektrischen oder magnetischen Signalen ausgebildet, die gespeichert, kombiniert, verglichen und anderweitig manipuliert werden können. Zu bestimmten Zeitpunkten hat es sich vor allem aus Gründen des allgemeinen Gebrauchs als zweckmäßig erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch bedacht werden, dass alle diese und ähnliche Begriffe mit den entsprechenden physischen Größen assoziiert werden sollten und lediglich praktische Bezeichnungen sind, die auf diese Größen angewandt werden. Die vorliegende Offenbarung kann sich auf die Aktionen und Prozesse eines Computersystems oder einer ähnlichen elektronischen Rechenvorrichtung beziehen, die Daten, die als physische (elektronische) Größen in den Registern und Speichern des Computersystems dargestellt werden, manipulieren und in andere Daten umwandeln, die in ähnlicher Weise als physische Größen in den Speichern oder Registern des Computersystems oder anderen derartigen Informationsspeichersystemen dargestellt werden.
  • Die vorliegende Offenbarung bezieht sich auch auf eine Vorrichtung zum Durchführen der hierin beschriebenen Operationen. Diese Vorrichtung kann speziell für die vorgesehenen Zwecke konstruiert sein oder einen Universalcomputer beinhalten, der durch ein im Computer gespeichertes Programm selektiv aktiviert oder rekonfiguriert wird. Ein derartiges Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert werden, beispielsweise, aber nicht beschränkt auf, jede Art von Diskette, einschließlich Floppy-Disks, optische Disks, CD-ROMs und magneto-optische Disks, Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetische oder optische Karten oder jede Art von Medien, die zum Speichern elektronischer Anweisungen geeignet sind und jeweils mit einem Computersystembus gekoppelt sind.
  • Die hierin dargestellten Algorithmen und Anzeigen sind nicht notwendigerweise an einen bestimmten Computer oder eine andere Vorrichtung gebunden. Verschiedene Systeme für allgemeine Zwecke können mit Programmen gemäß den Lehren hierin verwendet werden, oder es kann sich als zweckmäßig erweisen, eine speziellere Vorrichtung zum Durchführen des Verfahrens zu konstruieren. Die Struktur für eine Vielzahl dieser Systeme erscheint wie in der folgenden Beschreibung angegeben. Darüber hinaus wird die vorliegende Offenbarung nicht in Bezug auf eine bestimmte Programmiersprache beschrieben. Es versteht sich, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der hierin beschriebenen Offenbarung zu implementieren.
  • Die vorliegende Offenbarung kann als Computerprogrammprodukt oder Software bereitgestellt werden, die ein maschinenlesbares Medium mit darauf gespeicherten Anweisungen beinhalten kann, die zum Programmieren eines Computersystems (oder anderer elektronischer Vorrichtungen) zum Durchführen eines Prozesses gemäß der vorliegenden Offenbarung verwendet werden können. Ein maschinenlesbares Medium beinhaltet jeden Mechanismus zum Speichern von Informationen in einer Form, die von einer Maschine (z. B. einem Computer) gelesen werden kann. In einigen Ausführungsformen beinhaltet ein maschinenlesbares (z. B. computerlesbares) Medium ein maschinenlesbares (z. B. computerlesbares) Speichermedium wie einen Festwertspeicher („ROM“), einen Direktzugriffsspeicher („RAM“), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speicherkomponenten usw.
  • In dieser Beschreibung werden verschiedene Funktionen und Operationen als von Computeranweisungen betrieben oder veranlasst beschrieben, um die Beschreibung zu vereinfachen. Fachleute werden jedoch erkennen, dass mit diesen Ausdrücken gemeint ist, dass die Funktionen aus der Ausführung der Computeranweisungen durch eine oder mehrere Steuerungen oder Prozessoren, beispielsweise einen Mikroprozessor, resultieren. Alternativ oder in Kombination können die Funktionen und Operationen unter Verwendung spezieller Schaltungen implementiert werden, mit oder ohne Software-Anweisungen, sodass insbesondere anwendungsspezifische integrierte Schaltungen (ASIC) oder feldprogrammierbare Gate-Arrays (FPGA) verwendet werden. Ausführungsformen können unter Verwendung festverdrahteter Schaltungen ohne Software-Anweisungen oder in Kombination mit Software-Anweisungen implementiert werden. Somit sind die Techniken weder auf eine beliebige Kombination von Hardware-Schaltungen und Software, noch auf eine bestimmte Quelle für die vom Datenverarbeitungssystem ausgeführten Anweisungen beschränkt.
  • In der vorstehenden Spezifikation wurden die Ausführungsformen der Offenbarung unter Bezugnahme auf bestimmte beispielhafte Ausführungsformen beschrieben. Es ist offensichtlich, dass verschiedene Modifizierungen vorgenommen werden können, ohne von dem weiteren Sinn und Umfang der Ausführungsformen der Offenbarung, wie sie in den folgenden Ansprüchen dargelegt sind, abzuweichen. Die Spezifikation und die Zeichnungen sind demnach eher veranschaulichend als einschränkend zu verstehen.
  • 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 63/105820 [0001]
    • US 63/156224 [0001]
    • US 17/005565 [0002, 0185]
    • US 63/059617 [0002]
    • US 17/080684 [0002]
    • US 16/374905 [0002, 0187]
    • US 2020/0322134 [0002, 0187]
    • US 17/014203 [0002]

Claims (20)

  1. Verfahren, umfassend: Empfangen, in einem Sicherheitsserver, einer Anforderung von einem Client-Server, wobei die Anforderung eine vom Sicherheitsserver bereitgestellte Nonce und Identitätsdaten einer Speichervorrichtung in dem Speicher mit einer Zugriffssteuerung beinhaltet; Bestimmen, durch den Sicherheitsserver und basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität der Speichervorrichtung. Erzeugen, durch den Sicherheitsserver, eines Verifizierungscodes für einen Befehl; und Kommunizieren, von dem Sicherheitsserver an den Client-Server, einer Antwort, die den Verifizierungscode enthält, wobei der Client-Server konfiguriert ist, den Befehl und den Verifizierungscode an die Speichervorrichtung zu übertragen, und die Zugriffssteuerung konfiguriert ist, den Verifizierungscode zu überprüfen, um zu bestimmen, ob das Ausführen des Befehls in der Speichervorrichtung blockiert werden soll.
  2. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, basierend auf den in dem Sicherheitsserver gespeicherten Daten, dass der Client-Server die Berechtigung hat, den Befehl in der Speichervorrichtung auszuführen; wobei der Verifizierungscode in der Antwort basierend auf den Berechtigungen bereitgestellt wird.
  3. Verfahren nach Anspruch 2, wobei die Antwort ferner auf der Bestimmung basiert, dass die Speichervorrichtung den Geheimcode aufweist.
  4. Verfahren nach Anspruch 3, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, eine Änderung eines Zugriffskontrollschlüssels veranlasst, der von der Zugriffssteuerung verwendet wird, um Verifizierungscodes zu überprüfen, die unter Verwendung eines kryptographischen Schlüssels erzeugt wurden, der für eine Berechtigung steht, einen oder mehrere Befehle in der Speichervorrichtung auszuführen.
  5. Verfahren nach Anspruch 4, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, eine Änderung in einer Einstellung von Sicherheitsmerkmalen der Speichervorrichtung oder eine Änderung in dem in der Speichervorrichtung gespeicherten Inhalt veranlasst.
  6. Verfahren nach Anspruch 4 oder 5, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, den Zugriff auf eine Plattform und einen in der Speichervorrichtung gespeicherten Bootloader zu deaktivieren.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Zugriffssteuerung veranlasst, den Zugriff auf einen oder mehrere Abschnitte von Speicherzellen in der Speichervorrichtung zu sperren.
  8. Verfahren nach einem der Ansprüche 4 bis 7, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, einen Entschlüsselungsschlüssel für in der Speichervorrichtung gespeicherte Daten zu löschen.
  9. Verfahren nach einem der Ansprüche 4 bis 8, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, zumindest einen Aspekt der Speichervorrichtung irreversibel zu zerstören.
  10. Verfahren nach einem der Ansprüch 4 bis 9, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, ein Sicherheitsmerkmal der Speichervorrichtung zu deaktivieren.
  11. Verfahren nach einem der Ansprüch 4 bis 10, wobei die Speichervorrichtung den Geheimcode nach der Fertigstellung der Speichervorrichtung in einer sicheren Einrichtung nicht außerhalb der Speichervorrichtung übermittelt.
  12. Verfahren nach Anspruch 11, ferner umfassend: Einrichten eines gemeinsamen Sitzungsschlüssels zwischen dem Sicherheitsserver und der Speichervorrichtung, basierend auf einer Überprüfung der Identitätsdaten.
  13. Verfahren nach Anspruch 12, wobei der Zugriffskontrollschlüssel auf dem Sitzungsschlüssel basiert.
  14. Verfahren nach Anspruch 12 oder 13, ferner umfassend: Registrieren des Geheimcodes während der Herstellung der Speichervorrichtung in der gesicherten Einrichtung; und Erzeugen, zumindest teilweise basierend auf dem Geheimcode, eines kryptographischen Schlüssels zum Überprüfen in den Identitätsdaten.
  15. Verfahren nach Anspruch 14, wobei der kryptographische Schlüssel, der zum Überprüfen der Identitätsdaten verwendet wird, ferner basierend auf Daten erzeugt wird, die von einem Host-System der Speichervorrichtung beim Booten des Host-Systems empfangen werden; und der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, eine kryptographische Messung der in der Speichervorrichtung gespeicherten Daten, oder eine von der Speichervorrichtung signierte digitale Signatur für die in der Speichervorrichtung gespeicherten Daten zu erzeugen.
  16. Computersystem, umfassend: einen Speicher, der kryptographische Schlüssel in den Speichervorrichtungen speichert; und zumindest einen Prozessor, der über einen Anweisungssatz für Folgendes konfiguriert ist:: Empfangen einer Anforderung von einem Client-Server, wobei die Anforderung Identitätsdaten einer Speichervorrichtung mit einer Zugriffssteuerung beinhaltet; Bestimmen, basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität der Speichervorrichtung; und Erzeugen eines Verifizierungscodes für einen Befehl, der an eine Host-Schnittstelle der Speichervorrichtung übertragen werden soll, wobei die Zugriffssteuerung vor der Ausführung des Befehls in der Speichervorrichtung konfiguriert ist, zu überprüfen, ob der Verifizierungscode unter Verwendung eines kryptographischen Schlüssels erzeugt wurde, der eine Berechtigung darstellt, den Befehl in der Speichervorrichtung auszuführen.
  17. Computersystem nach Anspruch 16, wobei der mindestens eine Prozessor über den Befehlssatz so konfiguriert ist, dass er dem Client-Server Dienste beim Implementieren von Sicherheitsoperationen für die Speichervorrichtung basierend auf Sicherheitsmerkmalen der Speichervorrichtung bereitstellt; und wobei die Sicherheitsmerkmale beinhalten: Erzeugen eines kryptographischen Schlüssels, der eine Identität der Speichervorrichtung darstellt, basierend zumindest teilweise auf dem Geheimcode der Speichervorrichtung; und Steuern von Befehlen, die in der Speichervorrichtung ausgeführt werden, basierend auf Berechtigungen, die durch kryptographische Schlüssel dargestellt werden.
  18. Computersystem nach Anspruch 17, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, das Ersetzen eines Zugriffskontrollschlüssels veranlasst, der von der Zugriffssteuerung verwendet wird, um Verifizierungscodes zu überprüfen, die unter Verwendung eines kryptographischen Schlüssels erzeugt werden, der für eine Berechtigung zum Ausführen eines oder mehrerer Befehle in der Speichervorrichtung steht; und wobei die Sicherheitsmerkmale ferner eine Kryptographie-Engine beinhalten.
  19. Nichtflüchtiges Computer-Speichermedium, das Anweisungen speichert, die, bei Ausführung durch einen Sicherheitsserver, den Sicherheitsserver veranlassen, ein Verfahren durchzuführen, wobei das Verfahren Folgendes umfasst: Empfangen, in dem Sicherheitsserver, einer Anforderung von einem Client-Server, wobei die Anforderung Identitätsdaten einer Speichervorrichtung in dem Speicher mit einer Zugriffssteuerung beinhaltet, Bestimmen, durch den Sicherheitsserver und basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität der Speichervorrichtung. Erzeugen, durch den Sicherheitsserver, eines Verifizierungscodes für einen Befehl; und Veranlassen, durch den Sicherheitsserver, der Übertragung des Befehls und des Verifizierungscodes an eine Host-Schnittstelle der Speichervorrichtung, wobei die Zugriffssteuerung konfiguriert ist, den Verifizierungscode zu überprüfen, um zu bestimmen, ob das Ausführen des Befehls in der Speichervorrichtung blockiert werden soll.
  20. Nichtflüchtiges Computer-Speichermedium nach Anspruch 19, wobei das Verfahren ferner umfasst: Bestimmen, basierend auf den in dem Sicherheitsserver gespeicherten Daten, dass der Client-Server die Berechtigung hat, den Befehl in der Speichervorrichtung auszuführen; wobei der Verifizierungscode in der Antwort basierend auf den Berechtigungen bereitgestellt wird, wobei die Antwort ferner auf der Bestimmung basiert, dass die Speichervorrichtung den Geheimcode aufweist, und wobei die Speichervorrichtung den Geheimcode, nach der Fertigstellung der Herstellung der Speichervorrichtung, nicht außerhalb der Speichervorrichtung übermittelt.
DE102022104902.7A 2021-03-03 2022-03-02 Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen Pending DE102022104902A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163156224P 2021-03-03 2021-03-03
US63/156,224 2021-03-03
US17/485,166 US20220129389A1 (en) 2020-10-26 2021-09-24 Online Security Services based on Security Features Implemented in Memory Devices
US17/485,166 2021-09-24

Publications (1)

Publication Number Publication Date
DE102022104902A1 true DE102022104902A1 (de) 2022-09-08

Family

ID=82898285

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022104902.7A Pending DE102022104902A1 (de) 2021-03-03 2022-03-02 Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen

Country Status (2)

Country Link
CN (1) CN115037492A (de)
DE (1) DE102022104902A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117978546A (zh) * 2024-03-29 2024-05-03 华侨大学 一种基于可信执行环境的无证书动态共享数据审计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200322134A1 (en) 2019-04-04 2020-10-08 Micron Technology, Inc. Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205906B (zh) * 2012-02-07 2019-02-22 苹果公司 网络辅助的欺诈检测装置与方法
US8997197B2 (en) * 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9098687B2 (en) * 2013-05-03 2015-08-04 Citrix Systems, Inc. User and device authentication in enterprise systems
US9930051B1 (en) * 2015-11-06 2018-03-27 Amazon Technologies, Inc. Remote management of hardware hosts in cloud infrastructure
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
WO2018111302A1 (en) * 2016-12-16 2018-06-21 Visa International Service Association System and method for securely processing an electronic identity
EP3748900A1 (de) * 2017-03-01 2020-12-09 Apple Inc. Systemzugriff unter verwendung einer mobilen vorrichtung
US20180254898A1 (en) * 2017-03-06 2018-09-06 Rivetz Corp. Device enrollment protocol
WO2019075234A1 (en) * 2017-10-12 2019-04-18 Rivetz Corp. CERTIFICATE COMPRISING INTEGRATED ENCRYPTION KEYS
US11025419B2 (en) * 2017-11-15 2021-06-01 Alexander J. M. Van Der Velden System for digital identity authentication and methods of use
US10887098B2 (en) * 2017-11-15 2021-01-05 Alexander J. M. Van Der Velden System for digital identity authentication and methods of use
EP3762844A4 (de) * 2018-03-07 2021-04-21 Visa International Service Association Sichere entfernte token-freigabe mit online-authentifizierung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200322134A1 (en) 2019-04-04 2020-10-08 Micron Technology, Inc. Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117978546A (zh) * 2024-03-29 2024-05-03 华侨大学 一种基于可信执行环境的无证书动态共享数据审计方法

Also Published As

Publication number Publication date
CN115037492A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
USRE46023E1 (en) Memory device upgrade
US9775024B2 (en) Method for changing MNO in embedded SIM on basis of dynamic key generation and embedded SIM and recording medium therefor
DE112017002044T5 (de) Plattformattestierung und registrierung für server
US20220131848A1 (en) Management of Identifications of an Endpoint having a Memory Device Secured for Reliable Identity Validation
DE102015209116A1 (de) Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
EP3337085B1 (de) Nachladen kryptographischer programminstruktionen
US11811743B2 (en) Online service store for endpoints
US20220132298A1 (en) Cloud-service on-boarding without prior customization of endpoints
US20220129389A1 (en) Online Security Services based on Security Features Implemented in Memory Devices
CN107332817A (zh) 支持多个访问控制客户端的移动装置和对应的方法
US20240146525A1 (en) Batch Transfer of Control of Memory Devices over Computer Networks
EP3321832B1 (de) Verteilen zum lesen von attributen aus einem id-token
US20220129391A1 (en) Track Activities of Endpoints having Secure Memory Devices for Security Operations during Identity Validation
US20220131847A1 (en) Subscription Sharing among a Group of Endpoints having Memory Devices Secured for Reliable Identity Validation
US20220129390A1 (en) Monitor Integrity of Endpoints having Secure Memory Devices for Identity Authentication
EP3989480A1 (de) Virtuelles teilnehmeridentifizierungsmodul und virtuelle chipkarte
DE102022104902A1 (de) Online-sicherheitsdienste auf der grundlage von in speichervorrichtungen implementierten sicherheitsmerkmalen
DE102022104834A1 (de) Onboarding von cloud-diensten ohne vorherige anpassung der endgeräte
US20220129259A1 (en) Endpoint Customization via Online Firmware Store
US20230370446A1 (en) Track Activities of components in Endpoints having Secure Memory Devices via Identity Validation
CN115037495A (zh) 身份验证期间跟踪具有安全存储器装置的端点的活动以用于安全操作
CN115037491A (zh) 具有被保护用于可靠身份验证的存储器装置的端点群组中的订阅共享
CN115021950A (zh) 用于端点的在线服务商店
CN115021949A (zh) 具有被保护用于可靠身份验证的存储器装置的端点的识别管理方法和系统

Legal Events

Date Code Title Description
R012 Request for examination validly filed