Digital information has become extremely important in all aspects of commerce, education, government, entertainment and management. In many of these applications, the ability to ensure the privacy, integrity and authenticity of the information is critical. As a result, several digital security mechanisms have been developed to improve security.
One standardized approach to today's digital security is referred to as the Public Key Infrastructure (PKI). PKI provides for use of digital certificates to authenticate the identity of a certificate holder, or to authenticate other information A certificate authority (CA) issues a certificate to a certificate holder and the holder can then provide the certificate to a third party as an attestation by the CA that the holder who is named in the certificate is in fact the person, entity, machine, email address user, etc., that is set forth in the certificate. And that a public key in the certificate is, in fact, the holder's public key. People, devices, processes or other entities dealing with the certificate holder can rely upon the certificate in accordance with the CA's certification practice statement.
A certificate is typically created by the CA digitally signing, with its own private key, identifying information submitted to the CA along with the public key of the holder who seeks the certificate. A certificate usually has a limited period of validity, and can be revoked earlier in the event of compromise of the corresponding private key of the certificate holder, or other revocable event. Typically, a PKI certificate includes a collection of information to which a digital signature is attached. A CA that a community of certificate users trusts attaches its digital signature and issues the certificates to various users and/or devices within a system.
Network-enabled devices are generally provisioned at the factory with identity data so that they may communicate with other network-enabled devices in a secure manner using an identity data system. The identity data typically includes a public and private key pair and a digital certificate. Illustrative examples of networked-enabled device include, without limitation, PCs, mobile phones, routers, media players, set-top boxes and the like.
The identity data may be provisioned in network-enabled devices before or after they are deployed in the field For instance, the identity data may be incorporated into the device at the time of manufacture. For example, a large scale upgrade may occur when a network wants to replace their Digital Rights Management (DRM) system or when they want to support other security applications that require the network-enabled devices to be provisioned with new types of identity after the devices have been deployed. This can be a difficult and cumbersome process because it is often performed manually and therefore can require the devices to be returned to a service center.
In accordance with one aspect of the invention, a method for updating network-enabled devices with new identity data is provided. The method includes generating a plurality of new identity data records and loading the new identity data records onto an update server. A request is received at the update server for new identity data from at least one network-enabled device having a previously assigned identity linked to an identifier. The previously assigned identifier is linked to a new identifier that is linked to one of the new identity data records. One or more new identity data records are securely delivered to the network-enabled device.
In accordance with another aspect of the invention, an identity management system is provided. The system includes an identity data generator configured to generate a plurality of new identity data records and a whitelist manager configured to (i) receive one or more identifiers associated with each of a plurality of network-enabled devices deployed for use in association with a network and (ii) produce a whitelist relating the one or more identifiers to each of the network-enabled device that are authorized to receive new identity data. At least one of the identifiers associated with each network-enabled device is a previously assigned identifier. The system also includes an update server configured to (i) receive the new identity data records from the identity data generator, (ii) receive requests for new identity data from the plurality of network-enabled devices (iii) authenticate each of the network-enabled devices and (iv); deliver a new identity data record to each one of the authenticated network-enabled device that are authorized to receive a new identity data record in accordance with the whitelist, said new identity data record being linked to the previously assigned identifier of the authenticated network-enabled device.
In accordance with yet another aspect of the invention, an identity data management system is provided which includes one or more databases storing at least two identifiers associated with a plurality of network-enabled device. A first and second of the two identifiers are identifiers of a first and second type, respectively. The system also includes a whitelist manager for receiving a first set of data specifying one or more of the network-enabled devices that are authorized to be updated with new identity data. The one or more network-enabled devices are identified in the first set of data by identifiers of the first type. The whitelist manager is configured to access the one or more databases to retrieve identifiers of the first and second type which correspond to the identifiers of the first type included in the first set of data and to establish a whitelist that includes corresponding identifiers of the first and second type and to deliver said whitelist to an identity data generator and to an update server. The system further includes an identity data generator configured to generate identity data records that are each identified by an identifier of the second type. The generated identity records are generated for network-enabled devices specified on the whitelist received from the whitelist manager. The identity data generator is further configured to associate the identity data records with the whitelist. The system also includes an update server configured to receive over a communications network a request for new identity data from a deployed network-enabled device. The update server is also configured to send the generated identity data records received from the identity data generator to the deployed network-enabled devices respectively identified by identifiers of the first type in the whitelist and in data received from the identity data generator.
An identity data management system is described herein which provides a flexible framework that can be used to upgrade, renew, or supplement identity data that is provisioned in a large base of network-enabled devices that have already been deployed in the field. The system architecture allows network operators to install and update the identity data in these devices without having to recall them from the end-user. The system architecture may also allow operators to update expired or expiring digital certificates provisioned in previously deployed network-enabled devices with minimum service disruption. In a common scenario, for instance, a service provider may have acquired, say, 500,000 units of a product that they have delivered to their end user customers. For one reason or another the service provider may wish to update the identity data in all or a subset (e.g., 100,000) of those units. In one particular instance the identity data is PKI data. In other cases the identity data may take a variety of other forms such as a serial number, a symmetric key that is cryptographic based, and the like. For purposes of illustration only and not as a limitation on the invention the following description will often refer to a PKI management system that is used to upgrade, renew, or supplement PKI data.
It should be understood that each domain in
The manufacturing domain 310 of a single manufacturer may include multiple manufacturing sites which in some cases can be operated by a third party contract manufacturer distributed world-wide. Each factory, only one of which is illustrated in
The network 210 includes a network access authorization server 230, which grants permission to the deployed network-enabled devices 2401, 2402, and 2403 (“240”) to access the network and initiate upgrade operations. Identity data and other information concerning the deployed devices 240 are maintained by an account identity and management system 220.
In addition to the identity management components located at the factory site 310 discussed above, the PKI/identity management system includes two primary sub-systems: a PKI/identity generation system 120 and a PKI/identity update system 130. The PKI/identity generation system 120, which for security reasons is often an offline system, includes order fulfillment processors 122, which generate digital certificates or other identity data requested for products. The order fulfillment processors 122 may include, or have access to, hardware security modules (HSMs) in which the CA's certificate signing private keys and secure data may be stored for use by the system. The PKI/identity generation system 120 also includes an archive database 124, which is a database of records. These records may pertain to issued digital certificates, original requests for new digital certificates or secure data, audit data, organization information, product configurations, user information, and other record types as necessary.
The PKI/identity update system 130 includes a PKI/identity update server 132 that receives new identity data from the offline PKI/identity generation system 120 and securely downloads the new identity data to the appropriate deployed network-enabled devices 240. The PKI/identity update system 130 also includes a whitelist generation and manager (WGM) server 134 for consolidating various identities received from different whitelist sources maintained within the various domains, i.e., the PKI/identity generation system, the device manufacturer and the service provider/network operator. In particular, WGM server 134 receives one set of device identifiers from the factory via a centralized unit personalization database 360, which has all the data retrieved from different manufacturing sites and another set of device identifiers, one of which is assigned by the PKI/identity generation system 120, from centralized PKI personalization database 160. Other sources of whitelist data, either from network operators or update servers 132, will be discussed below. These identifiers and other data allow the WGM server 134 to correlate the various identifiers that are assigned to same network-enabled device.
The PKI/identity update system 130 also includes monitor and reporter system 136 that is used to monitor, track and report the progress and status of large volume upgrade operations, which can involve millions of network-enabled devices 240 across different networks and operators.
Before presenting in detail the process flow among the various domains and entities shown in
When a network-enabled device is first provisioned with identity data, the PKI/identity generation system 120 generates the initial identity data for each device and delivers it to the factory servers 320. Each identity data record that is provided to the factory servers 320 includes its identifier ID-A. When the manufacturer is ready to first load a newly manufactured device with identity data, the factory stations 350 will request an identity data record by providing the factory servers 320 with the device's identifier ID-B. In response, the factory servers 320 will provide the factory stations 350 with an identity data record identified by its identifier ID-A. Both of these identifiers will be stored in the factory servers 320 and replicated to a centralized identity database 160, which associates both identifiers with one another to indicate that they relate to the same network-enabled device 340.
When an already deployed device 240 makes a request that requires it to be provisioned with a new identity data record, the network operator approves the request in accordance with its own internal procedures. In some cases permission to fulfill the request may be granted by the authorization server 230, which may provide a whitelist specifying those devices to be updated to the WGM server 134 associated with the PKI/identity update system 130. Instead of using an authorization server 230 to deliver the whitelist, the network operator may manually deliver the whitelist to the WGM server 134 over an online interface or the like.
Instead of coming from the network operator, in some cases the authorization may come from the factory, particularly when all the devices deployed to a particular network operator are to be upgraded. This authorization may be based, for instance, on a list of all devices shipped to the network operator. The whitelist that is provided includes the identifier used by the network operator, ID-C, for each device that is to be updated. The WGM server 134 obtains the identifiers ID-A, ID-B and ID-C from the various sources and joins them together into a single whitelist for subsequent distribution to the update server 132 and/or to the PKI/identity generation system 120. If the new identity data to be generated is based on/linked to the identifiers ID-A and/or ID-C, it should be protected by the key/certificate previously provisioned in the devices at the factory. In this case the whitelist is delivered from the WGM server 134 to the PKI/identity generation system 120, from which the previous IDs/keys/certificates can be retrieved to protect the new identity data that is generated. If, on the other hand, the new identity data to be generated is based on a new ID (ID-D) that is not associated with a previously generated/provisioned key/certificate, the PKI/identity generation system 120 generates the new identity data before update requests are received and thus does not need this information from the WGM server 134. In this case, the whitelist is directly sent to the update server 132 so that it can be used to check on the device authorization for the update.
Next, the devices 240 to be updated each send a request to the update server 132. The request is signed with a PKI key (or other types of keys such as symmetric keys and/or identifiers) previously installed at the factory. The PKI data-based mechanism provides a strong authentication of the request message, while a simple identity and/or symmetric key based mechanism provides for easy validation of authentication. The update server 132 first authenticates the device request message by validating its signature and certificate(s). Any invalid request will be rejected.
Using the appropriate identifier ID-C for each device 240 requesting an update, the PKI/identity update server 132 can perform the authorization check based on the whitelist it receives to ensure that only authorized devices are updated with the new PKI/identity data. The update server 132 also obtains the updated PKI identity data records from the PKI/identity generation system 120. The new PKI identity data records are specified by new identifiers ID-D, which may or may not be based on any of the previous identifiers (ID-A, ID-B, and ID-C). The association of the new and previous PKI/identity data determines how the authorization operation is conducted.
In one case, the new PKI/identity data (IDs and keys) are not related to the previous IDs/keys/certificates. In this case the PKI/identity generation system generates a sufficient pool of new PKI data with internally assigned new identifiers and uploads them to the update server 132 for use. The update server 132 simply checks whether or not a device ID (ID-C) in a request message is included in the whitelist. Each request message will be fulfilled with the next available new or unused PKI/identity data record stored in the update server 132. In general, one record will be used for one device, although it is possible that in some cases the same record could be shared among multiple devices. In this process, the update server 132 will pair the device ID-C with a new PKI/identity data record having the identifier ID-D. This online authorization and device binding process is used to ensure that all devices that are authorized to be upgraded will receive the new PKI/identity data.
On the other hand, if the new PKI/identity data (IDs and keys) are related to the previous IDs/keys/certificates, an offline generation and device binding process may be employed. In this case, the PKI/identity generator system 120 only generates the new IDs/keys/certificates for those devices whose IDs (ID-C) are included on the whitelist. The new identity data is then delivered to the update server 132. The update server 132 only has the new PKI/identity data for devices whose IDs (ID-Cs) are on the whitelist; any requests from devices having ID-Cs that are not on the whitelist will not be fulfilled. Finally, the new identity data records are delivered by the update server 132 to their respective devices 240 over a public or private network 150 such as the Internet, for example.
The PKI/identity update process described above will now be described in more detail using the process flow diagrams of
Referring to
The initial identity data records are assigned identifiers ID-As, which are maintained by the PKI/identity generation system 120. The identity data is delivered from the generation system to an online PKI loader 325, which loads the data onto the authorized factory servers 320. At 2, the devices are personalized with the initial identity data as follows. First, a network-enabled device 340 is assigned a device identifier ID-B, which may be a serial number, a Unit ID (UID), an IMEI number, or a MAC address. The identifiers ID-B are stored in a factory identity database 330 and assigned to factory programming stations, which in turn assign them to devices to be manufactured. The device is also assigned by the factory identity database 330 and programming station 350 with a second identifier, denoted ID-C, which may generally be a label or the like that typically will be used by the network operator. In some cases the identifiers ID-B and ID-C may be the same. The factory programming stations 350 at 2 request identity data from the factory servers 320. After the stations 350 connect to factory servers 320 and send requests for the identity ID-Bs of the devices 340 to be provisioned, the factory server 320 responds by providing the identity data denoted with the identifier ID-As.
The identity data provisioned in the devices may be used in connection with a particular service or set of services. Accordingly, if the device is authorized for multiple services or sets of services, the device may be provisioned with multiple identity data records. Each PKI/identity data type, denoted as PKI TypelD, could have different key/certificate formats, using different cryptography key/certificate generation mechanisms, and having different Certificate Authorities (CAs), etc.
At 3, the devices 340 are shipped from the domain of the factory 310 to the domain of the network 210 and the network operator deploys the devices 340 in their network. They are then authorized by the network operator to access the network and the identities of the deployed devices are stored in the account/identity management server 220.
Before any updates can be performed, various identifiers used during the initial personalization process and the network access authorization process need to be imported into and consolidated by the PKI/identity update system 130 in order for upgrade operations to be performed online with adequate security. First, at 4a, the centralized unit personalization database 360 collects the device identifiers (ID-B and ID-C) from the various local factory identity databases 330. The database 360 then uploads these device identifiers as one of whitelist sources to the WGM 134. In addition, at 4b, the network access authorization server 230 also uploads the list of devices 240 to be upgraded (as identified with the identifiers ID-Cs) to the WLGM 134. In some cases, when a network operator wants to upgrade all the devices in their network, this list of devices could be obtained directly from the factory, based on their shipment notice. At 4c the centralized PKI personalization database 160 collects various PKI personalization-related information (e.g., ID-A, ID-B, PKI Type ID) from the factory servers 320 via a PKI reaper 360, which aggregates the information from all the various factory servers at different factory locations.
Next, at 5, the WGM 134 consolidates all the identifiers and generates a whitelist for the PKI/identity generation system 120 or for the update server 132, depending on the various upgrade requirements defined by each customer (e.g. a network operator, a manufacturer, etc.) of the PKI/identity management system. The whitelist is provided to the PKI/identity generation system 120 in an offline manner for security purposes.
The request for an update is made directly by the devices 240 to the update server 132 at 6. The request message sent by each device 240 is signed with a PKI key previously installed at the factory and identified with ID-A. Upon receiving the request at 7, the update server 132 first authenticates the device request message by validating its signature and certificate(s). Any invalid request will be rejected. Then, at 8, the update server 132 performs an authorization check to ensure all the authenticated devices are in fact authorized to be updated with new identity data. This authorization check may be performed in one of two ways, depending on the whitelist configuration. First, authorization may be performed using an online authorization and device binding process. Alternatively, an offline generation and device binding process may be employed.
Meanwhile, at 9, the offline PKI/identity generation system 120 generates the new identity data. This can be accomplished in one of two ways, depending on whether the whitelist is defined. First, when a whitelist is defined and imported, a new identity data record can be generated based on information specified in the whitelist. This information generally includes one of the device identifiers and the PKI Type ID.
The new identity data can be encrypted by a previously installed key whose certificate has an identifier (ID-A) that is paired in the whitelist with the device ID, which could be either ID-B or ID-C. In order to obtain the previously installed key, the previously generated identity data will first need to be retrieved from the archived database 124. After this encryption operation, the new identity data records with the specified new PKI Type ID are bound to their corresponding devices based on the whitelist of deployed devices 240 that are authorized to be updated. Encryption of the new identity data may be performed before a request for new identity data is received (e.g., at the time the new identity data is generated) or only when a request for new identity data is received.
If new identity data does not need to be identified by any of the existing identifiers of the deployed device, the offline PKI/identity generation system 120 independently generates a sufficiently large pool of new identity data records of a specific PKI type (based on a new identifier, denoted ID-D, which is assigned internally) and uploads it into the update server 132 via a PKI loader 133. In this case the new identity data is generated during the key generation process, but for any specific device. When a new identity data update request is received by the update server 132, the “next available” new identity data record is used. In this case the binding of the new identity data with the devices 240 takes place in the update server 132 based on the designated whitelist available to it.
Regardless of how the new identity data is generated, the update server 132 receives the new identity data from the PK/identity generation system 120 and responds to the update request by providing the new identity data at 10 to the deployed network-enabled devices over network 150. At 11, the deployed devices 240 decrypt, validate and install the new identity data. In addition, at 12, the monitor and report system 136 keeps track of the overall data usage and operational status of the system.
In some cases a network-enabled device 240 that has already been authorized to receive an update may retry, at 13, sending its request to obtain an update using the same device identifier. This can be necessary, for example, as a result of network outages, an accidental device reset, a reset of the network access authorization server 230, etc. If the update server 132 receives such a request, it first checks to see if any limitations on a retry (either based on number or time) have been exceeded and, if so, it rejects the retry request. If a retry request is allowed, the update server 132 retrieves exactly the same set of identity data that was previously sent to that same device 240, which has already been bound to its factory device identity. This same set of identity data is returned to the device 240 in response to a retry request.
Referring now to
The process of
Next, at 4, the WGM 134 consolidates all the identifiers and generates a whitelist for the update server 132 and/or for the offline PKI/identity generation system120 , depending on the various upgrade requirements defined by each customer (e.g. a network operator, a manufacturer, etc.) of the PKI/identity management system.
The request for an update is made directly by the devices 240 to the update server 132 at 5. Upon receiving the request at 6, the update server 132 first authenticates the device request message. Any invalid request will be rejected. The request message is “authenticated” based on identifier(s) previously installed at the factory. Since there is no PKI data present, the “authentication” mechanism will not be as strong as when PKI data is present. A symmetric key-based or a public key based (such as one derived from the Diffie Hellman algorithm with a pre-determined and secret prime modulus p and base generator g at both the device and the update server, for example) authentication could be used.
Then, at 7, the update server 132 performs an authorization check to ensure all the authenticated devices are in fact authorized to be updated with new identity data. This authorization check may be performed in one of two ways, depending on the whitelist configuration. First, authorization may be performed using an online authorization and device binding process. Alternatively, an offline generation and device binding process may be employed.
Meanwhile, at 8, the offline PKI/identity generation system 120 generates the new identity data. This can be accomplished in one of two ways, depending on whether the whitelist is provided. First, if a whitelist is provided, a new identity data record can be generated based on the device identifiers and the PKI Type ID in the whitelist. The newly generated PKI data are then bound to devices with their identifiers embedded in the new certificate. The new PKI data cannot be encrypted with a previously installed PKI data since none is installed initially. Thus, a different mechanism will be needed to protect the new PKI data. A symmetric key based encryption could be used. For instance, the symmetric key could be derived from the device identifier and/or a network identifier as well as other system parameters.
If no whitelist is provided to the offline PKI//identity generation system 120, the system 120 independently generates a sufficiently large pool of new identity data records of a specific PKI type (based on a new identifier, denoted ID-D, which is assigned internally) and uploads it into the update server 132 via a PKI loader 133. In this case the new identity data is not generated during the key generation process to match any specific device. When a new identity data update request is received by the update server 132, the “next available” identity data record is used. In this case the binding of the new identity data with the devices 240 takes place in the update server 132 based on the designated whitelist available to it.
Regardless of how the new identity data is generated, the update server 132 receives the new identity data from the PKI/identity generation system120 and responds to the update request by providing the new identity data at 9 to the deployed network-enabled devices over network 150. At 10, the deployed devices 240 decrypt, validate and install the new identity data. However, the validation and decryption of the new PKI data cannot be PKI-based since no previous PKI data is available. Accordingly, other mechanisms will need to be used.
At 11, the monitor and report system 136 keeps track of the overall data usage and operational status of the system.
In some cases a network-enabled device 240 that has already been authorized to receive an update may retry, at 13, sending its request to obtain an update using the same device identifier. This can be necessary, for example, as a result of network outages, an accidental device reset, a reset of the network access authorization server 230, etc. If the update server 132 receives such a request, it first checks to see if any limitations on a retry (either based on number or time) have been exceeded and, if so, it rejects the retry request. If a retry request is allowed, the update server 132 retrieves exactly the same set of identity data that was previously sent to that same device 240, which has already been bound to its factory device identity. This same set of identity data is returned to the device 240 in response to a retry request.
As used in this application, the terms “component,” “module,” “system,” “apparatus,” “interface,” or the like are generally intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a controller and the controller can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, the claimed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable storage media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of the claimed subject matter.
This application claims priority from U.S. provisional application No. 61/324,575, filed Apr. 15, 2010, which is incorporated by reference herein in its entirety. This application is related to co-pending U.S. application Ser. No. 12/961,455 filed on Dec. 6, 2010, entitled “Online Public Key Infrastructure (PKI) System.”
Number | Date | Country | |
---|---|---|---|
61324575 | Apr 2010 | US |