Television has already moved into the area of storage, with the digital video recorder that has a built-in hard disk. The disks in use today range from 20 Gigabytes to 200 Gigabytes or more, but it is easy to see that high definition TV will require much larger storage capability. Furthermore, as digital piracy becomes more sophisticated and ubiquitous, new techniques must be developed to provide access to ever greater amounts of content in a controlled and secure manner. Similarly, other multimedia platforms, such as game platforms, are also supplied in digital format having their own storage and have similar piracy problems.
The disclosures of all references mentioned throughout the present specification, as well as the disclosures of all references mentioned in those references, are hereby incorporated herein by reference.
The present invention provides for a multimedia storage and access protocol in which content protection is implemented for a mass storage device that is capable of storing, for example, one terabyte of data, equivalent to approximately 1,000 hrs of MPEG2 standard definition video and audio.
The mass storage device of the present invention is preferably a removable mass storage (RMS) device which is insertable into, removable from, and accessible via a dedicated drive, referred to herein as an RMS Player, which is configured to both read from and write to the RMS.
In order to simplify the RMS Player functionality, it may be integrated into an STB-PVR system such as the XTV™ system, commercially available from NDS Limited, One London Road, Staines, Middlesex TW18 4EX United Kingdom. This integration may be by means of either an internal or external RMS Player. The RMS Player may be directly connected to digital playout devices such as a digital TV, and to other devices in a home network. The RMS Player may be used in conjunction with a device that includes a Secure Video Processor (SVP) technology commercially available from NDS Limited. The RMS Player can also interface with other existing Digital Rights Management (DRM) systems.
The RMS may have a licensing arrangement similar to that for DVD player and disk production. Raw RMS media, such as optical disks, may be post-processed in a secure facility which prepares them for use, such as by pre-loading content onto the RMS.
In one aspect of the present invention a method is provided for protecting content, the method including providing a host, a player, a communications link between the host and the player for communicating content therebetween, a recordable medium adapted to be played by and recorded to by the player, and an encrypted item of content, and producing a secure content license corresponding to the item of content, the secure content license including a key for accessing the item of content, a permission list for determining whether either of the host and the player is allowed to access the item of content under pre-defined circumstances, the circumstances including a type of use of the encrypted item of content, an identification of the recordable medium, the recordable medium identification generated in accordance with a predefined recordable medium identification generation algorithm and describing at least one physical characteristic of the recordable medium, and an identification of the item of content, the item identification describing at least one data characteristic of the item of content.
In another aspect of the present invention the providing step includes storing the item of content on the recordable medium in advance of the player first accessing the content.
In another aspect of the present invention the storing step includes storing an indicator on the recordable medium indicating that the item of content is pre-authorized for access by the player.
In another aspect of the present invention the providing step includes configuring the host to support Secure Video Processor (SVP) protocols.
In another aspect of the present invention the providing step includes configuring the host to receive content via a conditional access (CA) gateway.
In another aspect of the present invention the providing step includes configuring the host to support Secure Video Processor (SVP) protocols and receive content via a conditional access (CA) gateway.
In another aspect of the present invention the providing step includes configuring the player to support Secure Video Processor (SVP) protocols.
In another aspect of the present invention the providing step includes configuring the player to receive CA gateway content from the host.
In another aspect of the present invention the method further includes detecting the presence or absence of an indicator on the recordable medium indicating that the item of content is pre-authorized for access by the player, requesting, if the indicator is not detected on the recordable medium, authorization for the player to access the item of content.
In another aspect of the present invention the method further includes storing a location indicator of an authorization service center within the content license,
In another aspect of the present invention the requesting step includes sending the content license to the authorization service center at the location, receiving a modified content license from the authorization service center including an authorization for the player to access the item of content.
In another aspect of the present invention the storing a location indicator step includes storing a URL of the authorization service center within the content license.
In another aspect of the present invention the producing step includes generating the identification of the item of content as a mathematical function of at least a portion of the item of content.
In another aspect of the present invention the producing step includes generating the recordable medium identifier that is unique to the recordable medium in accordance with a predefined statistical likelihood.
In another aspect of the present invention the generating step includes generating as part of a formatting process of the recordable medium.
In another aspect of the present invention the method further includes storing the recordable medium identifier on the recordable medium.
In another aspect of the present invention the method further includes generating a comparison identification of the recordable medium in accordance with the predefined recordable medium identification generation algorithm and describing the at least one physical characteristic of the recordable medium, comparing the recordable medium identification with the comparison identification, and validating the recordable medium if the recordable medium identification and the comparison identification are identical within a predefined tolerance.
In another aspect of the present invention the method further includes preventing access to the recordable medium if the recordable medium identification and the comparison identification are not identical within the predefined tolerance.
In another aspect of the present invention the method further includes creating a certificate for the recordable medium, the certificate including the recordable medium identification and a recordable medium public key.
In another aspect of the present invention the creating a certificate step includes creating the recordable medium certificate including a list of restrictions indicating permissible uses of the recordable medium.
In another aspect of the present invention the creating a certificate step includes creating the restrictions to include any of the following restrictions the recordable medium does not allow local recording, the recordable medium permits local recording, and the recordable medium permits recording content from at least one specified content provider only.
In another aspect of the present invention the method further includes signing the recordable medium certificate with a signing key of the manufacturer of the recordable medium.
In another aspect of the present invention the method further includes validating the recordable medium certificate signature with a public key of the authorized manufacturer or producer of the recordable medium.
In another aspect of the present invention the method further includes storing a certificate for the manufacturer of the recordable medium certificate on the recordable medium.
In another aspect of the present invention the method further includes signing a chain of certificates from the recordable medium manufacturer's certificate to a root certificate with a corresponding chain of signing keys
In another aspect of the present invention the method further includes storing the chain of certificates on the recordable medium.
In another aspect of the present invention the method further includes signing any of the chain of certificates with a recordable medium private key.
In another aspect of the present invention the method further includes validating the chain of certificates with corresponding chain of public keys.
In another aspect of the present invention the providing step includes providing the recordable medium having any of the following: a list of revoked devices, a software update for the player, a data update for the player, and a list of public keys of other devices for encrypting any items of content on the recordable medium or other recordable media for use with the other devices.
In another aspect of the present invention the producing step includes producing the secure content license having a Content Segment License (CSL) corresponding to a specific segment of the unit of content, a Content User License (CUL) specifying user permissions with respect to the unit of content, and a Baseline Entitlement Control Message (BL-ECM) including an indication of a control word for decrypting the unit of content.
In another aspect of the present invention the method further includes creating a directory of data stored on the recordable medium, and signing the directory with either of a signing key of an authorized manufacturer of the recordable medium where the content is pre-loaded onto the recordable medium, and a secure processor key of the player where the content is stored to the recordable medium by the player.
In another aspect of the present invention the method further includes configuring the player to receive content from the host for recording onto the recordable medium, and to receive from the host a content restriction imposed by or on the host for preserving by the player.
In another aspect of the present invention the configuring step includes configuring the player to permit playout of content received from the host to any of a plurality of hosts exclusively from the recordable medium where the content restriction indicates that content may be played out via a plurality of hosts.
In another aspect of the present invention the method further includes rendering the content exclusively accessible to at least one player in a domain of players, and storing the item of content onto the recordable medium.
In another aspect of the present invention the rendering and storing steps are performed by the player.
In another aspect of the present invention the rendering step includes any of transmitting a list of players in the domain to the host together with the content, storing the list at the host, and receiving the list generated by a user.
In another aspect of the present invention a plurality of public keys corresponding to the list of players are read from a list stored on the recordable media of corresponding player IDs for selection by a user via either of a label affixed to the player and a user interface menu.
In another aspect of the present invention a plurality of public keys corresponding to the list of players are received from each of the players belonging to the domain.
In another aspect of the present invention the method further includes storing the item of content on the recordable medium where the content is received via broadcast, multicast or unicast, and configuring either of the recordable medium and the content to allow playback of the content stored on the recordable medium by any player.
In another aspect of the present invention the method further includes configuring the content with a regional restriction specifying at least one region that is allowed to or disallowed from accessing the content, and configuring the player to maintain a record of the regions to which it belongs and allow either of storage and playback of the content where the player belongs to the region specified in the regional restriction.
In another aspect of the present invention the configuring content step includes specifying either of a geographic region and a logically defined region.
In another aspect of the present invention the method further includes storing the item of content on the recordable medium, and configuring either of the recordable medium and the content to allow playback of the content stored on the recordable medium by any player and to prevent subsequent storage of the content onto another device.
In another aspect of the present invention the method further includes configuring the player to permit a personal copy of the content to be stored to recordable medium and distributed only to an SVP-compliant device for immediate viewing thereat, where the SVP-compliant device is configured to prevent local storing of the content or output of the content to any other device.
In another aspect of the present invention the method further includes configuring the content license to include data required for an SVP-compliant content license and BL-ECM.
In another aspect of the present invention the method further includes configuring the recordable medium to permit storage thereto of content originating exclusively from a predefined source.
In another aspect of the present invention the providing step includes storing the item of content on the recordable medium in advance of the player first accessing the content, and where the configuring step includes configuring the recordable medium to permit storage thereto of content originating exclusively from the source of the stored content.
In another aspect of the present invention the method further includes associating a password with the content, and configuring either of the player and the host to receive and validate the password prior to permitting access to the content.
In another aspect of the present invention the method further includes storing the item of content on the recordable medium in advance of the player first accessing the content, where the content is non-pre-authorized content, and decrypting with the password received from an authorization center a BL-ECM including a control word for decrypting the content.
In another aspect of the present invention the method further includes configuring the player to disallow access to the content if a current date received from an authorized time source is later than a final expiration date specified in the content license.
In another aspect of the present invention the method further includes configuring the player to permit access to the content if a current date received from an authorized time source is not later than a final expiration date specified in the content license.
In another aspect of the present invention a method is provided for validating content stored on a storage medium, the method including validating a content storage medium by accessing a certificate stored on a content storage medium, determining that an identifier in the certificate matches the results of an algorithm applied to physical properties of the content storage medium, determining that the certificate is properly signed, and if the content storage medium is valid, validating content stored on the content storage medium by accessing a content license associated with an item of content stored on the content storage medium, the content license having a plurality of components, each component signed by a signing entity, determining that each of the components is properly signed, and decrypting a control word stored as part of the content license.
In another aspect of the present invention a method is provided for writing locally recorded content to a storage medium, the method including receiving a broadcast, multicast or unicast stream containing content and an associated content license (CL) including a content binding vector (CBV), validating the CL, and writing the content and the CL to the storage medium if the CL is valid.
In another aspect of the present invention the receiving step is performed at a host, where the validating and writing steps are performed at a player being in communication with the host, and the method further includes the host initiating a request to the player to write the content to the storage medium, sending the CL to the player, the player notifying the host that it may send the content to the player if the CL is valid, and the host sending the content to the player.
In another aspect of the present invention a method is provided for writing locally recorded content to a storage medium under conditional access (CA) control, the method including receiving a broadcast stream containing content and an associated content license (CL) including a placeholder for a content binding vector (CBV), generating a CBV for the content, replacing the placeholder with the generated CBV, and writing the content and the CL to the storage medium.
In another aspect of the present invention the receiving and replacing steps are performed at a host acting as a CA gateway, where the generating and writing steps are performed at a player being in communication with the host, and the method further includes the host sending the CL to the player, the player sending the generated CBV to the CA gateway, and the host sending the CL, including the generated CBV, to the player.
In another aspect of the present invention a method is provided for playing content stored on a storage medium, the method including querying a player for a content list stored on a storage medium, sending a request to the player to play a content item selected from the content list, determining whether the content item is pre-authorized, validating a content license (CL) associated with the content item if the content item is pre-authorized, and playing the content item if the content item is pre-authorized.
In another aspect of the present invention a method is provided for playing non-pre-authorized content stored on a storage medium, the method including sending a content license (CL) of a non-pre-authorized content item to an authorization service center, providing payment information to the authorization service center, receiving an updated CL with content decryption information from the authorization service center, validating the CL, and providing access to the content if the CL is valid.
In another aspect of the present invention a method is provided for writing content stored on a storage medium, the method including receiving a request from a requestor to provide content stored on a storage medium for copying by the requestor, validating a content license (CL) associated with the requested content, determining from the validated CL if the requester is permitted to write the requested content, and providing the requested content to the requestor for writing thereby.
In another aspect of the present invention a method is provided for writing content to a storage medium without a content license (CL) and reading content therefrom, the method including providing a first encryption key, generating a second encryption key for an item of content, encrypting the content with the generated second encryption key, encrypting the generated second encryption key with the first encryption key, and storing the encrypted content and the generated second encryption key to a storage medium.
In another aspect of the present invention the providing step includes storing the first encryption key in a player, and where any other of the steps are performed by the player.
In another aspect of the present invention the method further includes decrypting the second encryption key with the first encryption key if no CL is detected for the content, decrypting the content with the decrypted first encryption key, and providing the decrypted content to a requestor.
In another aspect of the present invention a method is provided for generating a content license (CL), the method including a) creating and signing a Content Segment License (CSL) corresponding to a specific segment of the unit of content, b) creating and signing a Content User License (CUL) specifying user permissions with respect to the unit of content, c) creating, signing, and encrypting a Baseline Entitlement Control Message (BL-ECM) including an indication of a control word for decrypting the unit of content, d) creating a CL incorporating the CSL, CUL, and BL-ECM, and e) encrypting the CL with a public key associated with a storage medium.
In another aspect of the present invention the creating step a) is performed by an owner of the content.
In another aspect of the present invention the creating step b) is performed by a conditional access (CA) gateway.
In another aspect of the present invention the creating step c) is performed by an encryptor of the content.
In another aspect of the present invention the creating step a) includes creating the CSL to include any of a CSL ID, a content ID, a content link, a content provider ID, an authorization service center ID, an authorization service center location, and a group authorizer public key.
In another aspect of the present invention the creating step b) includes creating the CUL to include any of a CSL ID, the public key associated with the storage medium, and a domain list.
In another aspect of the present invention the creating step c) includes creating the BL-ECM to include any of a CSL ID, an index linking the BL-ECM a corresponding location in the content, and a control word used to encrypt the content.
In another aspect of the present invention a method is provided for creating a Content Binding Vector (CBV) for a content block, the method including dividing a content block into at least one content mini block, generating a digital signature for each of the content mini blocks, and combining the digital signatures of each of the content mini blocks in the content block to form a CBV for the content block.
In another aspect of the present invention the dividing step includes dividing where the content block includes an entropy encoded MEPG video bitstream.
In another aspect of the present invention the generating step includes calculating a set of hash bits for each of the content mini blocks.
In another aspect of the present invention the calculating step includes calculating the set of hash bits using a one-way hash function.
In another aspect of the present invention the combining step includes creating a list of the digital signatures.
In another aspect of the present invention the creating step includes concatenating the digital signatures.
In another aspect of the present invention the method further includes generating an asymmetric signature of the list.
In another aspect of the present invention the generating an asymmetric signature step includes generating using a predefined field dedicated for use as the asymmetric signature.
In another aspect of the present invention the generating an asymmetric signature step includes generating using a redundancy string that is a function of the content mini block.
In another aspect of the present invention the generating an asymmetric signature step includes generating where the asymmetric signature corresponds to the entire CBV.
In another aspect of the present invention the generating an asymmetric signature step includes generating a plurality of asymmetric signatures, where each of the plurality of asymmetric signatures corresponds to a different group of bits within the CBV.
In another aspect of the present invention the method further includes protecting any of the content mini blocks by appending an error detection code (EDC) to any of the content mini blocks, thereby forming an error detectable block.
In another aspect of the present invention the method further includes identifying an error detectable block as a failed error detectable block where the error detectable block includes an error in its content bits as determined by applying a predefined CBV verification algorithm.
In another aspect of the present invention the method further includes constructing the EDC using the TCP/IP 1-complement checksum technique.
In another aspect of the present invention the method further includes constructing the EDC using the CCITT standard used for checksums.
In another aspect of the present invention the method further includes appending error detectable block to the CBV, thereby forming a storable block.
In another aspect of the present invention a method is provided for assessing the invalidity of a content signature at a first resolution relative to a first invalidity threshold, restricting access to the content if the first resolution invalidity exceeds the first invalidity threshold, assessing the invalidity of the content signature at a second resolution relative to a second invalidity threshold, and restricting access to the content if the second resolution invalidity exceeds the second invalidity threshold.
In another aspect of the present invention a method is provided for validating content, the method including validating the signature of a CBV of a content block stored in a storable block incrementing an invalid signature count if the signature is invalid, restricting access to the content block if the invalid signature count exceeds an invalidity threshold, if the invalid signature count does not exceed the invalidity threshold breaking the storable block into a plurality of content mini blocks and their corresponding error detection codes (EDC) and hash bits, validating the EDCs corresponding to each of the content mini blocks, incrementing an invalid EDC count if the EDC is invalid, restricting access to the content block if the invalid EDC count exceeds an invalid EDC count threshold, if the invalid EDC count does not exceed the invalid EDC count threshold validating the hash bits corresponding to each of the content mini blocks, incrementing an invalid hash bits count if the hash bits are invalid, restricting access to the content block if the invalid hash bits count exceeds an invalid hash bits threshold.
In another aspect of the present invention the validating EDC step includes reconstructing the EDC from the content mini block in the manner in which the EDC was constructed, and comparing the reconstructed EDC to the EDC, where validity of the EDC is established where the EDC matches the reconstructed EDC.
In another aspect of the present invention the validating hash bits step includes reconstructing the hash bits from the content mini block in the manner in which the hash bits were constructed, and comparing the reconstructed hash bits to the hash bits, where validity of the hash bits is established where the hash bits match the reconstructed hash bits.
In another aspect of the present invention a content protection system is provided including a host, a player, a communications link between the host and the player for communicating content therebetween, a recordable medium adapted to be played by and recorded to by the player, an encrypted item of content, and means for producing a secure content license corresponding to the item of content, the secure content license including a key for accessing the item of content, a permission list for determining whether either of the host and the player is allowed to access the item of content under pre-defined circumstances, the circumstances including a type of use of the encrypted item of content, an identification of the recordable medium, the recordable medium identification generated in accordance with a predefined recordable medium identification generation algorithm and describing at least one physical characteristic of the recordable medium, and an identification of the item of content, the item identification describing at least one data characteristic of the item of content.
In another aspect of the present invention the item of content is stored on the recordable medium in advance of the player first accessing the content.
In another aspect of the present invention the system further includes an indicator stored on the recordable medium indicating that the item of content is pre-authorized for access by the player.
In another aspect of the present invention the host is configured to support Secure Video Processor (SVP) protocols.
In another aspect of the present invention the host is configured to receive content via a conditional access (CA) gateway.
In another aspect of the present invention the host is configured to support Secure Video Processor (SVP) protocols and receive content via a conditional access (CA) gateway.
In another aspect of the present invention the player is configured to support Secure Video Processor (SVP) protocols.
In another aspect of the present invention the player is configured to receive CA gateway content from the host.
In another aspect of the present invention the player is configured to detect the presence or absence of an indicator on the recordable medium indicating that the item of content is pre-authorized for access by the player, and request, if the indicator is not detected on the recordable medium, authorization for the player to access the item of content.
In another aspect of the present invention the system further includes a location indicator of an authorization service center stored within the content license, where the player is configured to send the content license to the authorization service center at the location, and receive a modified content license from the authorization service center including an authorization for the player to access the item of content.
In another aspect of the present invention the location indicator includes a URL of the authorization service center.
In another aspect of the present invention the identification of the item of content is a mathematical function of at least a portion of the item of content.
In another aspect of the present invention the recordable medium identifier is unique to the recordable medium in accordance with a predefined statistical likelihood.
In another aspect of the present invention the recordable medium identifier is generated as part of a formatting process of the recordable medium.
In another aspect of the present invention the recordable medium identifier is stored on the recordable medium.
In another aspect of the present invention the player is configured to generate a comparison identification of the recordable medium in accordance with the predefined recordable medium identification generation algorithm and describing the at least one physical characteristic of the recordable medium, compare the recordable medium identification with the comparison identification, and validate the recordable medium if the recordable medium identification and the comparison identification are identical within a predefined tolerance.
In another aspect of the present invention the player is configured to prevent access to the recordable medium if the recordable medium identification and the comparison identification are not identical within the predefined tolerance.
In another aspect of the present invention the system further includes a certificate for the recordable medium, the certificate including the recordable medium identification and a recordable medium public key.
In another aspect of the present invention the recordable medium certificate includes a list of restrictions indicating permissible uses of the recordable medium.
In another aspect of the present invention the restrictions include any of the following restrictions the recordable medium does not allow local recording, the recordable medium permits local recording, and the recordable medium permits recording content from at least one specified content provider only.
In another aspect of the present invention the recordable medium certificate is signed with a signing key of the manufacturer of the recordable medium.
In another aspect of the present invention the player is configured to validate the recordable medium certificate signature with a public key of the authorized manufacturer or producer of the recordable medium.
In another aspect of the present invention the system further includes a certificate for the manufacturer of the recordable medium certificate stored on the recordable medium.
In another aspect of the present invention the system further includes a signed chain of certificates from the recordable medium manufacturer's certificate to a root certificate having a corresponding chain of signing keys
In another aspect of the present invention the chain of certificates is stored on the recordable medium.
In another aspect of the present invention any of the chain of certificates is signed with a recordable medium private key.
In another aspect of the present invention the player is configured to validate the chain of certificates with corresponding chain of public keys.
In another aspect of the present invention the recordable medium includes any of the following: a list of revoked devices, a software update for the player, a data update for the player, and a list of public keys of other devices for encrypting any items of content on the recordable medium or other recordable media for use with the other devices.
In another aspect of the present invention the secure content license includes a Content Segment License (CSL) corresponding to a specific segment of the unit of content, a Content User License (CUL) specifying user permissions with respect to the unit of content, and a Baseline Entitlement Control Message (BL-ECM) including an indication of a control word for decrypting the unit of content.
In another aspect of the present invention the system further includes a directory of data stored on the recordable medium, where the directory is signed with either of a signing key of an authorized manufacturer of the recordable medium where the content is pre-loaded onto the recordable medium, and a secure processor key of the player where the content is stored to the recordable medium by the player.
In another aspect of the present invention the player is configured to receive content from the host for recording onto the recordable medium, and to receive from the host a content restriction imposed by or on the host for preserving by the player.
In another aspect of the present invention the player is configured to permit playout of content received from the host to any of a plurality of hosts exclusively from the recordable medium where the content restriction indicates that content may be played out via a plurality of hosts.
In another aspect of the present invention the content is rendered exclusively accessible to at least one player in a domain of players, and is stored onto the recordable medium.
In another aspect of the present invention the player is configured to render the content exclusively accessible to the at least one player, and store the content onto the recordable medium.
In another aspect of the present invention the system further includes a list of players in the domain.
In another aspect of the present invention the player is configured to transmit a list of players in the domain to the host together with the content.
In another aspect of the present invention the host is configured to store a list of players in the domain at the host.
In another aspect of the present invention the system further includes a list of players in the domain generated by a user.
In another aspect of the present invention the system further includes a plurality of public keys corresponding to the list of players and stored on the recordable media of corresponding player IDs for selection by a user via either of a label affixed to the player and a user interface menu.
In another aspect of the present invention a plurality of public keys corresponding to the list of players is received from each of the players belonging to the domain.
In another aspect of the present invention the item of content is stored on the recordable medium where the content is received via broadcast, multicast or unicast, and where either of the recordable medium and the content are configured to allow playback of the content stored on the recordable medium by any player.
In another aspect of the present invention the content includes a regional restriction indicator specifying at least one region that is allowed to or disallowed from accessing the content, and where the player is configured to maintain a record of the regions to which it belongs and allow either of storage and playback of the content where the player belongs to the region specified in the regional restriction.
In another aspect of the present invention the regional restriction indicator specifies either of a geographic region and a logically defined region.
In another aspect of the present invention the content is stored on the recordable medium, and where either of the recordable medium and the content are configured to allow playback of the content stored on the recordable medium by any player and to prevent subsequent storage of the content onto another device.
In another aspect of the present invention the player is configured to permit a personal copy of the content to be stored to recordable medium and distributed only to an SVP-compliant device for immediate viewing thereat, and where the SVP-compliant device is configured to prevent local storing of the content or output of the content to any other device.
In another aspect of the present invention the content license includes data required for an SVP-compliant content license and BL-ECM.
In another aspect of the present invention the recordable medium is configured to permit storage thereto of content originating exclusively from a predefined source.
In another aspect of the present invention the item of content is stored on the recordable medium in advance of the player first accessing the content, and where the recordable medium is configured to permit storage thereto of content originating exclusively from the source of the stored content.
In another aspect of the present invention the system further includes a password associated with the content, and where either of the player and the host are configured to receive and validate the password prior to permitting access to the content.
In another aspect of the present invention the item of content is stored on the recordable medium in advance of the player first accessing the content, where the content is non-pre-authorized content, and where the player is configured to decrypt with the password received from an authorization center a BL-ECM including a control word for decrypting the content.
In another aspect of the present invention the player is configured to disallow access to the content if a current date received from an authorized time source is later than a final expiration date specified in the content license.
In another aspect of the present invention the player is configured to permit access to the content if a current date received from an authorized time source is not later than a final expiration date specified in the content license.
In another aspect of the present invention a system is provided for validating content stored on a storage medium, the system including a content storage medium, and a player configured to validate the content storage medium by accessing a certificate stored on a content storage medium, determining that an identifier in the certificate matches the results of an algorithm applied to physical properties of the content storage medium, determining that the certificate is properly signed, and if the content storage medium is valid, validating content stored on the content storage medium by accessing a content license associated with an item of content stored on the content storage medium, the content license having a plurality of components, each component signed by a signing entity, determining that each of the components is properly signed, and decrypting a control word stored as part of the content license.
In another aspect of the present invention a system is provided for writing locally recorded content to a storage medium, the system including a unit of content, a host configured to receive a broadcast, multicast or unicast stream containing the content and an associated content license (CL) including a content binding vector (CBV), and a player configured to validate the CL, and write the content and the CL to a storage medium if the CL is valid.
In another aspect of the present invention the host is configured to initiate a request to the player to write the content to the storage medium, and send the CL to the player, the player is configured to notify the host that it may send the content to the player if the CL is valid, and the host is configured to send the content to the player.
In another aspect of the present invention a system is provided for writing locally recorded content to a storage medium under conditional access (CA) control, the system including a host configured to receive a broadcast stream containing content and an associated content license (CL) including a placeholder for a content binding vector (CBV), and a player configured to generate a CBV for the content, where the host is configured to replace the placeholder with the generated CBV, and where the player is configured to write the content and the CL to the storage medium.
In another aspect of the present invention the host acts as a CA gateway and sends the CL to the player, where the player sends the generated CBV to the CA gateway, and where the host sends the CL, including the generated CBV, to the player.
In another aspect of the present invention a system is provided for playing content stored on a storage medium, the system including a storage medium, a player configured to access the storage medium, and a host configured to receive a query for a content list stored on the storage medium and send a request to the player to play a content item selected from the content list, where the player is configured to determine whether the content item is pre-authorized, validate a content license (CL) associated with the content item if the content item is pre-authorized, and play the content item if the content item is pre-authorized.
In another aspect of the present invention a system is provided for playing non-pre-authorized content stored on a storage medium, the system including a player, and a host configured to send a content license (CL) of a non-pre-authorized content item to an authorization service center, provide payment information to the authorization service center, receive an updated CL with content decryption information from the authorization service center, and provide the CL to the player, where the player is configured to validate the CL and provide access to the content if the CL is valid.
In another aspect of the present invention a system is provided for writing content stored on a storage medium, the system including a storage medium, and a player configured to access the storage medium and receive a request from a requestor to provide content stored on a storage medium for copying by the requester, validate a content license (CL) associated with the requested content, determine from the validated CL if the requestor is permitted to write the requested content, and provide the requested content to the requestor for writing thereby.
In another aspect of the present invention a system is provided for writing content to a storage medium without a content license (CL) and reading content therefrom, the system including a first encryption key, a second encryption key, and an item of content encrypted with the second encryption key, where the second encryption key is encrypted with the first encryption key, and where the encrypted content and the second encryption key are stored onto a storage medium.
In another aspect of the present invention the first encryption key is stored in a player configured to perform the encryption.
In another aspect of the present invention the player is configured to decrypt the second encryption key with the first encryption key if no CL is detected for the content, decrypt the content with the decrypted first encryption key, and provide the decrypted content to a requestor.
In another aspect of the present invention a system is provided for generating a content license (CL), the system including a) a signed Content Segment License (CSL) corresponding to a specific segment of the unit of content, b) a signed Content User License (CUL) specifying user permissions with respect to the unit of content, c) a signed and encrypted Baseline Entitlement Control Message (BL-ECM) including an indication of a control word for decrypting the unit of content, and d) a CL incorporating the CSL, CUL, and BL-ECM, where the CL is encrypted with a public key associated with a storage medium.
In another aspect of the present invention the CSL is provided by an owner of the content.
In another aspect of the present invention the CUL is provided by a conditional access (CA) gateway.
In another aspect of the present invention the BL-ECM is provided by an encryptor of the content.
In another aspect of the present invention the CSL includes any of a CSL ID, a content ID, a content link, a content provider ID, an authorization service center ID, an authorization service center location, and a group authorizer public key.
In another aspect of the present invention the CUL includes any of a CSL ID, the public key associated with the storage medium, and a domain list.
In another aspect of the present invention the BL-ECM includes any of a CSL ID, an index lining the BL-ECM a corresponding location in the content, and a control word used to encrypt the content.
In another aspect of the present invention a system is provided for creating a Content Binding Vector (CBV) for a content block, the system including a content block divided into at least one content mini block, a digital signature generated for each of the content mini blocks, and a CBV for the content block, the CBV formed by combining the digital signatures of each of the content mini blocks in the content block.
In another aspect of the present invention system the content block includes an entropy encoded MEPG video bitstream.
In another aspect of the present invention system each of the digital signatures includes a set of hash bits for each of the content mini blocks.
In another aspect of the present invention each of the digital signatures includes a set of hash bits calculated using a one-way hash function.
In another aspect of the present invention the CBV includes a list of the digital signatures.
In another aspect of the present invention the list includes a concatenation of the digital signatures.
In another aspect of the present invention the list is asymmetrically signed.
In another aspect of the present invention the list is asymmetrically signed using a predefined field dedicated for use as the asymmetric signature.
In another aspect of the present invention the asymmetric signature is generated using a redundancy string that is a function of the content mini block.
In another aspect of the present invention the asymmetric signature is generated corresponding to the entire CBV.
In another aspect of the present invention the asymmetric signature is generated from a plurality of asymmetric signatures, where each of the plurality of asymmetric signatures corresponds to a different group of bits within the CBV.
In another aspect of the present invention any of the content mini blocks is protected by appending an error detection code (EDC) to any of the content mini blocks, thereby forming an error detectable block.
In another aspect of the present invention the system further includes a player configured to identify an error detectable block as a failed error detectable block where the error detectable block includes an error in its content bits as determined by applying a predefined CBV verification algorithm.
In another aspect of the present invention the EDC is constructed using the TCP/IP 1-complement checksum technique.
In another aspect of the present invention the EDC is constructed using the CCITT standard used for checksums.
In another aspect of the present invention the error detectable block is appended to the CBV, thereby forming a storable block.
In another aspect of the present invention a system is provided for validating content, the system including means for assessing the invalidity of a content signature at a first resolution relative to a first invalidity threshold, means for restricting access to the content if the first resolution invalidity exceeds the first invalidity threshold, means for assessing the invalidity of the content signature at a second resolution relative to a second invalidity threshold, and means for restricting access to the content if the second resolution invalidity exceeds the second invalidity threshold.
In another aspect of the present invention a system is provided for validating content, the system including means for validating the signature of a CBV of a content block stored in a storable block means for incrementing an invalid signature count if the signature is invalid, means for restricting access to the content block if the invalid signature count exceeds an invalidity threshold, if the invalid signature count does not exceed the invalidity threshold means for breaking the storable block into a plurality of content mini blocks and their corresponding error detection codes (EDC) and hash bits, means for validating the EDCs corresponding to each of the content mini blocks, means for incrementing an invalid EDC count if the EDC is invalid, means for restricting access to the content block if the invalid EDC count exceeds an invalid EDC count threshold, if the invalid EDC count does not exceed the invalid EDC count threshold means for validating the hash bits corresponding to each of the content mini blocks, means for incrementing an invalid hash bits count if the hash bits are invalid, means for restricting access to the content block if the invalid hash bits count exceeds an invalid hash bits threshold.
In another aspect of the present invention the means for validating the EDC includes means for reconstructing the EDC from the content mini block in the manner in which the EDC was constructed, and means for comparing the reconstructed EDC to the EDC, where validity of the EDC is established where the EDC matches the reconstructed EDC.
In another aspect of the present invention the means for validating the hash bits includes means for reconstructing the hash bits from the content mini block in the manner in which the hash bits were constructed, and means for comparing the reconstructed hash bits to the hash bits, where validity of the hash bits is established where the hash bits match the reconstructed hash bits.
Authorizer:
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
Reference is now made to
Host 202 preferably interacts with player 200 whenever content is to be recorded on RMS 206 or played back from RMS 206. The interactions typically include: querying player 200, such as to identify content stored on RMS 206, to receive permission for recording or playing out content to/from RMS 206, and to determine the space available for recording on RMS 206; instructing player 200 to record content to RMS 206 with access permission information; and instructing player 200 to play content stored on RMS 206 based on valid access permissions.
Host 202 may be configured to receive content via a conditional access gateway, such as may be provided by conditional access (CA) module 210 and smart card 212 in accordance with conventional techniques, which will supplement or replace CA data with RMS permissions. Depending on the permissions, the content when transferred from host 202 to player 200 may be transferred as-is and locally super-encrypted in player 200 using conventional techniques, super-encrypted before transfer, or decrypted and locally re-encrypted before transfer.
Host 202 may include a digital rights management (DRM) interface, in accordance with one of the developing standards or proposed standards, such as a Secure Video Processor (SVP) 216, commercially available from NDS Limited, for decrypting and decompressing video. Content received via a conditional access gateway may have its broadcast CA information replaced with SVP content protection data. Alternatively, Host 202 may receive content directly in DRM format, without requiring a CA Gateway. SVP 216 may also transfer data to another device, depending on the permissions in the SVP CP data. If host 202 includes SVP 216, then content preferably goes through CA gateway processing in accordance with conventional techniques in the host 202 before it is transferred to the player 200 and is returned to host 202 via SVP protocols. These and other aspects of SVP 216 are described in greater detail in a published, publicly-available document entitled “NDS Approach to Content Protection—The Secure Video Processor Concept,” NDS Doc. No. WP-R063, commercially available from NDS Limited, the disclosure of which is hereby incorporated herein by reference.
Reference is now made to
In
XTV™ extensions of user interface 304 typically include the ability to access programming previously recorded on a storage medium 306, such as a hard disk drive, to request the recording of new content, and additional functionality known for use with XTV™. Product Software Component 302 typically controls storage 306 via a storage interface 308 through which content is read and written. User interface 304 is preferably enhanced to allow the user to transfer content to and from player 330 for storage to and/or playback from its RMS, such as RMS 332, to view what content is available on RMS 332, and to otherwise interact with RMS 332.
STB 300 is shown having an add-on module 310 including components for use with SVP and RMS systems. Module 310 typically includes an SVP manager 312, typically implemented in software and responsible for routing user requests to access, copy, or move content among SVP hardware elements, determining whether a request can be met, and managing the necessary interactions across a Control Interface 314 and a Content Interface 316 to Product Software Component 302 and to a RMS Play/Record Driver 318 when RMS functionality is required. An SVP Control component 320, typically implemented in hardware, is responsible for secure processing of user requests, and an SVP Content Processing component 322, typically implemented in hardware, is responsible for encryption and decryption of content in accordance with the instructions provided by SVP Control 320.
SVP Manager 312 preferably handles RMS functionality in a manner similar to the SVP. Where no SVP is present, SVP Manager 312 will preferably handle only RMS management functions. SVP Manager 312 interfaces with player 330 via an RMS Communications interface 324. RMS Play/Record Driver 318 is responsible for processing high-level commands and driving the hardware level to deliver control and content to RMS Communications interface 324.
RMS player 330 typically receives information via the RMS Communications interface 324. Requests to access, copy, or move content are handled by its SVP manager 334 in the same way as they are handled in SIB 300, except that SVP Manager 334 in RMS Player 330 preferably uses RMS security as described herein, such as by employing an RMS Secure Processor, in addition to the SVP control, to determine suitable behavior, such as permitting or denying requests to access, copy or move content. An RMS driver 336 is used to drive the RMS player hardware. An RMS Physical interface 338 preferably includes motors, lasers and/or other means used to turn RMS 332 or position the read/write devices over RMS 332 as necessary, and to read and write content to/from RMS 332. RMS 332 represents the actual RMS medium, which may be a disk or any other known data storage medium.
Where there is an SVP in RMS Player 330 and in SIB 300, and SVP control has been invoked in accordance with a known conditional access handoff from the Product Software Component 302, an SVP Control component 340 and an SVP Content Processing component 342 are preferably employed by RMS player 330.
Reference is now made to
A public and private key pair is preferably generated as a function of the RMS ID using conventional key generation techniques. An RMS Certificate is then preferably created for the RMS incorporating the RMS ID as follows:
RMS Certificate=(RMS ID, RMS-Public-Key, restrictions)(PK sign)
where the RMS public key is preferably provided by an RMS manufacturer or producer (hereinafter simply “RMS manufacturer”) that is authorized by an authorizing body to perform RMS formatting, producing the RMS ID, and writing data to the RMS, the data including, but not limited to, content. The public key signature preferably uses the RMS Manufacturer's signing key. The RMS Manucturer's certificate, also preferably provided by the RMS manufacturer, is also preferably stored on the RMS and signed using the signing key of the root certificate authority or other designated authority issuing this certificate. If another designated authority has been used, then a chain of certificates to be used to validate the designated authority is also preferably written to the RMS in addition to the RMS manufacturer's certificate. The RMS Certificate may include restrictions indicating how the RMS may be used. For example, an RMS Certificate might include none or any combination of the following restrictions:
Content, such as multimedia files, may be pre-loaded onto the RMS together with a content license (CL) which is generated for the content and which typically includes a Content Segment License (CSL) which relates to a specific segment of the content, a Content User License (CUL) which specifies user permissions with respect to the content, and a Baseline Entitlement Control Message (BL-ECM) which includes information needed to determine the control word that decrypts encrypted content. Preferred methods for creating the content license are described in greater detail hereinbelow.
A directory indicating the physical and/or logical locations of content stored on the RMS may be created and stored on the RMS. The directory format may be any known format, such as the FAT commonly used in Consumer Electronics (CE) device hard disks. The directory also preferably indicates the location of RMS control data elements described herein, such as the RMS ID, RMS Public Key, content licenses and certificates. Prior to storing the directory, it is preferably signed, such as by the RMS manufacturer's private key for pre-loaded content, or the SRP in the case of locally-written content.
A content list is also typically written to the RMS, including a description of the content. The content list preferably contains content metadata, such as the content title, actors, genre, and other information for use by the host. For content recorded in XTV™ format, the metadata preferably includes known XTV™ Metadata, such as RASP indexing, PECMs, etc. Entries in the content list are typically associated with entries in the directory, such as by storing a directory entry ID together with the relevant item in the content list.
Other information may also be written to the RMS, such as a revocation list which identifies unauthorized players or hosts, a list of SRP IDs and associated public keys, and time source information for Final Expiration Date (FED) checking.
Reference is now made to
When the RMS is inserted into the player, the player preferably accesses the RMS certificate stored on the RMS and validates the RMS certificate by checking that the RMS ID in the RMS certificate matches the physical properties of the RMS by creating a comparison RMS ID using the same algorithm used to create the RMS ID in the RMS certificate, and by checking whether the RMS certificate is properly signed by the RMS manufacturer's signing key by using the public key in the RMS manufacturer's certificate stored on the RMS and so on thru the chain of trust, if any, stored on the RMS. The player likewise preferably accesses and validates the RMS directory signature and checks whether the host appears on a revocation list stored on the RMS.
Once the RMS has been inserted into the player and validated, the host may query the player to see if a content list is stored on the RMS. If a content list is present, the player may deliver the content list to the host which may then request access to any content item from the content list, preferably indicating whether the access request is for playback or writing. The player then checks the content license for the requested content item to determine whether or not access should be permitted. For example, the signatures of the CSL, CUL, and BL-ECM may be checked for validity against the public key of each corresponding signing entity, which may vary as will be described hereinbelow. The BL-ECM containing the control words needed for content decryption is itself preferably encrypted using a key, the nature of which may vary in accordance with different modes of operation as described hereinbelow. If the player does not have permission to use this content, it will not have the correct key for decryption of the BL-ECM. The RMS public key stored on the RMS in the RMS certificate may also be checked for validity, and the player's SRP-ID may be checked against a list of SRP IDs stored on the RMS. Any entitlements indicated by the content license may be checked to determine if the requested usage is permitted. Once the content license has been checked, the player preferably returns an appropriate response to the host.
Once an RMS has been inserted into a player and the initial verification procedures described hereinabove have been performed, a variety of operations may be performed. These include reading content from the RMS or supplying content to the RMS, such as for writing locally recorded content to the RMS, writing content received under conditional access control, and playing content via the host. Each of these operations is described in greater detail hereinbelow.
Reference is now made to
The host also typically sends to the player a content binding vector (CBV) associated with the content, or a separate CBV for each content segment. The CBV is typically sent as part of the CSL of the CL. A preferred method for generating a CBV for a content segment is described in greater detail hereinbelow with reference to
Reference is now made to
Reference is now made to
Reference is now made to
Reference is now made to
Reference is now made to
Control parameters included in the CL and enforced by the RMS Control system described herein may be used to control the writing of content to the RMS and sending of recorded content from the RMS player to the host as described hereinabove with reference to
a. Private or Domain Use only: indicating that content is restricted to a defined set of players, such as by explicitly indicating SRP IDs. This restriction may indicate that only the defined set of players may play the content, and/or only the defined set of players may record the content to the RMS. The player may identify whether it is part of the defined set of players by checking whether its ID is one of those listed on the RMS.
b. Copy Once: indicating that a particular unit of content may be stored only once to the current RMS and cannot be stored again, although the content may be moved to other storage where the original copy is deleted.
c. SVP Only: indicating that playout of content is restricted to an SVP-compatible host only. The player may identify whether the host is SVP-compatible by checking the host's certificate.
d. Global: indicating that content is playable from any valid RMS Player to any host.
e. Regional Use Only: indicating that content is playable from any valid RMS Player in a permitted region or not in a blocked region. The player may identify whether it is in a valid region by checking its certificate or an internal configuration field indicating such.
f. Global & Preauthorized: indicating that content can be played out from any valid RMS Player to any host if it can be determined that the content was properly bound to the RMS where it is found.
g. Global & Authorized: indicating that content can be played out from any valid RMS Player to any host if authorization for the particular title has been received.
h. Password: indicating that a password is required to access the RMS content. A preferred method for password generation and use is described in greater detail hereinbelow.
i. CA Control: indicating that CA control may be applied in addition to RMS control in accordance with conventional techniques.
j. FED: a final expiration date after which the content may not be used. This is optional and requires access to a secure time source in order to be enforced.
Reference is now made to
Reference is now made to
Depending on the permissions contained within the CL, the player preferably determines whether the content may be stored on the RMS and if and how the CL should be updated (e.g. from “copy once” to “copy no more” after the content has been copied once). If the CL contains a FED, then the player must locate an authorized time source, such as the broadcast stream or an internal clock, and obtain an authenticated time packet for comparison with the FED. An authenticated time packet preferably consists of a time packet signed according to a certificate known to the player. A time source may be specified by additional information present on the RMS, such as a URL and certificate.
When a request to playout content is received, the player preferably follows the permissions included in the CL to determine whether the content can be played out to this host from this player and under what conditions.
Reference is now made to
Reference is now made to
Reference is now made to
All certificates are preferably signed by a root authority whose public key is stored securely within the player's SRP using conventional techniques, or via a chain of trust from the root key, as is well known in the art.
It will be appreciated that the methods described herein, and the content license in particular, may support various modes of operation of the Player-Host-RMS configuration described herein. These modes of operation are now described.
1. Player-Host-RMS Operation in Support of Private Use.
Private use is defined as writing content from a host device (e.g., a host PVR) to an RMS for personal use. When the player receives content from the host for recording onto the RMS, any restrictions imposed by or on the host may be preserved. For example, where the content is in a format that can only be played out on the host, such as if it is XTV™ content protected by XTV™ PECMs linked to a single smart card, these restriction are preferably preserved. In this context, the write process may be a “move” or a “copy” with no significant distinction, as the RMS copy functions primarily as an archive for the single host. Where the content may be played out on more than one host, the player preferably permits playout to any host, but only from the RMS where the content was recorded. In this context, the write process is preferably a “move” that does not leave an additional copy on the original media, but a “copy” may also be explicitly permitted.
The CL is preferably prepared as follows:
2. Player-Host-RMS Operation in Support of Domain Use.
Domain use is defined as writing content from a host device to an RMS while permitting that particular RMS to be used with multiple players in the same domain. The content CL is preferably flagged to indicate that domain use is permitted. A domain may be defined as a set of specific players. The domain may either be fixed per content or per player as follows:
In order to determine the SRP public key required to prepare a CL for other players, each player provides its player ID, either in a human-readable form, such as on a label affixed to the device, via the user interface on the host, or, where domain management is performed internally by players in a domain, as part of the domain management interface between the players. The player ID provides the key for looking up the SRP public key from the listing on the RMS. Where domain management is performed internally by players in a domain, the players preferably exchange their public keys as part of the domain management process, and the RMS table lookup need not be required.
The CL is preferably prepared as follows:
3. Player-Host-RMS Operation in Support of Global Free Copying.
In Global Free Copying the user may be permitted to freely save and play copies of content received via broadcast. Global use content can be saved on an RMS and played out on any RMS Player.
The CL is preferably prepared as follows:
4. Player-Host-RMS Operation in Support of Regional Control.
In Regional Control regional mappings may be employed in addition to the other operational scenarios described herein. Content received via broadcast may be controlled according to regional restrictions where the RMS Player maintains a record of the region(s) to which it belongs. The term “regions” may include geographic regions or logically defined regions, such as subscribers to a single cable TV provider that might cover several different geographical regions.
5. Player-Host-RMS Operation in Support of Global Copy Once Control.
In Global Copy Once Control the user is permitted to freely save one personal copy of content received via broadcast. The user can read the content freely from the RMS on any RMS Player, but not make additional copies, although a move may be permitted where only one copy is retained. All other conditions that apply to Global Free Copying preferably apply to Global Copy Once.
The CL is preferably prepared as follows:
6. Player-Host-RMS Operation in Support of Global SVP-Only Control.
In Global SVP-Only Control the user is permitted to save a personal copy of the content and to distribute it only to SVP-compliant CE devices for immediate viewing. SVP-compliant devices are trusted not to store content locally or to output it to any other device. All other conditions applying to Global, Copy Once preferably apply to Global, SVP Only.
In Global SVP Only Control the CL preferably contains all data required for an SVP-compliant CL and BL-ECM. The parts of the CL designated for SRP use are identical to Global Copy Once except that the permissions specify SVP Only.
The CL is preferably prepared as follows:
7. Player-Host-RMS Operation in Support of Pre-Loaded and Pre-Authorized Content Control.
In this mode the RMS contains pre-loaded and pre-authorized content. Possessing the original disk is the only authorization required, and the RMS may be played in any RMS Player. Playout from the RMS disk can be controlled in any of the following modes:
The CL is preferably prepared as follows:
8. Player-Host-RMS Operation in Support of Pre-Loaded But not Pre-Authorized Content Control.
In this mode the RMS contains pre-loaded but not pre-authorized content, and the user is required to purchase individual authorizations for content titles, although the RMS can be played in any RMS Player. Playout from the RMS can be controlled in any of the following modes:
The CL is preferably prepared for pre-loading onto the RMS as follows:
The CL is typically sent by the RMS, such as via the Internet, to an Authorization Service Center at a location, such as a URL, specified on the RMS.
The CL is preferably prepared by the Authorization Service Center for return to the SRP as follows:
9. Player-Host-RMS Operation in Support of Local Recording of Content on an RMS Containing Pre-Loaded Content.
In this mode an RMS with pre-loaded content can also be used for locally recorded content, and specifically indicates this. The issuer of an RMS can also specify that the RMS can only be used for its own content. For instance, a broadcaster providing a quarterly magazine on an RMS might only allow content that comes from that broadcaster to be recorded onto the RMS.
10. Player-Host-RMS Operation Integrated with CA Control.
The various methods for RMS control described hereinabove may be integrated with conventional CA control methods. Thus, where an RMS may be used with more than one RMS player as described hereinabove, the user will have to acquire CA entitlements to access the content in addition to ant RMS entitlements required. The initial CL as sent to the SRP typically does not contain a valid CBV. Rather, the CBV is preferably calculated by the SRP and sent back to the CA Gateway. The CA Gateway issues a new CL, where the CSL contains the valid CBV. The BL-ECMs are preferably linked to the CSLs by the CSL ID, and the CBV is linked to the content originally sent by the host. Access to the content is controlled by the CSL ID and control words that appear in the BL-ECMs created by the SRP.
The CL that is sent to the RMS is preferably prepared as follows:
The CL that is stored on RMS is preferably prepared as follows:
11. Player-Host-RMS Password Control.
A user password for access to content may be provided as an alternative to the CL approach described herein or in addition thereto. For locally recorded content, the user preferably sets the password which will be required for future access to the content to be prompted by the player and viewed preferably on the same user interface screen used for all user interactions. For pre-loaded, non-pre-authorized content, the encryption key for the BL-ECM can be a password provided by the Authorization Server to the user and entered through the application on the host. For both locally recorded and pre-loaded content, once the password has been entered, the password may be stored on the RMS by the RMS player in a secure fashion using conventional techniques. Alternatively, manual entry of the password may be required each time the content is accessed. Password access can be selected on a system basis (e.g., by the CE manufacturer, TV broadcaster or RMS provider) or by the user when creating a new RMS.
Reference is now made to
The binding of a security system to particular content typically requires that the content remain unaltered. However, in a RMS security system small distortions in the content may occur due to storage and transmission. Moreover, it is well appreciated in the art that content may be altered in an attempt to circumvent security measures. In the present invention a safe distance criteria is defined to represent the degree of distortion by which content may be modified and yet retain its association with its corresponding CBV 1600. The safe distance criteria provides a mechanism for uniquely representing content while ignoring small distortions that may occur within the content due to, for example, physical phenomena in a storage device.
In the method of
Each content block 1630 is preferably further divided into one or more content mini blocks 1640. Typically, the number of content mini blocks 1640 in a content block 1630 and the length of the content mini blocks 1640 are selected by balancing the expected error rate against the number of failed transmittable blocks 1660 permitted, with a goal of reducing the length of mini blocks and limiting the size of the CBV 1600. For example, if the ratio between the number of bits dedicated to storage of content and those dedicated for protection and error detection, ie. CBV 1600 and EDC bits 1670, is typically 1000:1, the minimal length of a digital signature for a content mini block 1640 is typically no less than 60 bits, and the average size of the content block 1640 to be protected is C*1,000,000 bits, where C refers to the number of Mbits in a typical segment of content block 1640 e.g. 10, then the typical length of a content mini block 1640 may be calculated using the following formula:
Number of Mini Blocks=10*1,000,000/(60*1000)=˜1660
Typical Length of Mini Block=10*1,000,000/Number of Mini Blocks=˜60,000.
For each content mini block 1640, a digital signature, such as a set of hash bits 1650, is preferably calculated, typically employing a one-way hash function. The hash bits 1650 of each content mini block 1640 in a content block 1630 are preferably combined into a list of digital signatures, such as through concatenation, to form a CBV 1600 for the content block 1630. CBV 1600 may also be asymmetrically signed using an asymmetric signature 1690. The asymmetric signature 1690 of CBV 1600 is preferably chosen from one of the following two options:
1. A special field of several hundred bits up to a few thousand bits dedicated to the asymmetric signature employed to sign the list of signatures of the content mini blocks; or
2. A redundancy string, such as a constant string or a string that is a function of the data, typically 60 to 80 bits in length, though it may exceed this length, employed to sign the list of signatures and the entire content mini block 1640, encrypted with Rabin or RSA like asymmetric encryption schemes.
While the asymmetric signature 1690 may be a single signature for the entire CBV 1600, alternatively, multiple signatures 1690 may be employed, wherein each signature corresponds to a different group of bits within CBV 1600.
Each content mini block 1640 is preferably protected by an error detection code (EDC) 1670 of zero or more bits, which is appended to the content mini block 1640 to form an error detectable block 1680. A failed error detectable block 1680 is one that contains an error in the content bits or in the error detection block bits such that CBV 1600 calculation fails as described hereinbelow. Typically, EDC 1670 is constructed in a manner consistent with the TCP/IP 1-complement checksum technique. Alternatively, EDC 1670 may be constructed following the CCITT standard used for checksums. Signature 1690 stored in CBV 1600 may also be used as an error detection code as well.
The signed CBV 1600 may then be pre-pended to the error detectable block 1680 to construct a storable block 1660.
Reference is now made to
Signature 1690 of CBV 1600 in storable block 1660 received by the recipient is preferably verified using conventional asymmetric signature verification techniques. Under certain circumstances the validity of CBV 1600 may be verified or decrypted before access to signature 1690 may be enabled, such as, for example, where an RSA or Rabin type of asymmetric signature has been employed. Should signature 1690 be found to be invalid, INCORRECT_SIG is incremented and compared to SIG_THRESHOLD. SIG_THRESHOLD is preferably set to ignore minor infractions of CBV 1600, and is typically set to be a function of the number of content mini blocks 1640 of the content already scanned, the probability for error, the probability for false rejection and the speed with which illegitimate content may be rejected. For example, SIG_THRESHOLD may be set according to the following formula:
SIG_THRESHOLD=A*N+B*C*Square_Root(N)
where A is a constant that attenuates the linear component of the formula, such as 1/1000, N is a function of the number of content mini blocks 1640 already scanned, such as one that would yield the number of scanned CBVs 1600, B is a constant that attenuates the nonlinear component of the formula, such as 1/32, and C is a constant that corresponds to the number of standard deviations for a normal distribution of false rejections, such as 7.
The constants A, B and C preferably depend on parameters that typically do not change during viewing of the content. For example, to set SIG_THRESHOLD_D such that the limit on a false rejection of content is greater than 1:1,000,000,000, C may be set equal to 7. The values of A and B may then be derived as follows:
In the above example, A and B are preferably set such that A is smaller than B, and such that the effect of the non-linear component of the formula described hereinabove is greater than the effect of the linear component. Thus, relative to the other thresholds described hereinbelow, the INCORRECT_SIG is more sensitive over time to its respective threshold, SIG_THRESHOLD.
Should INCORRECT_SIG exceed SIG_THRESHOLD, viewing and/or copying the entire content may be disallowed.
If CBV 1600 signature 1690 is found to be valid, storable block 1660 is broken into its respective content mini blocks 1640 with their respective EDC 1670. The EDC 1670 of each content mini block 1640 may be verified by reconstructing EDC 1670 from content mini block 1640 and comparing the reconstructed EDC 1670 to the corresponding EDC 1670 received as part of storable block 1660. Should an EDC not match its reconstructed EDC, INCORRECT_EDC is incremented and compared to the EDC_THRESHOLD, which is preferably set in a similar manner to the SIG_THRESHOLD as described hereinabove with the parameters A and B set appropriately. For example, sensitivity to EDC_THRESHOLD may be attenuated differently than the sensitivity to SIG_THRESHOLD. With regard to EDC_THRESHOLD, B may be set to be smaller than A to increase the effect of the linear component of the formula described hereinabove and decrease and limit the effect of the non linear component, thus raising the EDC_THRESHOLD over time and limiting its effect. Should INCORRECT_EDC exceed EDC_THRESHOLD, viewing and/or copying the entire content may be disallowed. Should INCORRECT_EDC not exceed EDC_THRESHOLD, viewing and/or copying content mini block 1640 is allowed.
If EDC 1670 matches the reconstructed EDC 1670 of content mini block 1640, the hash bits 1650 of each content mini block 1640 is verified by reconstructing the hash bits 1650 from content mini block 1640 and comparing the reconstructed hash bits to the corresponding hash bits received as part of storable block 1660. Should hash bits 1650 not match its reconstructed hash bits, INCORRECT_HASH is incremented and compared to HASH_THRESHOLD, which is preferably in a similar manner to the SIG_THRESHOLD as described hereinabove with the parameters A and B set appropriately. For example, HASH_THRESHOLD may treated in a manner similar to EDC_THRESHOLD where B is set to be smaller than A to increase the effect of the linear component of the formula described hereinabove and limit the effect of the non-linear component if HASH_THRESHOLD is exceeded, viewing and/or copying of the entire content may be disallowed. Should INCORRECT_HASH not exceed HASH_THRESHOLD, viewing and/or copying the content mini block 1640 is allowed.
When the last content mini block 1640 of storable block 1660 is processed, the iterative process may continue with the next storable block 1660 or until the bitstream is exhausted.
The behavior of the RMS system may be further enhanced with an additional set of verification bits incorporated within CBV 1600 to tie the content to a particular player. These additional bits may correspond to idiosyncrasies found on the recipient's player, such as physical defects in the RMS storage media. Failure to successfully verify content mini blocks 1640 may result in the graded disabling of certain functionality corresponding to an Error Level within the RMS system. For example:
Error Level 1: Prevent copying of content after m mismatches in a content item, where m is a predefined number, such as four, or a function of any of the thresholds described hereinabove.
Error Level 2: Prevent playout after p mismatches in a content item, where p is a predefined number, such as seven, or a function of any of the thresholds described hereinabove.
Error Level 3: Prevent further use of RMS disk after reaching mismatch level 1 (or 2) on q content items, where q is a predefined number, such as two.
The Error Levels are preferably defined as graded functions, more sensitive at the earlier sections of content than later on. For example, 5 mismatches of a CBV 1600 signature 1690 in an entire movie may be permitted, taking into account the length of the movie. However, 5 mismatches during the first 10 seconds of the movie may trigger an Error Level.
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/478,844, filed Jun. 17, 2003, entitled “Multimedia Storage and Access Protocol,” and incorporated herein by reference in its entirety.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IL04/00334 | 4/18/2004 | WO | 12/20/2006 |
Number | Date | Country | |
---|---|---|---|
60478844 | Jun 2003 | US |