IP Library Granted Patent US 7,996,913
Granted Patent B2
US 7,996,913 · App. 11/981,977 · Granted Aug 9, 2011

Self-protecting digital content

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,996,913
App. No.
11/981,977
Granted
Aug 9, 2011
Kind
B2
Abstract

Technologies are disclosed to transfer responsibility and control over security from player makers to content authors by enabling integration of security logic and content. An exemplary optical disc carries an encrypted digital video title combined with data processing operations that implement the title's security policies and decryption processes. Player devices include a processing environment (e.g., a real-time virtual machine), which plays content by interpreting its processing operations. Players also provide procedure calls to enable content code to load data from media, perform network communications, determine playback environment configurations, access secure nonvolatile storage, submit data to CODECs for output, and/or perform cryptographic operations. Content can insert forensic watermarks in decoded output for tracing pirate copies. If pirates compromise a player or title, future content can be mastered with security features that, for example, block the attack, revoke pirated media, or use native code to correct player vulnerabilities.

Claims (40)

1. A computer-implemented method comprising:

using a processor in a media player to receive data including digital content and data processing instructions packaged with the digital content, the received data being storable in a volatile memory of the media player;

executing the data processing instructions from the volatile memory by using a computer language interpreter of the media player, the data processing instructions, when executed by the computer language interpreter, configuring the computer language interpreter to:

interrogate a playback environment of the media player, the received data processing instructions further configured to perform a security check that interrogates the playback environment of the media player, the received data processing instructions further configured to reduce output quality if a result of the interrogation of the playback environment is uncertain;

query one or more cryptographic primitives stored in a non-volatile memory of the media player, the cryptographic primitives being resident in the media player prior to receipt of the received data, the cryptographic primitives including cryptographic data and executable instructions for performing cryptographic operations, the computer language interpreter not having access to the non-volatile memory in which the cryptographic primitives are stored, the cryptographic operations including operations for decrypting the received data; and

request execution of a cryptographic operation by the cryptographic primitives, the cryptographic operation including computing a cryptographic hash of at least a portion of the received data, the computer language interpreter using the cryptographic hash in playing the digital content.

2. The method as claimed in claim 1 including using the processor in the media player to initialize a media interface for receiving the data.

3. The method as claimed in claim 1 including configuring the computer language interpreter to query an output interface of the media player.

4. The method as claimed in claim 1 including configuring the computer language interpreter to determine a playback environment configuration in the media player.

5. The method as claimed in claim 1 including configuring the computer language interpreter to load cryptographic keys.

6. The method as claimed in claim 1 including configuring the computer language interpreter to request a decryption key from the cryptographic primitives.

7. The method as claimed in claim 1 including configuring the computer language interpreter to use a decryption key to decrypt the digital content for playback on the media player.

8. The method as claimed in claim 1 including configuring the computer language interpreter to use a digital signature to unlock a portion of the non-volatile memory.

9. The method as claimed in claim 1 including configuring the computer language interpreter to use the cryptographic hash to validate the digital content.

10. The method as claimed in claim 1 including configuring the computer language interpreter to use the cryptographic hash to validate the data processing instructions.

11. An apparatus comprising:

a volatile memory;

a non-volatile memory;

a processor to receive data including digital content and data processing instructions packaged with the digital content, the received data being storable in the volatile memory; and

a computer language interpreter, executable by the processor, to process the data processing instructions from the volatile memory, the data processing instructions, when executed by the computer language interpreter, configuring the computer language interpreter to:

interrogate a playback environment of the apparatus, the received data processing instructions further configured to perform a security check that interrogates the playback environment of the apparatus, the received data processing instructions further configured to reduce output quality if a result of the interrogation of the playback environment is uncertain;

query one or more cryptographic primitives stored in the non-volatile memory, the cryptographic primitives being resident in the media player prior to receipt of the received data, the cryptographic primitives including cryptographic data and executable instructions for performing cryptographic operations, the computer language interpreter not having access to the non-volatile memory in which the cryptographic primitives are stored, the cryptographic operations including operations for decrypting the received data; and

request execution of a cryptographic operation by the cryptographic primitives, the cryptographic operation including computing a cryptographic hash of at least a portion of the received data, the computer language interpreter using the cryptographic hash in playing the digital content.

12. The apparatus as claimed in claim 11 including a media interface, the processor being configured to initialize the media interface for receiving the data.

13. The apparatus as claimed in claim 11 including an output interface, the computer language interpreter being configured to query the output interface.

14. The apparatus as claimed in claim 11 , the computer language interpreter being configured to determine a playback environment configuration in the apparatus.

15. The apparatus as claimed in claim 11 , the computer language interpreter being configured to load cryptographic keys.

16. The apparatus as claimed in claim 11 , the computer language interpreter being configured to request a decryption key from the cryptographic primitives.

17. The apparatus as claimed in claim 11 , the computer language interpreter being configured to use a decryption key to decrypt the digital content for playback.

18. The apparatus as claimed in claim 11 , the computer language interpreter being configured to use a digital signature to unlock a portion of the non-volatile memory.

19. The apparatus as claimed in claim 11 , the computer language interpreter being configured to use the cryptographic hash to validate the digital content.

20. The apparatus as claimed in claim 11 , the computer language interpreter being configured to use the cryptographic hash to validate the data processing instructions.

21. An article of manufacture comprising a non-transitory machine-readable storage medium having machine executable instructions embedded thereon, which when executed by a processor in a media player, cause the media player to:

receive data at the media player, the received data including digital content and data processing instructions packaged with the digital content, the received data being storable in a volatile memory of the media player;

execute the data processing instructions from the volatile memory by using a computer language interpreter of the media player, the data processing instructions, when executed by the computer language interpreter, configuring the computer language interpreter to:

interrogate a playback environment of the media player, the received data processing instructions further configured to perform a security check that interrogates the playback environment of the media player, the received data processing instructions further configured to reduce output quality if a result of the interrogation of the playback environment is uncertain;

query one or more cryptographic primitives stored in a non-volatile memory of the media player, the cryptographic primitives being resident in the media player prior to receipt of the received data, the cryptographic primitives including cryptographic data and executable instructions for performing cryptographic operations, the computer language interpreter not having access to the non-volatile memory in which the cryptographic primitives are stored, the cryptographic operations including operations for decrypting the received data; and

request execution of a cryptographic operation by the cryptographic primitives, the cryptographic operation including computing a cryptographic hash of at least a portion of the received data, the computer language interpreter using the cryptographic hash in playing the digital content.

22. The article of manufacture as claimed in claim 21 , the program instructions being configured to initialize a media interface for receiving the data.

23. The article of manufacture as claimed in claim 21 , the program instructions being configured to cause the computer language interpreter to query an output interface of the media player.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: IRDETO USA, INC.
To: IRDETO B.V.
Reel/Frame 035198/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2013
From: ROVI SOLUTIONS CORPORATION
To: IRDETO USA, INC.
Reel/Frame 031134/0695 →
CHANGE OF NAME Recorded Jan 12, 2011
From: MACROVISION CORPORATION
To: ROVI SOLUTIONS CORPORATION
Reel/Frame 025627/0135 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2010
From: JPMORGAN CHASE BANK, N.A. (A NATIONAL ASSOCIATION)
To: ALL MEDIA GUIDE, LLC; APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; INDEX SYSTEMS INC.; ODS PROPERTIES, INC.; ROVI DATA SOLUTIONS, INC. (FORMERLY KNOWN AS TV GUIDE DATA SOLUTIONS, INC.); ROVI GUIDES, INC. (FORMERLY KNOWN AS GEMSTAR-TV GUIDE INTERNATIONAL, INC.); ROVI SOLUTIONS CORPORATION (FORMERLY KNOWN AS MACROVISION CORPORATION); ROVI SOLUTIONS LIMITED (FORMERLY KNOWN AS MACROVISION EUROPE LIMITED); ROVI TECHNOLOGIES CORPORATION; STARSIGHT TELECAST, INC.; TV GUIDE, INC.; TV GUIDE ONLINE, LLC; UNITED VIDEO PROPERTIES, INC.
Reel/Frame 025222/0731 →
SECURITY AGREEMENT Recorded May 15, 2008
From: APTIV DIGITAL, INC.; GEMSTAR DEVELOPMENT CORPORATION; GEMSTAR-TV GUIDE INTERNATIONAL, INC.; INDEX SYSTEMS INC; MACROVISION CORPORATION; ODS PROPERTIES, INC.; STARSIGHT TELECAST, INC.; TV GUIDE ONLINE, LLC; UNITED VIDEO PROPERTIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 020986/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2008
From: CRYPTOGRAPHY RESEARCH, INC.
To: MACROVISION CORPORATION
Reel/Frame 020442/0593 →