Application programming interface for certificate management systems
A system can include a certificate application programming interface (API) device that is operable to receive, via an application programming interface (API), an enrollment request for the at least one computerized device. The certificate API device can also generate, via the API, an enrollment package and an end entity certificate package for the at least one computerized device by obtaining the enrollment package and the end entity certificate package from a certificate management service (CMS). The certificate API device can also transmit, via the API, the enrollment package and the end entity certificate package to the at least one computerized device. The system can also include the CMS that is operable to provide the enrollment package and the end entity certificate package to the certificate API device.
1 . A system for securely provisioning at least one computerized device comprising:
a certificate application programming interface (API) device that is communicatively connected to the at least one computerized device via a first secure communication channel, and that is operable to receive a digital asset and to load the digital asset into the at least one computerized device, wherein the certificate API device is also operable to:
receive, via an API, an enrollment request for the at least one computerized device;
generate, via the API, an enrollment package for the at least one computerized device by transmitting at least one enrollment certificate request to a certificate management service (CMS), and receive one or more enrollment certificates for inclusion in the enrollment package from the CMS, wherein the CMS is connected via a second secure communication channel to the certificate API device, wherein the enrollment package includes bootstrapping data and the one or more enrollment certificates for the at least one computerized device, the one or more enrollment certificates being separate from the bootstrapping data, wherein the bootstrapping data includes computer program updates that enable the at least one computerized device to install an application to be executed; and
transmit, via the API, the enrollment package to the at least one computerized device, wherein the enrollment package is operable to modify the at least one computerized device,
wherein the enrollment package facilitates exchanging of secure communications between the at least one computerized device and additional computerized devices.
2 . The system of claim 1 wherein the certificate API device is operable to:
generate, via the API, an end entity certificate package for the at least one computerized device including one or more end entity certificates retrieved from the CMS; and
transmit, via the API, the end entity certificate package to the at least one computerized device, wherein the end entity certificate package is operable to modify the at least one computerized device,
wherein the end entity certificate package facilitates exchanging of secure communications between the at least one computerized device and additional computerized devices.
3 . The system of claim 1 , wherein the certificate API device is operable to:
receive, via the API, a request for a computerized device status for the at least one computerized device; and
transmit, via the API, a response to the request, the response comprising metadata indicating whether an enrollment certificate has been received from the CMS for the at least one computerized device.
4 . The system of claim 1 , wherein the certificate API device is operable to:
receive, via the API, a request for an enrollment status for a group of computerized devices; and
transmit, via the API, a response to the request, the response comprising metadata indicating a number of enrollment certificates and end entity certificates received for the group of computerized devices.
5 . The system of claim 1 , wherein the enrollment request comprises a computerized device identifier corresponding to an externally accessible serial number for the at least one computerized device.
6 . The system of claim 1 , wherein the at least one computerized device comprises an electronic control unit of an automobile.
7 . The system of claim 1 , wherein the certificate API device is operable to receive and archive a wrapped key for a matching enrollment package in response to detecting that one of the at least one computerized device comprises volatile memory.
8 . The system of claim 7 , wherein the certificate API device is operable to retrieve and transmit the wrapped key with metadata so that it is properly associated with the one of the at least one computerized device.
9 . The system of claim 2 , wherein the certificate API device is operable to provide the enrollment package and the end entity certificate package to the at least one computerized device without a connection to an external network.
10 . The system of claim 2 , wherein the at least one computerized device is a road-side unit (RSU), and wherein the certificate API device is operable to provide the enrollment package to the at least one computerized device.
11 . The system of claim 10 , wherein the RSU is a street light sensor or a construction warning sensor.
12 . The system of claim 2 , wherein the certificate API device is operable to generate the end entity certificate package by bundling the one or more end entity certificates retrieved from the CMS.
13 . The system of claim 1 , wherein the certificate API device is operable to generate the enrollment package by bundling the one or more enrollment certificates retrieved from the CMS.
14 . A method for securely provisioning at least one computerized device using a digital asset, the method comprising:
receiving, via an application programming interface (API), an enrollment request for the at least one computerized device, wherein the enrollment request facilitates communications between computerized devices;
generating, via the API, an enrollment package including one or more enrollment certificates received from a certificate management service (CMS) for the at least one computerized device, upon transmitting at least one enrollment certificate request to the CMS, and bootstrapping data for the at least one computerized device, the one or more enrollment certificates being separate from the bootstrapping data, wherein the bootstrapping data includes computer program updates that enable the at least one computerized device to install an application to be executed; and
transmitting, via the API, the enrollment package to the at least one computerized device, wherein the enrollment package is operable to modify the at least one computerized device, wherein the modification of the at least one computerized device facilitates exchanging of secure communications between the at least one computerized device and additional computerized devices.
15 . The method of claim 14 further comprising:
generating, via the API, an end entity certificate package for the at least one computerized device, the end entity certificate package including one or more end entity certificates retrieved, via the API, from the CMS; and
transmitting, via the API, the end entity certificate package to the at least one computerized device, wherein the end entity certificate package is operable to modify the at least one computerized device, wherein the modification of the at least one computerized device enables exchanging of secure communications between the at least one computerized device and additional computerized devices.
16 . The method of claim 14 , comprising:
receiving, via the API, a request for a computerized device status for the at least one computerized device.
17 . The method of claim 14 , comprising:
receiving, via the API, a request for an enrollment status for a group of computerized devices.
18 . The method of claim 14 , wherein the enrollment request comprises a computerized device identifier corresponding to an externally accessible serial number for the at least one computerized device.
19 . The method of claim 14 , wherein the at least one computerized device comprises an electronic control unit of an automobile.
20 . The method of claim 15 , comprising:
retrieving a wrapped key from the CMS when the at least one computerized device includes volatile memory.
21 . The method of claim 20 , comprising:
transmitting the wrapped key to the at least one computerized device.
22 . The method of claim 15 , comprising:
enabling the at least one computerized device to retrieve the enrollment package and the end entity certificate package without a connection to an external network.
23 . One or more non-transitory computer-readable media comprising a plurality of computer-executable instructions for an application programming interface (API) that uses a digital asset, wherein the plurality of computer-executable instructions, when executed by a processor, causes the processor to:
receive, via the API, an enrollment request for at least one computerized device, wherein the enrollment request facilitates communications between computerized devices;
generate, via the API, an enrollment package for the at least one computerized device by transmitting at least one enrollment certificate request to a certificate management service (CMS), and receiving one or more enrollment certificates for inclusion in the enrollment package from the CMS, wherein the enrollment package includes bootstrapping data for the at least one computerized device and the one or more enrollment certificates, the one or more enrollment certificates being separate from the bootstrapping data, wherein the bootstrapping data includes computer program updates that enable the at least one computerized device to install an application to be executed; and
transmit, via the API, the enrollment package to the at least one computerized device, wherein the enrollment package is operable to modify the at least one computerized device, wherein the enrollment package facilitates exchanging of secure communications among the at least one computerized device and additional computerized devices.
24 . The one or more non-transitory computer-readable media of claim 23 wherein the plurality of computer-executable instructions, when executed by the processor, causes the processor to:
generate, via the API, an end entity certificate package for the at least one computerized device, the end entity certificate package including one or more end entity certificates retrieved, via the API, from the CMS; and
transmit, via the API, the end entity certificate package to the at least one computerized device, wherein the end entity certificate package is operable to modify the at least one computerized device, wherein the end entity certificate package facilitates exchanging of secure communications among the at least one computerized device and additional computerized devices.
25 . The one or more non-transitory computer-readable media of claim 24 , wherein the plurality of computer-executable instructions causes the processor to provide the enrollment package and the end entity certificate package to the at least one computerized device without a connection to an external network.
26 . The one or more non-transitory computer-readable media of claim 23 , wherein the plurality of computer-executable instructions causes the processor to:
receive, via the API, a request for a computerized device status for the at least one computerized device.
27 . The one or more non-transitory computer-readable media of claim 23 , wherein the plurality of computer-executable instructions causes the processor to:
receive, via the API, a request for an enrollment status for a group of computerized devices.
28 . The one or more non-transitory computer-readable media of claim 23 , wherein the enrollment request comprises a computerized device identifier corresponding to an externally accessible serial number for the at least one computerized device.
29 . The one or more non-transitory computer-readable media of claim 23 , wherein the at least one computerized device comprises an electronic control unit of an automobile.
30 . The one or more non-transitory computer-readable media of claim 23 , wherein the plurality of computer-executable instructions causes the processor to:
obtain a wrapped key for the at least one computerized device, which comprises volatile memory.
31 . The one or more non-transitory computer-readable media of claim 30 , wherein the plurality of computer-executable instructions causes the processor to:
transmit the wrapped key to the at least one computerized device.
32 . The one or more non-transitory computer-readable media of claim 24 , wherein the plurality of computer-executable instructions causes the processor to:
provide the enrollment package and the end entity certificate package without a connection to an external network.
33 . The one or more non-transitory computer-readable media of claim 23 , wherein the plurality of computer-executable instructions causes the processor to:
generate the enrollment package by bundling the one or more enrollment certificates.
34 . The one or more non-transitory computer-readable media of claim 23 , wherein the plurality of computer-executable instructions causes the processor to:
generate the enrollment package by obtaining the enrollment package from the CMS.
35 . A method for securely provisioning at least one computerized device using a digital asset comprising an enrollment package and an end entity certificate package, the method comprising:
receiving, via an application programming interface (API), an enrollment request for the at least one computerized device, wherein the enrollment request facilitates vehicle to vehicle or vehicle to infrastructure communications;
generating, via the API, the enrollment package for the at least one computerized device by transmitting at least one enrollment certificate request to a certificate management service (CMS), which generates one or more enrollment certificates for inclusion in the enrollment package, wherein the enrollment package includes bootstrapping data and the one or more enrollment certificates for the at least one computerized device, the one or more enrollment certificates being separate from the bootstrapping data, wherein the bootstrapping data includes computer program updates that enable the at least one computerized device to install an application to be executed;
generating, via the API, the end entity certificate package for the at least one computerized device by transmitting at least one end entity certificate request to the CMS, which generates one or more end entity certificates for the end entity certificate package; and
transmitting, via the API, the enrollment package and the end entity certificate package to the at least one computerized device, wherein the enrollment package and the end entity certificate package are configured to modify the at least one computerized device, which enables the at least one computerized device to exchange secure communications with additional computerized devices.