Patent Description:
This disclosure relates to the field of device protection for the Internet of Things (IoT) based on the issuance of cryptographically signed artifacts by an enrollment service and a certificate authority based on identity proofing, and the use of the issued artifacts by device management services.

Cybersecurity poses a serious risk in the emerging field of Operation Technology (OT) to IoT devices deployed ubiquitously across the industrial, automotive and home automation sectors of industry. Tamper resistant devices across the supply chain require certificate based enrollment. Update services require high assurance cryptographic signatures for secure delivery of updates over the air or over the network to remote devices. Zero Touch Provisioning (e.g., the ability to configure a device without user interaction, typically during device installation) is required for device registration and device management services. Current approaches for device registration include manual provisioning using web portals using a user generated digital hash (digest) of an endorsement key or a certificate (X. <NUM>), or use of a service provider proprietary JSON Web Token (JWT) based on assigned device identifiers. Automation is achieved using scripts for batch processing for scalability of the operation. An alternate emerging approach is the use of private/permissioned Blockchain technology to enroll participants based on decentralized authentication and use of public key infrastructure (PKI) for cryptographic signatures. Alternate methods based on the use of Blockchain provide strong protections against data tampering, decentralized control for scalability, and public key cryptography and digital signatures to protect ownership of digital assets and transactions.

Limitations of such methods include inadequate proof possession of non-real-life identity, insecure identity proofing methods, proprietary methods for certificate management that are not protocol based, vendor lock-in, and only address the device enrollment use case, after which applications must deal with secure keys/storage and certificate management, that makes applications vulnerable. Other approaches provide signature-based secure change of ownership through the supply chain using group membership based key pairs. However, this requires a centralized broker in the workflow outside the information technology (IT) and OT domain of operation. Blockchain-based approaches lack non-repudiable device identity in communications; device enrollment lacks authoritative proof of identity, and lacks scalability at high volume of concurrent transactions.

Blockchain technology provides a method of decentralized control for scalability, data signing and signature verification, based on public key cryptography and digital signatures to protect ownership of digital assets and transactions. However, there may be no non-repudiable device identity in communications, the IoT device registration may be performed without authoritative proof of identity, and IoT devices may lack the required computational power to encrypt and decrypt data. Blockchain applications submit transaction requests to the network. A peer on the network processes the transaction request using a smart contract (codechain), updates a ledger, and emits a block of transactions for integration between systems.

Current approaches use various methods for device discovery, identification and registration. These methods either require user intervention on headless devices (i.e., devices that operate without an interactive user) or require administrative actions to pre-register a device prior to authoritative discovery and identification for registration. Some such methods include (a) discovery based on a network (IP) address and personalities (e.g., well known service ports, application protocol specific query inspection, etc.); (b) device pre-registration to apply enrollment rules by device type; (c) discovery of headless device using shared secrets; (d) enrollment policies by type of device; (e) trusted association between the appliance and a certificate authority wherein the issued certificate is associated with a communications address of the device; (f) use of a preexisting cryptographic key pair; (g) trust relationship between inside and outside endpoints and an intermediate assisting gateway device, wherein a device password or pre-registration of the device in a configuration database is required; (h) identifying by a service a network device using a unique identifier of the device; (i) identifying a first device connected to the network using a second user device, further wherein the first device acquires its IP over DHCP; (j) use of a HSM by an asset management system to create a secure endpoint between controller and appliances; and (k) use of a network connected assisting device to connect to another device by device identifier, which requires a preexisting certificate or token for another device.

Technologies that are based on the need for privacy protection and anonymity, such as for example the Intel® Enhanced Privacy ID (EPID) scheme, use a group public key and member unique private key for a member to prove to a verifier that it is a trusted member of a group without disclosing the identity of the member. However, such methods are limited to verification of message integrity in data exchanges and require a centralized issuer to create groups and manage memberships. While the EPID signature facilitates in an attestation based transfer of ownership from a silicon vendor to an IoT service provider, device lifecycle management requires administration, operation and maintenance based on device certificates and PKI for data confidentiality. <CIT> discloses techniques for providing enrollment services for various types of electronic devices in a communication network. The electronic devices may include devices associated with a user and headless devices not associated with any user. In certain embodiments, a device enrollment system is disclosed that controls the authentication and enrollment of both user devices and headless devices within a communication network. The device enrollment system detects a particular device within a communication , identifies a type of enrollment policy to be applied to the device based on a type of the device, applies a set of enrollment rules to the device in accordance with the enrollment policy and enrolls the device if the device satisfies one or more criteria specified by the enrollment rules. <CIT> describes various embodiments of systems, methods, and computer software for providing a secure access to a communication network. One embodiment comprises a system for providing secure access to a communication network. One such system comprises: a gateway for controlling access to a communication network; and a secure client program executed on a device to access the communication network via the gateway, the secure client program comprising logic configured to: communicate with the gateway via a data link layer; authenticate a network ID with the gateway via the data link layer; authenticate a device ID with the gateway via the data link layer; and authenticate user credentials with the gateway via the data link layer.

Other approaches based on blockchain provide for signing keys to protect data-at-rest, data signing, and signature verification between a client and server using a centralized broker and Representational State Transfer (REST) APIs to sign and verify data hashes. Such use of keyless signatures without relying on PKI or certificates is limited to message signing for data integrity. The signature scheme on the server requires periodic (monthly) renewal.

Alternate approaches based on use of a unique digital fingerprint of the device based on immutable hardware configuration, and algorithm processing that requires at least one user configurable parameter for filler code, is not a viable solution for headless devices or scalability across millions of distributed IoT devices. Using a private key based on the digital fingerprint of the device, and including the digital fingerprint of the device in the issued public certificate for the device, defeats privacy and anonymity protections, and exposes the device to reverse engineering and hacker attacks.

In sharp contrast to the above-mentioned methods, the system for device enrollment of the present disclosure does not require: (a) device pre-registration prior to device discovery and identification; (b) use of shared secrets; (c) pre-issued certificate for the device by a certificate authority; (d) inferred trust relationship with a user device; (e) connectivity of the inside endpoint to a TCP/IP network; or (f) use of a preexisting cryptographic key issued for the device, though a pre-shared secret may be optionally used to provide advanced proof of possession of identity. The disclosed methods of the disclosed system can, depending on implementation: (a) provide distributed control without requiring a centralized issuer for group and member key management; (b) require no centralized broker in adherence with the blockchain notion of decentralized control and PKI based strong protection for digital assets and transactions against data tampering; (c) provide for zero-touch provisioning with no user configurable parameter required to register a headless device; and (d) offer privacy protection with no requirement to include a device fingerprint in the device certificate. The endpoint device only requires an immutable device identifier that does not require preregistration with any enrollment service prior to discovery, and an associated gateway device (for non-IP endpoint devices only) with a local or remote secure element to serve as the root of trust anchor.

In an exemplary embodiment, the method of the disclosed system differentiates device enrollment and device registration as distinct workflows. Device enrollment is the first assignment of a device credential based on identity proofing of the device by a secure element that serves as the root of trust for the device. Device enrollment is required to add (or join) a device to a permissioned domain and blockchain. Device registration is the addition of an enrolled device (i.e., a post enrollment step) to a connected service such as, for example, a device management service, a policy service, or an update service. Device registration is required for onboarding a device into a managed network, for assignment or transfer of device ownership to a device management service, for policy based remote operations, administration, maintenance and provisioning functions. A device enrollment request may include device enrollment and device registration (for certificate-based enrollment) as an integrated workflow action. Similarly, a device disenrollment request may include device disenrollment and device deregistration (for certificate based enrollment) as an integrated workflow action.

Traditional IT threat models use a multi-layer defense mindset that pivots on threat intelligence, grammar, expressions and anomaly detection based on deviation from baseline. IoT requires a paradigm shift from detection to protection, with a pivot on the safety of systems. This requires anticipation of risks, preemptive countermeasures and application resiliency to exploits with embedded safety controls.

Data transport over a Local Area Network (LAN) or Wide Area Network (WAN) requires an Internet Protocol (IP) address assigned statically or dynamically by a network service. Legacy brownfield devices use point-to-point interfaces and link protocols (e.g., RS-<NUM>, RS-<NUM>, RS-<NUM>, Highway Addressable Remote Transducer (HART), Modbus, Controller Area Network (CAN) Bus, Aeronautical Radio (ARINC), General Purpose Input Output (GPIO)) and may not have an IP protocol stack for networking.

The disclosed method can provide significant improvements and efficiencies to retrofit legacy devices for protection and remote device management. Non-IP address assigned devices (hereinafter "non-IP devices") with resource constraints (e.g., memory, battery powered, etc.) and point-to-point connectivity, that are not accessible over IP networks, may be discovered for device enrollment and management. Non-IP devices, that do not have a network IP address, may be associated to a connected IP gateway device and vice versa for identification and certificate based management. Data transfer from/to non-IP devices, including device configuration, firmware or application software updates, may be proxied by a connected IP gateway device over IP (LAN or WAN) networks using device associated certificates for confidentiality and integrity. Dynamic association of non-IP devices to connected gateway devices may be monitored by a device management service. Connected endpoint and gateway devices may participate as blockchain applications to initiate non-IP or IP device discovery and associate authenticated transactions with network peers in the blockchain, based on orchestration rules (i.e., smart contract or codechains), and generate transaction records in distributed ledgers for device inventory and status management over the lifecycle of a device.

The disclosed method can provide significant process improvements and efficiencies for scalability with (a) automated registration of IP and non-IP devices during certificate based enrollment with configured policy services for device on-boarding; (b) automated deregistration of IP and non-IP devices during certificate revocation with configured policy services for device off-boarding; (c) policy based dynamic association (connector) with a plurality of certificate authorities for certificate issuance and revocation, wherein the connector's attributes may include at least the certificate cost and term; and (d) authentication of endpoint and connected gateway devices at the enrollment service to establish a multi-system trust chain, wherein the certificate request for the connected endpoint device is signed using the gateway device certificate, and further wherein the gateway device certificate is signed using an endorsement certificate of a underlying local secure element (root of trust) on the gateway device.

Any form of update to in-field devices based on commonly used secure transport protocols, such as for example Transport Layer Security (TLS) or Internet Protocol Security (IPsec), only provide in-transit data confidentiality by validation of the sender (server) and optionally the receiver (client) in peer-to-peer communications. There is no verification of supply chain integrity. Updates delivered to devices, such as firmware updates, configuration updates, firewall rules, software updates, operating system patches, etc. traverse from the provider, through distributors to the publishers. This flow path includes multiple hops of store and forward silos. There is no provision in such delivery mechanisms for high assurance of tamper resistant packaging of the update package across the supply chain. The disclosed method describes a scalable and automated approach to incorporate supply chain provenance for end-to-end data confidentiality and integrity based on use of innovative cryptographic techniques and authoritative identity proofing of all entities in the distribution chain.

The disclosed method for device identification for enrollment and registration, and secure updates is applicable to non-IP and IP endpoint devices and IP gateway devices. In industry parlance, endpoint devices may also be referred to as edge devices or sensors, and gateway devices may also be referred to as core devices.

An exemplary embodiment of the present disclosure provides a method of device identification for enrollment and registration of an endpoint device that is connected to a gateway device. The method uses a multi-stage verified boot loader, a discovery agent at the endpoint device, a discovery service at the gateway device, an enrollment service, a policy service, and a device management service. The method includes: sending, by the discovery agent on the endpoint device, to the discovery service on the gateway device, an authenticated identity beacon with an endpoint device profile. The method includes verifying, by the discovery service, authentication of the endpoint device and the endpoint device profile; and generating, by the discovery service, a certificate request for the endpoint device from a privacy certificate authority. The method includes sending, by the discovery service, the certificate request for the endpoint device to the enrollment service. The method includes processing, by the enrollment service, the certificate request for the endpoint device that is received to translate the certificate request for a certificate authority; and sending, by the enrollment service to the certificate authority, the translated certificate request for the endpoint device. The method includes receiving, by the enrollment service, a certificate for the endpoint device issued by the certificate authority; and processing, by the enrollment service, the received certificate for the endpoint device to translate the received certificate for the endpoint device to represent a privacy certificate authority. The method includes sending, by the enrollment service, the certificate for the endpoint device to the discovery service; and sending, by the enrollment service, a notification of endpoint device registration to the policy service. The method includes sending, by the policy service, a directive to add the endpoint device to a device management service; and storing, by the discovery service, the issued endpoint device certificate in a local certificate store.

An exemplary embodiment of the present disclosure provides a method of deregistering a device using an administration dashboard, an enrollment service, a policy service, and a device management service. The method includes initiating, from the administration dashboard by an authenticated and privileged user, an action to revoke a device certificate; and sending, by the enrollment service, a revocation command to a certificate authority. The method includes sending, by the enrollment service, a notification of device certificate revocation to the policy service. The method includes sending, by the policy service, to the device management service, a directive to remove the device.

An exemplary embodiment of the present disclosure provides a method of endpoint device enrollment using a discovery service on a gateway device as a blockchain application and an enrollment service in the network as a blockchain network peer. The method includes sending, by the discovery service, an enrollment request for the endpoint device to the enrollment service in a network. The method can include receiving, by the enrollment service, the enrollment request and authenticating the gateway device. The method includes generating, by the enrollment service, a certificate issued by a certificate authority for the endpoint device based on orchestration rules established for a network service of the network. The method includes sending, by the enrollment service, the certificate for the endpoint device to the gateway device. The method includes recording, by an update service, a request log for the endpoint device as a transaction record in the local ledger, and distributing blocks of transaction records to blockchain peers to maintain a distributed ledger to reproduce device history.

An exemplary embodiment of the present disclosure provides a method of updating a registered device using a development system and a release management system operated by an update provider, an update service operated by an update publisher, an update client on the device, and a local secure element on the device. The method includes building, on the development system, an update package including at least one of a firmware update, a software update, a configuration update, and an update script. The method includes signing, by the release management system, the update package using a provider signing key, wherein a first digital signature is included in the update package. The method includes encrypting, by the release management system, the signed update package using a publisher public key from a publisher certificate for the update publisher for initial encryption of the update package. The method includes sending, by the release management system, the signed and encrypted update package to the update service. The method includes requesting, by the update client on the device, an update package. The request can include a device manifest and at least the vendor identifier, the model number, and a device certificate for the device. The method includes preparing, by the update service, based on the received device manifest a set of signed update packages for the device based on the configured orchestration rules for the device. The method includes reencrypting and resigning, by the update service, the signed update package by decrypting the initial encryption using a publisher private key of the update publisher, signing the update package using a signing key of the update publisher, and finally encrypting the update package using a device public key from the device certificate, for final encryption of the update package. A second digital signature is included in the update package. The method includes sending, by the update service, the encrypted and doubly signed update package to the update client on the device. The method includes decrypting, by the update client, the encrypted update package using a device private key for the device. The method includes verifying, by the update client, the first and second digital signatures using the respective public keys from the update provider and publisher certificates issued by a certificate authority. In an exemplary embodiment, the update script is executed on the device to apply the update package to the device.

An exemplary embodiment of the present disclosure provides a method of updating a device using an update client on the device as a blockchain application, an update service in a network as a blockchain network peer, orchestration rules, and a ledger. The method includes sending, by the update client, a device request for an update package for the device from the update service in the network. The method includes receiving, by the update service, the device request and authenticating the device. The method includes preparing, by the update service, a signed and encrypted update package based on the orchestration rules established for a network service of the network. The method includes sending, by the update service, the signed and encrypted update package to the device. The method includes recording, by the update service, a request log for the device as an entry in the ledger, and distributing blocks of transaction records to blockchain peers to maintain a distributed ledger to reproduce history of the device.

An exemplary embodiment of the present disclosure provides a method of securing data transport between an endpoint device, that does not have an IP address, and a gateway device that is connected to the endpoint device using a discovery agent, a discovery service, an enrollment service, a policy service, and a device management service. The method includes sending, by the discovery agent on the endpoint device, to the discovery service on the gateway device, an authenticated identity beacon with a device profile of the endpoint device. The method includes verifying, by the discovery service, authentication of the endpoint device and the device profile; and generating, by the discovery service, a certificate request for the endpoint device from a privacy certificate authority to the enrollment service. The method includes processing, by the enrollment service, the certificate request for the endpoint device that is received to translate the certificate request for a certificate authority. The method includes sending, by the enrollment service to the certificate authority, a certificate request for the endpoint device; and receiving, by the enrollment service, a certificate for the endpoint device issued by the certificate authority. The method includes processing, by the enrollment service, the received certificate for the endpoint device to translate the received certificate for the endpoint device to represent a privacy certificate authority. The method includes sending, by the enrollment service, to the discovery service, the certificate for the endpoint device. The method includes sending, by the enrollment service, a notification of endpoint device registration to a policy service; and sending, by the policy service, to a device management service a directive to add the endpoint device. The method includes storing, by the discovery service, an issued endpoint device certificate in a local certificate store of the gateway device. The method includes receiving, by an application on the gateway device, data in transit from/to the endpoint device and performing cryptographic operations on the data using the certificate for the endpoint device from the local certificate store, for secure data transport.

The disclosure is best understood from the following detailed description when read in connection with the accompanying drawings. According to common practice, various features/elements of the drawings may not be drawn to scale. Common numerical references represent like features/elements. The following figures are included in the drawings:.

Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of exemplary embodiments are intended for illustration purposes only and are, therefore, not intended to necessarily limit the scope of the disclosure.

Although the disclosure is illustrated and described herein with reference to specific embodiments, the disclosure is not intended to be limited to the details shown herein. Rather, various modifications may be made in the details within the scope and range of equivalents of the claims and without departing from the scope of the disclosure.

A Certificate Authority (CA), for example a commercial CA, refers to a certificate service provider that issues certificates (such as, for example, a certificate based on the X. <NUM> standard). A privacy CA refers to a certificate service provider that participates in the identity proofing methods supported by secure elements (such as, for example, a Trusted Platform Module (TPM) based on the Trusted Computing Group (TCG) specifications, a network or cloud based Hardware Security Module (HSM) for device authentication based on a manufacturer issued endorsement key, or a device authentication artifact such as a Physically Unclonable Function (PUF) generated device unique identifier.

A device unique identifier may be an immutable static identifier or regenerated dynamically at power-on using a PUF engine on the device. In legacy devices, a digital fingerprint may comprise of a cryptographic signature based on device properties and attributes such as a programmatically readable device serial number, a One Time Programmable (OTP) hash of a private key in boot ROM, or hardware register(s) based unique digital values.

In an exemplary embodiment of the disclosed system, the gateway enrollment with the device management service may be performed using a gateway unique identifier, wherein the endorsement certificate of a secure element may be used to digitally sign the gateway certificate request. The issued gateway certificate may subsequently be used to digitally sign a certificate request for the connected device using the device unique identifier.

In yet another exemplary embodiment of the disclosed system, the issued gateway certificate may subsequently be used to digitally sign a certificate request for an application or service installed and executing at the gateway using an application or service principle name as the unique identifier.

Referring to <FIG> and <FIG>, the discovery agent <NUM> on the non-IP endpoint device <NUM> at power-on and optionally at a configured periodic interval sends an identity beacon <NUM> over a communications interface <NUM> to a discovery service <NUM> on the connected IP gateway device <NUM>. The communications interface <NUM> may be a serial, parallel, bus, USB interface, etc. At step <NUM>, the discovery service <NUM> receives the identity beacon <NUM> via an appropriate interface driver on the gateway device <NUM>. At step <NUM>, the discovery service <NUM> performs device authentication and profiling <NUM> to verify the integrity of the identity beacon <NUM> and device profile <NUM> including at least the endpoint device identifier <NUM>. At step <NUM>, the discovery service retrieves an immutable identifier for the gateway device <NUM> from the gateway profile <NUM> that includes at least the gateway identifier <NUM>, type, make and model of the gateway device. At step <NUM>, the discovery service <NUM> builds and sends a certificate request <NUM> for the endpoint device <NUM> that includes at least the endpoint device profile <NUM> and the gateway device profile <NUM>, to the enrollment service <NUM>. At step <NUM>, the enrollment service <NUM> responds with a certificate issued by a certificate authority for the endpoint device <NUM> with the endpoint device profile <NUM> and connected gateway profile <NUM> as extended attributes. At step <NUM>, the issued certificate for the connected endpoint device <NUM> is stored in the local certificate store <NUM>.

Referring to <FIG>, at step <NUM> the non-IP endpoint device <NUM> initiates a data exchange with a connected service <NUM> via the communications interface <NUM> on the connected IP gateway device <NUM>. At step <NUM>, the device data <NUM> is received by a client application <NUM> that serves as a proxy service to forward data exchanges between the endpoint device <NUM> and the connected service <NUM>. At step <NUM>, the certificate associated with the connected endpoint device <NUM> is retrieved by the client application <NUM> from the local certificate store <NUM>. The retrieved certificate may be used at step <NUM> for mutual authentication to establish secure communications with a connected service <NUM>, or at step <NUM> to request an update package from an update service <NUM> for secure update.

Referring to <FIG> and <FIG>, at step <NUM>, the update client <NUM> on the gateway device <NUM> requests an update package from the configured update service <NUM>. The update package request includes the device certificate, for either the connected endpoint device <NUM> or the gateway device <NUM>, and associated device profile <NUM>, <NUM> that includes at least the identifier, type, make and model of the device.

Referring to <FIG>, at step <NUM> the device management service <NUM> queries the gateway device <NUM> for certificates issued to connected non-IP endpoint devices.

Referring to <FIG> and <FIG>, at step <NUM> the enrollment service <NUM> sends a notification of endpoint device registration to the policy service <NUM>. At step <NUM>, the policy service <NUM> sends a directive to add the endpoint device <NUM> to the device management service <NUM>. At step <NUM>, the enrollment service <NUM> sends a certificate request for the endpoint device <NUM> to the certificate authority <NUM>; processes the received certificate for the endpoint device <NUM> to translate the received certificate (received by the enrollment service <NUM> from the certificate authority <NUM>) to represent a privacy certificate authority; and sends the certificate for the endpoint device <NUM> to the discovery service <NUM>. A secure element <NUM> (e.g., a TPM, etc.) may support advanced proof of possession of an identity (i.e., a secret) that must be utilized by a privacy CA to encrypt the issued certificate, for example, by using the public key of the secure element <NUM> which may only be decrypted using the corresponding private key. Alternate methods may include using a symmetric key generated using a key derivation function and a protected seed. Therefore, unless the secure element <NUM> on the endpoint device <NUM> is truly in possession of the secret, the certificate cannot be decrypted by the secure element <NUM>. Commercial CA's <NUM> may not support such a mechanism. Therefore, a translation can be performed at the enrollment service <NUM> to serve as a proxy service between the discovery service <NUM> and the commercial CA <NUM>. The commercial CA <NUM> issues the certificate and the enrollment service <NUM> prepares a response message with contents that include the issued certificate encrypted to support advanced proof of possession of identity.

Referring to <FIG>, at step <NUM> the image signer <NUM>, based on a signing specification <NUM>, generates a public-private asymmetric key pair to digitally sign the program image <NUM> to generate the signed program image <NUM>. At step <NUM>, the public key associated with the generated key pair is included in a multi-stage verified boot loader <NUM>. At power-on of the endpoint device <NUM>, at block <NUM>, the first stage boot loader executes and transfer control to the next stage multi-stage verified boot loader <NUM>. At step <NUM>, the multi-stage verified boot loader <NUM> invokes the device profiler <NUM>. At step <NUM>, an endpoint device identifier is generated by the device profiler <NUM> based on a plurality of indicators on the endpoint device <NUM> such as, for example, an endpoint address on a data bus or a one-time programmable serial number in non-volatile storage on the endpoint device <NUM>. At step <NUM>, a device profile <NUM> that includes at least the identifier, type, make and model of the endpoint device <NUM> is signed using the public key <NUM> of an asymmetric key pair by the profile send function <NUM>. At step <NUM>, the signed device profile <NUM> is transmitted over the communications interface <NUM> to the connected gateway IP device <NUM> over a communications link such as, for example, a serial RS-<NUM>, RS-<NUM>, RS-<NUM>, CAN Bus, Modbus, HART, GPIO, Universal Serial Bus (USB) interface, etc..

Referring to <FIG>, at step <NUM>, the image verifier <NUM> is executed by the multi-stage verified boot loader <NUM>. At step <NUM>, the image verifier <NUM> regenerates and verifies the digital signature of the signed program image <NUM>. Based on successful verification, the signed program image is loaded into memory and executed.

Referring to <FIG> and <FIG>, at step <NUM>, the signed device profile <NUM> is received as an identity beacon <NUM> over physical interface <NUM> on the gateway device <NUM>. At step <NUM>, the device profile <NUM> is processed by the profile receive function <NUM>. At step <NUM>, the discovery service <NUM> uses the profile verify function <NUM> to verify the integrity of the signed device profile <NUM> using the associated private key <NUM>. The discovery service <NUM> associates the device profile <NUM> for the endpoint device <NUM> connected to the physical communications interface <NUM>.

In one exemplary embodiment of the disclosed system, referring to <FIG> at step <NUM> the image signer <NUM> uses a secure element <NUM> such as, for example, a trusted platform module (TPM), network hardware security module (HSM), cloud HSM, etc. to generate the signing key pair, wherein the private signing key is protected within the secure element <NUM>.

In one exemplary embodiment of the disclosed system, the multi-stage verified boot loader <NUM> may use multiple public keys and the image signer <NUM> may use multiple equivalent signing keys to generate multiple digital signatures using the signing specification <NUM> for the signed program image <NUM>. This method protects the endpoint device <NUM> (or gateway device <NUM>) from lost and/or stolen private keys by requiring multiple signing keys to be compromised, providing a countermeasure for rapid mitigation. The use of the multiple signing keys may be implemented as a logical 'AND' operation for enhanced protection against signed program image <NUM> in-field updates signed using a compromised signing key, or as a logical 'OR' operation for redundancy and high availability of mission critical systems. In the absence of certificate-based validation of public keys, the logical 'AND' and 'OR' operations on multiple key pairs provides effective countermeasures to block verification based on compromised keys. Compromise of an issued PKI public key may be engineered using techniques such as, for example, a published vulnerability described as the Return of the Coppersmith Attack (ROCA).

In yet another exemplary embodiment of the disclosed system, the signing specification <NUM> for the multi-stage verified boot <NUM> may require verification of only, and at least two of, the digital signatures present in a signed program image <NUM> with a loose placement order, and use of different signing specifications for each key pair for uniqueness. This method enables the publisher of the signed program image <NUM> to update the device without use of a compromised public key on the device until the compromised public key embedded with the multi-stage verified boot loader <NUM> is replaced (i.e., key renewal).

In yet another exemplary embodiment of the disclosed system, the signing specification <NUM> for the multi-stage verified boot loader <NUM> may require an ordered list of digital signatures for the signed program image <NUM> to match a strict placement order of the public keys in the multi-stage verified boot loader <NUM> and use of different signing specifications for each key pair for uniqueness, for protection against potential abuse with just one compromised public-private key pair. Impersonation of a signed program image <NUM> update using the compromised signing key is protected by such a countermeasure requiring use of the logical 'AND' operation and a strict placement order by the signing specification <NUM>.

The signed program image <NUM> to be verified at block <NUM> may be a first stage boot loader, a next stage (e.g., secondary, etc.) boot loader or an operating system (OS) loader on the device. The multi-stage verified boot loader <NUM> at block <NUM> may be injected at any stage of the boot sequence, beginning as early as a boot ROM on the device that may verify and load the OS. The multi-stage verified boot loader <NUM> may be injected into a boot sequence (or chain) to forward verify a plurality of subsequent stage boot loaders, images, configuration and data files without requiring any modification to the subsequent stage boot loaders.

Referring to <FIG>, <FIG> and <FIG>, at step <NUM>, the discovery service <NUM> on the gateway device <NUM> sends an enrollment request for the endpoint device <NUM> over secure transport, with enrollment service <NUM> one-way certificate verification including the endpoint device profile <NUM> and the gateway device profile <NUM> to the enrollment service <NUM>. At step <NUM>, the enrollment service <NUM> performs gateway device <NUM> and endpoint device <NUM> authentication, and enrollment request validation based on the configured orchestration rules <NUM>. The device authentication may be performed using X. <NUM> certificates or JWT based methods. At step <NUM>, the enrollment service <NUM> generates a PKI public-private key pair using a remote secure element <NUM>. At step <NUM>, the generated public key associated with the endpoint device <NUM> is sent to the discovery service <NUM> over secure transport. The private key associated with the endpoint device <NUM> is stored securely within the remote secure element <NUM>. At step <NUM>, the public key associated with the endpoint device <NUM> is stored in the local key store <NUM> for encryption or signing by the endpoint device <NUM>, or for secure update of the endpoint device <NUM> at step <NUM>.

In one exemplary embodiment of the disclosed system, a network or cloud based HSM may be configured as the remote secure element <NUM>.

In another exemplary embodiment of the disclosed system, at step <NUM> a transaction record of the device enrollment may be added by the enrollment service <NUM> to a local ledger <NUM> that includes a database function <NUM>. At step <NUM>, the local ledger <NUM> emits an event <NUM> that represents a block of device enrollment transactions for integration with applications in a blockchain.

In yet another exemplary embodiment of the disclosed system, at step <NUM> the enrollment request may be for the gateway device <NUM>. At step <NUM>, the public key associated with the gateway device <NUM> is stored in the local key store <NUM> for encryption or signing by the gateway device <NUM>, or for secure update of the gateway device <NUM>.

Referring to <FIG>, <FIG>, <FIG>, and <FIG> at step <NUM> the discovery service <NUM> at step <NUM> generates a PKI asymmetric key pair using a local secure element <NUM> to protect the private key of the key pair. At step <NUM>, the discovery service <NUM> sends a certificate signing request (CSR) for the device that includes the endpoint device profile <NUM> and the gateway device profile <NUM>. The CSR may include an endorsement public key or certificate of the local secure element <NUM> as proof of possession of the private key to decrypt a certificate encrypted by a certificate authority <NUM> using the endorsement public key. At step <NUM>, the enrollment service <NUM> performs gateway device <NUM> and endpoint device <NUM> authentication, and enrollment request validation based on the configured orchestration rules <NUM>. At step <NUM>, the enrollment service <NUM> uses a connector to request one of a plurality of certificate authorities <NUM> for a certificate for the device, based on the configured connector attributes, for example, the cost, certificate type, certificate provider, etc. At step <NUM>, the certificate authority (CA) issued endpoint device certificate, which may include at least the endpoint device profile <NUM> and connected gateway device profile <NUM> as extended attributes, is sent from the enrollment service <NUM> to the discovery service <NUM> in the gateway device <NUM>. At step <NUM>, the discovery service <NUM> stores the received endpoint device certificate in the local certificate store <NUM> to provide secure data transport (at step <NUM>) and to request an update package (at step <NUM>) for the endpoint device <NUM>.

In another exemplary embodiment of the disclosed system, at step <NUM> a transaction record of the device enrollment may be added by the enrollment service <NUM> to a local ledger <NUM> that includes a database <NUM> that performs a database function. At step <NUM>, the ledger <NUM> emits an event <NUM> that represents a block of device enrollment and registration transactions for integration with applications in a blockchain.

Referring to <FIG> and <FIG>, at step <NUM>, the enrollment service <NUM> sends a notification of device enrollment through an API or publishes over a message bus interface, with at least the endpoint device profile <NUM> and issued endpoint device certificate, to the policy service <NUM>. At step <NUM>, the policy service <NUM> adds the device to the device management service <NUM> through an API or publishes over a message bus interface.

Referring to <FIG>, <FIG>, <FIG>, and <FIG>, an update provider <NUM> includes a development system <NUM> and a release management system <NUM>; and an update publisher <NUM> includes an update service <NUM>, a local ledger <NUM>, orchestration rules <NUM> and event <NUM>; and an endpoint device <NUM> or gateway device <NUM> includes an update client <NUM> and a local secure element <NUM>. At step <NUM>, a developer at a development system <NUM> builds an unsigned update package <NUM> from package elements <NUM> that include an update script and a plurality of component updates such as, for example, firmware updates, software updates, configuration updates, operating system patches/updates, device policies, etc. At step <NUM>, the unsigned update package is processed by a release manager at a release management system <NUM> and stored in a local registry (e.g., a database, etc.). The release management system <NUM> builds a signed and encrypted update package, wherein the signing is performed using the provider signing key <NUM> and the encryption is performed using a publisher certificate <NUM>. At step <NUM>, the update service <NUM> of an update publisher <NUM> procures a signed and encrypted update package, encrypted using the update publisher's <NUM> public key and stores it in a local registry (e.g., a database, etc.). The update provider <NUM> may be configured to build signed and encrypted packages for a plurality of update publishers <NUM>. At step <NUM>, the update service <NUM> uses the provisioned orchestration rules <NUM> to configure the update packages to the designated device classes by a plurality of device attributes such as, for example, the device type, make, model, vendor identifiers, etc. At step <NUM>, the update client <NUM> at gateway device <NUM>, either as self or on behalf of a connected endpoint device <NUM>, sends a request for an update package to the update service <NUM>. The request includes at least the device certificate (i.e., the encryption certificate of the endpoint device <NUM> or the gateway device <NUM>) with the device profile (e.g., endpoint device profile <NUM> or connected gateway device profile <NUM>) as extended attributes. The device request may also include a device manifest that is digitally signed using the device signing key (i.e., associated with a device signing certificate also included in the device request for the update service to verify the digital signature) wherein the device manifest is a list of currently installed update packages based on prior (historic) interactions with the update service. This step protects against potential Man-In-The-Middle (MITM) attacks, impersonation attacks to block distribution of legitimate update packages to the device, and/or interception of update packages for reverse engineering to exploit vulnerabilities. At step <NUM>, the requested update package is re-encrypted using the received device certificate and re-signed using the publisher signing key <NUM> by the update service <NUM>.

In another exemplary embodiment of the disclosed system, at step <NUM>, a transaction record for the device update is generated that includes at least the signed and encrypted device request log, and stored in the local ledger <NUM> that includes a database function <NUM>. At step <NUM>, the local ledger <NUM> emits an event <NUM> that represents a block of device update transactions for integration with applications in a blockchain. At step <NUM>, the update client <NUM> first verifies the integrity of the received update package using the public key from the provider certificate <NUM> and the public key from the publisher certificate <NUM>. At step <NUM>, the update client <NUM> decrypts the received update package using the private key of the endpoint device <NUM> (or gateway device <NUM> for update of self) and the local secure element <NUM>.

In one exemplary embodiment of the disclosed system, a plurality of devices may be configured to share the device certificate and associated private key. The update service <NUM> may in such configurations cache the generated update package at step <NUM> using a hash of the device certificate for performance optimization and scalability of updates to a large number of devices.

Referring to <FIG>, <FIG>, <FIG>, and <FIG>, an administrator <NUM> at the administration dashboard <NUM> performs an action for the deregistration and disenrollment of a registered and enrolled endpoint device <NUM> or gateway device <NUM>. At step <NUM>, the administration dashboard <NUM> sends a certificate revocation request for a device certificate to the enrollment service <NUM>. At step <NUM>, the enrollment service <NUM> performs administrator authentication and revocation request validation based on the configured orchestration rules <NUM>. At step <NUM>, the enrollment service <NUM> sends a certification revocation request over a connector to the issuing certificate authority <NUM>. At step <NUM>, the enrollment service <NUM> sends a notification of device disenrollment through an API or a publish over a message bus interface to the policy service <NUM>. At step <NUM>, the policy service <NUM> removes the device from the device management service <NUM> through an API or a publish over a message bus interface.

In another exemplary embodiment of the disclosed system, at step <NUM>, a transaction record of the device disenrollment may be added by the enrollment service <NUM> to a local ledger <NUM> that includes a database function <NUM>. At step <NUM>, the ledger <NUM> emits an event <NUM> that represents a block of device disenrollment and deregistration transactions for integration with applications in a blockchain.

Referring to <FIG>, entities and entity relationships to orchestrate a secure device update on an endpoint device <NUM> or gateway device <NUM> are illustrated. The connector <NUM> between any two entities denotes a one-to-many relationship. Table <NUM> (below) describes the entity objects and attributes.

Referring to <FIG>, <FIG> and <FIG>, the workflow to orchestrate a secure update on an endpoint device <NUM> or gateway device <NUM> is illustrated. At step <NUM>, a developer <NUM> of provider <NUM> builds an update package. At step <NUM>, a release manager of provider <NUM> signs the update package using the provider private key and encrypts the update package using a publisher public key to build a provider package <NUM>. At step <NUM>, an administrator of the update service <NUM> operated by publisher <NUM> approves the provider package <NUM>. At step <NUM>, the administrator defines device types <NUM> and further, at step <NUM>, provisions devices <NUM> to belong to a device type <NUM>. At step <NUM>, the administrator decrypts the provider package, re-signs the update package using the publisher private key (preserving the first signing by the provider at step <NUM>), and re-encrypts the update package using the publisher public key for secure storage. The preserved first signing by the provider offers tamper protection in the supply chain workflow. At step <NUM>, the administrator of the update service <NUM> associates the publisher update package <NUM> to device type <NUM>. At step <NUM>, the device <NUM> sends a signed request that includes the device certificate, for a publisher update package <NUM> to the update service <NUM>. At step <NUM>, the update service <NUM> decrypts the publisher update package using the publisher private key and re-encrypts the update package using the device public key extracted from the received device certificate. At step <NUM>, the update service <NUM> generates a transaction record that includes at least the signed and encrypted device request log, for device request storage <NUM> in a local ledger <NUM>.

Referring to <FIG>, entities and entity relationships to orchestrate an enrollment of an endpoint device <NUM> or gateway device <NUM> are illustrated. The connector <NUM> between any two entities denotes a one-to-many relationship. Table <NUM> (below) describes the entity objects and attributes.

Referring to <FIG>, the workflow to orchestrate an enrollment of an endpoint device <NUM>, a gateway device <NUM> or an application on an enrolled device is illustrated. At step <NUM>, a device <NUM> sends an enrollment request that includes a unique device identifier, to the enrollment service <NUM>. At step <NUM>, the enrollment service <NUM> performs device authentication and may optionally validate the enrollment request with a domain server <NUM> associated with a certificate authority. At step <NUM>, the enrollment service sends a device enrollment request to a certificate authority service <NUM> through an API or publishes over a message bus interface. At step <NUM>, the certificate authority service <NUM> generates a device certificate <NUM>, and at step <NUM>, the device certificate <NUM> is issued to the device <NUM> by the enrollment service <NUM>.

In one exemplary embodiment of the disclosed system, at step <NUM>, an application <NUM> on device <NUM> sends an enrollment request, that includes a unique identifier based on an application (or service) principal name, to the enrollment service <NUM>. At step <NUM>, the enrollment service <NUM> performs application authentication with a domain server <NUM> associated with the enrollment domain. At step <NUM>, the enrollment service sends an application enrollment request to a certificate authority service <NUM> through an API or publishes over a message bus interface. At step <NUM>, the certificate authority service <NUM> generates an application certificate <NUM>, and at step <NUM>, the application certificate <NUM> is issued to the application <NUM> by the enrollment service <NUM>.

Referring to <FIG> and <FIG>, illustrated is a workflow to integrate the device enrollment and secure update operations on an endpoint device <NUM> or a gateway device <NUM> through integration of the enrollment service <NUM> and the update service <NUM>, respectively, with a cloud service <NUM>. The cloud service provider may be public, private or community cloud operator and the service may be offered as a Software-as-a-Service (SaaS) or Platform-as-a-Service (PaaS) solution. IoT devices may register directly with the cloud service <NUM> for enrollment and updates services. The cloud service <NUM> may provide API based connectors for third-party enrollment and updates services.

In one exemplary embodiment of the disclosed system, referring to <FIG> and <FIG> at step <NUM>, the enrollment service <NUM> sends a register (or deregister) device notification to the cloud service <NUM> to onboard (or offboard) a cloud connected device. At step <NUM>, the enrollment service <NUM> notifies a policy service <NUM> and, at step <NUM>, the policy service adds or removes the device to or from a device management service <NUM> through an API or publishes over a message bus interface.

In yet another exemplary embodiment of the disclosed system, referring to <FIG>, <FIG>, and <FIG> at step <NUM>, an update client <NUM> at an endpoint device <NUM> or gateway device <NUM> sends a request, including at least the device certificate, for an update package to the cloud service <NUM>. At step <NUM>, the cloud service <NUM> may forward the received request for an update package from the device to the update service <NUM>. In an alternate method, the cloud service may preload, and cache signed and encrypted update packages for a plurality of device types. At step <NUM>, the update service <NUM> sends the signed and encrypted update package for the device to the cloud service <NUM> to forward to the device (at step <NUM>).

In an exemplary embodiment of the disclosed system, an endpoint device <NUM> or gateway device <NUM> may use a plurality of update services associated with multiple update publishers <NUM> to request multiple update provider <NUM> update packages.

In an exemplary embodiment of the disclosed system, transaction records <NUM>, <NUM>, <NUM>, <NUM> in local ledgers <NUM> are distributed to the network peers and chained using a hash of the signed and encrypted device request log of an endpoint or gateway device by the enrollment service <NUM> or update service <NUM>. Further, the transaction records in the distributed ledger in the blockchain provide a reproducible history of device and service transactions for cross-domain traceability across the supply chain of update package providers <NUM> and publishers <NUM>.

In an exemplary embodiment of the disclosed system, a plurality of intermediate publishers may serve as distributors of update packages, wherein each intermediate publisher signs the update package.

In an exemplary embodiment of the disclosed system, the enrollment service <NUM> integrates via APIs with cloud services using a digital hash digest of an endpoint device <NUM> or gateway device <NUM> certificate to enroll the device. Further, the update service <NUM> integrates via APIs with cloud services to deliver update packages to a device enrolled with the cloud service.

In an exemplary embodiment of the disclosed system, the local secure element <NUM> may be, for example, a Trusted Platform Module (TPM), a Subscriber Identity Module (SIM), a Microcontroller based cryptographic engine with secure key generation and key storage capabilities, etc. The remote secure element <NUM> may be a network or cloud based HSM.

Referring to <FIG> and <FIG>, at block <NUM>, the multi-stage verified boot loader <NUM> (embodiment <NUM> of block <NUM>) verifies the digital signatures of program image <NUM> (embodiment <NUM> of block <NUM>). At steps <NUM>, <NUM>, <NUM> the digital signatures A, B and C are verified using keys A, B and C respectively, as an example of a plurality of keys and digital signatures that may be verified. This method illustrates a logical AND operation wherein the authentic publisher signs the program image using a plurality of signing keys. At block <NUM>, the multi-stage verified boot loader <NUM> (embodiment <NUM> of block <NUM>) verifies the digital signatures of program image <NUM>, <NUM>, or <NUM> (embodiments <NUM> of block <NUM>). At steps <NUM>, <NUM> and <NUM> the digital signatures A, B or C are verified using key A, B or C, as an example of a plurality of keys and digital signatures that may be verified. This method illustrates a logical OR operation in which the authentic publisher signs the program image using only one of a plurality of signing keys.

At block <NUM>, the workflow illustrates countermeasures to deal with a compromised private signing key associated with public key A, as an example. The authentic publisher of the program image (embodiment <NUM> of block <NUM>) expires use of the compromised key A and signs the program image using keys B and C. At steps <NUM> and <NUM>, the multi-stage verified boot loader <NUM> (embodiment <NUM> of block <NUM>) verifies all, and at least two, of the unique digital signatures included in the signed program image. Use of the compromised key A was excluded by the publisher. This method illustrates a non-block logical AND operation with a plurality of key pairs. At step <NUM>, the multi-stage verified boot loader <NUM> verifies the digital signature in the signed program image <NUM> generated using the compromised signing key A by an attacker in possession of the compromised key. However, a requirement of the signing specification <NUM> for at least two digital signatures in a signed program image disqualifies the program image verification and protects the device from the attacker's program image <NUM>. At step <NUM>, the multi-stage verified boot loader <NUM> verifies the two digital signatures in the signed program image <NUM> generated using the compromised signing key A by an attacker in possession of the compromised key. However, a requirement of the signing specification <NUM> for uniqueness of the digital signatures in a signed program image disqualifies the program image verification and protects the device from the attacker's program image <NUM>.

An exemplary embodiment is directed to a method of device identification for enrollment and registration of an endpoint device <NUM> that is connected to a gateway device <NUM>. The method uses a multi-stage verified boot loader <NUM>, a discovery agent <NUM> at the endpoint device <NUM>, a discovery service <NUM> at the gateway device <NUM>, an enrollment service <NUM>, a policy service <NUM>, and a device management service <NUM>. The method can include: sending, by the discovery agent <NUM> on the endpoint device <NUM>, to the discovery service <NUM> on the gateway device <NUM>, an authenticated identity beacon <NUM> with an endpoint device profile <NUM>. The method can include verifying, by the discovery service <NUM>, authentication of the endpoint device <NUM> and the endpoint device profile <NUM>; and generating, by the discovery service <NUM>, a certificate request <NUM> for the endpoint device <NUM> from a privacy certificate authority. The method can include sending, by the discovery service <NUM>, the certificate request for the endpoint device <NUM> to the enrollment service <NUM>. The method can include processing, by the enrollment service <NUM>, the certificate request for the endpoint device <NUM> that is received to translate the certificate request for a certificate authority <NUM>; and sending, by the enrollment service <NUM> to the certificate authority <NUM>, the translated certificate request for the endpoint device <NUM>. The method can include receiving, by the enrollment service <NUM>, a certificate for the endpoint device <NUM> issued by the certificate authority <NUM>; and processing, by the enrollment service <NUM>, the received certificate for the endpoint device <NUM> to translate the received certificate for the endpoint device <NUM> to represent a privacy certificate authority. The method can include sending, by the enrollment service <NUM>, the certificate for the endpoint device <NUM> to the discovery service <NUM>; and sending, by the enrollment service <NUM>, a notification of endpoint device registration to the policy service <NUM>. The method can include sending, by the policy service <NUM>, a directive to add the endpoint device <NUM> to a device management service <NUM>; and storing, by the discovery service <NUM>, the issued endpoint device certificate in a local certificate store <NUM>.

In an exemplary embodiment, the identity beacon <NUM> includes a unique endpoint device identifier <NUM>, endpoint device type, endpoint device make, and endpoint device model, wherein the endpoint device identifier <NUM> is authenticated based on a multi-stage verified boot sequence of the endpoint device from power on.

In an exemplary embodiment, the multi-stage verified boot sequence is performed by a multi-stage verified boot loader that verifies multiple sets of digital signatures associated with a signed program image on the endpoint device <NUM> using multiple matching sets of public keys to verify digital signatures generated using corresponding private signing keys by an image signer <NUM>.

In an exemplary embodiment, the program image to be verified is at least one of: a first stage boot loader, a second stage boot loader, and an operating system loader on the endpoint device <NUM>, wherein the multi-stage verified boot loader <NUM> may be injected at any stage of the boot sequence.

In an exemplary embodiment, the digital signatures are verified based on a logical AND or OR operator as a countermeasure to detect compromise of one or more public-private key pairs associated with the signing and verification process, wherein placement order of the digital signatures and signature match criteria is based on a signing specification.

In an exemplary embodiment, the logical AND operation requires at least two unique digital signatures in the signed program image to be verified.

In an exemplary embodiment, the multi-stage verified boot loader <NUM> is injected into a boot sequence to forward verify a plurality of subsequent stage boot loaders, images, configuration and data files without requiring any modification to the subsequent stage boot loaders.

An exemplary embodiment is directed to a method of deregistering a device <NUM>, <NUM> using an administration dashboard <NUM>, an enrollment service <NUM>, a policy service <NUM>, and a device management service <NUM>. The method can include initiating, from the administration dashboard <NUM> by an authenticated and privileged user, an action to revoke a device certificate; and sending, by the enrollment service <NUM>, a revocation command <NUM> to a certificate authority <NUM>. The method can include sending, by the enrollment service <NUM>, a notification of device certificate revocation to the policy service <NUM>. The method can include sending, by the policy service <NUM>, to the device management service <NUM>, a directive to remove the device <NUM>,<NUM>.

An exemplary embodiment is directed to a method of endpoint device <NUM> enrollment using a discovery service <NUM> on a gateway device <NUM> as a blockchain application and an enrollment service <NUM> in the network as a blockchain network peer. The method includes sending, by the discovery service <NUM>, an enrollment request <NUM> for the endpoint device <NUM> to the enrollment service in a network. The method can include receiving, by the enrollment service <NUM>, the enrollment request <NUM> and authenticating the gateway device <NUM>. The method can include generating, by the enrollment service <NUM>, a certificate issued by a certificate authority <NUM> for the endpoint device <NUM> based on orchestration rules <NUM> established for a network service of the network. The method can include sending, by the enrollment service <NUM>, the certificate for the endpoint device <NUM> to the gateway device <NUM>. The method can include recording, by an update service <NUM>, a request log for the endpoint device as a transaction record <NUM> in the local ledger <NUM>, and distributing blocks of transaction records <NUM> to blockchain peers to maintain a distributed ledger to reproduce device history.

In an exemplary embodiment, the request log for the endpoint device is signed and encrypted and includes at least a request counter, request operation data, a request timestamp, a request nonce, a device request signature, a request hash, a device signature, a device certificate identifier, a publisher signature, a publisher certificate identifier, a package identifier, a device identifier, a provider identifier, and a publisher identifier.

In an exemplary embodiment, a distributed ledger in the blockchain has adequate transaction records to reproduce history of device and service transactions for cross-domain traceability across the supply chain of update package providers and publishers.

In an exemplary embodiment, a device disenrollment request <NUM> may be issued from an administrative dashboard <NUM> for generating by the enrollment service <NUM> a certificate revocation request <NUM> to a certificate authority <NUM> for disenrollment of the endpoint device <NUM> and recording the request log for the endpoint device <NUM> as a transaction record in the local ledger.

An exemplary embodiment is directed to a method of updating a registered device (e.g., endpoint device <NUM>, gateway device <NUM>) using a development system <NUM> and a release management system <NUM> operated by an update provider <NUM>, an update service <NUM> operated by an update publisher <NUM>, an update client <NUM> on the device <NUM>, <NUM>, and a local secure element <NUM> on the device <NUM>, <NUM>. The method can include building, on the development system <NUM>, an update package including at least one of a firmware update, a software update, a configuration update, and an update script. The method can include signing, by the release management system <NUM>, the update package <NUM> using a provider signing key <NUM>, wherein a first digital signature is included in the update package. The method can include encrypting, by the release management system <NUM>, the signed update package using a publisher public key from a publisher certificate <NUM> for the update publisher <NUM> for initial encryption of the update package. The method can include sending, by the release management system <NUM>, the signed and encrypted update package <NUM> to the update service <NUM>. The method can include requesting, by the update client <NUM> on the device <NUM>, <NUM>, an update package. The request can include at least the vendor identifier, the model number, and a device certificate <NUM> for the device. The method can include resigning, by the update service <NUM>, the signed update package using a publisher signing key <NUM>. A second digital signature is included in the update package. The method can include reencrypting, by the update service <NUM>, the doubly signed update package by decrypting the initial encryption using a publisher private key from the update publisher <NUM>, and encrypting the update package using a device public key from the device certificate <NUM>, for final encryption of the update package. The method can include sending, by the update service <NUM>, the encrypted and doubly signed update package <NUM> to the update client <NUM> on the device <NUM>, <NUM>. The method can include decrypting, by the update client <NUM>, the encrypted update package using a device private key for the device <NUM>, <NUM>. The method can include verifying, by the update client <NUM>, the first and second digital signatures using the respective public keys from the update provider <NUM> and publisher certificates issued by a certificate authority <NUM>. In an exemplary embodiment, the update script is executed on the device to apply the update package to the device <NUM>, <NUM>.

In an exemplary embodiment, the initial encryption of the update package is performed using a symmetric key, and the symmetric key is further encrypted using the publisher public key. A message digest of the update package is generated, and the first digital signature for the message digest is generated using a provider private key from the update provider <NUM>. The first digital signature is further encrypted using the publisher public key.

In an exemplary embodiment, the final encryption of the update package is performed using a symmetric key, and the symmetric key is further encrypted using the device public key. A message digest of the update package is generated, and the second digital signature for the message digest is generated using a publisher private key from the update provider <NUM>. The second digital signature is further encrypted using the device public key.

In an exemplary embodiment, the device private-public keypair for the encryption may be generated by the secure element <NUM> on the device <NUM>, <NUM>, and the device private key is protected within the secure element <NUM>. A device certificate for the device public key is issued by a certificate authority <NUM>.

An exemplary embodiment is directed to a method of updating a device (e.g., an endpoint device <NUM>, a gateway device <NUM>) using an update client <NUM> on the device <NUM>, <NUM> as a blockchain application, an update service <NUM> in a network as a blockchain network peer, orchestration rules <NUM>, and a ledger <NUM>. The method can include sending, by the update client <NUM>, a device request <NUM> for an update package for the device <NUM>, <NUM> from the update service <NUM> in the network. The method can include receiving, by the update service <NUM>, the device request and authenticating the device <NUM>, <NUM>. The method can include preparing, by the update service <NUM>, based on the received device manifest a signed and encrypted update package based on the orchestration rules <NUM> established for a network service of the network. The method can include sending, by the update service <NUM>, the signed and encrypted update package to the device <NUM>, <NUM>. The method can include recording, by the update service <NUM>, a request log for the device as an entry in the ledger <NUM>, and distributing blocks of transaction records to blockchain peers to maintain a distributed ledger to reproduce history of the device <NUM>, <NUM>.

In an exemplary embodiment, the request log for the device is signed and encrypted and includes at least a request counter, request operation data, a request timestamp, a request nonce, a device request signature, a request hash, a device signature, a device certificate identifier, a publisher signature, a publisher certificate identifier, a package identifier, a device identifier, a provider identifier, and a publisher identifier.

In an exemplary embodiment, the distributed ledger in the blockchain has adequate transaction records to reproduce a history of the device <NUM>, <NUM> and service transactions for cross domain traceability across a supply chain of update package providers and publishers.

An exemplary embodiment is directed to a method of securing data transport between an endpoint device <NUM>, that does not have an IP address, and a gateway device <NUM> that is connected to the endpoint device using a discovery agent <NUM>, a discovery service <NUM>, an enrollment service <NUM>, a policy service <NUM>, and a device management service <NUM>. The method can include sending, by the discovery agent <NUM> on the endpoint device <NUM>, to the discovery service <NUM> on the gateway device <NUM>, an authenticated identity beacon <NUM> with a device profile of the endpoint device. The method can include verifying, by the discovery service <NUM>, authentication of the endpoint device <NUM> and the device profile; and generating, by the discovery service <NUM>, a certificate request for the endpoint device <NUM> from a privacy certificate authority to the enrollment service <NUM>. The method can include processing, by the enrollment service <NUM>, the certificate request for the endpoint device <NUM> that is received to translate the certificate request for a certificate authority <NUM>. The method can include sending, by the enrollment service <NUM> to the certificate authority <NUM>, a certificate request for the endpoint device <NUM>; and receiving, by the enrollment service <NUM>, a certificate for the endpoint device <NUM> issued by the certificate authority <NUM>. The method can include processing, by the enrollment service <NUM>, the received certificate for the endpoint device <NUM> to translate the received certificate for the endpoint device <NUM> to represent a privacy certificate authority. The method can include sending, by the enrollment service <NUM>, to the discovery service <NUM>, the certificate for the endpoint device <NUM>. The method can include sending, by the enrollment service <NUM>, a notification of endpoint device registration to a policy service <NUM>; and sending, by the policy service <NUM>, to a device management service <NUM> a directive to add the endpoint device <NUM>. The method can include storing, by the discovery service <NUM>, an issued endpoint device certificate in a local certificate store of the gateway device <NUM>. The method can include receiving, by an application on the gateway device <NUM>, data in transit from/to the endpoint device <NUM> and performing cryptographic operations on the data using the certificate for the endpoint device <NUM> from the local certificate store, for secure data transport.

In an exemplary embodiment, the identity beacon <NUM> includes a unique endpoint device identifier <NUM>, endpoint device type, endpoint device make, and endpoint device model. The endpoint device identifier is authenticated based on a multi-stage verified boot sequence of the endpoint device <NUM> from power on.

In an exemplary embodiment, the program image to be verified is at least one of: a first stage boot loader, a second stage boot loader, and an operating system loader on the endpoint device <NUM>. The multi-stage verified boot loader <NUM> may be injected at any stage of the boot sequence.

In an exemplary embodiment, the digital signatures are verified based on a logical AND or OR operator as a countermeasure to detect compromise of one or more public-private key pairs associated with the signing and verification process. The placement order of the digital signatures and signature match criteria is based on a signing specification.

In an exemplary embodiment, the update client <NUM> on the endpoint device <NUM> or gateway device <NUM> may discover dynamic device attributes that may comprise device properties (e.g., profile), platform properties (e.g., processor architecture, operating system type and version), and extended properties (e.g., factory configured settings).

<FIG> describes a system and method that comprises of a plurality of Internet Protocol (IP) enabled and non-IP distributed devices (e.g., IoT field and edge devices and gateways), device management services (e.g., an enrollment service, an update service, a policy service, an analytics service), a blockchain broker service that serves as a node in a blockchain network, and a transaction connector from the device management services to the blockchain broker service. In one embodiment, neither the device nor the device management service directly participates in the blockchain. In one embodiment, a blockchain broker service participates as a proxy node in the blockchain network for the devices and device management services. Further, the blockchain broker service may provide policy based (e.g., smart contract, local rules) anonymization of entity identifiers and itemized filtering of content in the transaction record, prior to submission of transactions as a versioned block, for data privacy and protection.

Referring to <FIG>, at step <NUM> an endpoint device <NUM> or gateway device <NUM> may send an enrollment request comprising at least an authentication and identification artifacts to an enrollment service <NUM>. The enrollment service <NUM> may verify the received artifacts and process the operation request to issue, renew, or rekey a certificate associated with the device <NUM>, <NUM>. A record of the enrollment operation, comprising a plurality of verified and non-repudiable artifacts associated with device enrollment, may be transmitted over a transaction connector <NUM> to a blockchain broker service <NUM>. At step <NUM>, the blockchain broker service may generate and send a versioned block for an enrollment operation to the blockchain network to update a distributed ledger. One of ordinary skill in the art will appreciate that many methods of adding a block to a blockchain exist and would be substantially the same as the mechanism described herein.

At step <NUM> an endpoint device <NUM> or gateway device <NUM> may send an update request comprising at least an authentication and identification artifacts to an update service <NUM>. The update service <NUM> may verify the received artifacts, and process the operation request to prepare and send update packages to the device <NUM>, <NUM> based on configured policies. A record of the update operation, comprising of a plurality of verified and non-repudiable artifacts associated with the update package supply chain provenance, provider and publisher operations associated with the update package distribution and publication respectively, may be transmitted over a transaction connector <NUM> to a blockchain broker service <NUM>. At step <NUM>, the blockchain broker service may generate and send a versioned block for an update operation to the blockchain network to update a distributed ledger. One of ordinary skill in the art will appreciate that many methods of adding a block to a blockchain exist and would be substantially the same as the mechanism described herein.

In one embodiment, the release management system <NUM> of the update provider <NUM> may transmit a record of an update distribution operation over a transaction connector <NUM> to a blockchain broker service <NUM>.

In one embodiment, the update service <NUM> of the update publisher <NUM> may transmit a record of an update publish operation over a transaction connector <NUM> to a blockchain broker service <NUM>.

At step <NUM> an endpoint device <NUM> or gateway device <NUM> may send a policy request comprising at least an authentication and identification artifacts to a policy service <NUM>. The policy service may verify the received artifacts, and process the operation request to prepare and send policies for continuous runtime monitoring to the device <NUM>, <NUM> based on device type and qualifying criteria. A record of the policy configuration operation, comprising unique policy and rule identifiers and grammar, may be transmitted over a transaction connector <NUM> to a blockchain broker service <NUM>. At step <NUM>, the blockchain broker service may generate and send a versioned block for a policy configuration operation to the blockchain network to update a distributed ledger. One of ordinary skill in the art will appreciate that many methods of adding a block to a blockchain exist and would be substantially the same as the mechanism described herein.

At step <NUM> an endpoint device <NUM> or gateway device <NUM> my send a policy trigger event comprising at least an authentication, identification and signed event related data artifacts to an analytics service <NUM>. The analytics service may verify the received artifacts and process the operation request to prepare and transmit a record of the detected in-field device activity based on the policy trigger, comprising of at least the episode information, runtime state measurements and device integrity scores, over a transaction connector <NUM> to a blockchain broker service <NUM>. At step <NUM>, the blockchain broker service may generate and send a versioned block of episode information, runtime state measurements and device integrity scores to the blockchain network to update a distributed ledger. One of ordinary skill in the art will appreciate that many methods of adding a block to a blockchain exist and would be substantially the same as the mechanism described herein.

In one embodiment, the blockchain broker service <NUM> may apply transaction filters based on the configured broker service policies for information filtering and anonymization.

<FIG> describes a block schema to track a chain of custody of a device from a silicon fabrication plant, an original equipment manufacturer (OEM), a platform owner, to a device owner as a distributed ledger in a blockchain wherein a remote enrollment service associated with the device and a transaction connector associated with the enrollment service may submit transactions (equivalent to proof of work and proof of authorization) to a blockchain broker service node on a blockchain network.

Referring to <FIG>, in block <NUM>, block# <NUM> represents a block sequence number in a blockchain and nonce <NUM> is a random number based on requirements to hash the block in the blockchain. A header section <NUM> comprises at least the industry sector, type of block data, and version of the block data format (or schema). An operation <NUM>, <NUM>, <NUM> describes a type of operation (transaction) requested by the device (e.g., enroll, renew, rekey, revoke). A device section <NUM> comprises at least a device name, a device type, an authentication account (credential), and a unique identifier (ID) for the device. A certificate section <NUM> comprises at least a subject name associated with a certificate, a certificate serial number (CSN), a unique identifier (UID) of the issuer of the certificate, a subject unique identifier, a subject alternate name (SAN) in the certificate, a root (public) key associated with the device (hardware, firmware or software based root of trust), a platform (public) key issued to the device, an owner (public) key associated with ownership of the device, an intended usage of the key (e.g., signing, encryption,. ), and a timestamp for date and time of the operation. Previous <NUM> is a hash of a preceding block in the blockchain (not shown) and Hash <NUM> is a hash of block <NUM>. In block <NUM>, Previous <NUM> refers to Hash <NUM> of block <NUM> in the blockchain. In block <NUM>, a certificate <NUM> includes a revoke key associated with a rekey operation <NUM>.

In one embodiment, the device key revocation may be performed as a revoke request operation type.

<FIG> describes a block schema to track an application trust chain on a device from a silicon fabrication plant, an original equipment manufacturer (OEM), a platform owner, to a device owner as a distributed ledger in a blockchain wherein remote enrollment service associated with the device and a transaction connector associated with the enrollment service submit transactions (equivalent to proof of work and proof of authorization) to a blockchain broker service node on a blockchain network.

Referring to <FIG>, in block <NUM>, block# <NUM> represents a block sequence number in a blockchain and nonce <NUM> is a random number based on requirements to hash a block in the blockchain. A header section <NUM> comprises at least an industry sector, type of block data, and version of a block data format (or schema). An operation <NUM> describes a type of operation (transaction) requested by the application (e.g., enroll, renew, rekey, revoke). An application section <NUM> comprises at least an application name, an application type, an authentication account (credential or service account), and a unique identifier (ID) for the application. A certificate section <NUM> comprises at least a subject name associated with a certificate, a certificate serial number (CSN), a unique identifier (UID) of an issuer of the certificate, a subject unique identifier, a subject alternate name (SAN) in the certificate, a root (public) key associated with the device (hardware, firmware or software based root of trust), a platform (public) key issued to the device, an owner (public) key associated with ownership of the device, a service (public) key associated with an application to access remote services (e.g., cloud services, peer-to-peer communications, etc.), an intended usage of the key (e.g., signing, encryption,. ), and a timestamp for date and time of the operation. Previous <NUM> is a hash of a preceding block in the blockchain (not shown) and Hash <NUM> is a hash of block <NUM>. In block <NUM>, Previous <NUM> refers to Hash <NUM> of block <NUM> in the blockchain. In block <NUM>, a certificate <NUM> includes a revoke key associated with a rekey operation <NUM>.

In one embodiment, the application key revocation may be performed as a revoke request operation type.

<FIG> describes a block schema to track change management for a device through a supply chain from a silicon fabrication plant, an original equipment manufacturer (OEM), a platform owner, to a device owner as a distributed ledger in a blockchain wherein a remote update service associated with the device and a transaction connector associated with an update service submit transactions (equivalent to proof of work and proof of authorization) to a blockchain broker service node on a blockchain network.

In one embodiment, a block of the blockchain identifies a provider identifier as an original content provider (source) in a supply chain and a publisher identifier as a remote update service (e.g., a device manager operated by the device owner or a managed services provider) in a supply chain, clearly differentiated from a common notion of a sender and receiver of messages (or content) that serves merely as a means to identify directly connected (point to point) entities in a transaction.

In one embodiment, the block of the blockchain comprises distributed and dynamic artifacts (explicit properties) associated with an operation rather than an unscalable method of device attributes preconfigured and implicitly inferred at a point of service for millions of IoT devices and further in a multi-tenant services configuration.

In one embodiment, a device historian may be built (instantiated) based on blocks in a blockchain wherein the blocks represent a plurality of distributed transactions submitted by a plurality of connected services in a supply chain of a plurality of providers associated with a connected device and hardware, firmware and software components of the device. Further, versioned blocks may be prepared for a specific industry sector, by operation type, and with the device, application or (portal or service) operator as an entity.

Referring to <FIG>, in block <NUM>, block# <NUM> represents a block sequence number in a blockchain and nonce <NUM> is a random number based on requirements to hash a block in the blockchain. A header section <NUM> comprises at least an industry sector, type of block data, and version of a block data format (or schema). An operation <NUM>, <NUM>, <NUM> describes a type of operation (transaction) associated with a device update package (e.g., distribute by a provider, publish by a publisher, request by a device). An operator section <NUM> comprises at least a portal or service user account, list of publisher identifiers in a distribution (e.g., by public signing key or URL), and class of devices an update package is distributed for. A package section <NUM> comprises at least an update package name, update package type, update package version, device category the update package is intended for, a list of signer public keys (e.g., providers and publisher in the supply chain), a device encryption public key, and a timestamp for date and time of the operation. Previous <NUM> is a hash of a preceding block in the blockchain (not shown) and Hash <NUM> is a hash of block <NUM>. In block <NUM>, Previous <NUM> refers to Hash <NUM> of block <NUM> in the blockchain. An operator section <NUM> includes a device type the update package is associated with and a package section <NUM> includes tags associated by a publisher with the update package.

<FIG> illustrates an exemplary computer system <NUM> in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable code. For example, the network systems and architectures disclosed here (the endpoint devices <NUM>, gateway devices <NUM>, enrollment service <NUM>, database <NUM>, update provider <NUM>, update publisher <NUM>, cloud service <NUM>, etc.) can be implemented in computer system <NUM> using hardware, software, firmware, non-transitory computer readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination of such may embody any of the modules and components used to implement the architectures and systems disclosed herein.

If programmable logic is used, such logic may execute on a commercially available processing platform or a special purpose device. One of ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device.

For instance, at least one processor device and a memory may be used to implement the above-described embodiments. A processor device may be a single processor, a plurality of processors, or combinations thereof. Processor devices may have one or more processor "cores.

Various embodiments of the disclosure are described in terms of this example computer system <NUM>. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the disclosure using other computer systems and/or computer architectures. Although operations may be described as a sequential process, some of the operations may in fact be performed in parallel, concurrently, and/or in a distributed environment, and with program code stored locally or remotely for access by single or multi-processor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the disclosed subject matter.

Processor device <NUM> may be a special purpose or a general-purpose processor device. As will be appreciated by persons skilled in the relevant art, processor device <NUM> may also be a single processor in a multi-core/multiprocessor system, such system operating alone, or in a cluster of computing devices operating in a cluster or server farm. Processor device <NUM> is connected to a communication infrastructure <NUM>, for example, a bus, message queue, network, or multi-core message-passing scheme.

The computer system <NUM> also includes a main memory <NUM>, for example, random access memory (RAM) or flash memory, and may include a secondary memory <NUM>. Secondary memory <NUM> may include, for example, a hard disk drive <NUM>, removable storage drive <NUM>. Removable storage drive <NUM> may be a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like.

The removable storage drive <NUM> reads from and/or writes to a removable storage unit <NUM> in a well-known manner. Removable storage unit <NUM> may be a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive <NUM>. As will be appreciated by persons skilled in the relevant art, removable storage unit <NUM> includes a non-transitory computer usable storage medium having stored therein computer software and/or data.

In alternative implementations, secondary memory <NUM> may include other similar means for allowing computer programs or other instructions to be loaded into computer system <NUM>. Such means may include, for example, a removable storage unit <NUM> and an interface <NUM>. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units <NUM> and interfaces <NUM> which allow software and data to be transferred from the removable storage unit <NUM> to computer system <NUM>.

The computer system <NUM> may also include a communications interface <NUM>. Communications interface <NUM> allows software and data to be transferred between computer system <NUM> and external devices. Communications interface <NUM> may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communications interface <NUM> may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface <NUM>. These signals may be provided to communications interface <NUM> via a communications path <NUM>. Communications path <NUM> carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels.

The computer system <NUM> may also include a computer display <NUM> and a display interface <NUM>. According to embodiments, the display used to display the GUIs and dashboards shown in <FIG> described above may be the computer display <NUM>, and the console interface may be display interface <NUM>.

In this document, the terms "computer program medium," "non-transitory computer readable medium," and "computer usable medium" are used to generally refer to media such as removable storage unit <NUM>, removable storage unit <NUM>, and a hard disk installed in hard disk drive <NUM>. Signals carried over communications path <NUM> can also embody the logic described herein. Computer program medium and computer usable medium can also refer to memories, such as main memory <NUM> and secondary memory <NUM>, which can be memory semiconductors (e.g., DRAMs, etc.). These computer program products are means for providing software to computer system <NUM>.

Computer programs (also called computer control logic) are stored in main memory <NUM> and/or secondary memory <NUM>. Computer programs may also be received via communications interface <NUM>. Such computer programs, when executed, enable computer system <NUM> to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor device <NUM> to implement the processes of the present disclosure, such as the stages in the methods illustrated by the flowcharts in <FIG>, discussed above. Accordingly, such computer programs represent controllers of the computer system <NUM>. Where the present disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system <NUM> using removable storage drive <NUM>, interface <NUM>, and hard disk drive <NUM>, or communications interface <NUM>.

Embodiments of the disclosure also may be directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing device, causes a data processing device(s) to operate as described herein. Embodiments of the disclosure employ any computer useable or readable medium. Examples of computer useable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory, etc.), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks, tapes, magnetic storage devices, and optical storage devices, MEMS, nanotechnological storage device, etc.), and communication mediums (e.g., wired and wireless communications networks, local area networks, wide area networks, intranets, etc.).

The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance. Reference to an element in the singular is not intended to mean "one and only one" unless explicitly so stated, but rather "one or more. No claim element herein is to be construed under the provisions of <NUM> U. <NUM>(f) unless the element is expressly recited using the phrase "means for. " As used herein, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.

Claim 1:
A method of device identification for enrollment and registration of an endpoint device (<NUM>) that is connected to a gateway device (<NUM>) using a multi-stage verified boot loader, a discovery agent (<NUM>) at the endpoint device, a discovery service (<NUM>) at the gateway device (<NUM>), an enrollment service (<NUM>), a policy service (<NUM>), and a device management service, the method comprising:
obtaining, by the discovery service (<NUM>) on the gateway device (<NUM>), from the discovery agent (<NUM>) on the endpoint device (<NUM>), an authenticated identity beacon (<NUM>) with a device profile (<NUM>) of the endpoint device (<NUM>);
verifying, by the discovery service (<NUM>) on the gateway device (<NUM>), the authenticated identity beacon (<NUM>) of the endpoint device (<NUM>) and the device profile (<NUM>);
generating, by the discovery service (<NUM>) on the gateway device (<NUM>), a certificate request (<NUM>) associated with a privacy certificate authority (<NUM>) for the endpoint device (<NUM>);
sending, by the discovery service (<NUM>) on the gateway device (<NUM>), the certificate request (<NUM>) to the enrollment service (<NUM>);
translating, by the enrollment service (<NUM>), the certificate request (<NUM>) to provide a translated certificate request (<NUM>) associated with a certificate authority (<NUM>);
sending, by the enrollment service (<NUM>) to the certificate authority (<NUM>), the translated certificate request (<NUM>);
receiving, by the enrollment service (<NUM>), a certificate issued by the certificate authority (<NUM>);
translating, by the enrollment service (<NUM>), the certificate to provide a translated certificate associated with the privacy certificate authority (<NUM>) for the endpoint device (<NUM>);
sending, by the enrollment service (<NUM>), the translated certificate to the discovery service (<NUM>);
sending, by the enrollment service (<NUM>), a notification of registration of the endpoint device (<NUM>) to the policy service (<NUM>);
sending, by the policy service (<NUM>), a directive to add the endpoint device (<NUM>) to the device management service; and
storing, by the discovery service (<NUM>), the translated certificate in a local certificate store.