Method and system for unified mobile content protection
Summary by NHIP
Unified Mobile Content Protection
The method ingests media files, transcodes them into multiple formats, and segments each format into fixed-size units. Each segment receives encryption using a media-item-specific key and a distinct cipher before publishing to a content delivery network.
Claim Score by NHIP
Abstract
Media content is delivered to a variety of mobile devices in a protected manner based on client-server architecture with a symmetric (private-key) encryption scheme. A media preparation server (MPS) encrypts media content and publishes and stores it on a content delivery server (CDS), such as a server in a content distribution network (CDN). Client devices can freely obtain the media content from the CDS and can also freely distribute the media content further. They cannot, however, play the content without first obtaining a decryption key and license. Access to decryption keys is via a centralized rights manager, providing a desired level of DRM control.

Term
3.9 yearsleft in the term
Expires 6 August 2030.
- Priority
- Filed
- Granted
- Today
- Expires
20 claims: 2 independent, 18 dependent
- 1Broadest claimClaim Score 11, narrow(NHIP)A method for secure over-the-top delivery of content to client devices, comprising:ingesting content in the form of media item files containing respective distinct user-selected media items, each user-selected media item being a media title specifically requested for playback by requesting users of respective client devices, the ingesting including receiving the media item files from a content publisher and performing media preparation for each media item file, including: (i) transcoding the user-selected media item contained in the media item file to a plurality of transcoded media items of respective distinct media encoding formats,(ii) segmenting each transcoded media item into a respective plurality of fixed-size segments for segment-based delivery of the transcoded media item to the client devices;(iii) obtaining a media-item-specific media encryption key for the specifically requested user-selected media item from a digital rights management server and encrypting each segment of each of the transcoded media items using the media encryption key and a respective encryption cipher for the specifically requested user-selected media item, the encrypting producing respective encrypted segments, and(iv) publishing a plurality of distinct transcoded media item files to a content delivery network from which the client devices retrieve the transcoded media item files, each transcoded media item file including the encrypted segments for the respective transcoded media item;andin response to respective requests for playback of a user-selected media item by the requesting users of the client devices, delivering respective client-device-specific rights objects to the client devices wherein a client-device-specific rights object is formed responsive to a device identifier, a media identifier of the user-selected media item and a user identifier of the requesting user, each rights object containing the media-item-specific media encryption key for the user-selected media item and an identification of the encryption cipher for the user-selected media item, each rights object being securely delivered to the respective requesting client device in a respective client-device-specific manner to be usable by only the respective requesting client device in decrypting a respective transcoded media item file retrieved from the content delivery network,and further wherein each requesting client device engages in a respective device registration process including sending device and user identification information encrypted with a respective secret domain key built-in to the client device and establishing a device-specific secure channel as well as a device-specific rights encryption key, the device-specific rights encryption key being shared with the client device and generated using the device information and the respective domain key, each requesting client device sending a media rights request that is encrypted with the respective domain key and generated relative to requesting playback of the user-selected media item.
- 11A computer system including one or more computers coupled together and executing respective computer program instructions causing the computers to co-operatively provide secure over-the-top delivery of content to client devices by:ingesting content in the form of media item files containing respective distinct user-selected media items, each user-selected media item being a media title specifically requested for playback by requesting users of respective client devices, the ingesting including receiving the media item files from a content publisher and performing media preparation for each media item file, including: (i) transcoding the user-selected media item contained in the media item file to a plurality of transcoded media items of respective distinct media encoding formats,(ii) segmenting each transcoded media item into a respective plurality of fixed-size segments for segment-based delivery of the transcoded media item to the client devices;(iii) obtaining a media-item-specific media encryption key for the specifically requested user-selected media item from a digital rights management server and encrypting each segment of each of the transcoded media items using the media encryption key and a respective encryption cipher for the specifically requested user-selected media item, the encrypting producing respective encrypted segments, and(iv) publishing a plurality of distinct transcoded media item files to a content delivery network from which the client devices retrieve the transcoded media item files, each transcoded media item file including the encrypted segments for the respective transcoded media item;andin response to respective requests for playback of a user-selected media item by the requesting users of the client devices, delivering respective client-device-specific rights objects to the client devices wherein a client-device-specific rights object is formed responsive to a device identifier, a media identifier of the user-selected media item and a user identifier of the requesting user, each rights object containing the media-item-specific media encryption key for the user-selected media item and an identification of the encryption cipher for the user-selected media item, each rights object being securely delivered to the respective requesting client device in a respective client-device-specific manner to be usable by only the respective requesting client device in decrypting a respective transcoded media item file retrieved from the content delivery network,and further wherein each requesting client device engages in a respective device registration process including sending device and user identification information encrypted with a respective secret domain key built-in to the client device and establishing a device-specific secure channel as well as a device-specific rights encryption key, the device-specific rights encryption key being shared with the client device and generated using the device information and the respective domain key, each requesting client device sending a media rights request that is encrypted with the respective domain key and generated relative to requesting playback of the user-selected media item.
Independent claims2
63 paragraphs in 7 sections, as filed
BACKGROUND
The growing number of large form factor mobile devices such as the iPad has revolutionized mobile media consumption leading to revolutionary initiatives such as “TV Everywhere™” (TVE) with a mandate to make premium content available on a wide range of devices with great diversity in capabilities. This type of distribution, sometimes known as “Over-The-Top”(OTT) distribution, has underscored the need for a new and more robust trust model that builds on a 2-part trust model of user authentication and device identification and can offer the same level of content protection that content owners have had in the closed Consumer Electronics ecosystems of the past. The added level of protection can enable publishers to fully realize the potential for content distribution through this new open ecosystem of devices.
Content protection is challenging in mobile devices for a number of reasons. Mobile devices do not uniformly support Digital Rights Management (DRM) standards. In particular, most mobile devices do not currently support the most comprehensive form of content protection, the Open Mobile Alliance (OMA) V2.0 DRM standard. Mobile devices also vary in their CPU performance and memory capacity. An additional complication is the need to support multiple modes of delivery required in the mobile environment, such as live streaming, watching short video segments, rentals, or media download for watching later.
Current media protection schemes depend on sending the license information in-band with the media or using a pre-distributed license key in the media viewing device. Examples are Playready, WMDRM, Widevine, and Flash Access. However, TVE requires that the rights are transferable across devices in a seamless manner.
SUMMARY
The present invention relates in general to protecting media on mobile devices and more specifically to implementing a content protection system for media that may be streamed or watched offline on mobile devices. This system is particularly useful in the deployment of TVE services for protecting media on any Internet-connected device in an “Over-The-Top” (OTT) manner where the digital rights to the media are delivered to the device over the network and made specific to the device and user.
Methods and apparatus are disclosed for protecting content delivered to a variety of mobile devices based on client-server architecture with a symmetric (private-key) encryption scheme. In one embodiment, a media preparation server (MPS) encrypts all media content and publishes and stores it on a content delivery server (CDS), such as a server in a content distribution network (CDN). Clients can freely obtain media content from the CDS and can also freely distribute it further. They cannot, however, play the content without first obtaining a decryption key. Access to decryption keys is via a centralized rights manager, providing a desired level of DRM control.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages will be apparent from the following description of particular embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of various embodiments of the invention.
<figref idref="DRAWINGS">FIGS. 1 and 2</figref> are block diagrams of systems capable of conducting procedures, in accordance with various embodiments of the invention;
<figref idref="DRAWINGS">FIG. 3</figref> is a diagram of the content encryption, in accordance with an embodiment of the present invention;
<figref idref="DRAWINGS">FIG. 4</figref> is a diagram of the key wrapping, in accordance with an embodiment of the present invention; and
<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram of a system showing interfaces and message formats between system components;
<figref idref="DRAWINGS">FIGS. 6-8</figref> are diagrams of message flows during system operation in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram for one embodiment of the present invention. It shows a client device <b>10</b> and a plurality of servers <b>12</b> that are connected together in a secure network and together form an instance of what is referred to herein as a “wireless platform” (WP). The client device <b>10</b> and WP servers <b>12</b> are typically computerized devices which include one or more processors, memory, storage (e.g., magnetic or flash memory storage), and input/output circuitry all coupled together by one or more data buses, along with program instructions which are executed by the processor out of the memory to perform certain functions which are described herein. Part or all of the functions may be depicted by corresponding blocks in the drawings, and these should be understood to cover a computerized device programmed to perform the identified function.
In one embodiment, the servers <b>12</b> (referred to as servers herein) may be collocated in a single data center. In another embodiment, the servers <b>12</b> may be geographically distributed in multiple data centers. In another embodiment, the servers <b>12</b> may be physically in the same region, but connected to the client <b>10</b> through separate network paths (e.g. through different network service providers). In one embodiment, the servers <b>12</b> are situated as part of a content delivery network (CDN) <b>14</b>. In one embodiment, the content from a content publisher <b>16</b> is ingested via an ingestion engine <b>18</b>, and the ingested content is then segmented by a media preparation engine (MEDIA PREP) <b>20</b>. The media preparation engine <b>20</b> obtains a content encryption/decryption key from a digital rights management (DRM) server <b>22</b> and uses it to encrypt the content for storage and later delivery in encrypted form. An example of streaming of content is shown in published PCT application WO 2010/045109.
In part of the description below, the combination of the ingestion engine <b>18</b>, media prep <b>20</b> and a play manager <b>26</b> are referred to as a “content controller”. Thus in one embodiment the system is constituted by a content controller along with a DRM server <b>22</b> and a rights manager <b>24</b>.
A media preparation profile in the media preparation server <b>20</b> specifies an encryption type on a per-media-item basis. Candidate ciphers may include XOR, RC4, HC-128, AES, and along with the specification of encryption type is stored a corresponding key and a key length. Each user-selected media item has its own randomly generated key value. In the case of AES and XOR encryption, this randomly generated key value is used as the actual key for encryption/decryption, whereas for RC4 and HC-128 it is the seed key to initialize a stream cipher. AES key length is typically 128 bits. XOR key length may be 1024 bytes, and may be configurable. RC4 and HC-128 use 128 bit seed keys. The media preparation profile also specifies, on a per-media basis, the length of the byte stream which should be generated (this is the actual key used for media encryption, and the length is the same as the block length described elsewhere herein). Each user-selected media item is transcoded in multiple formats for different target platforms, and each of the resulting transcoded media files is immediately encrypted with the chosen cipher and key and the encrypted files are then pushed to the CDN <b>14</b>. Additional details regarding encryption are provided below.
In order to use the system for downloading content, the client device <b>10</b> first authenticates with the rights manager <b>24</b> and registers its device with the DRM server <b>20</b>. During this process the client <b>10</b> obtains a logical device id from the rights manager <b>24</b> that is a token to represent a user of the client device <b>10</b>, and associates this token with the specific client device <b>10</b> via a device “fingerprint” which is a unique identifier for the client device <b>10</b>. The unique identification may be based on certain physical properties that may include an international mobile equipment identifier (IMEI) number, media access control (MAC) address, or certain file system properties. Each of the supported client devices <b>10</b> provides an Application Programming Interface (API) via which the unique identifier of that device can be obtained. Some devices have an IMEI number, some a mobile equipment identifier (MEID) number, some an electronic serial number (ESN). The iPhone has a unique device identifier (UDID).
The client device <b>10</b> has a built-in domain key that is used to encrypt the exchange of the logical device ID with the rights manager <b>24</b>. For enhanced security, the domain key is divided into a number of separate components which are stored so as to be difficult to locate. For example, each may be stored as an array, with elements of the array represented as strings containing an integer and some special characters which are commonly found in binary files. When the arrays are examined, it is difficult to detect where the components are located. At run-time, all arrays are processed, special characters are discarded, and elements of these arrays are converted into characters and concatenated together to produce the actual domain key.
Device registration is carried out as follows. A DRM Agent running on the client <b>10</b> generates an encrypted token containing a device id and a randomly generated long nonce. That information (device id and the random long nonce) is encrypted with the domain key and is sent to the DRM server <b>22</b>. The DRM server <b>22</b> decrypts this registration message using the same domain key, and stores an association between this user, device id, and key nonce in a database. The DRM server <b>22</b> generates a response containing a unique logical id assigned to this user. This response is encrypted with a session key constructed from domain key, device id, and the random key nonce provided by the DRM Agent, and the encrypted response is sent to the client <b>10</b>. Details regarding the construction of the session key are provided below.
Once the client <b>10</b> receives the response, it decrypts the response and stores registration information into an encrypted rights file on the client device <b>10</b>. The rights file is encrypted with the key constructed from the combination of the domain key and the device id.
The session key may be constructed as follows:
A shared or domain key is combined with the device id and the randomly generated key nonce: shared_key+device_id+key_nonce. The resulting string is fairly long, so a hash or checksum is computed on it. In one embodiment, a hex representation of the hash, which may be 32 bytes long, is chosen to be the key. In different embodiments, the raw hash output (which may be a 128-bit integer) may be used. In one embodiment a Message Digest 5 (MD5) hash may be used. Other embodiments might use a 64-bit RACE Integrity Primitives Evaluation Message Digest (RIPEMD) hash function instead of MD5.
In other embodiments, it is possible to include other individualization parameters into these keys. Thus, the client/server session key, as well as the key used to encrypt the rights file on the device, could be enhanced further by adding unique user information (user token) and/or application information, such as the application name or identifier. That way, keys will be application-specific and user-specific as well as device-specific.
<figref idref="DRAWINGS">FIG. 2</figref> shows a slightly different embodiment of the system, in which there is a connection directly between the rights manager <b>24</b> and the DRM server <b>22</b> to enable the DRM server <b>22</b> to directly consult with the rights manager <b>24</b> as may be required.
As previously mentioned, any of various content encryption schemes may be employed. The following presents several specific examples along with corresponding details regarding how encryption/decryption is carried out. In some embodiments, the encryption can be applied to portions of the file such as key frames for video in order to reduce processing load.
XOR
In one embodiment the following simple and fast symmetric (private key) encryption scheme is used. Operation is illustrated in <figref idref="DRAWINGS">FIG. 3</figref>. The media preparation server <b>20</b> performs an exclusive-OR operation (XOR) between the contents of the media file and a secret (private) key K<b>1</b> (not shown). In one embodiment the key K<b>1</b> is 1024 bytes long. The XOR operation starts at a random position P<b>1</b> within the media file and continues until the end of the file. The random position P<b>1</b> is preferably chosen to be close to the beginning of the file, e.g. within the first 10% of the file. P<b>1</b> can also be a predetermined fixed position, for example the very beginning of the file (location <b>0</b>).
The key K<b>1</b> may be chosen in a variety of ways. For example, it may be generated randomly. Alternatively, it may be generated by first choosing another random position P<b>2</b> (not shown) within the same file, and selecting 1024 bytes from the media file starting at position P<b>2</b>. If there are not 1024 bytes remaining between P<b>2</b> and the end of the file, then 1024 bytes are selected starting at position P<b>2</b>−1024+1. As noted, the key length may be other than 1024 bytes, and may be configurable.
The media preparation server <b>20</b> stores P<b>1</b> and P<b>2</b> in a database for each media file. In addition, the media preparation server <b>20</b> associates an expiration time with the encryption keys, stores the expiration time in the database, and re-encrypts content with new keys upon key expiration.
RC4-Drop(n)
RC4-drop(n) is a stream-cipher algorithm generally known to those skilled in the art. It includes the dropping of the first 3072 bytes from each generated keystream. Also, RC4 does not have a formal notion of an initialization vector (IV). Instead, a checksum is computed on a concatenated key and an arbitrarily chosen initialization value, and the checksum is used as the key.
In one embodiment of stream cipher encoding, the entire media file is divided into smaller blocks of a selected block size. With a stream cipher, one can generate an infinitely-long stream of bytes. Theoretically, if a content item (e.g., movie) were to be played only from start to finish, without rewinding or fast-forwarding (i.e. without scrubbing), a stream cipher could be used on the streaming media without specialization. However, since the user may scrub during playback, decryption requires a modification to the stream cipher. The media is divided into fixed-size blocks and a new stream of key bytes is generated for each block by using the same seed key and a different IV. The IV in this case can be just the sequential block number, starting from 0. In one embodiment the blocks can have length 32 k, but the block length can be different in other embodiments and may be configurable.
HC-128
HC-128 is another well-known stream cipher whose block size can be adapted as described above. Also, in addition to block size, both RC4 and HC-128 can take into account a segment number for live streaming and for video on demand (VOD). The entire long-form content is represented as many segments, and each segment is then divided into multiple blocks from the encryption/decryption point of view.
AES
The same approach to block sizing may be taken for AES unless of course in some embodiments the decryption is done in hardware. It may be desirable to use the same form of AES encryption supported by iPhone® and iPad®, which is AES bit with Cipher-Block-Chaining (CBC mode). Each segment is encrypted individually, and the same key is used across all segments, but each segment has its own initialization vector which is the sequence number of the segment.
It is briefly described how a user obtains a rights object (RO) to use in downloading and streaming, as well as playing, content. The user registers with a content provider using, in one embodiment, OpenID technology and obtains a user token which uniquely identifies that user. Before the user can play a given media content file, the user must obtain the decryption key. A DRM agent running on the client device <b>10</b> contacts the rights manager <b>24</b> and provides three items: <device-id, media-id, user-token>, where device-id is a unique identifier specific to that particular mobile device, media-id is a unique identifier specific to the particular media content the user wants to play, and user-token is the unique user identifier. Device id could be the unique address of the mobile device, or it may be one of the types of device identifiers discussed above.
The rights manager <b>24</b> receives the request for the RO from the client <b>10</b>, containing <device-id, media-id, user-token>. The rights manager <b>24</b> validates the user-token using OpenID technology and also validates that media-id is correct and has not expired. It then generates the requested RO, which contains a key value K<b>1</b> for media content decryption, a remaining play count for that media, and a media license expiration time. Even though communications between the client <b>10</b> and rights manager <b>24</b> is carried over a secure connection (SSL), the rights manager <b>24</b> may optionally encrypt the RO so that encrypted RO can be safely stored on the client device <b>10</b>.
The encryption of the RO is illustrated in <figref idref="DRAWINGS">FIG. 4</figref>. To encrypt the RO, the rights manager <b>24</b> uses the following symmetric encryption scheme. The RO is encrypted with 64-bit Blowfish key constructed from the checksum (domain key+device id+key nonce). To compute K<b>2</b>, the rights manager <b>24</b> applies an MD5 checksum function to the device-id.
Message Flow
<figref idref="DRAWINGS">FIG. 5</figref> contains a block diagram showing interfaces (numbered reference points) between system components. The following is a description of messaging flows (including message formats) among the components.
The ingestion flow consists of secure transfer of content from the content publisher <b>16</b> via a secure transfer method such as scp, sftp, or ascp (Aspera) to the content controller back-end server <b>28</b>, which in turn transcodes and encrypts the content using the chosen content cipher (e.g., AES or HC-128) and publishes it into the CDN <b>14</b>.
The interfaces and associated protocols are described next for each of the numbered reference points in <figref idref="DRAWINGS">FIG. 5</figref>.
1. Over this HTTP interface, the client <b>10</b> performs a one-time device registration with the rights manager <b>24</b> (and DRM Server <b>22</b>) passing the device-id, key nonce, and message nonce encrypted with the Blowfish algorithm using the domain key that is stored in an obfuscated manner in the application binary as described above. The registration information is passed through to the DRM Server <b>22</b> via the interface 2 described below. Depending on specific deployment requirements, the client may <b>10</b> may alternatively go to the DRM server <b>22</b> first, and the DRM server <b>22</b> then communicates with the rights manager <b>24</b>.
Also, on the same interface, every time the client <b>10</b> needs to play a media, it sends media rights requests to the rights manager <b>24</b> also encrypted via Blowfish with a device-specific key. The media rights request contains device id, media id, logical id (a unique abstract user identifier) provided by the DRM server <b>24</b> when the device was registered, message nonce, and the current play count.
2. This HTTP interface is used as a pass-through interface, where the rights manager <b>24</b> relays requests (device registration and media location and rights requests) received from the client <b>10</b> and destined to the DRM server <b>22</b>. These messages are encrypted as noted in #1. The rights manager <b>24</b> maintains user information which the DRM server <b>22</b> does not have access to, and the rights manager <b>24</b> maps individual users to logical ids maintained by the DRM server <b>22</b>. The rights manager <b>24</b> appends the logical id, uniquely identifying the current user, to all requests being forwarded to the DRM server <b>22</b>. The only exception is the initial device registration because it does not have a logical id for that user at that point. The logical ids need not be encrypted when these servers are in a secure facility <b>30</b> with restricted access as shown. In environments where these servers need to be remote, a secure connection would be needed between them. The secure connection may take the form of a virtual private network (VPN) or a Secure Sockets Layer (SSL) connection.
3. This HTTP interface is used by the DRM server <b>22</b> to request media information from the back-end content controller <b>28</b>. This interface is used to obtain information needed to play a user-selected media item. The request by itself does not have any commercial value and is therefore not encrypted nor sent over a secure channel.
4. This HTTP interface carries the response of the content controller <b>26</b> to the DRM server request described under item #3 above. The response is an XML document, containing media URL pointing to an encrypted media file located in the CDN <b>14</b> and an encrypted message which contains information about the cipher and the key used to encrypt this media. The message is encrypted with the Blowfish algorithm and the domain key.
5. Via this HTTP interface the DRM server <b>22</b> asks the rights manager <b>24</b> for media rights for the current user. The request contains logical id, media id, and the play count reported by the client <b>10</b>. This interface is used when the client <b>10</b> is requesting media rights as described in #1. The information need not be encrypted when the DRM server <b>22</b> and rights manager <b>24</b> are in a secure facility <b>30</b>. Alternatively, a secure connection may be employed.
6. This HTTP interface carries the response of rights manager <b>24</b> to the DRM server request described under item #5 above. The response is an XML document containing rights information for the requested media and the current user. This interface is used only when the client <b>10</b> is requesting media rights. The response need not be encrypted when the DRM server <b>22</b> and rights manager <b>24</b> are in a secure facility <b>30</b>. Alternatively, a secure connection may be employed.
7. This HTTP interface sends the response of the DRM server <b>22</b> to the rights manager <b>24</b>. Two types of responses are sent over this interface: the device registration response and the media location and rights in response to requests described under item #2 above.
The device registration response is an XML document that contains an encrypted message (containing the logical id) destined for the client <b>10</b>, and also the logical id and total device count for the current user in the clear. The rights manager <b>24</b> uses the device count to check against the total count of authorized devices for the user. It removes the logical id and device count from the response, before forwarding it to the client <b>10</b> on interface 8. The client completes the registration on its end when it can receive the encrypted message and successfully decrypt and verify the nonce and checksum in the message.
The media rights and location response is an XML document that contains the media URL pointing to an encrypted media file located in a CDN <b>14</b>, and an encrypted message (destined for the client) which contains information about the cipher and the key needed to decrypt this media and media rights information for the current user. This response is forwarded to the client <b>10</b>.
In both types of responses, the message is encrypted with a key produced from the domain key, device id, and the key nonce.
8. This is a pass-through interface where the rights manager <b>24</b> simply forwards the responses it received from the DRM server <b>22</b> to the client <b>10</b>, in response to the client's requests described under item #1 above. The contents of these responses are described fully in #7.
9. This is the interface by which the content is delivered to the client <b>10</b> from the CDN <b>14</b>.
<figref idref="DRAWINGS">FIG. 6</figref> is a message flow ladder-diagram for one embodiment of the present invention. It describes the message flow for device registration and obtaining the rights object containing the content key for playing the content. <figref idref="DRAWINGS">FIG. 7</figref> contains another message flow ladder-diagram for an alternate embodiment where the client <b>10</b> is in direct communication with the intervening rights manager <b>24</b>, which in turn communicates with DRM server <b>22</b>.
<figref idref="DRAWINGS">FIG. 8</figref> illustrates a work flow for integrating functionality of a certificate authority (CA) into the content protection scheme. The work flow consists of the following steps:
1. Have a server certificate signed by the CA
2. Distribute the application to devices via application stores
3. Initially, a client <b>10</b> authenticates with a server via SSL via the following: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0056">A. Authentication could be passed through to a customer authentication server <b>12</b></li><li id="ul0002-0002" num="0057">B. The customer authentication server <b>12</b> receives an activation code from the CA and passes it to the client <b>10</b></li><li id="ul0002-0003" num="0058">C. The client <b>10</b> uses the activation code (using tools of a software development kit (SDK) of the CA) to obtain an encrypted security credential from the CA, wherein the security credential=(the shared secret, a credential ID, and a creation time)</li><li id="ul0002-0004" num="0059">D. The client <b>10</b> sends the credential ID to the server <b>12</b> which is linked to an authentication record</li><li id="ul0002-0005" num="0060">E. The client <b>10</b> registers by sending the device fingerprint to the server <b>12</b> and gets a device-specific key</li></ul></li></ul>
4. For a session, a client <b>10</b> is validated as follows: <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0062">A. The client uses the CA SDK to dynamically generate a security code from the security credential and sends it to the server <b>12</b> via SSL</li><li id="ul0004-0002" num="0063">B. The server <b>12</b> contacts the CA to validate the client <b>10</b> using the stored credential ID together with the security code</li><li id="ul0004-0003" num="0064">C. The server <b>12</b> returns the content key encrypted with the device-specific key</li><li id="ul0004-0004" num="0065">D. In offline mode, the DRM agent of the client <b>10</b> will offer protection with an offline timeout that forces contact with server <b>12</b> (which includes protection against clock tampering as described below) <br /> Anti-Clock Rollback Protection </li></ul></li></ul>
Clock rollback is a technique employed to illegally extend time-based licenses. A user manipulates the clock on a playback device so that the time-based license expiration is reached later than it should (or not at all). To detect clock roll-back, time is sampled on the client device <b>10</b> when the application is registered and every time it starts up, and the time is stored into the encrypted file. When a player is instantiated to play a user-selected media item, a separate thread is also started to monitor the progression of time during playback. The thread sleeps for a short time period, wakes up, and increments an elapsed time counter. That elapsed time is added to the last known local time. Thus, the application always has information about what the time should be (to an approximation). This technique can be augmented to include time information from a server <b>12</b>.
Rights File Integrity Protection
The rights file (also referred to as rights object herein) is stored on the client device <b>10</b> and contains the device-specific key and the content-keys encrypted with the device-specific key. The rights file itself is encrypted with the key constructed from the domain key and the unique identifier of the device. The contents of the file are checksummed and the checksum itself is stored within the file. When the file is decrypted, the contents are checksummed again and the computed checksum is compared with the checksum stored in the file to verify that the file has not been tempered with. The rights file also has a copy protection feature, in a sense that an outdated copy of the file cannot be written over the fresh copy without being detected by the DRM Agent. The copy protection is platform-dependent. On the iPhone/iPad platforms, DRM Agent obtains a unique property of the file and stores it within the encrypted file. The unique file value is not something that can be controlled at will, it is a property that is assigned by the operating system. Those skilled in the art may choose this file property such that copying the file would force a change in the unique value. On Android the rights file is stored within the application-specific directory which is protected from other applications and from user access via standard Linux permissions. Furthermore, DRM Agent generates a random long number and stores it within the encrypted file as well as within the application-specific directory on the device. The two numbers are compared when mobile application starts. On the Blackberry platform, a similar randomly generated long number is stored inside the encrypted file as well as within the application-specific persistent secure storage offered by the Blackberry platform.
In the description herein for embodiments of the present invention, numerous specific details are provided, such as examples of components and/or methods, to provide a thorough understanding of embodiments of the present invention. One skilled in the relevant art will recognize, however, that an embodiment of the invention can be practiced without one or more of the specific details, or with other apparatus, systems, assemblies, methods, components, materials, parts, and/or the like. In other instances, well-known structures, materials, or operations are not specifically shown or described in detail to avoid obscuring aspects of embodiments of the present invention.
Although the above description includes numerous specifics in the interest of a fully enabling teaching, it will be appreciated that the present invention can be realized in a variety of other manners and encompasses all implementations falling within the scope of the claims herein.
Contents7
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both waysCites: the store holds 202 of 203
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11659224B2 | Cited by | United States of America | Applicant |
| US11455376B2 | Cited by | United States of America | Search report |
| US11606380B2 | Cited by | United States of America | Applicant |
| US2001029525A1 | Cites | United States of America | Search report |
| US2002007456A1 | Cites | United States of America | Search report |
| US2002037079A1 | Cites | United States of America | Applicant |
| US2002069420A1 | Cites | United States of America | Search report |
| US2002146122A1 | Cites | United States of America | Applicant |
| US2003033606A1 | Cites | United States of America | Search report |
| US2003093694A1 | Cites | United States of America | Applicant |
| US2003105718A1 | Cites | United States of America | Applicant |
| US2003131353A1 | Cites | United States of America | Applicant |
| US2003140257A1 | Cites | United States of America | Applicant |
| US2003161473A1 | Cites | United States of America | Search report |
| US2003188154A1 | Cites | United States of America | Applicant |
| US2003204602A1 | Cites | United States of America | Search report |
| US2003204738A1 | Cites | United States of America | Applicant |
| US2004001594A1 | Cites | United States of America | Search report |
| US2004088541A1 | Cites | United States of America | Applicant |
| US2004103319A1 | Cites | United States of America | Applicant |
| US2004148344A1 | Cites | United States of America | Search report |
| US2004177369A1 | Cites | United States of America | Applicant |
| US2004193550A1 | Cites | United States of America | Applicant |
| US2004247116A1 | Cites | United States of America | Search report |
| US2005021467A1 | Cites | United States of America | Applicant |
| US2005071631A1 | Cites | United States of America | Applicant |
| US2005086501A1 | Cites | United States of America | Search report |
| US2005094809A1 | Cites | United States of America | Search report |
| US2005097361A1 | Cites | United States of America | Search report |
| US2005097596A1 | Cites | United States of America | Applicant |
| US2005097597A1 | Cites | United States of America | Applicant |
| US2005190911A1 | Cites | United States of America | Applicant |
| US2005240764A1 | Cites | United States of America | Applicant |
| US2005244008A1 | Cites | United States of America | Applicant |
| US2005278259A1 | Cites | United States of America | Search report |
| US2006031222A1 | Cites | United States of America | Search report |
| US2006056324A1 | Cites | United States of America | Search report |
| US2006080546A1 | Cites | United States of America | Search report |
| US2006095382A1 | Cites | United States of America | Search report |
| US2006190719A1 | Cites | United States of America | Applicant |
| US2006212649A1 | Cites | United States of America | Applicant |
| US2006236221A1 | Cites | United States of America | Applicant |
| US2006265758A1 | Cites | United States of America | Search report |
| US2006272028A1 | Cites | United States of America | Applicant |
| US2006282391A1 | Cites | United States of America | Applicant |
| US2007124245A1 | Cites | United States of America | Search report |
| US2007124781A1 | Cites | United States of America | Search report |
| US2007172069A1 | Cites | United States of America | Search report |
| US2007180496A1 | Cites | United States of America | Applicant |
| US2007208668A1 | Cites | United States of America | Search report |
| US2007226365A1 | Cites | United States of America | Search report |
| US2007265978A1 | Cites | United States of America | Search report |
| US2008016368A1 | Cites | United States of America | Applicant |
| US2008046758A1 | Cites | United States of America | Applicant |
| US2008047006A1 | Cites | United States of America | Applicant |
| US2008071617A1 | Cites | United States of America | Search report |
| US2008091613A1 | Cites | United States of America | Applicant |
| US2008123859A1 | Cites | United States of America | Applicant |
| US2008154780A1 | Cites | United States of America | Search report |
| US2008195743A1 | Cites | United States of America | Search report |
| US2008207182A1 | Cites | United States of America | Applicant |
| US2009029644A1 | Cites | United States of America | Search report |
| US2009041236A1 | Cites | United States of America | Search report |
| US2009055547A1 | Cites | United States of America | Search report |
| US2009084862A1 | Cites | United States of America | Applicant |
| US2009103726A1 | Cites | United States of America | Search report |
| US2009138699A1 | Cites | United States of America | Applicant |
| US2009180614A1 | Cites | United States of America | Applicant |
| US2009183211A1 | Cites | United States of America | Applicant |
| US2009191961A1 | Cites | United States of America | Search report |
| US2009192942A1 | Cites | United States of America | Search report |
| US2009228450A1 | Cites | United States of America | Search report |
| US2009315670A1 | Cites | United States of America | Applicant |
| US2010049973A1 | Cites | United States of America | Applicant |
| US2010057576A1 | Cites | United States of America | Applicant |
| US2010070876A1 | Cites | United States of America | Applicant |
| US2010091985A1 | Cites | United States of America | Applicant |
| WO2010150226A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2010211776A1 | Cites | United States of America | Search report |
| US2010235468A1 | Cites | United States of America | Applicant |
| US2010269146A1 | Cites | United States of America | Search report |
| US2010278338A1 | Cites | United States of America | Applicant |
| US2010281270A1 | Cites | United States of America | Applicant |
| US2010306548A1 | Cites | United States of America | Applicant |
| US2011087794A1 | Cites | United States of America | Applicant |
| US2011107364A1 | Cites | United States of America | Applicant |
| US2011107379A1 | Cites | United States of America | Search report |
| US2011145560A1 | Cites | United States of America | Applicant |
| US2011225417A1 | Cites | United States of America | Search report |
| US2011246616A1 | Cites | United States of America | Applicant |
| US2011252115A1 | Cites | United States of America | Applicant |
| US2012128150A1 | Cites | United States of America | Applicant |
| US2012246279A1 | Cites | United States of America | Search report |
| US2013132733A1 | Cites | United States of America | Search report |
| US6415032B1 | Cites | United States of America | Applicant |
| US6550011B1 | Cites | United States of America | Applicant |
| US6574609B1 | Cites | United States of America | Applicant |
| US6957350B1 | Cites | United States of America | Applicant |
| US6963972B1 | Cites | United States of America | Applicant |
| US7093129B1 | Cites | United States of America | Applicant |
12 members in 3 offices
Priority claims14
| Document | Office | Kind | Date |
|---|---|---|---|
| 23409209 | United States of America | P | |
| 23409209 | United States of America | P | |
| 2010045596 | United States of America | W | |
| 2010045596 | United States of America | W | |
| 201213370537 | United States of America | A | |
| 201213370537 | United States of America | A | |
| 201414563642 | United States of America | A | |
| 13370537 | – | – | – |
| 61234092 | – | – | – |
| PCTUS2010045596 | – | – | – |
| US20090234092P | – | – | – |
| US201213370537 | – | – | – |
| US201414563642 | – | – | – |
| WO2010US45596 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| CA2767368A1 | Canada | A1 | |
| CA2822185A1 | Canada | A1 | |
| WO2011020088A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2012144195A1 | United States of America | A1 | |
| CA2767368C | Canada | C | |
| US2013311775A1 | United States of America | A1 | |
| CA2822185C | Canada | C | |
| US2015095646A1 | United States of America | A1 | |
| US9047446B2 | United States of America | B2 | |
| US9858396B2This record | United States of America | B2 | |
| US2018144107A1 | United States of America | A1 | |
| US10417394B2 | United States of America | B2 |
50 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Mail O.P. Petition DecisionMOPPT | MOPPT | |
| Mail-Record Petition Decision of Granted to Accept Delayed Payment of Issue FeeMP005 | MP005 | |
| Record Petition Decision of Granted to Accept Delayed Payment of Issue FeeP005 | P005 | |
| O.P. Petition DecisionOPPT | OPPT | |
| Correspondence Address ChangeC.AD | C.AD | |
| Supplemental Papers - Oath or DeclarationC600 | C600 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Petition EnteredPET. | PET. | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Abandonment for Failure to Pay Issue FeeAbandonedMABN6 | MABN6 | |
| Abandonment for Failure to Pay Issue FeeAbandonedABN6 | ABN6 | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 09858396
- Publication, DOCDB
- 9858396
- Publication, EPODOC
- US9858396
- Application
- 14563642
- Application, DOCDB
- 201414563642
- Application, EPODOC
- US201414563642
Titles
- English
- Method and system for unified mobile content protection
Patent term adjustment
- A delay
- +64 daysthe office missed an examination deadline
- B delay
- +9 dayspendency past three years
- Overlap
- −9 daysdelays counted once
- Applicant delay
- −264 days
- Net adjustment
- 0 days
Classification
- CPC, 31
- G06F21/10
- H04L63/0428
- G06Q50/184
- H04L2463/101
- H04L9/0631
- H04N21/2347
- H04L9/28
- H04L9/0656
- H04N21/2351
- H04L9/0866
- H04N21/25816
- H04L67/10
- H04N21/26613
- H04N7/1675
- H04L65/4084
- H04N21/41407
- H04N7/17318
- H04L2209/603
- H04N21/42684
- H04N21/4353
- H04N21/4405
- H04N21/4627
- H04N21/6125
- H04N21/63345
- H04N21/6582
- H04N21/835
- H04N21/8456
- G06F2221/2107
- H04L65/612
- H04L9/0838
- H04L9/30
- IPC, 23
- H04L29 06
- G06F21 10
- H04N7 167
- H04N7 173
- H04L9 28
- G06Q50 18
- H04L29 08
- H04N21 2347
- H04N21 235
- H04N21 258
- H04N21 266
- H04N21 414
- H04N21 426
- H04N21 435
- H04N21 4405
- H04N21 4627
- H04N21 61
- H04N21 6334
- H04N21 658
- H04N21 845
- G06F21 30
- G06F17 30
- H04N21 835
- USPC, 2
- 713160000
- 001001000