The present invention relates generally to digital copy protection, digital right management, and conditional access, and more particularly but not exclusively to managing revocation of an entitlement or right to access a file by preventing Entitlement Management Message (EMM) filter attacks.
Recent advances in the telecommunications and electronics industry, and, in particular, improvements in digital compression techniques, networking, and hard drive capacities have led to growth in new digital services to a user's home. For example, such advances have provided hundreds of cable television channels to users by compressing digital data and digital video, transmitting the compressed digital signals over conventional coaxial cable television channels, and then decompressing the signals in the user's receiver. One application for these technologies that has received considerable attention recently includes video-on-demand (VOD) systems where a user may communicate with a service operator to request media content and the requested content is routed to the user's home for enjoyment. The service operator typically obtains the content from an upstream content provider, such as a content owner, distributor, or the like.
To protect content from unauthorized use, service operators, content providers, owners, and so forth, may employ a service known as conditional access or digital rights management. Conditional access or digital rights management enables a provider to restrict access of selected content to selected users. This may be achieved, for example by encrypting the content.
One such encryption approach employs a technique that provides a message known as an Entitlement Control Message (ECM). The ECM is typically a packet which includes information to determine a control word (CW) for use in decrypting the content. In this approach, streaming content may be encrypted using the CW. The CW may be encrypted with a service key via the ECM message. The encrypted content, including the ECM may then be provided to a user.
The service key may also be encrypted using an encryption key that may be specific to a user, and sent to the user within a message frame, packet, or the like. For example, the service key may be sent within an Entitlement Management Message (EMM). The EMM may also include additional information such as subscription information, or the like, associated with a user. For example, the EMM may include information that indicates whether the user has a right to access the decrypted content, possible constraints upon the access, or whether such access right is revoked.
However, if an EMM that revokes a right to access the content is not properly received, typically by a content player device, the user may continue to improperly access the content. Failure to receive the revocation EMN revoking access rights may arise for a variety of reasons. For example, a less than scrupulous user may select to employ an EMM filtering mechanism that prevents their content player device from receiving the revocation EMM. In such instances, the user may continue inappropriately to access content. Therefore, it is with respect to these considerations and others that the present invention has been made.
Non-limiting and non-exhaustive embodiments of the present invention are described with reference to the following drawings. In the drawings, like reference numerals refer to like parts throughout the various figures unless otherwise specified.
For a better understanding of the present invention, reference will be made to the following Detailed Description of the Invention, which is to be read in association with the accompanying drawings, wherein:
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments by which the invention may be practiced. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Among other things, the present invention may be embodied as methods or devices. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. The following detailed description is, therefore, not to be taken in a limiting sense.
Throughout the specification and claims, the following terms take the meanings explicitly associated herein, unless the context clearly dictates otherwise. The phrase “in one embodiment” as used herein does not necessarily refer to the same embodiment, though it may. As used herein, the term “or” is an inclusive “or” operator, and is equivalent to the term “and/or,” unless the context clearly dictates otherwise. The term “based on” is not exclusive and allows for being based on additional factors not described, unless the context clearly dictates otherwise. In addition, throughout the specification, the meaning of “a,” “an,” and “the” include plural references. The meaning of “in” includes “in” and “on.”
Briefly stated, the present invention is directed towards a system, apparatus, and method for preventing entitlement (EMM) filter attacks in a conditional access to secure content over a network. An EMM that is configured to revoke access to selected content may be sent to a user, when a content provider, or the like, determines that access to the selected content is to be revoked for that user. In one embodiment, the revocation EMM may be sent over a network to the user's content player from a server. The server may then monitor for an acknowledgment of the revocation from the content player. In one embodiment, the acknowledgment may include a message, such as a nonce, or the like, to ensure that the content player was not spoofed. In another embodiment, the acknowledgement may be digitally signed by a component associated with the content player, or the like. If, after a predetermined time period, a valid acknowledgement is not received by the server, the server may initiate a retry attempt. The retry attempt may include sending another revocation EMM and again monitoring for an acknowledgement response from the content player. If, after a predetermined number of retry attempts, a valid acknowledgement is not received, the server may perform various revocation failure actions. Such revocation failure actions may include sending an alert message, changing of encryption keys such as the CW, the service key, or the like, for future content delivery to limit the usefulness of existing keys delivered to the user. In one embodiment, the revocation failure action may also include determining whether a network, content player, or the like, associated with the user is failed. For example, a possible reason for failure to receive the acknowledgement may be associated with a network failure between the server and the user. Thus, in one embodiment, the invention may also be employed provide an alert regarding possible network and/or device failures.
Although the invention is described in terms of EMM attacks, the invention is not so limited, and attacks upon other revocation message mechanisms may also be prevented using the present invention, without departing from the scope or spirit of the invention. For example, an Access Control List (ACL) may be employed to invalidate access to the content. In one embodiment, the ACL may be used to invalidate a digital certificate, or the like. The present invention may then be configured to provided the ACL to the client device, or the like, and monitor for possible ACL filtering, by monitoring for an acknowledgement message.
Illustrative Environment
As shown in the figure, operating environment 100 includes Content Security Server (CSS) 102, Alert Server (AS) 103, network 104, and client device 106. Network 104 is in communications with and enables communication between CSS 102 and client device 106. CSS 102 is also in communication with AS 103.
One embodiment of CSS 102 is described in more detail below in conjunction with
CSS 102 may provide the content over network 104 to client device 106, or the like. CSS 102 may provide the content using any of a variety of mechanisms. In one embodiment, the content is provided as a Moving Pictures Experts Group (MPEG) content stream, such as a transport stream, or the like. However, the invention is not so limited, and other file formats may also be employed, without departing from the scope or spirit of the invention.
Briefly, MPEG is an encoding and compression standard for digital broadcast content. MPEG provides compression support for television quality transmission of video broadcast content. Moreover, MPEG provides for compressed audio, control, and even user broadcast content. One embodiment of MPEG-2 standards is described in ISO/IEC 13818-7 (available at http://www.iso.org), which is hereby incorporated by reference.
Briefly, MPEG content streams may include Packetized Elementary Streams (PES), which typically include fixed (or variable sized) blocks or frames of an integral number of elementary streams (ES) access units. An ES typically is a basic component of an MPEG content stream, and includes digital control data, digital audio, digital video, and other digital content (synchronous or asynchronous). A group of tightly coupled PES packets referenced to substantially the same time base comprises an MPEG program stream (PS). Each PES packet also may be broken into fixed-sized transport packet known as MPEG Transport Streams (TS) that form a general-purpose approach of combining one or more content streams, possible including independent time bases. Moreover, MPEG frames may include intra-frames (I-frames), forward predicted frames (P-frames), and/or bidirectional predicted frames (B-frames).
CSS 102 may also enable scrambling and/or encryption of the content to minimize the likelihood that non-subscribers from enjoying the content. CSS 102 may also manage access control messages to determine whether descrambling and/or decrypting of the content is to be performed. In one embodiment, CSS 102 may employ ECM and/or EMM messages to manage conditional access to the scrambled content. However, the invention is not so limited, and other forms of access control messages, or mechanisms, may also be employed without departing from the scope or spirit of the invention.
CSS 102 may provide access control messages that either enable access to content, or restricts access of content. For example, in one embodiment, CSS 102 may provide an access control message, such as a revocation EMM, or the like, that removes access rights to particular content. In one embodiment, the revocation EMM may include a message indicating that an entitlement or right to access particular content is revoked for the client. CSS 102 may also be configured to monitor for a message from the client indicating acknowledgement of the revocation EMM. Failure to receive the acknowledgement message within a predetermined period of time may result in CSS 102 performing a retry attempt and/or a revocation failure action, as described in more detail below. In one embodiment, the revocation failure action may include providing a message to AS 103.
AS 103 includes virtually any network device that may be configured to monitor for revocation failure alert messages and perform a revocation failure action. AS 103 may receive the revocation failure alert message using a variety of mechanisms including an email message, a Simple Network Management Protocol (SNMP) message, a Common Management Information Protocol (CMIP) signal, or the like.
AS 103 may perform a variety of actions based on receipt of the revocation failure alert message. For example, in one embodiment, AS 103 may provide a message, alert, or the like, indicating that inspection of a network and/or network device may be warranted. The inspection may be directed to determining whether a failure to receive an acknowledgement message is associated with a network failure, device failure, or the like. In another embodiment, AS 103 may direct CSS 102, or the like, to change scrambling/encryption keys, and/or service keys associated with the content for the client device, subscriber, or the like.
AS 103 may further store the revocation failure alert message in a data store, such as a Forensic data store, or the like. AS 103, and/or another device (not shown) may then employ the stored message for a variety of actions, including, but not limited to performing trend analysis, or the like; enabling legal actions to commence based at least in part on the stored message; enabling diagnosis of a network or other communications path to enable such activities as optimization of network reliability; or the like.
Devices that may operate as CSS 102 and/or AS 103 include personal computers, desktop computers, multiprocessor systems, network appliance, microprocessor-based or programmable consumer electronics, network PCs, servers, or the like.
Although CSS 102 and AS 103 are illustrated as distinct servers, the invention is not so limited. For example, the functionality of CSS 102 and AS 103 may also be implemented within a single network device, or distributed over more than two network devices.
Network 104 is configured to couple one computing device to another computing device to enable them to communicate. Network 104 is enabled to employ any form of computer readable media for communicating information from one electronic device to another. Also, network 104 may include a wireless interface, and/or a wired interface, such as the Internet, in addition to local area networks (LANs), wide area networks (WANs), direct connections, such as through a universal serial bus (USB) port, other forms of computer-readable media, or any combination thereof. On an interconnected set of LANs, including those based on differing architectures and protocols, a router acts as a link between LANs, enabling messages to be sent from one to another. Also, communication links within LANs typically include twisted wire pair or coaxial cable, while communication links between networks may utilize analog telephone lines, full or fractional dedicated digital lines including T1, T2, T3, and T4, Integrated Services Digital Networks (ISDNs), Digital Subscriber Lines (DSLs), wireless links including satellite links, or other communications links known to those skilled in the art. Furthermore, remote computers and other related electronic devices could be remotely connected to either LANs or WANs via a modem and temporary telephone link. In essence, network 104 includes any communication method by which information may travel between client devices 106 and/or CSS 102.
Moreover, network 104 may represent a plurality of different components, and/or network paths between CSS 102 and client device 106. Thus, content and/or other information provided by CSS 102 to client device 106 may employ at least in part a different network component and/or path than information provided by client device 106 to CSS 102. For example, CSS 102 may provide content, including ECMs, and/or EMMs to client device 106 over a satellite link, while client device 106 may provide information to CSS 102 using a wired link, a telephone dial-up component, or the like. However, the invention is not so limited, and CSS 102 and client device 106 may also employ virtually the same network 104 components, protocols, and/or mechanisms with which to communicate information, and/or a variety of other paths, components, or the like.
CSS 102 is not limited to providing content, and/or ECMs, and/or EMMs to client device 106 over network 104, however. For example, CSS 102 may also employ a variety of other portable content storage devices, including, but not limited to Digital Versatile Discs (DVDs), High Definition DVD (HD-DVD), Compact Discs (CDs), Video Compact Disc (VCD), Super VCD (SVCD), Super Audio CD (SACD), Dynamic Digital Sound (DDS) content media, Read/Write DVD, CD-Recordable (CD-R), Blu-Ray discs, or the like. Moreover, CSS 102 may provide content using, for example, a portable content storage device, while providing the ECMs, ENMs, including, possibly a revocation EMM, over network 104, without departing from the scope or spirit of the invention.
The media used to transmit information in communication links as described above illustrates one type of computer-readable media, namely communication media. Generally, computer-readable media includes any media that can be accessed by a computing device. Computer-readable media may include computer storage media, communication media, or any combination thereof.
Additionally, communication media typically embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, data signal, or other transport mechanism and includes any information delivery media. The terms “modulated data signal,” and “carrier-wave signal” includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information, instructions, data, or the like, in the signal. By way of example, communication media includes wired media such as twisted pair, coaxial cable, fiber optics, wave guides, and other wired media and wireless media such as acoustic, RF, infrared, and other wireless media.
Client device 106 may include virtually any computing device capable of receiving content over a network, such as network 104, from another computing device, such as CSS 102. Client device 106 may also include any computing device capable of receiving the content employing other mechanisms, including, but not limited to CDs, DVDs, tape, electronic memory devices, or the like. The set of such devices may include devices that typically connect using a wired communications medium such as personal computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, or the like. The set of such devices may also include devices that typically connect using a wireless communications medium such as cell phones, smart phones, pagers, walkie talkies, radio frequency (RF) devices, infrared (IR) devices, CBs, integrated devices combining one or more of the preceding devices, or the like. Client device 106 may also be any device that is capable of connecting using a wired or wireless communication medium such as a PDA, POCKET PC, wearable computer, and any other device that is equipped to communicate over a wired and/or wireless communication medium to receive and play content. Similarly, client device 106 may employ any of a variety of devices to enjoy such content, including, but not limited to, a computer display system, an audio system, a jukebox, set top box (STB), a television, video display device, or the like.
Client device 106 may include a client that is configured to enable an end-user to receive content and to play the received content. The client may also provide other actions, including, but not limited to, enabling other components of the client device to execute, enable an interface with another component, device, the end-user, or the like.
Client device 106 may receive the content as scrambled/encrypted and employ a conditional access control component to decrypt content, and/or enable revocation of an access entitlement and/or right associated with content. For example, client device 106 may receive content decryption keys, service keys, entitlements and/or rights, or the like. Moreover, client device 106 may employ a smart card, such as a virtual smart card, or the like, to manage access to and decryption of the content.
In one embodiment, client device 106 may further provide an acknowledgement of receipt of an access control message, including an access revocation message, or the like. For example, client device 106 or a component associated with client device 106 may receive a revocation message, revoke the access entitlement/right or license to the content, and in response, further provide an acknowledgement message. In one embodiment, the acknowledgement message may be secured using a variety of mechanisms. Client device 106 may provide the acknowledgement message to CSS 102, or the like, using network 104.
Illustrative Server Environment
Network device 200 includes processing unit 212, video display adapter 214, and a mass memory, all in communication with each other via bus 222. The mass memory generally includes RAM 216, ROM 232, and one or more permanent mass storage devices, such as hard disk drive 228, tape drive, optical drive, and/or floppy disk drive. The mass memory stores operating system 220 for controlling the operation of network device 200. Any general-purpose operating system may be employed. Basic input/output system (“BIOS”) 218 is also provided for controlling the low-level operation of network device 200. As illustrated in
Network device 200 may also include an SMTP handler application for transmitting and receiving email. Network device 200 may also include an HTTP handler application for receiving and handing HTTP requests, and an HTTPS handler application for handling secure connections. The HTTPS handler application may initiate communication with an external application in a secure fashion.
Network device 200 also may include input/output interface 224 for communicating with external devices, such as a mouse, keyboard, scanner, or other input devices not shown in
The mass memory as described above illustrates another type of computer-readable media, namely computer storage media. Computer storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.
The mass memory also stores program code and data. One or more applications 250 are loaded into mass memory and run on operating system 220. Examples of application programs include email programs, schedulers, calendars, transcoders, database programs, word processing programs, spreadsheet programs, and so forth. Mass storage may further include applications such Content Security Manager (CSM) 252, which is configured to manage conditional access to content by a user over a network. CSM 252 may include CAS manager 253, and EMM attack manager (EAM) 254.
CAS manager 253 may be configured to scramble/encrypt content using any of a variety of encryption mechanisms to generate encrypted content, including, but not limited, to RSA algorithms, Data Encryption Standard (DES), International Data Encryption Algorithm (IDEA), Skipjack, RC4, Advanced Encryption Standard (AES), Elliptic Curve Cryptography, or the like.
CAS manager 253 may also selectively encrypt at least a portion of the content leaving another portion unencrypted (e.g., in the clear). CAS manager 253 may selectively encrypt one portion of the content using one encryption technique, and another portion of the content using a different encryption technique. CAS manager 253 may further employ different content encryption keys (CWs) for different portions of the selectively encrypted content.
CAS manager 253 may select to encrypt a video elementary stream (ES), an audio ES, a digital data ES, and/or any combination, and/or any portion of video, audio, data elementary streams to generate encrypted content. CAS manager 253 may further select to encrypt at least a portion of an I-frame, P-frame, B-frame, and/or any combination of P, B, and I frames. Moreover CAS manager 253 may perform such encryption on-the-fly.
CAS manager 253 may also send place CWs into ECMs, and/or service keys within EMMs. CAS manager 253 may also, based on a variety of reasons, insert a revocation of access entitlements/rights of content into an EMM. CAS manager 253 may employ MPEG or another mechanism to prepare and provide the content, ECMs, and/or EMMs to a client device.
It should be noted, however, that the invention is not constrained to using EMMs to revoke an entitlement/right to content. For example, in one embodiment, CAS manager 253 may also employ an Access Control List (ACL) to invalidate access to the content. For example, the ACL may be used to invalidate a digital certificate in a public key infrastructure, or the like, and thereby revoke access to the content.
EAM 254 is configured to monitor for an acknowledgement message from a client device based on the revocation message. In one embodiment, the acknowledgment message may be secured using a digital signature associated with client device, subscriber, or the like. In another embodiment, the acknowledgement message may include a nonce, or the like, provided by the client device, CSM 252, or the like, to ensure that the client device is not spoofed, or otherwise hacked. In one embodiment, the nonce may be sent by CSM 252, and then encrypted, digitally signed by the client device, or otherwise modified by the client device to ensure the acknowledgement is from the client device. CSM 252 and its components may employ process 300 of
Generalized Operation
The operation of certain aspects of the invention will now be described with respect to
Process 300 is entered when it is determined that a revocation message is to be sent to a client device to revoke an entitlement, right, or license to access content. Thus, process 300 begins, after a start block, at block 302 where a timer may be initialized. The timer may be set to any of a variety of values based a factors, including, but not limited to, a network characteristic, a relationship to a number of retries to be allowed, an urgency, or the like. For example, the time period may be set to a value between about 5 seconds to about 25 seconds. Shorter time periods may be employed, for example, where a network characteristic indicates that acknowledgement messages may be received over a high-speed network link. Longer time periods may be used, for example, where the acknowledgement messages may be received over a low-speed network link, such as a dial-up, or the like. However, the invention is not so limited to this approach, and other characteristics, such as round trip times (RTT), or the like, also may be employed to determine a time period.
In any event, processing flows next to block 304, where the revocation message may be sent to the client device. In one embodiment, the revocation message is provided using an EMM to revoke an entitlement, right, and/or license to access the content. In another embodiment, the revocation message may be an ACL that may be used to invalidate access to the content. For example, in one embodiment, the ACL may invalidate a digital certificate in a Public Key Infrastructure system; provide an invalidation message to a virtual smart card; or the like.
Moreover, it should be clear that while it is illustrated that the timer is initiated prior to sending the revocation message, the invention is not so constrained. For example, the timer may be initiated at substantially the same time the revocation message is sent, or even subsequent to sending the revocation message, without departing from the scope or spirit of the invention.
Process 300 moves next to decision block 306, where a determination is made whether an acknowledgment message is received within the time period. In one embodiment, the acknowledgement message may be encrypted and/or include a nonce, or the like, such that the acknowledgement message may be validated to confirm that it is not hacked, or otherwise spoofed. Thus, part of decision block 306, in one embodiment, may also confirm that the acknowledgement message is valid. If a valid acknowledgement message is received within the time period, processing may the return to a calling process to perform other actions; otherwise, processing may proceed to decision block 308.
At decision block 308 a determination may be made whether to attempt to retry the revocation. In one embodiment, a predetermined number of retry attempts may be performed, the number of which may be based on a variety of factors, including a network characteristic, historical data, or the like. In one embodiment, between about two to about 4 retries may be performed. However, the invention is not limited to such number of retry attempts, and zero, or more, retries may also be performed. In any event, if it is determined that another retry is to be performed, processing branches to decision block 312; otherwise, processing flows to block 310.
At decision block 312, a determination is made whether to modify the time period. For example, in one embodiment, it be determined that a first retry may use one value for the timer's time period, in a second retry, the time period may be increase (or even decreased) by some amount of time. If it is determined that the time period is to be modified, processing flows to block 314, where another time period is selected. Processing the loops back to block 302. If the time period is not to be modified, processing also loops back to block 302, where the timer is initialized based on the selected time period, and then continues as described above, until either a valid acknowledgement is received (decision block 306), or the number of revocation retries is exceeded (in which case, processing flows to block 310).
At block 310, it has been determined that no valid acknowledgement message has been received within the determined number of retry attempts. Therefore, a determined revocation failure action may be performed. Such failure action may include, but is not limited to providing an alert message to direct another system to determine whether a networking failure and/or network device failure has occurred. Such determination may be performed using any of a variety of mechanisms, including, performing a network ping, or similar network analysis action, sending an individual out to investigate the network and/or devices, sending a message to the user associated with the end client device, or the like. In one embodiment, the revocation failure action may include changing one or more encryption keys, service keys, digital certificates, or the like, associated with content to be sent over the network. Process 300 then returns to perform other actions.
Alert server (AS) 103, content security server (CSS) 102, and content player 406 are represented as providing (and/or receiving) various message flows. Content player 406 may represent a component within client device 106 of
As shown in
It will be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by computer program instructions. These program instructions may be provided to a processor to produce a machine, such that the instructions, which execute on the processor, create means for implementing the actions specified in the flowchart block or blocks. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer implemented process such that the instructions, which execute on the processor to provide steps for implementing the actions specified in the flowchart block or blocks.
Accordingly, blocks of the flowchart illustration support combinations of means for performing the specified actions, combinations of steps for performing the specified actions and program instruction means for performing the specified actions. It will also be understood that each block of the flowchart illustration, and combinations of blocks in the flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified actions or steps, or combinations of special purpose hardware and computer instructions.
The above specification, examples, and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.