Media client device authentication using hardware root of trust
View Patent ↗A client device for media playback includes a user-installable media client application which implements the client-side of a digital rights management (DRM) system. The client device employs secure boot and verifies the user-installed application. The application is hardened against reverse engineering, and it utilizes a special API provided by the client device to tie into the secure boot, bridging the gap between the secure boot and the client-side of the DRM system contained within the application.
1. A client device, comprising:
at least one processor;
one-time-programmable (OTP) storage including a first verification key and one or more second verification keys; and
a computer-readable storage medium, coupled to the at least one processor, including:
a media client,
firmware,
a boot image including
a public encryption key securely stored in the boot image, and
an encrypted symmetric key, and
computer-readable instructions, when executed by the at least one processor, are configured to:
engage in a secure boot process to authenticate the boot image for use in a rights management scheme employing a private encryption key at a rights management server and the public encryption key by:
verifying a signature of the public encryption key using the first verification key,
decrypting the encrypted symmetric key to generate a decrypted symmetric key,
verifying a signature of the decrypted symmetric key using the one or more second verification keys, and
verifying a signature of the boot image using the decrypted symmetric key,
load and execute the firmware, responsive to successful completion of the secure boot process,
responsive to a request from the media client, use, by the firmware, the public encryption key to create an encrypted device registration message, and
return the encrypted device registration message to the media client, and
forward, by the media client, the encrypted device registration message to the rights management server to register the client device.
2. The client device according to claim 1 , wherein the boot image further includes respective stored signatures for the stored public encryption key, the encrypted symmetric key, and firmware components of the boot image, and wherein the computer-readable instructions are further configured to verify a signature for a given key or firmware component by (1) calculating a signature for the given key or firmware component and (2) comparing the calculated signature with a respective one of the stored signatures.
3. The client device according to claim 1 , wherein the media client implements a client side of a digital rights management (DRM) system.
4. The client device according to claim 1 , wherein the media client is user-installed on the client device.
5. The client device according to claim 4 , wherein the firmware of the client device verifies the media client on the client device.
6. A method enabling a client device to authenticate itself to a media client and a rights management server, the method comprising:
engaging in a secure boot process to authenticate a boot image for use in a rights management scheme employing a private encryption key at a rights management server and a public encryption key securely stored in the boot image by:
verifying a signature of the public encryption key using a first verification key stored in one-time-programmable (OTP) storage,
decrypting an encrypted symmetric key stored in the boot image to generate a decrypted symmetric key,
verifying a signature of the decrypted symmetric key using one or more second verification keys stored in OTP storage, and
verifying a signature of the boot image using the decrypted symmetric key,
loading and executing firmware stored on the client device, responsive to successful completion of the secure boot process,
responsive to a request from a media client stored on the client device, using the public encryption key to create an encrypted device registration message, and
returning the encrypted device registration message to the media client, and
forwarding the encrypted device registration message to the rights management server to register the client device.
7. The method according to claim 6 , wherein the boot image further includes respective stored signatures for the stored public encryption key, the encrypted symmetric key, and firmware components of the boot image, and a signature for a given key or firmware component is verified by (1) calculating a signature for the given key or firmware component and (2) comparing the calculated signature with a respective one of the stored signatures.
8. The method according to claim 6 , wherein the media client implements a client side of a digital rights management (DRM) system.
9. The method according to claim 8 , wherein the media client is user-installed on the client device.
10. The method according to claim 9 , wherein the firmware of the client device verifies the media client on the client device.