Content distribution with renewable content protection
A method and apparatus for playing back a media content instance is disclosed. The method permits the use of downloadable variants to upgrade or change cryptographic functions performed by the playback device, thus permitting content protection schemes to be renewed.
1. A method of playing back a media content instance according to at least one of a plurality of microcode variants, each of the plurality of microcode variants for performing an associated microcode function, the method comprising:
downloading, by a playback device communicatively coupled to a storage device the media content instance from an online server, the media content instance comprising a sequence of encrypted media content segments, each encrypted media content segment encrypted by a different segment key than other of the encrypted media content segments and representing a different temporal portion of a content title and selected from differing ones of a plurality of unencrypted versions of the temporal portion of the content title, each encrypted media content segment decryptable by the segment key associated with the encrypted media content segment, wherein the media content instance is downloaded with renewed microcode variants and respective indexes, the renewed microcode variants comprising a first renewed microcode variant and a second renewed microcode variant and the respective indexes identifying the associated renewed microcode variant for replacing an originally provisioned one of the plurality of microcode variants for execution to enable playback of the media content instance;
decrypting a defect map with the second renewed microcode variant, and matching the decrypted defect map to an actual defect map of the storage device;
validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device;
generating the segment key for each encrypted media content segment at least in part by the playback device executing the first renewed microcode variant identified by the associated index;
decrypting each of the encrypted media content segments of the media content instance according to the generated segment key associated with the respective encrypted media content segment; and
playing, with the playback device, the decrypted media content segments.
2. The method of claim 1 , wherein playing, with the playback device, the decrypted media content segments further comprises:
generating a locator for each media content segment of the media content instance; and
assembling the media content segments of the media content instance according to the locator.
3. The method of claim 1 , wherein the storage device is communicatively coupled to the online server via the playback device.
4. The method of claim 1 , wherein:
the execution of the second renewed microcode variant is performed by both the storage device and the playback device.
5. The method of claim 1 , wherein the segment keys are stored in a secure memory of the storage device.
6. The method of claim 1 , wherein at least one of the renewed microcode variants is specific to the content title.
7. The method of claim 1 , wherein:
the segment keys generated for each of the encrypted media content segments are generated from a plurality media keys received from the online server.
8. The method of claim 1 , wherein the renewed microcode variants are specific to the storage device.
9. The method of claim 1 , wherein:
the originally provisioned microcode variants are pre-installed in the playback device communicatively coupled to the storage device, the playback device generating each segment key and decrypting each of the encrypted media content segments.
10. The method of claim 1 , wherein the originally provisioned microcode variants are stored on the storage device.
11. The method of claim 1 , wherein:
the originally provisioned microcode variants are executed by a processor of a playback device communicatively coupled to the storage device; and
the renewed microcode variants is are instantiated as stateless so as to be removed from processor memory when playback of the media content instance is stopped.
12. The method of claim 1 , wherein:
the method further comprises:
deriving a device hardware authentication code with the decrypted defect map and matching the derived device hardware authentication code with an existing hardware authentication code;
validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device comprises:
validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device and matching the device hardware authentication code with an existing hardware authentication code.
13. An apparatus for playing back a media content instance, according to at least one of a plurality of processor microcode variants, each of the plurality of processor microcode variants for performing an associated microcode function, comprising:
a playback device, comprising a processor communicatively coupled to a processor memory, the memory storing processor instructions for:
downloading, by the playback device communicatively coupled to a storage device, the media content instance from an online server, the media content instance comprising an assembly of media content segments, each media content segment comprising differing ones of a plurality of versions of a temporal portion of a content title, and each media content segment encrypted by a different segment key than other of the encrypted media content segments and decryptable by the segment key associated with the encrypted media content segment, wherein the media content instance is downloaded with renewed processor microcode variants and respective indices, the renewed microcode variants comprising a first renewed processor microcode variant and a second renewed processor microcode variant, wherein the respective indices identify the associated renewed processor microcode variant for replacing an originally provisioned one of the plurality of processor microcode variants for execution to enable playback of the media content instance;
decrypting a defect map with the second renewed processor microcode variant, and matching the decrypted defect map to the actual defect map of the storage device;
validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device;
generating, the segment key for each encrypted media content segment at least in part by the playback device executing the first renewed processor microcode identified by the associated index;
decrypting each of the encrypted media content segments of the media content instance according to the generated segment key associated with the respective encrypted media content segment; and
playing, with the playback device, the decrypted media content segments.
14. The apparatus of claim 13 , wherein instructions for playing, with the playback device, the decrypted media content segments of the media content instance further comprise instructions for:
generating a locator for each media content segment of the media content instance; and
assembling the media content segments of the media content instance according to the locator.
15. The apparatus of claim 13 , wherein:
the execution of the second renewed processor microcode variant is performed by both the storage device and the playback device.
16. The apparatus of claim 13 , wherein:
the each of the generated segment keys are generated from a plurality media keys received from the online server.
17. The apparatus of claim 13 , wherein the originally provisioned processor microcode variant is stored on the storage device.
18. The apparatus of claim 13 , wherein:
the renewed processor microcode variants are instantiated as stateless so as to be removed from the processor memory when playback of the media content instance is stopped.
19. The apparatus of claim 13 , wherein at least one of the first renewed processor microcode variant and the second renewed processor microcode variant is specific to the content title.
20. The apparatus of claim 13 , wherein at least one of the first renewed processor microcode variant and the second renewed processor microcode variant is specific to the storage device.
21. The apparatus of claim 13 , wherein:
the processor instructions further comprise processor instructions for:
deriving a device hardware authentication code with the decrypted defect map and matching the derived device hardware authentication code with an existing hardware authentication code;
the processor instructions for validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device comprise processor instructions for:
validating the storage device at least in part by matching the decrypted defect map to the actual defect map of the storage device and matching the device hardware authentication code with an existing hardware authentication code.