CN115037495A - Tracking activity of an endpoint having a secure memory device during authentication for secure operations - Google Patents
Tracking activity of an endpoint having a secure memory device during authentication for secure operations Download PDFInfo
- Publication number
- CN115037495A CN115037495A CN202210199645.7A CN202210199645A CN115037495A CN 115037495 A CN115037495 A CN 115037495A CN 202210199645 A CN202210199645 A CN 202210199645A CN 115037495 A CN115037495 A CN 115037495A
- Authority
- CN
- China
- Prior art keywords
- endpoint
- memory device
- data
- server
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6272—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/045—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/062—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本公开涉及身份验证期间跟踪具有安全存储器装置的端点的活动以用于安全操作。安全服务器用于在端点的身份验证期间基于所述端点的活动数据实施安全操作。例如,服务器系统存储表示所述端点的偏好的数据。在接收含有由在所述端点中配置的存储器装置生成的身份数据的验证请求之后,所述服务器系统可至少部分地基于所述存储器装置的秘密验证所述身份数据。如果所述身份数据有效,那么所述服务器系统可进一步确定由所述身份数据和/或所述验证请求识别的活动是否满足为所述端点指定的条件。如果满足,所述服务器系统可在响应于所述验证请求提供验证响应时执行与所述条件相关联的安全操作。
The present disclosure relates to tracking activity of endpoints with secure memory devices during authentication for secure operations. The security server is used to implement security operations based on activity data of the endpoint during authentication of the endpoint. For example, the server system stores data representing the endpoint's preferences. After receiving an authentication request containing identity data generated by a memory device configured in the endpoint, the server system may authenticate the identity data based at least in part on the secret of the memory device. If the identity data is valid, the server system may further determine whether the activity identified by the identity data and/or the authentication request satisfies the conditions specified for the endpoint. If satisfied, the server system may perform a security operation associated with the condition upon providing an authentication response in response to the authentication request.
Description
相关申请Related applications
本申请要求2020年于10月26日提交且标题为“虚拟订户识别模块和虚拟智能卡(Virtual Subscriber Identification Module and Virtual Smart Card)”的第63/105,820号临时美国专利申请的提交日的权益,其中本申请还要求于2021年3月3日提交且标题为“身份验证期间跟踪具有安全存储器装置的端点的活动以用于安全操作(TrackActivities of Endpoints having Secure Memory Devices for Security Operationsduring Identity Validation)”的第63/156,238号临时美国专利申请的提交日的权益,所述申请的全部公开内容由此以引用的方式并入本文中。This application claims the benefit of the filing date of Provisional U.S. Patent Application No. 63/105,820, filed October 26, 2020, and entitled "Virtual Subscriber Identification Module and Virtual Smart Card," wherein This application also requires Article 3, titled "Track Activities of Endpoints having Secure Memory Devices for Security Operations during Identity Validation", filed on March 3, 2021 The benefit of the filing date of provisional US Patent Application No. 63/156,238, the entire disclosure of which is hereby incorporated by reference.
本申请涉及于2020年8月28日提交且标题为“用于主机装置验证的安全存储器系统编程(Secure Memory System Programming for Host Device Verification)”的第17/005,565号美国专利申请,所述申请要求以下申请的提交日的权益:2020年7月31日提交的第63/059,617号临时美国专利申请;于2020年10月26日提交且标题为“基于多个组件的启动时间绑定的端点认证(Endpoint Authentication based on Boot-Time Binding ofMultiple Components)”的第17/080,684号美国专利申请;于2019年4月4日提交、标题为“用于生成装置身份以利用远程服务器认证的安全装置上的登入软件(OnboardingSoftware on Secure Devices to Generate Device Identities for Authenticationwith Remote Servers)”且于2020年10月8日公布为第2020/0322134号美国专利申请公开案的第16/374,905号美国专利申请;以及于2020年9月8日提交且标题为“半导体装置中的功能的客户特定激活(Customer-Specific Activation of Functionality in aSemiconductor Device)”的第17/014,203号美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。This application is related to US Patent Application No. 17/005,565, filed on August 28, 2020, and entitled "Secure Memory System Programming for Host Device Verification," which claims The benefit of the filing date of: Provisional U.S. Patent Application No. 63/059,617, filed July 31, 2020; U.S. Patent Application No. 17/080,684 (Endpoint Authentication based on Boot-Time Binding of Multiple Components)"; filed April 4, 2019, titled "Using Device Identity for Generating Device Identity to Utilize Remote Server Authentication Onboarding Software on Secure Devices to Generate Device Identities for Authentication with Remote Servers" and US Patent Application Serial No. 16/374,905 published on October 8, 2020 as US Patent Application Publication No. 2020/0322134; and in 2020 U.S. Patent Application No. 17/014,203, filed September 8, 2010 and entitled "Customer-Specific Activation of Functionality in a Semiconductor Device," the entire disclosure of which is hereby Incorporated herein by reference.
技术领域technical field
本文中所公开的至少一些实施例一般来说涉及认证,且更具体地但不限于网络中具有安全存储器装置的通信端点的认证。At least some embodiments disclosed herein relate to authentication in general, and more particularly, but not limited to, authentication of communication endpoints with secure memory devices in a network.
背景技术Background technique
存储器子系统可包含一或多个存储数据的存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统,将数据存储在存储器装置处并从存储器装置检索数据。The memory subsystem may include one or more memory devices that store data. The memory devices may be, for example, non-volatile memory devices and volatile memory devices. In general, a host system may utilize a memory subsystem to store data at and retrieve data from a memory device.
用于装置身份合成引擎(DICE)和稳健物联网(RIoT)标准已经制定,用于基于加密计算的计算装置身份识别和认证的数据计算。Standards for Device Identity Synthesis Engine (DICE) and Robust Internet of Things (RIoT) have been developed for data computing based on cryptographic computing for computing device identification and authentication.
发明内容SUMMARY OF THE INVENTION
在一个方面,本公开涉及一种方法,其包括:在服务器系统中存储表示端点的一或多个偏好的数据;在所述服务器系统中接收含有由在所述端点中配置的存储器装置生成的身份数据的验证请求;至少部分地基于所述存储器装置的秘密和存储于所述存储器装置中的内容的至少一部分,通过所述服务器系统验证所述身份数据;以及响应于确定所述身份数据有效,确定与所述身份数据相关联的活动满足为所述端点指定的条件;以及在响应于所述验证请求提供验证响应时,执行与所述条件相关联的安全操作。In one aspect, the present disclosure relates to a method comprising: storing, in a server system, data representing one or more preferences of an endpoint; receiving, in the server system, data containing data generated by a memory device configured in the endpoint. a verification request for identity data; verifying the identity data by the server system based at least in part on a secret of the memory device and at least a portion of content stored in the memory device; and in response to determining that the identity data is valid , determining that an activity associated with the identity data satisfies a condition specified for the endpoint; and performing a security operation associated with the condition upon providing an authentication response in response to the authentication request.
在另一方面,本公开涉及一种计算系统,其包括:存储器,其存储存储器装置的加密密钥;以及至少一个处理器,其经由一组指令配置成:接收含有由在端点中配置的存储器装置生成的身份数据的验证请求;且响应于所述验证请求,至少部分地基于所述存储器装置的秘密,确定所述身份数据有效;确定经由所述验证请求识别的活动满足为所述端点指定的条件;且在响应于所述验证请求提供验证响应时,执行与所述条件相关联的安全操作。In another aspect, the present disclosure relates to a computing system comprising: a memory that stores an encryption key for a memory device; and at least one processor configured via a set of instructions to: receive a memory containing a memory configured in an endpoint a verification request for identity data generated by a device; and in response to the verification request, based at least in part on a secret of the memory device, determining that the identity data is valid; determining that the activity identified via the verification request satisfies a specification specified for the endpoint condition; and when an authentication response is provided in response to the authentication request, a security operation associated with the condition is performed.
在又一方面,本公开涉及一种存储指令的非暂时性计算机存储媒体,所述指令在由服务器系统执行时使所述服务器系统执行方法,所述方法包括:接收含有由在端点中配置的存储器装置生成的身份数据的验证请求;以及响应于所述验证请求,至少部分地基于所述存储器装置的秘密,确定所述身份数据有效;确定经由所述验证请求识别的活动满足为所述端点指定的条件;且在响应于所述验证请求提供验证响应时,执行与所述条件相关联的安全操作。In yet another aspect, the present disclosure relates to a non-transitory computer storage medium storing instructions that, when executed by a server system, cause the server system to perform a method, the method comprising: receiving a computer storage medium containing information configured in an endpoint by a verification request for identity data generated by a memory device; and in response to the verification request, based at least in part on a secret of the memory device, determining that the identity data is valid; determining that the activity identified via the verification request satisfies the endpoint a specified condition; and upon providing an authentication response in response to the authentication request, perform a security operation associated with the condition.
附图说明Description of drawings
在附图的各图中作为实例而非限制示出了实施例,在附图中,相似的参考标号指示类似的元件。Embodiments are shown by way of example and not limitation in the figures of the accompanying drawings, wherein like reference numerals refer to like elements.
图1示出根据本公开的一些实施例的实例计算系统。1 illustrates an example computing system in accordance with some embodiments of the present disclosure.
图2示出根据一个实施例的集成电路存储器装置中的身份数据的生成。Figure 2 illustrates the generation of identity data in an integrated circuit memory device according to one embodiment.
图3示出根据一个实施例的用于控制存储器装置中的命令执行的技术。3 illustrates a technique for controlling command execution in a memory device, according to one embodiment.
图4示出根据一个实施例的用于验证存储于存储器装置中的数据完整性的技术。4 illustrates a technique for verifying the integrity of data stored in a memory device, according to one embodiment.
图5示出根据一个实施例的基于在存储器装置中实施的安全特征提供给客户端服务器的安全服务器的安全服务。Figure 5 illustrates security services provided to a client server's security server based on security features implemented in a memory device, according to one embodiment.
图6示出根据一个实施例的用于配置和认证基于卡的服务的端点的系统和方法。6 illustrates a system and method for configuring and authenticating endpoints for card-based services, according to one embodiment.
图7示出根据一个实施例的虚拟智能卡的卡简档。Figure 7 illustrates a card profile of a virtual smart card according to one embodiment.
图8示出根据一个实施例的虚拟订户识别模块(SIM)的卡简档。Figure 8 illustrates a card profile of a virtual subscriber identity module (SIM) according to one embodiment.
图9示出根据一个实施例的用于认证存储器装置的技术。9 illustrates a technique for authenticating a memory device, according to one embodiment.
图10示出根据一个实施例的用于生成控制存储器装置的安全操作的命令的技术。10 illustrates a technique for generating commands to control secure operation of a memory device, according to one embodiment.
图11示出根据一个实施例的虚拟智能卡的方法。Figure 11 illustrates a method of virtualizing a smart card according to one embodiment.
图12示出根据一个实施例的基于存储器装置的安全特征提供的安全服务的方法。12 illustrates a method for providing security services based on security features of a memory device, according to one embodiment.
图13示出根据一个实施例的登入账户订阅的服务的端点的方法。13 illustrates a method of logging into an endpoint of a service subscribed to by an account, according to one embodiment.
图14示出根据一个实施例的使用在线固件商店的端点定制的技术。14 illustrates a technique for endpoint customization using an online firmware store, according to one embodiment.
图15示出根据一个实施例的经由在线服务商店将服务定向到端点的技术。15 illustrates a technique for directing services to endpoints via an online service store, according to one embodiment.
图16示出根据一个实施例的使用固件商店和安全服务器的固件更新方法。16 illustrates a firmware update method using a firmware store and a secure server, according to one embodiment.
图17示出根据一个实施例的使用服务商店和安全服务器的端点定制方法。Figure 17 illustrates an endpoint customization method using a service store and a security server, according to one embodiment.
图18示出根据一个实施例的生成身份数据以促进完整性和/或端点活动的监测的图示。18 shows an illustration of generating identity data to facilitate monitoring of integrity and/or endpoint activity, according to one embodiment.
图19示出根据一个实施例的用于维持存储在端点中的包完整性的技术。19 illustrates a technique for maintaining the integrity of packets stored in an endpoint, according to one embodiment.
图20示出根据一个实施例的基于跟踪端点活动而实施安全操作的系统。20 illustrates a system for implementing security operations based on tracking endpoint activity, according to one embodiment.
图21示出根据一个实施例的用于更新或修复存储在端点中的包的方法。Figure 21 illustrates a method for updating or repairing a package stored in an endpoint, according to one embodiment.
图22示出根据一个实施例的用于基于端点的一或多个活动执行安全操作的方法。22 illustrates a method for performing security operations based on one or more activities of an endpoint, according to one embodiment.
图23和24示出根据一个实施例的配置成在一组端点当中实施订阅共享的系统。23 and 24 illustrate a system configured to implement subscription sharing among a set of endpoints, according to one embodiment.
图25示出根据一个实施例的用于促进一组端点中的订阅共享的方法。Figure 25 illustrates a method for facilitating subscription sharing among a set of endpoints, according to one embodiment.
图26示出根据一个实施例的用于管理端点识别的技术。26 illustrates a technique for managing endpoint identification, according to one embodiment.
图27示出根据一个实施例的用于管理端点识别的方法。Figure 27 illustrates a method for managing endpoint identification, according to one embodiment.
图28是其中可以操作本公开的实施例的实例计算机系统的框图。28 is a block diagram of an example computer system in which embodiments of the present disclosure may operate.
具体实施方式Detailed ways
本公开的至少一些方面涉及安全服务器和具有安全特征的存储器装置。安全服务器配置成基于存储器装置的安全特征提供计算机网络(例如,互联网)中的在线安全服务。存储器装置的主机系统可使用存储器装置的存储器和/或存储功能存储指令和/或用于处理的数据并存储处理结果。At least some aspects of the present disclosure relate to secure servers and memory devices with secure features. The security server is configured to provide online security services in a computer network (eg, the Internet) based on the security features of the memory device. The host system of the memory device may use the memory and/or storage functions of the memory device to store instructions and/or data for processing and to store processing results.
一般来说,存储器子系统可包含存储装置和/或存储器模块。主机系统可使用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供数据以存储于存储器子系统中,并且可请求数据以从存储器子系统检索。In general, a memory subsystem may include storage devices and/or memory modules. The host system may use a memory subsystem that includes one or more components, such as memory devices that store data. The host system can provide data for storage in the memory subsystem, and can request data for retrieval from the memory subsystem.
例如,存储于存储器装置中的数据的一部分可以是指令,例如经编程用于软件、固件、启动加载程序、操作系统、例程、装置驱动程序、应用程序包等的指令。指令可以存储用于计算装置,所述计算装置使用与存储器装置连接的主机系统实施。For example, a portion of the data stored in a memory device may be instructions, such as instructions programmed for software, firmware, bootloaders, operating systems, routines, device drivers, application packages, and the like. The instructions may be stored for a computing device implemented using a host system coupled to the memory device.
存储于存储器装置中的数据的另一部分可以在指令执行于主机系统的一或多个处理装置中时向指令提供运算元或输入。Another portion of the data stored in the memory device may provide operands or inputs to the instructions as they are executed in one or more processing devices of the host system.
存储于存储器装置中的数据的又一部分可包含从使用存储于存储器装置中的输入和/或其它输入执行指令生成的结果。Yet another portion of the data stored in the memory device may include results generated from executing instructions using the input stored in the memory device and/or other inputs.
此类计算装置的实例包含个人计算机、移动计算机、平板计算机、个人媒体播放器、智能电话、智能TV、智能扬声器、智能电器、物联网(IoT)装置等。Examples of such computing devices include personal computers, mobile computers, tablet computers, personal media players, smart phones, smart TVs, smart speakers, smart appliances, Internet of Things (IoT) devices, and the like.
在存储器装置中实施的安全特征可用于存储器装置和安全服务器之间经由计算机网络的安全通信。存储器装置和安全服务器之间的通信路径可能不安全。通过安全服务器和存储器装置之间的通信可以验证存储器装置的身份和/或控制对存储器装置的访问,以便防止和检测仿冒、篡改、窃用和/或不安全操作。The security features implemented in the memory device can be used for secure communication between the memory device and a security server over a computer network. The communication path between the memory device and the secure server may be insecure. Communication between the secure server and the memory device may verify the identity of the memory device and/or control access to the memory device in order to prevent and detect counterfeiting, tampering, theft and/or insecure operation.
存储器装置的安全特征和安全服务器的安全服务的组合允许存储器装置和/或具有存储器装置的计算装置的使用所涉及的各方信任计算装置和/或存储器装置的真实性并信任存储于存储器装置中的数据完整性,例如将在计算装置中执行的指令和指令的输入。The combination of the security features of the memory device and the security services of the security server allows parties involved in the use of the memory device and/or computing device with the memory device to trust the authenticity of the computing device and/or the memory device and to trust the storage in the memory device data integrity, such as the instructions to be executed in the computing device and the input of the instructions.
例如,安全服务器和存储器装置可以组合实施订户身份模块(SIM)的替换。For example, the security server and memory device may implement the replacement of the Subscriber Identity Module (SIM) in combination.
SIM卡通常用于表示电信网络中的蜂窝服务的订户身份。当SIM卡插入到蜂窝电话中时,蜂窝电话可以访问提供给订户账户的蜂窝服务;并且当SIM卡插入到替代蜂窝电话中时,订户可以使用替代蜂窝电话访问与账户相关联的蜂窝服务。SIM cards are commonly used to represent subscriber identity for cellular services in telecommunication networks. When the SIM card is inserted into the cellular telephone, the cellular telephone can access cellular services provided to the subscriber's account; and when the SIM card is inserted into the alternative cellular telephone, the subscriber can use the alternative cellular telephone to access cellular services associated with the account.
当安装于蜂窝电话中的存储器装置的身份可以安全地配置成表示订户身份时,可以消除对物理SIM卡的需要。存储器装置的身份可经由存储器装置的安全特征和安全服务器的安全服务配置和保护。The need for a physical SIM card can be eliminated when the identity of the memory device installed in the cell phone can be securely configured to represent the subscriber's identity. The identity of the memory device may be configured and protected via the memory device's security features and the security server's security services.
一般来说,安全服务器可以配置于互联网上以基于构建到存储器装置中的安全特征向第三方计算机和服务器提供安全相关服务。安全特征构建并封装到存储器装置中。安全特征和安全服务可以在不信任安装了存储器装置的计算装置的安全实施方案的情况下使用。因此,安全实施方案可以集中在存储器装置的安全特征和安全服务器的设计中。通过简单地使用具有安全特征的存储器装置,使用存储器装置的计算装置的安全性可以得到提高,而无需计算装置的设计者和/或制造商付出太多的努力。In general, security servers may be deployed on the Internet to provide security-related services to third-party computers and servers based on security features built into memory devices. The security features are built and packaged into the memory device. The security features and security services can be used without trusting the security implementation of the computing device on which the memory device is installed. Thus, the security implementation can focus on the security features of the memory device and the design of the security server. By simply using a memory device with security features, the security of a computing device using the memory device can be improved without much effort from the designer and/or manufacturer of the computing device.
安全服务器可以提供服务,以验证装置的身份和/或真实性,检测仿冒装置和/或篡改装置,跟踪和管理装置所有权,促进装置所有权/控制权的转移,促进计算装置访问第三方服务器和/或服务网络的服务的配置,等等。Security servers may provide services to verify the identity and/or authenticity of devices, detect counterfeit and/or tampered devices, track and manage device ownership, facilitate transfer of device ownership/control, facilitate computing device access to third-party servers and/or Or the configuration of services that serve the network, etc.
存储器装置的安全特征可以在存储器装置的制造期间实施于存储器装置的集成电路(IC)封装内。存储器装置可具有在一或多个集成电路裸片上形成的逻辑电路(或控制器)和存储器单元。存储器装置中的至少一些存储器单元可以是非易失性的,使得数据可以保存在非易失性存储器单元中,即使存储器装置断电很长一段时间(例如,数日、数月,甚至数年)。存储器装置的非易失性存储器可用于存储指令和数据以用于存储器单元的主机系统的操作。The security features of the memory device may be implemented within an integrated circuit (IC) package of the memory device during manufacture of the memory device. A memory device may have logic circuits (or controllers) and memory cells formed on one or more integrated circuit die. At least some of the memory cells in the memory device can be non-volatile so that data can be retained in the non-volatile memory cells even if the memory device is powered off for an extended period of time (eg, days, months, or even years) . The nonvolatile memory of the memory device may be used to store instructions and data for operation of the memory unit's host system.
存储器装置可具有唯一装置秘密(UDS)。唯一装置秘密可在存储器装置内受保护,使得在完成存储器装置的制造之后,唯一装置秘密不传送到存储器装置之外,并且不可被主机系统经由存储器装置的任何接口读取。A memory device may have a Unique Device Secret (UDS). The unique device secret may be protected within the memory device such that after manufacture of the memory device is complete, the unique device secret is not transferred outside the memory device and is not readable by the host system via any interface of the memory device.
存储器装置中的唯一装置秘密的存在可由安全服务器通过加密计算验证,例如加密密钥的生成、使用加密函数的消息散列值的生成及使用加密密钥通过消息加密的消息密文的生成。The existence of the unique device secret in the memory device can be verified by the secure server through cryptographic computations, such as generation of encryption keys, generation of message hash values using encryption functions, and generation of message ciphertext encrypted by messages using encryption keys.
使用加密密钥加密消息的加密计算涉及用于表示消息的密文的计算。消息可以通过执行预定义解密计算使用对应加密密钥从密文有效恢复。在不具有用于解密的对应加密密钥的情况下,从密文恢复消息一般是不可行的。在不了解用于解密的对应加密密钥的情况下恢复消息的难度等级表示加密计算的安全等级。安全等级大体上取决于用于加密的加密密钥长度和用于加密的算法。Encryption computations that encrypt a message using an encryption key involve computation of the ciphertext used to represent the message. The message can be efficiently recovered from the ciphertext using the corresponding encryption key by performing predefined decryption computations. It is generally not feasible to recover a message from a ciphertext without having the corresponding encryption key for decryption. The difficulty level of recovering a message without knowledge of the corresponding encryption key used for decryption represents the security level of the encryption computation. The level of security generally depends on the encryption key length used for encryption and the algorithm used for encryption.
当使用对称加密时,用于解密的加密密钥和用于加密的加密密钥是相同的。当使用不对称加密时,解密密钥和加密密钥不同,并且成对生成。所述对中的一个可用作私钥,且因此用作秘密;对中的另一个可用作公钥。从公钥计算私钥一般是不可行的。从公钥恢复私钥的难度等级表示不对称加密的安全等级。When using symmetric encryption, the encryption key used for decryption and the encryption key used for encryption are the same. When using asymmetric encryption, the decryption key and the encryption key are different and generated in pairs. One of the pair can be used as the private key, and thus the secret; the other of the pair can be used as the public key. Computing the private key from the public key is generally not feasible. The difficulty level of recovering the private key from the public key indicates the security level of the asymmetric encryption.
对消息进行散列的加密计算将消息映射到表示消息的散列值。但是,在散列计算中会丢失一定量的信息,使得消息无法从散列值恢复。许多消息可以映射到相同散列值。生成可以散列到相同散列值的消息的经修改版本一般是不可行的,特别是在经修改版本类似于原始消息时。A cryptographic computation that hashes a message maps the message to a hash value that represents the message. However, a certain amount of information is lost in the hash calculation, making the message unrecoverable from the hash value. Many messages can map to the same hash value. Generating a modified version of a message that can be hashed to the same hash value is generally not feasible, especially when the modified version is similar to the original message.
密钥生成的加密计算涉及基于一组数据计算针对对称加密的加密密钥或针对不对称加密的一对加密密钥。在不具有相同一组数据的情况下生成相同密钥或相同密钥对的概率较低。概率等级表示用于密钥生成的加密计算的强度。Encryption computation for key generation involves computing an encryption key for symmetric encryption or a pair of encryption keys for asymmetric encryption based on a set of data. The probability of generating the same key or the same key pair without having the same set of data is low. The probability level represents the strength of the encryption computation used for key generation.
一般来说,用于加密、散列和密钥生成的任何加密计算技术可以与存储器装置和安全服务器一起使用。因此,本公开不限于特定的加密、散列和/或密钥生成技术。In general, any cryptographic computing techniques for encryption, hashing, and key generation can be used with the memory device and secure server. Accordingly, the present disclosure is not limited to particular encryption, hashing and/or key generation techniques.
除了唯一装置秘密之外,存储器装置还可存储额外数据以表示存储器装置和/或安装了存储器装置的计算装置的数据和/或硬件配置。所述额外数据的一部分可以也可以不保持为存储器装置的秘密。所述唯一装置秘密和所述额外数据可用于生成表示存储器装置和/或计算装置的身份的秘密加密密钥。In addition to the unique device secret, the memory device may store additional data to represent the data and/or hardware configuration of the memory device and/or the computing device on which the memory device is installed. A portion of the additional data may or may not be kept secret by the memory device. The unique device secret and the additional data may be used to generate a secret encryption key representing the identity of the memory device and/or the computing device.
存储器装置的逻辑电路(或本地控制器)可实施加密引擎、身份引擎和访问控制器。存储器装置的加密引擎配置成在存储器装置内执行加密计算(例如,散列、加密/解密、密钥生成)以支持身份引擎和访问控制器的操作。存储器装置中的加密引擎的实施方案免去了依赖外部处理器来进行存储器装置的安全计算的需要,并因此通过防止秘密传输到存储器装置之外和防止加密计算的篡改和窃用而提高了安全性。任选地,存储器装置的安全特征所涉及的加密计算的至少部分可以经由在存储器装置中存储指令以供存储器装置的主机系统执行来实施,同时在存储器装置的逻辑电路(或本地控制器)的安全等级和复杂度之间存在一定水平的权衡。The logic circuit (or local controller) of the memory device may implement the encryption engine, the identity engine and the access controller. The cryptographic engine of the memory device is configured to perform cryptographic computations (eg, hashing, encryption/decryption, key generation) within the memory device to support operations of the identity engine and the access controller. Implementation of a cryptographic engine in a memory device obviates the need to rely on an external processor to perform secure computations of the memory device, and thus improves security by preventing the transfer of secrets out of the memory device and preventing tampering and theft of cryptographic computations . Optionally, at least a portion of the cryptographic computations involved in the security features of the memory device may be implemented via storing instructions in the memory device for execution by the memory device's host system, while in the logic circuitry (or local controller) of the memory device. There is a certain level of trade-off between security level and complexity.
存储器装置的加密引擎可用于向消息应用加密散列函数以生成散列值,从一组数据生成对称加密密钥或一对不对称加密密钥,使用加密密钥生成消息的密文,和/或使用加密密钥从密文恢复消息。The encryption engine of the memory device is operable to apply a cryptographic hash function to the message to generate a hash value, to generate a symmetric encryption key or a pair of asymmetric encryption keys from a set of data, to generate a ciphertext of the message using the encryption key, and/ Or use the encryption key to recover the message from the ciphertext.
存储器装置的访问控制器配置成使用加密密钥控制在存储器装置中接收的命令的执行。例如,可能需要权限来请求存储器装置对存储器装置的非易失性存储器的各个部分执行读取、写入、删除、修改等的命令。权限可由相应加密密钥表示。在存储器装置中接收到权限命令以供执行之后,访问控制器可在确定命令是否来自具有表示权限的加密密钥的发送方时使用加密引擎以执行计算。在计算指示发送方具有加密密钥且因此具有权限之后,访问控制器允许命令装存储器装置内执行。否则,访问控制器可拒绝、忽略或舍弃命令。此类访问控制可防止对存储于存储器装置中的数据的未经授权的访问,防止对存储器装置的未经授权的改变,并防止篡改和/或窃用形成存储器装置的仿冒品和/或不安全装置。The access controller of the memory device is configured to control execution of commands received in the memory device using the encryption key. For example, permissions may be required to request the memory device to execute commands to read, write, delete, modify, etc., on various portions of the non-volatile memory of the memory device. Rights can be represented by corresponding encryption keys. After receiving the entitlement command in the memory device for execution, the access controller may use the encryption engine to perform computations in determining whether the command is from a sender with an encryption key representing the entitlement. After the calculation indicates that the sender has the encryption key and therefore has the authority, the access controller allows the command to be executed in the memory device. Otherwise, the access controller may deny, ignore or discard the command. Such access control may prevent unauthorized access to data stored in the memory device, prevent unauthorized changes to the memory device, and prevent tampering and/or theft of counterfeit and/or insecure forms of the memory device device.
一般来说,验证消息发送方是否具有加密密钥涉及验证消息的验证码。验证码可呈散列摘要、数字签名、基于散列的消息认证码(HMAC)、加密消息认证码(CMAC)等形式。验证码使用加密密钥和作为散列、加密和/或其它计算等加密操作的输入的消息生成,使得在不具有加密密钥的情况下生成验证码及从消息的经修改版本生成验证码一般是不可行的。因此,当接收方确认接收到的验证码对接收到的消息和加密密钥有效时,接收方可得出结论:发送方具有对应的加密密钥,并且接收到的消息与用于生成接收到的加密密钥的消息相同。Generally speaking, verifying that the sender of a message has an encryption key involves verifying the verification code of the message. The verification code may be in the form of a hash digest, digital signature, hash-based message authentication code (HMAC), encrypted message authentication code (CMAC), and the like. CAPTCHA is generated using an encryption key and a message as input to cryptographic operations such as hashing, encryption, and/or other computations, such that generation of CAPTCHA without the encryption key and generation of CAPTCHA from a modified version of the message is generally is not feasible. Therefore, when the receiver confirms that the received verification code is valid for the received message and the encryption key, the receiver can conclude that the sender has the corresponding encryption key, and the received message is the same as the one used to generate the received encryption key. The encryption key for the message is the same.
在一些实施方案中,接收方使用与发送方生成验证码所使用的相同的加密密钥执行消息验证码的验证。例如,接收方使用相同加密密钥生成接收到的消息的验证码,并比较生成的验证码与接收到的验证码。如果存在匹配,那么接收到的验证码对接收到的消息有效;并且发送方可以被视为具有加密密钥。否则,接收到的验证码对接收到的消息无效;接收到的消息自验证码生成以来已经改变,或接收到的验证码是使用不同的加密密钥生成的,或这两者。In some embodiments, the recipient performs verification of the message verification code using the same encryption key that was used by the sender to generate the verification code. For example, the recipient generates a verification code for the received message using the same encryption key, and compares 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 encryption key. Otherwise, the received verification code is invalid for the received message; the received message has changed since the verification code was generated, or the received verification code was generated using a different encryption key, or both.
在一些实施方案中,接收方使用密钥对中的公共加密密钥执行消息验证码的验证;并且发送方使用密钥对中的私用加密密钥生成验证码。例如,验证码可通过向消息应用散列函数以生成消息的散列值来生成。通过使用加密密钥执行的散列值加密获得的散列值的密文可用作验证码。消息和验证码的接收方使用对应的解密密钥执行验证,解密密钥在使用对称加密时与加密密钥相同,在使用不对称加密时是密钥对中的另一密钥。在使用解密密钥从密文恢复散列值之后,恢复后的散列值可与接收到的消息的散列值比较;如果存在匹配,那么接收到的验证码对接收到的消息有效;否则,接收到的验证码对接收到的消息无效。替代地,接收方可使用加密密钥执行验证而不执行解密。接收方可使用加密密钥生成消息的验证码以与接收到的验证码比较。In some embodiments, the recipient performs verification of the message authentication code using the public encryption key in the key pair; and the sender uses the private encryption key in the key pair to generate the authentication code. For example, the verification code may be generated by applying a hash function to the message to generate a hash value of the message. A ciphertext of a hash value obtained by hash value encryption performed using an encryption key can be used as a verification code. The recipient of the message and the verification code performs the verification using the corresponding decryption key, which is the same as the encryption key when using symmetric encryption and the other key in the key pair when using asymmetric encryption. After recovering the hash value from the ciphertext using the decryption key, the recovered hash value can be compared to the hash value of the received message; if there is a match, then the received verification code is valid for the received message; otherwise , the received verification code is invalid for the received message. Alternatively, the recipient may use the encryption key to perform authentication without performing decryption. The recipient can use the encryption key to generate a verification code for the message to compare with the received verification code.
在一些实施方案中,消息和加密密钥组合生成散列值作为验证码,如在基于散列的消息认证码(HMAC)的技术中。例如,加密密钥可用于生成两个密钥。在组合所述两个密钥中的一个与消息以生成通过密钥修改的消息之后,加密散列函数可应用于密钥已修改消息,以生成散列值,所述散列值进一步与另一密钥组合以生成另一消息。在向所述另一消息应用加密散列函数(或另一加密散列函数)之后,基于散列的消息认证码生成。消息接收方可使用相同的加密密钥生成接收到的消息的基于散列的消息认证码以与接收到的基于散列的消息认证码比较。如果存在匹配,那么验证成功;否则,验证失败。In some embodiments, the message and encryption key are combined to generate a hash value as an authentication code, as in the technique of hash-based message authentication code (HMAC). For example, an encryption key can be used to generate two keys. After combining one of the two keys with the message to generate a key-modified message, a cryptographic hash function can be applied to the key-modified message to generate a hash value that is further combined with the other A key is combined to generate another message. After applying a cryptographic hash function (or another cryptographic hash function) to the other message, a hash-based message authentication code is generated. The message recipient may use the same encryption key to generate a hash-based message authentication code for the received message to compare with the received hash-based message authentication code. If there is a match, validation succeeds; otherwise, validation fails.
一般来说,用于生成和验证来自发送方的消息的验证码和供发送方用于生成验证码的加密密钥的任何技术可用于确定发送方是否具有加密密钥。接收方将使用适当的加密密钥执行验证,此加密密钥可与用于生成验证码的加密密钥相同,或在相同的不对称加密密钥对中。因此,本公开不限于散列摘要、数字签名和/或基于散列的消息认证码的特定技术。In general, any technique for generating and validating a verification code for a message from a sender and an encryption key used by the sender to generate the verification code can be used to determine whether the sender has the encryption key. The recipient will perform authentication using the appropriate encryption key, which can be the same encryption key used to generate the verification code, or in the same asymmetric encryption key pair. Accordingly, the present disclosure is not limited to the particular techniques of hash digests, digital signatures, and/or hash-based message authentication codes.
为方便起见,使用加密密钥真的消息生成的用于表示消息和加密密钥的验证码可以统称为使用加密密钥签名的消息的数字签名,但是应理解,验证码可使用各种技术生成,例如基于散列的消息认证码。For convenience, the verification code generated using the encryption key to represent the message and the encryption key may be collectively referred to as the digital signature of the message signed using the encryption key, but it should be understood that the verification code can be generated using various techniques , such as hash-based message authentication codes.
存储器装置可配置成存储用于验证使用配置成表示请求存储器装置执行命令的权限的加密密钥签名的验证码的相关加密密钥。The memory device may be configured to store an associated encryption key for verifying a verification code signed using an encryption key configured to represent authority to request the memory device to execute a command.
例如,访问控制器可向存储器装置的所有者提供一组权限,使得所有者可以激活或撤销激活存储器装置的一或多个安全特征,改变存储器装置的一或多个安全设置、参数、配置或偏好,和/或从存储器装置中不可被存储器装置的其他用户读取的区段读取数据。For example, the access controller may provide the owner of the memory device with a set of permissions such that the owner may activate or deactivate one or more security features of the memory device, change one or more security settings, parameters, configurations or preferences, and/or read data from sections of the memory device that are not readable by other users of the memory device.
例如,访问控制器可向存储器装置的经授权用户提供读取、写入、擦除或修改存储器装置的特定区段的特定权限。For example, an access controller may provide authorized users of the memory device with specific rights to read, write, erase, or modify specific sections of the memory device.
当存储器装置接收需要访问权限来执行的命令时,访问控制器可检索对应的加密密钥以验证包含所述命令的消息的验证码或数字签名。如果针对接收到的命令接收的验证码的验证成功,那么接收到的命令被视为来自具有表示在存储器装置中执行命令的权限的加密密钥的发送方。作为响应,访问控制器允许在存储器装置中执行命令。否则,访问控制器阻止命令的执行。When the memory device receives a command that requires access rights to execute, the access controller can retrieve the corresponding encryption key to verify the verification code or digital signature of the message containing the command. If the verification of the verification code received for the received command is successful, the received command is considered to be from a sender with an encryption key representing authority to execute the command in the memory device. In response, the access controller allows execution of the command in the memory device. Otherwise, the access controller blocks execution of the command.
存储器装置可以制造为最初由安全服务器拥有。随后,安全服务器可以在从组装到计算装置的存储器装置到具有由终端用户使用的存储器装置的计算装置的处理中,向一或多个所有者和用户提供和/或转移部分或全部权限。访问控制器可以防止篡改、窃用和未经授权的访问,同时提供灵活性,以支持不同所有者和用户的不同权限转移模式,例如安装了存储器装置的组件计算装置的制造商,安装了组件计算装置的计算装置制造商、零售商、企业用户、终端用户和替代终端用户等。The memory device may be manufactured to be originally owned by the secure server. The secure server may then provide and/or transfer some or all of the rights to one or more owners and users in the process from the memory device assembled to the computing device to the computing device having the memory device used by the end user. Access controllers prevent tampering, theft, and unauthorized access, while providing flexibility to support different modes of transfer of rights for different owners and users, such as manufacturers of memory-installed component computing devices, installed component computing Computing device manufacturers, retailers, business users, end users and alternative end users of devices, etc.
存储器装置的身份引擎配置成生成指示存储器装置的身份和/或安装了存储器装置的计算装置的身份的数据。为生成身份数据,身份引擎使用加密引擎从唯一装置秘密和存储于存储器装置中和/或由存储器装置收集(例如,在计算装置的启动过程期间)的其它数据生成秘密加密密钥。存储器装置中的秘密加密密钥的存在可被视为存储器装置拥有唯一装置秘密和用于生成秘密加密密钥的其它数据的证据。存储器装置中的秘密加密密钥的存在可以通过安全服务器经由使用秘密加密密钥签名的验证码或数字签名来验证。The identity engine of the memory device is configured to generate data indicative of the identity of the memory device and/or the identity of the computing device on which the memory device is installed. To generate the identity data, the identity engine uses the encryption engine to generate secret encryption keys from unique device secrets and other data stored in and/or collected by the memory device (eg, during the startup process of the computing device). The presence of the secret encryption key in the memory device may be considered evidence that the memory device possesses the unique device secret and other data used to generate the secret encryption key. The existence of the secret encryption key in the memory device can be verified by the secure server via a verification code or digital signature signed with the secret encryption key.
在存储器装置的制造期间,唯一装置秘密的副本寄存在安全服务器中和/或进行安全共享而不会暴露。随后,安全服务器配置成独立于存储器装置导出相同秘密加密密钥(和/或使用不对称加密时的对应公钥),而无需存储器装置将其唯一装置秘密传送到存储器装置之外。因此,安全服务器可通过验证存储器装置具有秘密加密密钥而验证存储器装置具有唯一装置秘密;并且作为存储器装置身份的秘密加密密钥可在存储器装置集成到组件、装置、系统中并在制造商、零售商、经销商、公司和/或终端用户当中转移的处理中改变。在不改变唯一装置秘密的情况下,由秘密加密密钥表示的存储器装置实体可以更新以表示存储器装置组装到组件、装置、系统中、定制和/或个性化和/或由不同实体或用户拥有和/或操作。During manufacture of the memory device, a copy of the unique device secret is hosted in a secure server and/or is securely shared without exposure. The secure server is then configured to derive the same secret encryption key (and/or the corresponding public key when using asymmetric encryption) independently of the memory device, without requiring the memory device to secretly transmit its unique device outside the memory device. Thus, the security server can verify that the memory device has a unique device secret by verifying that the memory device has the secret encryption key; and the secret encryption key that is the identity of the memory device can be integrated into a component, device, system and in the manufacturer, Changes in the processing of transfers among retailers, distributors, companies and/or end users. Without changing the unique device secret, the memory device entity represented by the secret encryption key can be updated to indicate that the memory device is assembled into a component, device, system, customized and/or personalized and/or owned by a different entity or user and/or operations.
可以执行加密操作和通信以允许安全服务器验证存储器装置具有秘密加密密钥。Cryptographic operations and communications may be performed to allow the secure server to verify that the memory device has the secret encryption key.
例如,存储器装置呈现的用于验证的身份数据可包含示出存储器装置的公共识别的消息。公共识别可用于分辨存储器装置与其它存储器装置。身份数据可包含使用秘密加密密钥签名的身份数据中的消息的验证码或数字签名。身份数据包含消息副本和验证码或数字签名。一旦验证码和消息数据被安全服务器验证,安全服务器就可得出结论:在身份数据中提供的公共识别是真实的,并且身份数据来自具有秘密加密密钥的存储器装置。For example, the identity data presented by the memory device for verification may include a message showing the public identification of the memory device. Common identification can be used to distinguish memory devices from other memory devices. Identity data may contain verification codes or digital signatures of messages in the identity data signed using a secret encryption key. Identity data includes a copy of the message and a verification code or digital signature. Once the verification code and message data are verified by the security server, the security server can conclude that the public identification provided in the identity data is authentic and that the identity data came from a memory device with a secret encryption key.
存储器装置的秘密加密密钥可以不仅使用存储器装置的唯一装置秘密而且还使用表示存储器装置和/或安装了存储器装置的计算装置的一些方面的额外数据来生成。所述额外数据可以表示软件、固件、启动加载程序、应用程序、存储于存储器装置中的跟踪数据、在计算装置的最近启动时间在计算装置中的计算装置组件的标识符。如果所述额外数据已经更改,那么身份引擎生成更改后的秘密加密密钥。因此,使用更改后的秘密加密密钥生成的验证码无法通过在安全服务器处执行的验证。因此,由身份引擎生成的验证码的验证还验证存储器装置和安装了存储器装置的计算装置的硬件/软件/数据合成的完整性和真实性。The memory device's secret encryption key may be generated using not only the memory device's unique device secret, but also additional data representing some aspect of the memory device and/or the computing device on which the memory device is installed. The additional data may represent software, firmware, bootloaders, application programs, trace data stored in a memory device, identifiers of computing device components in the computing device at the most recent boot time of the computing device. If the additional data has been altered, the identity engine generates an altered secret encryption key. Therefore, the verification code generated using the changed secret encryption key cannot pass the verification performed at the secure server. Thus, verification of the verification code generated by the identity engine also verifies the integrity and authenticity of the hardware/software/data composition of the memory device and the computing device on which the memory device is installed.
存储器装置和/或其主机系统的身份的验证可检测仿冒、篡改及被盗/丢失装置。基于来自所有者的请求,安全服务器可将被盗/丢失装置配置成以数个降级模式中的一个操作,例如不可启动、不可读、加密/擦除非易失性存储器中的数据、存储器装置的存储器/存储功能的自我毁坏等等。Verification of the identity of the memory device and/or its host system can detect counterfeit, tampered, and stolen/lost devices. Based on a request from the owner, the security server may configure the stolen/lost device to operate in one of several degraded modes, such as unbootable, unreadable, encrypt/erase data in non-volatile memory, memory device's Self-destruction of memory/storage functions, etc.
安全服务器配置有信息数据库,用于验证由存储器装置的身份引擎生成的身份数据。数据库允许安全服务器生成存储器装置的对应秘密加密密钥(和/或使用不对称加密时的对应公钥)。加密密钥可由安全服务器生成,而无需存储器装置在存储器装置的制造之后将其唯一装置秘密传送到存储器装置之外。加密密钥可至少部分地基于在存储器装置制造之后可用的额外数据生成。The secure server is configured with a database of information for verifying identity data generated by the identity engine of the memory device. The database allows the secure server to generate a corresponding secret encryption key (and/or a corresponding public key when using asymmetric encryption) for the memory device. The encryption key can be generated by the secure server without the need for the memory device to secretly transmit its unique device outside the memory device after manufacture of the memory device. The encryption key may be generated based at least in part on additional data available after the memory device is manufactured.
安全服务器可存储表示存储器装置的所有者权限的加密密钥。使用加密密钥,安全服务器可生成转移存储器装置所有权并配置和/或转移选定权限使得选定命令在存储器装置中执行的命令。在报告计算装置丢失/被盗之后,安全服务器可检测其存储器装置在存储器装置验证期间的使用,以及第三方服务器对服务的请求。The secure server may store an encryption key representing the owner's rights of the memory device. Using the encryption key, the secure server can generate commands that transfer ownership of the memory device and configure and/or transfer selected rights such that selected commands are executed in the memory device. After reporting a lost/stolen computing device, the secure server can detect the use of its memory device during memory device authentication, as well as requests for services by third-party servers.
例如,当第三方服务器从具有存储器装置的计算装置接收对服务的请求时,第三方服务器将由存储器装置生成的身份数据从计算装置转发到安全服务器以用于验证。如果身份数据被安全服务器验证,那么第三方服务器可向计算装置提供服务;否则,服务请求可被拒绝、舍弃或忽略。For example, when a third-party server receives a request for a service from a computing device having a memory device, the third-party server forwards identity data generated by the memory device from the computing device to the secure server for verification. If the identity data is verified by the secure server, the third-party server may provide the service to the computing device; otherwise, the service request may be denied, discarded, or ignored.
当经授权方请求时,安全服务器可对命令进行签名或生成命令的验证码以准许或取消对存储器装置的非易失性存储器的访问。经授权方可签名的命令转发到存储器装置以用于执行。签名的命令包含具有命令的消息和使用表示在存储器装置中执行命令的权限的加密密钥签名/生成的消息的验证码。When requested by an authorized party, the secure server may sign the command or generate a verification code for the command to grant or revoke access to the non-volatile memory of the memory device. The command, which can be signed by an authorized party, is forwarded to the memory device for execution. The signed command contains a message with the command and a verification code for the message signed/generated using an encryption key representing the authority to execute the command in the memory device.
存储器装置可以安装于计算装置中作为计算装置的身份的部分,并为计算装置提供主存储器/存储容量。例如,将在计算装置中执行的指令和相关联数据可以存储于存储器装置中,并经由存储器装置的安全特征受保护而不被损坏、篡改和/或窃用。因为由存储器装置的身份引擎生成的身份数据至少部分地基于存储于存储器装置中的指令/数据,所以将供计算装置使用的指令和数据的完整性和/或真实性至少在验证存储器装置和/或计算装置的身份的过程期间验证。The memory device may be installed in the computing device as part of the identity of the computing device and provide the computing device with main memory/storage capacity. For example, instructions and associated data to be executed in a computing device may be stored in a memory device and protected from corruption, tampering and/or theft via security features of the memory device. Because the identity data generated by the identity engine of the memory device is based, at least in part, on the instructions/data stored in the memory device, the integrity and/or authenticity of the instructions and data for use by the computing device is at least verified in the memory device and/or or the process of verifying the identity of the computing device.
安全服务器所提供的安全服务解除了第三方服务器对操作和计算装置的安全保护。使用存储器装置和安全服务器的服务可以防止未经授权的访问,而无需计算装置制造商和第三方服务器的运营商付出很大努力。因此,第三方服务器可以在不损害安全性的情况下利用其提供各自服务的核心能力进行操作。The security service provided by the security server de-secures the operation and computing device from the third-party server. Services using memory devices and secure servers can prevent unauthorized access without significant effort by the computing device manufacturer and the operator of the third-party server. Thus, third-party servers can operate using their core capabilities to provide their respective services without compromising security.
第三方服务器可以使用安全服务器提供的服务向其订户提供服务,而无需订户执行手动操作来配置订户使用的计算装置。例如,订户可以使用计算装置访问订户账户中的已订阅蜂窝服务,而无需将物理SIM卡插入计算装置和/或执行其它操作来定制计算装置以使用订户账户访问。A third-party server can use the services provided by the secure server to provide services to its subscribers without requiring the subscriber to perform manual actions to configure the computing device used by the subscriber. For example, a subscriber may use a computing device to access subscribed cellular services in a subscriber account without inserting a physical SIM card into the computing device and/or performing other operations to customize the computing device for access with the subscriber account.
订户可以由账户识别表示。当订户购买计算装置时,计算装置的所有权可通过安全服务器转移给订户。在计算装置中配置的存储器装置的安全特征可用于生成装置身份。当计算装置连接到第三方服务器以获得服务时,第三方服务器请求安全服务器验证装置身份。基于计算装置的所有权和账户的所有权,计算装置可以动态地链接到账户,使得计算装置能够使用账户访问第三方提供的服务,而无需手动操作来配置计算装置。A subscriber may be represented by an account identification. When a subscriber purchases a computing device, ownership of the computing device may be transferred to the subscriber through the secure server. The security features of the memory device configured in the computing device can be used to generate the device identity. When the computing device connects to the third-party server to obtain the service, the third-party server requests the security server to verify the identity of the device. Based on the ownership of the computing device and the ownership of the account, the computing device can be dynamically linked to the account, enabling the computing device to use the account to access services provided by third parties without manual operations to configure the computing device.
例如,在验证计算装置的身份期间,通过安全服务器的所有权管理服务识别计算装置的所有者/订户。一旦识别了所有者/订户,订户识别就可以构建到计算装置的装置身份中,或与安全服务器的数据库中的装置身份相关联。随后,当验证装置身份时,订户账户中的服务可由第三方提供到计算装置,而不需要订户明确地将服务定向/请求到计算装置。For example, during verification of the identity of the computing device, the owner/subscriber of the computing device is identified through the secure server's ownership management service. Once the owner/subscriber is identified, the subscriber identification can be built into the device identity of the computing device, or associated with the device identity in the secure server's database. Subsequently, when verifying the identity of the device, the services in the subscriber's account can be provided to the computing device by the third party without requiring the subscriber to explicitly direct/request the service to the computing device.
任选地,计算装置可以与第三方服务器建立单独的证书,使得在计算装置每次连接到第三方服务器以获得服务时,第三方服务器无需联系安全服务器。Optionally, the computing device can establish a separate certificate with the third-party server so that each time the computing device connects to the third-party server to obtain a service, the third-party server does not need to contact the security server.
图1示出根据本公开的一些实施例的实例计算系统。1 illustrates an example computing system in accordance with some embodiments of the present disclosure.
在图1中,集成电路存储器装置130具有如上文所论述的安全特征。In FIG. 1, an integrated
安全存储器装置130可存储唯一装置秘密101用于其认证。在一个实例中,唯一装置秘密101注入到安全设施中的存储器装置130中并存储在存储器装置130的寄存器中。在另一实例中,唯一装置秘密101可以从存储器装置130的物理不可克隆函数(PUF)获得。唯一装置秘密101可以经由安全设施获得并寄存在安全服务器140中。例如,安全设施可以是存储器装置(例如,130)的制造设施的部分。在存储器装置130制成和/或离开安全设施之后,存储器装置130中的唯一装置秘密101不可经由存储器装置130的任何接口(例如,主机接口147)访问。因此,在存储器装置130的制造之后,如存储器装置130中的唯一装置秘密101密封在存储器装置130的集成电路封装中。唯一装置秘密101的副本在安全服务器140内利用有力的安全措施(例如,使用硬件安全模块(HSM))来保护以防窃用和未经授权的访问。The
存储器装置130包含实施加密引擎107的逻辑电路或本地控制器。加密引擎107可执行加密计算,例如散列、密钥导出、加密和/或解密,而不依赖于存储器装置130之外的处理能力,例如主机系统120的处理装置118。
例如,根据装置身份合成引擎(DICE)和稳健物联网(RIoT)标准指定的方法或另一方法,加密密钥105可在启动时间基于唯一装置秘密101和在存储器装置130的存储器单元103中存储和/或获得的装置信息121的组合而生成。装置信息121可包含非秘密数据,它可以通过安全服务器140和存储器装置130之外的实体获得。为了提高安全性,装置信息121可包含时间相关信息。For example, the
例如,加密密钥105可包含两对不对称加密密钥。第一对不对称密钥被称为装置识别密钥;并且第二对不对称密钥被称为别名密钥。私有装置识别密钥用于认证别名密钥的真实性,且因此减少其使用并降低其风险。别名密钥可用于更多事务/通信;并且别名密钥的替换可比装置识别密钥更频繁,以便提高安全性,因为别名密钥的使用频率更高,因此存在风险。例如,私有装置识别密钥可以在启动时间生成并用于对证书进行签名,例如别名公钥的证书;然后,立即从存储器装置130删除私有装置识别密钥以保护其机密性。For example,
一般来说,使用唯一装置秘密101和装置信息121生成的加密密钥105中的一个可用作将由安全服务器140验证的存储器装置130的秘密和身份。In general, one of the
例如,存储器装置130的认证可以通过验证存储器装置130具有秘密加密密钥105来执行。存储器装置130中具有秘密加密密钥105可以被视为存储器装置130具有唯一装置秘密101并存储非秘密数据的未篡改版本的证据。For example, authentication of the
使用加密引擎107,存储器装置130可证明存储器装置130具有秘密加密密钥105,而无需将秘密加密密钥105和/或唯一装置秘密101传送到存储器装置130之外。例如,存储器装置130可使用秘密加密密钥105对证书或消息进行数字签名,以提供消息的验证码和秘密加密密钥105。当安全服务器140验证验证码成功时,安全服务器140可得出结论:存储器装置130具有秘密加密密钥105且因此具有由唯一装置秘密101表示的身份。Using the
存储器装置130包含可用于从主机系统120接收命令的主机接口147。主机系统的控制器116可向存储器装置130发送命令以请求从存储器单元103读取数据、将数据写入到存储器单元103中、从存储器单元103的一部分擦除数据、修改存储器单元103的一部分中的数据、激活存储器装置130的安全特征、配置与存储器装置130中的安全特征相关的参数等等。命令中的至少一些需要由存储在安全服务器140中的加密密钥106表示的权限。具有可用于对命令进行签名的加密密钥106被认为指示具有请求存储器装置130执行命令的权限。
存储器装置130包含访问控制器109,其配置成使用加密引擎107验证使用表示与命令相关联的权限的加密密钥106生成的验证码。如果命令接收有有效验证码,那么访问控制器109允许存储器装置130执行命令;否则,命令可被拒绝、忽略或舍弃。The
当制造存储器装置130时,一或多个相关加密密钥105存储于存储器装置130中以向安全服务器140提供所有者权限。使用所有者权限,安全服务器140可对用于在存储器装置130中执行的命令进行签名以激活或撤销激活安全特征、触发作为存储器装置130的身份的秘密加密密钥的替换、替换供访问控制器109用于验证针对存储器单元103的一或多个区域在存储器装置130中执行一或多个命令的权限的加密密钥,等等。When the
任选地,在认证经授权请求者的身份之后,安全服务器140可使用加密密钥对命令进行签名,以生成命令的验证码或数字签名,使得请求者可以向存储器装置130的主机接口147发送带验证码的命令,使得命令得以在存储器装置130内执行。Optionally, after authenticating the identity of the authorized requestor, the
任选地,安全服务器140可通过替换存储器装置130中的加密密钥105向实体提供特定权限,或向实体提供表示权限的对应加密密钥106。Optionally, the
通常,存储器装置130连接到主机系统120以形成例如互联网的通信网络110中的端点150。一般来说,端点150是计算装置。端点150的实例包含个人计算机、移动计算机、个人媒体播放器、平板计算机、智能电话、智能TV、智能扬声器、智能电器、物联网(IoT)装置等。Typically,
存储器装置130的存储器单元103可提供存储/存储器容量供主机系统120存储用于实施端点150的功能的指令和数据。例如,主机系统120的处理装置118配置成执行从存储器装置130加载的指令以启动和执行操作。Memory unit 103 of
主机系统120可包含网络接口114或另一通信装置,以与客户端服务器141、…、143中的一或多个通信,从而从客户端服务器141、…、143接收服务。The
从端点150发送到客户端服务器141的服务请求可包含由存储器装置130的加密引擎107生成的身份数据。客户端服务器141可请求安全服务器140验证身份数据中包含的验证码。The service request sent from endpoint 150 to
除了认证存储器装置130的身份的服务之外,安全服务器140还可提供安全服务以管理操作存储器装置130、配置或改变存储器装置130的安全特征或设置、检测丢失/被盗装置、撤销激活丢失/被盗装置等等的权限。In addition to services to authenticate the identity of
存储器装置130和/或端点150可具有非秘密的唯一识别111。唯一识别111可用于在一群存储器装置和/或端点中唯一地识别存储器装置130和/或端点150。
例如,存储器装置130的唯一识别111可包含存储器装置130的制造商零件号(MPN)和/或存储器装置130的序列号。例如,存储器装置130的唯一识别111可包含至少部分地基于唯一装置秘密生成的一对不对称加密密钥中的公钥。For example, the
为了认证存储器装置130和/或端点150具有由唯一识别111表示的身份,安全服务器140经由使用存储器装置的秘密加密密钥105签名的消息的验证码验证含有唯一识别111(和其它数据127)的消息。存储器装置130中的秘密加密密钥105使用存储器装置中的唯一装置秘密101生成;并且用于验证使用存储器装置130的秘密加密密钥105签名的验证码的对应加密密钥106在安全服务器140中从对应的唯一装置秘密101生成。To authenticate the
用于证明存储器装置130的身份的存储器装置130的秘密加密密钥105可不仅基于唯一装置秘密101而且还基于存储器装置130可访问的装置信息121来生成。The
例如,装置信息121可包含存储于存储器单元103中的指令和/或数据的散列值。此外,装置信息121可包含存储到存储器单元103中的跟踪数据,用于在组装组件以构建端点150期间个性化/个人化存储器装置130和/或端点150。此外,装置信息121可包含端点150中的其它组件的识别信息,例如控制器116的识别、处理装置118的识别、网络接口114的识别、不存储于存储器装置130中的端点150的额外软件或数据包的识别,和/或配置成控制/操作存储器装置130的固件的识别和/或散列值。在启动时间期间,识别数据可以收集作为用于生成存储器装置130的秘密加密密钥105的装置信息121。For example,
在注册过程中,当存储器装置130配置成具有装置信息121时,装置信息121的副本上载到安全服务器140用于与存储器装置130和/或端点150的唯一识别111相关联。装置信息121的注册允许存储器装置130的身份链接到由唯一装置秘密101与装置信息121的组合表示的数据、软件和/或硬件配置。During the registration process, when
图2示出根据一个实施例的集成电路存储器装置中的身份数据的生成。例如,图2的技术可以在图1的计算系统中实施。Figure 2 illustrates the generation of identity data in an integrated circuit memory device according to one embodiment. For example, the technique of FIG. 2 may be implemented in the computing system of FIG. 1 .
在图2中,存储器装置130(例如,如图1中)的加密引擎107用于使用其唯一装置秘密101和装置信息121至少生成秘密密钥137。In FIG. 2 , the
例如,当使用不对称加密时,秘密密钥137是加密密钥对135的私钥。相关联的公钥139与私钥一起使用加密引擎107生成。For example,
替代地,当使用对称加密时,秘密密钥137可在不具有公钥139且不具有密钥对135的情况下生成和使用。Alternatively, when using symmetric encryption, the
在一些实施方案中,生成和使用多个密钥对135。例如,当使用装置身份合成引擎(DICE)和稳健物联网(RIoT)方法时,第一对不对称密钥被称为装置识别密钥;并且第二对不对称密钥被称为别名密钥。私有装置识别密钥可用于认证别名密钥的真实性,然后立即从存储器装置130和/或端点150删除和清除以保护其机密性,特别是在私有装置识别密钥的生成或使用至少部分地发生在主机系统120中时。别名密钥可用于认证其它事务和/或通信。例如,私有装置识别密钥可在启动时间生成并用于对证书进行签名,例如别名公钥的证书,然后删除。在使用将私有装置识别密钥用作秘密密钥137签名的证书验证或确认存储器装置130的身份和公共别名密钥的真实性之后,私有别名密钥就可在后续操作中用作存储器装置130的秘密密钥137,直到端点150重启为止。In some embodiments, multiple key pairs 135 are generated and used. For example, when using Device Identity Synthesis Engine (DICE) and Robust Internet of Things (RIoT) methods, the first pair of asymmetric keys is referred to as device identification keys; and the second pair of asymmetric keys is referred to as alias keys . The private device identification key may be used to authenticate the authenticity of the alias key and then immediately deleted and purged from the
例如,装置信息121的存储于存储器单元103中的数据123可包含将由连接到存储器装置130的主机接口147的主机系统120的处理装置118执行的一组指令(例如,软件、固件、操作系统、应用程序)。For example, the
例如,数据123可包含所述一组指令的加密散列值。例如,所述一组指令的已知散列值可存储于存储器单元103中;并且所述一组指令的当前散列值可经计算以与已知散列值比较。如果这两个散列值彼此一致,那么所述一组指令的完整性得以验证;并且所述一组指令的完整性的散列值可用作计算秘密密钥137的装置信息121的部分。For example,
替代地,存储于存储器单元103中的所述一组指令的当前散列值可在秘密密钥137的计算中直接使用。如果指令已改变(例如,由于数据损坏和/或篡改或窃用),那么安全服务器140对秘密密钥137的验证将失败。Alternatively, the current hash value of the set of instructions stored in memory unit 103 may be used directly in the computation of
任选地,数据123可包含所述一组指令的识别,例如指令的源代码的散列值、由指令表示的软件/固件包的名称、包的版本号和/或发放日期等等。Optionally,
任选地,数据123可包含在构建和/或定制包含存储器装置130的端点150的过程期间存储到存储器单元103中的跟踪数据。例如,当存储器装置130组装到组件装置(例如,存储器子系统)中时,表示组件装置的制造商、组件装置的型号和/或组件装置的序列号的一条跟踪数据存储到存储器单元103中作为装置信息121的部分。随后,当组件装置组装到端点150中时,将一条跟踪数据添加到存储器单元中作为装置信息121的部分。可以将其它跟踪数据添加到存储器单元103中作为装置信息121的部分,以反映用于个性化存储器装置130的身份的存储器装置130的历史。Optionally,
任选地,装置信息121可进一步包含从连接到存储器装置130的主机接口147的主机系统120接收的数据125。Optionally,
例如,端点150可具有主机系统120和存储器装置130。主机系统120中的一些组件可以移除或替换。在启动端点150时,存储在存储器单元103中的指令的一部分经执行以收集关于在启动时间存在于主机系统120中的组件的数据125。因此,装置信息121可表示存储器装置130和/或端点150的软件/数据和硬件组合的特定配置。基于装置信息121和唯一装置秘密101生成的秘密密钥137表示具有所述特定配置的存储器装置130的身份。For example, endpoint 150 may have
为了证明存储器装置130和/或端点150的身份,加密引擎107从消息131和秘密密钥137生成验证码133。To prove the identity of
如上文所论述,秘密密钥137和消息131的验证码133可以使用各种技术构造和/或验证,例如散列摘要、数字签名或基于散列的消息认证码、对称加密和/或不对称加密。因此,验证码133不限于特定实施方案。As discussed above, the
任选地,消息131可包含用户识别,例如名称、电子邮件地址、注册用户名称或其中生成身份数据113的端点150的所有者或授权用户的另一标识符。Optionally, message 131 may contain user identification, such as a name, email address, registered user name, or another identifier of the owner or authorized user of endpoint 150 where
任选地,消息131的部分可以加密形式提供信息。例如,信息可以使用安全服务器140的公钥加密,使得信息不可被第三方访问。Optionally, portions of message 131 may provide information in encrypted form. For example, the information may be encrypted using the public key of the
消息131可以是呈现存储器装置130和/或端点150的唯一识别111的证书。消息131可进一步呈现其它数据127,例如维持在存储器装置130中的计数器值、密码随机数和/或有关身份数据113的验证的其它信息。存储器装置130可单调地增加计数器值,以使具有较低计数器值的身份数据无效,以防重放攻击。The message 131 may be a certificate presenting the
在一些实施方案中,数据127可包含用于生成秘密密钥137的装置信息121的部分。In some implementations, the
在一些实施方案中,秘密密钥137是一对不对称密钥中的私有别名密钥。数据127包含呈现所述一对不对称密钥中的对应公共别名密钥的证书。呈现公共别名密钥的证书使用存储器装置130的装置识别密钥签名。公共别名密钥可用于验证消息131的验证码133和用作秘密密钥137的私有别名密钥。一旦安全服务器140验证呈现公共别名密钥的证书,所述证书使用存储器装置130的装置识别密钥签名并提供为数据127的部分,安全服务器140就可使用公共别名密钥验证使用私有别名密钥作为秘密密钥137签名的验证码133。在此实施方案中,安全服务器140可使用消息131中提供的公共别名密钥验证验证码133,而不必重新生成所述一对别名密钥;并且存储器装置130可使用安全服务器140尚未知晓的数据生成别名密钥对135。In some embodiments, the
呈现公共别名密钥的证书可以图2中的方式生成和验证,其中秘密密钥137是使用装置信息121和唯一装置秘密101生成的装置识别密钥。任选地,存储器装置130初始地向安全服务器140提供具有公共别名密钥的证书。随后,存储器装置130可使用私有别名密钥作为秘密密钥137,且消息131中不包含公共别名密钥,或消息131中不包含公共别名密钥的证书。The certificate presenting the public alias key can be generated and verified in the manner in FIG. 2 , where the
经签名以生成验证码133的消息131中的数据127可包含质询。例如,为了质询存储器装置130证明它拥有秘密密钥137,可以呈现随机数据项作为要使用秘密密钥137签名的数据127的部分。在一些实施方案中,单调增加的计数器值可用作质询。The
此外,验证存储器装置130的身份可包含使用多个秘密密钥和用秘密密钥签名的验证码。例如,装置识别秘密密钥可用于初始地建立别名秘密密钥的真实性和存储器装置130的身份;并且随后,别名秘密密钥可用于验证存储器装置130的身份的真实性。一般来说,装置识别秘密密钥和别名秘密密钥可以基于不对称加密或对称加密,因为安全服务器140可生成由存储器装置130生成的对应加密密钥。Additionally, verifying the identity of the
为了提高安全性,存储器装置130不使用存储器装置130之外的处理能力来生成秘密密钥137的副本,且不将秘密密钥137传送到存储器装置130之外。秘密密钥137的生成和使用是使用密封在存储器装置130内的加密引擎107的逻辑电路执行的。To improve security,
替代地,生成和使用秘密密钥137的操作的部分可以经由存储于存储器单元103中且加载到主机系统120的处理装置118中以供执行的一组指令实施。为了提高安全性,秘密密钥137不以明文跨主机接口147传送;并且指令可配置成在生成之后和/或在使用之后从主机系统120清除秘密密钥137。Alternatively, portions of the operations to generate and use the
身份数据113可响应于存储器装置130通电、响应于在主机接口147中接收的请求和/或响应于端点150启动(例如,通过执行存储于存储器单元103中的启动加载程序)而生成。数据127可包含维持在存储器装置130中的计数值。当执行生成身份数据113的操作时,计数值增加。因此,具有某一计数值的某一版本的身份数据113使具有低于所述计数值的计数值的先前版本的身份数据113无效。
图3示出根据一个实施例的用于控制存储器装置中的命令执行的技术。例如,图3的技术可以在图1的计算系统中实施并与图2的技术一起使用。3 illustrates a technique for controlling command execution in a memory device, according to one embodiment. For example, the techniques of FIG. 3 may be implemented in the computing system of FIG. 1 and used with the techniques of FIG. 2 .
在图3中,当主机系统120的控制器116向存储器装置130的主机接口147发送命令155时,访问控制器109确定命令155的发送方是否具有请求存储器装置130执行命令155的权限。3, when
加密密钥145配置成表示权限。命令155的发送方可从加密密钥145和含有命令155的消息151生成验证码153。The
如上文所论述,加密密钥145和消息151的验证码153可以使用各种技术构造和/或验证,例如散列摘要、数字签名或基于散列的消息认证码、对称加密和/或不对称加密。因此,验证码153不限于特定实施方案。As discussed above,
访问控制器109使用对应的访问控制密钥149验证命令155的提交给主机接口147的验证码153。访问控制器109使用加密引擎107生成接收到的消息151和接收到的验证码153的验证结果159。基于验证结果159,访问控制器109可选择性地允许命令155在存储器装置130内执行或阻止命令155的执行。The
例如,访问控制密钥149可以是存储于存储器装置130中的加密密钥105中的一个。不同的访问控制密钥可用于控制用于执行不同命令和/或用于执行作用于存储器单元103的不同区段的命令的不同权限。For example, the access control key 149 may be one of the
例如,加密密钥145可以存储在安全服务器140中以向安全服务器140提供相关联的权限。For example,
在一个实施例中,安全服务器140配置成响应于实体请求验证码153以在存储器装置130中执行命令155而生成代表实体的验证码153。In one embodiment, the
任选地,加密密钥145在验证使用秘密密钥137产生的身份数据113的过程中生成;并且在存储器装置130和安全服务器140之间已知的秘密(例如,秘密密钥137)允许会话密钥生成为加密密钥145,用来表示在具有时间限值的通信会话期间在存储器装置130中执行选定命令的权限。任选地,装置通电的时段可用作会话定界符,使得新计数值在下一功率循环期间生成,从而能够生成新的会话密钥。Optionally,
加密密钥145可配置成在验证身份数据113并建立会话密钥之后在短时间内有效。在安全服务器140验证实体有权在存储器装置130中运行命令155之后,安全服务器140可生成验证码153,并将验证码153提供到实体。然后,实体可将消息151和验证码153发送到主机接口147。一旦存储器装置130的访问控制器109使用加密引擎107和访问控制密钥149确定验证码153有效,验证结果159就准许存储器装置130执行接收到的命令155;否则,访问控制器109可拒绝或忽略所接收到的命令155。The
在另一实施例中,在安全服务器140在存储器装置130中配置访问控制密钥149之后,安全服务器140可向实体提供表示在存储器装置130中执行命令155的权限的加密密钥145。In another embodiment, after the
消息151可包含表示对执行命令155的请求的限制的数据157。The message 151 may contain
例如,数据157可包含维持在存储器装置130内的执行计数值,使得针对较低计数生成的验证码无效。For example,
例如,数据157可包含针对执行命令155的请求的特定实例建立的密码随机数,使得验证码153无法重复用于另一实例。For example,
例如,数据157可包含其中验证码153有效的时间窗。For example,
例如,数据157可包含其中允许执行命令155的存储器区域的识别。For example,
例如,数据157可包含允许在存储器装置130中执行命令155的操作类型。For example,
图4示出根据一个实施例的用于验证存储于存储器装置中的数据完整性的技术。例如,图4的技术可用于图1的存储器装置130,并且与图2和/或图3的技术结合使用。4 illustrates a technique for verifying the integrity of data stored in a memory device, according to one embodiment. For example, the techniques of FIG. 4 may be used with the
在图4中,存储器装置130在存储器单元103中不仅存储内容161,而且还存储内容161的散列值163。为确定内容161的完整性状态165,加密引擎107向内容161应用加密散列函数以生成内容161的当前散列值;并且加密引擎107比较当前散列值和所存储的散列值163以确定它们是否相同。如果相同,那么确认所存储的散列值163所需要的内容161的完整性。In FIG. 4 , the
散列值163可以存储为用于生成秘密密钥137以验证存储器装置130的身份的装置信息121的部分。The
内容161和散列值163存储在存储器装置130的不同区段中。访问控制器109提供和/或施行不同水平的权限以访问内容161和散列值163。
例如,端点150的制造商可将内容161存储到存储器单元103中,使得端点150中主机系统120的处理装置118可以在内容161中运行程序或例程以提供端点150的所设计功能。此外,制造商和/或安全服务器140可将散列值163存储到单独区段中以用于完整性检查。端点150的终端用户可访问和使用存储器单元中的内容161,但是无法访问散列值163。如果内容161被损坏或篡改,那么加密引擎107可以检测改变并生成完整性状态165,使访问控制器109阻止内容161的使用。当制造商具有更新版本的内容161(或替换)时,制造商可在存储器单元103中执行更新,并发出带验证码153的命令155以更新散列值163。任选地,安全服务器140可响应于来自制造商的请求而生成验证码153。For example, a manufacturer of endpoint 150 may store
存储器装置130中的装置信息121和加密密钥105可以存储在存储器装置130中的安全区段中,并经由访问控制器109通过表示为存储在安全服务器140中的加密密钥106的所有者权限受保护。The
不同秘密(例如,唯一装置秘密101、秘密密钥137)和内容(例如,装置信息121、内容161)可以不同安全等级和/或使用用来平衡安全性和实用性的不同安全策略受保护。Different secrets (eg, unique device secret 101, secret key 137) and content (eg,
唯一装置秘密101可在存储器装置130中以最高安全等级受保护。例如,一旦存储器装置130离开存储器装置的制造安全设施和/或在完成存储器装置130的制造操作之后,唯一装置秘密101不可经由去往主机接口147(和/或存储器装置130的任何接口)的命令改变。优选地,唯一装置秘密101在用于表示存储器装置130和/或端点150的身份的秘密密钥(例如,137)的生成期间仅可由加密引擎107访问。例如,唯一装置秘密101可配置成在端点150启动时仅在有限时间内可用。
例如,装置识别密钥可经由最小化其使用而受保护。别名识别密钥的安全性比装置识别密钥更高,替换频率也更高。不同的操作和/或权限可用于替换装置识别密钥和别名识别密钥。For example, the device identification key can be protected by minimizing its use. Alias identification keys are more secure than device identification keys and are replaced more frequently. Different operations and/or permissions may be used to replace the device identification key and alias identification key.
图5示出根据一个实施例的基于在存储器装置中实施的安全特征提供给客户端服务器的安全服务器的安全服务。Figure 5 illustrates security services provided to a client server's security server based on security features implemented in a memory device, according to one embodiment.
例如,图5中所示的安全服务可以基于图2、3和/或4中所示的安全特征在图1的计算系统中实施。For example, the security services shown in FIG. 5 may be implemented in the computing system of FIG. 1 based on the security features shown in FIGS. 2 , 3 and/or 4 .
在图5中,客户端服务器141配置成将服务提供到计算装置,例如图1中的具有连接到主机系统120的存储器装置130的端点150。In FIG. 5 ,
为了向客户端服务器141请求服务,主机系统120(例如,运行从存储器装置130检索的指令)请求存储器装置130的身份数据113。例如,身份数据113可以图2中示出的方式生成。To request a service from
主机系统120将身份数据113嵌入在传输到客户端服务器141的请求171中。
为了确定端点150是否有权受到服务,客户端服务器141从请求171提取身份数据113并生成针对安全服务器140基于身份数据113提供安全服务的请求173。To determine whether endpoint 150 is entitled to be serviced,
安全服务器140可执行身份数据113的验证,确定存储器装置130和/或端点150的真实性,并在响应174中向客户端服务器141提供结果。基于结果,客户端服务器141可向主机系统120提供响应172。
例如,响应174可指示身份数据113是来自仿冒装置,还是来自其中与端点150和/或存储器装置130的身份相关的数据123或内容161已经更改、损坏、改变或篡改的装置,还是来自丢失或被盗装置。For example,
在一些实施方案中,请求173可识别要在存储器装置130中执行的命令155。在验证身份数据113并验证客户端服务器141和/或端点150请求命令155在存储器装置130内执行的权限之后,安全服务器140可使用加密密钥145生成命令155的验证码153,并在响应174中将验证码153提供到客户端服务器141。使用安全服务,客户端服务器141可以从与权限和表示权限的加密密钥145的管理相关联的安全负担中解脱出来。In some implementations, the request 173 may identify the
任选地,响应174可包含表示在存储器装置130中执行命令155的权限的加密密钥145。为了减小客户端服务器141的安全负担,加密密钥145可配置成在短时间内到期。Optionally,
任选地,当确定身份数据113与丢失或被盗装置相关联时,响应174可包含命令155和/或其验证码153,使得当命令155在存储器装置130中执行时,访问控制器109可以停用主机系统120可经由主机接口147访问的至少一些特征。Optionally, when the
例如,在存储器装置130中执行命令155之后,访问控制器109可配置成停用存储于存储器装置130的存储器单元103中的启动加载程序。For example, upon execution of
例如,命令155可使访问控制器109阻止对存储器单元103的一或多个区段的访问。For example,
例如,命令155可使访问控制器109需要权限来访问存储器单元103的一或多个区段,所述权限由存储在安全服务器140中的新加密密钥106表示。For example,
例如,命令155可使访问控制器109通过清除用于解密存储在存储器单元的一或多个区段中的数据的解密密钥来破坏所述一或多个区段中的数据。For example,
例如,命令155可使存储器装置130执行自我毁坏,并不可逆地受损。For example,
从存储器单元103检索以在主机系统120中执行的指令可包含可接受命令155作为对存储器装置130提供身份数据113的响应的例程。在一些实施方案中,客户端服务器141可提供允许安全服务器140向存储器装置130发送命令155以供执行的连接。Instructions retrieved from memory unit 103 for execution in
上文所论述的技术可用于实施认证服务订户的新方式。The techniques discussed above can be used to implement new ways of authenticating service subscribers.
例如,存储器装置130可配置成以改进的安全性生成端点150的多因子装置平台身份。身份可通过组合以下来生成:存储器装置130的唯一装置秘密101、识别在端点150上运行以建立到服务或网络(例如,客户端服务器141或143)的安全连接的一或多个应用程序的平台源代码,和网络接口114或通信装置的唯一标识符。例如,唯一标识符可以是安装于端点150上以通过通信网络110通信的调制解调器的标识符。例如,多因子装置平台身份可至少部分地基于配置成访问蜂窝服务的端点150的国际移动设备身份(IMEI)编号。例如,当端点150涉及车辆时,多因子装置平台身份可至少部分地基于车辆识别号(VIN)。此类有力的身份可在登入、云服务(例如蜂窝订阅服务)的网络访问和注册中与基于云的订户身份模块(SIM)函数结合使用。For example,
安全服务器140和存储器装置(例如,130)的安全特征可提供安全存储器装置技术平台。平台可配置成通过测量存储在安全存储器装置(例如,130)的存储器单元103中的数据来支持端点150的认证。端点的额外网络安全保护可以通过控制对存储在存储器装置(例如,130)中的内容161的访问来实现。访问控制可以通过安全硬件制造操作和基于密码的许可控制来实施,如上文结合图1到5所论述。配备有此类存储器装置(例如,130)的平台可到达足够的网络安全保护等级,以支持基于云的虚拟SIM解决方案并且不再需要端点150上的物理SIM卡访问蜂窝连接。The security features of the
安全存储器装置技术平台可包含安全存储器装置(例如,130)和满足DICE RIoT要求的软件的组合,用于生成使用安全存储器装置启动的端点(例如,150)的身份数据113。端点150的此类身份数据113基于用于启动端点150的安全存储器装置130的身份和其它因素生成。此类身份数据113可以在登入(例如,注册服务)期间传递到客户端服务器141上。客户端服务器141可与安全服务器140通信以确认端点150的身份。当身份数据113被验证时,客户端服务器141可信任端点150为真实的,且因此向端点150注册服务。The secure memory device technology platform may include a combination of secure memory devices (eg, 130 ) and software that meets DICE RIoT requirements for generating
例如,此类服务可以是通常注册到物理SIM卡的蜂窝连接。由安全存储器装置技术平台验证并通过安全登入保护的身份数据113可以以与使用物理SIM卡识别端点一样安全或更安全的方式提供端点(例如,150)的识别。基于云的虚拟SIM可以绑定到安全存储器装置技术平台在服务订阅生命周期内验证的身份数据113。For example, such a service could be a cellular connection that is usually registered to a physical SIM card.
通常,服务网络(例如,支付卡网络、蜂窝通信网络)可经由智能卡识别订户。传统智能卡被配置为嵌入在塑料卡中的集成电路芯片。智能卡中的集成电路芯片存储识别客户账户的数据,并且可以任选地存储与服务网络向账户提供的服务有关的数据。集成电路芯片可以通过配置在塑料卡和/或无线收发器的表面区域上的金属触点读取。Typically, service networks (eg, payment card networks, cellular communication networks) can identify subscribers via smart cards. Traditional smart cards are configured as integrated circuit chips embedded in plastic cards. An integrated circuit chip in the smart card stores data identifying the customer's account and, optionally, data related to services provided to the account by the service network. The integrated circuit chip can be read by means of metal contacts arranged on the surface area of the plastic card and/or the wireless transceiver.
例如,订户识别模块(SIM)(也被称为SIM卡)是一种智能卡。SIM卡通常用于移动电话中,以识别用于访问蜂窝通信网络服务的账户。当SIM卡附接到移动电话时,蜂窝通信网络根据SIM卡所识别的账户向移动电话提供服务。当SIM卡附接到替换移动电话时,替换移动电话可以访问为账户配置的服务。For example, a Subscriber Identity Module (SIM) (also known as a SIM card) is a type of smart card. SIM cards are commonly used in mobile phones to identify accounts used to access cellular communication network services. When the SIM card is attached to the mobile phone, the cellular communication network provides services to the mobile phone according to the account identified by the SIM card. When the SIM card is attached to the replacement mobile phone, the replacement mobile phone can access the services configured for the account.
例如,SIM卡可存储移动订户身份,例如国际移动订户身份(IMSI)编号。移动/蜂窝网络运营商可以为IMSI编号和SIM卡分配认证密钥。SIM卡存储认证密钥。可以基于使用认证密钥签名的数字签名对SIM卡进行认证。在对SIM卡进行认证之后,具有SIM卡的移动电话可以在与移动订户身份相关联的账户中接收移动/蜂窝服务。For example, a SIM card may store a mobile subscriber identity, such as an International Mobile Subscriber Identity (IMSI) number. Mobile/cellular network operators can assign authentication keys to IMSI numbers and SIM cards. The SIM card stores the authentication key. The SIM card may be authenticated based on a digital signature signed with an authentication key. After the SIM card is authenticated, the mobile phone with the SIM card can receive mobile/cellular services in the account associated with the mobile subscriber identity.
Europay MasterCard Visa(EMV)卡是智能卡的另一实例。EMV卡可用于在支付卡处理网络中接收金融服务,以访问银行账户,如借记账户和信用账户。The Europay MasterCard Visa (EMV) card is another example of a smart card. EMV cards can be used to receive financial services in payment card processing networks to access bank accounts such as debit and credit accounts.
集成电路存储器装置130可配置成防止对其存储器单元103的未经授权的访问,并确保存储器装置130本身和/或安装了存储器装置130的端点150的唯一身份。如图6所示,具有安全特征的安全存储器装置130可用于使用远程供应给安全存储器装置的数据和/或使用存储在安全服务器中的数据来实施诸如SIM卡和EMV卡等智能卡的功能。The integrated
图6示出根据一个实施例的用于配置和认证基于卡的服务的端点的系统和方法。6 illustrates a system and method for configuring and authenticating endpoints for card-based services, according to one embodiment.
例如,图6的系统和方法可以使用图2到5的技术在图1的计算系统中实施。For example, the system and method of FIG. 6 may be implemented in the computing system of FIG. 1 using the techniques of FIGS. 2-5.
在图6中,存储器装置130可以使用具有图1到5的安全特征的集成电路存储器装置130实施。存储器装置130的访问控制器109可使用一或多个访问控制密钥213来控制访问存储器装置130中的至少一些存储器区域的读取和写入操作。In FIG. 6,
例如,存储器装置130初始地制造有访问控制密钥213,允许安全服务器140能够完整访问存储器装置130中的存储器区域。存储器装置130进一步制造成包含在一群存储器装置中唯一地识别存储器装置130的装置身份数据211的至少一部分。For example, the
例如,装置身份数据211可使用图2中示出的技术生成。For example, device identity data 211 may be generated using the techniques shown in FIG. 2 .
例如,在存储器装置130的制造期间,在存储器注册231的操作中将存储器装置130的根秘密(例如,唯一装置秘密101)加载到安全服务器140中。根秘密可以是由存储器装置130的物理不可克隆函数(PUF)生成的数字,或者是在存储器装置130的制造期间选择并存储到存储器装置130中的随机数。安全服务器140可包含配置成管理安全存储器装置(例如,130)的加密密钥的密钥管理服务器。根密钥可被视为和/或用作秘密加密密钥。当制造存储器装置130时,可以从存储器装置130获得根秘密,或者将根秘密注入存储器装置130以用于存储器注册231。优选地,存储器装置130的制造使得在其制造之后,存储器装置130不在存储器装置130之外提供根秘密。For example, the root secret of memory device 130 (eg, unique device secret 101 ) is loaded into
装置身份数据211可以是不在存储器装置130之外公开、改变和提供的根秘密。Device identity data 211 may be a root secret that is not disclosed, changed, and provided outside of
在存储器装置130离开制造设施之后,装置身份数据211中的根秘密和其它秘密不可经由存储器装置130的通信接口(例如,主机接口147)获取。因为存储器装置130施行一组数据访问策略来防止秘密泄漏和存储在存储器装置130的访问受保护区域中的数据篡改,存储器装置130可被视为安全存储器装置。安全服务器140存储可模仿由存储器装置130执行以独立于存储器装置130生成派生秘密的计算的信息。因此,安全服务器140可重新生成存储器装置130的派生秘密,而无需存储器装置130经由其通信接口(例如,主机接口147)传送派生秘密。After the
例如,存储器装置130的根秘密可以经由物理不可克隆函数(PUF)实施。存储器装置130的根秘密可以从存储器装置130检索并存储到安全服务器140中以用于存储器装置130制造期间的存储器注册231。根秘密可用于从装置身份数据211生成派生秘密。例如,PUF可用于导出迪菲-赫尔曼(Diffie Hellman)密钥对;并且迪菲-赫尔曼密钥对可用于创建可在装置和安全服务器之间安全共享的唯一装置秘密(UDS)101。For example, the root secret of
例如,装置身份数据211可使用图2的技术生成。For example, device identity data 211 may be generated using the techniques of FIG. 2 .
派生秘密以某一方式(例如,基于加密散列函数、随机数和/或单调计数值)生成,使得根秘密无法从派生秘密和/或用于生成派生秘密的其它信息计算出。例如,派生秘密可包含一对不对称加密密钥的私钥。例如,派生秘密可包含对称加密密钥。The derived secret is generated in a manner (eg, based on a cryptographic hash function, random numbers, and/or monotonic count values) such that the root secret cannot be calculated from the derived secret and/or other information used to generate the derived secret. For example, the derived secret may contain the private key of a pair of asymmetric encryption keys. For example, the derived secret may contain a symmetric encryption key.
装置身份数据211可包含存储器装置130的非秘密公共识别号,例如存储器装置130的序列号、存储器装置130的唯一识别号和/或一对不对称加密密钥的公钥等等。公开识别号可用于在一群存储器装置中唯一地识别存储器装置130,而不泄露存储器装置130的秘密;并且存储器装置130的秘密可用于认证/确认存储器装置130是由公共识别号识别的。Device identity data 211 may include a non-secret public identification number of
在存储器装置130离开制造设施之后,可以生成和/或替换装置身份数据211中的派生秘密。访问控制密钥213可用于控制生成和/或替换派生秘密以防篡改的操作的执行。例如,派生秘密可包含根据装置身份合成引擎(DICE)标准生成的加密密钥和/或证书。The derived secret in the device identity data 211 may be generated and/or replaced after the
在存储器注册231期间,至少存储器装置130的根秘密与存储器装置130的公共识别号相关联地存储到安全服务器140中。在存储器装置130的制造过程中,存储器装置130的根秘密在安全环境中在存储器注册231期间在存储器装置130和安全服务器140之间是已知的。随后,用于生成派生秘密的额外信息可以公开,而不损害派生秘密的保密性。派生秘密可用于存储器装置130的认证,并且可任选地替换。During
访问控制密钥213配置成防止对装置身份数据211中的秘密的未授权访问和/或操作。例如,一旦访问控制密钥213配置于存储器装置130中,秘密就限于供加密引擎107使用(例如,重新生成派生秘密和/或生成数字签名)。例如,在存储器装置130的主机接口147中接收的命令/请求需要以能够使用访问控制密钥213验证的方式进行数字签名,如图3中所示。如果应用在命令/请求上的数字签名根据访问控制密钥213无效,那么命令/请求可被拒绝和/或忽略。Access control keys 213 are configured to prevent unauthorized access and/or manipulation of secrets in device identity data 211 . For example, once the access control key 213 is configured in the
例如,访问控制密钥213可用于认证应用在命令上的数字签名以执行与装置身份数据211有关的特定操作,例如替换加密密钥或不对称加密密钥对。For example, the access control key 213 may be used to authenticate a digital signature applied on a command to perform a particular operation related to the device identity data 211, such as replacing an encryption key or asymmetric encryption key pair.
此外,一或多个额外访问控制密钥213可用于认证存储器装置130的所有者和/或经授权用户的数字签名。不同的经授权用户可限于访问存储器装置的不同区域进行特定操作(例如,写入、擦除、读取)。所有者和其他经授权用户可具有不同的范围和/或权限来操作存储器装置130。Additionally, one or more additional access control keys 213 may be used to authenticate the digital signature of the owner and/or authorized user of
安全服务器140可配置为存储器装置130的初始所有者。例如,安全服务器140的公钥可初始地存储于存储器装置130中作为所有者访问控制密钥213,以提供针对使用安全服务器140的私钥签名的命令的所有者权限。在存储器装置130递送到客户之后,客户的公钥可以存储为所有者访问控制密钥213的替代,以将所有者权限转移到客户。
任选地,存储器装置130的特定安全功能可为客户激活。与安全功能的激活有关的存储器装置130的一些方面可见于2020年9月8日提交且标题为“半导体装置中的功能的客户特定激活”的第17/014,203号美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。Optionally, certain security features of
端点150可构造成包含存储器装置130和其它组件187。在端点150的构造233期间,存储器装置130安装/组装到端点150中;并且软模块217和跟踪数据215可以存储到存储器装置130中。Endpoint 150 may be configured to include
例如,软模块217可包含端点150的启动加载程序、存储器装置130和/或含有存储器装置130的存储器子系统的固件或端点150的操作系统或软件应用程序。软模块217可包含配置成实施功能的指令和数据。指令可由存储器装置130的逻辑电路、安装了存储器装置130的存储器子系统的控制器和/或存储器装置130和/或存储器子系统的主机系统120的处理装置118执行。For example,
在端点构造233期间,端点注册235可经执行以将跟踪数据215存储到安全服务器140和/或存储器装置130中。跟踪数据215可以作为端点150的配置和/或身份的部分。During
例如,跟踪数据215可包含使用加密散列函数计算的软模块217的散列值。例如,跟踪数据215可包含分配给端点150的秘密。For example, trace
端点150的仿冒品不具有跟踪数据215,它无法通过依赖于跟踪数据215的端点认证239。因此,系统的安全性有所提高。与跟踪数据215有关的技术的其它细节和实例可见于2020年8月28日提交且标题为“用于主机装置验证的安全存储器系统编程”的第17/005,565号美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。The counterfeit of endpoint 150 does not have tracking
端点身份数据188可使用图2的技术生成,以表示端点150在其启动时间的配置。例如,端点身份数据188可包含基于装置身份数据211的一部分、跟踪数据215和在启动端点150时存在的其它组件(例如,网络接口114、处理装置118、控制器116)的识别数据的组合生成的证书(例如,消息131)。
装置身份数据211和/或端点身份数据188可包含根据由可信计算小组(TCG)开发的标准使用装置身份合成引擎(DICE)生成的一或多个证书,所述标准组合硬件秘密和源代码形成了可信身份。用于生成装置身份的技术的其它细节和实例可见于2019年4月4日提交的标题为“用于生成装置身份以利用远程服务器认证的安全装置上的登入软件”且于2020年10月8日公布为第2020/0322134号美国专利申请公开案的第16/374,905号美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。The device identity data 211 and/or the
虚拟卡注册237的操作可经执行以将端点150配置用于基于卡的服务网络225的服务,例如移动/蜂窝通信网络、银行卡处理网络等。The operations of
例如,端点150可以连接到卡服务器223,以请求由装置身份数据211表示的端点150的卡简档219。为了请求卡简档219,端点150将端点身份数据188的公共部分传输到卡服务器223。卡服务器223将端点身份数据188转发给安全服务器140,用于端点150的认证239。例如,可以使用结合图2论述的认证技术。For example, endpoint 150 may connect to card server 223 to request the
一旦安全服务器140验证端点身份数据188是使用在端点注册235期间在安全服务器140中提交和/或记录的存储器装置130的装置身份数据211、跟踪数据215和端点150的其它数据的正确组合形成的,卡服务器223可以将卡简档219分配和/或存储到存储器装置130,或者将卡简档219与端点身份数据188相关联。Once the
虚拟卡注册237可以经由在存储器装置130中受保护的软模块217和/或经由安全管理器来执行,使得存储在存储器装置130中的卡简档219不能被篡改。任选地,安全服务器140可生成用于将卡简档219写入存储器装置130的安全区段中的命令155的验证码。可以经由存储在安全服务器140中的加密密钥来控制安全区段的写入权限。例如,访问控制器109可以使用与卡服务器223或安全服务器140相对应的访问控制密钥213来控制存储器装置130中的卡简档219的存储和/或替换。The
此外,存储器装置130可以图4中示出的方式验证卡简档和/或负责使用卡简档219的软模块217的完整性。Additionally, the
当卡简档219在端点150中的存储器装置130中受保护时,存储器装置130和/或端点150可以以与安装在端点150中的对应智能卡等效的方式工作。安全地附接到装置身份数据211的卡简档219可以被视为虚拟智能卡。When the
在一些实施方案中,软模块217配置成使用集成电路存储器装置130的逻辑电路的加密函数和/或处理能力来实施卡简档219的使用所涉及的加密操作。例如,卡简档219可包含认证密钥;并且软模块217可配置成生成用于认证/验证卡简档219包含认证密钥的数字签名。In some embodiments, the
例如,卡简档219可如图7和图8中所示。For example, the
图7示出根据一个实施例的虚拟智能卡的卡简档。Figure 7 illustrates a card profile of a virtual smart card according to one embodiment.
在图7中,卡简档219可包含卡数据241和软卡模块243。任选地,软卡模块243可以安装为存储于存储器装置130中的软模块217的部分。In FIG. 7 , the
卡数据241可包含智能卡(例如,虚拟卡)、账户和/或订户的识别。例如,卡数据241可识别智能卡的类型、账户/卡订阅的服务和/或与服务有关的客户数据(例如,余量、交易记录、消息等)。在一些实施方案中,卡数据241可包含存储在物理智能卡(例如,嵌入在根据通用集成电路卡(UICC)标准配置的塑料卡中的集成电路芯片)中的相同一组数据。
软卡模块243可包含通过存储器装置130的加密引擎107对卡数据241进行操作的指令。例如,用于特定类型的智能卡的集成电路芯片的计算功能可以通过经由安全存储器装置130执行软卡模块243来实施。软卡模块243允许端点150模拟物理智能卡的计算操作。
图8示出根据一个实施例的虚拟订户识别模块(SIM)的卡简档。Figure 8 illustrates a card profile of a virtual subscriber identity module (SIM) according to one embodiment.
在图8中,卡简档245包含卡数据241,例如集成电路卡标识符(ICCI)251、移动设备身份编号253、国际移动订户身份编号255、分配给国际移动订户身份编号255的认证密钥257,以及与国际移动订户身份编号255的移动/蜂窝通信服务有关的服务数据247。In FIG. 8 , the card profile 245 contains
在使用传统SIM卡的传统移动电话中,集成电路卡标识符(ICCI)251用于在一群SIM卡中识别SIM卡。移动设备身份编号253(例如,以国际移动设备身份(IMEI)编号或IMEI软件版本(IMEISV)的形式)用于在一群移动电话中识别移动电话。国际移动订户身份(IMSI)编号用于在群体当中识别订户/客户/账户。当卡简档245附接到端点150时,卡简档245中的此类编号可用于类似功能。例如,当端点150是没有物理SIM卡的移动电话时,卡简档245可以用作虚拟SIM卡来识别卡、订户和端点/移动电话。例如,集成电路卡标识符(ICCI)251对应于和/或表示存储器装置130的装置身份数据211;移动设备身份编号253对应于和/或表示端点150的端点身份数据188;并且,国际移动订户身份编号255表示移动/蜂窝通信网络中的订户/客户/账户。In conventional mobile phones using conventional SIM cards, an integrated circuit card identifier (ICCI) 251 is used to identify a SIM card in a group of SIM cards. The mobile equipment identity number 253 (eg, in the form of an International Mobile Equipment Identity (IMEI) number or IMEI software version (IMEISV)) is used to identify a mobile phone within a group of mobile phones. International Mobile Subscriber Identity (IMSI) numbers are used to identify subscribers/customers/accounts among groups. Such numbers in the card profile 245 may be used for similar functions when the card profile 245 is attached to the endpoint 150. For example, when endpoint 150 is a mobile phone without a physical SIM card, card profile 245 can be used as a virtual SIM card to identify the card, subscriber, and endpoint/mobile phone. For example, integrated circuit card identifier (ICCI) 251 corresponds to and/or represents device identity data 211 of
例如,认证密钥257是分配给国际移动订户身份编号255的秘密。当端点150使用国际移动订户身份编号255来请求移动/蜂窝通信网络中的连接时,移动/蜂窝网络运营商可以从数据库中查找认证密钥257,并质询端点150以证明其拥有认证密钥257。安全质询可包含使用认证密钥257对包含随机数(RAND)的消息进行数字签名。对安全质询的回复可包含用于由移动/蜂窝网络运营商验证的数字签名的一部分。运营商使用与数据库中的国际移动订户身份编号255相关联的对应认证密钥257对消息进行独立签名。如果回复与移动/蜂窝网络运营商计算的应答一致,那么数字签名被验证;并且因此,端点150被认为具有分配给国际移动订户身份编号255的认证密钥257,并且有资格接收与国际移动订户身份编号255相关联的服务。此外,可以从数字签名导出对称加密密钥,用于在后续通信会话中保护端点150和移动/蜂窝通信网络之间的通信。For example, the
例如,当卡简档245安装在端点150中时,端点150可以与移动/蜂窝网络运营商通信,以使用具有物理SIM卡的移动电话所使用的相同协议来请求连接并响应安全质询。因此,移动/蜂窝网络不必区分具有作为虚拟SIM卡的卡简档245的端点150和具有物理SIM卡的其它移动电话。For example, when the card profile 245 is installed in the endpoint 150, the endpoint 150 can communicate with the mobile/cellular network operator to request connections and respond to security challenges using the same protocols used by mobile phones with physical SIM cards. Therefore, the mobile/cellular network does not have to distinguish between endpoints 150 with card profiles 245 as virtual SIM cards and other mobile phones with physical SIM cards.
任选地,卡简档245可包含认证模块259,其配置成由安全存储器装置130的加密引擎和/或端点150的处理装置118执行,以在使用卡简档245期间执行加密计算,例如为通信会话生成对安全质询的回复和/或对称加密密钥。Optionally, the card profile 245 may include an
在图6中,在虚拟卡注册237之后,端点150可以使用卡简档219从基于卡的服务网络225接收服务以识别订户/客户/账户。例如,初始地配置成向传统智能卡提供服务的基于卡的服务网络225可以无缝地进一步向具有通过将卡简档(例如,219)存储在安全存储器装置(例如,130)中实施的虚拟智能卡的端点(例如,150)提供服务。In FIG. 6, after
任选地,端点150可配置成以与具有物理智能卡(例如,SIM卡)或智能卡(例如,EMV卡)的移动装置相同的方式执行与基于卡的服务网络225的通信。Optionally, endpoint 150 may be configured to perform communications with card-based
例如,端点150可以用作读卡器的智能卡。端点150可包含用于连接到读卡器的金属触点。例如,端点150可包含与无线智能卡的读卡器相当的收发器。替代地,可以在基于卡的服务网络225中配置额外的读卡器,以使用替代通信连接从端点150读取虚拟卡。替代连接的实例可包含近场通信(NFC)连接、蓝牙连接、Wi-Fi连接、通用串行总线(USB)连接等。For example, endpoint 150 may function as a smart card reader. Endpoint 150 may include metal contacts for connection to a card reader. For example, endpoint 150 may include a transceiver comparable to a reader of a wireless smart card. Alternatively, additional card readers may be configured in the card-based
在另一实例中,端点150可以用作移动站,其具有内置读卡器以读取插入移动站中的智能卡,例如具有SIM卡的移动电话。端点150可以使用具有物理SIM卡的移动站的相同通信协议与基于卡的服务网络225通信以访问服务227。In another example, endpoint 150 may function as a mobile station with a built-in card reader to read a smart card inserted in the mobile station, such as a mobile phone with a SIM card. Endpoint 150 may communicate with card-based
任选地,卡简档219可以与端点身份数据188相关联地存储在卡服务器223中。端点150可以使用端点身份数据188访问基于卡的服务网络225中的服务227。作为响应,基于卡的服务网络225可以与卡服务器223通信以基于端点身份数据188识别卡简档219。此外,基于端点身份数据188,卡服务器223可以与安全服务器140通信以执行端点认证239,以验证端点150在虚拟卡注册时具有安全存储器装置130,并且具有由跟踪数据215、软模块217和组件187的组合表示的相同配置。当端点150被篡改和/或修改时,可以在状态检查229和/或端点认证239中检测到改变;作为响应,基于卡的服务网络225可以拒绝访问服务227的请求。Optionally,
任选地,可以结合访问服务227的请求及时执行虚拟卡注册237。响应于请求,通过端点认证239验证端点身份数据188。在端点验证成功之后,卡简档219可以将卡简档219与端点身份数据188相关联和/或存储到存储器装置130中。Optionally,
在一些实施方案中,卡服务器223被实施为安全服务器140的部分。In some embodiments, the card server 223 is implemented as part of the
在一些实施方案中,卡服务器223被实施为基于卡的服务网络225的网络运营商的部分。In some embodiments, the card server 223 is implemented as part of the network operator of the card-based
例如,图6的系统可用于简化、保护和加速物联网(IoT)装置和丰富的IoT服务生态系统的大规模全球部署。例如,虚拟订户身份模块(SIM)卡可由IoT装置(例如,端点150)使用,以通过移动/蜂窝通信网络连接到互联网。For example, the system of Figure 6 can be used to simplify, secure, and accelerate large-scale global deployment of Internet of Things (IoT) devices and a rich ecosystem of IoT services. For example, a virtual subscriber identity module (SIM) card may be used by IoT devices (eg, endpoint 150) to connect to the Internet through a mobile/cellular communication network.
安全服务器140可用作诸如IoT边缘装置的端点(例如,150)的基于存储器的安全即服务平台。卡服务器可用于为此类端点提供蜂窝连接解决方案。如图6所示的组合可以创建一个通用的端到端解决方案,用于将蜂窝连接的IoT装置零接触登入到云服务上。
企业IoT实施方案的复杂性给IoT装置的大规模全球部署带来了挑战。挑战包含在蜂窝连接和网络安全方面的实施困难。与无线局域网(例如,Wi-Fi)相比,蜂窝连接在IoT部署方面具有显著优势,例如更远的距离、更好的室外性能、更强的安全性和现有的全球基础设施。物理SIM卡的要求以及与移动/蜂窝网络运营商签订的合同减缓了IoT装置对蜂窝连接的使用。如图6所示的解决方案解决了此类挑战。The complexity of enterprise IoT implementations creates challenges for large-scale global deployment of IoT devices. Challenges include implementation difficulties in cellular connectivity and network security. Compared to wireless local area networks (e.g., Wi-Fi), cellular connectivity offers significant advantages for IoT deployments, such as longer range, better outdoor performance, stronger security, and existing global infrastructure. Physical SIM card requirements and contracts with mobile/cellular network operators have slowed the use of cellular connectivity by IoT devices. The solution shown in Figure 6 addresses such challenges.
通过将卡简档219与端点身份数据188和/或装置身份数据211安全地相关联而实施的虚拟SIM卡可以消除对物理SIM卡的需要。虚拟SIM卡的部署提供了高度可扩展的IoT安全、基于云的SIM管理、安全的零接触装置注册和IoT服务登入、流畅的全球连接、即时SIM激活。A virtual SIM card implemented by securely associating
如图6所示的解决方案对于工业、基础设施、汽车、航空、运输和物流部门尤其有利,这些部门甚至在最偏远的位置也需要为便携式装置提供无边界的远距离连接,不受边界和近距离Wi-Fi网络的限制。The solution shown in Figure 6 is especially beneficial for the industrial, infrastructure, automotive, aviation, transportation and logistics sectors, which require borderless long-distance connectivity for portable devices in even the most remote locations, free from borders and Limitations of close-proximity Wi-Fi networks.
如图6所示的系统可以极大地简化灵活的全球连接,并为IoT市场的创新提供丰富的可能性。A system like the one shown in Figure 6 can greatly simplify flexible global connectivity and provide rich possibilities for innovation in the IoT market.
物理智能卡的使用要求在制造期间将卡身份和/或装置身份与网络(例如,225)提供的服务紧密配对,以防装置不安全、操作不安全、欺诈和/或仿冒。The use of physical smart cards requires that the card identity and/or device identity be closely paired with services provided by the network (eg, 225 ) during manufacture to prevent device insecurity, operational insecurity, fraud and/or counterfeiting.
安全服务器140可用于实施第三方服务的零接触认证和证书的后期绑定,使得终端用户能够自由地安全访问更多样化的第三方IoT服务。The
安全服务器140和/或卡服务器223可用于安全地安装软模块以定制IoT装置。例如,可以提供在线软模块商店以允许将软模块存储到端点150中,以类似于上文所论述的不同类型的智能卡和/或SIM卡的功能供应的方式来定制其功能。这种定制允许企业访问与供应商无关的IoT服务,以新的方式利用和试验智能特征和数据洞察。
随着从IoT鱼缸到婴儿监视器等装置上的复杂不良行为和黑客攻击,威胁环境变得越来越危险,网络安全一直是IoT采用的薄弱环节。安全服务器140可以提供由在控制访问和装置身份数据211的存储器装置(例如,130)中实施的安全特征所支持的安全即服务。通过其硅信任根,安全存储器装置130为IoT软件的最低层提供唯一级别的保护——从引导过程开始,且具有存储器装置130中自有的强加密身份和安全特征。With sophisticated bad behavior and hacking on devices ranging from IoT fish tanks to baby monitors, the threat landscape has become increasingly dangerous, and cybersecurity has been a weak link in IoT adoption.
例如,经由安全服务器140和安全存储器装置(例如,130)中嵌入的安全特征的组合实施的安全即服务可包含通过验证存储器装置(例如,130)是否具有在存储器装置130的制造期间执行的经由存储器注册231记录的根秘密来验证声称具有公共识别号的存储器装置(例如,130)的真实性。For example, security-as-a-service implemented via a combination of
例如,安全即服务可任选地进一步包含基于与经实施以提供所有者权限的访问控制密钥213相对应的加密密钥来识别存储器装置130的所有者。For example, security-as-a-service may optionally further include identifying the owner of
例如,安全即服务还可任选地进一步包含在将端点150分发给终端用户/客户之前,基于存储器装置130的所有者/制造商的身份识别具有存储器装置130的端点150的服务提供商。基于服务提供商,安全服务器140可以下载与服务提供商提供的服务相关的软模块217,以定制端点150。例如,可以在端点注册235期间执行定制。任选地,终端用户或企业用户可以选择服务提供商;并且安全服务器140和/或卡服务器223可以将软模块217推送到存储器装置130。此外,响应于端点认证239,安全服务器140可以自动将软件更新推送到存储器装置中。因此,现场端点(例如,150)的安全漏洞可以自动减少和/或最小化,而无需端点(例如,150)的各个OEM额外努力。For example, security as a service may optionally further include identifying a service provider with endpoint 150 of
例如,安全即服务可任选地进一步包含对丢失/被盗装置的跟踪。响应于在安全服务器140中注册为丢失或被盗的端点150的端点认证239,安全服务器140可以请求存储器装置130的访问控制器109停用对特定存储器区域的访问和/或从特定存储器区域擦除数据。在一些情况下,访问控制器109可以通过限制对诸如启动加载程序、操作系统、应用程序等资源的访问来停用端点150的正常操作。在一些情况下,访问控制器109可以执行不可逆地破坏存储器装置130的存储器功能的操作。For example, security as a service may optionally further include tracking of lost/stolen devices. In response to
例如,安全即服务可任选地进一步包含端点150的完整性的审核服务。例如,存储器装置130可以基于存储于存储器装置130中的软模块217的加密散列值构建端点身份数据188,使得当软模块217改变时,安全服务器140可以验证当前软模块217是不是来自软模块217的相应供应商的有效分发。当发现软模块217损坏、篡改和/或受损时,安全服务器140可以发起更新操作,以使用来自在线软件商店的有效分发来修复软模块。For example, security as a service may optionally further include an audit service for the integrity of endpoint 150 . For example,
当软模块217的更新版本可用时,安全服务器140可以重新计算端点身份数据188以用于端点150的认证。因此,当端点150具有过时的软模块217时,安全服务器140可以检测到过时版本的存在,并通过空中请求/发起软模块217的更新。任选地,安全服务器140可以跟踪影响端点身份数据188的端点150的配置变化历史。例如,当被请求时,安全服务器140可以与存储器装置130通信以恢复到先前的配置。The
例如,安全即服务可任选地进一步包含装置跟踪服务,其可以向端点150的所有者提供与所有者访问控制密钥213(或与另一访问控制密钥相对应的另一授权用户)对应的活动数据。例如,活动数据可包含位置数据和端点150在来自基于卡的服务网络225的各种服务中的使用。For example, security-as-a-service may optionally further include a device tracking service, which may provide the owner of endpoint 150 with access control keys 213 corresponding to the owner (or another authorized user corresponding to another access control key) activity data. For example, activity data may include location data and usage of endpoint 150 in various services from card-based
端点身份数据188可包含端点150的公共身份,例如国际移动设备身份(IMEI)编号(例如,移动设备身份编号253)。端点150的公共身份对基于卡的服务网络225的服务(例如,蜂窝连接)的订阅可以在卡服务器(223)预注册而不使用端点150。例如,IMEI编号可与卡服务器223的数据库中的国际移动订户身份编号255相关联。
当端点150尝试连接到基于卡的服务网络225时,端点150的公共身份(例如,IMEI编号)在端点认证239中使用端点身份数据188认证。作为响应,注册到国际移动订户身份编号255的订阅被识别并用于生成卡简档219以将卡简档219绑定到端点150。绑定可以呈将卡简档219存储到端点150中的安全存储器装置130中的形式。替代地,绑定可以呈在卡服务器223的数据库中卡简档219与端点身份数据188关联的形式。When endpoint 150 attempts to connect to card-based
在一些情况下,一组端点(例如,由企业客户端拥有)可以共享数量减少的虚拟SIM卡以实现蜂窝连接。例如,企业客户端的IoT装置可能不需要同时进行蜂窝连接。当企业客户端的端点150需要蜂窝连接时,表示虚拟SIM卡的可用卡简档219在通信会话期间的端点认证239之后为端点150动态地“安装”以及时用于蜂窝服务。当通信会话结束时,虚拟SIM卡可由企业客户端的另一端点使用。物理SIM卡可以从一部移动电话移动到另一移动电话,以允许不同的移动电话访问注册到同一SIM卡的蜂窝服务。但是,物理地将SIM卡从一个移动电话移动到另一移动电话效率低下,并且无法进行大规模部署。虚拟SIM卡的即时安装可以克服物理SIM卡的限制,并在安装虚拟SIM卡之前经由端点认证239提供改进的安全性。In some cases, a group of endpoints (eg, owned by enterprise clients) may share a reduced number of virtual SIM cards for cellular connectivity. For example, an enterprise client's IoT device may not need a simultaneous cellular connection. When an enterprise client's endpoint 150 requires a cellular connection, an
例如,虚拟SIM卡的这种即时安装可用于促进对蜂窝连接的不经常或一次性使用。例如,蜂窝连接可用于执行空中固件/软件更新。例如,蜂窝连接可用于定期报告端点150的状态(例如,每天、每周或每月一次)。例如,端点150可以报告其与基于端点150的位置的保修服务相关的健康和/或位置。For example, such instant installation of a virtual SIM card can be used to facilitate infrequent or one-time use of the cellular connection. For example, a cellular connection can be used to perform over-the-air firmware/software updates. For example, a cellular connection may be used to periodically report the status of endpoint 150 (eg, daily, weekly, or monthly). For example, endpoint 150 may report its health and/or location related to warranty service based on endpoint 150 location.
例如,安全即服务可任选地进一步包含允许以安全方式改变端点150的公共身份的身份服务。例如,企业客户端的一组端点可以共享数目减少的IMEI编号。当端点150尝试使用端点身份数据188中的替代公共身份编号连接到基于卡的服务网络225时,卡服务器223和/或安全服务器140可以执行端点认证239,将未使用的IMEI编号分配给端点150,将卡简档219与分配给端点150的IMEI编号相关联,以使端点150能够作为由IMEI编号表示的装置从网络225获得服务。For example, security as a service may optionally further include an identity service that allows the public identity of endpoint 150 to be changed in a secure manner. For example, a group of endpoints of an enterprise client may share a reduced number of IMEI numbers. Card server 223 and/or
当这样的安全存储器装置130与安全服务器140提供的安全即服务一起使用时,端点(例如,150)的原始设备制造商(OEM)可以通过将安全存储器装置130组装到端点(例如,150)中来提供安全性,而无需执行其单独的安全操作,例如安全密钥注入、设计和实施安全元件、硬件组件或专用片上系统(SoC)特征。因此,安全服务器140和安全存储器装置(例如,130)可以为IoT装置(例如,端点150)的OEM提供即插即用安全性。When such a
安全服务器140的服务可用于在部署后在边缘处认证、激活和管理安全存储器装置(例如,130)。此能力可在整个生命周期内从制造供应链扩展到现场安装和管理实现平台强化和装置保护。The services of
图9示出根据一个实施例的用于认证存储器装置的技术。例如,图9的技术可用于使用图2的身份数据实施图5的安全服务。9 illustrates a technique for authenticating a memory device, according to one embodiment. For example, the technique of FIG. 9 may be used to implement the security service of FIG. 5 using the identity data of FIG. 2 .
通过图9的认证操作,可以建立会话密钥263以保护安全服务器140和存储器装置130之间的通信,而不信任客户端服务器141处理安全性以保护存储器装置130的秘密。任选地,会话密钥263可由访问控制器109用于实施请求在存储器装置130中执行的选定命令155的权限。Through the authentication operation of FIG. 9,
在图9中,客户端服务器141可向存储器装置130发送对存储器装置130的身份数据113的请求271。In FIG. 9 ,
请求271可包含密码随机数267。例如,密码随机数267可由安全服务器140响应于来自客户端服务器141的请求而生成,或由客户端服务器141生成并与安全服务器140共享用于请求271。替代地,存储器装置130可响应于请求271生成密码随机数267并提供包含密码随机数267的对应响应273。The request 271 may contain a cryptographic
响应于对存储器装置130的身份数据113的请求271,存储器装置130提供包含识别存储器装置130的唯一识别111的消息的响应273。In response to the request 271 for the
使用存储器装置130的秘密密钥137为响应273中提供的消息生成验证码133。如上文所论述,验证码133可以使用诸如散列摘要、数字签名和/或基于散列的消息认证码等技术来实施。验证码133的验证可由安全服务器140使用与唯一识别111相关联地存储的对应加密密钥106来执行。The
为了保护响应273和/或验证码133免受安全攻击(例如,重新使用响应273和/或尝试恢复密钥137),为包含唯一识别111、计数器值265和密码随机数267的消息131生成验证码133。计数器值265从存储器装置130中的计数器261获得。计数器261的值单调地增加。例如,计数器261可用于存储表示针对身份数据和/或与安全性相关的其它数据项或操作而接收的请求的计数的值。因此,含有低于先前看到的计数器值的计数器值265的响应可被视为无效。密码随机数267在响应273的生成中使用一次,并被存储器装置130舍弃。当先前已向安全服务器140提供或由安全服务器140生成密码随机数267时,响应273不必在响应273中显式地包含密码随机数267。To protect the
客户端服务器141将响应273转发到安全服务器140以请求认证存储器装置130。使用在响应273中提供的唯一识别111,安全服务器140可定位对应加密密钥106以验证验证码133。例如,对应的加密密钥106可以是秘密密钥137,或使用不对称加密时的对应公钥。
基于验证码133的验证,安全服务器140向客户端服务器141提供真实性指示符275。真实性指示符275指示存储器装置130是否真实。例如,安全服务器140可生成并提供由安全服务器140签名的证书,以将存储器装置130的证书链延伸回到验证器(例如,安全服务器)。任选地,安全服务器140可允许下载证书签名请求(CSR),其允许请求者使用他们选择的证书颁发机构(CA)(而不是安全服务器140)。Based on verification by the
通过存储器装置130的认证,存储器装置130和安全服务器140可建立用于在后续通信会话中彼此通信的会话密钥263。会话可受在响应273或验证码133的验证之后的预定长度的时间段限制。在所述时间段之后,会话密钥263到期,且因此可被破坏或舍弃。此外,对身份数据的后续请求可结束通过对身份数据的先前请求开始的先前会话。Through authentication of the
会话密钥263可至少部分地基于在安全服务器140和存储器装置130之间已知但不可用于安全服务器140和存储器装置130之间的通信信道的秘密生成。
例如,会话密钥263可以至少部分地基于秘密密钥137导出。此外,会话密钥263可以至少部分地基于计数器值265和/或密码随机数267。任选地,会话密钥263可以至少部分地基于验证码133。例如,验证码133和秘密密钥137可以组合生成会话密钥263。For example,
在一些实施方案中,会话密钥263独立于验证码133;并且验证码133可使用从秘密密钥137或安全服务器140和存储器装置130之间已知的另一秘密导出的会话密钥263生成。In some embodiments,
图10示出根据一个实施例的用于生成控制存储器装置的安全操作的命令的技术。例如,图9的技术可用于使用图3和10的技术实施图5的安全服务。10 illustrates a technique for generating commands to control secure operation of a memory device, according to one embodiment. For example, the technique of FIG. 9 may be used to implement the security service of FIG. 5 using the techniques of FIGS. 3 and 10 .
例如,在客户端服务器141请求在存储器装置130中执行命令155的权限使用客户端权限数据283验证之后,安全服务器140可响应于来自客户端服务器141的请求281而向客户端服务器141提供命令155的验证码153。For example,
图9和图10中的一些通信可以组合。例如,在一些情况下,请求281可包含存储器装置130所提供的身份数据113作为对存储器装置130的请求271的响应273。Some of the communications in Figures 9 and 10 may be combined. For example, in some cases,
在客户端服务器141发送识别命令155和存储器装置130的请求281之后,如果确定客户端服务器141具有使用命令155控制或操作存储器装置130的权限,那么安全服务器140可生成命令155的验证码153。请求281可包含其中将执行命令155的存储器装置130的唯一识别111。例如,唯一识别111可由客户端服务器141从对存储器装置130的身份数据的请求271的响应273和/或安全服务器140所提供的真实性指示符275提取。After
如上文所论述,验证码153可以使用诸如散列摘要、数字签名和/或基于散列的消息认证码等技术来实施。验证码153的验证可由访问控制器109使用命令155的访问控制密钥149来执行。验证码153可以使用存储在安全服务器140中的加密密钥277生成,所述加密密钥表示在存储器装置130中执行命令155的权限。例如,当不使用经由不对称加密的加密时,加密密钥277可以是访问控制密钥149;替代地,当使用不对称加密时,访问控制密钥149是密钥对中的公钥,而加密密钥277是密钥对中的私钥。As discussed above,
在一个实施例中,访问控制密钥149和加密密钥277是针对命令155的权限预先配置的。在另一实施例中,访问控制密钥149和加密密钥277基于会话密钥263。例如,会话密钥263可以用作用于命令155的访问控制的访问控制密钥149和加密密钥277。在一些实施例中,会话密钥263是一对不对称密钥中的密钥,可用于实施涉及使用不对称加密执行的加密的加密密钥277和访问控制密钥149。In one embodiment, the access control key 149 and encryption key 277 are preconfigured for the permissions of the
当验证码153是基于会话密钥263时,验证码153在会话密钥263到期时到期,这防止在会话密钥263有效的会话之外重复使用验证码153。When the
在请求285中提供的消息151可包含命令155和密码随机数287。密码随机数287布置成用于命令155/请求285,且因此不同于用于传输存储器装置130的身份数据的密码随机数267。The message 151 provided in the request 285 may contain the
例如,响应于请求281,安全服务器140可生成密码随机数287,并将其用于生成验证码153。密码随机数287可设有验证码153以供客户端服务器141生成请求285。替代地,客户端服务器141可生成密码随机数287,并将其与请求281一起提供到安全服务器140。替代地,为生成请求281,客户端服务器141可请求来自安全服务器140的密码随机数287。For example, in response to request 281 ,
在客户端服务器141发送具有从安全服务器140获得的验证码153的请求285之后,存储器装置130使用访问控制密钥149验证包含在请求285中的消息151的验证码153。如果验证码153有效,那么访问控制器109允许存储器装置130执行命令155;否则,访问控制器109可阻止在存储器装置130中执行命令155。After
例如,命令155可配置成激活存储器装置130的安全特征。For example,
例如,命令155可配置成替换存储器装置130中的访问控制密钥149或秘密密钥137。例如,新秘密密钥137可使用在计算装置的制造期间提供的额外非秘密数据生成,所述计算装置安装了存储器装置130,但存储器装置130在其制造时不可用。例如,新访问控制密钥149可配置成向客户端服务器141提供一组权限。For example,
在执行命令155之后,存储器装置130提供可由客户端服务器141转发到安全服务器140的响应289。安全服务器140可确定响应289是否正确。例如,存储器装置130可使用会话密钥263对响应进行签名以供安全服务器140验证。After execution of
在一些实施方案中,用于替换存储器装置130的现有秘密密钥137的替换秘密密钥由存储器装置130和安全服务器140从通过客户端服务器141交换的秘密(例如,唯一装置秘密101)和额外数据独立地生成。任选地,所述额外数据可以通过使用会话密钥263执行的加密受保护。In some embodiments, the replacement secret key used to replace the existing
在一些实施方案中,替换秘密密钥以使用会话密钥263生成的密文的加密形式从存储器装置130传送到安全服务器140。In some embodiments, the replacement secret key is transferred from
图11示出根据一个实施例的虚拟智能卡的方法。例如,图11的方法可以使用图9和10的技术在图6中所示的具有上文结合图1-5所论述的安全服务器140和存储器装置130的安全特征的系统中实施。Figure 11 illustrates a method of virtualizing a smart card according to one embodiment. For example, the method of FIG. 11 may be implemented in the system shown in FIG. 6 with the security features of the
在框301处,至少部分地基于存储器装置130的根秘密,由围封在存储器装置130的集成电路封装中的逻辑电路或控制器生成表示存储器装置130的装置身份数据211。At block 301 , device identity data 211 representing the
例如,存储器装置130可具有物理不可克隆函数(PUF)以生成根秘密。For example,
例如,逻辑电路或控制器可包含配置成执行加密计算而不使用集成电路封装之外的处理器的加密引擎。For example, a logic circuit or controller may contain a cryptographic engine configured to perform cryptographic computations without using a processor outside of the integrated circuit package.
在框303处,存储器装置130在形成于围封在集成电路封装内的一或多个集成电路裸片上的集成电路存储器单元的第一存储器区域中存储装置身份数据211。At block 303,
在框305处,逻辑电路基于访问控制密钥213控制对第一存储器区域的访问。At block 305 , the logic circuit controls access to the first memory region based on the access control key 213 .
在框307处,存储器装置130在集成电路存储器单元的第二存储器区域中存储可由具有存储器装置130作为端点150的多个组件中的一个的端点150执行的启动指令。At
例如,装置身份数据211可以基于向存储在存储器装置130的第二存储器区域中的启动指令应用加密散列函数得到的散列值来计算和/或更新。因此,装置身份数据211不仅可以锁定存储器装置130的硬件,而且还可以锁定存储于存储器装置中的启动指令(和/或其它数据,例如跟踪数据215)。For example, the device identity data 211 may be calculated and/or updated based on a hash value obtained by applying a cryptographic hash function to the boot instructions stored in the second memory area of the
在框309处,将卡简档219写入到存储器装置130的集成电路存储器单元,以基于卡简档219模拟智能卡的功能。At block 309 , the
例如,端点150可经由存储器装置130配置成生成表示端点150在其启动时间的组件配置的端点身份数据188。端点身份数据188可以使用以下来计算:装置身份数据211、在端点150的构造233期间存储到存储器装置130中的跟踪数据215,以及端点150的位于存储器装置130的集成电路封装之外的组件的识别数据。For example, endpoint 150 may be configured via
例如,卡简档219可以基于端点身份数据188的认证而识别、生成和/或分配给端点150。For example,
例如,卡简档219可包含软模块(例如,软卡模块243、认证模块259),所述软模块具有可由逻辑电路或端点150的处理器或其任何组合执行以模拟智能卡的功能的指令。For example,
例如,卡简档219可以存储于存储器装置130中以模拟在访问蜂窝通信网络时通常用于认证移动电话的订户识别模块(SIM)卡。例如,卡简档219可包含国际移动订户身份编号255和与国际移动订户身份编号255相关联的认证密钥257。For example, the
例如,当端点150请求到国际移动订户身份编号255的蜂窝连接时,移动/蜂窝网络运营商可提出安全质询以认证端点150。作为响应,卡简档219可用于通过使用认证密钥257对具有随机数的消息进行签名来生成对安全质询的响应,以证明端点拥有认证密钥257。例如,可以使用认证密钥257对具有随机数的消息进行签名。对安全质询的响应可包含用于认证的数字签名的一部分;数字签名的另一部分可用作用于加密与蜂窝连接相关联的通信会话的对称加密密钥。For example, when endpoint 150 requests a cellular connection to International Mobile Subscriber Identity Number 255, the mobile/cellular network operator may raise a security challenge to authenticate endpoint 150. In response, the
图12示出根据一个实施例的基于存储器装置的安全特征提供的安全服务的方法。例如,图12的方法可以使用图9和10的技术基于上文结合图1-5所论述的存储器装置130的安全特征在图1的计算系统中实施。12 illustrates a method for providing security services based on security features of a memory device, according to one embodiment. For example, the method of FIG. 12 may be implemented in the computing system of FIG. 1 using the techniques of FIGS. 9 and 10 based on the security features of
在框321处,安全服务器140从客户端服务器141接收请求(例如,173和/或281)。请求包含具有访问控制器109的存储器装置130的身份数据113。At block 321 , the
在框323处,安全服务器140基于存储器装置130的秘密和身份数据113确定存储器装置130的真实性。At
例如,秘密可以是在安全设施中完成存储器装置130的制造之后不传送到存储器装置130之外的唯一装置秘密101。身份数据113基于至少部分地基于唯一装置秘密101生成的秘密密钥137。在存储器装置在安全设施中的制造期间,秘密注册到安全服务器140中,以至少部分地基于秘密生成验证身份数据113的加密密钥106。用于验证身份数据113加密密钥106可进一步基于在存储器装置130的主机系统120的启动时间期间从主机系统120接收的数据125而生成。在安全设施中完成存储器装置130的制造之后,存储器装置130可以组装到具有连接到存储器装置130的主机接口147的主机系统120的端点150中。配置成在主机系统120的处理装置118中执行的指令的至少一部分存储于存储器装置130中。For example, the secret may be the only device secret 101 that is not transferred outside of the
在框325处,安全服务器140生成命令155的验证码153。At
例如,在基于存储在安全服务器140中的客户端权限数据283确定客户端服务器141具有在存储器装置130中执行命令155的权限之后,可为客户端服务器141生成验证码153,并基于权限在响应174中提供验证码153。For example, after determining that
例如,在确定存储器装置130处于已报告丢失或被盗的端点150中之后,可为停用存储器装置130的命令155生成验证码153。For example, after determining that the
在框327处,安全服务器140向客户端服务器141传送含有验证码153的响应174。At
例如,响应174可基于当身份数据113含有使用秘密生成的验证码133时确定存储器装置130具有秘密。For example, the
在框329处,客户端服务器141向存储器装置130传输命令155和验证码153。At
在框331处,存储器装置130的访问控制器109验证验证码153以确定是否阻止在存储器装置130中执行命令155。At block 331 , the
例如,在存储器装置130中执行时,命令155使供访问控制器109用于验证使用加密密钥145生成的验证码(例如,153)的访问控制密钥149改变,所述加密密钥表示在存储器装置130中执行一或多个命令的权限。For example, when executed in the
例如,在存储器装置130中执行时,命令155使存储器装置130的安全特征的设置改变。例如,改变可包含存储器装置130的安全特征的激活或安全特征的撤销激活。For example, when executed in
例如,在含有存储器装置130的端点150已经报告丢失或被盗之后,在存储器装置130中执行时,命令155使存储器装置130停用存储于存储器装置130中的启动加载程序。For example,
例如,在存储器装置130中执行时,命令155使访问控制器116阻止对存储器装置130中的存储器单元103的一或多个区段的访问。For example, when executed in
例如,在存储器装置130中执行时,命令155使存储器装置130清除存储于存储器装置130中的数据的解密密钥。For example, when executed in
例如,在存储器装置130中执行时,命令155使存储器装置130不可逆地破坏存储器装置130的至少一个方面。For example, when executed in
例如,基于身份数据113的验证,会话密钥263可以在安全服务器140和存储器装置130之间建立且已知,而无需经由安全服务器140和存储器装置130之间的连接传送会话密钥263。供访问控制器109用于验证命令155的验证码153的访问控制密钥149可基于会话密钥263。For example, based on verification of
任选地,安全服务器140可基于从存储器装置130加载且在主机系统120中执行的指令使命令155和验证码153传输到存储器装置130。Optionally,
图13示出根据一个实施例的登入账户订阅的服务的端点的方法。例如,图13的方法可以使用图9和10的技术基于上文结合图1-5所论述的存储器装置130的安全特征在图1的计算系统中实施。13 illustrates a method of logging into an endpoint of a service subscribed to by an account, according to one embodiment. For example, the method of FIG. 13 may be implemented in the computing system of FIG. 1 using the techniques of FIGS. 9 and 10 based on the security features of
在框341处,服务器系统从端点150接收与服务相关联的请求(例如,171和/或173)。服务经由服务由不同账户表示的多个订户的计算机网络(例如,网络110)提供。请求包含由配置于端点150中的存储器装置130生成的身份数据113。At
例如,服务器系统可包含安全服务器140和/或卡服务器223。任选地,服务器系统可进一步包含与安全服务器140通信的客户端服务器141。For example, the server system may include the
例如,服务可以是蜂窝连接服务、支付卡服务、视频监控服务、基于云的存储或计算服务等等。For example, the services may be cellular connectivity services, payment card services, video surveillance services, cloud-based storage or computing services, and the like.
在框343处,服务器系统响应于请求并基于存储器装置130的秘密和身份数据113而确定端点150的真实性。例如,框343中的操作可以类似于在框323中执行的操作的方式执行。At block 343 , the server system determines the authenticity of the endpoint 150 in response to the request and based on the secret and
在框345处,基于身份数据113,基于端点150的所有权数据在多个订户当中识别一订户。At block 345, based on the
例如,在端点(例如,150)的制造商的设施中制造端点150期间,存储器装置130连接到主机系统120;并且在存储器装置130中安装用于端点150的操作的软件包。测试端点150。在端点注册235中,存储器装置130配置成生成密钥137,该密钥137不仅表示具有唯一装置秘密101的存储器装置130,而且还表示具有存储器装置130的端点150,存储器装置130在启动时间具有存储器单元103中的数据123和来自主机系统120的数据125。For example, during manufacture of endpoint 150 in the facility of the manufacturer of the endpoint (eg, 150),
当端点150从制造商转移到经销商和终端用户或订户时,使端点150的公共识别与订户的身份相关联的数据存储在服务器系统中。所有权数据可以存储在服务器系统中,而无需物理地操作端点150(例如,无需打开自端点150制造以来围封端点150的封装)。例如,端点150的公共识别可包含端点150的唯一识别111和/或识别端点150的制造商已知的端点150的品牌、型号和序列号的数据127。When the endpoint 150 is transferred from the manufacturer to the distributor and the end user or subscriber, the data that associates the public identity of the endpoint 150 with the identity of the subscriber is stored in the server system. Ownership data can be stored in the server system without physically manipulating the endpoint 150 (eg, without opening the package that has encapsulated the endpoint 150 since the endpoint 150 was manufactured). For example, the public identification of the endpoint 150 may include a
当订户为提供给端点150的服务开通账户时,订户的身份可与账户相关联。When a subscriber opens an account for a service provided to endpoint 150, the subscriber's identity may be associated with the account.
例如,客户端权限数据283可包含端点150的所有权数据和/或展示订户账户的订户数据。For example,
在框347处,响应于在框341中接收的请求,确定所识别订户的账户。At
例如,可通过匹配与所有权数据中的身份数据113相关联的订户身份和与订户数据中的账户相关联的订户身份来识别账户。For example, an account may be identified by matching the subscriber identity associated with the
在框349处,服务器系统基于账户使服务提供给端点150。At block 349, the server system causes the service to be provided to the endpoint 150 based on the account.
在一些实施方案中,存储在安全服务器140中的客户端权限数据283指示订户的身份数据113和账户之间的关联。因此,在基于接收到的身份数据113验证端点150的真实性期间,可以根据客户端权限数据283识别账户。In some embodiments, the
在替代实施方案中,存储在安全服务器140中的客户端权限数据283指示作为所有者的订户的身份数据113和身份之间的关联。因此,在基于接收到的身份数据113验证端点150的真实性期间,可以根据客户端权限数据283识别订户。另一服务器(例如,客户端服务器141或卡服务器223)存储订户数据以基于安全服务器140所识别的订户识别账户。In an alternative embodiment, the
使用图13的方法,账户订阅的服务可以提供/定向到端点150,而无需为订户和/或订户的账户定制端点150本身。例如,订户可以在制造端点150期间简单地打开围封端点150的封装,并使用端点150访问订户账户订阅的服务,而无需插入卡(例如,SIM卡)识别订户或账户和/或无需与在端点150中运行的应用程序或实用程序交互以识别订户或账户。Using the method of FIG. 13, services subscribed to by an account can be provided/directed to endpoint 150 without having to customize endpoint 150 itself for the subscriber and/or the subscriber's account. For example, a subscriber may simply open the package enclosing the endpoint 150 during manufacture of the endpoint 150 and use the endpoint 150 to access services subscribed to by the subscriber's account without inserting a card (eg, a SIM card) to identify the subscriber or account and/or without having to communicate with the Applications or utilities running in endpoint 150 interact to identify subscribers or accounts.
例如,在制造端点150之后,在框341中接收的请求之前,端点150没有针对订户的定制,也没有针对账户的定制。端点150制造成可由多个订户中的任何一个使用。响应于在框341中接收到的请求,端点150自动链接到获得服务的订户的特定账户。For example, after the endpoint 150 is manufactured and prior to the request received in
例如,在接收用于订户账户的服务之前和/或之后,端点150不含插入到端点150中以表示订户、账户或其任何组合的硬件组件。For example, endpoint 150 does not contain hardware components that are inserted into endpoint 150 to represent a subscriber, an account, or any combination thereof, before and/or after receiving services for a subscriber account.
例如,至少在框341中接收的请求之前,端点150不含存储到端点150中以表示订户、账户或其任何组合的数据。For example, at least until the request received in
例如,至少在框341中接收的请求之前,端点150不含订户、账户或其任何组合的指示,且不具有端点150的所有权数据;并且所有权数据存储在服务器系统中而不在端点150中。For example, at least prior to the request received in
任选地,响应于在框341中接收的请求,服务器系统和/或端点150可存储端点150的身份数据与订户账户的关联。Optionally, in response to the request received in
例如,安全服务器140可使用加密密钥145生成命令155的验证码153。服务器系统可使存储器装置130接收命令155和验证码153。在存储器装置130中执行命令155之前,存储器装置130的访问控制器109配置成基于访问控制密钥149验证验证码153。任选地,访问控制密钥149和加密密钥145可基于以图9中论述的方式建立的会话密钥。For example, the
在存储器装置130中执行时,命令155使存储器装置130存储识别账户的额外数据。例如,所述额外数据可以是在生成更新后的身份数据113时用于生成秘密密钥137的装置信息121的部分。例如,所述额外数据包含在更新后的身份数据113中的消息131的数据127中,所述更新后的身份数据113由存储器装置130在命令的执行之后生成。例如,所述额外数据可包含识别订户账户的卡简档219。When executed in
替代地,使存储器装置130和/或端点150的身份数据113相关联的数据可以存储在服务器系统中(例如,作为客户端权限数据283和/或卡简档219的部分),而无需改变用于对身份数据113进行签名的秘密密钥137。Alternatively, the data associating the
由于不需要在端点150上进行操作来将订户的账户的服务定向到端点150,因此端点150可以被配置为具有蜂窝连接能力的IoT装置,而不需要用于其定制以接收蜂窝连接服务的用户接口。例如,可以在没有用于插入卡来识别订户的插槽的情况下配置端点150。例如,可以在没有用于接收来自终端用户的输入以识别订户的用户接口的情况下配置端点150。Because no operations on endpoint 150 are required to direct the services of the subscriber's account to endpoint 150, endpoint 150 can be configured as a cellular-connected capable IoT device without the need for a user for which it is customized to receive cellular-connected services interface. For example, endpoint 150 may be configured without a slot for inserting a card to identify a subscriber. For example, endpoint 150 may be configured without a user interface for receiving input from an end user to identify a subscriber.
在一些实施方案中,端点150具有可运行不同固件以提供不同功能的通用硬件配置。此外,固件的更新版本可以安装在端点150中,以校正运行先前版本的固件的端点150中的缺陷或错误,以提高性能和/或提供新功能。任选地,固件应用程序可运行于基础版本的固件上以添加功能、特征和/或服务。In some embodiments, endpoint 150 has a general hardware configuration that can run different firmware to provide different functionality. Additionally, updated versions of firmware may be installed in endpoints 150 to correct defects or errors in endpoints 150 running previous versions of firmware to improve performance and/or provide new functionality. Optionally, a firmware application may run on the base version of the firmware to add functionality, features and/or services.
例如,不同的客户端服务器141、…、143可使用运行不同固件的端点150的相同硬件提供不同服务。例如,所述不同的客户端服务器141、…、143可使用端点150的相同硬件提供类似服务,但是执行使用不同固件实施的不同处理。For example,
在通过安装不同固件组装端点150并将其运送到终端用户或订户之后,可以针对不同的客户端服务器141、…、143定制端点150。After the endpoint 150 is assembled and shipped to end users or subscribers by installing different firmware, the endpoint 150 can be customized for
例如,可以在通信网络110上配置在线固件商店,以允许终端用户购买某一版本的固件。安装选定版本的固件可能包含也可能不包含安装使用基线版本的固件运行的固件应用程序。在安装选定版本的固件之后,将端点150定制为在至少一个方面不同于运行先前固件的端点150。For example, an online firmware store may be configured on the
在一些情况下,更新后的固件表示由端点150的用户请求的端点150的服务。端点150的服务可以依赖于也可以不依赖于客户端服务器或服务提供商提供的服务。In some cases, the updated firmware represents a service of endpoint 150 requested by a user of endpoint 150 . The services of the endpoint 150 may or may not be dependent on the services provided by the client server or service provider.
端点150的功能可以至少部分地由其固件定义。例如,当端点150运行一个版本的固件时,端点150可以向端点150的用户提供一个功能;并且当端点150运行另一版本的固件时,端点150可以向端点150的用户提供不同的功能。The functionality of endpoint 150 may be defined, at least in part, by its firmware. For example, endpoint 150 may provide one functionality to a user of endpoint 150 when endpoint 150 is running one version of firmware; and endpoint 150 may provide a different functionality to a user of endpoint 150 when endpoint 150 is running another version of firmware.
例如,不同的第三方服务提供商可以基于公共的通用硬件平台提供IoT装置的软件/固件解决方案。例如,在线商店中提供的固件可编程为使通用IoT装置能够与第三方服务器协作以提供特定类型的服务。任选地,在线商店中提供的固件应用程序可以在通用版本的固件上运行,并使用通用固件提供的基本服务来提供特定类型的服务。基线版本的固件和固件应用程序的组合可视为增强版本的固件。当不同端点硬件平台的基线版本的固件提供标准化服务时,固件应用程序可以是与装置无关的,并支持来自不同供应商的一类IoT装置。替代地,固件应用程序可能依赖于装置,并使用不同供应商的不同硬件能力。For example, different third-party service providers can provide software/firmware solutions for IoT devices based on a common common hardware platform. For example, firmware provided in an online store can be programmed to enable generic IoT devices to cooperate with third-party servers to provide specific types of services. Optionally, a firmware application provided in an online store can run on a generic version of the firmware and use the basic services provided by the generic firmware to provide a specific type of service. The combination of the baseline version of the firmware and the firmware application can be considered an enhanced version of the firmware. While baseline versions of firmware for different endpoint hardware platforms provide standardized services, firmware applications can be device-agnostic and support a class of IoT devices from different vendors. Alternatively, firmware applications may be device-dependent and use different hardware capabilities from different vendors.
安全服务器140可耦合到在线固件商店以响应于验证端点的真实性而向端点(例如,150)提供固件更新。
例如,当端点150初始地连接到客户端服务器141时,客户端服务器141与安全服务器140通信以验证端点150的身份和/或真实性。端点150的所有者可在验证过程中确定。在端点150的订阅服务被识别之后,相关固件应用程序可以从在线固件商店下载并通过空中(OTA)更新安装到端点150中。For example, when endpoint 150 initially connects to
例如,安全服务器140可生成命令155的验证码153以将固件应用程序安装到存储器装置130中。在执行命令155之后,固件应用程序变成存储于存储器装置130的存储器单元103中的数据123的部分,并在生成用于存储器装置130和端点150的更新后的身份数据113的更新后的秘密密钥137时用作装置信息121的部分。For example, the
随后,当在线固件商店中存在固件应用程序的更新时,在身份数据113的验证期间可以检测到端点150中的过时固件应用程序;并且安全服务器140可以为端点150发起空中(OTA)更新以降低安全风险。Subsequently, when there is an update to the firmware application in the online firmware store, an outdated firmware application in endpoint 150 may be detected during verification of
例如,在线服务商店可提供经由端点(例如,150)提供的基于云的服务,例如物联网(IoT)装置。同一端点150可经由与可操作不同客户端服务器141、…、143的不同服务提供商一起使用的固件更新来定制。For example, an online service store may provide cloud-based services, such as Internet of Things (IoT) devices, provided via endpoints (eg, 150). The same endpoint 150 can be customized via firmware updates for use with different service providers that can operate
例如,端点150的用户可以访问在线商店以订阅服务提供商的服务、更改订阅的服务和/或将订阅从一个服务提供商移动到另一个服务提供商。用户为端点150订购的订阅可以作为与端点150的身份相关联的客户端权限数据283的部分进行跟踪。当安全服务器140验证端点150的身份数据113时,安全服务器140可以检查端点150是否需要用于订阅服务和/或替换过时版本的固件的固件更新。如果是,那么安全服务器140可以在端点150从服务提供商接收订阅的服务之前,经由在线商店使固件更新定制和/或更新端点150。任选地,安全服务器140与端点150通信以将端点150定向到服务提供商的当前客户端服务器141。替代地,更新后的固件使端点150连接到服务提供商的当前客户端服务器141。For example, a user of endpoint 150 may access an online store to subscribe to a service provider's services, change subscribed services, and/or move subscriptions from one service provider to another. Subscriptions subscribed by a user for endpoint 150 may be tracked as part of
一般来说,安全服务器140可以连接到或包含在线服务商店和/或在线固件商店。服务器系统可具有安全服务器140、在线服务商店和/或在线固件商店。服务器系统可跟踪用于订阅不同服务提供商的服务的账户,并跟踪端点(例如,150)的用户所选择/购买的固件定制。In general,
端点150的用户的账户与为端点150订阅的服务提供商可以使用用户的身份进行跟踪,并与作为用于自动固件更新的端点150的所有者的用户的身份相关联。通过相关,用户在在线服务商店和/或在线固件商店中进行的固件和/或服务选择可以映射到用户的端点150。替代地,端点150的用户可以使用作为端点150的身份数据113的部分的端点150的公共识别来明确地为端点150选择固件和/或服务。The user's account of endpoint 150 and the service provider subscribed to endpoint 150 may be tracked using the user's identity and associated with the user's identity as the owner of endpoint 150 for automatic firmware updates. By correlation, firmware and/or service selections made by a user in an online service store and/or an online firmware store may be mapped to the user's endpoint 150 . Alternatively, the user of endpoint 150 may use the public identification of endpoint 150 as part of endpoint 150's
在一些实施方案中,端点150初始连接到用于服务的安全服务器140。安全服务器140可以基于客户端权限数据283识别在线服务商店中注册的订阅服务的当前提供商。在验证端点150的真实性并确定服务提供商之后,安全服务器140为服务提供商配置端点150的固件(例如,使用在线固件商店),并将端点150定向到服务提供商的客户端服务器(例如,141、…、或143)。因此,端点150可以最小的用户努力无缝地提供从在线服务商店订购的服务。In some embodiments, endpoint 150 initially connects to secure
图14示出根据一个实施例的使用在线固件商店的端点定制技术。例如,图14的技术可以在具有参考图1到5论述的安全服务和特征的图1和/或图6的计算系统中实施。图14的技术可与图9到13的技术组合使用。14 illustrates an endpoint customization technique using an online firmware store, according to one embodiment. For example, the techniques of FIG. 14 may be implemented in the computing system of FIG. 1 and/or FIG. 6 having the security services and features discussed with reference to FIGS. 1-5. The technique of FIG. 14 may be used in combination with the techniques of FIGS. 9-13.
在图14中,在线固件商店170配置成促进用于端点(例如,150)定制和/或更新的固件和/或固件应用程序的选择,以及安全服务器140对端点(例如,150)的身份的验证。In Figure 14, the
端点150具有一组硬件,包含主机系统120和具有安全特征的存储器装置130。端点150的功能可由存储于存储器装置130中且执行于端点150的主机系统120中的固件363定义、定制和更新。Endpoint 150 has a set of hardware including
端点150的制造商可以安装基线版本的固件363,此固件363编程成允许端点150生成并提交身份数据113以供安全服务器140验证。基线版本的固件363进一步配置成促进经由固件商店170对固件的更新以及安全服务器140对身份数据113的验证。The manufacturer of the endpoint 150 may install a baseline version of
一般来说,端点150的固件更新可以是替换在主机系统120中执行的整个固件363,或添加和/或替换一或多个固件应用程序(例如,应用程序367、…、369)。In general, a firmware update of endpoint 150 may be to replace the
端点平台361可用于表示一类端点硬件。所述类别中的每个端点(例如,150)可运行不同版本的固件(例如,363、…、365)以提供不同功能和/或服务。
在一些实施方案中,固件363可以经由一或多个固件应用程序(例如,应用程序367、…、369)定制。例如,运行固件363的端点150可进一步运行任选的应用程序(例如,应用程序367、…、或369)以提供固件363中不存在的新功能,停用固件363中的现有功能,改变或定制固件363中的现有功能,等等。In some embodiments,
例如,当固件应用程序(例如,应用程序367)在端点150中的固件363上运行时,端点150定制用于与服务提供商的客户端服务器141通信以实施服务或功能和/或从服务提供商接收服务。当另一固件应用程序(例如,应用程序369)在端点150中的固件363上运行时,端点150以不同方式定制以与不同服务提供商的另一客户端服务器143通信,以实施替代性或类似服务或功能和/或从所述不同服务提供商接收替代性或类似服务。For example, when a firmware application (eg, application 367 ) runs on
例如,固件应用程序(例如,应用程序367)可编程成实施特定于客户端服务器141的通信协议。For example, a firmware application (eg, application 367 ) can be programmed to implement a communication protocol specific to
例如,固件应用程序(例如,应用程序367)可编程成执行生成新类型的结果的新计算功能。For example, a firmware application (eg, application 367 ) can be programmed to perform new computational functions that generate new types of results.
例如,固件应用程序(例如,应用程序367)可编程成与客户端服务器141通信以获得经由客户端服务器141提供的服务。客户端服务器141的服务的实例包含客户端服务器141处理端点150的数据的计算资源、用于由端点150生成的数据的客户端服务器141的数据存储设施、用于针对与端点150相关联的一或多个其它装置的通知和/或警告的消息传递设施、经由客户端服务器141和与端点150相关联的一或多个其它装置的连接、端点150经由Wi-Fi访问点、通信卫星和/或由客户端服务器141控制的通信连接或设备的互联网访问,等等。For example, a firmware application (eg, application 367 ) can be programmed to communicate with
一般来说,不同服务提供商可以提供不同版本的固件和/或不同固件应用程序来定制相同端点平台361中的端点(例如,150)。平台361中的端点可由同一制造商或不同制造商制造和/或组装。In general, different service providers may provide different versions of firmware and/or different firmware applications to customize endpoints in the same endpoint platform 361 (eg, 150). Endpoints in
任选地,基线版本的固件(例如,363)可提供一组标准化功能,固件应用程序(例如,应用程序367、…、369)可基于这些功能运行。因此,可以安装同一固件应用程序(例如,应用程序367)以定制具有不同硬件配置和/或不同基线版本的固件(例如,363、…、365)的端点(例如,150)。替代地,不同固件应用程序可针对在具有不同硬件实施方案的端点上运行的不同基线版本的固件(例如,363、…、365)编程,以提供相应端点的同一定制功能和/或客户端服务器141的相同服务。Optionally, a baseline version of firmware (eg, 363) may provide a standardized set of functions upon which firmware applications (eg,
固件应用程序(例如,应用程序367、…、369)的使用可减少在执行固件更新时要从固件商店170下载到端点150的数据大小。替代地,不同组的固件功能可以使用不同固件(例如,363、…、365)实施,而无需额外的固件应用程序。一般来说,端点150中的固件更新可涉及替换整个现有固件363或安装固件应用程序(例如,应用程序367)。The use of firmware applications (eg,
任选地,固件商店170配置成允许端点150的用户使用计算机180选择和/或订购371用于定制端点150的固件。在一些情况下,选定版本的固件(例如,363)和/或固件应用程序(例如,367)的购买表示对来自服务提供商和/或客户端服务器(例如,141)的某一服务的请求。作为响应,固件商店170和/或安全服务器140可存储指示端点150的所需固件配置和/或所请求服务的数据。例如,客户端权限数据283可以更新成反映使用用户计算机180进行的固件和/或服务选择。Optionally,
一般来说,用户计算机180可与端点150不同且分开。因此,不需要可被端点150的用户访问以定制端点150使其与账户和/或服务提供商一起使用的硬件和/或软件接口。任选地,一些实施方案和/或类别的端点150可包含允许其用作用户计算机180来为端点150订购371固件的用户接口。In general,
例如,端点150的所有者或用户可使用用户计算机180访问在线固件商店170,以便通过选择固件应用程序(例如,应用程序367)、替换版本的固件或替换版本的固件和固件应用程序的组合来为端点150订购371固件。用户的订单可被识别为服务订户和/或端点150被识别为待定制装置。For example, the owner or user of endpoint 150 may use
例如,端点150可经由端点150的公共识别识别,例如端点150的型号和序列号、移动设备身份编号253、国际移动订户身份编号255、唯一识别111和/或包含在身份数据113的数据127中的另一标识符。For example, endpoint 150 may be identified via a public identification of endpoint 150, such as endpoint 150 model and serial number, mobile device identity number 253, international mobile subscriber identity number 255,
例如,用户或订户的身份可以经由账户标识符和/或一条可识别个人的信息识别,例如电子邮件地址、电话号码、名称和地址等等。For example, the identity of the user or subscriber may be identified via an account identifier and/or a piece of personally identifiable information, such as an email address, phone number, name and address, and the like.
安全服务器140可验证373从端点150和/或其存储器装置130提交的身份数据113,如上文结合图2、5和9所论述。The
一般来说,身份数据113可以经由客户端服务器(例如,141或143)、经由固件商店170、经由另一服务器或网关或在不经过客户端服务器141、…、143和固件商店170中的任一个的情况下提交到安全服务器140。In general,
例如,端点150可经由现有固件363配置以自动访问固件商店170和/或安全服务器140,以进行身份验证、固件更新和/或服务定制。因此,身份数据113在一些情况下可以经由固件商店170提交到安全服务器140,在其它情况下直接提交到安全服务器140。For example, endpoint 150 may be configured via existing
例如,当服务器(例如,客户端服务器141或143、固件商店170或另一服务器)从端点150接收请求171的身份数据113时,服务器(例如,141)在请求173中向安全服务器140提供身份数据113以供验证。响应于此类请求173,安全服务器140可与固件商店170通信,以识别375端点150是否存在固件更新。如果是,安全服务器140可使固件商店170更新377端点150的固件。例如,在执行固件下载以在存储器装置130中存储新版本的固件和/或固件应用程序(例如,应用程序367)之后,在存储器装置130中执行使用加密密钥145签名的命令155,以使得新版本的固件和/或固件应用程序(例如,应用程序367)在存储器装置130中执行并成为存储器装置130和/或端点150的身份的部分。For example, when a server (eg,
例如,固件363可以初始地安装于端点150中(例如,通过端点150的制造商)以经由客户端服务器141提供服务。在固件商店170中提供新版本的固件363以用于访问客户端服务器141的相同服务之后,安全服务器140可以响应于身份数据113的成功验证而发起新版本的安装。任选地,更新377可以经由安装在现有固件363上运行的固件应用程序(例如,应用程序367)来实施,或者经由安装新固件(例如,365)来实施。For example,
例如,在固件363的用户访问固件商店170订购371替代版本的固件365以定制端点150之后,当端点150的身份数据113在安全服务器140中成功验证时,固件商店170可根据订单371更新377端点150的固件。For example, after a user of
在一些情况下,端点150首先访问安全服务器140。在安全服务器140验证373端点150的身份之后,安全服务器140可与在线固件商店170通信以识别375端点150的固件更新。In some cases, endpoint 150 accesses
一般来说,固件更新可包含安装固件应用程序(例如,应用程序367)、用另一固件应用程序替换现有固件应用程序和/或安装新固件365。In general, a firmware update may include installing a firmware application (eg, application 367 ), replacing an existing firmware application with another firmware application, and/or installing
在识别出合乎需要的固件更新之后,固件商店170与端点150通信以更新377端点150。After identifying the desired firmware update, the
存储器装置130的访问控制器配置成需要验证请求存储器装置130执行命令155以改变存储于存储器装置130中的固件的权限。The access controller of the
例如,在固件更新所需的数据存储到存储器装置130的区段中之后,命令155可以发送到主机接口147以在存储器装置130中执行固件更新的操作。在存储器装置130中执行命令155的权限可以由加密密钥145表示。加密密钥145可在先前配置,或响应于验证来自端点150的存储器装置130的身份数据113而生成。例如,加密密钥145可以是基于验证端点150的真实性以类似于图9的方式生成的会话密钥263;并且安全服务器140可使用加密密钥145生成命令的验证码153以供固件商店170更新端点150。替代地,安全服务器140可向固件商店170提供会话密钥263和/或加密密钥145来更新377端点150的固件。For example, after the data required for the firmware update is stored in a section of the
在成功进行固件更新之后,用于生成秘密密钥137的装置信息121更新以反映安装的固件和/或固件应用程序。例如,所安装固件和/或固件应用程序的散列值163可以存储为装置信息121的部分,以用于验证它们的完整性,如图4中所示。随后,由端点150的存储器装置130生成的身份数据113是基于更新后的装置信息121,并反映具有更新后的固件功能或配置的端点150的配置。After a successful firmware update, the
在一些实施例中,固件商店170是实施安全服务器140的服务器系统的部分。在另一实施例中,固件商店170托管在单独的服务器计算机上。In some embodiments,
在一些实施方案中,固件的更新377可以基于为端点150订阅的服务而自动执行,如下文结合图15进一步论述。In some embodiments, the
图15示出根据一个实施例的经由在线服务商店将服务定向到端点的技术。例如,图15的技术可与图14的技术组合使用。15 illustrates a technique for directing services to endpoints via an online service store, according to one embodiment. For example, the technique of FIG. 15 may be used in combination with the technique of FIG. 14 .
在图15中,在线服务商店190配置成促进为端点150从一或多个服务提供商(例如,381)所提供的多个服务中选择一个服务。服务提供商(例如,381)的服务可以经由一或多个端点平台(例如,361、…、362)实施。In Figure 15, the online service store 190 is configured to facilitate the selection of a service for the endpoint 150 from a plurality of services provided by one or more service providers (eg, 381). The services of a service provider (eg, 381 ) may be implemented via one or more endpoint platforms (eg, 361 , . . . , 362 ).
例如,端点150的用户可使用计算机180访问在线服务商店190,以便使用计算机180向服务提供商381订购391服务。服务提供商381提供的服务可以与多个端点平台(例如,361、…、362)的端点一起使用。端点平台(例如,361、…、362)中的端点(例如,150)运行不同固件以获得服务提供商381的服务。服务商店190具有识别订户所订购的服务和/或端点(例如,150)的订阅数据387。For example, a user of endpoint 150 may use
例如,服务提供商381所提供的服务可以经由客户端服务器141实施;并且订阅数据387可识别连接到端点以相应地接收为端点订阅的服务的服务器。For example, services provided by
例如,可以参考端点150的公共识别、端点150的型号和序列号、移动设备身份编号253、国际移动订户身份编号255、唯一识别111和/或包含在身份数据113的数据127中的另一标识符,为端点150明确订购服务。For example, reference may be made to the public identification of the endpoint 150, the model and serial number of the endpoint 150, the mobile equipment identity number 253, the international mobile subscriber identity number 255, the
替代地或组合地,可以参考用户或订户的身份来订购服务,用户或订户的身份可以通过账户标识符和/或一条可识别个人的信息来识别,例如电子邮件地址、电话号码、姓名和地址等等。Alternatively or in combination, services may be ordered with reference to the identity of the user or subscriber, which may be identified by an account identifier and/or a piece of personally identifiable information such as email address, telephone number, name and address and many more.
如在图14中,用户计算机180通常与端点150不同且分开。在一些情况下,端点150可包含允许其用作计算机180以便为端点150订购391服务的用户接口。As in FIG. 14 ,
当为端点150隐式地订购服务时,订户的身份可用于基于用于订购服务的订户的身份与端点150的所有者的身份的匹配来确定订户的端点的服务。When implicitly ordering services for endpoint 150, the identity of the subscriber may be used to determine the service of the subscriber's endpoint based on a match of the identity of the subscriber for ordering the service with the identity of the owner of endpoint 150.
例如,为了从服务提供商381订购391服务,端点150的用户(或用户的代表)可以访问服务商店190以建立用于订阅服务提供商381的服务的账户。For example, to order 391 services from
响应于服务被订购或改变,或响应于端点150的身份数据113被验证,安全服务器140和服务商店190可彼此通信以识别393为端点150订阅的服务。In response to a service being ordered or changed, or in response to the endpoint 150's
响应于来自端点150的服务请求171,安全服务器140验证373在服务请求171中提供的端点150的身份数据113。In response to the service request 171 from the endpoint 150 , the
一般来说,服务请求171可初始地在客户端服务器(例如,141或143)中或在服务商店190或固件商店170中或直接在安全服务器140中接收。In general, service request 171 may be initially received in client server (eg, 141 or 143 ) or in service store 190 or
在安全服务器140验证373端点150的身份和真实性之后,基于存储在安全服务器140中的客户端权限数据283和/或基于服务商店190中的订阅数据387,安全服务器140可识别393为端点150订阅的服务。After the
基于所识别的服务,安全服务器140可与固件商店170通信以识别375端点150的固件更新。例如,端点150可以经由替换固件或安装固件应用程序(例如,应用程序367)以针对所订阅服务定制端点150来进行更新。固件更新可以上文结合图14所论述的方式来执行和保护。Based on the identified services, the
例如,端点150可以使用通用版本的固件363制造,此固件363不能从服务提供商381接收服务,对于服务提供商381提供的服务不了解客户端服务器141,和/或未实施用于与客户端服务器141通信的通信协议。固件应用程序(例如,应用程序367)可安装在通用固件363上运行,以针对为端点150订购的服务定制端点150。一旦经由固件应用程序(例如,应用程序367)定制,端点150就可以从客户端服务器141接收服务提供商381的服务。例如,在安装固件应用程序(例如,应用程序367)以更新377固件之后,端点150具有关于客户端服务器141的知识、根据客户端服务器141使用的通信协议与客户端服务器141通信的通信能力,以及用于使用客户端服务器141提供的服务的处理例程。For example, endpoint 150 may be manufactured using a generic version of
例如,为端点150的操作订阅的服务可包含由客户端服务器141执行以处理端点150的数据的计算、在客户端服务器141中存储由端点150生成的数据,向与端点150相关联的一或多个其它装置发送通知和/或警告,经由客户端服务器141和与端点150相关联的一或多个其它装置连接,使用蜂窝基站、Wi-Fi访问点、通信卫星和/或由客户端服务器141控制的通信连接或设备将端点150连接到计算机网络或互联网,等等。For example, a service subscribed for operation of endpoint 150 may include computations performed by
任选地,在固件更新377之后,端点150经由其固件363和/或固件应用程序(例如,应用程序367)配置成自动访问客户端服务器141以获得订阅的服务。替代地,安全服务器140可在验证具有更新后的固件的端点150的身份数据113之后将端点150重定向到客户端服务器141以访问379订阅的服务。Optionally, after
一般来说,服务商店190可供用户(或用户的代表)用于为端点150订阅服务提供商381的服务,更改订阅的服务,将订阅从一个服务提供商381移动到另一服务提供商。端点150的固件363自动更新以支持当前订阅的服务,而无需端点150的用户对端点150进行操作来针对订阅的服务定制端点150。In general, the service store 190 is available to the user (or the user's representative) for subscribing to the services of the
图16示出根据一个实施例的使用固件商店和安全服务器的固件更新方法。例如,图16的方法可以使用图14的技术实施。16 illustrates a firmware update method using a firmware store and a secure server, according to one embodiment. For example, the method of FIG. 16 may be implemented using the technique of FIG. 14 .
在框401处,服务器系统从端点150接收具有由配置于端点150中的存储器装置130生成的身份数据113的请求。At block 401 , the server system receives a request from endpoint 150 with
例如,服务器系统可包含安全服务器140。任选地,服务器系统可进一步包含在线固件商店170和/或一或多个客户端服务器(例如,141、…、143)。For example, the server system may include the
例如,端点150可处于从端点(例如,150)制造商装运的状态,而无需针对特定服务器和/或服务提供商进行定制。For example, endpoint 150 may be in a state of being shipped from the endpoint (eg, 150) manufacturer without customization for a particular server and/or service provider.
在框403处,服务器系统响应于在框401中接收的请求并基于存储器装置130的秘密和身份数据113确定端点150的真实性。例如,框403中的操作可以类似于在框323和/或框343中执行的操作的方式执行。At block 403 , the server system determines the authenticity of endpoint 150 in response to the request received in block 401 and based on
例如,身份数据113包含在身份数据113中呈现的消息131的验证码133。安全服务器140可以验证验证码133是使用存储器装置130的秘密密钥137和消息131生成的,而无需端点呈现秘密密钥137。秘密密钥137使用存储器装置130的唯一装置秘密101和表示端点150的软件和硬件配置的装置信息121生成。For example, the
在框405处,基于在线固件商店170,确定第一固件363的更新。第一固件存储于存储器装置130中并在端点150中执行以生成在框401中接收的请求。At block 405, based on the
例如,在框401中接收请求之前,固件商店170可接收端点150的固件的订单391。可以做出订单391以使用用户计算机180定制端点150的功能,无需经过端点150。在固件商店170中接收的订单391可用于识别375更新377。For example, prior to receiving the request in block 401, the
例如,可以使用端点150的公共识别来识别端点150的订单391。身份数据113可包含使用秘密密钥137签名的消息131中的公共识别,以生成身份数据113中提供的验证码133。在验证消息131尚未更改之后,安全服务器140可以指示在线固件商店170和/或端点150更新377端点150的固件363。For example, the public identification of endpoint 150 may be used to identify
在框407处,响应于确定端点150是真实的,服务器系统生成可在存储器装置130中执行的命令155的验证码153以执行更新。At block 407, in response to determining that the endpoint 150 is authentic, the server system generates a
在框409处,服务器系统提供验证码153以在存储器装置130中执行命令155,以便进行固件更新。At block 409, the server system provides the
例如,响应于确定端点是真实的,安全服务器140可与在线固件商店170通信以将数据下载到存储器装置130中。当命令155在存储器装置130中执行时,存储器装置130使用数据执行固件更新。For example, in response to determining that the endpoint is authentic,
例如,下载到存储器装置130的数据可包含第二固件,在执行命令155以进行固件更新之后,第二固件替换经执行以生成在框401中接收的请求的第一固件。For example, the data downloaded to
例如,下载到存储器装置130的数据可包含固件应用程序(例如,应用程序367),在执行命令155以进行固件更新之后,所述固件应用程序利用经执行以生成请求的第一固件运行。固件应用程序(例如,应用程序367)和第一固件的组合提供端点150的第二固件。For example, data downloaded to
例如,在执行命令155以进行固件更新之后,端点150经由第二固件配置成提供在更新之前在运行第一固件的端点中没有的功能。For example, after executing
在执行命令155以进行固件更新之后,第二固件可变为存储器装置130和端点150的身份的部分。例如,基于装置信息121,存储器装置130配置成生成表示存储器装置130和端点150的身份的秘密密钥137。在执行命令155以更新377固件之后,装置信息121更新成包含在存储器单元103中存储为内容161的第二固件的散列值163。随后,存储器装置130配置成使用加密密钥生成端点150的身份数据113,所述加密密钥至少部分地基于存储器装置的秘密(例如,唯一装置秘密101)和存储于存储器装置130中的第二固件而生成。The second firmware may become part of the identity of
图17示出根据一个实施例的使用服务商店和安全服务器的端点定制方法。例如,图17的方法可以使用图14和图15的技术实施。Figure 17 illustrates an endpoint customization method using a service store and a security server, according to one embodiment. For example, the method of FIG. 17 may be implemented using the techniques of FIGS. 14 and 15 .
在框421处,服务器系统从端点150接收具有由配置于端点150中的存储器装置130生成的身份数据113的请求,类似于框401。At block 421 , the server system receives a request from endpoint 150 with
例如,服务器系统可包含安全服务器140和/或服务商店190。For example, the server system may include the
在框423处,安全服务器140响应于在框421中接收的请求并基于存储在安全服务器140中的关于端点150的信息来验证身份数据113。此类信息包含存储器装置130的秘密,例如唯一装置秘密101。此类信息可进一步包含表示端点150的软件/硬件配置的装置信息121。验证可以上文结合图2所论述的方式执行。At block 423 , the
响应于确定在框421中接收的请求中的身份数据113有效,在框425处,服务器系统识别在在线服务商店190中为端点150订购的服务。In response to determining that the
在框427处,识别配置成提供服务的客户端服务器141。At block 427, the
例如,在框421中接收请求之前,在线服务商店190可接收端点150的服务的订单391。客户端服务器141可以基于订单391来识别。For example, prior to receiving the request in block 421, the online service store 190 may receive an
例如,订单391可在在线服务商店190中通过用户计算机180且因此不经过端点150来接收。端点150的订单391可以使用端点150的公共识别来识别/放置。身份数据113可包含公共识别。替代地,订单391可与在安全服务器的客户端权限数据283中作为端点150的所有者的用户的身份相关联。For example,
在框429处,服务器系统将端点150定向到客户端服务器141。At block 429 , the server system directs endpoint 150 to
例如,响应于确定在框421中接收的请求中的身份数据113有效,服务器系统可针对在在线服务商店190中订购的服务配置端点150。For example, in response to determining that the
例如,为了针对服务配置端点150,服务器系统可更新端点150的固件。例如,固件更新可以上文结合图14到16所论述的方式执行。For example, to configure the endpoint 150 for service, the server system may update the firmware of the endpoint 150. For example, the firmware update may be performed in the manner discussed above in connection with FIGS. 14-16.
例如,在固件更新377之前,端点150不能从客户端服务器141接收服务,并且不具有关于客户端服务器141的了解。例如,初始地由端点(例如,150)的制造商配置的端点150编程成访问服务商店190、固件商店170、安全服务器140或另一网守,使得端点150可经正确地配置和/或更新以供使用,而无需终端用户对端点150操作来进行定制。For example, prior to
例如,在固件更新377之后,第二固件存储于存储器装置130中,以替换用于生成在框421中接收的请求的第一固件。当端点150运行第二固件时,端点具有在固件更新377之前在运行第一固件的端点中没有的功能。例如,第二固件可包含客户端服务器141的识别,用于引导端点访问客户端服务器141以获得在在线服务商店190中订购的服务。在某一实施方案中,第二固件是第一固件和添加的固件应用程序的组合。在固件更新377之后,存储器装置130配置成使用秘密密钥137生成端点150的更新后的身份数据113,所述秘密密钥至少部分地基于秘密(例如,唯一装置秘密101)和存储于存储器装置130中的第二固件而生成。For example, following
任选地,为了针对在服务商店190中订购的服务配置端点150,服务器系统识别用于为端点150订阅服务的账户。存储器装置130配置成存储账户的标识符,并且在更新后的身份数据113中包含标识符作为消息131的部分。Optionally, in order to configure the endpoint 150 for services ordered in the service store 190, the server system identifies an account for subscribing the endpoint 150 to the service. The
例如,为了执行固件更新377,服务器系统可使用表示在存储器装置130中执行命令155的权限的加密密钥145生成命令155的验证码153。在存储器装置130中执行时,命令155使第一固件替换为第二固件。在存储器装置130接收命令155和验证码153之后,存储器装置130在执行命令155之前针对所述权限验证验证码153。For example, to perform the
安全服务器140不仅可以用于基于在端点150中配置的存储器装置130的安全特征验证端点150的身份,而且还可以用于监测存储于存储器装置130和/或端点150中的包的完整性。例如,存储在端点150中的包可以是启动加载程序、固件、软件、模块、操作系统或应用程序的至少一部分、指定资源的一组文件、配置参数和/或程序或例程的其它数据,等等。当发现包被损坏、修改、篡改或过时时,安全服务器140可发起空中(OTA)更新以维持端点150的完整性。
存储器装置130可在存储器单元103中存储内容161,并单独地存储散列值163作为装置信息121的部分,如图4所示。当根据存储于存储器单元103中的内容161计算的当前散列值不匹配作为装置信息121的部分存储的预期散列值163时,存储器装置130可检测到内容161的修改或损坏,并发起内容修复。The
例如,内容161可包含端点150的核心包。在验证373端点150的身份时,核心包的完整性可影响端点150在与安全服务器140通信时的操作。核心包的实例可包含端点150的启动加载程序、固件和/或操作系统的至少一部分。当核心包被修改、损坏或篡改时,为进行身份验证而执行的端点150的操作的安全性可能不被信任。当由加密引擎107生成的完整性状态165指示核心包改变时,访问控制器109可阻止主机系统120访问内容161,直到核心包被修复为止。For example,
例如,存储器装置130可在单独区段中存储核心包的可靠备份副本;并且当存储于存储器单元103中的内容161中的核心包的散列值不同于存储的装置信息121的对应散列值163时,存储器装置130可使用存储在单独区段中的副本来替换存储于存储器单元103中的核心包。任选地,端点150中的替换副本的执行可配置成开始恢复过程以从可靠源(例如,固件商店170)获得最新版本的包。替代地,安全服务器140可在验证经由替换副本提交的存储器装置130和/或端点150的身份数据113之后发起更新(例如,使用固件商店170)。For example, the
存储于存储器单元103中的一些包对验证373端点150的身份数据113的初始操作以及更新端点150的后续操作的安全性没有影响。因此,不必在存储器装置130中存储此类包的恢复副本。可经由安全服务器140执行此类包的修复和/或更新。例如,当完整性状态165指示非核心包已经改变时,访问控制器109可以阻止主机系统120访问损坏或改变的包,直到端点150与安全服务器140通信以修复或恢复损坏的包。Some of the packets stored in the memory unit 103 have no effect on the security of the initial operation of verifying 373 the
任选地,在身份数据113中提供的数据127可包含存储于存储器单元103中的内容161中的包的当前散列值。在验证373端点150的身份数据113的操作期间,安全服务器140可检查在身份数据113中提供的包的当前散列值。如果包的当前散列值指示包已经改变、损坏或过时,那么安全服务器140可发起包的修复或恢复。Optionally, the
此外,端点150的一些包可以存储在不具有存储器装置130的安全特征的另一装置中。在主机系统120中执行核心包可以生成包的当前散列值作为包的健康指示符。健康指示符可以作为嵌入在端点150的身份数据113中的数据127的部分提供,以允许安全服务器140监测包的完整性。Additionally, some packets of endpoint 150 may be stored in another device that does not have the security features of
一般来说,身份数据113可包含指示端点150中的包的健康状况的数据。作为验证373端点150的身份数据113的操作的部分,安全服务器140可确定是否要修复和/或更新任何包。修复或更新可以在安全服务器140确认端点150的真实性之前执行。In general,
此外,响应于验证373端点150的身份数据113以访问客户端服务器(例如,141、…、143)的服务,安全服务器140可配置成在访问服务时跟踪和/或监测端点150的活动以实施进一步的安全操作。Furthermore, in response to verifying 373 the
例如,端点150的所有者或用户可请求安全服务器140跟踪端点150的活动。端点150的活动的方面可由端点150和/或客户端服务器(例如,141、…、143)在身份数据113和/或请求173中呈现以验证身份数据113。For example, the owner or user of endpoint 150 may request
例如,关于所跟踪活动的信息可包含端点150的位置信息和/或端点150经由提交身份数据113所请求的服务类型。For example, the information about the tracked activity may include location information of endpoint 150 and/or the type of service that endpoint 150 is requesting via submitting
例如,为了从客户端服务器141的服务生成身份数据113,端点150可以在身份数据113的消息131中不仅包含端点150的唯一识别111,而且还包含服务的上下文和/或方面,例如客户端服务器141的识别、端点150的位置,请求的日期和时间、服务的类别/类型、服务的参数等。For example, to generate
例如,当端点150向客户端服务器141发送针对服务的请求171时,客户端服务器141可在请求中向安全服务器140不仅提供端点150的身份数据113,而且还提供关于对客户端服务器141的服务的请求171的信息。For example, when endpoint 150 sends client server 141 a request 171 for a service,
例如,响应于来自端点150的请求171,客户端服务器141可基于到连接到客户端服务器141的一或多个访问点的无线通信连接来估计端点150的位置,并将所述位置以及请求173提供到安全服务器140以认证身份数据113。For example, in response to request 171 from endpoint 150,
任选地,端点150的所有者或用户可访问安全服务器140的门户来查看所跟踪活动。例如,基于所跟踪活动,所有者或用户可以根据端点150的一或多个最近位置来确定端点150是否被盗或丢失。Optionally, the owner or user of endpoint 150 may access the portal of
任选地,家长可以使用安全服务器140的门户来设置家长控制偏好以限制端点150的活动;并且安全服务器140可以结合认证端点150的身份来实施限制偏好。Optionally, the parent may use the portal of the
图18示出根据一个实施例的生成身份数据以促进完整性和/或端点活动的监测的图示。18 shows an illustration of generating identity data to facilitate monitoring of integrity and/or endpoint activity, according to one embodiment.
例如,图18的技术可用于具有关于图1到5论述的安全服务和特征的图1和/或图6的计算系统。图18的技术可与图9到17的技术组合使用。For example, the techniques of FIG. 18 may be used with the computing systems of FIGS. 1 and/or 6 with the security services and features discussed with respect to FIGS. 1-5. The technique of FIG. 18 may be used in combination with the techniques of FIGS. 9-17.
在图18中,端点150存储具有散列值169的包167。包167可存储于具有上文所论述的安全特征的存储器装置130中,或存储于可具有也可不具有存储器装置130的安全特征的端点150的另一存储器装置。当包167存储于存储器装置130中时,存储器装置130的加密引擎107可计算包167的散列值169,而不依赖于端点150中的主机系统120的处理装置118。当包167存储在存储器装置130之外时,散列值169可通过主机系统120的处理装置118执行存储于存储器装置130中且已经验证其尚未改变(例如,如图4中)的例程来获得。In FIG. 18, endpoint 150 stores packet 167 with
一般来说,包167可包含指令和/或数据,例如对于一组端点(例如,150)可为相同的资源、对于不同端点(例如,150)可为不同的配置参数。In general, packets 167 may contain instructions and/or data, such as the same resources for a set of endpoints (eg, 150) and different configuration parameters for different endpoints (eg, 150).
包167的散列值169指示包167的健康状况。The
在图18中,用于生成身份数据113的验证码133的秘密密钥137独立于包167的散列值169。为了促进安全服务器140对包167的完整性的监测,在身份数据113中将散列值169提供为消息131的部分。In FIG. 18 , the
在安全服务器140确定身份数据113有效之后,安全服务器140可提取身份数据113中提供的散列值169,以确定端点150中的包167是否已改变和/或包167是否过时。After the
例如,包167的健康且最新副本可以存储在服务器(例如,安全服务器140、固件商店170或另一服务器)中以促进端点150中的包167的修复或恢复。如果从身份数据113中提取的散列值169不同于健康且最新的副本的散列值,那么安全服务器140可以类似于结合图14到17所论述的端点150的固件363的更新377的方式发起更新。For example, a healthy and up-to-date copy of package 167 may be stored in a server (eg,
包167可针对端点150进行个体化。例如,当包167包含特定于平台361中的端点150但不可应用于平台361中的其它端点的配置参数时,包167的健康副本可以在端点150中的包167成功配置后立即上载到服务器(例如,安全服务器140、固件商店170或另一服务器)。Package 167 may be individualized for endpoint 150 . For example, when package 167 contains configuration parameters that are specific to endpoint 150 in
在一些实施方案中,存储器装置130和/或端点150可配置成存储包167的健康个体化副本的散列值。例如,健康散列值可以存储为用于创建秘密密钥137的装置信息121的部分。身份数据113中的消息131可包含当前包167是否健康的指示,但不具有包167的当前散列值169。In some embodiments,
为了改进安全性和/或隐私保护,个体化包167的健康副本可以使用存储器装置130的加密密钥以加密形式上载并存储在服务器中。为了使用健康副本重新安装包167,存储器装置130使用存储器装置130的对应秘密加密密钥对加密版本进行解密。To improve security and/or privacy protection, a healthy copy of the personalization package 167 may be uploaded and stored on the server in encrypted form using the encryption key of the
例如,在成功配置端点150中的个体化包167后,端点150和/或存储器装置130可计算个体化包167的健康副本的散列值,并使用公钥139对个体化包167进行加密。端点150可提交散列值和加密包167以存储在服务器中,从而促进监测和/或恢复。在恢复期间,密钥对135中的秘密密钥137将用于对加密包进行解密。任选地,加密引擎107可生成单独的密钥对来保护个体化包167。For example, upon successful configuration of the personalization package 167 in the endpoint 150 , the endpoint 150 and/or
替代地,秘密密钥可以与对称加密一起使用来保护个体化包167。例如,在成功配置端点150中的个体化包167时在验证端点150的身份数据113期间生成的会话密钥263可用于对个体化包167进行加密以用于传输到和/或存储在服务器(例如,安全服务器140、固件商店170或另一服务器)。Alternatively, a secret key may be used with symmetric encryption to protect the individualized package 167. For example, the
在图18中,身份数据113不仅包含包167的当前散列值169,而且还包含识别其中使用身份数据113的上下文的一些方面的活动信息177。例如,活动信息177可通过主机系统120执行或运行包(例如,167或另一包,如固件、应用程序、例程)来生成。In Figure 18, the
例如,活动信息177可包含其中生成身份数据113的端点150的当前位置。For example,
例如,活动信息177可包含身份数据113的生成日期和时间。For example,
例如,活动信息177可包含向其提交身份数据113以请求171服务的客户端服务器141的识别。For example, the
例如,活动信息177可包含所请求服务的一或多个属性,例如服务的类别、服务所涉及的另一方的识别、服务所涉及的数量或量,等等。For example, the
例如,当提交身份数据113以进行通信连接时,属性可包含连接类型的识别、连接的标示等。For example, when submitting
例如,当提交身份数据113以进行支付时,属性可包含购买类别的识别、收款人、支付金额等。For example, when submitting
活动信息177可供安全服务器140用于检测欺诈性活动、端点的未经授权使用,并施行活动限制(例如,如家长控制偏好中所指定),等等。
为了改进安全性和/或隐私保护,活动信息177可以加密形式包含在消息131中。例如,与身份数据113的验证相关联的会话密钥263可用于生成活动信息177的密文;并且在成功验证身份数据113的验证码133之后,安全服务器140可使用会话密钥263从密文恢复活动信息177。To improve security and/or privacy protection,
图19示出根据一个实施例的用于维持存储在端点中的包完整性的技术。19 illustrates a technique for maintaining the integrity of packets stored in an endpoint, according to one embodiment.
在图19中,端点150存储多个包441、443、…、445。一些包存储于具有安全特征的存储器装置130中。一些包可以存储在存储器装置130之外。In FIG. 19, endpoint 150 stores a plurality of
存储于存储器装置130中的核心包441可以在连接到端点150中的存储器装置130的主机系统120的处理装置118中执行。包441控制端点150在向安全服务器140提交端点150的身份数据113时及用于与包存储库191通信以修复和/或更新包441、443、…、445的操作。例如,包存储库191可包含图14和15的固件商店170。The
存储器装置130的安全特征确保端点150运行有效版本的包441以免在验证373端点150的身份和修复385包的操作中发生篡改和/或损坏。The security features of the
例如,存储器装置130可在存储器装置130的安全区段中存储备份版本的核心包441。如果发现包441已改变,那么存储器装置130可用备份版本替换已改变版本的包441,以至少保护验证373端点150的身份和修复385和/或更新377包的操作。For example,
在端点150生成身份数据113之后,执行包441的端点150将身份数据113传送到安全服务器140以用于验证373。例如,身份数据113可使用图18的技术生成。After endpoint 150 generates
身份数据113可包含包健康信息447,例如包441、443、…、445的当前散列值,和/或基于比较相应包的健康版本的当前散列值和所存储散列值做出的包443、…、445中的任一个是否损坏的指示。
任选地,消息131的部分可以使用会话密钥263生成的密文提供。例如,消息的经加密部分可包含包健康信息447和/或活动信息177。会话密钥263可以关于图9所论述的方式生成以在存储器装置130和安全服务器之间共享,并用于验证373端点150的身份。Optionally, portions of message 131 may be provided using ciphertext generated by
一般来说,身份数据113可以直接经由通信连接或间接地经由中间服务器(例如,图5、9或10中的客户端服务器141、图14或15中的固件商店170、图15中的服务商店190或图19的包存储库191)从端点150传输到安全服务器140。In general,
在验证373身份数据113之后,安全服务器140可与包存储库191通信,以基于在身份数据113中提供的包健康信息447来检查383包441、443、…、445的完整性。After verifying 373 the
例如,包441在端点150中可以是有效的。但是,因为新版本的包441在包存储库191中已发布,包441可为过时的。因此,更新包441可以提高端点150的操作的安全性和系统的完整性。For example,
例如,包443或445在端点150中可能已改变,且因此被损坏。存储库191中的对应包193的健康数据195可与在身份数据113中提供的包健康信息447比较以检测所述改变。For example,
如果发现包(例如,441、443、…、445)过时或损坏,那么安全服务器140可指示端点150和/或包存储库191修复385或更新377包。If a package (eg, 441, 443, ..., 445) is found to be outdated or corrupt, the
修复385或更新377包的操作可包含安全服务器140生成命令155的验证码153以将数据写入到存储器装置130中。当包包含敏感信息(例如,为端点150定制的配置参数)时,替换包可以使用会话密钥263或另一秘密密钥生成的密文提供给存储器装置130。The operation of repairing 385 or updating 377 the package may include the
在修复385或更新377之后,端点150可提交更新身份数据113。当安全服务器140确定身份数据113有效且身份数据113中的包健康信息447指示端点150中的包441、443、…、445健康且最新时,安全服务器140可认证端点150的真实性。After
图20示出根据一个实施例的基于跟踪端点活动而实施安全操作的系统。20 illustrates a system for implementing security operations based on tracking endpoint activity, according to one embodiment.
例如,图20的安全操作可以使用结合图1到5论述的存储器装置的安全特征结合图9、10、14、15和/或19的技术并结合图1和/或6的系统实施。For example, the secure operations of FIG. 20 may be implemented in conjunction with the techniques of FIGS. 9 , 10 , 14 , 15 and/or 19 and in conjunction with the systems of FIGS. 1 and/or 6 using the security features of memory devices discussed in conjunction with FIGS. 1-5 .
在图20中,用户计算机180可用于访问活动跟踪器451,以设置偏好455和/或检查具有唯一识别111的端点150的所跟踪活动记录453。In FIG. 20 ,
如在图14和15中,用户计算机180通常与端点150不同且分开。在一些情况下,端点150可包含允许其用作计算机180以设置偏好455和/或检查活动记录453的用户接口。As in Figures 14 and 15,
活动跟踪器451与安全服务器140耦合以存储关于端点150的活动的活动记录453,其中端点150的身份数据113由安全服务器140验证。The activity tracker 451 is coupled with the
偏好455可包含端点150的活动的安全设置。例如,安全设置可用于实施家长控制,检测端点150的欺诈性使用,跟踪端点150的位置,等等。
例如,参考455可识别端点150的地理区域。当端点150从地理区域之外的位置发送身份数据113时,活动跟踪器451可向端点150的已注册所有者或用户生成安全警告。For example,
例如,安全警告可传输到所有者或用户的移动装置、在偏好中识别的电子邮件地址或电话号码,和/或在用户计算机180中运行的应用程序、个人媒体播放器、移动电话、智能电话等等。For example, the security alert may be transmitted to the 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
例如,偏好455可包含与在偏好455中指定的预定条件相关联的用户选定的选择方案。当与身份数据113的提交相关联的活动符合条件时,选定的选择方案使安全服务器140和/或客户端服务器141生成对对应访问请求171的访问响应172的拒绝。替代地或组合地,选择方案可触发对在偏好455中登记的联系人的安全警告。For example,
端点150可向客户端服务器141传输访问请求171以请求服务。例如,服务可向端点150提供蜂窝通信连接、互联网连接、到用户计算机180的连接、在线存储设施、在线计算资源等等。例如,服务可包含支付、交易、消息等等的处理。Endpoint 150 may transmit access request 171 to
在访问请求171中提供的身份数据113可包含活动信息177,如图18中所示。替代地或组合地,客户端服务器141可在传输到安全服务器140的验证请求173中提供类似或单独的活动信息。例如,客户端服务器141可在验证请求173中指定访问属性449。访问属性449识别其中端点150的身份将由安全服务器140认证的端点150的当前活动的某些方面。客户端服务器141向安全服务器140传输验证请求173,所述安全服务器验证身份数据113以确定端点150的身份的真实性。The
在验证373验证请求173中提供的身份数据113之后,安全服务器140可生成活动跟踪器451的活动记录453。活动记录453可包含从身份数据113中提取的活动信息177和/或从验证请求173中提取的端点150的当前活动的访问属性449。After verifying 373 the
基于活动记录453,活动跟踪器451确定当前活动是否满足在偏好455中指定的任一条件。如果满足偏好455中的条件,那么活动跟踪器451可执行安全操作以实施被选定用于所述条件的选择方案。Based on
例如,安全操作可包含针对端点150的注册所有者或用户的通知。For example, security operations may include notifications to registered owners or users of endpoint 150 .
例如,安全操作可包含指示安全服务器140提供指示安全限制、安全问题、端点150的未授权使用等等的验证响应174。For example, the security operation may include instructing the
任选地,活动跟踪器451可根据过往活动的记录453识别端点150的活动模式。Optionally, activity tracker 451 may identify activity patterns of endpoint 150 from
例如,模式可包含端点150过去曾在其中运行的端点150的地理区域或区。例如,模式可包含端点150过去没有活动的一天或一周中的时间段。例如,模式可包含端点150的过往活动的访问属性449的范围。For example, a schema may include a geographic area or zone of endpoint 150 in which endpoint 150 has operated in the past. For example, a pattern may include a day or time period of the week in which the endpoint 150 has had no activity in the past. For example, a pattern may contain a range of access attributes 449 for the endpoint's 150 past activity.
当当前活动偏离模式时,活动跟踪器451可生成通知,且任选地使安全服务器140和/或客户端服务器141拒绝访问请求171。Activity tracker 451 may generate a notification and optionally cause
任选地,安全服务器140可检查在身份数据113中提供的活动信息177以检测安全风险。Optionally,
例如,在活动信息177中指定的日期和时间和/或位置可以与访问属性449中的对应信息比较以检测不匹配。不匹配可以是对被盗身份数据113被使用或端点150被篡改或不安全操作的指示。For example, the date and time and/or location specified in the
图21示出根据一个实施例的用于更新或修复存储在端点中的包的方法。例如,图21的方法可以使用图18和19的技术实施。Figure 21 illustrates a method for updating or repairing a package stored in an endpoint, according to one embodiment. For example, the method of FIG. 21 may be implemented using the techniques of FIGS. 18 and 19 .
在框461处,服务器系统从端点150接收由配置在端点150中的存储器装置130生成的身份数据113。At
例如,服务器系统可包含存储存储器装置(例如,130)和/或其它服务器的秘密的安全服务器140,所述其它服务器例如包存储库191、固件商店170和/或另一服务器。For example, the server system may include a
在框463处,安全服务器140基于存储在安全服务器140中的关于端点150的信息(包含存储器装置130的秘密)来验证身份数据。At
例如,框463中的操作可以类似于在框323、框343、框403和/或框423中执行的操作的方式执行。For example, the operations in
在框465处,安全服务器140从已经验证的身份数据113提取存储在端点150中的包(例如,167、441、443、…、445)的健康信息447。At
例如,健康信息447可包含存储在端点150中的包167的当前散列值169。安全服务器140可比较从身份数据113中提取的当前散列值169与存储在服务器系统(例如,存储库191、固件商店170)中的健康的最新版本的包167的散列值。For example, the
例如,框461中的身份数据的接收可以是端点150执行存储在端点150中的包167的结果。包167可包含固件363或端点150的操作系统的至少一部分。健康信息447可用于确定包167是否过时。For example, the receipt of identity data in
在另一实例中,框461中的身份数据的接收可以是端点150执行存储在端点150中的第一包441的结果。第一包441可包含固件363或端点150的操作系统的至少一部分。健康信息447可用于确定第二包(例如,443或445)是否过时、损坏或改变。In another example, the receipt of the identity data in
当第二包装(例如,443或445)包含为端点150定制的数据时,服务器系统可获得成功配置端点150中的第二包(例如,443或445)时的第二包(例如,443或445)的副本。例如,第二包(例如,443或445)可包含端点150的一或多个配置参数。响应于成功配置第二包(例如,443或445),服务器系统可从端点150接收健康版本的第二包(例如,443或445)。随后,如果在框465处提取的健康信息447指示需要修复第二包(例如,443或445),那么可使用存储在存储库191中的健康版本。When the second package (eg, 443 or 445) contains data customized for the endpoint 150, the server system can obtain the second package (eg, 443 or 445) when the second package (eg, 443 or 445) in the endpoint 150 is successfully configured 445) copy. For example, the second packet (eg, 443 or 445 ) may contain one or more configuration parameters for endpoint 150 . In response to successfully configuring the second package (eg, 443 or 445 ), the server system may receive a healthy version of the second package (eg, 443 or 445 ) from endpoint 150 . Then, if the
在一些实施方案中,从身份数据113提取健康信息447包含对在身份数据113中提供的消息131的一部分进行解密(例如,使用会话密钥263)。In some embodiments, extracting
身份数据113包含第一验证码133。安全服务器140通过确定第一验证码133是否从消息131和存储器装置130的秘密生成来验证身份数据113。例如,秘密可以是存储器装置130的唯一装置秘密101和/或秘密密钥137。在存储器装置130组装到端点150中之后,存储器装置130的秘密不传输到存储器装置130之外。The
在框467处,至少部分地基于健康信息447,安全服务器140确定存储在端点150中的包需要更新或修复。At block 467, based at least in part on the
在框469处,安全服务器140发起操作以执行存储在端点150中的包的更新或修复。At
例如,为了替换或修复存储于存储器装置130中的包,安全服务器140使用表示在存储器装置130中执行命令155的权限的加密密钥生成命令155的第二验证码153。例如,在存储器装置130中执行时,命令155使存储器装置130中的包(例如,441或443)替换。For example, in order to replace or repair a package stored in
在一些实施方案中,为了修复存储在存储器装置130之外的包445,包445的替换初始存储到存储器装置130中。在存储器装置验证替换的完整性之后,包445可经由执行从存储器装置130加载的包441中的指令而替换。任选地,第二验证码153可经生成以将替换写入到存储器装置130中和/或允许执行包445的修复或替换。In some embodiments, in order to repair a package 445 stored outside of the
图22示出根据一个实施例的基于端点的一或多个活动执行安全操作的方法。例如,图22的方法可以使用图18和20的技术实施。22 illustrates a method of performing security operations based on one or more activities of an endpoint, according to one embodiment. For example, the method of FIG. 22 may be implemented using the techniques of FIGS. 18 and 20 .
在框481处,服务器系统存储表示端点150的一或多个偏好455的数据。At block 481 , the server system stores data representing one or
例如,服务器系统可包含存储存储器装置(例如,130)和/或其它服务器的秘密的安全服务器140,所述其它服务器例如活动跟踪器451、包存储库191、固件商店170和/或另一服务器。For example, the server system may include a
在框483处,服务器系统接收含有由配置在端点150中的存储器装置130生成的身份数据113的验证请求173。At block 483 , the server system receives the authentication request 173 containing the
在框485处,服务器系统至少部分地基于存储器装置的秘密而确定身份数据113有效。At block 485, the server system determines that the
例如,框485中的操作可以类似于在框323、框343、框403、框423和/或框463中执行的操作的方式来执行。For example, the operations in block 485 may be performed in a manner similar to the operations performed in
在框487处,服务器系统确定与身份数据113相关联的活动满足为端点150指定的条件。At
例如,所述条件可在端点150的偏好455中指定。For example, the conditions may be specified in the
在框489处,在响应于验证请求173而提供验证响应174时,服务器系统执行与条件相关联的安全操作。At
例如,安全操作可包含向在所述一或多个参考455中注册的联系人传输警告或通知。For example, security operations may include transmitting alerts or notifications to contacts registered in the one or
例如,安全操作可包含识别验证响应174中的安全风险或限制。任选地,鉴于存储器装置130的秘密密钥137和在身份数据113中提供的消息131,安全服务器140可提供即使在身份数据113具有有效验证码133时也不确认端点150的真实性的验证响应174。当与身份数据113相关联的活动满足条件时,验证响应174可配置成使客户端服务器拒绝对由身份数据113识别的端点150的服务的请求171。For example, security operations may include identifying security risks or limitations in the
可以基于存储器装置130嵌入在身份数据113中的活动信息177和/或由客户端服务器141在验证请求173中提供的访问属性449针对活动来评估条件。Conditions may be evaluated for the activity based on
例如,在安全服务器140确定身份数据113中的验证码133有效之后,安全服务器140可信任嵌入在身份数据113中的活动信息177在存储器装置130生成验证码133之后尚未改变。因此,活动信息177可以从身份数据113中提取以评估条件。任选地,活动信息177可以密文形式在消息中提供,所述密文要使用以图9中所论述的方式生成的会话密钥263或存储器装置130的另一秘密加密密钥进行解密。For example, after
替代地或组合地,安全服务器140可从验证请求173提取访问属性449。例如,在客户端服务器141接收对由客户端服务器141提供的服务的访问请求171之后,客户端服务器141可生成验证请求173到安全服务器140。验证请求173经生成以包含来自访问请求171的身份数据113。此外,在请求客户端服务器141的服务的背景下,客户端服务器141可添加访问属性449以提供关于端点150的活动的信息。Alternatively or in combination, the
例如,条件可包含活动信息177和访问属性449的不匹配;并且不匹配可在验证响应174中触发访问请求171的拒绝和/或身份数据113的拒绝,即使在身份数据113具有有效验证码133时。For example, a condition may include a mismatch of
在一些实施方案中,服务器系统与用户计算机180通信以接收表示端点150的所述一或多个偏好455的数据。In some implementations, the server system communicates with the
替代地或组合地,服务器系统可从过往活动的记录453推断偏好455。Alternatively or in combination, the server system may infer
例如,服务器系统的活动跟踪器451可存储端点150的活动的多个记录453。基于多个记录453,活动跟踪器451可确定端点150的活动模式。模式可包含地理区域、一天或一周中的时间段或活动属性的范围,或其任何组合。触发框489的安全操作的条件可被偏离模式的活动满足。For example, the activity tracker 451 of the server system may store a number of
任选地,活动跟踪器451可基于记录453而向端点150的所有者或授权用户呈现端点150的活动。例如,基于过往活动的检查,所有者或授权用户可指定实施家长控制、访问限制等的条件。Optionally, activity tracker 451 may present endpoint 150 activity to an owner or authorized user of endpoint 150 based on
经安全服务器140认证的端点150的身份可动态地与由账户标识符表示的订阅账户相关联以接收客户端服务器141提供到账户的服务。当端点150不使用服务时,端点150的身份和订阅账户之间的关联可以去除以允许另一端点使用订阅账户。因此,一组端点(例如,150)可配置成共享订阅账户,并一次一个地使用订阅账户。The identity of the endpoint 150 authenticated by the
例如,一组端点可配置成使用客户端服务器141的服务进行蜂窝连接。传统上,订户识别模块(SIM)卡将用于表示订户/订阅账户。这一组端点可通过每次在群组中的一个端点中物理地安装SIM卡来使用由SIM卡表示的订阅账户。为了使群组中的另一端点能够使用订阅账户,SIM卡将物理地从一个端点移动到另一端点。For example, a set of endpoints may be configured to use the services of
如上文结合图6所论述的系统允许使用虚拟订户识别模块(vSIM)通过虚拟卡注册237并基于使用安全服务器140执行的身份验证或端点认证239而附接到端点(例如,150)上。图6的系统可进一步配置成解除端点(例如,150)与表示订阅账户的卡简档219的关联,使得虚拟卡注册237可经执行以供另一端点使用订阅账户。The system as discussed above in connection with FIG. 6 allows the use of a virtual subscriber identity module (vSIM) to be attached to an endpoint (eg, 150 ) through
例如,提供给订阅账户的订阅服务(例如,蜂窝连接)可以在企业(或另一实体)所拥有的一群端点当中共享。这一群中的端点(例如,150)可能不会同时需要账户的服务。因此,将这一群中的端点配置成共享一或多个订阅账户可能是有利的。当超过一个订阅账户配置成由一群端点(例如,物联网(IoT)装置)共享时,这一群中的小部分可以同时使用订阅账户的服务。For example, a subscription service (eg, a cellular connection) provided to a subscription account may be shared among a group of endpoints owned by an enterprise (or another entity). Endpoints in this group (eg, 150) may not require the account's services at the same time. Therefore, it may be advantageous to configure endpoints in this group to share one or more subscription accounts. When more than one subscription account is configured to be shared by a group of endpoints (eg, Internet of Things (IoT) devices), a small portion of the group may use the services of the subscription account concurrently.
例如,服务器系统可配置成跟踪群体中的端点的当前使用状态。当端点与客户端服务器通信以请求服务时,端点可以动态地绑定到订阅账户。当端点不是正在使用服务时,订阅账户可以从所述端点释放。当正在使用提供给订阅账户的服务的端点的数目大于可以共享的订阅账户的数目时,作用中端点可同时使用账户的服务。当订阅账户当前绑定到群体的一部分且正在被这一部分使用时,来自另一端点的对服务的请求可被拒绝,直到订阅账户中的一个不使用且因此变得可用于共享为止。For example, the server system may be configured to track the current usage status of endpoints in the population. Endpoints can be dynamically bound to subscription accounts when they communicate with client servers to request services. When the endpoint is not using the service, the subscription account can be released from the endpoint. When the number of endpoints that are using a service provided to a subscription account is greater than the number of subscription accounts that can be shared, an active endpoint can use the account's service concurrently. When a subscription account is currently bound to and is being used by a part of the community, requests for services from another endpoint may be denied until one of the subscription accounts is not in use and thus becomes available for sharing.
例如,响应于企业的物联网(IoT)装置请求蜂窝连接,虚拟订户识别模块(vSIM)可以绑定到IoT装置。当蜂窝连接在长于阈值的一段时间内一直空闲时,蜂窝连接可以断开连接;并且虚拟订户识别模块(vSIM)可以从IoT装置释放,并且可用于与企业的另一IoT装置绑定。因此,企业可订阅减少数目的vSIM;并且当这些vSIMs全都在使用时,来自另一装置的蜂窝连接的请求可处于保持状态,直到连接中的一个断开且vSIM被释放用于分配给保持中装置为止。For example, in response to an enterprise's Internet of Things (IoT) device requesting a cellular connection, a virtual subscriber identity module (vSIM) can be bound to the IoT device. When the cellular connection has been idle for a period of time longer than a threshold, the cellular connection can be disconnected; and the virtual subscriber identity module (vSIM) can be released from the IoT device and can be used to bind with another IoT device of the enterprise. Thus, an enterprise can subscribe to a reduced number of vSIMs; and when these vSIMs are all in use, a request for a cellular connection from another device can be put on hold until one of the connections is disconnected and the vSIM is released for allocation to hold until the device.
任选地,安全服务器140可配置成抑制和/或调度连接请求的转发以管理有限数目的订阅蜂窝连接的使用。Optionally, the
图23和24示出根据一个实施例的配置成在一组端点当中实施订阅共享的系统。23 and 24 illustrate a system configured to implement subscription sharing among a set of endpoints, according to one embodiment.
在图23和24中,服务商店190具有使端点群组501与订户群组503相关联的订阅数据387。In Figures 23 and 24, service store 190 has
端点群组501具有多个唯一识别111、…、112。唯一识别(例如,111)中的每一个表示安装于一组端点中的相应端点(例如,150)中的存储器装置(例如,130)。The endpoint group 501 has a plurality of
订户群组503具有一或多个订户身份编号(例如,505)。订户群组503中的每个订户身份编号(例如,505)表示客户端服务器141的服务的订户。例如,每个订户身份编号(例如,505)可用于识别每次供一个订户使用的唯一订阅账户。Subscriber group 503 has one or more subscriber identity numbers (eg, 505). Each subscriber identity number (eg, 505 ) in subscriber group 503 represents a subscriber to the service of
例如,订户身份编号505可用于表示唯一订户,方式与订户识别模块(SIM)表示蜂窝通信网络中的订户相同。For example, the
当SIM卡插入在蜂窝电话中时,与订户的通信连接到蜂窝电话;并且蜂窝电话具有订户账户中的服务。当SIM卡插入到替代蜂窝电话中时,与订户的通信连接到当前具有SIM卡的替代蜂窝电话。When the SIM card is inserted in the cellular phone, communication with the subscriber is connected to the cellular phone; and the cellular phone has services in the subscriber's account. When the SIM card is inserted into the replacement cellular telephone, communication with the subscriber is connected to the replacement cellular telephone that currently has the SIM card.
类似地,当订户身份编号505与唯一识别111相关联时,提供到由订户身份编号505表示的订户账户的服务被提供给具有唯一识别111的端点150。当订户身份编号505与替代性唯一识别112相关联时,提供到由订户身份编号505表示的订户账户的服务被提供给具有唯一识别112的替代端点。Similarly, when the
在图23中,安全服务器140配置成动态地链接订户群组503中的订户身份编号505和端点群组501中的唯一识别111。In FIG. 23 , the
例如,响应于具有身份数据113的来自客户端服务器141的验证请求173,安全服务器140可确定身份数据113是否具有用于具有唯一识别111的存储器装置130的有效验证码133。如果身份数据113有效,那么安全服务器140可确定订户群组503当前是否具有空闲以供具有唯一识别111的存储器装置130和/或端点150使用的订户身份编号505。如果是,那么安全服务器140可提供确认身份数据113的真实性及其与订户身份编号505的关联的验证响应174。作为响应,客户端服务器141可将提供到由订户身份编号505识别的账户的服务提供给端点150。For example, in response to the verification request 173 from the
在一些实施方案中,如果当前在订户群组503中没有订户身份编号505可供端点150使用,那么验证响应174未识别出身份数据113的订户身份编号,这可使客户端服务器141拒绝来自端点150的服务请求。In some embodiments, if no
图23中的验证请求173可包含访问属性449,其指示用于使身份数据113中所识别的唯一识别111与可供具有唯一识别111的端点150使用的订户身份编号(例如,505)相关联的所请求时间段。The authentication request 173 in FIG. 23 may include an
在一些实施方案中,系统配置成在识别唯一识别111和/或身份数据113的订户身份编号505的验证响应174之后的预定时间段内使唯一识别111和订户身份编号505相关联。在所述预定时间段之后,服务商店190去除订户身份编号505到唯一识别111的分配,使得订户身份编号505可用于端点群组501中的具有不同的唯一识别(例如,112)的另一端点。在所述预定时间段之后,客户端服务器141不将提供到由订户身份编号505表示的账户的服务提供到端点群组501中具有唯一识别111、…、112的端点(例如,150)中的任一个,直到从安全服务器140接收到使订户身份编号505与端点群组501中的唯一识别111、…、112中的一个相关联的另一验证响应174为止。In some embodiments, the system is configured to associate the
当具有唯一识别111、…、112的端点竞争使用订户群组503中的订户身份编号(例如,505)时,服务商店190可控制订户群组503中的订户身份编号(例如,505)的使用分配。Service store 190 can control the use of subscriber identity numbers (eg, 505) in subscriber group 503 when endpoints with
例如,服务商店190可跟踪群组501中因为没有可用订户身份编号505而拒绝访问请求的端点,并基于所跟踪的优先级,对可用订户身份编号505的后续分配进行优先级排序。For example, service store 190 can track endpoints in group 501 that deny access requests because there are no available
例如,当订户身份编号505可供使用时,服务商店190可打开其中可以接收来自不同端点的访问请求的时间窗;当接收到群组501的多个访问请求时,具有在所述时间窗之前被拒绝的最早请求的端点可具有获得使用订户身份编号505的机会的最高优先级。For example, when
在一些实施方案中,端点群组501中的具有唯一识别111、…、112的端点可基于一或多个预定义规则来竞争使用订户群组503中的订户身份编号(例如,505)的机会。例如,在接收到对服务请求的拒绝之后,端点(例如,150)可等待进行后续请求的随机时间段。通过拒绝之后的等待时段的随机性,使用订户群组503获得服务访问的机会可以分配给需要服务的端点。In some embodiments, endpoints in endpoint group 501 with
在一些实施方案中,被临时分配订户身份编号505的端点150可通知客户端服务器141和/或安全服务器140将订户身份编号505从对端点150的分配中释放出来。例如,在端点150使用提供给订户身份编号505的服务完成通信之后,端点150可以将订户身份编号505返回到群组503中的订户身份编号池,此订户身份编号池可以分配给群组501中具有唯一识别112的另一个端点和/或由所述另一个端点使用。In some embodiments, the endpoint 150 temporarily assigned the
在一些实施方案中,系统可跟踪使用订户身份编号505的端点150的作用中活动。在非作用中时段之后,服务商店190可从唯一识别111中去除订户身份编号505的分配。In some embodiments, the system can track the active activity of endpoint 150 using
图23示出其中由安全服务器140结合验证请求173和/或验证响应174控制将订户身份编号505分配给唯一识别111的配置。替代地和/或组合地,客户端服务器141可以连接到服务商店190以实施分配和/或使用分配来提供服务,如图24所示。23 shows a configuration in which the assignment of the
在图24中,客户端服务器141耦合到服务商店190和活动跟踪器451。基于指示具有唯一识别111的端点150的真实性和订户身份编号505用于端点群组501的可用性的验证响应174,客户端服务器141可使服务商店190存储指示订户身份编号505到唯一识别111的临时分配的数据。In FIG. 24,
随后,客户端服务器141可使用活动跟踪器451确定是否从唯一识别111中去除订户身份编号505的分配。The
例如,在其中端点150不使用提供到由订户身份编号505表示的账户的服务的预定长度的非作用中时间段之后,客户端服务器141可使服务商店190更新订阅数据387,并终止订户身份编号505到唯一识别111的分配。For example, after a predetermined length of inactive time period in which endpoint 150 does not use services provided to the account represented by
例如,在从端点150接收指示或通知之后,客户端服务器141可使服务商店190终止订户身份编号505到唯一识别111的分配。For example, after receiving an indication or notification from endpoint 150 ,
在一些实施方案中,在订户身份编号505分配到唯一识别111后某一时间段,客户端服务器141可使服务商店190终止订户身份编号505到唯一识别111的分配。所述时间段可以是预定的,或根据从端点150接收的访问请求171确定。In some embodiments, the
图25示出根据一个实施例的用于促进一组端点中的订阅共享的方法。例如,图25的方法可以使用上文结合图23和24所论述的技术在具有结合图1到19论述的安全特征的系统中实施。Figure 25 illustrates a method for facilitating subscription sharing among a set of endpoints, according to one embodiment. For example, the method of FIG. 25 may be implemented in a system having the security features discussed in connection with FIGS. 1-19 using the techniques discussed above in connection with FIGS. 23 and 24 .
在框521处,服务器系统存储使端点群组501与至少一个订户标识符(例如,身份编号505)相关联的数据。端点群组501可具有由唯一识别111、…、112所识别的多个端点(例如,150)。At block 521, the server system stores data associating endpoint group 501 with at least one subscriber identifier (eg, identity number 505). Endpoint group 501 may have a plurality of endpoints (eg, 150 ) identified by
例如,服务器系统可包含存储存储器装置(例如,130)和/或其它服务器的秘密的安全服务器140,所述其它服务器例如服务商店190、活动跟踪器451、包存储库191、固件商店170和/或另一服务器。服务器系统可进一步包含图6中所示的客户端服务器141和/或卡服务器223。For example, the server system may include a
在框523处,服务器系统接收含有由配置在端点150中的存储器装置130生成的身份数据113的验证请求173。身份数据113使用其在端点群组501中的唯一识别111来识别端点150。At block 523 , the server system receives an authentication request 173 containing the
在框525处,响应于验证请求173,服务器系统至少部分地基于存储器装置130的秘密而确定身份数据113有效。At block 525 , in response to the verification request 173 , the server system determines that the
例如,框525中的操作可以类似于在框323、框343、框403、框423、框463和/或框485中执行的操作的方式执行。For example, the operations in block 525 may be performed in a manner similar to the operations performed in
在框527处,服务器系统确定订户标识符(例如,身份编号505)当前未分配给端点群组501中的任何端点。At block 527 , the server system determines that a subscriber identifier (eg, identity number 505 ) is not currently assigned to any endpoint in endpoint group 501 .
在框529处,服务器系统基于使端点群组501与订户标识符(例如,身份编号505)相关联的数据而向端点150分配订户标识符。所述分配使提供到由订户标识符(例如,身份编号505)表示和/或与其相关联的账户的服务能够提供给端点。At block 529, the server system assigns a subscriber identifier to endpoint 150 based on data associating endpoint group 501 with a subscriber identifier (eg, identity number 505). The assignment enables services provided to the account represented by and/or associated with the subscriber identifier (eg, identity number 505) to be provided to the endpoint.
例如,订户标识符(例如,身份编号505)表示在具有多个端点(例如,150)的网络(例如,225)中提供的服务的唯一订户,所述端点包含端点群组501中的多个端点以及不在端点群组501中的其它端点。For example, a subscriber identifier (eg, identity number 505 ) represents a unique subscriber to a service provided in a network (eg, 225 ) having a plurality of endpoints (eg, 150 ) including a plurality of endpoint group 501 endpoints and other endpoints that are not in endpoint group 501 .
例如,服务网络(例如,225)可配置成向端点提供服务,例如蜂窝通信连接、互联网连接、到用户计算机的连接、在线存储设施、在线计算资源、支付、交易或消息,或其任何组合。For example, a service network (eg, 225) may be configured to provide services to endpoints, such as a cellular communication connection, an Internet connection, a connection to a user's computer, online storage facilities, online computing resources, payments, transactions or messages, or any combination thereof.
例如,向端点150分配订户标识符(例如,身份编号505)包含将端点150配置成在服务网络(例如,225)中具有由订户标识符(例如,身份编号505)表示的唯一身份。For example, assigning a subscriber identifier (eg, identity number 505) to endpoint 150 includes configuring endpoint 150 to have a unique identity represented by the subscriber identifier (eg, identity number 505) in the serving network (eg, 225).
例如,服务网络(例如,225)可能需要网络(例如,225)中的不同端点具有由不同订户标识符(例如,身份编号505)表示的不同身份。由存储器装置130生成的身份数据113不包含订户标识符。存储器装置130和/或端点150的身份数据113和/或唯一识别111可以动态地分配给订户标识符(例如,身份编号505)或与其相关联,以为服务网络(例如,225)配置端点150。For example, a serving network (eg, 225) may require different endpoints in the network (eg, 225) to have different identities represented by different subscriber identifiers (eg, identity number 505). The
例如,向端点150分配订户标识符(例如,身份编号505)包含存储表示在某一时间段内订户标识符到端点的分配的数据。For example, assigning a subscriber identifier (eg, identity number 505) to endpoint 150 includes storing data representing the assignment of subscriber identifiers to endpoints over a certain period of time.
例如,服务器系统可在所述时间段之后去除表示订户标识符到端点的分配的数据,以中断端点150作为订户接收网络中的服务。在数据去除之后,端点150在服务网络(例如,225)中不再具有由订户标识符(例如,身份编号505)表示的订户身份。For example, the server system may remove data representing the assignment of subscriber identifiers to endpoints after the time period to interrupt endpoint 150 from receiving service in the network as a subscriber. After data removal, endpoint 150 no longer has the subscriber identity represented by the subscriber identifier (eg, identity number 505) in the serving network (eg, 225).
例如,服务系统可监测端点150在服务网络(例如,225)中作为订户接收服务时的活动;并且响应于检测到端点150在网络(例如,225)中作为订户接收服务时的非作用中时段,服务器系统可去除数据以将端点150重新配置成在服务网络(例如,225)中不具有由订户标识符(例如,身份编号505)表示的订户身份。For example, the service system may monitor the activity of endpoint 150 while receiving service as a subscriber in the service network (eg, 225); and in response to detecting an inactive period when endpoint 150 is receiving service as a subscriber in the network (eg, 225) , the server system may remove the data to reconfigure the endpoint 150 to not have the subscriber identity represented by the subscriber identifier (eg, identity number 505) in the serving network (eg, 225).
替代地,响应于来自端点150的消息或请求,可以执行将端点150从服务网络(例如,225)中配置为订户标识符(例如,身份编号505)释放出来。Alternatively, in response to a message or request from endpoint 150, the release of endpoint 150 configured as a subscriber identifier (eg, identity number 505) from the serving network (eg, 225) may be performed.
替代地,订户标识符(例如,身份编号505)从绑定到端点150的释放之后的时间段的长度可以是从将订户标识符(例如,身份编号505)分配到端点150的时间开始的预定长度。Alternatively, the length of the time period after the release of the subscriber identifier (eg, identity number 505 ) from binding to endpoint 150 may be predetermined from the time the subscriber identifier (eg, identity number 505 ) is assigned to endpoint 150 length.
替代地,所述时间段的长度可以在验证请求173中指定。Alternatively, the length of the time period may be specified in the verification request 173 .
例如,验证请求173从服务网络(例如,225)中的客户端服务器141接收。为了将端点150配置成具有由订户标识符(例如,身份编号505)表示的订户身份,安全服务器140可响应于验证请求173向客户端服务器141传输验证响应174。验证响应174配置成指示身份数据113的有效性及身份数据113与订户标识符(例如,身份编号505)的关联。For example, the authentication request 173 is received from the
一般来说,端点150可以使用不同服务的不同识别、在不同网络中和/或在不同上下文中来识别。端点150的每个识别可用于将端点150表示为特定于某一类型的服务、连接、通信等的群组中的许多的成员、订户、账户、经授权装置和/或实体。In general, endpoints 150 may be identified using different identities of different services, in different networks, and/or in different contexts. Each identification of an endpoint 150 may be used to represent the endpoint 150 as a number of members, subscribers, accounts, authorized devices and/or entities in a group specific to a certain type of service, connection, communication, or the like.
例如,端点150可配置成与分别用于其服务的不同客户端服务器141、…、143通信。端点150可以使用不同订户识别利用不同客户端服务器141、…、143识别。端点150的每一个订户识别表示由相应客户端服务器(例如,141、…、143)针对其对订户群体的服务辨识出的唯一订户和/或账户。For example, endpoint 150 may be configured to communicate with
例如,端点150可配置成与客户端服务器141通信以获得不同类型的服务。端点150的不同识别可用于将端点150表示为不同服务类型的订户。For example, endpoint 150 may be configured to communicate with
例如,端点150可被分配集成电路卡标识符251以用作智能卡、移动设备身份编号253以用作蜂窝通信装置、移动订户身份编号255以用作蜂窝连接服务的订户,等等。For example, an endpoint 150 may be assigned an integrated circuit card identifier 251 for use as a smart card, a mobile device identity number 253 for use as a cellular communication device, a mobile subscriber identity number 255 for use as a subscriber for cellular connectivity services, and the like.
安全服务器140可配置成使用配置在端点150中的存储器装置130的安全特征来管理端点150的身份。The
例如,第三方可以请求安全服务器140将账户中的订阅服务绑定到端点150的公共识别。由于识别可为公众所知,因此存在欺诈性使用公共识别的潜在风险。端点150的身份数据113可配置成包含公共识别。基于在端点150中配置的存储器装置130的唯一装置秘密(UDS)101,安全服务器140可以验证从端点150接收的身份数据113是真实的;因此,端点150具有由包含在身份数据113中的公共识别表示的身份。通过安全服务器140执行的验证,可以检测到将公共识别作为身份的欺诈性使用。For example, a third party may request the
安全服务器140可配置成管理公共识别与端点150的安全、动态绑定。例如,响应于来自应用域中的被授权方的请求,安全服务器140可以将唯一公共识别绑定到应用域的端点150。例如,可以基于跟踪在端点(例如,150)中配置的存储器装置的所有权权限来验证被授权方。每个应用域可以具有表示应用域中的单独身份的多个公共识别。安全服务器140每次将唯一的公共识别绑定到一个端点。
例如,响应于将公共识别绑定到端点150的请求,安全服务器140可以验证公共识别当前未绑定到另一个端点,并且可以使用表示所有者权限的加密密钥生成命令来操作存储器装置130,将公共识别存储在存储器装置130中作为用于生成存储器装置130和/或端点150的身份数据113的装置信息121的一部分。For example, in response to a request to bind the public identity to the endpoint 150, the
替代地,安全服务器140可以在应用域中存储将端点150与端点150的公共识别相关联的数据。响应于应用域中的验证请求173,安全服务器140验证端点150中提供的身份数据113,并在应用域中查找端点150的公共识别。可在验证响应174中提供公共识别。Alternatively, the
公共识别与端点150的安全、动态绑定可用于促进安全操作。例如,当端点150丢失/被盗时,端点150的所有者可以请求安全服务器140将丢失/被盗端点150的公共识别绑定到替换端点。一旦安全服务器140将丢失/被盗端点150的公共识别绑定到替换端点,订阅给丢失/被盗端点150的服务就转移到替换端点。任选地,丢失/被盗端点150的所有者可以请求将数据从丢失/被盗端点150转移到替换装置;并且在转移之后,所有者可以请求停用丢失/被盗端点150以最小化端点150的丢失/影响。Secure, dynamic binding of public identities to endpoints 150 can be used to facilitate secure operations. For example, when endpoint 150 is lost/stolen, the owner of endpoint 150 may request
图26示出根据一个实施例的用于管理端点识别的技术。26 illustrates a technique for managing endpoint identification, according to one embodiment.
例如,图26的技术可使用结合图1到5和9到10论述的存储器装置的安全特征在图1和/或6的系统中使用。例如,图26的技术可以与图14和15的固件商店、图15、23和24的服务商店190和/或图20的活动跟踪器451的服务一起使用。For example, the technique of FIG. 26 may be used in the systems of FIGS. 1 and/or 6 using the security features of memory devices discussed in connection with FIGS. 1-5 and 9-10. For example, the technique of FIG. 26 may be used with the firmware store of FIGS. 14 and 15 , the service store 190 of FIGS. 15 , 23 and 24 , and/or the service of activity tracker 451 of FIG. 20 .
在图26中,安全服务器140存储存储器装置130的唯一识别111和其唯一装置秘密101。此外,安全服务器140存储表征安装了存储器装置130的端点150的硬件、软件和/或数据配置的装置信息121。如在图2中,秘密密钥137是基于唯一装置秘密101和装置信息121。秘密密钥137供存储器装置130用于生成身份数据113的验证码133;并且安全服务器140验证验证码133是使用秘密密钥137生成的,其指示身份数据113是由具有唯一装置秘密101的存储器装置130生成的。In Figure 26, the
在图26中,安全服务器140可将唯一识别111绑定到端点150的公共识别541。例如,在公共识别541分配给应用域中的端点150之后,安全服务器140可将公共识别541存储为与存储器装置130和/或端点150的唯一识别相关联的装置信息121的部分。In FIG. 26 , the
例如,应用域可配置成用于蜂窝连接、智能卡处理、客户端服务器141的服务等。识别541可用于表示应用域中的一群端点中的端点150。识别541可用于将端点150表示为装置、成员、服务订户、账户、联系人等。For example, the application domain may be configured for cellular connectivity, smart card processing,
例如,在应用域中操作的客户端服务器141可以请求安全服务器140将公共识别541绑定到具有唯一识别111的端点150。在请求549中,客户端服务器141可以提供从端点150接收的身份数据113和要绑定到端点150的公共识别541。响应于请求549,安全服务器140通过确定身份数据113中的验证码133是否是使用具有唯一识别111的存储器装置130的秘密密钥137生成的来验证身份数据113。For example, a
在身份数据113的验证之后,安全服务器140可以将公共识别541添加到装置信息121,并使端点150中的存储器装置130更新543装置信息121。在更新543之后,存储器装置130具有用于其生成包含公共识别541的新身份数据113的新秘密密钥。例如,除了唯一识别111之外,新身份数据113中的消息131还可包含公共识别541。配置成防止对唯一识别111的欺诈性使用的存储器装置130的安全特征还可以防止对公共识别541的欺诈性使用。例如,当客户端服务器141接收到含有公共识别541的新身份数据113时,客户端服务器141可以请求安全服务器140验证新身份数据113。如果新身份数据113具有有效的验证码133,那么其由被分配公共识别541的端点150生成。After verification of the
安全服务器140可以以类似于端点150的固件的更新377和/或端点150中安装的包的修复385的方式更新543装置信息121。例如,安全服务器140可以生成命令155的验证码153,以将公共识别541存储在存储器装置130的存储器单元103中。使用表示操作存储器装置130的所有者权限的加密密钥145生成验证码153,所述所有者权限包含由存储器装置130的访问控制器109控制的用于在存储器装置130中执行命令155的权限。The
任选地,公共识别541与端点150的关联不需要生成新的秘密密钥来表示存储器装置130和/或端点150。公共识别541可以包含在用于生成使用秘密密钥137签名的验证码133的消息131中。验证码133的验证指示消息131中提供的公共识别541尚未改变;并且验证码133由安装在端点150中的存储器装置130签名。Optionally, the association of
任选地,跳过更新543;并且存储器装置130和/或端点150不存储公共识别541。安全服务器140存储将唯一识别111与公共识别541相关联的数据。在安全服务器140验证在验证请求中提供的身份数据113之后,安全服务器140可以查找与应用域相关的公共识别541,以查找在身份数据113的消息131中识别的唯一识别111,并在验证响应中提供公共识别541,方式类似于在图23所示的验证响应174中呈现订户身份编号505的方式。Optionally,
任选地,安全服务器140具有门户545,其允许计算机180提交请求547以将公共识别541与具有唯一识别111的端点150相关联。在门户545验证计算机180由端点150的授权所有者或用户操作之后,门户545可以与安全服务器140通信以更新唯一识别111的装置信息121。Optionally, the
在一个实施例中,端点150具有存储于存储器装置130中的包。当包从存储器装置130加载并在主机系统120中执行时,端点150可与服务器140通信以获得更新543。端点150和服务器140之间的通信可通过客户端服务器(例如,141)、固件商店170、服务商店190、活动跟踪器451或另一服务器(例如,门户545),也可不通过任何中间服务器。In one embodiment, endpoint 150 has packets stored in
例如,端点(例如,150)的制造商可使用计算机180配置端点(例如,150)并请求由制造商分配的识别(例如,541)绑定到端点(例如,150)。例如,此类公共识别可以是表示通信网络中的各个装置的移动设备身份编号(例如,253)。For example, a manufacturer of an endpoint (eg, 150) may use
例如,服务提供商可以将订户身份编号(例如,255)分配给提供商提供的服务的订户。当端点150的所有者或用户注册提供商的服务时,服务提供商可以使用计算机180请求将订户身份编号255与端点150绑定。For example, a service provider may assign subscriber identification numbers (eg, 255) to subscribers of services provided by the provider. When the owner or user of endpoint 150 registers for the provider's service, the service provider can use
图27示出根据一个实施例的用于管理端点的识别的方法。例如,图27的方法可以使用上文结合图26所论述的技术在具有结合图1到19论述的安全特征的系统中实施。Figure 27 illustrates a method for managing identification of endpoints, according to one embodiment. For example, the method of FIG. 27 may be implemented in a system having the security features discussed in connection with FIGS. 1-19 using the techniques discussed above in connection with FIG. 26 .
在框561处,服务器系统存储使在端点150中配置的存储器装置130的秘密(例如,101)、端点150的第一识别111和装置信息121相关联的数据。At block 561 , the server system stores data associating the secret (eg, 101 ) of the
例如,服务器系统可包含安全服务器140。任选地,服务器系统可进一步包含门户545、固件商店170、服务商店190、活动跟踪器451、包存储库191和/或另一服务器。在一些实施方案中,服务器系统可进一步包含图6中所示的客户端服务器141和/或卡服务器223。For example, the server system may include the
在框563处,服务器系统接收将第二识别541绑定到由第一识别111识别的端点150的请求(例如,547或549)。At block 563, the server system receives a request to bind the
例如,将第二识别541绑定到端点150的请求(例如,547或549)可以在服务器系统中从与端点150分开的计算机(例如,180或服务器141)接收和/或在所述计算机中发起。服务器系统配置成确定计算机是否具有将此类第二识别541附接到端点150的权限。如果是,那么服务器系统140可存储将第一识别111和第二识别541相关联的数据。For example, a request to bind the
在一个实施例中,将此类第二识别541附接到端点150的权限与操作计算机且具有存储器装置130的所有权(例如,作为制造商、零售商、服务提供商、端点150的终端用户)相关联的实体。In one embodiment, such a
例如,实体可使用计算机与端点150和/或存储器装置130通信以检索由存储器装置130生成的当前身份数据113。当前身份数据113包含第一识别111,并且可由服务器系统就来自存储器装置130的当前身份数据113是否真实进行验证。For example, an entity may use a computer to communicate with endpoint 150 and/or
例如,响应于请求,服务器系统可存储使第一识别111与第二识别541相关联的数据。For example, in response to the request, the server system may store data associating the
例如,服务器系统可更新第一识别111的装置信息121以包含第二识别541。For example, the server system may update the
例如,服务器系统可与端点150通信以更新存储于存储器装置130中的数据和/或在存储器装置130中存储第二识别541。For example, the server system may communicate with endpoint 150 to update data stored in
任选地,第二识别541可用作在存储器装置130中用于生成秘密密钥137的装置信息121的部分,其中秘密密钥137用于生成存储器装置130和/或端点150的身份数据113的验证码133。Optionally, the
任选地,第二识别541不改变秘密密钥137的生成。但是,第二识别541存储到存储器装置130的访问受控区中,并且包含在呈现于身份数据113中的消息131中(例如,作为数据C 127的部分)。Optionally, the
例如,响应于将第二识别541绑定到端点150的请求,服务器系统可以生成命令155的验证码153,并且使存储器装置130根据验证码153执行命令155。在接收到命令155和命令155的验证码153之后,存储器装置130的访问控制器109配置成使用表示在存储器装置130中执行命令155的权限的加密密钥(例如,访问控制密钥149)来验证命令155的验证码153。存储器装置130配置成响应于确定命令155的验证码153有效而执行命令155;在存储器装置130中执行命令155可将第二识别541存储在存储器装置130中以用于身份数据113的后续生成。例如,第二识别541可以存储为装置信息121的部分和/或用于在身份数据113的消息131中呈现。For example, in response to the request to bind the
例如,存储器装置在端点150中存储可执行的一组指令。所述一组指令可以是内容161的一部分,或者是端点的固件或操作系统的包441。存储器装置130配置成在允许端点150加载所述一组指令以供执行之前验证所述一组指令的完整性。由于所述一组指令经由存储器装置130受保护,因此服务器系统可以与执行所述一组指令的端点150可靠地通信,以使存储器装置130执行命令155。端点150和服务器系统之间的通信路径可以任选地通过客户端服务器141和/或任选地经由会话密钥263和对称加密受保护。For example, a memory device stores a set of instructions executable in endpoint 150 . The set of instructions may be part of the
在框565处,服务器系统接收含有由存储器装置130生成的身份数据113的验证请求173。身份数据113包含从在身份数据113中呈现的消息131生成的验证码133和至少部分地从秘密(例如,101)导出的加密密钥(例如,秘密密钥137)。At block 565 , the server system receives an authentication request 173 containing the
例如,在一些实施方案中,在身份数据中呈现的消息131含有第二识别541。任选地,当第二识别541被配置为装置信息121的部分时,用于对呈验证码133形式的消息131进行签名的加密密钥(例如,秘密密钥137)可以进一步基于第二识别541导出;替代地,加密密钥与第二识别541无关。For example, in some embodiments, the message 131 presented in the identity data contains the
在一些实施方案中,在身份数据113中呈现的消息131不包含第二识别541。In some embodiments, the message 131 presented in the
在框567处,服务器系统至少部分地基于存储器装置130的秘密(例如,101)而验证身份数据113的有效性。At block 567, the server system verifies the validity of the
例如,框567中的操作可以类似于在框323、框343、框403、框423、框463、框485和/或框525中执行的操作的方式执行。For example, the operations in block 567 may be performed in a manner similar to the operations performed in
在框569处,服务器系统响应于确定身份数据113有效而提供对验证请求173的验证响应174。验证响应174配置成指示身份数据113是由具有第二识别541的端点150生成的。At block 569, the server system provides an
例如,服务器系统可通过在存储于安全服务器140中的数据中查找与第一识别相关联的第二识别541或从身份数据113提取第二识别541来识别验证响应174中的第二识别541。替代地,服务器系统可指示身份数据113有效,包含在包含于身份数据113中的消息131中呈现的第二识别541。For example, the server system may identify the
图28示出计算机系统600的实例机器,其内可以执行用于使机器执行本文所论述的任何一或多个方法的一组指令。在一些实施例中,计算机系统600可对应于包含、耦合到或使用存储器子系统的主机系统,或者可用于执行安全管理器160的操作(例如,执行指令以执行对应于参考图1-27描述的安全服务器140和/或存储器装置130的安全特征的操作)。在替代实施例中,所述机器可以在LAN、内联网、外联网和/或互联网中连接(例如,联网)到其它机器。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的资格操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础设施或环境中的服务器或客户端机器操作。28 illustrates an example machine of a
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管示出单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器的集合单独地或共同地执行一组(或多组)指令以执行本文论述的方法中的任何一或多个。The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, network appliance, server, network router, switch or bridge, or capable of executing (sequentially or sequentially) otherwise) any machine that specifies a set of instructions for an action to be taken by the machine. Additionally, although a single machine is shown, the term "machine" should also be considered to encompass any collection of machines that, individually or collectively, execute a set (or sets) of instructions to perform any of the methods discussed herein. any one or more.
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)、静态随机存取存储器(SRAM)等),以及数据存储系统618,它们经由总线630(其可包含多个总线)彼此通信。The
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含经由网络620通信的网络接口装置608。Processing device 602 represents one or more general-purpose processing devices, such as microprocessors, central processing units, and the like. More specifically, 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 implementing other instruction sets , or a processor that implements a combination of instruction sets. Processing device 602 may also be one or more special purpose processing devices, such as application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), network processors, and the like. The processing device 602 is configured to execute instructions 626 for performing the operations and steps discussed herein.
数据存储系统618可包含机器可读媒体624(也被称为计算机可读媒体),在其上存储一组或多组指令626或体现本文中所描述的方法或功能中的任何一或多个的软件。指令626在由同样构成机器可读存储媒体的计算机系统600、主存储器604和处理装置602执行期间还可完全地或至少部分地驻存在主存储器604内和/或处理装置602内。机器可读媒体624、数据存储系统618和/或主存储器604可对应于存储器子系统。Data storage system 618 may include machine-readable media 624 (also referred to as computer-readable media) on which are stored one or more sets of instructions 626 or embody any one or more of the methods or functions described herein software. Instructions 626 may also reside entirely or at least partially within main memory 604 and/or within processing device 602 during execution by
在一个实施例中,指令626包含实施对应于安全管理器160(例如,参考图1-27描述的安全服务器140和/或存储器装置130的安全特征的操作)的功能性的指令。尽管在实例实施例中机器可读存储媒体624示出为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多个的任何媒体。术语“机器可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。In one embodiment, the instructions 626 include instructions that implement functionality corresponding to the security manager 160 (eg, the operation of the security features of the
一般来说,端点150、服务器(例如,安全服务器140、客户端服务器141或143或卡服务器223)可以是具有主机系统120和存储器子系统的计算系统。存储器子系统可包含媒体,例如一或多个易失性存储器装置、一或多个非易失性存储器装置(例如,存储器装置130)或这些都组合。In general, endpoint 150, a server (eg,
存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合物。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外廓DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。The memory subsystem may be a storage device, a memory module, or a mixture of storage devices and memory modules. Examples of storage devices include solid state drives (SSD), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash storage (UFS) drives, secure digital (SD) Cards and Hard Disk Drives (HDDs). Examples of memory modules include dual inline memory modules (DIMMs), small outline DIMMs (SO-DIMMs), and various types of non-volatile dual inline memory modules (NVDIMMs).
例如,计算系统可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。For example, a computing system may be a computing device, such as a desktop computer, laptop computer, web server, mobile device, vehicle (eg, airplane, drone, train, car, or other vehicle), with Internet of Things (IoT) Functional devices, embedded computers (eg, embedded computers contained in vehicles, industrial equipment, or networked business devices), or such computing devices that include memory and processing means.
计算系统的主机系统120耦合到一或多个存储器子系统。如本文中所使用,“耦合到”或“与……耦合”大体上是指组件之间的连接,此连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管是有线还是无线,包含电气、光学、磁性等连接。The
主机系统120可包含处理器芯片组(例如,处理装置118)和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,控制器116)(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统,例如以便将数据写入到存储器子系统和从存储器子系统读取数据。
主机系统120可以经由物理主机接口耦合到存储器子系统。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)接口、双倍数据速率(DDR)存储器总线接口、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双倍数据速率(DDR)接口、低功率双倍数据速率(LPDDR)接口,或任何其它接口。物理主机接口可用于在主机系统120和存储器子系统之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口,在存储器子系统通过PCIe接口与主机系统120耦合时访问组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统和主机系统120之间传递控制、地址、数据和其它信号的接口。一般来说,主机系统120可经由同一个通信连接、多个单独的通信连接和/或通信连接的组合访问一或多个存储器子系统。
主机系统120的处理装置118可以是例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些情况下,控制器116可称为存储器控制器、存储器管理单元和/或起始器。在一个实例中,控制器116控制通过耦合在主机系统120与存储器子系统之间的总线进行的通信。一般来说,控制器116可向存储器子系统发送期望访问存储器装置130的命令或请求。控制器116可进一步包含用于与存储器子系统通信的接口电路系统。接口电路系统可将从存储器子系统接收到的响应转换成用于主机系统120的信息。The processing device 118 of the
主机系统120的控制器116可与存储器子系统的控制器进行通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据以及其它此类操作。在一些情况下,控制器116集成在处理装置118的同一封装内。在其它情况下,控制器116与处理装置118的封装分开。控制器116和/或处理装置118可包含硬件,例如一或多个集成电路(IC)和/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器116和/或处理装置118可以是微控制器、专用逻辑电路系统(例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。The
存储器装置130可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。易失性存储器装置可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器组件的一些实例包含“与非”(或NOT AND)(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在其先前已进行擦除的情况下进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3D NAND)。Some examples of non-volatile memory components include "NAND" (or NOT AND) (NAND) type flash memory and write-in-place memory, such as three-dimensional crosspoint ("3D crosspoint") memory. Non-volatile memory crosspoint arrays can perform bit storage based on changes in bulk resistance in conjunction with stackable cross-grid data access arrays. In addition, in contrast to many flash-based memories, cross-point non-volatile memory can perform in-situ write operations, where non-volatile memory cells can be programmed while they have previously been erased. The NAND-type flash memory includes, for example, two-dimensional NAND (2DNAND) and three-dimensional NAND (3D NAND).
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含例如SLC、MLC、TLC、QLC、PLC或它们的任何组合的一或多个阵列。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分和/或PLC部分。存储器装置130的存储器单元可以分组为页,页可以指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)中,可以将页分组以形成块。Each of
尽管描述了非易失性存储器装置,例如3D交叉点型和NAND型存储器(例如,2DNAND、3D NAND),但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。Although non-volatile memory devices such as 3D cross-point and NAND-type memories (eg, 2DNAND, 3D NAND) are described,
存储器子系统控制器可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于在命令总线上由控制器116调度的命令)。存储器子系统控制器可包含例如一或多个集成电路(IC)和/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(例如,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一合适的处理器。The memory subsystem controller may communicate with the
存储器子系统控制器可包含处理装置(例如,处理器),其配置成执行存储在本地存储器中的指令。在所示的实例中,存储器子系统控制器的本地存储器包含嵌入式存储器,其配置成存储用于执行控制存储器子系统的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统与主机系统120之间的通信。The memory subsystem controller may include a processing device (eg, a processor) configured to execute instructions stored in local memory. In the example shown, the local memory of the memory subsystem controller includes embedded memory configured to store instructions for performing various processes, operations, logic flows and routines that control the operation of the memory subsystem, including handling Communication between the memory subsystem and
在一些实施例中,本地存储器可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器还可包含用于存储微码的只读存储器(ROM)。尽管一些存储器子系统具有存储器子系统控制器,但是其它存储器子系统不包含存储器子系统控制器,而是可以依赖于外部控制(例如,由外部主机或者由与存储器子系统分离的处理器或控制器提供)。In some embodiments, the local memory may include memory registers that store memory pointers, fetched data, and the like. Local memory may also include read only memory (ROM) for storing microcode. While some memory subsystems have a memory subsystem controller, other memory subsystems do not contain a memory subsystem controller, but may rely on external control (eg, by an external host or by a processor or control separate from the memory subsystem) provided by the device).
一般来说,存储器子系统控制器可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当的命令以实现期望的对存储器装置130的访问。存储器子系统控制器可负责其它操作,例如耗损均衡操作、垃圾数据收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)和物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器可进一步包含主机接口电路系统,用于经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成访问存储器装置130的命令指令,并将与存储器装置130相关联的响应转换成用于主机系统120的信息。In general, a memory subsystem controller may receive commands or operations from
存储器子系统还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统可包含可以从存储器子系统控制器接收地址并将地址解码以访问存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器)。The memory subsystem may also include additional circuitry or components not shown. In some embodiments, the memory subsystem may include a cache or buffer (eg, DRAM) and address circuitry (eg, a row decoder) that may receive and decode addresses from the memory subsystem controller to access
在一些实施例中,存储器装置130包含结合存储器子系统的存储器子系统控制器用于对存储器装置130的一或多个存储器单元103执行操作的本地媒体控制器。本地媒体控制器可用于实施加密引擎107和/或访问控制器109。外部控制器(例如,存储器子系统控制器或主机系统120的控制器116)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,它是与本地媒体控制器组合以用于相同存储器装置封装内的媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。In some embodiments,
存储器子系统控制器和/或存储器装置130可包含配置成提供上文所论述的安全特征的安全管理器160。在一些实施例中,存储器子系统控制器和/或存储器子系统中的本地媒体控制器可包含安全管理器160的至少一部分。在其它实施例中,或组合地,主机系统120中的控制器116可包含安全管理器160的至少一部分。例如,存储器子系统控制器、控制器116和/或安全服务器140可包含逻辑电路系统和/或在实施安全管理器160时执行指令。例如,存储器子系统控制器或主机系统120的处理装置118(例如,处理器)可配置成执行存储于存储器装置130中用于执行本文中所描述的安全管理器160的操作的指令。在一些实施例中,安全管理器160实施于安置在存储器子系统中的集成电路芯片中。在其它实施例中,安全管理器160可以是存储器子系统的固件、主机系统120的操作系统、装置驱动程序或应用程序的部分,或其任何组合。The memory subsystem controller and/or
先前详细描述的一些部分已经关于计算机存储器内的数据位的操作的算法和符号表示呈现。这些算法描述和表示是数据处理领域中的技术人员用来将他们的工作内容传达给本领域的其他技术人员的最有效方式。此处且一般来说,算法被设想为产生所需结果的操作的自一致序列。所述操作是需要物理量的物理操控的那些操作。通常但是不一定,这些量采取能够存储、组合、比较和以其它方式操控的电气或磁性信号的形式。已经证实,将这些信号称为位、值、元件、符号、字符、项、数字等等有时是方便的,主要是出于常用的原因。Some portions of the previous detailed description have been presented with respect to algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the most efficient means used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art. Here and generally, an algorithm is conceived as a self-consistent sequence of operations that produce a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便的标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The present disclosure may refer to computer systems that manipulate and transform data represented as physical (electronic) quantities within the registers and memory of a computer system into other data similarly represented as physical quantities within the computer system memory or registers or other such information storage systems or similar actions and processes of electronic computing devices.
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们分别耦合到计算机系统总线。The present disclosure also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such computer programs may be stored in computer-readable storage media such as, but not limited to, any type of disk, including floppy disks, optical disks, CD-ROMs and magneto-optical disks, read only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical cards, or any type of medium suitable for storing electronic instructions, are respectively coupled to the computer system bus.
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将从下文描述中呈现用于各种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用多种编程语言来实施如本文所描述的本公开的教示内容。The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the described methods. Structures for a variety of these systems will be presented from the description below. Furthermore, the present disclosure is not described with reference to any particular programming language. It should be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。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 processes in accordance with the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (eg, a computer). In some embodiments, machine-readable (eg, computer-readable) media include machine (eg, computer-readable) storage media such as read-only memory ("ROM"), random-access memory ("RAM"), magnetic disks Storage media, optical storage media, flash memory components, etc.
在本说明书中,为了简化描述,将各种功能和操作描述为由计算机指令执行或由计算机指令引起。然而,所属领域的技术人员将认识到,此类表达的意图是所述功能源自由一或多个控制器或处理器(例如,微处理器)执行计算机指令。替代地或组合地,所述功能和操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)来实施。可使用无软件指令的硬接线电路系统或结合软件指令实施实施例。因此,技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。In this specification, various functions and operations are described as being performed by or caused by computer instructions for simplicity of description. Those skilled in the art will recognize, however, that such expressions are intended to be that the functions originate from the execution of computer instructions by one or more controllers or processors (eg, microprocessors). Alternatively or in combination, the functions and operations may be implemented using special purpose circuitry, with or without software instructions, eg, using application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). Embodiments may be implemented using hardwired circuitry without software instructions or in conjunction with software instructions. Thus, the techniques are not limited to any specific combination of hardware circuitry and software, nor to any specific source of instructions executed by a data processing system.
在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。In the foregoing specification, embodiments of the present disclosure have been described with reference to specific example embodiments thereof. It will be apparent that various modifications may be made to the disclosed embodiments without departing from the broader spirit and scope of the embodiments set forth in the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
Claims (20)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163156238P | 2021-03-03 | 2021-03-03 | |
| US63/156,238 | 2021-03-03 | ||
| US17/485,231 US20220129391A1 (en) | 2020-10-26 | 2021-09-24 | Track Activities of Endpoints having Secure Memory Devices for Security Operations during Identity Validation |
| US17/485,231 | 2021-09-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115037495A true CN115037495A (en) | 2022-09-09 |
| CN115037495B CN115037495B (en) | 2025-04-25 |
Family
ID=83119740
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210199645.7A Active CN115037495B (en) | 2021-03-03 | 2022-03-02 | Track activity of endpoints with secure storage devices during authentication for security operations |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115037495B (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025083750A1 (en) * | 2023-10-16 | 2025-04-24 | 日本電信電話株式会社 | Environment adaptive device for resource equipment and network system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103763331A (en) * | 2008-06-30 | 2014-04-30 | 英特尔公司 | Method and system for platform-based trust verification services for multi-party verification |
| CN104601579A (en) * | 2015-01-20 | 2015-05-06 | 成都市酷岳科技有限公司 | Computer system for ensuring information security and method thereof |
| US20150271679A1 (en) * | 2014-03-19 | 2015-09-24 | Electronics And Telecommunications Research Institute | System and method of verifying integrity of software |
| CN106537403A (en) * | 2013-08-29 | 2017-03-22 | 利伯蒂沃特斯有限公司 | System for accessing data from multiple devices |
| US20200313890A1 (en) * | 2019-03-25 | 2020-10-01 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
-
2022
- 2022-03-02 CN CN202210199645.7A patent/CN115037495B/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103763331A (en) * | 2008-06-30 | 2014-04-30 | 英特尔公司 | Method and system for platform-based trust verification services for multi-party verification |
| CN106537403A (en) * | 2013-08-29 | 2017-03-22 | 利伯蒂沃特斯有限公司 | System for accessing data from multiple devices |
| US20150271679A1 (en) * | 2014-03-19 | 2015-09-24 | Electronics And Telecommunications Research Institute | System and method of verifying integrity of software |
| CN104601579A (en) * | 2015-01-20 | 2015-05-06 | 成都市酷岳科技有限公司 | Computer system for ensuring information security and method thereof |
| US20200313890A1 (en) * | 2019-03-25 | 2020-10-01 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025083750A1 (en) * | 2023-10-16 | 2025-04-24 | 日本電信電話株式会社 | Environment adaptive device for resource equipment and network system |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115037495B (en) | 2025-04-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12149517B2 (en) | Management of identifications of an endpoint having a memory device secured for reliable identity validation | |
| CN114491682B (en) | Virtual subscriber identification module and virtual smart card | |
| US12298917B2 (en) | Online security services based on security features implemented in memory devices | |
| US12039318B2 (en) | Endpoint customization via online firmware store | |
| JP2022527757A (en) | Generating the ID of a computing device using a physical duplication difficulty function | |
| US12481599B2 (en) | Monitor integrity of endpoints having secure memory devices for identity authentication | |
| US12075520B2 (en) | Cloud-service on-boarding without prior customization of endpoints | |
| US20220131847A1 (en) | Subscription Sharing among a Group of Endpoints having Memory Devices Secured for Reliable Identity Validation | |
| US11917059B2 (en) | Batch transfer of control of memory devices over computer networks | |
| US11811743B2 (en) | Online service store for endpoints | |
| US12457103B2 (en) | Server system to control memory devices over computer networks | |
| US20240430253A1 (en) | Track Activities of components in Endpoints having Secure Memory Devices via Identity Validation | |
| CN115037492B (en) | Method, system and computer storage medium for memory authentication | |
| CN115037495B (en) | Track activity of endpoints with secure storage devices during authentication for security operations | |
| CN115037496B (en) | Method and computing system for providing security services and related computer storage media | |
| US20220129391A1 (en) | Track Activities of Endpoints having Secure Memory Devices for Security Operations during Identity Validation | |
| CN115037493B (en) | Monitoring the integrity of endpoints with secure memory devices for authentication | |
| CN115037491B (en) | Subscription sharing in a group of endpoints with storage devices protected for reliable authentication | |
| CN115021949B (en) | Method and system for identity management of endpoints having memory devices protected for reliable authentication | |
| CN115021950B (en) | Online service store for endpoints | |
| CN115037494A (en) | Cloud service login without pre-customization of endpoints | |
| US20260046126A1 (en) | Server system to control memory devices over computer networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |
