Secure bootstrapping of client device with trusted server provided by untrusted cloud service
A provisioning client obtains an identifier from a public server and a one-time password from a trusted server. The provisioning client combines the one-time password with the identifier to create an activation code for a client device and presents the activation code to the client device. The activation code enables the client device to download trusted cryptographic information from the trusted server in a communication session that is secured using the one-time password.
1. A method comprising:
at a provisioning client, obtaining an identifier from a public server;
obtaining a one-time password from a trusted server;
combining the one-time password with the identifier to create an activation code for a client device; and
presenting the activation code to the client device, enabling the client device to download trusted cryptographic information from the trusted server in a communication session that is secured using the one-time password.
2. The method of claim 1 , wherein obtaining the identifier comprises:
sending a request for the identifier, wherein the request for the identifier includes an address of the trusted server; and
receiving the identifier from the public server.
3. The method of claim 1 , wherein obtaining the one-time password comprises:
sending a request for the one-time password to the trusted server; and
receiving the one-time password from the trusted server through a previously secured communication session between the trusted server and the provisioning client.
4. The method of claim 3 , wherein the request for the one-time password includes the identifier obtained from the public server.
5. The method of claim 1 , wherein presenting the activation code to the client device comprises displaying the activation code to a user for entry in the client device.
6. The method of claim 1 , wherein the communication session is secured according to a Password Authenticated Key Exchange (PAKE) protocol using the one-time password as a shared secret in the PAKE protocol.
7. The method of claim 6 , wherein the PAKE protocol securing the communication session between the trusted server and the client device is proxied via the public server.
8. An apparatus comprising:
a communication interface that enables network communications; and
a processor, coupled to the communication interface, and configured to:
at a provisioning client, obtain an identifier from a public server via the communication interface;
obtain a one-time password from a trusted server via the communication interface;
combine the one-time password with the identifier to create an activation code for a client device; and
present the activation code to the client device, enabling the client device to download trusted cryptographic information from the trusted server in a communication session that is secured using the one-time password.
9. The apparatus of claim 8 , wherein the processor is configured to obtain the identifier by:
causing the communication interface to send a request for the identifier, wherein the request for the identifier includes an address of the trusted server; and
receiving the identifier from the public server via the communication interface.
10. The apparatus of claim 8 , wherein the processor is configured to obtain the one-time password by:
causing the communication interface to send a request for the one-time password to the trusted server; and
receiving the one-time password via the communication interface from the trusted server through a previously secured communication session between the trusted server and the provisioning client.
11. The apparatus of claim 10 , wherein the processor is configured to include the identifier obtained from the public server in the request for the one-time password.
12. The apparatus of claim 8 , further comprising a display, wherein the processor is configured to present the activation code to the client device by causing the display to show the activation code to a user for entry in the client device.
13. The apparatus of claim 8 , wherein the communication session is secured according to a Password Authenticated Key Exchange (PAKE) protocol using the one-time password as a shared secret in the PAKE protocol.
14. The apparatus of claim 13 , wherein the PAKE protocol securing the communication session between the trusted server and the client device is proxied via the public server.
15. A system comprising:
a client device;
a trusted server configured to generate a one-time password for the client device; and
a provisioning client configured to:
obtain an identifier from a public server;
obtain the one-time password from the trusted server;
combine the one-time password with the identifier to create an activation code for the client device; and
present the activation code to the client device, enabling the client device to download trusted cryptographic information from the trusted server in a communication session that is secured using the one-time password.
16. The system of claim 15 , wherein the provisioning client is configured to obtain the identifier by:
sending a request for the identifier, wherein the request for the identifier includes an address of the trusted server; and
receiving the identifier from the public server.
17. The system of claim 15 , wherein the provisioning client is configured to obtain the one-time password by:
sending a request for the one-time password to the trusted server; and
receiving the one-time password from the trusted server through a previously secured communication session between the trusted server and the provisioning client.
18. The system of claim 17 , wherein the provisioning client is configured to include the identifier obtained from the public server in the request for the one-time password.
19. The system of claim 15 , wherein the provisioning client is configured to present the activation code to the client device by displaying the activation code to a user for entry in the client device.
20. The system of claim 15 , wherein the communication session is secured according to a Password Authenticated Key Exchange (PAKE) protocol using the one-time password as a shared secret in the PAKE protocol.