DE102022104834A1 - ONBOARDING CLOUD SERVICES WITHOUT PRIOR CUSTOMIZATION OF DEVICES - Google Patents

ONBOARDING CLOUD SERVICES WITHOUT PRIOR CUSTOMIZATION OF DEVICES Download PDF

Info

Publication number
DE102022104834A1
DE102022104834A1 DE102022104834.9A DE102022104834A DE102022104834A1 DE 102022104834 A1 DE102022104834 A1 DE 102022104834A1 DE 102022104834 A DE102022104834 A DE 102022104834A DE 102022104834 A1 DE102022104834 A1 DE 102022104834A1
Authority
DE
Germany
Prior art keywords
terminal
storage device
server
data
identity
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
DE102022104834.9A
Other languages
German (de)
Inventor
Oliver Duval
Jeffrey Charles Shiner
Lance W. Dover
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,188 external-priority patent/US20220132298A1/en
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102022104834A1 publication Critical patent/DE102022104834A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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
    • 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/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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Abstract

Ein Server-System zum Einbinden eines Endgeräts mit einem Host-System, das mit einer Host-Schnittstelle einer Speichervorrichtung für einen Cloud-Service verbunden ist, ohne vorherige Anpassung des Endgeräts, um ein Konto für den Zugriff auf den Cloud-Service zu identifizieren. Zum Beispiel bestimmt das Serversystem nach dem Empfangen einer mit dem Dienst verbundenen Anforderung, die von der Speichervorrichtung erzeugte Identitätsdaten enthält, die Authentizität der Speichervorrichtung und des Endgeräts basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten. In Reaktion auf die Anforderung identifiziert das Serversystem ferner, basierend auf den Identifizierungsdaten, einen Teilnehmer aus einer Vielzahl von Teilnehmern, die auf den Eigentumsdaten des Endgeräts basieren. Infolge der Identifizierung des Teilnehmers basierend auf den Identitätsdaten bestimmt das Serversystem ein Konto des Teilnehmers, um dem Endgerät den Dienst basierend auf dem Konto bereitzustellen.A server system for integrating a terminal with a host system connected to a host interface of a storage device for a cloud service without first adapting the terminal to identify an account for access to the cloud service. For example, upon receiving a request related to the service including identity data generated by the storage device, the server system determines the authenticity of the storage device and the terminal based on a secret code of the storage device and the identity data. In response to the request, the server system further identifies, based on the identification information, one of a plurality of participants based on the terminal's proprietary information. As a result of identifying the subscriber based on the identity data, the server system determines an account of the subscriber to provide the service to the terminal based on the account.

Description

VERWANDTE ANMELDUNGENRELATED APPLICATIONS

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,226, eingereicht am 3. März 2021, mit dem Titel „Cloud-Service On-Boarding without Prior Customization of Endpoints (Cloud-Service On-Boarding ohne vorherige Anpassung der Endgeräte)“, deren gesamte Offenbarung durch Bezugnahme auf diese Anmeldungen hierin aufgenommen wird.The present application claims the benefit of the filing date of Vorl. US Pat. Note Ser. No. 63/105,820, filed October 26, 2020, entitled "Virtual Subscriber Identification Module and Virtual Smart Card," the present application also having the benefit of the filing date of Prov. US Pat. Note Ser. Serial No. 63/156,226, filed March 3, 2021, entitled "Cloud-Service On-Boarding without Prior Customization of Endpoints", the entire disclosure of which is incorporated herein by reference Registrations is incorporated herein.

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 Geräteidentitä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.The present application is related to US Pat. Note Ser. No. 17/005,565 , filed August 28, 2020, entitled "Secure Memory System Programming for Host Device Verification," which takes advantage of the filing date of Prel. US Pat. Note Ser. No. 63/059,617 , filed 07/31/2020, U.S. Pat. Note Ser. No. 17/080,684 , filed October 26, 2020, entitled "Endpoint Authentication based on Boot-Time Binding of Multiple Components", U.S. Pat. Note Ser. No. 16/374,905, filed April 4, 2019, entitled Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers ,” and published as US Pat. Note Pub. No. 2020/0322134 on October 8, 2020, and U.S. Pat. Note Ser. No. 17/014,203 , filed September 8, 2020, entitled Customer-Specific Activation of Functionality in a Semiconductor Device, the entire disclosure of which is hereby incorporated by reference.

TECHNISCHES GEBIETTECHNICAL AREA

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.At least some of the embodiments disclosed herein relate to authentication in general, and particularly but not limited to authentication of a communication endpoint having a secure storage device on a network.

HINTERGRUNDBACKGROUND

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.A storage subsystem may include one or more storage devices that store data. The storage devices may be, for example, non-volatile storage devices and volatile storage devices. In general, a host system may use a storage subsystem to store data on the storage devices and retrieve data from the storage devices.

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.Device Identity Composition Engine (DICE) and Robust Internet-of-Things (RIoT) standards have been developed for computing data to identify and authenticate identities of computing devices based on cryptographic computations.

Figurenlistecharacter list

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.
The embodiments are illustrated by way of non-limiting example in the figures of the accompanying drawings, in which similar references indicate similar elements.
  • 1 1 illustrates an exemplary computer system, in accordance with some embodiments of the present disclosure.
  • 2 12 illustrates generation of identity data in an integrated circuit memory device according to one embodiment.
  • 3 FIG. 11 illustrates a technique for controlling execution of an instruction in a memory device, according to one embodiment.
  • 4 12 illustrates a technique for verifying an integrity of data stored in memory, according to one embodiment.
  • 5 illustrates security services of a security server provided to a client-server based on security features implemented in a storage device according to an embodiment.
  • 6 shows a system and method for configuring and authenticating a terminal device for a card-based service according to an embodiment.
  • 7 illustrates a card profile of a virtual smart card according to one embodiment.
  • 8th illustrates a card profile of a virtual subscriber identification module (sub scriber Identification Module - SIM) according to one embodiment.
  • 9 12 illustrates a technique for authenticating a storage device according to one embodiment.
  • 10 11 illustrates a technique for generating a command to control security operations of a memory device, according to one embodiment.
  • 11 Figure 12 shows a method for a virtual smart card according to one embodiment.
  • 12 12 shows a method for security services provided based on security features of a storage device according to an embodiment.
  • 13 FIG. 12 shows a method for onboarding a terminal device to a service that has been subscribed to an account according to an embodiment.
  • 14 FIG. 12 shows a technique for adapting terminals using online firmware storage according to an embodiment.
  • 15 12 shows a technique for routing services to a terminal via an online service store, according to an embodiment.
  • 16 FIG. 12 shows a method for updating firmware using firmware storage and a security server according to one embodiment.
  • 17 FIG. 12 shows a method for adapting terminals using a service store and a security server according to an embodiment.
  • 18 illustrates the generation of identity data to facilitate monitoring of the integrity and/or activities of a terminal according to one embodiment.
  • 19 FIG. 11 illustrates a technique for maintaining the integrity of packets stored on a terminal, according to one embodiment.
  • 20 12 shows a system that implements security operations based on tracking activities of a terminal according to an embodiment.
  • 21 FIG. 12 shows a method for updating or repairing a package stored in a terminal according to an embodiment.
  • 22 FIG. 12 shows a method for performing a security operation based on one or more activities of a terminal according to an embodiment.
  • 23 and 24 12 illustrate systems configured to implement subscription sharing among a group of terminals, according to one embodiment.
  • 25 FIG. 12 shows a method for facilitating the sharing of subscriptions in a group of terminals according to an embodiment.
  • 26 FIG. 12 shows techniques for managing an identification of a terminal according to an embodiment.
  • 27 FIG. 12 shows a method for managing an identification of a terminal according to an embodiment.
  • 28 1 is a block diagram of an exemplary computer system in which embodiments of the present disclosure may operate.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

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.At least some aspects of the present disclosure are directed to a security server and storage devices having security features. The security server is configured to provide online security services on a computer network (e.g. Internet) based on the security features of the storage device. Host systems of the storage devices may use the storage functions of the storage devices to store instructions and/or data for processing and to store processing results.

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.In general, a memory subsystem may include a memory device and/or a memory module. A host system may use a storage subsystem that includes one or more components, such as storage devices, that store data. The host system can provide data to be stored in the storage subsystem and can request data to be retrieved from the storage subsystem.

So kann beispielsweise ein Teil der Daten, die in einem Speicher gespeichert sind, aus Anweisungen bestehen, wie Anweisungen, die für Software, Firmware, einen Boot-Loader, ein Betriebssystem, eine Routine, einen Gerätetreiber, 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.For example, some data stored in memory may consist of instructions, such as instructions programmed for software, firmware, a boot loader, an operating system, a routine, a device driver, an application package, and so on. The instructions may be stored for a computing device implemented using a host system to which the storage device is connected.

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.Another portion of the data stored in memory may provide operands or inputs to the instructions when the instructions are executed on one or more processing devices of the host system.

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.Another portion of the data stored in memory may include results produced from executions of the instructions using the inputs stored in memory and/or other inputs.

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, ein intelligentes Gerät, ein IoT-Gerät (Internet der Dinge) usw.Examples of such a computing device include a personal computer, mobile computer, tablet computer, personal media player, smartphone, smart TV, smart speaker, smart device, Internet of Things (IoT) device, etc .

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.The security features implemented in a storage device can be used to secure communication between the storage device and the security server over a computer network. The communication path between the storage device and the security server may not be secure. The communication between the security server and the storage device enables verification of the identity of the storage device and/or control of access to the storage device in order to prevent and detect counterfeiting, tampering, hacking and/or insecure operations.

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.The combination of the security features of the storage device and the security services of the security server allows various parties involved in the use of the storage device and/or the computing device with the storage device to have confidence in the authenticity of the computing device and/or the storage device and confidence in the integrity the data stored in the storage device, such as the instructions to be executed in the computing device and the inputs to the instructions.

Beispielsweise können der Sicherheitsserver und die Speichervorrichtung kombiniert werden, um den Austausch eines Teilnehmeridentitätsmoduls (SIM) zu implementieren.For example, the security server and storage device may be combined to implement a subscriber identity module (SIM) exchange.

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.A SIM card is commonly used to represent the identity of a subscriber to a cellular service in a telecommunications network. When a SIM card is inserted into a mobile phone, the mobile phone can access the mobile service provided for a subscriber's account; and when the SIM card is inserted into an alternative mobile phone, the subscriber can access the cellular service associated with the account using the alternative mobile phone.

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.If the identity of a storage device installed in a mobile phone can be securely configured to represent a subscriber's identity, the need for a physical SIM card can be eliminated. The identity of the storage device can be configured and protected via the security features of the storage device and the security services of the security server.

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.In general, the security server on the Internet can be configured to provide security-related services to third party computers and servers based on the security features built into the storage devices. The security features are embedded and packaged in the storage devices. The security features and the security services can be used without trusting the security implementations of computing devices on which the storage devices are installed. Thus, security implementations can be centralized in the development of the security features in the storage devices and the security server. By simply using the memory devices that have the security features, the security of the computing devices that use the memory devices can be improved without great effort for the developers and/or manufacturers of the computing devices.

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.The security server may provide services for verifying the identity and/or authenticity of devices, detecting counterfeit and/or tampered devices, tracking and managing ownership of devices, facilitating transfer of ownership/control of devices, facilitating configuration of Provide computing devices for accessing services from third party servers and/or networks, etc.

Sicherheitsmerkmale einer Speichervorrichtung können in dem Gehäuse einer integrierten Schaltung (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.Security features of a memory device may be implemented in an integrated circuit (IC) package of the memory device during manufacture of the memory device. The memory device may include logic circuitry (or controller) and memory cells formed on one or more integrated circuit chips. At least some of the memory cells of the storage device may be non-volatile, such that data may be retained in the non-volatile memory cells even if the storage device is used for an extended period of time (e.g., days, months, or even years) is not powered. The non-volatile memory of the storage device can be used to store instructions and data for the operations of a host system of the storage cell.

Die Speichervorrichtung kann einen eindeutigen Geräteschlüssel (Unique Device Secret, UDS) aufweisen. Der eindeutige Geräteschlüssel kann in der Speichervorrichtung derart gesichert werden, dass nach Fertigstellung der Herstellung der Speichervorrichtung der eindeutige Geräteschlüssel nicht außerhalb der Speichervorrichtung kommuniziert wird und nicht von einem Host-System über eine Schnittstelle der Speichervorrichtung gelesen werden kann.The storage device may have a unique device secret (UDS). The device unique key may be secured in the storage device such that upon completion of manufacture of the storage device, the device unique key is not communicated outside of the storage device and cannot be read by a host system via an interface of the storage device.

Das Vorhandensein des eindeutigen Geräteschlü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.The presence of the storage device's unique device key may be verified by the security server through cryptographic calculations, such as generating cryptographic keys, hashing a message using a cryptographic function, and generating ciphertext of a message by encrypting the message with a cryptographic key.

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.The cryptographic computation to encrypt a message using a cryptographic key involves the computation of a ciphertext to represent the message. The message can be efficiently recovered from the ciphertext using a corresponding cryptographic key by performing a predefined decryption calculation. Without the appropriate cryptographic key for decryption, it is generally not possible to recover the message from the ciphertext. The level of difficulty in recovering the message without knowing the corresponding cryptographic key for decryption represents the security level of the encryption calculation. The security level generally depends on the length of the cryptographic key used in encryption and the algorithm used.

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.When symmetric cryptography is used, the cryptographic key for decryption and the cryptographic key for encryption are identical. When using asymmetric cryptography, the decryption key and the encryption key are different and are generated as a pair. One of the pair can be used as a private key and thus as a secret code; the other of the pair can be used as a public key. In general, it is impractical to compute the private key from the public key. The level of difficulty in recovering the private key from the public key represents the security level of asymmetric cryptography.

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.The cryptographic computation to hash a message associates the message with a hash value to represent the message. However, a lot of information is lost when calculating the hash value, so the message cannot be reconstructed from the hash value. Many messages can be mapped to the same hash value. In general, it is impractical to create a modified version of the message that can be hashed with the same value, especially when the modified version is similar to the original message.

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.The cryptographic computation of key generation involves computing a cryptographic key for symmetric cryptography or a pair of cryptographic keys for asymmetric cryptography based on a data set. The probability of generating the same key or the same key pair without the same data set is small. The level of probability represents the strength of the cryptographic computation used in key generation.

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.In general, any technique of cryptographic computations for encryption, hashing, and key generation can be used with the storage device and security server. Thus, the present disclosure is not limited to any particular encryption, hashing, and/or key generation technique.

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.Besides the storage device's unique secret code, the memory may store additional data representing the data and/or hardware configuration of the storage device and/or the computing device in which the storage device is installed. A part of the additional data can be kept as a secret code in the storage device, but not necessarily. The unique secret code and the additional data can be used to generate a secret cryptographic key to represent the identity of the storage device and/or the computing device.

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.The logic circuitry (or local controller) of the storage device may implement a cryptographic engine, an identity engine, and access control. The cryptographic Storage device engine is configured to perform cryptographic computations (e.g., hashing, encryption/decryption, key generation) within the storage device to support identity engine and access control operations. The implementation of the cryptographic engine in the storage device avoids the need to rely on an external processor for security calculations of the storage devices and thus improves security by preventing the transfer of secrets outside of the storage device and by preventing tampering and hacking of cryptographic calculations. Optionally, at least part of the cryptographic computations involved in the security features of the storage device may be implemented by storing instructions in the storage device for execution by the storage device's host system, where there is a compromise between the level of security and the complexity of the logic circuitry ( or local control) of the storage device.

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.The storage device cryptographic engine may be used to apply a cryptographic hash function to a message to generate a hash value to generate a symmetric cryptographic key or a pair of asymmetric cryptographic keys from a data set to generate the ciphertext of a message to generate using a cryptographic key and/or to recover a message from ciphertext using a cryptographic key.

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 Rechte erforderlich sein, um die Speichervorrichtung aufzufordern, Befehle zum Ausführen von Lese-, Schreib-, Lösch-, Modifizierungs- usw. für verschiedene Abschnitte des nichtflüchtigen Speichers der Speichervorrichtung auszuführen. Die Rechte können durch entsprechende kryptographische Schlüssel dargestellt werden. Nach dem Empfangen eines privilegierten 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 Rechte 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.The storage device access controller is configured to control the execution of commands received at the storage device using cryptographic keys. For example, privileges may be required to request the storage device to execute commands to read, write, erase, modify, etc., various portions of the storage device's non-volatile memory. The rights can be represented by corresponding cryptographic keys. Upon receiving a privileged command at the storage device for execution, the access controller may perform a calculation using the cryptographic engine to determine whether the command originated from a sender who has a cryptographic key representing the rights. The access control enables the command to be executed in the storage device after the calculation has shown that the sender has the cryptographic key and therefore the right to do so. Otherwise, access control can reject, ignore, or discard the command. Such access control may prevent unauthorized access to the data stored in the storage device, prevent unauthorized modifications to the storage device, and prevent tampering and/or hacking intended to create counterfeits of the storage device and/or insecure devices.

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 (HMAC), eines Chiffrebasierten Nachrichten-Authentifizierungscodes (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 general, verifying that a sender of a message has a cryptographic key involves verifying a verification code of the message. The verification code may be in the form of a hash digest, a digital signature, a hash-based message authentication code (HMAC), a cipher-based message authentication code (CMAC), and so on. The verification code is generated using the cryptographic key and the message as input for cryptographic operations such as hashing, encrypting and/or other computations, so it is generally impractical to generate the verification code without the cryptographic key and to extract the verification code from a modified version of the generate message. Thus, by confirming that the received verification code is valid for the received message and a cryptographic key, the recipient can conclude that the sender has the corresponding cryptographic key and that the received message matches the message used to generate the received cryptographic key key was used.

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 some implementations, the recipient performs verification of a message's verification code using the same cryptographic key that the sender used to generate the verification code. For example, the recipient uses the same cryptographic key to generate the verification code of the received message and to compare the generated verification code with the received verification code. If there is a match, the received verification code is valid for the received message; and the sender can be considered to have the cryptographic key. Otherwise, the received verification code for the received message is invalid; either the received message has been altered since the verification code was generated, or the received verification code was generated using a different cryptographic key, or both.

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 some implementations, the recipient performs verification code verification of a message using a public cryptographic key in a key pair; and the sender generates the verification code using a private cryptographic key in the key pair. For example, the verification code can be generated by applying a hash function to the message to generate a hash value of the message. The ciphertext of the hash value obtained by encrypting the hash value performed using an encryption key can be used as the verification key. A recipient of the message and verification code performs the verification using a corresponding decryption key, which is identical to the encryption key when using symmetric cryptography and a different key in a key pair when using asymmetric cryptography. After reconstructing a hash value from the ciphertext using the decryption key, the reconstructed hash value can be compared to the hash value of the received message; if there is a match, the received verification code is valid for the received message; otherwise the received verification code for the received message is invalid. Alternatively, the recipient can use the encryption key to perform verification without performing decryption. The recipient can generate the verification code of the message by using the encryption key to compare it with the received verification code.

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 Hashbasierter 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.In some implementations, a message and a cryptographic key are combined to generate a hash value as a verification code, as in a hash-based message authentication code (HMAC) technique. For example, one cryptographic key can be used to generate two keys. After combining one of the two keys with the message to produce a key-modified message, a cryptographic hash function may be applied to the key-modified message to produce a hash value that is further combined with the other key to create another message. After applying the cryptographic hash function (or another cryptographic hash function) to the further message, a hash-based message authentication code is generated. A recipient of the message can use the same cryptographic key to generate the hash-based message authentication code of the received message for comparison to the received hash-based message authentication code. If there is a match, the verification is successful; otherwise the verification fails.

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.In general, any technique for generating and checking a verification code for a message from a sender and a cryptographic key that the sender uses to generate the verification code can be used to determine whether the sender possesses the cryptographic key. The recipient uses an appropriate cryptographic key to perform the verification, which may be the same as the cryptographic key used to generate the verification code, or the same pair of asymmetric cryptographic keys. Thus, the present disclosure is not limited to any particular hash digest, digital signature, and/or hash-based message authentication code technique.

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.For convenience, a verification code generated for a message using a cryptographic key to represent both the message and the cryptographic key can generally be referred to as a digital signature of the message signed with the cryptographic key, so the verification code can be verified using various techniques can be generated, for example with a hash-based message authentication code.

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.The storage device may be configured to store relevant cryptographic keys for checking verification codes signed with cryptographic keys configured to represent the requirements for executing the instructions in the storage device.

Beispielsweise kann die Zugriffssteuerung eine Reihe von Privilegien 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.For example, access control can provide a set of privileges for an owner of the storage device, such that the owner can enable or disable one or more security features of the storage device, change one or more security settings, parameters, configurations, or preferences of the storage device, and/or data from a portion of the storage device can read that cannot be read by other users of the storage device.

Beispielsweise kann die Zugriffssteuerung autorisierten Benutzern der Speichervorrichtung bestimmte Berechtigungen zum Lesen, Schreiben, Löschen oder Ändern bestimmter Abschnitte der Speichervorrichtung bereitstellen.For example, access control may grant authorized users of the storage device specific read, write, Provide deletion or modification of specific sections of the storage device.

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.When the storage device receives a command that requires an access right to execute, the access controller can retrieve a corresponding cryptographic key to verify a verification code or digital signature for a message containing the command. If the verification code received for the received command is checked successfully, the received command is considered to have come from a sender who possesses the cryptographic key representing the authorizations to execute the command in a storage device. In response, the access control allows the command to be executed in the memory device. Otherwise, access control blocks execution of the command.

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.The storage device can be made to be initially owned by the security server. Thereafter, the security server may provide and/or transfer some or all permissions to one or more owners and users in a process beginning with the placement of the storage device in a computing device to the computing device having the storage device used by an end user. Access control can prevent tampering, hacking, and unauthorized access while providing the flexibility to support different patterns of transferring permissions to different owners and users, such as: B. a manufacturer of a component of a computing device in which the storage device is installed, a manufacturer of a computing device in which the component of the computing device is installed, a retailer, an enterprise user, an end user and an alternative end user, etc.

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 Geräteschlü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 Geräteschlü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.The identity engine of the storage device is configured to generate data indicative of the identity of the storage device and/or the identity of the computing device on which the storage device is installed. To generate the identity data, the identity engine uses the cryptographic engine to generate a secret cryptographic key from the device unique key and other data stored on and/or collected by the storage device (e.g., during the boot process the computing device). The presence of the cryptographic secret key in the storage device may be taken as evidence that the storage device is in possession of the device's unique device key and the other data used to generate the cryptographic secret key. The presence of the secret cryptographic key in the storage device can be checked by the security server based on a verification code or a digital signature using the secret cryptographic key.

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 Geräteschlü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, ein Gerät, ein System integriert ist und zwischen Herstellern, Einzelhändlern, Distributoren, Unternehmen und/oder Endbenutzern übertragen wird. Ohne Ändern des eindeutigen Geräteschlü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.During manufacture of the storage device, a copy of the device's unique secret code is registered in the security server and/or passed securely and without detection. The security server is then configured to derive the same secret cryptographic key (and/or a corresponding public key if asymmetric cryptography is used) independently of the storage device without the storage device communicating its unique secret outside of the storage device. Thus, the security server can verify that the storage device has the unique device key by verifying that the storage device has the secret cryptographic key; and the cryptographic secret as the identity of the storage device may change during processing of the storage device integrated into a component, device, system and transmitted between manufacturers, retailers, distributors, companies and/or end users. Without changing the device unique key, the entity of the storage device as represented by a secret cryptographic key can be updated to represent the storage device as assembled into a component, device, system, customized and/or is personalized and/or owned and/or operated by different entities or users.

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.Cryptographic operations and communications may be performed to allow the security server to verify that the storage device has the secret cryptographic key.

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.For example, the identification data available for verification from the storage device may include a message indicating a public identification of the storage device. The public identifier can be used to distinguish the storage device from other storage devices. The identity data may include a verification code or a digital signature of a message in the identity data signed using the secret cryptographic key. The identity data includes a copy of the message and the verification code or digital signature. Once the verification code and the message data have been checked by the security server, the security server can conclude that the public identification provided in the identification data is authentic and the identification data originated from the storage device holding the secret cryptographic key.

Der geheime kryptographische Schlüssel der Speichervorrichtung kann nicht nur unter Verwendung des eindeutigen Geräteschlü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, Boot-Loader, 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.The storage device cryptographic secret may be generated not only using the storage device's unique device key, but also using additional data representative of some aspect of the storage device and/or the computing device on which the storage device is installed. The additional data may be representative of software, firmware, boot loader, applications, trace data stored in the storage device, identifiers of components of the computing device residing in the computing device at a particular time of the last boot of the computing device. If the additional data has been modified, the identity engine generates a modified secret cryptographic key. Consequently, the verification code generated using the changed cryptographic secret fails the check performed on the security server. Thus, by checking the verification code generated by the identity engine, the integrity and authenticity of the hardware/software/data composition of the storage device and the computing device in which the storage device is installed is also verified.

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.Verifying the identity of the storage device and/or the host system can detect counterfeit, tampered with, and stolen/lost devices. Based on an owner's request, the security server can configure a stolen/lost storage device to operate in one of several degraded modes, e.g. unbootable, unreadable, encryption/erasure of data in the non-volatile memory, self-destruct of the storage functionality of the storage device etc.

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.The security server is configured with a database of information for verifying identity data generated in the identity engines of storage devices. The database enables the security server to generate the corresponding secret cryptographic keys (and/or the corresponding public keys if asymmetric cryptography is used) in the storage devices. The cryptographic keys can be generated by the security server without the storage devices communicating their unique secret codes outside of the storage devices after the storage devices are manufactured. The cryptographic keys may be generated based at least in part on the additional data available after the storage devices are manufactured.

Der Sicherheitsserver kann einen kryptographischen Schlüssel speichern, der die Privilegien 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.The security server may store a cryptographic key representing the privileges of the owner of a storage device. Using the cryptographic key, the security server can generate commands to transfer ownership of the storage device and configure and/or transfer selected permissions to execute selected commands on the storage device. After a computing device has been reported as lost/stolen, the security server can detect the use of its storage device during verification of the storage device in connection with a service request from a third-party server.

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.For example, when the third party server receives a service request from a computing device with the storage device, it forwards the identity data generated by the storage device from the computing device to the security server for verification. If the identity information is verified by the security server, the third party server may provide services to the computing device; otherwise, the request can be denied, discarded, or ignored.

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.Upon request by an authorized party, the security server can sign commands or generate verification codes for the commands to grant or revoke access to the non-volatile memory in the storage device. The authorized party can forward the signed instructions to the storage device for execution. A signed command includes a message that includes the command and a verification code for the message that was signed/generated using a cryptographic key that represents the permissions to execute the command on the storage device.

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.The storage device may be installed in a computing device as part of the identity of the computing device and to provide main storage capacity for the computing device. For example, the instructions to be executed in the computing device and the associated data can be stored in the memory device and can have security features in the memory tampering, manipulation and/or hacking. Since the identity data generated by the identity engine of the storage device is based at least in part on the instructions/data stored in the storage device, the integrity and/or authenticity of the instructions and data to be used by the storage device is verified at least during the process of verifying the identity of the storage device and/or the computing device is checked.

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.The security services provided by the security server offload third party servers from securing operations and computing devices. Unauthorized access can be prevented without great effort by the manufacturers of the computing devices and the operators of the third-party servers by using the storage devices and the services of the security server. Thus, third party servers can operate their core competencies in providing their respective services without compromising security.

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.The services provided by the security server can be used by a third party to provide its subscribers with their services without the subscribers having to perform manual operations to configure the computing devices used by the subscribers. For example, a subscriber may use a computing device to access the subscribed wireless service in the subscriber's account without having to insert a physical SIM card into the computing device and/or perform other operations to customize the computing device for access using the subscriber's account .

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 Geräteidentitä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 Geräteidentitä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.Participants can be represented by identifiers of accounts. When a participant purchases a computing device, ownership of the computing device may be transferred to the participant via the security server. The security features of the storage device configured in the computing device can be used to generate a device identity. When the computing device is connected to a third party server for services, the third party server requests the security server to verify the device identity. Based on the ownership of the computing device and the ownership of the account, the computing device may be dynamically associated with the account to allow the computing device to access services provided by a third party using the account without requiring manual operations to configure the computing device are.

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 Geräteidentität der Rechenvorrichtung integriert werden oder der Geräteidentität in der Datenbank des Sicherheitsservers zugeordnet werden. Anschließend, wenn die Geräteidentitä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.For example, during the verification of the identity of the computing device, the owner/subscriber of the computing device is identified by the security server's owner management service. Once the owner/participant is identified, the identification of the participant can be integrated into the device identity of the computing device or mapped to the device identity in the database of the security server. Thereafter, when the device identity is verified, the services in the subscriber's account can be provided by the third party to the computing device without the subscriber having to explicitly direct/request the services to the computing device.

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.Optionally, the computing device may establish separate credentials with the third party server so that the third party server does not need to contact the secure server each time the computing device connects to the third party server to consume services.

1 veranschaulicht ein beispielhaftes Computersystem gemäß einigen Ausführungsformen der vorliegenden Offenbarung. 1 1 illustrates an exemplary computer system, in accordance with some embodiments of the present disclosure.

In 1 weist eine integrierte Speicherschaltungsvorrichtung 130 Sicherheitsmerkmale auf, wie oben erläutert.In 1 For example, an integrated circuit memory device 130 includes security features as discussed above.

Die sichere Speichervorrichtung 130 kann einen eindeutigen Geräteschlüssel 101 zu ihrer Authentifizierung speichern. In einem Beispiel wird der eindeutige Geräteschlü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 Geräteschlüssel 101 von einer physikalisch nicht klonbaren Funktion (PUF) der Speichervorrichtung 130 erhalten werden. Der eindeutige Geräteschlü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 Geräteschlü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 Geräteschlüssel 101 als der in der Speichervorrichtung 130 in der integrierten Speicherschaltungsvorrichtung 130 versiegelt. Eine Kopie des eindeutigen Geräteschlü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.The secure storage device 130 can store a unique device key 101 for its authentication. In one example, the unique device key 101 is injected into the storage device 130 in a secure facility and stored in a register of the storage device 130 . In another example, the device unique key 101 may be obtained from a physically unclonable function (PUF) of the storage device 130 . The device unique key 101 can be obtained and registered in the security server 140 via the secure facility. For example, the security device may be part of a memory device manufacturing facility (e.g., 130). After the storage device 130 is manufactured and/or left the secure facility, the device unique key 101 is no longer accessible through an interface (e.g., the host interface 147) in the storage device 130 . Thus, after the memory device 130 is manufactured, the unique device key 101 is sealed as that in the memory device 130 in the memory integrated circuit device 130 . A copy of the unique device key 101 is kept within the security server 140 with strong security measures (e.g. use of a hardware Security Module (HSM)) to prevent hacking and unauthorized access.

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.The storage device 130 includes a logic circuit or local controller that implements a cryptographic engine 107 . The cryptographic engine 107 can perform cryptographic calculations such as B. hashing, key derivation, encryption and / or decryption, without affecting the processing power external to the storage device 130, such. a computing device 118 of a host system 120 to be instructed.

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 Geräteschlüssels 101 und der in den Speicherzellen 103 der Speichervorrichtung 130 gespeicherten und/oder erhaltenen Geräteinformationen 121 erzeugt werden. Die Geräteinformationen 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 Geräteinformationen 121 auch zeitbezogene Informationen beinhalten.For example, according to a method specified by the Device Identity Composition Engine (DICE) and Robust Internet-of-Things (RIoT) standards or another method, cryptographic keys 105 can be generated at boot based on a combination of the unique device key 101 and the one in the memory cells 103 of the storage device 130 stored and/or received device information 121 can be generated. Device information 121 may include non-secret data that can be obtained from outside of security server 140 and storage device 130 . To improve security, device information 121 may also include time-related information.

Beispielsweise können die kryptographischen Schlüssel 105 zwei Paare von asymmetrischen kryptographischen Schlüsseln beinhalten. Ein erstes Paar asymmetrischer Schlüssel wird als Geräteidentifizierungsschlüssel bezeichnet; ein zweites Paar asymmetrischer Schlüssel wird als Alias-Schlüssel bezeichnet. Der private Geräteidentifizierungsschlü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 Geräteidentifizierungsschlüssel, um die Sicherheit in Anbetracht ihrer häufigeren Verwendung und somit des Risikos zu verbessern. Beispielsweise kann der private Geräteidentifizierungsschlüssel zu einem bestimmten Zeitpunkt erzeugt und zum Signieren von Zertifikaten verwendet werden, beispielsweise eines Zertifikats des öffentlichen Alias-Schlüssels; anschließend wird der private Geräteidentifizierungsschlüssel sofort aus der Speichervorrichtung 130 gelöscht, um seine Geheimhaltung zu gewährleisten.For example, cryptographic keys 105 may include two pairs of asymmetric cryptographic keys. A first pair of asymmetric keys is referred to as a device identification key; a second pair of asymmetric keys are called alias keys. The private device identification key is used to certify the authenticity of the alias keys, thus reducing its use and the risks associated with it. The alias keys can be used in more transactions/communications and the alias keys can be replaced more frequently than the device identification keys to improve security considering their more frequent use and thus risk. For example, the device private identification key may be generated at some point in time and used to sign certificates, such as an alias public key certificate; then the private device identification key is immediately erased from the storage device 130 to ensure its confidentiality.

Im Allgemeinen kann einer der kryptographischen Schlüssel 105, der unter Verwendung des eindeutigen Geräteschlüssels 101 und der Geräteinformationen 121 erzeugt wird, als Geheimcode und Identität der Speichervorrichtung 130 verwendet werden, der vom Sicherheitsserver 140 zu überprüfen ist.In general, one of the cryptographic keys 105 generated using the device unique key 101 and the device information 121 can be used as the secret code and identity of the storage device 130 to be verified by the security server 140.

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 Geräteschlüssel 101 aufweist und eine nicht manipulierte Version der nicht geheimen Daten speichert.The authentication of the storage device 130 can be carried out, for example, by checking whether the storage device 130 has the secret cryptographic key 105 . The secret cryptographic key 105 in the storage device 130 can be taken as proof that the storage device 130 has the unique device key 101 and stores an untampered version of the non-secret data.

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 Geräteschlü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 Geräteschlüssel 101 dargestellt wird, aufweist.Using the cryptographic key 107 , the storage device 130 can prove that the storage device 130 has the secret cryptographic key 105 without communicating the secret cryptographic key 105 and/or the device unique key 101 outside of the storage device 130 . For example, the storage device 130 may digitally sign a certificate or a message using the cryptographic secret key 105 to provide a verification code of the message and the cryptographic secret key 105 . If the security server 140 has successfully checked the verification code, the security server 140 can conclude that the storage device 130 has the secret cryptographic key 105 and thus the identity represented by the unique device key 101 .

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.The storage device 130 includes a host interface 147 that can be used to receive commands in a host system 120 . A controller 116 of the host system can send commands to the memory device 130 to read data from the memory cells 103, write data to the memory cells 103, erase data in a portion of the memory cells 103, change data in a portion of the memory cells 103, activation of a security feature of the memory device 130, configuration of parameters relevant to a security feature in the memory device 130, etc. At least some of the commands require authorization through a cryptographic key 106 stored in the security server 140. Having the cryptographic key 106 to sign the command is considered an indication of having authority to request the storage device 130 to execute the command.

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.The storage device 130 includes an access controller 109 configured to use the cryptographic engine 107 to verify a verification code generated using a cryptographic key 106 representing the authorization associated with the command. If a command with a valid verification code is received, access controller 109 allows storage device 130 to execute the command; otherwise the command can be rejected, ignored or discarded.

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.When the storage device 130 is manufactured, one or more relevant cryptographic keys 105 are stored in the storage device 130 to provide the owner's credentials to the security server 140 . Using the owner credentials, the security server 140 can sign instructions for execution on the storage device 130 to enable or disable security features, to trigger the replacement of a secret cryptographic key as the identity of the storage device 130, to replace a cryptographic key used by the access control 109 is used to check permissions, to execute one or more instructions in the memory device 130 for one or more areas of the memory cells 103, etc.

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.Optionally, after authenticating the identity of an authorized requestor, the security server 140 can sign a command using a cryptographic key to generate a verification code or digital signature for the command so that the requestor can transmit the command with the verification code to the host interface 147 of the Storage device 130 may send to cause the command to be executed in storage device 130.

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.Optionally, the security server 140 can provide certain permissions to an entity by replacing a cryptographic key 105 in the storage device 130 or providing the entity with a corresponding cryptographic key 106 representing the permissions.

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, ein intelligentes Gerät, ein IoT-Gerät (Internet der Dinge) usw.Typically, the storage device 130 is connected to a host system 120 to form a terminal 150 in a communications network 110, such as the Internet. In general, terminal 150 is a computing device. Examples of the terminal device 150 include a personal computer, a mobile computer, a personal media player, a tablet computer, a smartphone, a smart TV, a smart speaker, a smart device, an IoT (Internet of Things) device, etc .

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.The memory cells 103 of the storage device 130 may provide the storage/memory capacity for the host system 120 to store instructions and data for the implementation of the terminal 150 functionality. For example, processing device 118 of host system 120 is configured to execute instructions loaded from storage device 130 for booting and performing operations.

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.The host system 120 may include a network interface 114 or other communication device to communicate with one or more client-servers 141,...,143 to receive services from the client-servers 141,...,143 .

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.A request for services sent from terminal 150 to client-server 141 may include identity data generated by cryptographic engine 107 of storage device 130 . The client-server 141 can request the security server 140 to check the verification code contained in the identity data.

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 Geräte, zum Deaktivieren verlorener/gestohlener Geräte usw. bieten.In addition to services for authenticating the identity of storage device 130, security server 140 may provide security services for managing permissions to operate storage device 130, configuring or changing security features or settings of storage device 130, detecting lost/stolen devices, disabling lost/ stolen devices etc. offer.

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.The storage device 130 and/or the terminal device 150 can have a unique identification 111 that is not secret. Unique identifier 111 may be used to uniquely identify storage device 130 and/or endpoint 150 in a population of storage devices and/or endpoints.

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 Geräteschlüssel erzeugt werden.For example, the unique identifier 111 of the storage device 130 may include a manufacturer's number (MPN) of the storage device 130 and/or a serial number of the storage device 130 . For example, the unique identifier 111 of the storage device 130 may include a public key in a pair of asymmetric cryptographic keys that are generated based at least in part on the device unique key.

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 Geräteschlüssels 101 in der Speichervorrichtung 130 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 Geräteschlüssel 101 erzeugt.To authenticate that the storage device 130 and/or the terminal 150 has the identity represented by the unique identifier 111, the security server verifies 140 a message containing the unique identifier 111 (and other data 127) via a verification code of the message signed using a secret cryptographic key 105 of the storage device. The secret cryptographic key 105 in the storage device 130 is generated using the unique device key 101 in the storage device 130; and the corresponding cryptographic key 106 used to check a verification code signed with the secret cryptographic key 105 of the storage device 130 is generated in the security server 140 from the corresponding device unique key 101 .

Der geheime kryptographische Schlüssel 105 der Speichervorrichtung 130, der zum Nachweis der Geräteidentität der Speichervorrichtung 130 verwendet wird, kann nicht nur basierend auf dem eindeutigen Geräteschlüssel 101, sondern auch auf den der Speichervorrichtung 130 zugänglichen Geräteinformationen 121 erzeugt werden.The secret cryptographic key 105 of the storage device 130, which is used to prove the device identity of the storage device 130, can be generated based not only on the unique device key 101, but also on the device information 121 accessible to the storage device 130.

Die Geräteinformationen 121 können beispielsweise einen Hash-Wert von Anweisungen und/oder Daten beinhalten, die in den Speicherzellen 103 gespeichert sind. Ferner können die Geräteinformationen 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 Geräteinformationen 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 Bootvorgangs können die Identifizierungsdaten als Geräteinformationen 121 gesammelt werden, die zum Erzeugen des geheimen kryptographischen Schlüssels 105 in der Speichervorrichtung 130 verwendet werden.Device information 121 may include, for example, a hash value of instructions and/or data stored in memory cells 103 . Furthermore, the device information 121 may include trace data stored in the memory cells 103 in order to personalize/individualize the memory device 130 and/or the terminal device 150 during the arrangement of the components to build the terminal device 150 . Furthermore, the device information 121 may include identification information of other components in the terminal device 150, such as e.g. B. an identification of the controller 116, an identification of the processing device 118, an identification of the network interface 114, an identification of additional software or data packets of the terminal device 150 that are not stored in the storage device 130, and / or an identification and / or a Hash value of the firmware configured to control/operate the storage device 130. During the boot process, the identification data can be collected as device information 121 that is used to generate the secret cryptographic key 105 in the storage device 130 .

In einem Registrierungsprozess, wenn die Speichervorrichtung 130 so konfiguriert ist, dass sie die Geräteinformationen 121 aufweist, wird eine Kopie der Geräteinformationen 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 Geräteinformationen 121 kann die Identität der Speichervorrichtung 130 mit der Daten-, Software- und/oder Hardwarekonfiguration verknüpft werden, die durch die Kombination des eindeutigen Geräteschlüssels 101 mit den Geräteinformationen 121 dargestellt wird.In a registration process, when the storage device 130 is configured to have the device information 121, a copy of the device information 121 is uploaded to the security server 140 to associate it with the unique identifier 111 of the storage device 130 and/or the terminal 150. By registering the device information 121, the identity of the storage device 130 can be linked to the data, software, and/or hardware configuration represented by the combination of the unique device key 101 and the device information 121.

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. 2 12 illustrates generation of identity data in an integrated circuit memory device according to one embodiment. For example, the technique of 2 be implemented in the computer system by 1 .

In 2 wird die kryptographische Engine 107 einer Speichervorrichtung 130 (z. B. wie in 1) verwendet, um zumindest einen kryptographischen Schlüssel 137 unter Verwendung ihres eindeutigen Geräteschlüssels 101 und der Geräteinformationen 121 zu erzeugen.In 2 the cryptographic engine 107 of a storage device 130 (e.g. as in 1 ) is used to generate at least one cryptographic key 137 using its unique device key 101 and device information 121.

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.For example, when using asymmetric cryptography, the secret key 137 is a private key of a cryptographic key pair 135. An associated public key 139 is generated using the cryptographic engine 107 along with the private key.

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.Alternatively, if symmetric cryptography is used, the secret key 137 can be generated and used without a public key 139 and without the key pair 135.

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 Geräteidentifizierungsschlüssel und ein zweites Paar asymmetrischer Schlüssel als Alias-Schlüssel bezeichnet. Der private Geräteidentifizierungsschlü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 Geräteidentifizierungsschlü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 Geräteidentifizierungsschlüssel kann beispielsweise zu einem bestimmten Zeitpunkt 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 Geräteidentifizierungsschlü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.In some implementations, multiple key pairs 135 are generated and used. For example, when using a Device Identity Composition Engine (DICE) and Robust Internet-of-Things (RIoT) technique, a first pair of asymmetric keys is called a device identification key and a second pair of asymmetric keys is called an alias key. The private device identification key can be used to certify the authenticity of the alias keys and then immediately deleted and sanitized from the storage device 130 and/or the terminal 150 to ensure its confidentiality, particularly when generating or using the private Device identification key takes place at least in part in the host system 120. The alias keys can be used for authentication in further transactions and/or communications. For example, the private device identification key may be generated at some point in time and used to sign certificates, such as an alias public key certificate, and is then deleted. After the identity of the storage device 130 and the authentication of the alias public key using the certificates signed with the private device identification key as the secret key 137 verified or confirmed, the alias private key can be used as the secret key 137 of the storage device 130 in subsequent operations until the terminal 150 reboots.

Die in den Speicherzellen 103 gespeicherten Daten 123 für die Geräteinformationen 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.The data 123 stored in the memory cells 103 for the device information 121 can include, for example, an instruction set (e.g. software, firmware, operating system, application) that is executed by the processing device 118 of the host system 120 with which the host interface 147 of the Storage device 130 is connected to be executed.

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 Geräteinformationen 121 verwendet werden, um den geheimen Schlüssel 137 zu berechnen.The data 123 may include, for example, a cryptographic hash of the instruction set. For example, a known hash value of the instruction set may be stored in memory cells 103; and the current hash value of the instruction set can be calculated for comparison to the known hash value. If the two hashes match, the integrity of the instruction set is checked and the hash of the integrity of the instruction set can be used as part of the device information 121 to calculate the secret key 137 .

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.Alternatively, the current hash value of the instruction set stored in the memory cells 103 can be used directly for the calculation of the secret key 137. If the instructions contain changes (e.g., due to data corruption and/or tampering or hacking), verification of the secret key 137 by the security server 140 will fail.

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.Optionally, record 123 may include an identification of the set of instructions, such as a hash of the source code of the instructions, a name of the software/firmware package represented by the instructions, a version number and/or release date of the package, etc.

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 Geräteinformationen 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 Geräteinformationen 121 hinzugefügt. Ferner können Trace-Daten in die Speicherzellen 103 als Teil der Geräteinformationen 121 hinzugefügt werden, um den Verlauf der Speichervorrichtung 130 zur Individualisierung der Identität der Speichervorrichtung 130 zu reflektieren.Optionally, the data 123 may include trace data stored in the memory cells 103 during the process of building and/or customizing the terminal 150 that includes the memory device 130 . For example, when storage device 130 is incorporated into a component device (e.g., a storage subsystem), a portion of trace data representing the manufacturer of the component device, the model of the component device, and/or the serial number of the component device is written to the Memory cells 103 stored as part of the device information 121. Subsequently, when the component device is built into the terminal device 150, part of the trace data is added into the memory cells as part of the device information 121. FIG. Furthermore, trace data may be added into the memory cells 103 as part of the device information 121 to reflect the history of the memory device 130 for individualizing the identity of the memory device 130 .

Wahlweise können die Geräteinformationen 121 ferner Daten 125 beinhalten, die in dem Host-System 120 empfangen wurden, mit dem die Host-Schnittstelle 147 der Speichervorrichtung 130 verbunden ist.Optionally, the device information 121 may further include data 125 received at the host system 120 to which the host interface 147 of the storage device 130 is connected.

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 zum Zeitpunkt des Hochfahrens in dem Host-System 120 vorliegen. Somit können die Geräteinformationen 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 Geräteinformationen 121 und dem eindeutigen Geräteschlüssel 101 erzeugt wird, stellt die Identität der Speichervorrichtung 130 mit der jeweiligen Konfiguration dar.The terminal 150 may include the host system 120 and the storage device 130, for example. Some of the host system 120 components may be removed or replaced. At terminal 150 power-up, a portion of the instructions stored in memory cell 103 are executed to collect data 125 about the components present in host system 120 at the time of power-up. Thus, device information 121 may represent a particular configuration of software/data and hardware combinations of storage device 130 and/or terminal 150 . The secret key 137, which is generated based on the device information 121 and the unique device key 101, represents the identity of the storage device 130 with the respective configuration.

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.In order to represent the identity of the storage device 130 and/or the terminal device 150, the cryptography engine 107 generates a verification code 133 from a message 131 and the secret key 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.As discussed above, the verification code 133 of the secret key 137 and the message 131 may be constructed and/or checked using various techniques, such as a hash digest, digital signature or hash-based message authentication code, symmetric cryptography, and/or asymmetric cryptography . Thus, verification code 133 is not limited to any particular implementation.

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.Optionally, message 131 may include user identification, such as a name, email address, registered username, or other identifier of an owner or authorized user of terminal 150 in which identity data 113 is generated.

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.Optionally, a portion of message 131 may provide information in encrypted form. For example, the information can be encrypted with a public key of the security server 140 so that a third party cannot access the information.

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.The message 131 can be a certificate in which the unique identification 111 of the storage device 130 and/or the end device 150 is present. The message 131 can also contain other data 127, for example a counter value maintained in the storage device 130, a cryptographic nonce and/or other information relating to the verification of the identity data 113. The storage device 130 may monotonically increase the counter value to invalidate identity data having lower portions to prevent replay attacks.

In einigen Implementierungen können die Daten 127 einen Teil der Geräteinformationen 121 beinhalten, die zum Erzeugen des geheimen Schlüssels 137 verwendet werden.In some implementations, data 127 may include a portion of device information 121 used to generate secret key 137 .

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 Geräteidentifizierungsschlü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 Geräteidentifizierungsschlü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.In some implementations, secret key 137 is an alias private key in an asymmetric key pair. The data 127 contain a certificate in which the corresponding public alias key of the asymmetric key pair is present. The certificate representing the alias public key is signed using a device identification key of the storage device 130 . The alias public key can be used to verify the verification code 133 for the message 131 and the alias private key used as the secret key 137 . Once the security server 140 has verified the certificate representing the alias public key signed using the device identification key of the storage device 130 and provided as part of the data 127, the security server 140 can use the alias public key to verify the verification code 133 which was signed as secret key 137 using the alias private key. In such an implementation, security server 140 may use the alias public key provided in message 131 to verify verification code 133 without regenerating the alias key pair; and storage 130 may generate alias key pair 135 using data unknown to security server 140 .

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 Geräteidentifizierungsschlüssel ist, der unter Verwendung der Geräteinformationen 121 und des eindeutigen Geräteschlü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.The certificate representing the public alias key can be used as in 2 generated and verified, where the secret key 137 is the device identification key generated using the device information 121 and the device unique key 101 . Optionally, the storage device 130 first provides the security server 140 with the certificate comprising the alias public key. Then, the storage device 130 can use the alias private key as the secret key 137 without including the alias public key in the message 131 or without including the certificate of the alias public key in the message 131 .

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.The data 127 in the message 131 signed to generate the verification code 133 may include a challenge. For example, to induce the storage device 130 to demonstrate that it is in possession of a secret key 137, a random piece of data may be represented as part of the data 127 to be signed using the secret key 137. In some implementations, a monotonically increasing counter value can be used as a challenge.

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 Geräteidentifizierungsschlü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 Geräteidentifizierungsschlü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.Further, verifying the identity of storage device 130 may include using multiple secret keys and verification codes signed using the secret keys. For example, a device identification secret may be used to first establish authentication of an alias secret and the identity of storage device 130; and then the alias secret key can be used to verify the authentication of the storage device 130 identity. In general, since the security server 140 can generate the corresponding cryptographic keys with the storage device 130, the device identification secret and the alias secret key can be based on asymmetric cryptography or symmetric cryptography.

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 kryptographischen Schlüssels 137 wird unter Verwendung der Logikschaltung der Kryptographie-Engine 107 durchgeführt, die in der Speichervorrichtung 130 versiegelt ist.To enhance security, storage device 130 does not use processing power external to storage device 130 to generate its copy of secret key 137, and does not communicate secret key 137 external to storage device 130. The generation and use of cryptographic key 137 is accomplished using logic circuitry performed by the cryptographic engine 107 sealed in the storage device 130.

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.Alternatively, part of the operations for generating and using the secret key 137 can be performed via an instruction set stored in the memory cells 103 and incorporated into the processing device 118 of host system 120 is loaded for execution. To improve security, the secret key 137 is not communicated over the host interface 147 in the clear; and the instructions may be configured to delete the secret key 137 from the host system 120 after it is generated and/or after it is used.

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 Boot-Loaders). 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.The identity data 113 may be generated in response to the storage device 130 being powered on, in response to a request received in the host interface 147, and/or in response to the terminal device 150 being powered up (e.g. by executing an in the memory cells 103 saved boot loader). Data 127 may include a count maintained in storage device 130 . The count increases when the operation for generating the identity data 113 is performed. Thus, a version of the identity data 113 has a count that invalidates previous versions of the identity data 113 that have counts less than the count.

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. 3 FIG. 11 illustrates a technique for controlling execution of an instruction in a memory device, according to one embodiment. The technique of 3 can, for example, in the computer system of 1 be implemented and used with the technique of 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.In 3 When the controller 116 of the host system 120 sends a command 155 to the host interface 147 of the storage device 130, the access controller 109 determines whether the sender of the command 155 has permission to request the storage device 130 to execute the command 155.

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.A cryptographic key 145 is configured to represent the credential. A sender of the command 155 can generate a verification code 153 from the cryptographic key 145 and a message 151 containing the command 155 .

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.As explained above, the verification code 153 of the cryptographic key 145 and the message 151 can be constructed and/or checked using various techniques, such as a hash digest, a digital signature or a hash-based message authentication code, symmetric cryptography and/or asymmetric cryptography . Thus, verification code 153 is not limited to any particular implementation.

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.The access controller 109 uses a corresponding access control key 149 to verify the verification code 153 transmitted to the host interface 147 for the command 155. The access controller 109 uses the cryptographic engine 107 to generate a verification result 159 of the received message 151 and the received verification code 153 . Based on the validation result 159, the access controller 109 can selectively allow the execution of the instruction 155 in the storage device 130 or block the execution of the instruction 155.

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.The access control key 149 can be one of the cryptographic keys 105 stored in the storage device 130, for example. Different access control keys can be used to control different permissions to execute different commands and/or to execute a command operating on different portions of memory cells 103 .

Der kryptographische Schlüssel 145 kann beispielsweise in dem Sicherheitsserver 140 gespeichert sein, um die zugeordnete Berechtigung an den Sicherheitsserver 140 bereitzustellen.For example, the cryptographic key 145 may be stored in the security server 140 to provide the associated credential to the security server 140 .

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.In one embodiment, security server 140 is configured to generate verification code 153 on behalf of an entity in response to the entity requesting verification code 153 to execute command 155 on storage device 130 .

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 das Gerät 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.Optionally, cryptographic key 145 is generated upon verification of identity data 113 created using secret key 137; and a secret code (e.g. secret key 137) known between the storage device 130 and the security server 140 enables a session key to be generated as a cryptographic key 145 in order to authorize the execution of selected commands in the storage device 130 during a communication session presented with a time limit. Optionally, the amount of time the device is powered on can be used as a session delimiter so that on the next power-on a new count is generated to cause a new session key to be generated.

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.The cryptographic key 145 can be configured to be valid for a short time after verification of the identity data 113 and establishment of the session key. After the security server 140 has verified that the entity is authorized to execute the command 155 in the storage device 130, the security server 140 may generate the verification code 153 gen and provide it to the entity. The entity can then send message 151 and verification code 153 to host interface 147 . Once the access controller 109 of the storage device 130 determines that the verification code 153 is valid using the cryptographic key 107 and the access control key 149, the validation result 159 allows the storage device 130 to execute the received command 155; otherwise, access control 109 may reject or ignore received command 155.

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.In another embodiment, the security server 140, after configuring the access control key 149 in the storage device 130, may provide the entity with the cryptographic key 145 representing authorization to execute the command 155 in the storage device 130.

Die Nachricht 151 kann Daten 157 beinhalten, die Einschränkungen für die Anforderung zum Ausführen des Befehls 155 darstellen.Message 151 may include data 157 representing constraints on the request to execute command 155 .

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.For example, data value 157 may include an execution count value that is maintained in storage device 130 such that verification codes generated for lower counts are invalid.

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.For example, the data 157 may include a cryptographic nonce specifically established for a specific instance of a request to execute the instruction 155 such that the verification code 153 cannot be reused for another instance.

Die Daten 157 können beispielsweise ein Zeitfenster beinhalten, in dem der Verifizierungscode 153 überprüft wird.The data 157 can include, for example, a time window in which the verification code 153 is checked.

Die Daten 157 können beispielsweise die Identifizierung eines Speicherbereichs beinhalten, in dem der Befehl 155 zum Ausführen erlaubt ist.The data 157 can include, for example, the identification of a memory area in which the instruction 155 is permitted to be executed.

Die Daten 157 können beispielsweise eine Art von Operationen beinhalten, die zum Ausführen des Befehls 155 in der Speichervorrichtung 130 erlaubt sind.Data 157 may include, for example, any type of operations allowed for execution of instruction 155 in storage device 130 .

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. 4 12 illustrates a technique for verifying an integrity of data stored in memory, according to one embodiment. The technique of 4 may be, for example, in memory device 130 of FIG 1 be used and in conjunction with the techniques of 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ätigIn 4 the storage device 130 not only stores the content 161 in the storage cells 103, but also a hash value 163 of the content 161. In order to determine the integrity status 165 of the content 161, the cryptographic engine 107 applies a cryptographic hash function to the content 161 to generate the current hash value of the content 161; and the cryptographic engine 107 compares the current hash value and the stored hash value 163 to determine if they are equal. If so, the integrity of the content 161 is confirmed according to the stored hash value 163

Der Hash-Wert 163 kann als Teil der Geräteinformationen 121 gespeichert werden, die zum Erzeugen des geheimen Schlüssels 137 für die Überprüfung der Identität der Speichervorrichtung 130 verwendet werden.The hash value 163 may be stored as part of the device information 121 used to generate the secret key 137 for verifying the identity of the storage device 130 .

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.The content 161 and the hash value 163 are stored in different sections of the storage device 130 . The access controller 109 provides and/or enforces various levels of authorization for access to the content 161 and the hash value 163 .

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 speichern. 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.For example, a manufacturer of the terminal 150 may store the content 161 in the memory cells 103 so that the processing device 118 of the host system 120 in the terminal 150 may execute a program or routine in the content 161 to provide a developed terminal 150 function. Furthermore, the manufacturer and/or the security server 140 can store the hash value 163 in a separate section for integrity checking. An end user of the terminal 150 can access and use the content 161 in the memory cells, but cannot access the hash value 163. If the Content 161 is corrupted or tampered with, the cryptographic engine 107 can detect the change and generate an integrity status 165 to cause the access controller 109 to prevent the Content 161 from being used. If the manufacturer has an updated version of the content 161 (or a replacement), he can perform the update in the memory cells 103 and issue a command 155 with a verification code 153 to update the hash value 163 . Optionally, the security server 140 can generate the verification code 153 in response to a request from the manufacturer.

Die Geräteinformationen 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.The device information 121 and the cryptographic keys 105 in the storage device 130 can be stored in a secured area in the storage device 130 and protected via the access controller 109 by permissions of the owner, which are granted by an in cryptographic key 106 stored on the security server 140.

Verschiedene Geheimcodes (z. B. eindeutige Geräteschlüssel 101, Geheimschlüssel 137) und Inhalte (z. B. Geräteinformationen 121, Inhalte 161) können auf unterschiedlichen Sicherheitsstufen und/oder mit unterschiedlichen Sicherheitsstrategien geschützt werden, um Sicherheit und Nutzen auszugleichen.Different secrets (e.g., device unique keys 101, secrets 137) and content (e.g., device information 121, content 161) can be protected at different security levels and/or with different security strategies to balance security and utility.

Der eindeutige Geräteschlü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 Geräteschlü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 Geräteschlü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 Geräteschlüssel 101 kann beispielsweise so konfiguriert sein, dass er beim Hochfahren des Endgeräts 150 nur für eine begrenzte Zeit verfügbar ist.The device unique key 101 can be protected in the storage device 130 in the highest security level. For example, once storage device 130 exits a secure storage device manufacturing facility and/or upon completion of operations to manufacture storage device 130, unique device key 101 is no longer accessible via a command to host interface 147 (and/or any interface of storage device 130 ) changeable. Preferably, the unique device key 101 is only accessible to the cryptographic engine 107 during generation of the secret keys (e.g., 137) used to represent the identity of the storage device 130 and/or the terminal 150. For example, the unique device key 101 can be configured such that it is only available for a limited time when the terminal device 150 boots up.

So kann beispielsweise ein Geräteidentifizierungsschlü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 Geräteidentifizierungsschlüssel. Es können verschiedene Operationen und/oder Berechtigungen zum Ersetzen des Geräteidentifizierungsschlüssels und des Alias-Identifizierungsschlüssels verwendet werden.For example, a device identification key can be secured by keeping its use to a minimum. An alias identification key can be better secured if it is replaced more frequently than the device identification key. Different operations and/or permissions can be used to replace the device identification key and the alias identification key.

5 veranschaulicht Sicherheitsdienste eines Sicherheitsservers, die einem Client-Server basierend auf Sicherheitsmerkmalen bereitgestellt werden, die in einer Speichervorrichtung gemäß einer Ausführungsform implementiert sind. 5 illustrates security services of a security server provided to a client-server based on security features implemented in a storage device according to an embodiment.

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.For example, the in 5 illustrated security services in the computer system of 1 based on the in the 2 , 3 , and/or 4 illustrated security features are implemented.

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.In 5 a client-server 141 is configured to provide services to computing devices such as B. a terminal 150 having a storage device 130 connected to a host system 120, as in FIG 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.To request a service from client-server 141 , host system 120 requests (e.g., executes instructions retrieved from storage device 130 ) identity data 113 on storage device 130 . The identity data 113 can be generated, for example, in a manner as illustrated in FIG 2 .

Das Host-System 120 bettet die Identitätsdaten 113 in die an den Client-Server 141 übermittelte Anforderung 171 ein.The host system 120 embeds the identity data 113 in the request 171 transmitted to the client-server 141 .

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.In order to determine whether the terminal 150 is entitled to services, the client-server 141 extracts the identity data 113 from the request 171 and generates a request 173 for the security server 140 to provide security services based on the identity data 113 .

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.The security server 140 can perform a verification of the identity data 113, determine whether the authenticity of the storage device 130 and/or the terminal 150 is given, and provide a result in the response 174 to the client-server 141. Based on the result, the client-server 141 can provide a response 172 to the host system 120 .

In der Antwort 174 kann beispielsweise angegeben werden, ob die Identitätsdaten 113 von einem gefälschten Gerät oder von einem Gerät stammen, bei dem 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 ein verlorenes oder gestohlenes Gerät handelt.Response 174 can indicate, for example, whether the identity data 113 originates from a counterfeit device or from a device in which the data 123 or the content 161 relevant to the identity of the end device 150 and/or the storage device 130 has changed , has been tampered with or tampered with, or if the device is lost or stolen.

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.In some implementations, request 173 may identify an instruction 155 to be executed on storage device 130 . After verifying the identity data 113 and verifying the authorization of the client-server 141 and/or the terminal 150 to request the command 155 to be executed in the storage device 130, the security server 140 can generate a verification code 153 for the command 155 using the cryptographic key 145 and provide verification code 153 in response 174 to client-server 141. Using the security service, the client-server 141 can be relieved of the security burdens associated with managing the credentials and the cryptographic key 145 representing the credentials.

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.Optionally, response 174 may include cryptographic key 145 having permissions to execute command 155 on storage device 130 . For reduced security burdens on the client-server 141 the cryptographic key 145 may be configured to expire in a short period of time.

Wahlweise kann, wenn bestimmt wird, dass die Identitätsdaten 113 einem verlorenen oder gestohlenen Gerät 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.Optionally, if it is determined that identity data 113 is associated with a lost or stolen device, response 174 may include a command 155 and/or its verification code 153 such that when command 155 is executed in storage device 130, access controller 109 at least may disable some functions accessible to the host system 120 via the host interface 147.

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 Boot-Loader deaktiviert wird.For example, after executing instruction 155 in memory device 130, access controller 109 may be configured to disable the boot loader stored in memory cells 103 of memory device 130.

Der Befehl 155 kann beispielsweise die Zugriffssteuerung 109 dazu veranlassen, den Zugriff auf einen oder mehrere Abschnitte der Speicherzellen 103 zu blockieren.For example, command 155 may cause access controller 109 to block access to one or more portions of memory cells 103 .

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.For example, the command 155 may cause the access controller 109 to request permissions in the form of a new cryptographic key 106 stored in the security server 140 in order to access one or more portions of the storage cells 103 .

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.For example, command 155 may cause access controller 109 to destroy data in one or more sections of memory cells by sanitizing a decryption key used to decrypt data stored in the one or more sections.

Der Befehl 155 kann beispielsweise veranlassen, dass sich die Speichervorrichtung 130 selbst zerstört und irreversibel beschädigt wird.For example, command 155 may cause storage device 130 to self-destruct and become irreversibly damaged.

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.The instructions retrieved from memory cells 103 for execution in host system 120 may include a routine that accepts command 155 in response to identity data 113 being provided to storage device 130 . In some implementations, client-server 141 may provide a connection that enables security server 140 to send command 155 to storage device 130 for execution.

Die oben erläuterten Techniken können verwendet werden, um neue Wege zum Authentifizieren von Dienstteilnehmern zu implementieren.The techniques discussed above can be used to implement new ways of authenticating service subscribers.

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 Geräteschlü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 im Netzwerk 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 Cloud-basierten Teilnehmeridentitätsmodul-(SIM)-Funktion beim Onboarding, Netzwerkzugriff und der Registrierung eines Cloud-Dienstes, beispielsweise eines Mobilfunk-Abonnementdienstes, verwendet werden.For example, a storage device 130 may be configured to generate in the terminal 150 a multi-factor device platform identity with enhanced security. The identity can be established by combining a unique device key 101 of the storage device 130, a platform source code that identifies one or more applications running on the terminal device 150 to establish a secure connection to a service or network (e.g. a client-server 141 or 143) and a unique identifier of a network interface 114 or communication device. A unique identifier can be, for example, the identifier of a modem that is installed on the terminal device 150 for communication in the network 110 . For example, the multi-factor device platform identity may be based at least in part on an International Mobile Equipment Identity (IMEI) number for a terminal 150 configured to access cellular services. For example, if the terminal 150 includes a vehicle, the multi-factor device platform identity may be based at least in part on a vehicle identification number (VIN). Such a strong identity can be used in conjunction with a cloud-based Subscriber Identity Module (SIM) function during onboarding, network access, and registration of a cloud service, such as a cellular subscription service.

Der Sicherheitsserver 140 und die Sicherheitsmerkmale der Speichervorrichtungen (z. B. 130) können eine sichere Technologieplattform für Speichervorrichtungen 130 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.The security server 140 and the security features of the storage devices (e.g., 130) may provide a secure technology platform for storage devices 130. The platform can be configured to support authentication of end devices 150 by measuring data stored in memory cells 103 of secure storage devices (e.g. 130). Additional cyber security protection for end devices can be achieved by controlling access to the content 161 stored in the storage devices (e.g. 130). Access control can be implemented through secure hardware manufacturing operations and cryptographic-based authorization control, as described above in connection with 1 until 5 was explained. A platform equipped with such storage devices (e.g. 130) can achieve a sufficient level of cybersecurity to support a cloud-based virtual SIM solution and the need for a physical SIM card in a terminal 150 to access to eliminate a cellular connection.

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.The secure storage device technology platform may include a combination of secure storage devices (e.g., 130) and software that meets the DICE RIoT requirements to generate identity data 113 for end devices (e.g., 150) that use the secure storage devices for use boot. This identity data 113 of a terminal 150 are generated based on the identity of the storage device 130 used in memory to boot the terminal 150 and other factors. This identity data 113 can be passed to a client-server 141 during onboarding (e.g. to register for a service). The client-server 141 can communicate with the security server 140 to confirm the identity of the terminal 150 . If the identity data 113 is checked, the client-server 141 can trust that the terminal 150 is authentic and thus register a service for the terminal 150 .

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.Such a service can be, for example, a cellular connection, which is traditionally registered on physical SIM cards. The identity data 113 verified by the secure storage device technology platform and backed by secure onboarding can provide identification of end devices (e.g. 150) in a manner that is as secure or even more secure than using physical SIM cards to identify end devices . A cloud-based virtual SIM card may be bound to identity data 113 verified by the secure storage device technology platform for the duration of the service subscription.

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 Schaltkreis-Chip konfiguriert, der in eine Plastikkarte eingebettet ist. Der integrierte Schaltkreis-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 Schaltkreis-Chip kann über Metallkontakte, die in einem Bereich der Oberfläche der Plastikkarte konfiguriert sind, und/oder einen drahtlosen Transceiver ausgelesen werden.Typically, a subscriber can be recognized by a network (eg, a payment card network, a cellular network) via a smart card. A traditional smart card is configured as an integrated circuit chip embedded in a plastic card. The integrated circuit chip in the smart card stores data identifying a customer's account and may optionally store data related to network-provided services for the account. The integrated circuit chip can be read via metal contacts configured in an area of the surface of the plastic card and/or a wireless transceiver.

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.For example, a subscriber identification module (SIM) (also known as a SIM card) is a type of smart card. A SIM card is typically used in a mobile phone to identify an account for accessing the services of a mobile network. When the SIM card is attached to a mobile phone, the cellular communication network provides services to the mobile phone that correspond to an account identified by the SIM card. If the SIM card is attached to a backup mobile phone, the backup mobile phone can access the services configured for the account.

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.For example, a SIM card may store the identity of a mobile subscriber, such as the International Mobile Subscriber Identity (IMSI) number. The operator of a mobile network or a cellular network can assign an authentication key to the IMSI number and the SIM card. The authentication key is stored on the SIM card. The SIM card can be authenticated based on digital signatures used with the authentication key. After authentication of the SIM card, the mobile phone that has the SIM card can receive mobile/cellular services on the account associated with the identity of the mobile subscriber.

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.Europay MasterCard Visa (EMV) cards are another example of smart cards. EMV cards can be used to receive financial services on a card processing network to access bank accounts such as debit accounts and credit accounts.

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.The integrated circuit memory device 130 can be configured to prevent unauthorized access to its memory cells 103 and to ensure a unique identity of the memory device 130 itself and/or a terminal 150 in which the memory device 130 is installed. A secure storage device 130 having security features can be used to implement the functionality of smart cards, such as SIM cards and EMV cards, by using data provided to the secure storage devices remotely and/or by Data are used that are stored in memory, as in 6 .

6 zeigt ein System und Verfahren zum Konfigurieren und Authentifizieren eines Endgeräts für einen kartenbasierten Dienst gemäß einer Ausführungsform. 6 shows a system and method for configuring and authenticating a terminal device for a card-based service according to an embodiment.

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.For example, the system and method of 6 in the computer system of 1 be implemented using the techniques of 2 until 5 be used.

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.In 6 For example, the memory device 130 can be implemented using the integrated circuit memory device 130 that incorporates the security features of the 1 until 5 having. An access controller 109 of the storage device 130 may use one or more access control keys 213 to control read and write operations for access to at least some storage areas in the storage device 130 .

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 Geräteidentitätsdaten 211 beinhaltet, welche die Speichervorrichtung 130 in einer Population von Speichervorrichtungen eindeutig identifizieren.For example, the storage device 130 is first manufactured with an access control key 213 to allow the security server 140 to have full access to the storage areas in the storage device 130 . The storage device 130 is further manufactured to include at least a portion of device identity data 211 that uniquely identifies the storage device 130 in a population of storage devices.

Die Geräteidentitätsdaten 211 können beispielsweise mit einer Technik erzeugt werden, wie veranschaulicht in 2.The device identity data 211 can be generated, for example, using a technique as illustrated 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 Geräteschlü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.For example, during the manufacture of the storage device 130 in the storage registration 231 operation, a root code (e.g., a unique device key 101) of the storage device 130 is loaded into a security server 140 . The root code may be a number generated by a physical unclonable function (PUF) of memory device 130 or a random number selected and stored in memory device 130 during manufacturing of memory device 130 . The security server 140 may include a key management server configured to manage the cryptographic keys of secure storage devices (e.g., 130). The root code can be considered and/or used as a secret cryptographic key. During the manufacture of the storage device 130, the root code may be obtained from the storage device 130 or injected into the storage device 130 for storage registration 231. The memory 130 is preferably manufactured in such a way that the storage device 130 does not provide the root code outside of the storage device 130 after its manufacture.

Die Geräteidentitätsdaten 211 können ein Root-Code sein, der nicht offengelegt, nicht geändert und nicht außerhalb der Speichervorrichtung 130 bereitgestellt wird.The device identity data 211 may be a root code that is not disclosed, not modified, and not provided outside of the storage device 130 .

Nachdem die Speichervorrichtung 130 die Fertigungseinrichtung verlassen hat, sind der Root-Code und andere Geheiminformationen in den Geräteidentitä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.After the storage device 130 leaves the manufacturing facility, the root code and other secret information in the device identity data 211 is no longer available through the communication interface (e.g., the host interface 147) of the storage device 130. Because storage device 130 enforces a data access policy to prevent leakage of secret information and manipulation of data stored in the restricted areas of storage device 130, storage device 130 can be considered a secure storage device. The security server 140 stores information that can replicate the calculation performed by the storage device 130 to generate the derived codes independently of the storage device 130 . The security server 140 can thus regenerate the derived codes of the storage device 130 without the storage device 130 transmitting the derived codes via its communication interface (e.g., the host interface 147).

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 Geräteidentitä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 Geräteschlüssels (UDS) 101 verwendet werden, der sicher zwischen der Vorrichtung und dem Sicherheitsserver ausgetauscht werden kann.The root code of the storage device 130 may be implemented using a physical unclonable function (PUF), for example. The root code of storage device 130 may be retrieved from storage device 130 and stored in security server 140 for storage registration 231 during manufacture of storage device 130 . The root code can be used to generate a derived code from the device identity data 211 . For example, the PUF can be used to derive a Diffie-Hellman key pair; and the Diffie-Hellman key pair can be used to create the Device Unique Key (UDS) 101, which can be securely exchanged between the device and the security server.

Die Geräteidentitätsdaten 211 können beispielsweise mit einer Technik erzeugt werden, wie in 2.The device identity data 211 can be generated with a technique, for example, as 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.The derived code is generated in such a way (e.g. based on a cryptographic hash function, a random number and/or a monotonic count) that the root code is not derived from the derived code and/or other information used in generating the derived codes were used can be calculated. For example, the derived code may include a private key of a pair of asymmetric cryptographic keys. For example, the derived code may include a symmetric cryptographic key.

Die Geräteidentitä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.The device identity data 211 may include a non-secret, public identification number of the storage device 130, such as a serial number of the storage device 130, a unique identification number of the storage device 130, and/or a public key of an asymmetric cryptographic key pair, etc. The publication identification number can be used to uniquely identify the storage device 130 in a population of storage devices without revealing the secret information of the storage device 130; and the secret information of the storage device 130 can be used in authentication/verification, that the storage device 130 is the one identified by the public identification number.

Abgeleitete Codes in den Geräteidentitä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.Derived codes in device identity data 211 may be generated and/or replaced after storage device 130 leaves the manufacturing facility. The access control key 213 can be used to control the execution of the operations to create and/or replace the derived codes to prevent tampering. The derived codes may include, for example, cryptographic keys and/or certificates generated according to a Device Identity Composition Engine (DICE) standard.

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.During storage registration 231 , at least the root code of storage device 130 is stored in security server 140 in association with a public identification number of storage device 130 . The root code of the storage device 130 is known between the storage device 130 and the security server 140 during storage registration 231 in a secure environment when the storage device 130 is manufactured. Thereafter, additional information used to generate derivative codes may be public without compromising confidentiality of the derivative codes. The derived codes can be used in authentication of a storage device 130 and can optionally be substituted.

Ein Zugriffskontrollschlüssel 213 ist konfiguriert, um den unbefugten Zugriff auf die Geheiminformationen in den Geräteidentitä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.An access control key 213 is configured to prevent unauthorized access to and/or operation on the secret information in the device identity data 211 . For example, once an access control key 213 is configured in storage device 130, the secret information can only be used by cryptographic engine 107 (e.g., to regenerate derived codes and/or generate digital signatures). For example, a command/request received at host interface 147 of storage device 130 must be verifiably digitally signed with access control key 213, as illustrated in FIG 3 . If the digital signature applied to the command/request is valid according to the access control key 213, the command/request can be rejected and/or ignored.

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 Geräteidentitätsdaten 211 angewendet werden, wie beispielsweise das Ersetzen eines kryptographischen Schlüssels oder eines asymmetrischen kryptographischen Schlüsselpaares.For example, the access control key 213 can be used to authenticate the digital signatures applied to commands to perform certain operations relative to the device identity data 211, such as replacing a cryptographic key or an asymmetric cryptographic key pair.

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.Furthermore, one or more additional access control keys 213 may be used to authenticate the digital signatures of the owner and/or authorized users of the storage device 130 . Different authorized users can be restricted to access different areas of the storage device for specific operations (e.g., write, erase, read). An owner and other authorized users may have different scopes and/or permissions in the operation of storage device 130 .

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.The security server 140 can be configured as the initial owner of the storage device 130 . For example, a security server 140 public key may be initially stored in the storage device 130 as the owner's access control key 213 to provide owner credentials to commands signed with the security server 140 private key. After the storage device 130 is shipped to a customer, a customer's public key may be stored as a substitute for the owner's access control key 213 to transfer the owner credentials to the customer.

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.Optionally, certain security features of storage device 130 may be enabled for a customer. Some aspects of memory device 130 related to enabling security features are found in US Pat. Note Ser. No. 17/014,203 , filed September 8, 2020, entitled Customer-Specific Activation of Functionality in a Semiconductor Device, the entire disclosure of which is hereby incorporated by reference.

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.A terminal 150 may be constructed to include a storage device 130 and other components 187 . During the construction 233 of the terminal 150, the storage device 130 is installed/mounted in the terminal 150; and soft modules 217 and trace data 215 may be stored in storage device 130 .

Ein Softmodul 217 kann beispielsweise einen Boot-Loader 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.A soft module 217 may include, for example, a boot loader of the terminal 150, firmware of the storage device 130 and/or a storage subsystem that includes the storage device 130, or an operating system or software application of the terminal 150. The soft module 217 may include instructions and data configured to implement a function are. The instructions may be executed by the logic circuitry of the storage device 130, the controller of a storage subsystem in which the storage device 130 is installed, and/or the processing device 118 of the host system 120 of the storage device 130 and/or the storage subsystem.

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.During construction of the terminal 233, a terminal registration 235 may be performed to store trace data 215 in the security server 140 and/or in the storage device 130. The trace data 215 can be part of the configuration and/or identity of the end device 150 .

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 seinFor example, the trace data 215 can contain a hash value of the soft modules 217 that is calculated using a cryptographic hash function. The trace data 215 can contain, for example, secret information which is assigned to the terminal device 150 . The trace data 215 may be

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.A forgery of the end device 150, which does not have the trace data 215, cannot pass the end device authentication 239 that is dependent on the trace data 215. Thus, the security of the system is improved. Further details and examples of the techniques related to the trace data 215 can be found in US Pat. Note Ser. No. 17/005,565 , filed August 28, 2020, entitled Secure Memory System Programming for Host Device Verification, the entire disclosure of which is hereby incorporated by reference.

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 Geräteidentitätsdaten 211, der Trace-Daten 215 und der Identifizierungsdaten anderer Komponenten (z. B. Netzwerk-schnittstelle 114, Verarbeitungsvorrichtung 118, Steuerung 116) erzeugt wird, die zum Zeitpunkt des Bootens des Endgeräts 150 vorliegen.The terminal identity data 188 can be configured using the techniques of 2 are generated to represent the configuration of the terminal 150 at boot. The end device identity data 188 can include, for example, a certificate (e.g. message 131) based on a combination of a part of the device identity data 211, the trace data 215 and the identification data of other components (e.g. network interface 114, Processing device 118, controller 116) is generated, which are present at the time the terminal device 150 is booted.

Die Geräteidentitä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 Geräteidentitä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 Geräteidentitä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.The device identity data 211 and/or the terminal identity data 188 may include one or more certificates generated using a Device Identity Composition Engine (DICE) according to a standard developed by the Trusted Computing Group (TCG) that includes hardware secrets and source code combined to create trusted identities. Further details and examples of techniques for generating the device identity can be found in US Pat. Note Ser. No. 16/374,905 , filed April 4, 2019, entitled "Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers)," and published as US Pat. Note Pub. No. 2020/0322134 on October 8, 2020, the entire disclosure of which is hereby incorporated herein by reference.

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.A virtual card registration 237 operation may be performed to configure terminal 150 for card-based network 225 services, such as a mobile/cellular communication network, bank card processing network, etc.

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 Geräteidentitä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.For example, the terminal 150 may connect to a map server 223 to request a map profile 219 for the terminal 150 represented by the device identity data 211 . To request the card profile 219, the terminal 150 transmits a public part of the terminal identity data 188 to the card server 223. The card server 223 forwards the terminal identity data 188 to the security server 140 for authentication 239 of the terminal 150. For example, the in 2 explained authentication technique are used.

Sobald der Sicherheitsserver 140 überprüft hat, dass die Endgerät-Identitätsdaten 188 unter Verwendung einer korrekten Kombination der Geräteidentitä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.Once the security server 140 has verified that the terminal identity data 188 using a correct combination of the device identity data 211 of the storage device 130, the trace data 215 and other data of the terminal device 150 transmitted to the security server 140 during the terminal registration 235 and/or recorded there, the map server 223 can assign and/or store the map profile 219 to the storage device 130 , or associate the map profile 219 with the terminal identity data 188 .

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.The virtual card registration 237 can be carried out via a soft module 217 secured in the storage device 130 and/or via the security manager, so that the card profile 219 stored in the storage device 130 cannot be falsified. Optionally, the security server 140 can generate a verification code for a command 155 to write the card profile 219 to a secure portion of the storage device 130 . The write authorization of the secured section can be controlled via a cryptographic key stored in the security server 140 . For example, an access control key 213 assigned to the map server 223 or the security server 140 may be used by access controller 109 to control the storage and/or replacement of card profile 219 in storage device 130.

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.Furthermore, the storage device 130 can check the integrity of the card profile and/or a soft module 217 responsible for using the card profile 219, as illustrated in FIG 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 Geräteidentitätsdaten 211 verbunden ist, kann als eine virtuelle Smartcard angesehen werden.With the card profile 219 saved in the storage device 130 in the terminal 150, the storage device 130 and/or the terminal 150 function in a manner equivalent to a corresponding smart card installed in the terminal 150. The card profile 219, which is securely linked to the device identity data 211, can be viewed as a virtual smart card.

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.In some implementations, a soft module 217 is configured to utilize the cryptographic functions and/or the processing capability of the logic circuitry of the integrated circuit memory device 130 to implement the cryptographic operations involved in using the card profile 219 . For example, the card profile 219 may include an authentication key; and the soft module 217 may be configured to generate a digital signature for authentication/verification that the card profile 219 includes the authentication key.

Das Kartenprofil 219 kann beispielsweise sein wie veranschaulicht in 7 und 8.The map profile 219 can be, for example, as illustrated in 7 and 8th .

7 veranschaulicht ein Kartenprofil einer virtuellen Smartcard gemäß einer Ausführungsform. 7 illustrates a card profile of a virtual smart card according to one embodiment.

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.In 7 the card profile 219 can include card data 241 and a soft card module 243 . Optionally, the soft card module 243 can be installed as part of the soft modules 217 stored in the storage device 130 .

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 Schaltkreis-Chip, der in eine Plastikkarte eingebettet ist, die gemäß einem Standard für eine Universal Integrated Circuit Card (UICC) konfiguriert ist).Card data 241 may include identification of a smart card (e.g., virtual card), account, and/or subscriber. The card data 241 may identify, for example, a smart card type, a service subscribed to for the account/card, and/or customer data associated with the services (e.g., a balance amount, transaction record, message, etc.). In some implementations, card data 241 may include the same set of data stored in a physical smart card (e.g., an integrated circuit chip embedded in a plastic card coded according to a Universal Integrated Circuit Card (UICC ) is configured).

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 Schaltkreis-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.The soft card module 243 may include instructions to operate the card data 241 in a cryptographic engine 107 in the storage device 130 . For example, the computational functionality of an integrated circuit chip used in a particular type of smart card may be implemented by executing soft card module 243 in secure storage device 130 . The soft card module 243 allows a terminal 150 to emulate the computational operations of a physical smart card.

8 veranschaulicht ein Kartenprofil eines virtuellen Teilnehmeridentifikationsmoduls (SIM) gemäß einer Ausführungsform. 8th 12 illustrates a virtual subscriber identification module (SIM) card profile according to one embodiment.

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 8th contains the card profile 245 card data 241, for example an integrated circuit card identifier (ICCI) 251, a mobile device identification number 253, an international mobile subscriber identification number 255, an authentication key 257, which is assigned to the international mobile subscriber identification number 255, and service data 247 in relation to the mobile/cellular communications service for the international mobile subscriber identification number 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 Geräteidentitä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.In a conventional mobile phone using a conventional SIM card, an Integrated Circuit Card Identifier (ICCI) 251 is used to identify the SIM card in a population of SIM cards. A Mobile Equipment Identity Number 253 (e.g. in the form of an International Mobile Equipment Identity (IMEI) number or an IMEI software version (IMEISV)) is used to identify the mobile phone in a population of mobile phones. An IMSI (International Mobile Subscriber Identity) number is used to identify a subscriber/customer/account in a population. These numbers in the card profile 245 can be used for similar functions when the card profile 245 is attached to the terminal 150. For example, if the terminal 150 is a mobile phone without a physical SIM card, the card profile 245 can act as a virtual SIM card to identify the card, the subscriber, and the terminal/mobile phone. For example, the Integrated Circuit Card Identifier (ICCI) 251 corresponds to and/or identifies the device identity data 211 of the storage device 130; the mobile device identification number 253 corresponds to and/or identifies the terminal device identity data 188 of the terminal device 150; and the International Mobile Subscriber Identification Number 255 represents the subscriber/customer/account in a mobile/cellular communication network.

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.The authentication key 257 is the secret code assigned to the international mobile subscriber identity number 255, for example. When a terminal 150 uses the international mobile subscriber identification number 255 to request a connection in a communications network, the mobile/cellular network operator can look up the authentication key 257 in a database and require the terminal 150 to show that it is in possession of the authentication key 257 is. The security challenge may include digitally signing a message containing a random number (RAND) using the authentication key 257 . A response to the security query may include a portion of the digital signature for verification by the cellular network operator. The operator autographs the message using the appropriate authentication key 257 associated with the international mobile subscriber identification number 255 in the database. If the response matches the response calculated by the mobile/cellular network operator, the digital signature is verified and as a result it is determined that the terminal 150 has the authentication key 257 assigned to the international mobile subscriber identity number 255 and is authorized to receive the services associated with the International Mobile Subscriber Identity Number 255. Furthermore, a symmetric cryptographic key can be derived from the digital signature in order to secure the communication between the terminal 150 and the mobile/cellular communication network in the subsequent communication session.

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.For example, if the card profile 245 is installed in the terminal 150, the terminal 150 can communicate with the mobile/cellular network operator to request a connection and respond to a security query using the same protocol as a mobile phone with a physical SIM -Map. Thus, the operator of the mobile/cellular network does not have to distinguish between the terminal 150, which has the card profile 245 as a virtual SIM card, and other mobile phones that have physical SIM cards.

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.Optionally, the card profile 245 may include an authentication module 259 configured to be executed by a cryptographic engine of the secure storage device 130 and/or the processing device 118 of the terminal 150 to perform cryptographic calculations during use of the card profile 245, such as such as generating the answer to the security query and/or the symmetric cryptographic key for the communication session.

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.In 6 After receiving the virtual card registration 237, the terminal 150 can receive services from the card-based network 225 using the card profile 219 to identify a subscriber/customer/account. For example, the card-based service network 225, which is initially configured to provide services for conventional smart cards, can also seamlessly provide services for terminals (e.g. 150) that have virtual smart cards stored in secure storage devices (e.g. 130). are implemented by storing card profiles (e.g. 219).

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.Optionally, terminal 150 may be configured to communicate with card-based network 225 in the same manner as a mobile device using a physical smart card (e.g., SIM card) or a smart card (e.g., EMV map) has.

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.The end device 150 can function, for example, as a smart card for a reading device. Terminal 150 may include metal contacts for connection to a reader. Terminal 150 may include, for example, a transceiver similar to wireless smart card readers. Alternatively, additional readers can be configured in the card-based network 225 that use alternative communication links to read the virtual cards from the terminal device 150 . Examples of alternative connections may include a near field communication (NFC) connection, a Bluetooth connection, a Wi-Fi connection, a Universal Serial Bus (USB) connection, and so on.

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.In another example, the terminal 150 can function as a mobile station having an integrated reader to read a smart card inserted into the mobile station, for example a mobile phone having a SIM card. The terminal 150 can communicate with the card-based network 225 to access the service 227 using the same communication protocol as a mobile station having a physical SIM card.

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.Optionally, the card profile 219 can be stored in the card server 223 in connection with the identity data of the terminal device 188 . The terminal 150 can access services 227 in the card-based network 225 using the terminal identity data 188 . In reaction the card-based network 225 can then communicate with the card server 223 in order to identify a card profile 219 based on the terminal identity data 188 . Further, based on the terminal identity information 188, the card server 223 can communicate with the security server 140 to perform terminal authentication 239 to verify whether the terminal 150 has the secure storage device 130 as at the time of virtual card registration and has the same configuration as provided by the combination of the trace data 215, soft modules 217 and the components 187 is displayed. If the terminal 150 is tampered with and/or modified, the changes may be detected in the status check 229 and/or the terminal authentication 239; in response, the card-based network 225 may deny the request for access to services 227 .

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 mit den Endgerät-Identitätsdaten 188 assoziiert und/oder in dem Speicher 130 gespeichert werden.Optionally, the virtual card registration 237 can be performed just-in-time in connection with the request for access to the services 227. In response to the request, the terminal identity data 188 is verified by the terminal authentication 239 . After successful verification of the terminal, the card profile 219 can be associated with the terminal identity data 188 and/or stored in the memory 130 .

In einigen Implementierungen ist der Kartenserver 223 als Teil des Sicherheitsservers 140 implementiert.In some implementations, map server 223 is implemented as part of security server 140 .

In einigen Implementierungen ist der Kartenserver 223 als Teil eines Netzwerkbetreibers in dem kartenbasierten Servicenetzwerk 225 implementiert.In some implementations, the card server 223 is implemented as part of a network operator in the card-based service network 225.

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.For example, the system of 6 to simplify, secure and accelerate the large-scale global deployment of Internet of Things (IoT) devices and a rich ecosystem of IoT services. For example, virtual subscriber identity modules (SIM cards) of IoT devices (e.g. terminal 150) used to connect to the Internet via mobile/cellular communication networks.

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.The security server 140 can be used as a storage-based security-as-a-service platform for end devices (e.g. 150), for example for IoT edge devices. A map server can be used to provide a cellular connection for such end devices. By combining as in 6 can create a universal end-to-end solution for zero-touch onboarding of cellular-connected IoT devices to cloud services.

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.The complexity of implementing IoT in enterprises poses a challenge for the large-scale global deployment of IoT devices. The challenges include difficulties in implementing cellular connectivity and cybersecurity. Cellular connections have significant advantages over wireless local area networks (eg, Wi-Fi) for IoT deployments, such as longer range, better outdoor performance, better security, and existing global infrastructure. The requirements for physical SIM cards and contracts with mobile/cellular network operators are slowing down the use of cellular connections for IoT devices. A solution as in 6 illustrated, takes on such challenges.

Virtuelle SIM-Karten, die über ein sicheres Assoziieren eines Kartenprofils 219 mit Endgerät-Identitätsdaten 188 und/oder Geräteidentitä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.Virtual SIM cards, implemented via securely associating a card profile 219 with terminal identity data 188 and/or device identity data 211, can eliminate the need for physical SIM cards. Deploying virtual SIM cards provides highly scalable IoT security, cloud-based SIM management, secure zero-touch device registration and onboarding for IoT services, fluid global connectivity, and just-in-time SIM activation.

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.A solution as in 6 is particularly beneficial for the industrial, infrastructure, automotive, aerospace, transportation and logistics sectors that require far-reaching, borderless connectivity for portable devices even in the most remote locations not protected by borders and Wi-Fi -Networks in the vicinity are obstructed.

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.A system as in 6 illustrated, flexible global connectivity can drastically simplify and open multiple opportunities for innovation in the IoT market.

Die Verwendung von physischen Smartcards erfordert eine enge Verknüpfung der Karten- und/oder Geräteidentitä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.The use of physical smart cards requires a tight association of card and/or device identity with the services offered by a network (e.g., 225) during manufacture to prevent insecure devices, insecure operations, fraud, and/or counterfeiting.

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.The security server 140 can be used to implement zero-touch authentication and late-binding of certificates for third-party services, allowing end-users to securely access more diverse third-party IoT services.

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.The security server 140 and/or the map server 223 can be used for the secure installation of Soft modules can be used to customize IoT devices. For example, an online soft module store can be provided that allows a soft module to be stored in a terminal 150 to customize its functionality in a manner similar to that provided in the example provided for providing the functionality of different types of smart cards and/or or SIM cards has been explained. Such customization allows organizations to access vendor-agnostic IoT services to explore and experiment with intelligence and data insights in new ways.

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 Geräteidentitä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.As the threat landscape from sophisticated malicious actors and hacks to devices from IoT aquariums to baby monitors becomes more risky, cybersecurity presents a weakness in IoT adoption. The security server 140 can offer Security-as-a-Service powered by the security features implemented in storage devices (e.g. 130) that control access and device identity data 211 . Thanks to its silicon root-of-trust, a secure storage device 130 provides a unique level of protection for the lowest layers of IoT software - starting with the boot process, with strong cryptographic identity and security features natively built into the storage device 130.

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.For example, Security-as-a-Service implemented via a combination of the security server 140 and the security features embedded in secure storage devices (e.g. 130) may verify the authentication of a storage device (e.g. 130), that has a public identification number, by verifying that the storage device (e.g., 130) has a root code recorded via the storage registration 231 performed during the manufacture of the storage device 130.

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 Besitzerprivilegien bereitzustellen.For example, the security-as-a-service may optionally further include identifying an owner of the storage device 130 based on a cryptographic key corresponding to the access control key 213 implemented to provide owner privileges.

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.For example, the security-as-a-service may optionally further include identifying a service provider of the terminal 150 with the storage device 130 based on the identity of the owner/manufacturer of the storage device 130 before distributing the terminal 150 to an end user/customer. Based on the provider, the security server 140 can download a soft module 217 relevant to the services provided by the provider in order to customize the terminal device 150 . For example, the adaptation can be performed during terminal registration 235 . Optionally, an end user or an enterprise user can select a provider and the security server 140 and/or the map server 223 can provide the soft module 217 in the storage device 130 . Further, in response to authentication of a storage device 239, the security server 140 may automatically push a software update to the storage device. Thus, in practice, the vulnerability of end devices (e.g. 150) can be reduced and/or minimized in an automated manner without requiring additional efforts from the individual end device OEMs (e.g. 150).

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 Boot-Loader, 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.For example, the Security-as-a-Service may optionally further include tracking of lost/stolen devices. In response to a terminal authentication 239 of a terminal 150 that is registered as stolen in the security server 140, the security server 140 can request the access controller 109 of the storage device 130 to block access to specific storage areas and/or to delete data from specific storage areas. In some instances, access control 109 may disable normal operations of terminal 150 by restricting access to resources such as a boot loader, operating system, application, and so on. In some instances, access controller 109 may perform an operation to irreversibly destroy memory functionality in memory device 130 .

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.The security-as-service can also include an audit service for the integrity of the end device 150, for example. The storage device 130 can, for example, construct the end device identity data 188 based on the cryptographic hash values of soft modules 217 that are stored in the storage device 130, so that the security server 140 can check, when the soft modules 217 are changed, whether the current Soft modules 217 are valid distributions from corresponding providers of the soft modules 217. If a soft module 217 is found to be damaged, tampered with and/or damaged, the security server 140 may initiate an operation to repair the soft module using a valid distribution from an online software store.

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.If an updated version of a soft module 217 is available, the security server 140 can recalculate the terminal identity data 188 for the authentication of the terminal 150 . Thus, if the terminal 150 has an outdated Softmo dul 217, the security server 140 will detect the presence of the outdated version and request/initiate an over-the-air update of the soft module 217. Optionally, the security server 140 can track a history of terminal 150 configuration changes that affect the terminal identity data 188 . For example, if requested, the security server 140 can communicate with the storage device 130 to revert to a previous configuration.

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.For example, the security-as-service may further include a device tracking service that may provide activity data to an owner of the terminal device 150 that corresponds to the owner's access control key 213 (or another authorized user that corresponds to a different access control key). The activity data can include location data and the use of the terminal device 150 in various services of the map-based service network 225, for example.

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.The terminal identity data 188 may include a public identity of the terminal 150, such as an International Mobile Equipment Identity (IMEI) number (e.g., mobile device identity number 253). The registration of the public identity of the terminal 150 for a service of the map-based network 225 (e.g. mobile phone connections) can be pre-registered with the map server (223) without using the terminal 150 . The IMEI number may be associated with an international mobile subscriber identity number 255 in a map server 223 database, for example.

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.When the terminal 150 attempts to connect to the card-based network 225 , the public identity (e.g., IMEI number) of the terminal 150 is authenticated in the terminal authentication 239 using the terminal identity data 188 . In response, the subscription registered for the international mobile subscriber identity number 255 is identified and used to create the card profile 219 to bind the card profile 219 to the terminal 150 . Binding may be in the form of storing the card profile 219 in the secure storage device 130 in the terminal 150 . Alternatively, the binding can also be embodied in the form of an assignment in a database of the map server 223 of the map profile 219 to the end device identity data 188 .

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.In some instances, a number of end devices (e.g. owned by an enterprise client) may share a reduced number of virtual SIM cards for cellular connectivity. For example, corporate client IoT devices may not require cellular connectivity at the same time. When a device 150 of the enterprise client requires a cellular connection, an available card profile 219 representing a virtual SIM card is dynamically "installed" for the device 150 just-in-time for the cellular services after the device authentication 239 for the duration of a communication session “. When the communication session is over, the virtual SIM card can be used by another end device of the corporate client. A physical SIM card can be moved from one cellphone to another cellphone to allow different cellphones to access the cellular services registered on the same SIM card. However, physically moving the SIM card from one cellphone to another is inefficient and not scalable for a large deployment. The just-in-time installation of a virtual SIM card can overcome the limitations of physical SIM cards and provides improved security through terminal authentication 239 before the virtual SIM card installation.

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.For example, such a just-in-time installation of a virtual SIM card can be used to facilitate infrequent or one-time use of cellular connections. For example, the cellular connection can be used to perform an over-the-air firmware/software update. The status to be used can be used, for example, to report the status of the terminal 150 at regular intervals (e.g. once a day, week or month). For example, the terminal 150 may report its operating status and/or its location in relation to a warranty service based on the terminal 150's location.

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.The Security-as-a-Service can, for example, further include an identity service with which the public identity of the terminal device 150 can be changed in a secure manner. For example, a number of end devices of a corporate client can share a reduced number of IMEI numbers. If a terminal 150 attempts to connect to the card-based service network 225 using an alternative public identity number in the terminal identity data 188, the card server 223 and/or the security server 140 may perform a terminal authentication 239, the terminal 150 an unused one Assign IMEI number associate the card profile 219 with the IMEI number assigned to the terminal 150 to enable the terminal 150 to receive the services from the network 225 as a device received, which is represented by the IMEI number.

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.If such a secure storage device 130 is used with the Security-as-a-Service offered by the security server 140, an original equipment manufacturer (OEM) of end devices (e.g. 150) can provide security by migrating the secure storage device 130 to the Terminals (z. B. 150) builds without having to perform their own security operations, such. B. the injection of security keys, the design and implementation of secure elements, hardware components or special system-on-a-chip (SoC) functions. Thus, the security server 140 and secure storage devices (e.g., 130) can provide IoT device OEMs (e.g., terminals 150) with plug-and-play security.

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.The security server 140 services may be used to post-authenticate, activate, and manage secure storage devices (e.g., 130) in an edge region. This capability enables platform hardening and device protection throughout the lifecycle, extending from the manufacturing supply chain to on-site installation and management.

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. 9 12 illustrates a technique for authenticating a storage device according to one embodiment. For example, the technique of 9 used by a security service 5 to implement the identity data used by 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.Through the authentication operations of 9 For example, a session key 263 may be established to secure communication between a security server 140 and a storage device 130 without trusting a client-server 141 to manage the security to protect the confidentiality of the storage device 130. Optionally, session key 263 may be used by access controller 109 to implement permissions to request selected commands 155 on storage device 130 .

In 9 kann der Client-Server 141 an die Speichervorrichtung 130 eine Anforderung 271 für Identitätsdaten 113 der Speichervorrichtung 130 senden.In 9 the client-server 141 can send a request 271 for identity data 113 of the storage device 130 to the storage device 130 .

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.The request 271 may include a cryptographic nonce 267 . For example, cryptographic nonce 267 may be generated by security server 140 in response to a request from client-server 141 or generated by client-server 141 and communicated to security server 140 for request 271 . Alternatively, the storage device 130 may generate the cryptographic nonce 267 in response to the request 271 and provide a corresponding response 273 that includes the cryptographic nonce 267 .

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.In response to the storage device 130's request 271 for identity data 113 , the storage device 130 provides a response 273 that includes a message identifying the unique identifier 111 of the storage device 130 .

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.A verification code 133 is generated for the message provided in response 273 using the secret key 137 of storage device 130 . As discussed above, verification code 133 may be implemented using techniques such as hash digest, digital signature, and/or hash-based message authentication code. Verification of the verification code 133 may be performed by the security server 140 using a corresponding cryptographic key 106 stored in association with the unique identifier 111 .

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.To protect the Response 273 and/or Verification Code 133 from security attacks (e.g., reusing the Response 273 and/or attempts to recover the Secret Key 137), the Verification Code 133 is generated for a Message 131 containing the Unique Identifier 111 , a counter value 265 and the cryptographic nonce 267 . The counter value 265 is obtained from a counter 261 in the storage device 130 . The value of the counter 261 increases monotonically. For example, the counter 261 can be used to store a value representing the number of requests for identity data and/or other data elements or security-related operations received. Thus, a response containing a counter value 265 that is lower than a previously seen counter value may be considered invalid. Cryptographic nonce 267 is used once in generating response 273 and discarded in storage device 130 . If the cryptographic nonce 267 was previously provided to or generated by the security server 140, the response 273 need not explicitly include the cryptographic nonce 267 in the response 273.

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.The client-server 141 forwards the response 273 to the security server 140 to request authentication of the storage device 130 . Using the unique identifier 111 provided in response 273, the security server 140 can obtain a corresponding cryptographic key 106 for verification of the Locate verification codes 133. For example, the corresponding cryptographic key 106 can be the secret key 137, or a corresponding public key when using asymmetric cryptography.

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 (CSR) zulassen, die es dem Anforderer ermöglicht, eine Zertifizierungsstelle (CA) seiner Wahl (und nicht den Sicherheitsserver 140) zu verwenden.Based on the verification code 133 check, the security server 140 provides the client-server 141 with an authenticity identifier 275 . The authenticity identifier 275 indicates whether the storage device 130 is considered authentic. For example, the security server 140 may generate and provide a certificate signed by the security server 140 to extend the certificate chain of a storage device 130 back to the verifier (e.g., the security server). Optionally, security server 140 may allow downloading of a certificate signing request (CSR) that allows the requester to use a certificate authority (CA) of their choice (rather than security server 140).

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.By authenticating the storage device 130, the storage device 130 and the security server 140 can establish a session key 263 for communicating with each other in a subsequent communication session. The session may be restricted by a predetermined length of time after the response 273 or verification code 133 check. After the time period expires, the session key 263 expires and thus may be destroyed or discarded. Furthermore, a subsequent request for identity data may terminate the previous session started by the previous request for identity data.

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.Session key 263 may be generated based at least in part on a secret known between security server 140 and storage device 130 but unavailable to a communication channel between security server 140 and storage device 130 .

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.For example, session key 263 may be derived based at least in part on secret key 137 . Further, session key 263 may be based at least in part on counter value 265 and/or cryptographic nonce 267 . Optionally, session key 263 can be based at least in part on verification code 133 . For example, verification code 133 and secret key 137 can be combined to generate session key 263 .

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.In some implementations, the session key 263 is independent of the verification code 133; and verification code 133 may be generated using session key 263 derived from secret key 137 or other code known between security server 140 and storage device 130.

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. 10 11 illustrates a technique for generating a command to control security operations of a memory device, according to one embodiment. For example, the technique of 9 used by a security service 5 using the techniques of 3 and 10 to implement.

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.For example, after client-server 141's authorization to request execution of a command 155 in storage device 130 has been verified using client authorization data 283, security server 140 can send client-server 141 in response to a request 281 from the client -Servers 141 provide a verification code 153 for the command 155.

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.Some of the communications in 9 and 10 can be combined. For example, in some instances, the request 281 may include the identity data 113 provided in the storage device 130 in the response 273 to a request 271 to the storage device 130 .

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.After client-server 141 sends request 281 identifying command 155 and storage device 130, security server 140 may generate a verification code 153 for command 155 if client-server 141 is determined to be authorized to use storage device 130 under to control or operate using command 155. The request 281 may include the unique identification 111 of the storage device 130 in which the instruction 155 is to be executed. The unique identification 111 can be extracted, for example, by the client-server 141 from the response 273 to the request 271 for identity data of the storage device 130 and/or the authenticity identifier 275 provided by the security server 140 .

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.As discussed above, verification code 153 may be implemented using techniques such as hash digest, digital signature, and/or hash-based message authentication code. The verification code 153 check can be performed by the access controller 109 using an access control key 149 for the command 155 . The verification code 153 may be generated using a cryptographic key 277 stored in the Security server 140 is stored to represent the permissions to execute command 155 in storage device 130 . For example, cryptographic key 277 may be access control key 149 if asymmetric cryptography is not used; alternatively, when using asymmetric cryptography, the access control key 149 can be a public key in a key pair and the cryptographic key 277 a private key in the key pair.

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.In one embodiment, access control key 149 and cryptographic key 277 for command 155 permissions are preconfigured. In another embodiment, access control key 149 and cryptographic key 277 are based on session key 263. For example, session key 263 can be used as access control key 149 and cryptographic key 277 can be used for command 155 access control. In some embodiments, session key 263 is one of an asymmetric key pair that can be used to implement cryptographic key 277 and access control key 149, where encryption is performed using asymmetric cryptography.

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.If the verification code 153 is based on the session key 263, the verification code 153 expires when the session key 263 expires, preventing reuse of the verification code 153 beyond the session in which the session key 263 is valid.

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.A message 151 provided in the request 285 may include the command 155 and a cryptographic nonce 287 . The cryptographic nonce 287 is arranged for the command 155/request 285 and thus differs from the cryptographic nonce 267 for the transmission of the identity data of the storage device 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.For example, security server 140 may generate cryptographic nonce 287 in response to request 281 and use it to generate verification code 153 . The cryptographic nonce 287 can be provided with the verification code 153 to allow the client-server 141 to generate the request 285 . Alternatively, client-server 141 may generate cryptographic nonce 287 and provide it to security server 140 with request 281 . Alternatively, the client-server 141 may request the cryptographic nonce 287 from the security server 140 to generate the request 281 .

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.After the client-server 141 sends the request 285 with the verification code 153 received from the security server 140, the storage device 130 uses the access control key 149 to verify the verification code 153 for the message 151 contained in the request 285. If verification code 153 is valid, access controller 109 allows storage device 130 to execute command 155; otherwise, access control 109 may block instruction 155 from executing in storage device 130 .

Der Befehl 155 kann beispielsweise konfiguriert sein, um ein Sicherheitsmerkmal in der Speichervorrichtung 130 zu aktivieren.Command 155 may be configured to enable a security feature on storage device 130, for example.

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.Command 155 may be configured to replace access control key 149 or a secret key 137 in storage device 130, for example. The new secret key 137 may be generated, for example, using additional non-secret data that is provided during manufacture of a computing device in which the memory device 130 is installed, but that is not available at the time the memory device 130 is manufactured. For example, the new access control key 149 may be configured to provide the client-server 141 with a set of permissions.

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.Upon execution of command 155, storage device 130 provides a response 289 that may be forwarded by client-server 141 to security server 140. FIG. The security server 140 can determine whether the response 289 is correct. For example, storage device 130 may sign the response using session key 263 for verification by security server 140 .

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 Geräteschlü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 some implementations, a replacement secret key to replace an existing secret key 137 of the storage device 130 is generated independently by the storage device 130 and the security server 140 from a secret code (e.g., a unique device key 101) and additional data obtained via the client-server 141 to be exchanged. Optionally, the additional data can be protected by encryption performed using session key 263 .

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.In some implementations, a replacement secret key is transmitted from storage device 130 to security server 140 in an encrypted form of ciphertext generated using session key 263 .

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 der 9 und 10 implementiert werden. 11 Figure 12 shows a method for a virtual smart card according to one embodiment. For example, the process of 11 in the in 6 illustrated system with the security server 140 and the security features of a storage device 130 described above in connection with the 1-5 were explained using the techniques of 9 and 10 to be implemented.

Bei Block 301 liefert eine Logikschaltung oder eine Steuerung, die in einem integrierten Schaltungspaket einer Speichervorrichtung 130 untergebracht ist, Geräteidentitätsdaten 211, die für die Speichervorrichtung 130 repräsentativ sind und zumindest teilweise auf einem Root-Code der Speichervorrichtung 130 basieren.At block 301, a logic circuit or controller resident in an integrated circuit package of a memory device 130 provides device identity data 211 representative of the memory device 130 and based at least in part on a root code of the memory device 130.

Die Speichervorrichtung 130 kann beispielsweise eine Physical Unclonable Function (PUF) zum Erzeugen des Root-Codes aufweisen.For example, the storage device 130 may include a Physical Unclonable Function (PUF) for generating the root code.

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.For example, the logic circuit or controller may include a cryptographic engine configured to perform cryptographic calculations without using a processor external to the integrated circuit package.

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 Geräteidentitätsdaten 211.At block 303, the memory device 130 stores the device identity data 211 in a first memory area of integrated circuit memory cells formed on one or more chips included in the integrated circuit package.

Bei Block 305 steuert die Logikschaltung den Zugriff auf den ersten Speicherbereich basierend auf einem Zugriffskontrollschlüssel 213.At block 305, the logic circuit controls access to the first memory area based on an access control key 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.At block 307, the memory device 130 stores in a second memory area of the integrated circuit memory cells boot instructions executable by a terminal 150 having the memory device 130 as one of a plurality of terminal 150 components.

So können beispielsweise die Geräteidentitä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 Geräteidentitä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.For example, the device identity data 211 can be calculated and/or updated based on a hash value determined by applying a cryptographic hash function to the boot instructions stored in the second memory area in the memory device 130 . Thus, the device identity data 211 may be associated not only with the hardware of the storage device 130, but also with the boot instructions (and/or other data, such as the trace data 215) stored in the storage device 130.

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.At block 309, a card profile 219 is written into the integrated circuit memory cells of memory device 130 to emulate a function of a smart card based on the card profile 219.

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 zu dessen Boot-Zeitpunkt repräsentativ sind. Die Endgerät-Identitätsdaten 188 können unter Verwendung der Geräteidentitä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.The terminal device 150 can be configured, for example, in the storage device 130 in such a way that it generates identity data 188 in a storage device 130 which is representative of a component configuration of the terminal device 150 at its boot time. The terminal identity data 188 can be calculated using the device identity data 211, the trace data 215 stored in the storage device 130 during the construction 233 of the terminal 150, and the identification data of components of the terminal 150 that are external to the integrated circuit package of the storage device 130 will.

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.The card profile 219 can be identified, generated and/or assigned to the terminal device 150 based on the identification of the terminal device identity data 188, for example.

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.For example, the card profile 219 may include a soft module (e.g., soft card module 243, authentication module 259) having instructions executable by logic circuitry or a processor of terminal 150, or any combination thereof, to emulate the function of the smart card .

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.For example, the card profile 219 may be stored in the storage device 130 to emulate a SIM (Subscriber Identification Module) card typically used in the authentication of a cellular phone when accessing a cellular network. The card profile 219 may include the international mobile subscriber identity number 255 and an authentication key 257 associated with the international mobile subscriber identity number 255, for example.

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.For example, when terminal 150 requests a cellular connection to international mobile subscriber identity number 255, a mobile/cellular network operator may ask a security challenge to authenticate terminal 150. In response, the card profile 219 can be used to generate a response to a security query by signing a message with a random number using the authentication key 257 to show that the terminal has the authentication key 257 in possession. For example, the message containing the random number can be signed using authentication key 257 . An answer to the security query can contain part of the digital signature for authentication; and another portion of the digital signature can be used as a symmetric cryptographic key to encrypt a communication session associated with the cellular connection.

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. 12 12 shows a method for security services provided based on security features of a storage device according to an embodiment. For example, the process of 12 in the computer system of 1 based on the security features of a storage device 130 described above in connection with the 1-5 were explained using the techniques of 9 and 10 to be implemented.

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.At block 321, a security server 140 receives a request (e.g., 173 and/or 281) from a client-server 141. The request includes identity data 113 of a storage device 130 having an access control 109.

Bei Block 323 bestimmt der Sicherheitsserver 140, basierend auf einem Geheimcode der Speichervorrichtung 130 und den Identitätsdaten 113, die Authentifizierung der Speichervorrichtung 130.At block 323, the security server 140 determines the authentication of the storage device 130 based on a secret of the storage device 130 and the identity data 113.

Beispielsweise kann der Geheimcode ein eindeutiger Geräteschlü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 Geräteschlü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 eines Boot-Zeitpunkts 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.For example, the secret code may be a unique device key 101 that is not disclosed outside of the storage device 130 after the storage device 130 is completed in a secure facility. The identity data 113 is based on a secret key 137 that is generated based at least in part on the unique device key 101 . During manufacture of the storage device in the secured facility, the secret code is stored in the security server 140 to generate a cryptographic key 106 based at least in part on the secret code, which is verified in the identity data 113 . The cryptographic key 106 used to verify the identity data 113 can also be generated based on data 125 received from a host system 120 of the storage device 130 during a boot time of the host system 120 . Upon completion of the fabrication of the storage device 130 in the secure facility, the storage device 130 may be incorporated into a terminal 150 having the host system 120 connected to a host interface 147 of the storage device 130 . At least a portion of instructions configured for execution on a processing device 118 of host system 120 are stored on storage device 130 .

Bei Block 325 erzeugt der Sicherheitsserver 140 einen Verifizierungscode 153 für einen Befehl 155.At block 325, the security server 140 generates a verification code 153 for an instruction 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.For example, after determining, based on the client authorization data 283 stored in the security server 140, that the client-server 141 has authorizations to execute the command 155 in the storage device 130, the verification code 153 for the client-server 141 can be generated and stored in of response 174 based on permissions.

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.For example, after determining that the storage device 130 is located in a terminal 150 that has been reported lost or stolen, the verification code 153 for the command 155 to deactivate the storage device 130 may be generated.

Bei Block 327 kommuniziert der Sicherheitsserver 140 an den Client-Server 141 eine Antwort 174, die den Verifizierungscode 153 enthält.At block 327, the security server 140 communicates to the client-server 141 a response 174 containing the verification code 153.

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.For example, the response 174 may be based on a determination that the storage device 130 has the secret code if the identity data 113 includes a verification code 133 generated using the secret code.

Bei Block 329 überträgt der Client-Server 141 den Befehl 155 und den Verifizierungscode 153 an die Speichervorrichtung 130.At block 329, client-server 141 transmits command 155 and verification code 153 to storage device 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.At block 331, the access controller 109 of the storage device 130 examines the verification code 153 to determine whether execution of the instruction 155 in the storage device 130 should be blocked.

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.For example, when executed in storage device 130, instruction 155 causes a change in an access control key 149 used by access controller 109 to verify verification codes (e.g., 153) generated using a cryptographic key 145 that is associated with a is authorized to execute one or more instructions in storage device 130.

Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 beispielsweise eine Änderung der Einstellung von Sicherheitsmerkmalen der Speichervorrichtung 130. Die Änderung kann beispielsweise die Aktivierung eines Sicherheitsmerkmals der Speichervorrichtung 130 oder die Deaktivierung des Sicherheitsmerkmals beinhalten.For example, when executed on storage device 130, command 155 causes a change in the setting of security features of storage device 130. The change may include, for example, enabling a security feature of storage device 130 or disabling the security feature.

Bei Ausführung in der Speichervorrichtung 130 veranlasst der Befehl 155 beispielsweise die Speichervorrichtung 130, einen in der Speichervorrichtung 130 gespeicherten Bootloader zu deaktivieren, nachdem das Endgerät 150, das die Speichervorrichtung 130 enthält, als verloren oder gestohlen gemeldet wurde.For example, when executed on storage device 130, command 155 causes storage device 130 to disable a bootloader stored on storage device 130 after terminal 150 containing storage device 130 has been reported lost or stolen.

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.For example, instruction 155, when executed on memory device 130, causes access controller 116 to disable access to one or more portions of memory cells 103 on memory device 130.

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.For example, command 155, when executed on storage device 130, causes storage device 130 to erase a decryption key for data stored on storage device 130.

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.For example, instruction 155, when executed on storage device 130, causes storage device 130 to irreversibly destroy at least one aspect of storage device 130.

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.For example, based on a verification of the identity data 113, a session key 263 can be set up and made known between the security server 140 and the storage device 130 without the session key 263 being transmitted over a connection between the security server 140 and the storage device 130. An access control key 149 used by the access controller 109 to verify a verification code 153 for a command 155 may be based on the session key 263.

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.Optionally, security server 140 may cause command 155 and verification code 153 to be transmitted to storage device 130 based on instructions loaded from storage device 130 and executed for execution on host system 120 .

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. 13 FIG. 12 shows a method for onboarding a terminal device to a service that has been subscribed to an account according to an embodiment. For example, the process of 13 in the computer system of 1 based on the security features of a storage device 130 described above in connection with the 1-5 were explained using the techniques of 9 and 10 to be implemented.

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.At block 341, a server system receives from a terminal 150 a request (e.g., 171 and/or 173) associated with a service. The service is provided over a computer network (e.g., network 110) serving a variety of subscribers represented by different accounts. The request includes identity data 113 generated by a storage device 130 configured in terminal 150 .

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.The server system can include the security server 140 and/or the map server 223, for example. Optionally, the server system may further include a client-server 141 that communicates with the security server 140 .

Der Dienst kann beispielsweise ein Dienst für Mobilfunkverbindungen, ein Zahlungskartendienst, ein Videoüberwachungsdienst, ein Cloud-basierter Speicher- oder Berechnungsdienst usw. sein.For example, the service may be a cellular connection service, a payment card service, a video surveillance service, a cloud-based storage or billing service, and so on.

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.At block 343, the server system, in response to the request and based on a secret code of the storage device 130 and the identity data 113, determines the authentication of the terminal 150. For example, the operations in block 343 can be performed in a manner similar to the operations operated in block 323 .

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.At block 345, based on the identity data 113, a participant of the plurality of participants is identified based on the terminal 150 ownership data.

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 Geräteschlü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 zum Boot-Zeitpunkt aufweist.For example, when the terminal 150 is manufactured at a terminal manufacturer's (e.g., 150) manufacturing facility, the storage device 130 is connected to the host system 120; and in the storage device 130, a software package for the operation of the terminal 150 is installed. The terminal 150 is tested. In the terminal registration 235, the storage device 130 is configured to generate the secret key 137, which not only represents the storage device 130 with the unique device key 101, but also the terminal 150, which represents the storage device 130 with the data 123 in the storage cells 103 and the data 125 from the host system 120 at boot time.

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.When the terminal 150 is transferred from the manufacturer to a retailer and to a user or subscriber, data associated with the public identification of the terminal 150 and the identity of the subscriber is stored in the server system. The proprietary data may be stored in the server system without physically operating the terminal 150 (e.g., without opening the box in which the terminal 150 has been packaged since the terminal 150 was manufactured). For example, the public identification of the terminal 150 the unique Identification 111 of the terminal 150 and/or data 127 identifying the manufacturer, model and serial number of the terminal 150 as known to the manufacturer of the terminal 150.

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.When the subscriber sets up an account for the service provided to terminal 150, the subscriber's identity may be associated with the account.

Beispielsweise können die Client-Berechtigungsdaten 283 die Eigentumsdaten des Endgeräts 150 und/oder die Teilnehmerdaten, die das Konto des Teilnehmers anzeigen, beinhalten.For example, client credential data 283 may include terminal 150 ownership data and/or subscriber data indicative of the subscriber's account.

Bei Block 347 wird in Reaktion auf die in Block 341 empfangene Anforderung ein Konto des identifizierten Teilnehmers bestimmt.At block 347, in response to the request received at block 341, an account of the identified subscriber is determined.

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.For example, the account may be identified by matching the subscriber's identity associated with identity data 113 in the owner data with that associated with the account in the subscriber data.

Bei Block 349 veranlasst das Server-System, dass der Dienst dem Endgerät 150 basierend auf dem Konto bereitgestellt wird.At block 349, the server system causes the service to be provided to terminal 150 based on the account.

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 some implementations, client credential data 283 stored in security server 140 indicates the association between identity data 113 and the subscriber's account. Thus, when checking the authenticity of the terminal device 150 based on the identity data 113 received, the account can be identified using the client authorization data 283 .

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.In alternative implementations, the client credential data 283 stored in the security server 140 indicates the connection between the identity data 113 and the identity of the subscriber as the owner. Thus, when checking the authenticity of the terminal device 150 based on the identity data 113 received, the subscriber can be identified using the client authorization data 283 . Another server (e.g., client-server 141 or card server 223) stores the subscriber data to identify the account based on the subscriber identified by security server 140.

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.Using the method of 13 the service subscribed to an account can be provided/delivered to a terminal 150 without the terminal 150 itself having to be adapted to the subscriber and/or the subscriber's account. For example, the subscriber may simply open the packaging in which terminal 150 is packaged when terminal 150 is manufactured and use terminal 150 to access the service subscribed to for the subscriber's account without a card (e.g., a SIM card) to identify the subscriber or account and/or without interacting with an application or utility running on terminal 150 to identify the subscriber or account.

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.For example, after the terminal 150 is manufactured, prior to receiving the request in block 341, the terminal 150 has no customization for the subscriber and no customization for the account. The terminal 150 is manufactured in such a way that it can be used by a large number of participants. In response to the request received in block 341, the terminal 150 is automatically associated with the subscriber's relevant account for the service.

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.For example, prior to and/or after receiving service for the subscriber's account, terminal 150 does not include a hardware component inserted into terminal 150 to represent the subscriber, the account, or any combination thereof.

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.For example, at least prior to the request received in block 341, terminal 150 does not contain data stored in terminal 150 to represent the subscriber, account, or any combination thereof.

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.For example, at least prior to the request requested in block 341, terminal 150 does not contain an identifier of the subscriber, account, or any combination thereof without the proprietary data of terminal 150; and the property data is stored in the server system but not in the terminal 150.

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.Optionally, in response to the request received in block 341, the server system and/or the terminal 150 may store the association of the identity data of the terminal 150 with the subscriber's account.

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.For example, the security server 140 can generate a verification code 153 for an instruction 155 using a cryptographic key 145 . The server system can cause the storage device 130 to receive the command 155 and the verification code 153 . Prior to executing command 155 in storage device 130 , access controller 109 of storage device 130 is configured to verify verification code 153 based on access control key 149 . Optionally, the access control key 149 and the cryptographic key 145 is based on a session key established in the manner as in 9 explained.

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 Geräteinformationen 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.When executed on storage device 130, command 155 causes storage device 130 to store additional data identifying the account. For example, the additional data may be part of the device information 121 used to generate the secret key 137 in generating updated identity data 113 . For example, the additional data in the data 127 in a message 131 may be included in updated identity data 113 generated in the storage device 130 after execution of the command. The additional data may include, for example, a card profile 219 identifying the subscriber's account.

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.Alternatively, data associated with the identity data 113 of the storage device 130 and/or the terminal 150 may be stored in the server system (e.g. as part of the client authorization data 283 and/or the card profile 219) without the secret Change key 137 used to sign identity data 113.

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.Because no operation is required on the terminal 150 to direct the service of a subscriber's account to the terminal 150, the terminal 150 can be configured as a cellular-connected IoT device without requiring a user interface for its customization to receive cellular-connected services . For example, the terminal 150 may be configured without a slot into which a card for identifying the subscriber may be inserted. For example, terminal 150 may be configured without a user interface to receive input from an end user to identify the subscriber.

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.In some implementations, a terminal 150 has a generic hardware configuration that can operate with different firmware to provide different functions. Furthermore, an updated version of the firmware may be installed on the terminal 150 to correct defects or bugs in the terminal 150 running the previous version of the firmware to improve performance and/or to provide new functionality. Optionally, a firmware application can run on a base version of the firmware to add functionality, features, and/or services.

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.For example, different client-servers 141,...,143 can provide different services by using the same hardware of the terminal 150 running different firmware. For example, the different client-servers 141, ..., 143 can provide similar services using the same hardware of the terminal 150, but perform different processes implemented with different firmware.

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.The terminal 150 can be adapted for different client-servers 141,...,143 after the terminal 150 has been assembled and shipped to an end user or subscriber by installing different firmware.

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.For example, an online firmware store may be configured in communication network 110 to allow the user to purchase a firmware version. Installation of a selected firmware version may or may not include installation of a firmware application that will run on a base version of the firmware. After installing the selected firmware version, the terminal 150 is customized in at least one aspect that differs from the terminal 150 running the previous firmware.

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.In some instances, the updated firmware represents a terminal 150 request requested by the terminal 150 user. The service of the terminal 150 may or may not rely on the services of a client-server or a provider.

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.The functionality of the terminal 150 may be defined, at least in part, by its firmware. For example, if the terminal 150 is running a version of the firmware, the terminal 150 may provide a function to the user of the terminal 150; and if the terminal 150 runs a different version of the firmware, the terminal 150 can provide a different function to the user of the terminal 150 .

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.For example, different third-party service providers can provide software/firmware solutions for IoT devices based on a common, generic hardware platform. For example, the firmware provided in the online store can be programmed to allow a generic IoT device to work with a third-party server to provide a specific type of service. Optionally, a firmware application provided in the online store can run on a generic version of the firmware and use the basic services provided by the generic firmware to provide the services of a particular type. A combination of a base version of the firmware and a firmware application can be used as one extended version of the firmware can be viewed. If base versions of firmware for different end device hardware platforms offer standardized services, a firmware application can be device independent and support a range of IoT devices from different manufacturers. Alternatively, a firmware application can also be device dependent and use hardware features that can vary from manufacturer to manufacturer.

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.A security server 140 may be coupled to the online firmware store to provide firmware updates to the terminals (e.g., 150) in response to verification of the authenticity of the terminals.

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.For example, when a terminal 150 is first connected to a client-server 141, the client-server 141 communicates with the security server 140 to verify the identity and/or authenticity of the terminal 150. The owner of the terminal 150 can be determined as part of the verification process. After the subscribed services of the terminal 150 have been identified, a corresponding firmware application can be downloaded from the online firmware store and installed on the terminal 150 through an over-the-air (OTA) update.

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 Geräteinformationen 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.For example, the security server 140 can generate the verification code 153 for the command 155 to install the firmware application in the storage device 130 . After the execution of command 155, the firmware application becomes part of the data 123 stored in the memory cells 103 of the storage device 130 and part of the device information 121 when generating an updated secret key 137 for updated identity data 113 of the storage device 130 and the terminal 150 be used.

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 Over-the-Air-Update (OTA) für das Endgerät 150 einleiten, um das Sicherheitsrisiko zu reduzieren.If an update for the firmware application is subsequently available in the online firmware store, the outdated firmware application can be detected in the terminal 150 during the verification of the identity data 113 and the security server 140 can perform an over-the-air update ( initiate OTA) for the terminal 150 to reduce the security risk.

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.For example, an online service store may offer cloud-based services provided via end devices (e.g., 150), such as Internet of Things (IoT) devices. The same terminal 150 can be customized via firmware updates used by the different vendors that may run different client-servers 141,...,143.

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.For example, the user of terminal 150 may visit the online store to subscribe to a provider's service, change the subscribed service, and/or move the subscription from one provider to another provider. The subscription ordered by the user for the terminal 150 may be tracked as part of the client credential data 283 associated with the terminal 150 identity. If the identity data 113 of the terminal device 150 is checked by the security server 140, the security server 140 can check whether the terminal device 150 requires a firmware update for the subscribed service and/or the replacement of an outdated firmware version. If this is the case, the security server 140 can initiate a firmware update via the online store to customize and/or update the terminal 150 before the terminal 150 receives the subscribed service from the provider. Optionally, the security server 140 communicates with the terminal 150 to refer the terminal 150 to the current client-server 141 of the provider. Alternatively, the updated firmware causes the terminal 150 to connect to the current client-server 141 of the provider.

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.In general, the security server 140 may be connected to or include the online service store and/or the online firmware store. A server system may include the security server 140, the online service store, and/or the online firmware store. The server system can track the accounts used to subscribe to the services of different providers and track the firmware customization selected/purchased by the users of the terminals (e.g. 150).

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.An account of the user of the terminal 150 with a provider of services subscribed to the terminal 150 can be tracked using an identity of the user and correlated to the identity of the user as the owner of the terminal 150 for automatic firmware update. The selection of the firmware and/or the service made by the user in the online service store and/or in the online firmware store can be mapped to the end device 150 of the user by the correlation. Alternatively, the user of the terminal 150 can select the firmware and/or services explicitly for the terminal 150 by using a public identification of the terminal 150 that is part of the identity data 113 of the terminal 150 .

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.In some implementations, terminal 150 first connects to security server 140 to consume services. The security server 140 can use the current provider of the subscribed service registered in the online service store based on the client's 283 entitlement data. After verifying the authenticity of the terminal 150 and determining the service provider, the security server 140 configures the firmware of the terminal 150 for the service provider (e.g., using the online firmware store) and forwards the terminal 150 to the client-server ( eg 141, ..., or 143) of the service provider. Thus, the terminal 150 can provide the services ordered in the online service store seamlessly and with minimal effort for the user.

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. 14 FIG. 12 shows a technique for adapting terminals using online firmware storage according to an embodiment. For example, the technique of 14 in a computer system of 1 and or 6 with the in the 1 until 5 security services and features explained are implemented. The technique of 14 can be combined with the techniques of 9 until 13 be used.

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.In 14 an online firmware store 170 is configured to facilitate the selection of firmware and/or firmware applications for the customization and/or updating of terminals (e.g. 150) in connection with the security server 140 that maintains the identity of the Terminals (e.g. 150) checked.

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.The terminal 150 includes a variety of hardware including a host system 120 and a storage device 130 with security features. The functionality of the terminal 150 can be defined, customized and updated by the firmware 363 stored in the storage device 130 and executing in the host system 120 of the terminal 150 .

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.A manufacturer of the terminal 150 can install a basic version of the firmware 363 that is programmed so that the terminal 150 can generate identity data 113 and transmit it for verification by the security server 140 . The base firmware 363 is further configured to allow firmware update via the firmware store 170 in conjunction with verification of the identity data 113 by the security server 140 .

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).In general, the firmware update for terminal 150 may be the replacement of all firmware 363 running in host system 120, or the addition and/or replacement of one or more firmware applications (e.g., 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.A terminal platform 361 may be used to represent a class of terminal hardware. Each terminal (e.g. 150) in the class can operate with different firmware versions (e.g. 363,...,365) to provide different functions and/or services.

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.In some implementations, the firmware 363 can be customized via one or more firmware applications (e.g., app 367, ..., 369). For example, the terminal 150 running the firmware 363 may also run an optional application (e.g., app 367, ... or 369) to provide a new feature not present in the firmware 363, an existing feature disable in the 363 firmware, change or customize an existing feature in the 363 firmware, etc.

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.For example, when a firmware application (e.g., app 367) runs on firmware 363 in terminal 150, terminal 150 is adapted to communicate with a provider's client-server 141 to implement a service or function and /or receive a service from the provider. If another firmware application (e.g. App 369) runs on the firmware 363 in the terminal 150, the terminal 150 is adapted differently to communicate with another client-server 143 from another provider in order to provide an alternative or similar service or implement a feature and/or receive an alternative or similar service from the other provider.

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.For example, the firmware application (e.g., App 367) can be programmed to implement a communication protocol specific to client-server 141 .

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.For example, the firmware application (e.g., App 367) can be programmed to perform a new computational function that produces a new type of results.

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.For example, the firmware application (e.g., app 367) can be programmed to communicate with client-server 141 for a service provided through client-server 141 . Examples of client-server 141 service include client-server 141 computing resources for processing data for terminal 150, client-server 141 data storage facility for data generated by terminal 150, messaging facility for notifications and/or alerts to one or more other devices associated with the terminal 150, connectivity via the client-server 141 to one or more other devices associated with the terminal advises 150, internet access by the terminal 150 via a Wi-Fi access point, a communication satellite and/or a communication link or equipment controlled by the client-server 141, etc.

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.In general, different vendors may provide different firmware versions and/or different firmware applications to accommodate the terminals (e.g., 150) in the same terminal platform 361. Terminals in platform 361 may be manufactured and/or assembled by the same manufacturer or by different manufacturers.

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.Optionally, a base version of the firmware (e.g. 363) may provide a standardized feature set on which to run the firmware applications (e.g. App 367,..., 369). Thus, the same firmware application (e.g. App 367) can be installed to adapt terminals (e.g. 150) that have a different hardware configuration and/or different base firmware versions (e.g. 363, ..., 365). Alternatively, different firmware applications can be programmed for different base firmware versions (e.g. 363, ..., 365) running on terminals with different hardware implementations to provide the same customized function of the terminals in question and/or for the same service of a client-server 141 to provide.

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.The use of firmware applications (e.g. app 367, ..., 369) can reduce the size of the data that needs to be downloaded from the firmware memory 170 to the terminal 150 when performing a firmware update. Alternatively, different sets of firmware functions can be implemented using different firmware (e.g. 363,...,365) without additional firmware applications. In general, a firmware update in terminal 150 may involve replacing the existing firmware 363 in its entirety or installing a firmware application (e.g., app 367).

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.Optionally, the firmware store 170 is configured so that a user of the terminal 150 can use a computer 180 to select and/or order 371 firmware for the terminal 150 customization. In some instances, purchasing a selected firmware version (e.g. 363) and/or firmware application (e.g. 367) entails requesting a service from a service provider and/or a client-server (e.g In response, the firmware store 170 and/or the security server 140 may store data indicative of a desired firmware configuration and/or a requested service for the terminal 150. For example, client entitlement data 283 may be updated to reflect selections of firmware and/or service used with user computer 180 .

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.In general, user computer 180 may be distinct and separate from terminal 150 . Thus, a hardware and/or software interface accessible to the user of terminal 150 is not required to customize terminal 150 for use with an account and/or provider. Optionally, the terminal 150 of some implementations and/or categories may include a user interface that enables it to be used as a user computer 180 to order firmware for the terminal 150 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.For example, the owner or user of terminal 150 may use user computer 180 to visit online firmware store 170 and order 371 firmware for terminal 150 by installing a firmware application (e.g., App 367 ), a replacement firmware version, or a combination of a replacement firmware version and a firmware application. The order can be identified for the user as a service subscriber and/or the terminal 150 as a device to be adapted.

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.The terminal 150 can be identified, for example, via a public identification of the terminal 150, for example via a model and serial number of the terminal 150, a mobile device identity number 253, an international mobile subscriber identity number 255, the unique identifier 111 and/or another in the Data 127 of the identity data 113 identification contained.

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.The identity of the user or participant may be identified, for example, via an account identifier and/or personally identifiable information, such as an email address, phone number, name and address, etc.

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.The security server 140 can verify 373 identity data 113 transmitted by the terminal 150 and/or its storage device 130, as described above in connection with FIG 2 , 5 and 9 explained.

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.In general, the identity data 113 may be provided to the security server 140 via a client server (e.g., 141 or 143), via the firmware store 170, via another server or gateway, or without passing through any of the client servers ver 141, ..., 143 and the firmware store 170 are transmitted.

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.For example, terminal 150 may be configured via existing firmware 363 to automatically visit firmware store 170 and/or security server 140 for identity verification, firmware update, and/or service customization. Thus, in some instances, the identity data 113 may be communicated to the security server 140 via the firmware store 170, while in other instances it may be communicated directly to the security server 140.

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. 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.For example, when a server (e.g., a client-server 141 or 143, the firmware store 170, or another server) receives the identity data 113 for a request 171 from the terminal 150, the server (e.g., 141) the identity data 113 to the security server 140 in a request 173 ready for verification. In response to such a request 173, the security server 140 may communicate with the firmware store 170 to identify 375 whether a firmware update for the terminal 150 is available. If this is the case, the security server 140 can cause the firmware store 170 to update the firmware of the terminal device 150 . For example, after a firmware download has been performed to store a new version of the firmware and/or a firmware application (e.g., App 367) in the storage device 130, an instruction 155 signed with a cryptographic key 145 is then stored in the Storage device 130 is executed to cause a new version of the firmware and/or the firmware application (e.g. app 367) to be executed in the storage device 130 and become part of the identity of the storage device 130 and/or the end device 150.

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).For example, firmware 363 may first be installed in terminal 150 (e.g., by a terminal 150 manufacturer) to provide service via client-server 141 . After a new version of the firmware 363 is available in the firmware store 170 for accessing the same client-server 141 service, the security server 140 may initiate the installation of the new version in response to the successful verification of the identity data 113 . Optionally, the update 377 can be implemented by installing a firmware application (e.g., App 367) that runs on the existing firmware 363, or by installing new firmware (e.g., 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.For example, if the user of the firmware 363 visits the firmware store 170 to order 371 an alternative version of the firmware 365 to customize the terminal 150, and if the identity data 113 of the terminal 150 has been successfully verified in the security server 140, the firmware store 170 update the firmware of the terminal 150 according to the order 371 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).In some instances, the terminal 150 first visits the security server 140. After the security server 140 verifies the identity of the terminal 150 (373), the security server 140 may communicate with the firmware store 170 to identify a firmware update of the terminal 150 ( 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.In general, a firmware update may involve installing a firmware application (e.g., App 367), replacing an existing firmware application with a different firmware application, and/or installing a new firmware 365.

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.After the desired firmware update has been identified, the firmware store 170 communicates with the terminal 150 to update the terminal 150 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.The access controller of the storage device 130 is configured to request verification of authorization to request execution of an instruction 155 in the storage device 130 to make a change to the firmware stored in the storage device 130 .

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.For example, after the data required for the firmware update is stored in a portion of the storage device 130, the command 155 may be sent to the host interface 147 to perform the firmware update operations in the storage device 130. Authorization to execute command 155 on storage device 130 may be represented by a cryptographic key 145 . The cryptographic key 145 can be configured beforehand or generated in response to the verification of the identity data 113 in the storage device 130 of the terminal device 150 . For example, the cryptographic key 145 can be the session key 263, which is determined based on the verification of the authenticity of the terminal device 150 in a similar manner as in FIG 9 is produced; and the security server 140 can generate a verification code 153 for the command by using the cryptographic key 145 for the firmware store 170 to update the terminal 150. Alternatively, the security server 140 can provide the session key 263 and/or the cryptographic key 145 to the firmware store 170 in order to update the firmware 377 of the terminal device 150 .

Nach der erfolgreichen Firmware-Aktualisierung werden die Geräteinformationen 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 Geräteinformationen 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 Geräteinformationen 121 und reflektieren die Konfiguration des Endgeräts 150, das die aktualisierte Firmware-Funktionalität oder Konfiguration aufweist.Upon successful firmware update, device information 121 is updated to generate secret key 137 to reflect the installed firmware and/or firmware application. For example, a hash value 163 of the installed firmware and/or firmware application can be stored as part of the device information 121 to verify its integrity, as in 4 . Subsequently, the identity data 113 for the terminal device 150 generated by the storage device 130 is based on the updated device information 121 and reflects the configuration of the terminal device 150 having the updated firmware functionality or configuration.

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 some embodiments, firmware store 170 is part of a server system that implements security server 140 . In another embodiment, firmware store 170 is hosted on a separate server computer.

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.In some implementations, the firmware update 377 may be performed automatically based on the service subscribed to by the terminal 150, as discussed further below in connection with FIG 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. 15 12 shows a technique for routing services to a terminal via an online service store, according to an embodiment. The technique of 15 can be used, for example, in combination with the techniques of 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.In 15 For example, an online service store 190 is configured to facilitate a terminal 150 in selecting a service from a variety of services provided by one or more providers (e.g., 381). The service of a service provider (e.g. 381) can be implemented via one or more terminal platforms (e.g. 361, ..., 362).

Zum Beispiel kann ein Benutzer des Endgeräts 150 einen Computer 180 verwenden, um den Online-Service-Store 190 zu besuchen, um einen Dienst 391 bei einem Dienstanbieter 381 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.For example, a user of terminal 150 may use a computer 180 to visit the online service store 190 to order 391 a service 391 from a service provider 381. The service provided by service provider 381 may be used with terminals of multiple terminal platforms (e.g. 361, ..., 362) can be used. The terminals (e.g. 150) in the terminal platforms (e.g. 361, ..., 362) run different firmware for the service provider 381 service Identify subscribers and/or services ordered for the terminals (e.g. 150).

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.The service offered by the service provider 381 can be implemented via a client-server 141, for example, and the subscription data 387 can identify the servers to which the terminals should connect in order to receive the services subscribed to for the terminals.

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.For example, a service may be explicit for terminal 150 with reference to terminal 150 public identification, terminal 150 model and serial number, mobile device identity number 253, international mobile subscriber identity number 255, unique identifier 111, and/or another identification contained in the data 127 of the identity data 113 can be ordered.

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.Alternatively or in combination, a service may be ordered with reference to the identity of the user or subscriber identified via an account identifier and/or personally identifiable information such as email address, phone number, name and address, etc can.

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.As in 14 the user computer 180 is typically distinct and separate from the terminal 150. In some instances, the terminal 150 may include a user interface that allows it to be used as a computer 180 to order 391 services for the terminal 150.

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.When a service is ordered implicitly for the terminal 150, the identity of the subscriber can be used to order the services of the subscriber's terminals based on the match of the identity of the subscriber used to order the service and the identity of the owner of the Terminal 150 to determine.

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.For example, to order 391 a service from the service provider 381, the user of the terminal 150 (or a representative of the user) may visit the service store 190 to set up an account for subscribing to the service provider's 381 service.

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.The security server 140 and the service store 190 may communicate with each other to identify a service subscribed to by the terminal 150 393, in response to the service being ordered or changed, or in response to the identity data 113 of the terminal 150 being verified .

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.In response to a service request 171 from the terminal 150, the security server 140 verifies 373 the identity data 113 of the terminal 150 provided in the service request 171.

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.In general, the service request 171 may first be received in a client-server (e.g., 141 or 143), or in the service store 190 or the firmware store 170, or in the security server 140 directly.

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.After the security server 140 has checked 373 the identity and authenticity of the terminal 150, the security server 140 can, based on the client authorization data 283 stored in the security server 140 and/or based on the subscription data 387 in the service store 190, the service subscribed for the terminal 150 identify 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.Based on the identified service, the security server 140 may communicate with the firmware store 170 to identify 375 a firmware update for the terminal 150. For example, the terminal 150 may be upgraded by replacing the firmware or installing a firmware application (e.g., App 367) updated to adapt the terminal 150 to the subscribed service. The firmware update can be performed and backed up in the same way as explained above in connection with 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.For example, the terminal 150 can be manufactured with a generic version of the firmware 363 that is unable to receive the service from the service provider 381, that has no knowledge of the client-server 141 for the service offered by the service provider 381 and/or or which has not implemented a communication protocol for communication with the client-server 141. A firmware application (e.g. App 367) running on the general firmware 363 can be installed to adapt the terminal 150 to the service ordered for the terminal 150. Once the terminal 150 has been customized via the firmware application (e.g., app 367), it can receive the service of the service provider 381 from the client-server 141. For example, after installing the firmware application (e.g., app 367) for updating 377 the firmware, the terminal 150 has knowledge of the client-server 141, communication ability to communicate with the client-server 141 according to a client-server Server 141 used communication protocol and the processing routines for using the service offered by the client-server 141 on.

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.For example, the service subscribed to for the operations of the terminal 150 may include the calculations performed by the client-server 141 for processing data for the terminal 150, storing data generated by the terminal 150 in the client-server 141, sending notifications and/or or alerts to one or more other devices connected to terminal 150, connecting terminal 150 via client-server 141 to a computer network or the Internet using a base station, Wi-Fi access point, communications satellite, and/or a client-server 141 controlled communications link or equipment, etc.

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.Optionally, after the firmware update 377, the terminal 150 is configured via its firmware 363 and/or a firmware application (e.g., app 367) to automatically visit the client-server 141 for the subscribed service. Alternatively, the security server 140 may redirect the terminal 150 to the client-server 141 to access the subscribed service 379 after verifying the identity data 113 of the terminal 150 having the updated firmware.

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.In general, the service store 190 can be used by a user (or a user representative) to subscribe to a service of a service provider 381 for the terminal 150, change a subscribed service, subscribe from one service provider 381 to another service provider to move. The firmware 363 of the terminal 150 is automatically updated to support the currently subscribed service without the user of the terminal 150 performing any operation on the terminal 150 to customize the terminal 150 for the subscribed service.

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. 16 FIG. 12 shows a method for updating firmware using firmware storage and a security server according to one embodiment. For example, the process of 16 be implemented using the technique of 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.At block 401 a server system receives from a terminal 150 a request with identity data 113 generated by a storage device 130 configured in the terminal 150 .

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.The server system may include security server 140, for example. Optionally, the server system may further include the online firmware store 170 and/or one or more client-servers (e.g., 141,..., 143).

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.The terminal 150 can be in a delivery state, for example, as is the case when terminals (eg 150) are manufactured, without an adaptation to specific servers and/or service providers being necessary.

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.At block 403, the server system, in response to the request received in block 401 and based on a secret code of the storage device 130 and the identity data 113, determines the authentication of the terminal 150. For example, the operations in block 403 can be carried out in a manner similar to those in block 323 and/or block 343 operated operations are performed.

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 Geräteschlüssels 101 der Speichervorrichtung 130 und der Geräteinformationen 121 erzeugt, die für die Software- und Hardwarekonfiguration des Endgeräts 150 repräsentativ sind.The identity data 113 include, for example, a verification code 133 for a message 131 shown in the identity data 113. The security server 140 can check whether the verification code 133 was generated using a secret key 137 of the storage device 130 and the message 131, without the terminal having the secret Key 137 represents. The secret key 137 is generated using the unique device key 101 of the storage device 130 and device information 121 representative of the software and hardware configuration of the terminal 150 .

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.At block 405, based on an online firmware store 170, an update of the first firmware 363 is determined. The first firmware is stored in the storage device 130 and executed in the terminal 150 to generate the request received in block 401 .

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.For example, prior to receiving the request in block 401, the firmware store 170 may store an order 391 of firmware for the terminal 150. Order 391 can be made to customize the functionality of terminal 150 using user computer 180 without going through terminal 150 . The order 391 received in the firmware store 170 can be used to identify 377 the update 375.

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.For example, order 391 for terminal 150 may be identified using a terminal 150 public identifier. The identity data 113 can include the public identification in the message 131 signed with the secret key 137 to generate the verification code 133 provided in the identity data 113 . After verifying that the message 131 has not been modified, the security server 140 can instruct the online firmware store 170 and/or the terminal 150 to update 377 the firmware 363 of the terminal 150.

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.At block 407, in response to a determination that terminal 150 is authentic, the server system generates verification code 153 for an instruction 155 executable on storage device 130 to perform the update.

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.At block 409, the server system provides the verification code 153 for executing the command 155 in the storage device 130 to update the firmware.

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.For example, in response to determining that the terminal is authenticated, the security server 140 may communicate with the online firmware store 170 to download data to a storage device 130 . When the command 155 is executed in the storage device 130, the storage device 130 performs the update of the firmware using the data.

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.For example, the data downloaded to the storage device 130 may include a second firmware that, after the execution of the update firmware command 155 , replaces the first firmware that was executed to generate the request received in block 401 .

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.The data downloaded to the storage device 130 may include, for example, a firmware application (e.g., App 367) running with the first firmware executed to generate the request after the update firmware command 155 is executed. A combination of the firmware application (e.g., App 367) and the first firmware provides a second firmware for the terminal 150.

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.For example, after executing the command 155 to update the firmware via the second firmware, the terminal 150 is configured to provide a function that was not present in the terminal with the first firmware before the update.

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 Geräteinformationen 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 Geräteinformationen 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 Geräteschlüssel 101) der Speichervorrichtung und der zweiten Firmware, die in der Speichervorrichtung 130 gespeichert ist, erzeugt wird.After the execution of the firmware update instruction 155 , the second firmware may become part of the identity of the storage device 130 and the terminal 150 . For example, based on device information 121, memory 130 is configured to generate a secret key 137 representative of the identity of memory device 130 and terminal 150. After the execution of the firmware update 377 instruction 155 , the device information 121 is updated to include as content 161 a hash value 163 of the second firmware stored in the memory cells 103 . Subsequently, the storage device 130 is configured to generate identity data 113 of the terminal 150 using a cryptographic key which is based at least in part on the secret code (e.g. the unique device key 101) of the storage device and the second firmware stored in the storage device 130 is generated.

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. 17 FIG. 12 shows a method for adapting terminals using a service store and a security server according to an embodiment. For example, the process of 17 be implemented using the technique of 14 and 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.At block 421, a server system receives from a terminal 150 a request with identity data 113 generated by a storage device 130 configured in the terminal 150, similar to block 401.

Das Server-System kann beispielsweise einen Sicherheitsserver 140 und/oder einen Service-Store 190 beinhalten.The server system may include a security server 140 and/or a service store 190, for example.

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 Geräteschlüssel 101. Diese Informationen können ferner Geräteinformationen 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.At block 423, the security server 140 verifies the identity data 113 in response to the request received in block 421 and based on the information stored in the security server 140 about the terminal device 150. This information includes a secret code of the storage device 130, for example the unique device key 101. This information may also include device information 121 that represents the software/hardware configurations of the terminal device 150 . The verification can be performed in the same manner as explained above in connection with 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.In response to determining that the identity data 113 in the request received in block 421 is valid, the server system identifies in block 425 a service ordered from the online service store 190 for the terminal device 150.

Bei Block 427 wird ein Client-Server 141 identifiziert, der zum Bereitstellen des Dienstes konfiguriert ist.At block 427, a client-server 141 configured to provide the service is identified.

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.For example, before receiving the request in block 421, the online service store 190 may store an order 391 of the service for the terminal 150. The client-server 141 can be identified based on the order 391 .

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.For example, the order 391 can be received in the online service store 190 via a user computer 180 and thus without a detour via the terminal device 150 . The order 391 may be identified/placed for the terminal 150 using a public terminal 150 identification. The identity data 113 can include the public identification. Alternatively, the order 391 may be associated with the identity of a user as the owner of the terminal 150 in the client credential data 283 of the security server.

Bei Block 429 leitet das Server-System das Endgerät 150 an den Client-Server 141 weiter.At block 429 the server system forwards the terminal 150 to the client-server 141 .

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.For example, in response to determining that the identity information 113 in the request received in block 421 is valid, the server system may configure the terminal 150 for the service ordered from the online service store 190 .

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.In order to configure the terminal 150 for the service, the server system can update the firmware of the terminal 150, for example. For example, the firmware update can be performed in the same way as described above in connection with the 14 until 16 was explained.

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.For example, before the firmware update 377 , the terminal 150 is unable to receive the service from the client-server 141 and has no knowledge of the client-server 141 . For example, terminal 150, as initially configured by a terminal manufacturer (e.g., 150), is programmed to include service store 190, firmware store 170, security server 140, or other gatekeeper visited so that terminal 150 can be properly configured and/or updated for use without the end user having to perform any operation on terminal 150 to customize it.

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 Geräteschlüssel 101) und der in der Speichervorrichtung 130 gespeicherten zweiten Firmware erzeugt wird.For example, after firmware update 377 , a second firmware is stored in storage device 130 to replace the first firmware used to generate the request received in block 421 . When the terminal 150 runs the second firmware, the terminal has a function that the terminal with the first firmware before the firmware update 377 did not have. For example, the second firmware may include an identification of the client-server 141 to instruct the terminal to visit the client-server 141 for the service ordered from the online service store 190 . In some implementations, the second firmware is a combination of the first firmware and an additional firmware application. After the firmware update 377, the storage device 130 is configured to generate the updated identity data 113 of the terminal device 150 using a secret key 137, which is based at least in part on the secret code (e.g. the unique device key 101) and the in the Storage device 130 stored second firmware is generated.

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.Optionally, in order to configure the terminal 150 for the service ordered from the service store 190, the server system identifies an account that is used to subscribe the terminal 150 to the service. The storage device 130 is configured to store an identifier of the account and to include the identifier in the updated identity data 113 as part of the message 131 .

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.For example, to perform the firmware update 377 , the server system may generate a verification code 153 for an instruction 155 using a cryptographic key 145 that has authorization to execute the instruction 155 on the storage device 130 . When executed on storage device 130, instruction 155 causes the first firmware to be replaced with the second firmware. After storage device 130 receives command 155 and verification code 153, storage device 130 checks verification code 153 for authorization before executing command 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 Boot-Loader, 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.The security server 140 can be used not only to verify the identification of a terminal 150 based on the security features of a storage device 130 configured in the terminal 150, but also to verify the integrity of packets stored in the storage device 130 and/or in stored in terminal 150. A package stored in the terminal 150 can be, for example, a boot loader, firmware, software, a module, at least part of an operating system or an application, a set of files with information about resources, configuration parameters and/or other data of a program or a routine etc. If a packet is found to be corrupted, modified, tampered with, or out of date, the security server 140 may initiate an over-the-air (OTA) update to maintain the integrity of the terminal 150.

Die Speichervorrichtung 130 kann Inhalte 161 in Speicherzellen 103 speichern und separat einen Hash-Wert 163 als Teil der Geräteinformationen 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.Storage device 130 may store content 161 in storage cells 103 and separately store a hash value 163 as part of device information 121, as illustrated in FIG 4 . If the current hash value calculated from the content 161 stored in the memory cell 103 does not match the expected hash value 163 stored as part of the device information 121, the storage device 130 may allow the modification or corruption of the content 161 detect and initiate repair of the content.

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 Boot-Loader, 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.Content 161 may include a core packet of terminal 150, for example. The integrity of the core packet may affect the operations of the terminal 150 in communicating with the security server 140 in verifying 373 the identity of the terminal 150 . Examples of a core package may include a boot loader, firmware, and/or at least a portion of the terminal 150 operating system. If the core package is modified, corrupted, or tampered with, the security of the terminal 150 operations performed to verify identity may not be trusted. If the integrity status 165 generated by the cryptographic engine 107 indicates a change in the core package, the access controller 109 can prevent the host system 120 from accessing the content 161 until the core package is repaired.

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 Geräteinformationen 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.For example, storage device 130 may store a reliable backup copy of the core package in a separate section; and if the core packet in the content 161 stored in the storage cells 103 has a hash value different from the corresponding hash value 163 stored for the device information 121, the storage device 130 can use the copy stored in the separate section to replace the core packet stored in memory cells 103. Optionally, execution of the replacement copy in terminal 150 may be configured to start a recovery process to obtain a current version of the package from a reliable source, such as firmware store 170. Alternatively, the security server 140 may initiate the update (e.g., using the firmware store 170) after verifying the identity information 113 of the storage device 130 and/or terminal 150 communicated via the backup copy.

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.Some packets stored in the memory cells 103 do not affect the security of the initial operations to verify 373 the identity data 113 of the terminal 150 and the subsequent operations to update the terminal 150. Thus, it is not necessary to have a recovery copy of these packets in the storage device 130 to save. The repair and/or update of these packages can be performed via the security server 140 . For example, if integrity status 165 indicates that a non-core packet has changed, access controller 109 can block host system 120 from accessing the corrupted or changed packet until terminal 150 communicates with security server 140 to recover the corrupted packet to repair or restore.

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.Optionally, the data 127 provided in the identity data 113 can contain the current hash value of a packet in the content 161 stored in the memory cells 103 . During operations to verify 373 the identity data 113 of the terminal 150, the security server 140 may verify the current hash value provided in the identity data 113 for the packet. If the current hash value of the packet indicates that the packet is modified, corrupted, or out of date, the security server 140 can initiate repair or recovery of the packet.

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.Furthermore, some packets of terminal device 150 may be stored in another device that does not have the security features of storage device 130 . Execution of the core packet in the host system 120 may generate the current hash values of the packets as state identifiers of the packets. The state identifiers may be provided as part of the data 127 embedded in the identity data 113 of the terminal 150 to enable the security server 140 to monitor the integrity of the packets.

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.In general, the identity data 113 can contain data that provide information about the status of the packets in the terminal device 150 . As part of the operations for verifying 373 the identity data 113 of the terminal 150, the security server 140 may determine whether any of the packets should be repaired and/or updated. The repair or update may be performed before the security server 140 confirms the authenticity of the terminal 150.

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.Furthermore, in response to the verification 373 of the identity data 113 of the terminal 150 for accessing services from client-servers (e.g. 141, ..., 143), the security server 140 can be configured to monitor the activities of the terminal 150 upon access to track and/or monitor services in order to implement further operations to ensure security.

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.For example, an owner or user of terminal 150 may request security server 140 to track terminal 150 activities. Aspects of the activities of the terminal 150 can be represented by the terminal 150 and/or the client-servers (e.g. 141, ..., 143) in the identity data 113 and/or in the requests 173 for verifying the identity data 113 .

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.The information about the tracked activities can contain, for example, location information of the end device 150 and/or the type of services requested by the end device 150 by transmitting the identity data 113 .

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.For example, in order to generate the identity data 113 for a service from the client-server 141, the terminal device 150 in the message 131 of the identity data 113 can contain not only the unique identification 111 of the terminal device 150, but also the context and/or the aspects of the service such as client-server 141 identification, terminal 150 location, request date and time, service category/type, service parameter, etc.

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.For example, if the terminal 150 sends a request 171 for a service to a client-server 141, the client-server 141 can provide not only the identity data 113 of the terminal 150 in the request to the security server 140, but also information about the request 171 for the service of the client-server 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.For example, in response to a request 171 from terminal 150, client-server 141 may estimate the location of terminal 150 based on a wireless communication link to one or more access points associated with client-server 141 and the location provide the security server 140 in connection with the request 173 for authentication of the identity data 113.

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 dieses gestohlen wurde oder verloren gegangen ist.Optionally, the owner or user of the terminal 150 can visit a portal of the security server 140 to view the tracked activities. For example, the owner or user can determine if the terminal 150 has been stolen or lost based on the activities tracked based on one or more current locations.

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.Optionally, a parent may use the security server 140 portal to set parental control settings to restrict terminal 150 activities; and the security server 140 may implement the restriction settings in connection with the authentication of the terminal 150 identity.

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. 18 illustrates the generation of identity data to facilitate monitoring of the integrity and/or activities of a terminal according to one embodiment.

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.For example, the technique of 18 in a computer system of 1 and or 6 with the in the 1 until 5 security services and features explained. The technique of 18 can be combined with the techniques of 9 until 17 be used.

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).In 18 the terminal 150 stores a packet 167 which has a hash value 169. Packet 167 may be stored in storage device 130 having the security features discussed above, or stored in another storage device of terminal 150, which may or may not have security features of storage device 130 . When the packet 167 is stored in the storage device 130, the cryptographic engine 107 of the storage device 130 can calculate the hash value 169 of the packet 167 without relying on the processing device 118 of the host system 120 in the terminal 150. If the packet 167 is stored outside of the storage device 130, the hash value 169 may be obtained by the processing device 118 of the host system 120 executing a routine that is stored in the storage device 130 and has been checked to determine that it is not was changed (e.g. as 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.In general, packet 167 may include instructions and/or data, such as resources that are common to a set of terminals (e.g., 150) and configuration parameters that are shared from one terminal (e.g., 150) to another terminal may vary.

Der Hash-Wert 169 des Pakets 167 gibt den Zustand des Pakets 167 an.The hash value 169 of the packet 167 indicates the state of the packet 167.

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.In 18 is the secret key 137 used to generate the verification code 133 of the identity data 113, independent of the hash value 169 of the packet 167. To enable the integrity of the packet 167 to be monitored by the security server 140, the hash value 169 is used as a Part of the message 131 provided in the identity data 113.

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.After the security server 140 has determined that the identity data 113 is valid, the security server 140 can extract the hash value 169 provided in the identity data 113 to determine whether the packet 167 has been modified in the terminal 150 and/or whether the packet 167 is no longer up-to-date.

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.For example, a working and up-to-date copy of package 167 may be stored on a server (e.g., security server 140, firmware store 170, or other server) to facilitate repair or recovery of package 167 in terminal 150. If the hash value 169 extracted from the identity data 113 differs from the hash value of the functional and current copy, the security server 140 can initiate an update in a similar manner to the update 377 of the firmware 363 of the terminal 150, as in connection with the 14 until 17 explained.

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.The packet 167 can be individualized for the terminal 150. For example, if package 167 includes configuration parameters that are specific to terminal 150 in a platform 361 but not applicable to other terminals in platform 361, after successfully configuring package 167 in terminal 150, a working copy of package 167 can appear the server (e.g., the security server 140, the firmware store 170, or another server).

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 Geräteinformationen 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.In some implementations, the storage device 130 and/or the terminal 150 may be configured to store the hash value of the operational, individualized copy of the packet 167 . For example, the healthy hash value can be stored as part of the device information 121 used to create the secret key 137 . The message 131 in the identity data 113 can contain an identifier that indicates whether the current package 167 is functional, without the current hash value 169 of the package 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.For improved security and/or privacy protection, the operational copy of the customized package 167 can be uploaded to and stored on the server in encrypted form using a cryptographic key of the storage device 130 . To reinstall package 167 using the working copy, storage device 130 decrypts the encrypted version using a corresponding storage device 130 decryption key.

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.For example, upon successful configuration of customized package 167 in terminal 150, terminal 150 and/or storage device 130 may calculate the hash value of the operational copy of customized package 167 and use public key 139 to encrypt customized package 167. The terminal 150 may transmit the hash value and the encrypted packet 167 for storage on the server to facilitate monitoring and/or recovery. During recovery, the secret key 137 in the key pair 135 is to be used to decrypt the encrypted packet. Optionally, the cryptographic engine 107 can generate a separate key pair to secure the individualized packet 167.

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.Alternatively, a secret key with symmetric cryptography can also be used to protect the individualized packet 167. A session key 263, which was generated during the verification of the identity data 113 of the terminal device 150 at the time of the successful configuration of the individualized packet 167 in the terminal device 150, can be used, for example, to encrypt the individualized packet 167 in order to send it to the server (e.g (e.g. the security server 140, the firmware store 170 or another server) and/or store it there.

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.In 18 For example, identity data 113 includes not only the current hash value 169 of packet 167, but also activity information 177 that identifies some aspect of the context in which identity data 113 is used. For example, activity information 177 may be generated by host system 120 executing or running a package (e.g., 167 or other package such as firmware, application, routine).

So kann beispielsweise die Aktivitätsinformation 177 den aktuellen Standort des Endgeräts 150 beinhalten, wobei die Identitätsdaten 113 erzeugt werden.For example, the activity information 177 can contain the current location of the terminal device 150, with the identity data 113 being generated.

So kann beispielsweise die Aktivitätsinformation 177 das Datum und den Zeitpunkt des Erzeugens der Identitätsdaten 113 beinhalten.For example, the activity information 177 can include the date and time when the identity data 113 was generated.

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.For example, the activity information 177 can contain an identification of the client-server 141 to which the identity data 113 are transmitted in order to request a service 171 .

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.For example, activity information 177 may include one or more attributes of the requested service, such as a category of service, an identification of another party involved in the service, an amount or quantity involved in the service, etc.

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.For example, if identity data 113 is transmitted for a communication link, the attributes may include identification of the link type, name of the link, and so forth.

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.For example, if identity data 113 is submitted for a payment, the attributes may include identification of a purchase category, payee, payment amount, and so on.

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.The activity information 177 can be used by the security server 140 to detect fraudulent activity and unauthorized uses of the terminal and to enforce activity restrictions (e.g. as specified in parental control settings), etc.

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.In order to improve security and/or privacy protection, the activity information 177 can be included in the message 131 in encrypted form. For example, the session key 263 associated with verifying the identity data 113 can be used to generate the ciphertext of the activity information 177; and the security server 140 can recover the activity information 177 from the ciphertext using the session key 263 after successfully verifying the verification code 133 of the identity data 113.

19 veranschaulicht eine Technik zum Aufrechterhalten der Integrität von Paketen, die auf einem Endgerät gespeichert sind, gemäß einer Ausführungsform. 19 FIG. 11 illustrates a technique for maintaining the integrity of packets stored on a terminal, according to one embodiment.

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.In 19 the terminal 150 stores a plurality of packets 441, 443, ..., 445. Some of the packets are stored in the memory in the storage device 130 having the security features. Some of the packets may be stored outside of storage device 130 .

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.A core package 441 stored in the storage device 130 may be executed in the processing device 118 of the host system 120 connected to the storage device 130 in the terminal 150 . The packet 441 controls the operations of the terminal 150 in transmitting the identity data 113 of the terminal 150 to the security server 140 and in communicating with a packet store 191 to repair and/or update packets 441, 443, ..., 445. The package repository 191 can be, for example, the firmware store 170 of the 14 and 15 include.

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.The security features of the storage device 130 ensure that a valid version of the packet 441 is executed in the terminal 150 to avoid tampering and/or corruption in terminal 150 identity verification 373 and packet repair 385 operations.

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.For example, the storage device 130 may store a backup version of the core package 441 in a secure area of the storage device 130 . If the package 441 has a change, the storage device 130 may replace the changed version of the package 441 with the backup version to perform at least the operations of verifying 373 the identity of the end rats 150 and for repairing 385 and/or updating 377 the packages.

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.After the terminal 150 has generated the identity data 113, the terminal 150, which executes the package 441, transmits the identity data 113 to the security server 140 for verification 373. The identity data 113 can be generated, for example, using the technique of 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.The identity data 113 can contain information about the functional status of the packages 447, for example current hash values of the packages 441, 443, ..., 445, and/or information as to whether one of the packages 443, ..., 445 is damaged, based on a comparison of the current hash values and the stored hash values of function versions of the respective packages.

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.Optionally, a portion of message 131 may be provided as ciphertext generated using session key 263 . For example, the encrypted portion of the message may include package 447 health information and/or activity 177 information. The session key 263 may be generated to be shared by the storage device 130 and the security server in connection with the verification 373 of the identity of the terminal 150, as in FIG 9 explained.

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.In general, the identity data 113 can be transmitted from the terminal 150 to the security server 140 directly via a communication link or indirectly via an intermediate server, for example a client-server 141 as in 5 , 9 , or 10, a firmware store 170 in 14 or 15 , a service store 190 in 15 , or the package repository 191 from 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.After checking 373 the identity data 113, the security server 140 can communicate with the package repository 191 in order to check the integrity of the packages 441, 443, . . . , 445 based on the package information 447 provided in the identity data 113.

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.For example, the packet 441 in the terminal 150 can be checked. However, as a new version of package 441 is released to package repository 191, package 441 may become obsolete. Thus, by updating the packet 441, the security of the operations of the terminal 150 and the integrity of the system can be improved.

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.For example, packet 443 or 445 may have changes in terminal 150 and thus become corrupted. The state data 195 of the corresponding packages 193 in the repository 191 can be compared with the package state information 447 provided in the identity data 113 in order to detect the change.

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.If a package (e.g. 441, 443, ..., 445) is detected as obsolete or corrupt, the security server 140 can instruct the terminal 150 and/or the package repository 191 to repair 385 or 377 the package To update.

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.The operation to repair 385 or update 377 a package may include the security server 140 generating a verification code 153 for a command 155 to write data to the storage device 130 . If a packet contains sensitive information, such as configuration parameters customized for terminal 150, the replacement packet may be provided in storage device 130 as ciphertext generated with session key 263 or another secret key.

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.After repairing 385 or updating 377 the terminal 150 can transmit the updated identity data 113 . If the security server 140 determines that the identity data 113 is valid and the packet information 447 in the identity data 113 indicates that the packets 441, 443, ..., 445 in the terminal 150 are intact and up to date, the security server 140 certify the authenticity of the terminal 150.

20 zeigt ein System, das Sicherheitsoperationen basierend auf der Verfolgung von Aktivitäten eines Endgeräts gemäß einer Ausführungsform implementiert. 20 12 shows a system that implements security operations based on tracking activities of a terminal according to an embodiment.

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.For example, the security operations of 20 in combination with the techniques from the 9 , 10 , 14 , 15 , and/or 19, using security features in the storage devices associated with the 1 until 5 , have been explained, and in combination with the systems of 1 and/or 6 can be implemented.

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.In 20 For example, a user computer 180 may be used to visit an activity tracker 451 to set preferences 455 and/or review tracked activity records 453 of the terminal 150 having the unique identifier 111.

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.As in the 14 and 15 , user computer 180 is typically distinct and separate from terminal 150. In some instances, terminal 150 may include a user interface that allows computer 180 to set user preferences 455 and/o to be used for reviewing activity records 453.

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.The activity tracker 451 is coupled to a security server 140 to store activity records 453 about the activities of the terminal 150 in which the identity data 113 of the terminal 150 is verified by the security server 140 .

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.Preferences 455 may include security settings for terminal 150 activities. For example, the security settings may be implemented to implement parental controls, detect fraudulent use of the terminal 150, track the location of the terminal 150, etc.

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.For example, references 455 may identify a geographic region for terminal 150. If the terminal 150 sends identity data 113 from a location outside of the geographic region, the activity tracker 451 may generate a security alert to a registered owner or user of the terminal 150 .

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.For example, the security notification may be delivered to an owner's or user's mobile device, an email address or phone number identified in the preferences, and/or an application running on the user's computer 180, personal media player, cell phone, smartphone, etc will.

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.Preferences 455 may include, for example, a user-selected option associated with a predetermined condition specified in preferences 455 . If an activity associated with the transmission of the identity data 113 satisfies the condition, the selected option causes the security server 140 and/or the client-server 141 to generate a rejection in an access response 172 for the corresponding access request 171. Alternatively or in combination, the option may trigger a security alert to a contact registered in Settings 455.

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.The terminal 150 can transmit the access request 171 to the client-server 141 to request a service. For example, the service may provide the terminal 150 with a cellular connection, an Internet connection, a connection to the user's computer 180, online storage, an online computing resource, and so on. For example, the service may involve the processing of a payment, a transaction, a message, and so on.

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.The identity data 113 provided in the access request 171 may include activity information 177, as illustrated in FIG 18 . Alternatively or in combination, the client-server 141 may provide similar or separate activity information in the verification 173 requested to the security server 140 . For example, the client-server 141 may specify access attributes 449 in the request 173 validation. The access attributes 449 identify certain aspects of the current activity of the terminal 150 for which the identity of the terminal 150 is to be authenticated by the security server 140. The client-server 141 transmits the verification request 173 to the security server 140, which verifies the identity data 113 to determine the authenticity of the identity of the terminal 150.

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.After verifying 373 the identity data 113 provided in the verification request 173 , the security server 140 can generate an activity record 453 for the activity tracker 451 . The activity data record 453 can contain the activity information 177 extracted from the identity data 113 and/or the access attributes 449 of the current activity of the terminal device 150 extracted from the verification request 173 .

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.Based on the activity record 453, the activity tracker 451 determines whether the current activity meets any of the conditions set in the preferences 455. When a condition in the settings 455 is met, the activity tracker 451 can run a security operation to implement an option selected for the condition.

Die Sicherheitsoperation kann beispielsweise eine Benachrichtigung an einen Registerinhaber oder Benutzer des Endgeräts 150 beinhalten.The security operation may include, for example, a notification to a register holder or user of the terminal 150.

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.The security operation may include, for example, directing the security server 140 to provide a verification response 174 indicating a security restriction, a security issue, unauthorized use of the terminal 150, and so on.

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.Optionally, the activity tracker 451 can identify a pattern of activities of the terminal device 150 from past activity records 453 .

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.For example, the pattern may include a geographic area or region of the terminal 150 in which the terminal 150 operated in the past. The pattern can include, for example, a time in a day or in a week when the end device 150 has no past activity. The pattern may include, for example, an access attribute 449 portion of past terminal 150 activities.

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.If the current activity deviates from the pattern, the activity tracker 451 can generate a notification and optionally cause the security server 140 and/or the client-server 141 to deny the access request 171 .

Wahlweise kann der Sicherheitsserver 140 die in den Identitätsdaten 113 bereitgestellten Aktivitätsinformationen 177 überprüfen, um Sicherheitsrisiken zu erkennen.Optionally, the security server 140 can review the activity information 177 provided in the identity data 113 to detect security risks.

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.For example, the date and time and/or location specified in the activity information 177 can be compared to the corresponding information in the access attributes 449 to identify inconsistencies. A mismatch may be an identifier for the use of stolen identity data 113, for tampering with the terminal 150, or for insecure operations.

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. 21 FIG. 12 shows a method for updating or repairing a package stored in a terminal according to an embodiment. For example, the process of 21 be implemented using the techniques from 18 and 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.At block 461 , a server system receives from a terminal 150 identity data 113 generated by a storage device 130 configured in the terminal 150 .

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.For example, the server system may include a security server 140 that stores secrets from storage devices (e.g., 130) and/or other servers, such as a package repository 191, firmware store 170, and/or other server stands.

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 Geräteschlüssel in der Speichervorrichtung 130.At block 463, the security server 140 verifies the identity data based on the information stored in the security server 140 about the terminal device 150, including a device key in the storage device 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.For example, the operations in block 463 may be performed in a manner similar to the operations performed in block 323, block 343, block 403, and/or block 423.

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.In block 465, the security server 140 extracts the health information 447 of a package (e.g. 167, 441, 443, ..., 445) stored in the terminal 150 from the identity data 113 that has been verified.

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).The status information 447 can contain, for example, a current hash value 169 of the packet 167 as it is stored in the terminal device 150 . The security server 140 can compare the current hash value 169 extracted from the identity data 113 with a hash value of a functional, current version of the package 167 stored in the server system (e.g. in the repository 191, the 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.Receiving the identity data in block 461 may be the result of the terminal 150 executing the packet 167 as stored in the terminal 150, for example. The package 167 can contain at least part of the firmware 363 or an operating system of the terminal device 150 . The state information 447 can be used to determine whether the package 167 is out of date.

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.In another example, receiving the identity data in block 461 may be the result of the terminal 150 executing a first packet 441 as stored in the terminal 150 . The first package 441 can contain at least part of the firmware 363 or an operating system of the terminal device 150 . State information 447 can be used to determine whether a second package (e.g., 443 or 445) is out of date, corrupt, or modified.

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.If the second packet (e.g. 443 or 445) contains data adapted for the terminal 150. The server system may receive a copy of the second package (e.g. 443 or 445) at the time the second package (e.g. 443 or 445) is successfully configured in the terminal 150. The second packet (e.g. 443 or 445) may contain one or more configuration parameters of the terminal device 150, for example. In response to successfully configuring the second packet (e.g., 443 or 445), the server system may receive an operational version of the second packet (e.g., 443 or 445) from the terminal 150. Thereafter, if the state information 447 extracted at block 465 indicates that the second package (e.g., 443 or 445) needs to be repaired, the working version stored in the repository 191 can be used.

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).In some implementations, extracting state information 447 from identity data 113 includes decrypting a portion of a message 131 provided in identity data 113 (e.g., using a session key 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 Geräteschlü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.The identity data 113 includes a first verification code 133. The security server 140 verifies the identity data 113 by determining whether the first verification code 133 was generated from the message 131 and the identity of the storage device 130. The secret can be the unique device key 101 in the memory 130 and/or the secret key 137, for example. The secret code of the storage device 130 is not transmitted outside the storage device 130 after the storage device 130 is built into the terminal 150. FIG.

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.At block 467, the security server 140 blocks, at least in part, with the state information 447 that the package stored in the terminal 150 requires an update or repair.

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.At block 469, the security server 140 initiates an operation to perform the update or repair on the package stored in the terminal 150.

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.For example, to replace or repair a package stored on storage device 130, security server 140 generates a second verification code 153 for an instruction 155 using a cryptographic key that represents authorization to execute instruction 155 on storage device 130. For example, instruction 155, when executed on storage device 130, causes the packet (e.g., 441 or 443) to be replaced on storage device 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.In some implementations, to repair a package 445 stored off storage device 130, a replacement of package 445 is first stored on storage device 130. After the storage device has verified the integrity of the replacement, the package 445 may be replaced by executing instructions in a package 441 loaded from the storage device 130 . Optionally, a second verification code 153 may be generated to write the replacement to the storage device 130 and/or allow a repair or replacement of the package 445 to be performed.

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. 22 FIG. 12 shows a method for performing a security operation based on one or more activities of a terminal according to an embodiment. For example, the process of 22 be implemented using the techniques from 18 and 20 .

Bei Block 481 speichert ein Server-System Daten, die eine oder mehrere Präferenzen 455 für ein Endgerät 150 darstellen.At block 481 , a server system stores data representing one or more preferences 455 for a terminal 150 .

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.For example, the server system may include a security server 140 that stores secrets from storage devices (e.g., 130) and/or other servers, such as an activity tracker 451, a package repository 191, a firmware store 170, and/or or another server is available.

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.At block 483, the server system receives a verification request 173 with identity data 113 generated by a storage device 130 configured in the terminal 150.

Bei Block 485 bestimmt das Server-System, dass die Identitätsdaten 113 zumindest teilweise basierend auf einer Identität der Speichervorrichtung gültig sind.At block 485, the server system determines that the identity data 113 is valid based at least in part on an identity of the storage device.

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.For example, the operations in block 485 may be performed in a manner similar to the operations performed in block 323, block 343, block 403, block 423, and/or block 463.

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.At block 487, the server system determines that an activity associated with the identity data 113 meets a condition specified for the terminal 150.

Die Bedingung kann zum Beispiel in den Präferenzen 455 für das Endgerät 150 angegeben werden. WennThe condition can be specified in the preferences 455 for the terminal 150, for example. if

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 73 eine Überprüfungsantwort 174 bereitstellt.At block 489, the server system performs a security operation associated with the condition by providing a verification response 174 in response to the verification request 73. FIG.

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.The operation may include, for example, transmitting an alert or notification to a contact registered in one or more references 455.

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.For example, the security operation may include identifying a security risk or limitation in the validation response 174 . Optionally, the security server 140 can provide the verification response 174 that does not confirm the authenticity of the terminal device 150 even if the identity data 113 has a valid verification code 133, given the secret key 137 of the storage device 130 and the message contained in the identity data 113 131. If the activity associated with the identity data 113 satisfies the condition, the verification response 174 may be configured to cause a client-server to issue a request 171 for a service to the terminal 150, as indicated by the identity data 113 identified to reject.

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.The condition may be assessed for the activity based on activity information 177 embedded by storage device 130 in identity data 113 and/or access attributes 449 provided by client-server 141 in verification request 173 .

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.For example, after the security server 140 has determined that the verification code 133 in the identity data 113 is valid, the security server 140 can trust that the activity information 177 embedded in the identity data 113 has not been altered after the storage device 130 generated the verification code 133. Thus, the activity information 177 can be extracted from the identity data 113 for evaluating the condition. Optionally, the activity information 177 can be provided in the message as ciphertext, which is encrypted using one of the methods specified in 9 explained manner generated session key 263 or another secret cryptographic key for decryption in the storage device 130 is to be decrypted.

Alternativ oder in Kombination dazu kann der Sicherheitsserver 140 Zugriffsattribute 449 aus der Überprüfungsanforderung 173 extrahieren. Zum Beispiel kann der Client-Server 141 nach dem Empfangen der Zugriffsanforderung 171 für einen vom Client-Server 141 bereitgestellten Dienst 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.Alternatively or in combination, the security server 140 can extract access attributes 449 from the verification request 173 . For example, the client-server 141 may generate the verification request 173 to the security server 140 after receiving the access request 171 for a service provided by the client-server 141 . The verification request 173 is generated to include the identity data 113 from the access request 171 . Further, the client-server 141 may add the access attributes 449 to provide information about the activity of the terminal 150 in the context of requesting the client-server 141 service.

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.For example, the condition may include a mismatch in activity information 177 and access attributes 449; and the mismatch may trigger a rejection of the access request 171 and/or a rejection of the identity data 113 in the verification response 174, even if the identity data 113 has a valid verification code 133.

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.In some implementations, the server system communicates with a user computer 180 to receive the data representing one or more preferences 455 for the terminal 150.

Alternativ oder in Kombination dazu kann das Server-System die Präferenzen 455 aus den Aufzeichnungen 453 über frühere Aktivitäten ableiten.Alternatively, or in combination, the server system may derive the preferences 455 from the historical activity records 453 .

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.For example, a server system activity tracker 451 may store a plurality of records 453 of terminal 150 activities. Based on the plurality of records 453, the activity tracker 451 can determine a pattern of the terminal 150 activities. The pattern may include a geographic area, a point in time in a day or week, or an activity attribute area, or any combination thereof. A condition to trigger the security operation of block 489 may be satisfied by non-pattern activity.

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.Optionally, the activity tracker 451 may present the activities of the terminal 150 to an owner or authorized user of the terminal 150 based on the records 453 . For example, the owner or authorized user can set conditions for implementing parental controls, access restrictions, etc. based on a review of past activities.

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.The identity of a terminal 150, authenticated by the security server 140, can be dynamically associated with a subscription account, represented by an account identifier, to receive the services provided by a client-server 141 for the account. If the terminal 150 is not using the Services, the association between the identity of the terminal 150 and the subscription account may be removed to allow another terminal to use the subscription account. Thus, a group of terminals (e.g. 150) can be configured to share the subscription account and use the subscription account at any given time.

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.For example, a group of terminals may be configured to use a client-server 141 service for cellular connections. Traditionally, a subscriber identification module (SIM) card is used to represent a subscriber/subscription account. The group of terminals can use the subscription account represented by the SIM card by installing the SIM card in a terminal of the group at a certain point in time. In order to allow another terminal in the group to use the subscription account, the SIM card has to be physically moved from one terminal to another terminal.

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.A system like the one above in conjunction with 6 was explained, allows the use of a virtual subscriber identification module (vSIM) on a terminal (z. B. 150) through a virtual card registration 237 based on of identity verification or terminal authentication 239 performed using the security server 140. The system of 6 may be further configured to separate the terminal (e.g., 150) from the card profile 219 representing the subscription account so that the virtual card registration 237 can be performed for another terminal to use the subscription account.

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.For example, a subscribed service (e.g., a cellular connection) provided to a subscription account may be shared among a number of terminals owned by a business (or other entity). The terminals (e.g. 150) in the population may not require the account's service at the same time. Thus, it may be advantageous to configure the terminals in the population to share one or more subscription accounts. When more than one subscription account is configured to be shared by the population of endpoint devices (e.g., Internet of Things (IoT) devices), a small portion of the population can use the services subscribed to for the accounts at the same time.

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.For example, a server system can be configured to track the current usage states of the terminals in the population. When a terminal communicates with a client-server to request a service, the terminal can be dynamically bound to a subscription account. If the end device is no longer actively using the service, the subscription account can be released from the end device. If the number of terminals actively using the services provided for the subscription accounts is not greater than the number of subscription accounts available for sharing, the active terminals can use the services of the accounts at the same time. If the subscription accounts are currently bound to and actively used by part of the population, a request for service from another terminal may be denied until one of the subscription accounts is released from active use and thus becomes available for sharing.

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.For example, a virtual subscriber identification module (vSIM) may be bound to an enterprise Internet of Things (IoT) device in response to the IoT device's request for a cellular connection. If the cellular connection has been idle for a period longer than a threshold, the cellular connection may be disconnected; and the virtual subscriber identification module (vSIM) can be shared by the IoT device and made available to connect to another enterprise IoT device. Thus, the enterprise can subscribe to a reduced number of vSIMs, and when all vSIMs are used, the request for a cellular connection from another device can be queued until one of the connections is disconnected and a vSIM is queued for assignment to the device becomes free.

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.Optionally, the security server 140 can be configured to throttle and/or schedule the forwarding of requests to control the use of the limited number of subscribed cellular connections.

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. 23 and 24 12 illustrate systems configured to implement subscription sharing among a group of terminals, according to one embodiment.

In den 23 and 24 weist ein Service-Store 190 Abonnementdaten 387 auf, die eine Endgerätegruppe 501 einer Teilnehmergruppe 503 zuordnen.In the 23 and 24, a service store 190 has subscription data 387 that associates a terminal group 501 with a subscriber group 503.

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.The terminal group 501 has a large number of unique identifiers 111,...,112. Each of the unique identifiers (e.g. 111) represents a storage device (e.g. 130) installed in a corresponding terminal (e.g. 150) in a group of terminals.

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.Subscriber group 503 has one or more subscriber identity numbers (e.g., 505). Each subscriber identity number (e.g., 505) in subscriber group 503 represents a subscriber to the service of client-server 141. For example, each subscriber identity number (e.g., 505) may be used to identify a unique subscription account used at a particular point in time to be used by a participant.

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.For example, subscriber identity number 505 may be used to represent a unique subscriber, just as a subscriber identification module (SIM) represents a subscriber in a cellular network.

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.When the SIM card is inserted into a mobile phone, a communication link is established with the subscriber; and the mobile phone is provided with the services on the subscriber's account. If the SIM card is inserted into another mobile phone, the communication link to the subscriber is established with the other mobile phone that currently has the SIM card.

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.Likewise, when the subscriber identity numbers 505 are associated with the unique identifier 111, the services offered to the account of the subscriber represented by the subscriber identity numbers 505 are provided to the terminal 150 having the unique identifier 111. When the subscriber identity numbers 505 are associated with an alternative unique identifier 112 , the services offered to the subscriber's account represented by the subscriber identity numbers 505 are provided to an alternative terminal having the unique identifier 112 .

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.In 23 the security server 140 is configured to dynamically link a subscriber identity number 505 from the subscriber group 503 and a unique identifier 111 from the terminal group 501 .

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.For example, in response to a verification request 173 from client-server 141 that includes identity data 113 , security server 140 may determine whether identity data 113 includes a valid verification code 133 for a storage device 130 with unique identifier 111 . If the identity data 113 is valid, the security server 140 can determine whether the subscriber group 503 currently has a subscriber identity number 505 that can be used by the storage device 130 and/or the terminal 150 with the unique identifier 111 . If so, the security server 140 may provide a verification response 174 confirming the authenticity of the identity data 113 and its association with the subscriber identity number 505 . In response, client-server 141 may provide terminal 150 with the services offered for the account identified by subscriber identity number 505 .

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.If no subscriber identity number 505 in the subscriber group 503 is currently available for use by the terminal 150, the verification response 174 does not identify a subscriber identity number for the identity data 113, which in some implementations may cause the client-server 141 to reject a request for a service from the terminal 150 .

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.The verification requirement 173 in 23 may include access attributes 449 specifying a requested time period for mapping the unique identifier 111 identified in the identity data 113 to an available subscriber identity number (e.g., 505) for use by the terminal 150 having the unique identifier 111, specify.

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.In some implementations, the system is configured to associate the unique identifier 111 and the subscriber identity number 505 with the unique identifier 111 and/or identity data 113 for a predetermined period of time after the verification response 174 identifying the subscriber identity number 505 . After the predetermined period of time, the service store 190 disassociates the subscriber identity number 505 from the unique identifier 111 and makes the subscriber identity number 505 available for use by another terminal with a different unique identifier (e.g., 112) in the terminal group 501. After the predetermined period of time, the client-server 141 will not provide the services offered for the account represented by the subscriber identity number 505 to any of the terminals (e.g. 150) with the unique identifiers 111, ..., 112 in the terminal group 501 available until it has another verification response 174 from the security server 140 linking the subscriber identity number 505 to one of the unique identifiers 111,...,112 in the terminal group 501.

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.If the terminals with the unique identifiers 111, ..., 112 compete in the use of the subscriber identity numbers (e.g. 505) from the subscriber group 503, the service store 190 can allocate the use of the subscriber identity numbers (e.g. 505 ) in the subscriber group 503.

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.For example, the service store 190 can track the terminals in the group 501 that have rejected access requests for lack of available subscriber identity numbers 505 and prioritize the subsequent assignments of available subscriber identity numbers 505 based on tracked priorities.

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.For example, when the subscriber identity number 505 is available for use, the service store 190 can open a time window in which access requests can be received from different terminals; if multiple access requests for the group 501 are received, a terminal with the earliest request that was rejected before the timeslot may have the highest priority in order to be given the opportunity to use the subscriber identity number 505.

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 some implementations, the terminals having unique identifiers 111,...,112 in terminal group 501 may compete for the opportunity to identify the subscriber identity numbers (e.g., 505) in subscriber group 503 based on one or more predefined ten rules to use. For example, after receiving a rejection of a request, a terminal (e.g., 150) may wait a random amount of time to make another request. The randomness of the waiting times after a rejection allows the opportunities to use the subscriber group 503 for service access to be distributed to terminals that require services.

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 es 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 some implementations, a terminal 150 that has been temporarily assigned a subscriber identity number 505 may inform the client-server 141 and/or the security server 140 to release the subscriber identity number 505 from assignment to the terminal 150. For example, after terminal 150 has completed the communication using a service provided for subscriber identity number 505, subscriber identity number 505 may be returned to a pool of subscriber identity numbers in group 503 assigned to another terminal with a unique identifier 112 in group 501 assigned to and/or used by.

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.In some implementations, the system can track the active activities of terminal 150 using subscriber identity number 505 . After a period of inactivity, the service store 190 may disassociate the subscriber identity number 505 from the unique identifier 111 .

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 in 24 veranschaulicht ist. 23 12 illustrates a configuration wherein the assignment of a subscriber identity number 505 to a unique identifier 111 is controlled by a security server 140 in response to a verification request 173 and/or a verification response 174. FIG. Alternatively and/or in combination, the client-server 141 can be connected to the service store 190 to implement the assignment and/or to use the assignment to provide a service, as described in 24 is illustrated.

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.In 24 , the client-server 141 is coupled to a service store 190 and an activity tracker 451 . Based on the verification response 174, which indicates the authenticity of the terminal 150 with the unique identifier 111 and the availability of the subscriber identity number 505 for use in the terminal group 501, the client-server 141 can cause the service store 190 to store data that the specify temporary assignment of the subscriber identity number 505 for unique identification 111.

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.The client-server 141 can then use the activity tracker 451 to determine whether to remove the association with the subscriber identity number 505 from the unique identifier 111 .

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.For example, after an inactive period of predetermined duration in which the terminal 150 does not use the services offered to the account represented by the subscriber identity number 505, the client-server 141 can cause the service store 190 to update the subscription data 387 and to end the assignment of the subscriber identity number 505 to the unique identifier 111.

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.For example, after receiving an identifier or notification from terminal 150, client-server 141 may cause service store 190 to stop associating subscriber identity number 505 with unique identifier 111.

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.In some implementations, the client-server 141 may cause the service store 190 to de-associate the subscriber identity number 505 with the unique identifier 111 after a period of time following the association of the subscriber identity number 505 with the unique identifier 111 . The period of time can be predetermined or can be determined from an access request 171 received from the terminal device 150 .

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. 25 FIG. 12 shows a method for facilitating the sharing of subscriptions in a group of terminals according to an embodiment. For example, the procedure of 25 using the above in conjunction with the 23 and 24 explained techniques are implemented in a system with security features that are used in conjunction with the 1 until 19 was explained.

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.At block 521, a server system stores data by which a terminal group 501 is associated with at least one subscriber identifier (e.g., identity number 505). The terminal group 501 may comprise a plurality of terminals (e.g. 150) identified by unique identifiers 111,...,112.

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.For example, the server system may include a security server 140 that stores secrets from storage devices (e.g., 130) and/or other servers, such as a service store 190, an activity tracker 451, a package repository 191, a Firmware Store 170 and/or another server is available. The server system may further include a client-server 141 and/or a map server 223, as illustrated in FIG 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.At block 523, the server system receives a verification request 173 with identity data 113 generated by a storage device 130 configured in a terminal 150. The identity data 113 identify the terminal 150 based on its unique identifier 111, which is in the terminal group 501.

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.At block 525, in response to the verification request 173, the server system determines, based at least in part on a secret of the storage device 130, that the identity data 113 is valid.

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.For example, the operations in block 525 may be performed in a manner similar to the operations performed in block 323, block 343, block 403, block 423, block 463, and/or block 485.

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.At block 527 , the server system determines that the subscriber identifier (e.g., subscriber identity number 505 ) is not currently assigned to any terminal in terminal group 501 .

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.At block 529, the server system assigns the subscriber identifier to terminal 150 based on the data associated with terminal group 501 having the subscriber identifier (e.g., identity number 505). The assignment causes the terminal to be provided with a service for an account represented by and/or associated with the subscriber identifier (e.g. identity number 505).

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.For example, the subscriber identifier (e.g., identity number 505) represents a unique subscriber to the service provided in a network (e.g., 225) having multiple terminals (e.g., 150), including the plurality of End devices from end device group 501 and other end devices that are not in end device group 501.

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.For example, the network (e.g., 225) can be configured to provide the terminal with services such as a cellular connection, an Internet connection, a connection to a user's computer, an online storage facility, an online computing resource, a payment, a transaction or a message or any combination thereof.

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.For example, assigning the subscriber identifier (e.g., identity number 505) to terminal 150 includes configuring terminal 150 to have a unique identity identified by the subscriber identifier (e.g., identity number 505) on a network (e.g., B. 225) is shown.

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.For example, the network (e.g. 225) may require different terminals in the network (e.g. 225) to have different identities represented by different subscriber identifiers (e.g. identity number 505). The identity data 113 generated in the storage device 130 does not contain any subscriber identification. The identity data 113 and/or unique identifier 111 of the storage device 130 and/or the terminal 150 may be dynamically assigned or associated with a subscriber identifier (e.g. identity number 505) to identify the terminal 150 to the service network (e.g. B. 225) to configure.

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.For example, assigning the subscriber identifier (e.g., identity number 505) to the terminal 150 includes storing data representing the assignment of the subscriber identifier to the terminal for a period of time.

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.For example, the server system may remove the data representing the assignment of the subscriber identifier to the terminal after the period of time to de-subscribe the terminal 150 receiving the service on the network. After the data has been removed, the terminal 150 no longer has the identity of the subscriber represented by the subscriber identifier (e.g. identity number 505) in the service network (e.g. 225).

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.For example, the server system may monitor the activities of the terminal 150 in receiving the service as a subscriber in the service network (e.g., 225), and in response to detecting a time of inactivity of the terminal 150 in receiving the service as a subscriber in the network (e.g., 225), the server system may remove the data to reconfigure the terminal 150 to use the subscriber's identity, represented by the subscriber identifier (e.g., identity number 505), in the service -Network (e.g. 225) does not have.

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.Alternatively, the enabling of terminal 150 may be performed by the subscriber identifier (e.g., subscriber identity number 505) configured in the service network (e.g., 225) in response to a terminal 150 message or request.

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.Alternatively, the length of time period after which the subscriber identifier (e.g. identity number 505) is released from the binding to terminal 150 may be a predetermined length, starting from a time of assignment of the subscriber identifier (e.g. identity number 505) to the terminal 150.

Alternativ kann die Länge des Zeitraums in der Überprüfungsanforderung 173 angegeben werden.Alternatively, the length of the time period can be specified in the verification request 173.

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.For example, the verification request 173 is received from a client-server 141 in the service network (e.g., 225). To configure terminal 150 to have a subscriber's identity by subscriber identifier (e.g., identity number 505), security server 140 may transmit a verification response 174 to client-server 141 and in response to verification request 173 . The verification response 174 is configured to indicate the validity of the identity data 113 and the association of the identity data 113 with the subscriber identifier (e.g., identity number 505).

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.In general, a terminal 150 can be identified using different identifiers for different services, in different networks and/or different contexts. Each terminal 150 identifier may be used to represent the terminal 150 as a member, subscriber, account, authorized device, and/or one entity among many in a group specific to a type of service, connection, communication, and so on.

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.For example, the terminal 150 can be configured to communicate with various client-servers 141,...,143 for their services. The terminal 150 can be identified with different client-servers 141,...,143 using different subscriber identifiers. Each of the subscriber identifiers of terminal 150 represents a unique subscriber and/or account recognized by a respective client-server (e.g., 141,...,143) for its services to its subscriber population.

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.For example, the terminal 150 can be configured to communicate with a client-server 141 for various types of services. Different identifications of the terminal 150 can be used to represent the terminal 150 as a subscriber to a different type of service.

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.For example, terminal 150 may be assigned an integrated circuit card identifier 251 to act as a smart card, a mobile device identity number 253 to act as a cellular device, a subscriber identity number 255 to act as a subscriber to cellular connections, and so on.

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.The security server 140 can be configured to manage the identities of the terminal 150 using the security features of the storage device 130 configured in the terminal 150 .

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.For example, a third party may request the security server 140 to associate a subscribed service in an account with a public identification of the terminal 150. Because the identifier may be public knowledge, there is a potential risk of fraudulent use of the public identifier. The identity data 113 of the terminal 150 can be configured to include the public identification. Based on a Unique Device Secret (UDS) 101 of the storage device 130 configured in the terminal 150, the security server 140 can verify whether the identity data 113 received from the terminal 150 is authentic; and thus terminal 150 has the identity represented by the public identification contained in identity data 113 . The verification performed by the security server 140 can detect fraudulent use of the public identification as an identity.

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.The security server 140 can be configured to manage the secure, dynamic binding of the public identification to the terminal device 150 . For example, in response to a request from an authorized party in an application domain, the security server 140 may bind a unique public identifier to the terminal 150 for the application domain. For example, the authorized party may be verified based on tracking the ownership rights of storage devices configured in the terminals (e.g., 150). Each application domain can have a variety of public identifiers that represent separate identities in the application domain. The security server 140 binds a unique public identifier to each end device.

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 Geräteinformationen 121 für die Erzeugung der Identitätsdaten 113 der Speichervorrichtung 130 und/oder des Endgeräts 150 zu speichern.For example, in response to a request to bind a public identifier to a terminal 150, the security server 140 may verify that the public identifier is not currently bound to another terminal and using a cryptographic key that provides ownership authorization for operation of the storage device 130, generate an instruction to store the public identification in the storage device 130 as part of the device information 121 for the generation of the identity data 113 of the storage device 130 and/or the terminal device 150.

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.Alternatively, the security server 140 may store data with which the terminal 150 is associated with the public identification of the terminal 150 in an application domain. In reaction upon a verification request 173 in the application domain, the security server 140 verifies the identity data 113 provided in the terminal 150 and looks up the public identification of the terminal 150 in the application domain. The public identification can be provided in the verification response 174 .

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.The secure, dynamic binding of the public identifier to the terminal 150 can be used to facilitate security operations. For example, if the terminal 150 is lost/stolen, the owner of the terminal 150 can request the security server 140 to bind the public identification of the lost/stolen terminal 150 to a replacement terminal. Once the security server 140 binds the public identification of the lost/stolen terminal 150 to the substitute terminal, the service subscribed for the lost/stolen terminal 150 is transferred to the substitute terminal. Optionally, the owner of the lost/stolen terminal 150 may request the transfer of data from the lost/stolen terminal 150 to the replacement device; and after the transfer, the owner can request the deactivation of the lost/stolen terminal 150 to minimize the loss/impact of the terminal 150.

26 zeigt Techniken zum Verwalten einer Identifizierung eines Endgeräts gemäß einer Ausführungsform. 26 FIG. 12 shows techniques for managing an identification of a terminal according to an embodiment.

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/oder des Aktivitäts-Trackers 451 verwendet werden von 20.For example, the techniques of 26 in the system of 1 and/or 6 using security features in the storage devices associated with the 1 until 5 and 9 until 10 were explained. For example, the techniques of 26 with the services of the firmware store of 14 and 15 of the service store 190 of the 15 , 23 and/or the activity tracker 451 are used by 20 .

In 26 speichert der Sicherheitsserver 140 eine eindeutige Identifizierung 111 einer Speichervorrichtung 130 und deren eindeutigen Geräteschlüssel 101. Ferner speichert der Sicherheitsserver 140 Geräteinformationen 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 Geräteschlüssel 101 und den Geräteinformationen 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 Geräteschlüssel 101 besitzt.In 26 the security server 140 stores a unique identification 111 of a storage device 130 and its unique device key 101. Furthermore, the security server 140 stores device information 121 that characterizes the hardware, software and/or data configuration of the terminal device 150 in which the storage device 130 is installed. As in 2 , a secret key 137 is based on the device unique key 101 and the device information 121. The secret key 137 is used by the storage device 130 to generate the verification code 133 of the identity data 113; and the security server 140 verifies that the verification code 133 is generated using the secret key 137 indicating that the identity data 113 was generated in the storage device 130 having the unique device key 101 .

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 Geräteinformationen 121 speichern, die mit der eindeutigen Identifizierung der Speichervorrichtung 130 und/oder des Endgeräts 150 assoziiert sind.In 26 the security server 140 can link the unique identifier 111 to a public identifier 541 of the terminal device 150 . For example, after public identifier 541 is assigned to terminal 150 in an application domain, security server 140 may store public identifier 541 as part of device information 121 associated with the unique identifier of storage device 130 and/or terminal 150 .

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.For example, the application domain can be configured for the cellular connection, for the smart card process, for a service of a client-server 141 and so on. The identifier 541 can be used to represent the terminal 150 in a population of terminals in the application domain. Identifier 541 can be used to represent terminal 150 as a device, member, service subscriber, account, contact, and so on.

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.For example, the client-server 141 operating in the application domain may request the security server 140 to bind the public identifier 541 to the terminal 150 that has the unique identifier 111 . In a request 549 the client-server 141 can provide the identity data 113 received from the terminal 150 and the public identification 541 to be bound to the terminal 150 . In response to request 549, the security server 140 verifies the identity data 113 by determining whether the verification code 133 in the identity data 113 was generated using a secret key 137 of the storage device 130 having the unique identifier 111.

Nach der Überprüfung der Identitätsdaten 113 kann der Sicherheitsserver 140 die öffentliche Identifizierung 541 zu den Geräteinformationen 121 hinzufügen und die Speichervorrichtung 130 in dem Endgerät 150 veranlassen, die Geräteinformationen 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.After verifying the identity data 113, the security server 140 can add the public identification 541 to the device information 121 and cause the storage device 130 in the terminal 150 to update the device information 121 543. The storage 130 has a new secret key after the update 543, with which he creates new identity data 113, which contain the public identification 541. For example, the message 131 in the new identity data 113 may include the public identifier 541 in addition to the unique identifier 111. The security features of storage device 130 are configured to prevent misuse of unique identifier 111, and can also prevent misuse of public identification 541. For example, when the client-server 141 receives the new identity data 113 containing the public identification 541 , the client-server 141 can request the security server 140 to verify the new identity data 113 . If the new identity data 113 has a valid verification code 133, this is generated by a terminal 150 to which the public identification 541 is assigned.

Der Sicherheitsserver 140 kann die Geräteinformationen 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.The security server 140 may update 543 the device information 121 in a manner similar to updating 377 the firmware of the terminal 150 and/or repairing 385 a package installed in the terminal 150 . For example, the security server 140 can generate a verification code 153 for an instruction 155 to store the public identification 541 in the memory cells 103 of the storage device 130 . The verification code 153 is generated using a cryptographic key 145 representing ownership authorization to operate the storage device 130, including authorization controlled by the access controller 109 in the storage device 130 to execute the command 155 in the storage device 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.Optionally, associating public identifier 541 with terminal 150 does not require generating a new secret key to represent storage device 130 and/or terminal 150 . The public identifier 541 may be included in the message 131 used to generate the verification code 133 signed with the secret key 137 . Examination of the verification code 133 indicates that the public identifier 541 provided in the message 131 has not been altered; and the verification code 133 is signed by the storage device 130 installed in the terminal 150.

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.Optionally, update 543 is skipped; and the storage device 130 and/or the terminal 150 does not store the public identification 541. The security server 140 stores data with which the unique identifier 111 is associated with the public identifier 541 . After the security server 140 has verified the identity data 113 provided in a verification request, the security server 140 can look up the public identifier 541 relevant to an application domain for the unique identifier 111 identified in the message 131 of the identification data 113 and provide the public identifier 541 in a verification response, in a manner similar to the representation of the Subscriber Identity Number 505 in a Verification Response 174 illustrated in FIG 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 Geräteinformationen 121 der eindeutigen Identifizierung 111 zu aktualisieren.Optionally, the security server 140 has a portal 545 that allows a computer 180 to submit a request 547 to associate the public identifier 541 with a terminal 150 having the unique identifier 111 . After portal 545 verifies that computer 180 is operated by an authorized owner or user of terminal device 150 , portal 545 may communicate with security server 140 to update device information 121 of unique identifier 111 .

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.In one embodiment, terminal 150 includes a packet stored in storage device 130 . When the package is loaded from the storage device 130 and executed in the host system 120, the terminal 150 can communicate with the server 140 for update 543 . The communication between the terminal device 150 and the server 140 can take place via a client-server (e.g. 141), a firmware store 170, a service store 190, an activity tracker 451 or another server (e.g. the portal 545) or without the intermediary of a server.

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.For example, a terminal manufacturer (e.g., 150) may use a computer 180 to configure the terminals (e.g., 150) and request the binding of identifiers (e.g., 541) associated with the terminals (e.g., B. 150) have been assigned by the manufacturer. Such public identifiers can be, for example, identification numbers for mobile devices (e.g. 253), which represent individual devices in a communication network.

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.For example, a service provider may assign subscriber identity numbers (e.g., 255) to subscribers of a service that it offers. When an owner or user of a terminal 150 subscribes to the provider's services, the service provider may use a computer 180 to request binding of a subscriber identity number 255 to the terminal 150 .

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. 27 FIG. 12 shows a method for managing an identification of a terminal according to an embodiment. For example, the procedure of 27 using the above in conjunction with 26 explained techniques are implemented in a system with security features that are used in conjunction with the 1 until 19 was explained.

Bei Block 561 speichert ein Server-System die Zuordnung eines Geräteschlüssels (z. B. 101) einer in einem Endgerät 150 konfigurierten Speichervorrichtung 130, einer ersten Identifizierung 111 und Geräteinformationen 121 des Endgeräts 150.At block 561, a server system stores the association of a device key (e.g., 101) of a storage device 130 configured in a terminal 150, a first identifier 111, and device information 121 of the terminal 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.The server system may include a security server 140, for example. Optionally, the server system may further include a portal 545, a firmware store 170, a service store 190, an activity tracker 451, a package repository 191, and/or other server. In some implementations, the server system may further include a client-server 141 and/or a map server 223, as illustrated in FIG 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.At block 563, the server system receives a request (e.g., 547 or 549) to bind a second identifier 541 to the terminal 150 identified by the first identifier 111.

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.For example, the request (e.g. 547 or 549) to bind the second identification 541 to the terminal 150 can be received and/or initiated in the server system from a computer (e.g. 180 or a server 141). , which is separate from terminal 150. The server system is configured to determine whether the computer has permission to affix such a second identifier 541 to the terminal 150 . If so, the server system 140 may store data associated with the first identifier 111 and the second identifier 541 .

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).In one embodiment, the authority to attach such a second identifier 541 to the terminal 150 is associated with an entity that operates the computer and owns the storage device 130 (e.g., as a manufacturer, retailer, service provider, end-user of the terminal 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.For example, the entity may communicate with the terminal 150 and/or the storage device 130 via the computer to retrieve the current identity data 113 generated in the storage device 130 . The current identity data 113 contains the first identification 111 and can be checked by the server system as to whether the current identity data 113 in the storage device 130 is authenticated.

Zum Beispiel kann das Server-System in Reaktion auf die Anforderung Daten speichern, mit denen die erste Identifizierung 111 mit der zweiten Identifizierung 541 assoziiert ist.For example, the server system may store data associated with the first identifier 111 and the second identifier 541 in response to the request.

Zum Beispiel kann das Server-System die Geräteinformationen 121 der ersten Identifizierung 111 aktualisieren, um die zweite Identifizierung 541 zu beinhalten.For example, the server system may update the device information 121 of the first identifier 111 to include the second identifier 541 .

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.For example, the server system can communicate with the terminal 150 to update the data stored in the storage device 130 and/or to store the second identifier 541 in the storage device 130 .

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.Optionally, the second identification 541 can be used as part of the device information 121 in the storage device 130 to generate a secret key 137, wherein the secret key 137 is used to verify the verification code 133 of the identity data 113 of the storage device 130 and/or the terminal device 150 to create.

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.Optionally, the second identifier 541 does not alter the generation of the secret key 137. However, the second identifier 541 is stored in an access-controlled area of the storage device 130 and incorporated into the message represented in the identity data 113 (e.g., as part of the data C 127). 131 recorded.

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 Geräteinformationen 121 und/oder zur Darstellung in der Nachricht 131 der Identitätsdaten 113 gespeichert werden.For example, in response to the request to bind the second identifier 541 to the terminal 150, the server system may generate a verification code 153 for an instruction 155 and cause the storage device 130 to execute the instruction 155 with respect to the verification code 153. After receiving command 155 and command 155 verification code 153, access controller 109 of storage device 130 is configured to verify command 155 verification code 153 using a cryptographic key (e.g., access control key 149) that has permission to execute instruction 155 in memory 130. Storage device 130 is configured to execute command 155 in response to a determination that verification code 153 for command 155 is valid, execution of command 155 in storage device 130 stores second identifier 541 in storage device 130 for the subsequent generation of the identity data 113. For example, the second identification 541 can be stored as part of the device information 121 and/or for presentation in the message 131 of the identity data 113.

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.For example, the memory stores an instruction set executable in the terminal 150 . The set of instructions may be part of the content 161 or a package 441 of the terminal's firmware or operating system. The storage device 130 is configured to verify the integrity of the instruction set, before allowing terminal 150 to load the instruction set for execution. Since the instruction set is secured via the storage device 130, the server system can reliably communicate with the terminal 150 executing the instruction set to cause the storage device 130 to execute the command 155. The communication path between the terminal 150 and the server system can optionally take place via a client-server 141 and/or optionally be secured via a session key 263 and symmetric cryptography.

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.At block 565, the server system receives a verification request 173 with identity data 113 generated by the storage device 130. FIG. The identity data 113 includes a verification code 133 generated by a message 131 represented in the identity data 113 and a cryptographic key (e.g. secret key 137) derived at least in part from the secret code (e.g. 101). .

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 Geräteinformationen 121 konfiguriert ist; alternativ ist der kryptographische Schlüssel unabhängig von der zweiten Identifizierung 541.For example, in some implementations, the message 131 represented in the identification data includes the second identification 541. Optionally, the cryptographic key (e.g., the secret key 137) used to sign the message 131 in the form of the verification code 133 may be further based be derived on the second identifier 541 if the second identifier 541 is configured as part of the device information 121; alternatively, the cryptographic key is independent of the second identifier 541.

In einigen Implementierungen beinhaltet die in den Identifizierungsdaten 113 dargestellte Nachricht 131 nicht die zweite Identifizierung 541.In some implementations, the message 131 represented in the identification data 113 does not include the second identification 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.At block 567, the server system determines that the identity data 113 is valid based at least in part on a secret code (e.g., 101) of the storage device 130.

Beispielsweise können die Operationen in Block 567 auf ähnliche Weise wie die in Block 323, Block 343, Block 403, Block 423, Block 463, 485 und/oder Block 525 betriebenen Operationen durchgeführt werden.For example, the operations in block 567 may be performed in a manner similar to the operations performed in block 323, block 343, block 403, block 423, block 463, 485, and/or block 525.

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.At block 569, the server system provides a verification response 174 to the verification request 173 in response to determining that the identity data 113 is valid. The verification response 174 is configured to indicate that the identity data 113 was generated by the terminal 150 having the second identifier 541 .

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.For example, the server system can identify the second identifier 541 in the verification response 174 by looking up the second identifier 541 associated with the first identifier in the data stored in the security server 140 or by extracting the second identifier 541 from the identity data 113 . Alternatively, the server system may indicate that the identity data 113 is valid, including the second identifier 541 presented in the message 131 contained in the identity data 113.

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. 28 FIG. 6 illustrates an example machine of a computer system 600 in which an instruction set may be executed that causes the machine to perform one or more of the methodologies discussed herein. In some embodiments, computer system 600 may correspond to a host system that includes, couples to, or uses a storage subsystem, or may be used to perform the operations of a security manager 160 (e.g., to execute commands, to perform operations consistent with the security server 140 and/or the security features of the storage device 130 identified with respect to the 1 - 27 have been described). In alternative embodiments, the machine may be connected (e.g., networked) to other machines on a LAN, an intranet, an extranet, and/or the Internet. The machine can function as a server or a client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or client machine in a cloud computing environment infrastructure or environment are operated.

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.The machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a web appliance, a server, a network router, a Be a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify the actions to be performed by that machine. Further, while only a single machine is illustrated, the term "machine" should include any collection of machines that individually or collectively execute a set (or sets) of instructions for performing one or more of the methodologies discussed herein.

Das beispielhafte Computersystem 600 beinhaltet eine Verarbeitungsvorrichtung 602, einen Hauptspeicher 604 (z. B. Festwertspeicher (ROM), Flash-Speicher, dynamischer Direktzugriffsspeicher (DRAM) wie synchroner DRAM (SDRAM) oder Rambus DRAM (RDRAM), statischer Direktzugriffsspeicher (SRAM) usw.) und ein Datenspeichersystem 618, die über einen Bus 630 (der mehrere Busse umfassen kann) miteinander kommunizieren.The example computer system 600 includes a processing device 602, a main memory 604 (e.g., read only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), or RAM). bus DRAM (RDRAM), static random access memory (SRAM), etc.) and a data storage system 618 that communicate over a bus 630 (which may be multiple buses).

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 (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.Processing device 602 represents one or more general purpose processing devices, such as a microprocessor, central processing unit, or the like. In particular, the processing device may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor that implements other instruction sets, or processors that implement a combination of instruction sets. Processing device 602 may also be one or more specialized processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. The processing device 602 is configured to execute instructions 626 for performing the operations and steps discussed herein. Computer system 600 may further include a network interface device 608 for communicating over network 620 .

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.The data storage system 618 may include a machine-readable medium 624 (also referred to as a computer-readable medium) storing one or more sets of instructions 626 or software embodying one or more methodologies or functions described herein. Instructions 626 may also reside wholly or at least partially in main memory 604 and/or processing device 602 during their execution by computer system 600, where main memory 604 and processing device 602 also constitute machine-readable storage media. The machine-readable medium 624, data storage system 618, and/or main memory 604 may correspond to a storage subsystem.

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.In one embodiment, instructions 626 include instructions for implementing functions corresponding to security manager 160 (e.g., operations of security server 140 and/or the security features in storage device 130 described with reference to FIG 1 - 27 are described). While the machine-readable medium 624 is indicated as a single medium in an exemplary embodiment, the term "machine-readable storage medium" should include a single medium or multiple media storing the one or more sets of instructions. The term "machine-readable storage medium" should also include any medium capable of storing or encoding a set of instructions for execution by the machine that cause the machine to perform one or more of the methodologies of the present disclosure. Accordingly, the term "machine-readable storage medium" should include, but is not limited to, solid-state memory, optical media, and magnetic media.

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.In general, a terminal 150, a server (e.g., the security server 140, a client server 141 or 143, or a map server 223) can be a computer system that includes a host system 120 and a storage subsystem. The storage subsystem may include media such as one or more volatile storage devices, one or more non-volatile storage devices (e.g., storage device 130), or a combination thereof.

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 (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 (HDD). Beispiele für Speichermodule beinhalten ein Dual In-Line Memory Module (DIMM), ein Small Outline DIMM (SO-DIMM) und verschiedene Arten von nichtflüchtigen Dual In-Line Memory Module (NVDIMM).The storage subsystem may be a storage device, a storage module, or a hybrid storage device and storage module. Examples of a storage device include a solid-state drive (SSD), a flash drive, a USB (Universal Serial Bus) flash drive, an eMMC (Embedded Multi-Media Controller) drive, a UFS (Universal Flash storage), an SD (Secure Digital) card and a hard disk drive (HDD). Examples of memory modules include a dual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), and various types of non-volatile dual in-line memory modules (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.The computer system can be, for example, a computing device such as a desktop computer, a laptop computer, a network server, a mobile device, a vehicle (e.g., an airplane, drone, train, car, or other means of transportation) , an Internet of Things (IoT)-enabled device, embedded computer (e.g., one in a vehicle, industrial facility, or connected commercial device), or computer system that includes storage and processing equipment.

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.The computer system's host system 120 is coupled to one or more storage subsystems. As used herein, "coupled to" or "coupled to" generally refers to a connection between components, which may be either an indirect communicative connection or a direct communicative connection (e.g., without intervening components), regardless of whether whether they are wired or is wireless, including connections such as electrical, optical, magnetic, etc.

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.Host system 120 may include a processor chipset (e.g., processing device 118) and a software stack executed by the processor chipset. The processor chipset may have one or more cores, one or more caches, a memory controller (e.g. 116 controller) (e.g. NVDIMM controller) and a storage protocol controller (e.g. PCIe controller, SATA controller) include. For example, the host system 120 uses the storage subsystem to write data to and read data from the storage subsystem.

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.The host system 120 can be coupled to the storage subsystem via a physical host interface. Examples of a physical host interface include, but are not limited to, a Serial Advanced Technology Attachment (SATA) interface, a Peripheral Component Interconnect Express (PCIe) interface, a Universal Serial Bus (USB) interface, a Fiber Channel , a Serial Attached SCSI (SAS) interface, a Double Data Rate (DDR) memory bus interface, a Small Computer System Interface (SCSI), a Dual In-Line Memory Module (DIMM) interface (e.g., DIMM socket interface that supports Double Data Rate (DDR)), an Open NAND Flash interface (ONFI), a Double Data Rate (DDR) interface, a Low Power Double Data Rate (LPDDR) interface, or another interface. The physical host interface can be used to transfer data between the host system 120 and the storage subsystem. Host system 120 may also use an NVM Express (NVMe) interface to access components (e.g., storage devices 130) when the storage subsystem is coupled to host system 120 via the PCIe interface. The physical host interface can provide an interface for passing control, address, data, and other signals between the storage subsystem and the host system 120 . In general, host system 120 may access one or more storage subsystems via a single communication link, multiple separate communication links, and/or a combination of communication links.

Die Verarbeitungsvorrichtung 118 des Host-Systems 120 kann beispielsweise ein Mikroprozessor, eine Zentraleinheit (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.The processing device 118 of the host system 120 may be, for example, a microprocessor, a central processing unit (CPU), a processing core of a processor, an execution unit, and so on. In some instances, controller 116 may also be referred to as a memory controller, memory manager, and/or initiator. In one example, controller 116 controls communications over a bus coupled between host system 120 and the storage subsystem. In general, controller 116 may send commands or requests to the storage subsystem for desired access to storage devices 130. The controller 116 may also include interface circuitry for communicating with the storage subsystem. The interface circuit may convert the responses received from the storage subsystem into information for the host system 120.

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.The controller 116 of the host system 120 may communicate with the controller of the storage subsystem to perform operations such as reading data, writing data, or deleting data in the storage devices 130 and other such operations. In some instances, controller 116 is integrated into the same package as processing device 118 . In other instances, the controller 116 is separate from the processing device 118 package. Controller 116 and/or processing device 118 may include hardware, such as one or more integrated circuits (ICs) and/or discrete components, a buffer memory, a cache memory, or a combination thereof. Controller 116 and/or processing device 118 may be a microcontroller, dedicated logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.

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, Speicher mit wahlfreiem Zugriff (RAM) sein, wie beispielsweise dynamische Speicher mit wahlfreiem Zugriff (DRAM) und synchrone dynamische Speicher mit wahlfreiem Zugriff (SDRAM).Storage devices 130 may include any combination of the various types of non-volatile and/or volatile memory components. The volatile memory devices may be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).

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 Writein-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).Some examples of non-volatile memory components include negative-and (or NOT AND) (NAND) flash memory and write-in-place memory, such as three-dimensional cross-point ("3D cross-point") memory. A cross-point array of non-volatile memory, in conjunction with a stackable cross-lattice data access array, can perform bit storage based on a change in bulk resistivity. In addition, unlike many flash-based memories, the cross-point non-volatile memory can operate a write-in-place operation, where a non-volatile memory cell can be programmed without changing the non-volatile memory cell was previously erased. The NAND type flash memory includes, for example, two-dimensional NAND (2D NAND) and three-dimensional NAND (3D NAND).

Jeder der Speichervorrichtungen 130 kann eine oder mehrere Arrays von Speicherzellen beinhalten. Eine Art von Speicherzellen, z. B. Single-Level-Cells (SLC), kann ein Bit pro Zelle speichern. Andere Arten von Speicherzellen, wie Multi-Level-Zellen (MLC), Triple-Level-Zellen (TLC), Quad-Level-Zellen (QLC) und Penta-Level-Zellen (PLC) können mehrere Bits pro Zelle speichern. 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-Ab schnitt, 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.Each of the memory devices 130 may include one or more arrays of memory cells. One type of memory cell, e.g. B. Single Level Cells (SLC), can store one bit per cell. Other types of memory cells, such as multi-level cells (MLC), triple-level cells (TLC), quad-level cells (QLC), and penta-level cells (PLC), can store multiple bits per cell. In some embodiments, each of the memory devices 130 may include one or more arrays of memory cells, such as SLCs, MLCs, TLCs, QLCs, PLCs, or any combination thereof. In some embodiments, a particular memory device may include an SLC portion, an MLC portion, a TLC portion, a QLC portion, and/or a PLC portion of memory cells. The memory cells of storage devices 130 may be grouped as pages, which may relate to a logical unit of the storage device used to store data. In some types of memory (e.g. NAND), pages can be grouped to form blocks.

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 (PCM), selbstauswählende Speicher, andere chalcogenidbasierte Speicher, ferroelektrische Transistor-Direktzugriffsspeicher (FeTRAM), ferroelektrischer Direktzugriffsspeicher (FeRAM), Magneto-Random-Access-Memory (MRAM), Spin Transfer Torque (STT)-MRAM, Conductive Bridging RAM (CBRAM), Resistive Random-Access-Memory (RRAM), Oxidbasiertes RRAM (OxRAM), Negative-or (NOR) Flash-Memory und elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM).Although non-volatile memory devices such as 3D crosspoint and NAND memory (e.g., 2D NAND, 3D NAND) are described, memory device 130 may be any other type of non-volatile memory, such as read-only memory (ROM), phase change memory (PCM) , self-selecting memory, other chalcogenide-based memory, ferroelectric transistor random access memory (FeTRAM), ferroelectric random access memory (FeRAM), magneto random access memory (MRAM), spin transfer torque (STT) MRAM, conductive bridging RAM (CBRAM), resistive Random Access Memory (RRAM), Oxide-based RRAM (OxRAM), Negative-or (NOR) Flash memory, and 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.A storage subsystem controller may communicate with storage devices 130 to perform operations such as reading data, writing data, or deleting data in storage devices 130 and other such operations (e.g., in response to commands that scheduled on a command bus by the controller 116). The memory subsystem controller may include hardware such as one or more integrated circuits (ICs) and/or discrete components, a buffer memory, or a combination thereof. The hardware may include digital circuitry with dedicated (e.g., hard-coded) logic to perform the operations described herein. The memory subsystem controller may be a microcontroller, dedicated logic circuitry (e.g., a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), etc.), or other suitable processor.

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.The memory subsystem controller may include a processing device (e.g., processor) configured to execute instructions stored in local memory. In the illustrated example, the memory subsystem controller's local memory includes embedded memory configured to store instructions for performing various processes, operations, logic streams, and routines that control the operation of the memory subsystem, including the Handling of communication between the storage subsystem and the 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).In some embodiments, local storage may include storage registers that store memory pointers, requested data, and so on. Local storage may also include read only memory (ROM) for storing microcode. While some storage subsystems have storage subsystem controls, other storage subsystems do not have storage subsystem controls and may instead rely on external control (e.g., provided by an external host or by a storage subsystem separate processor or controller).

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 (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.In general, the storage subsystem controller may receive commands or operations from host system 120 and convert the commands or operations into instructions or appropriate commands to achieve desired access to storage devices 130 . The memory subsystem controller may be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error correction code (ECC) operations, encryption operations, caching operations, and address translations between a logical address (e.g., logical block address (LBA), namespace ) and a physical address (e.g., physical block address) associated with storage devices 130 . The storage subsystem controller may further include host interface circuitry for communicating with the host system 120 via the host physical interface. The host interface circuit can convert the commands received from the host system into commands for accessing the storage devices 130 and the convert responses associated in storage devices 130 into information for host system 120 .

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.The memory subsystem may also include additional circuitry or components that are not illustrated. In some embodiments, the memory subsystem may include a cache or buffer (e.g., DRAM) and address circuitry (e.g., a row decoder and a column decoder) that can receive an address from the memory subsystem controller and decode the address to access storage devices 130 .

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 (MNAND).In some embodiments, storage devices 130 include local media controllers that work in conjunction with the storage subsystem controller of the storage subsystem to perform operations on one or more storage cells 103 of storage devices 130 . A local media controller may be used to implement the cryptographic engine 107 and/or the access controller 109. An external controller (e.g., the storage subsystem controller or the controller 116 of the host system 120) may externally manage the storage device 130 (e.g., perform media management operations on the storage device 130). In some embodiments, a storage device 130 is a managed storage device; H. a raw storage device in combination with a local media controller for media management in the same storage device package. An example of a managed memory device is a managed NAND (MNAND) device.

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 Schaltkreis-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.The storage subsystem controller and/or a storage device 130 may include a security manager 160 configured to provide the security features discussed above. In some embodiments, the storage subsystem controller and/or the local media controller in the storage subsystem may include at least a portion of the security manager 160 . In other embodiments or in combination, controller 116 in host system 120 may include at least a portion of security manager 160 . Storage subsystem controller, controller 116, and/or security server 140 may include logic circuitry and/or execute instructions to implement security manager 160, for example. For example, the storage subsystem controller or processing device 118 (e.g., processor) of the host system 120 may be configured to execute instructions stored in the storage device 130 to perform the security manager 160 operations described herein. In some embodiments, security manager 160 is implemented in an integrated circuit chip located in the memory subsystem. In other embodiments, the security manager 160 may be part of the storage subsystem firmware, an operating system of the host system 120, a device driver, or an application, or any combination thereof.

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.Some portions of the foregoing detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits in computer memory. These algorithmic descriptions and representations are used by those skilled in the data processing arts to convey the substance of their work most effectively to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those that require physical manipulations of physical quantities. Usually, but not necessarily, these quantities take the form of electrical or magnetic signals that can be stored, combined, compared, and otherwise manipulated. At times it has proven convenient, primarily for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

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.However, it should be borne in mind that all of these and similar terms should be associated with the appropriate physical quantities and are merely convenience labels applied to those quantities. The present disclosure may relate to the actions and processes of a computer system or similar electronic computing device that manipulate and convert data represented as physical (electronic) quantities in the computer system's registers and memories into other data that is similarly represented represented as physical quantities in the memories or registers of the computer system or other such information storage system.

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.The present disclosure also relates to an apparatus for performing the operations described herein. This device may be specially designed for the intended purposes or may incorporate a general purpose computer which is selectively activated or reconfigured by a program stored in the computer. Such a computer program may be stored on a computer-readable storage medium, such as, but not limited to, any type of disk, including floppy disks, optical Disks, CD-ROMs and magneto-optical disks, read only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards or any type of media suitable for storing electronic instructions and each containing a Computer system bus are coupled.

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.The algorithms and displays presented herein are not necessarily tied to any particular computer or other device. Various general purpose systems may be used with programs according to the teachings herein, or it may prove convenient to construct more specific apparatus for performing the method. The structure for a variety of these systems appears as given in the following description. Additionally, the present disclosure is not described with reference to any particular programming language. It is understood that a variety of programming languages can be used to implement the teachings of the disclosure described herein.

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.The present disclosure may be provided as a computer program product or software, which may include a machine-readable medium having stored thereon instructions that may be used to program a computer system (or other electronic device) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form that can be read by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine-readable (e.g., computer-readable) storage medium, such as read-only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical storage media, flash memory components, etc .

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 this specification, various functions and operations are described as being operated or prompted by computer instructions in order to simplify the description. However, those skilled in the art will recognize that these terms mean that the functions result from the execution of the computer instructions by one or more controllers or processors, such as a microprocessor. Alternatively or in combination, the functions and operations may be implemented using special purpose circuits, with or without software instructions, such as using application specific integrated circuits (ASIC) or field programmable gate arrays (FPGA). Embodiments may be implemented using hardwired circuitry without software instructions or in combination with software instructions. Thus, the techniques are not limited to any combination of hardware circuitry and software, nor to any particular source for the instructions executed by the data processing system.

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.In the foregoing specification, the embodiments of the disclosure have been described with reference to certain exemplary embodiments. Obviously, various modifications can be made without departing from the broader spirit and scope of the embodiments of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION

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.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent Literature Cited

  • US 17/005565 [0002, 0185]US17/005565 [0002,0185]
  • US 63/059617 [0002]US63/059617 [0002]
  • US 17/080684 [0002]US 17/080684 [0002]
  • US 2020/0322134 [0002]US2020/0322134 [0002]
  • US 17/014203 [0002, 0180]US 17/014203 [0002,0180]
  • US 16/374905 [0187]US 16/374905 [0187]

Claims (20)

Verfahren, umfassend: Empfangen, in einem Serversystem und von einem Endgerät, einer Anforderung, die mit einem Dienst verbunden ist, der über ein Computer-Netzwerk bereitgestellt wird, das eine Vielzahl von Teilnehmern bedient, wobei die Anforderung Identitätsdaten beinhaltet, die von einer in dem Endgerät konfigurierten Speichervorrichtung erzeugt werden; Bestimmen, durch das Server-System in Reaktion auf die Anforderung und basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität der Speichervorrichtung; Identifizieren, basierend auf den Identitätsdaten, eines Teilnehmers aus der Vielzahl von Teilnehmern basierend auf den Eigentumsdaten des Endgeräts; und Bestimmen, in Reaktion auf die Anforderung, eines Kontos des Teilnehmers als Ergebnis der Identifizierung des Teilnehmers zum Bereitstellen des Dienstes für das Endgerät basierend auf dem Konto.Method comprising: receiving, at a server system and from a terminal, a request associated with a service provided over a computer network serving a plurality of subscribers, the request including identity data retrieved from a storage device configured in the terminal be generated; determining, by the server system in response to the request and based on a secret of the storage device and the identity data, an authenticity of the storage device; identifying, based on the identity information, a subscriber of the plurality of subscribers based on the ownership information of the terminal; and determining, in response to the request, an account of the subscriber as a result of identifying the subscriber for providing the service to the terminal based on the account. Verfahren nach Anspruch 1, wobei nach der Herstellung des Endgeräts, das Endgerät keine Anpassung für den Teilnehmer und keine Anpassung für das Konto vor der Anforderung aufweist.procedure after claim 1 , wherein after manufacture of the terminal, the terminal has no customization for the subscriber and no customization for the account before the request. Verfahren nach Anspruch 2, wobei das Endgerät so hergestellt ist, dass es von einer Vielzahl von Teilnehmern genutzt werden kann.procedure after claim 2 , wherein the terminal is manufactured in such a way that it can be used by a large number of participants. Verfahren nach Anspruch 3, wobei das Endgerät keine Hardwarekomponente enthält, die in das Endgerät eingefügt wird, um den Teilnehmer, das Konto oder eine beliebige Kombination davon darzustellen.procedure after claim 3 , wherein the terminal does not include a hardware component that is inserted into the terminal to represent the subscriber, the account, or any combination thereof. Verfahren nach Anspruch 4, wobei zumindest vor der Anforderung das Endgerät keine Daten enthält, die in dem Endgerät gespeichert sind, um den Teilnehmer, das Konto oder eine beliebige Kombination davon darzustellen.procedure after claim 4 wherein at least prior to the request, the terminal does not contain data stored in the terminal to represent the subscriber, the account, or any combination thereof. Verfahren nach einem der Ansprüche 3 bis 5, wobei zumindest vor der Anforderung das Endgerät, ohne die Eigentumsdaten des Endgeräts, keine Angabe des Teilnehmers, des Kontos oder einer beliebigen Kombination davon enthält,; und die Eigentumsdaten im Server-System, aber nicht im Endgerät gespeichert sind.Procedure according to one of claims 3 until 5 wherein at least prior to the request, the terminal does not include an indication of the subscriber, the account, or any combination thereof, without the terminal ownership data; and the property data is stored in the server system but not in the end device. Verfahren nach einem der Ansprüche 3 bis 6, ferner umfassend: Speichern, im Server-System und in Reaktion auf die Anforderung, von Daten, welche die Identitätsdaten mit dem Konto assoziieren.Procedure according to one of claims 3 until 6 , further comprising: storing, in the server system and in response to the request, data associating the identity data with the account. Verfahren nach einem der Ansprüche 3 bis 7, ferner umfassend: Erzeugen, durch das Server-System unter Verwendung eines kryptographischen Schlüssels, eines Verifizierungscodes für einen Befehl; und Veranlassen, durch das Server-System, dass die Speichervorrichtung den Befehl und den Verifizierungscode empfängt, wobei die Speichervorrichtung konfiguriert ist, um den Verifizierungscode vor der Ausführung des Befehls in der Speichervorrichtung zu überprüfen.Procedure according to one of claims 3 until 7 , further comprising: generating, by the server system using a cryptographic key, a verification code for an instruction; and causing, by the server system, the storage device to receive the command and the verification code, wherein the storage device is configured to check the verification code prior to executing the command in the storage device. Verfahren nach Anspruch 8, wobei der Befehl, wenn er in der Speichervorrichtung ausgeführt wird, die Speichervorrichtung veranlasst, zusätzliche Daten zum Identifizieren des Kontos zu speichern.procedure after claim 8 wherein the command, when executed on the storage device, causes the storage device to store additional data for identifying the account. Verfahren nach Anspruch 9, wobei nach dem Ausführen des Befehls, die Speichervorrichtung konfiguriert ist, um aktualisierte Identifizierungsdaten zum Identifizieren des Kontos zu erzeugen.procedure after claim 9 , wherein after executing the command, the storage device is configured to generate updated identification data for identifying the account. Verfahren nach Anspruch 10, wobei die Speichervorrichtung den Geheimcode nach der Fertigstellung der Speichervorrichtung in einer sicheren Einrichtung nicht außerhalb der Speichervorrichtung übermittelt.procedure after claim 10 wherein the storage device does not transmit the secret code outside the storage device after completion of the storage device in a secure facility. Verfahren nach Anspruch 11, ferner umfassend: Einrichten eines Sitzungsschlüssels basierend auf einer Überprüfung der Identitätsdaten.procedure after claim 11 , further comprising: establishing a session key based on verification of the identity data. Verfahren nach Anspruch 12, wobei die Speichervorrichtung so konfiguriert ist, dass sie den Verifizierungscode basierend auf einem Zugriffskontrollschlüssel, der basierend auf dem Sitzungsschlüssel konfiguriert ist, überprüft.procedure after claim 12 , wherein the storage device is configured to verify the verification code based on an access control key configured based on the session key. 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.procedure after claim 12 or 13 , further comprising: registering the secret code during manufacture of the storage device in the secure facility; and generating, based at least in part on the secret, a cryptographic key for verification in the identity data. Verfahren nach Anspruch 14, wobei der zur Überprüfung der Identitätsdaten verwendete kryptographische Schlüssel ferner basierend auf Daten erzeugt wird, die von einem Host-System der Speichervorrichtung beim Booten des Host-Systems empfangen werden.procedure after Claim 14 wherein the cryptographic key used to verify the identity data is further generated based on data received from a host system of the storage device upon booting of the host system. 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, die mit einem Dienst verbunden ist, der über ein Computer-Netzwerk bereitgestellt wird, das eine Vielzahl von Teilnehmern bedient, wobei die Anforderung Identitätsdaten beinhaltet, die von einer in einem Endgerät konfigurierten Speichervorrichtung erzeugt werden; Bestimmen, in Reaktion auf die Anforderung und basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität des Endgeräts; Identifizieren, basierend auf den Identitätsdaten, eines Teilnehmers aus der Vielzahl von Teilnehmern basierend auf den Eigentumsdaten des Endgeräts; Bestimmen, in Reaktion auf die Anforderung, eines Konto des Teilnehmers; und Veranlassen, dass der Dienst dem Endgerät basierend auf dem Konto bereitgestellt wird.A computer system, comprising: a memory that stores cryptographic keys in the storage devices; and at least one processor configured via an instruction set to: receiving a request associated with a service provided over a computer network serving a plurality of subscribers, the request including identity data generated by a storage device configured in a terminal; determining, in response to the request and based on a secret code of the storage device and the identity data, an authenticity of the terminal; identifying, based on the identity information, a subscriber of the plurality of subscribers based on the ownership information of the terminal; determining, in response to the request, an account of the subscriber; and causing the service to be provided to the terminal based on the account. Computersystem nach Anspruch 16, wobei die Authentizität des Endgeräts zumindest teilweise basierend auf Sicherheitsmerkmalen der Speichervorrichtung bestimmt wird, und wobei die Sicherheitsmerkmale beinhalten: Erzeugung eines kryptographischen Schlüssels, der für eine Identität des Endgeräts repräsentativ ist, basierend zumindest teilweise auf der Identität der Speichervorrichtung und der in der Speichervorrichtung gespeicherten Firmware zum Ausführen in einem Host-System, das mit der Speichervorrichtung in dem Endgerät verbunden ist; und Steuerung von Befehlen, die in der Speichervorrichtung ausgeführt werden, basierend auf Berechtigungen, die durch kryptographische Schlüssel dargestellt werden.computer system after Claim 16 wherein the authenticity of the terminal is determined based at least in part on security features of the storage device, and wherein the security features include: generating a cryptographic key representative of an identity of the terminal based at least in part on the identity of the storage device and stored in the storage device firmware to execute on a host system connected to the storage device in the terminal; and controlling commands executed on the storage device based on permissions represented by cryptographic keys. Computersystem nach Anspruch 17, wobei das Endgerät nicht betrieben wird, um das Konto vor der Anforderung zu identifizieren, und wobei die Sicherheitsmerkmale ferner eine Kryptographie-Engine beinhalten.computer system after Claim 17 wherein the terminal is not operated to identify the account prior to the request and wherein the security features further include a cryptographic engine. Nichtflüchtiges Computer-Speichermedium, das Anweisungen speichert, die, bei Ausführung durch einen Server, den Server veranlassen, ein Verfahren durchzuführen, wobei das Verfahren Folgendes umfasst: Empfangen, von einem Client-Server, einer Anforderung in Reaktion auf ein Endgerät, das sich mit dem Client-Server verbindet, für einen Dienst, der über ein Computer-Netzwerk für eine Vielzahl von Konten bereitgestellt wird, wobei die Anforderung Identitätsdaten beinhaltet, die durch eine in dem Endgerät konfigurierte Speichervorrichtung erzeugt werden; Bestimmen, in Reaktion auf die Anforderung und basierend auf einem Geheimcode der Speichervorrichtung und den Identitätsdaten, einer Authentizität des Endgeräts; Identifizieren, basierend auf den Identitätsdaten und in Reaktion auf die Anforderung, eines der Vielzahl von Konten; und Übertragen, an den Client-Server, einer Antwort auf die Anforderung, wobei die Antwort so konfiguriert ist, dass sie das Konto identifiziert und den Client-Server veranlasst, dem Endgerät den Dienst basierend auf dem Konto bereitzustellen.A non-transitory computer storage medium storing instructions that, when executed by a server, cause the server to perform a method, the method comprising: Receiving from a client-server, in response to a terminal connecting to the client-server, a request for a service provided over a computer network to a plurality of accounts, the request including identity data that generated by a storage device configured in the terminal; determining, in response to the request and based on a secret code of the storage device and the identity data, an authenticity of the terminal; identifying, based on the identity information and in response to the request, one of the plurality of accounts; and Transmitting, to the client-server, a response to the request, the response configured to identify the account and cause the client-server to provide the service to the terminal based on the account. Nichtflüchtiges Computer-Speichermedium nach Anspruch 19, wobei das Endgerät keine Anpassung zum Identifizieren des Kontos aufweist.non-volatile computer storage medium claim 19 , wherein the terminal has no adaptation for identifying the account.
DE102022104834.9A 2021-03-03 2022-03-01 ONBOARDING CLOUD SERVICES WITHOUT PRIOR CUSTOMIZATION OF DEVICES Pending DE102022104834A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163156226P 2021-03-03 2021-03-03
US63/156,226 2021-03-03
US17/485,188 US20220132298A1 (en) 2020-10-26 2021-09-24 Cloud-service on-boarding without prior customization of endpoints
US17/485,188 2021-09-24

Publications (1)

Publication Number Publication Date
DE102022104834A1 true DE102022104834A1 (en) 2022-09-08

Family

ID=82898626

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022104834.9A Pending DE102022104834A1 (en) 2021-03-03 2022-03-01 ONBOARDING CLOUD SERVICES WITHOUT PRIOR CUSTOMIZATION OF DEVICES

Country Status (2)

Country Link
CN (1) CN115037494A (en)
DE (1) DE102022104834A1 (en)

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 (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266307B2 (en) * 2008-05-12 2012-09-11 Nokia Corporation Method, system, and apparatus for access of network services using subscriber identities
NO2414983T3 (en) * 2009-04-03 2018-06-16
US8769270B2 (en) * 2010-09-20 2014-07-01 Security First Corp. Systems and methods for secure data sharing
US8555067B2 (en) * 2010-10-28 2013-10-08 Apple Inc. Methods and apparatus for delivering electronic identification components over a wireless network
WO2016033610A1 (en) * 2014-08-29 2016-03-03 Visa International Service Association Methods for secure cryptogram generation
US11095449B2 (en) * 2016-12-16 2021-08-17 Visa International Service Association System and method for securely processing an electronic identity
CN111819555A (en) * 2018-03-07 2020-10-23 维萨国际服务协会 Secure remote token issuance with online authentication
US11258600B2 (en) * 2019-03-25 2022-02-22 Micron Technology, Inc. Secure communication in accessing a network
US20200342459A1 (en) * 2019-04-25 2020-10-29 Shazzle, Llc Trusted customer identity systems and methods

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

Also Published As

Publication number Publication date
CN115037494A (en) 2022-09-09

Similar Documents

Publication Publication Date Title
US9775024B2 (en) Method for changing MNO in embedded SIM on basis of dynamic key generation and embedded SIM and recording medium therefor
USRE46023E1 (en) Memory device upgrade
US9438600B2 (en) Apparatus and methods for distributing and storing electronic access clients
DE112017002044T5 (en) PLATFORM TESTING AND REGISTRATION FOR SERVER
US20220131848A1 (en) Management of Identifications of an Endpoint having a Memory Device Secured for Reliable Identity Validation
EP3337085B1 (en) Reloading cryptographic program instructions
US11811743B2 (en) Online service store for endpoints
US20220132298A1 (en) Cloud-service on-boarding without prior customization of endpoints
EP4329348A2 (en) Secure element personalization
CN107332817A (en) Support the mobile device and corresponding method of multiple access control clients
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
US20220131700A1 (en) Virtual Subscriber Identification Module and Virtual Smart Card
CN108713200A (en) For the method being loaded into the embedded-type security element of mobile terminal device will to be subscribed to
DE102016222170A1 (en) Method for reading attributes from an ID token
DE102022104834A1 (en) ONBOARDING CLOUD SERVICES WITHOUT PRIOR CUSTOMIZATION OF DEVICES
DE102022104902A1 (en) ONLINE SECURITY SERVICES BASED ON SECURITY FEATURES IMPLEMENTED IN STORAGE DEVICES
CN116671060A (en) Distributed broadcast encryption and key generation facility
US20220129390A1 (en) Monitor Integrity of Endpoints having Secure Memory Devices for Identity Authentication
US20220129389A1 (en) Online Security Services based on Security Features Implemented in Memory Devices
US20220129259A1 (en) Endpoint Customization via Online Firmware Store
US20230370446A1 (en) Track Activities of components in Endpoints having Secure Memory Devices via Identity Validation
CN115037495A (en) Tracking activity of an endpoint having a secure memory device during authentication for secure operations
CN115037491A (en) Subscription sharing in a group of endpoints with memory devices protected for reliable authentication
CN115021949A (en) Method and system for identification management of endpoints having memory devices protected for reliable authentication

Legal Events

Date Code Title Description
R012 Request for examination validly filed