Content protection for digital transmission systems6542610Abstract A method for protecting digital content from copying and/or other misuse as it is transferred between one or more computationally constrained devices over insecure links, includes preliminarily authenticating that both a content source and a content sink are compliant devices, and transferring content between compliant devices. In a further aspect of the invention, in the background, concurrently with the transfer of content, at least a second cryptographic process is performed. In an embodiment, establishing a preliminary control channel includes exchanging random challenges between devices, encrypting, under a shared secret key, and hashing the exchanged random challenges, exchanging the results of the encryption and hash functions and then verifying that the appropriate results have been generated. Claims What is claimed is: Description FIELD OF THE INVENTION
TABLE 1
Authentication Computation Computation Time (CE
Phase Robustness Time (PC) Microcontroller)
Preliminary Reasonable less than a milliseconds
millisecond
Full High 10s of 10s of seconds
milliseconds
Following the completion of the preliminary authentication phase, an encrypted control channel is established between the authenticated devices. This preliminary control channel is used to initiate the transfer of protected content across the bus via encrypted content channels. The transfer of content is subject to immediate cancellation if any security threats are detected as the second, highly robust full authentication phase continues in the background. The choice of symmetric ciphers is flexible to allow a range of solutions providing varying levels of security, implementation complexity, expense, and performance. In order to ensure interoperability, all compliant devices and applications should support the Baseline Cipher. Device certificates typically contain a description of the ciphers that are supported by a device. In alternative embodiments, device certificates specify that the pair of devices being authenticated support variable key length ciphers. In such a case, a key length can be specified along with the type of cipher to be used. One cipher which can be use as the Baseline cipher or as an alternate supported cipher for this system is Blowfish. Blowfish is a block cipher that performs key dependent permutation and substitution operations on 64 bits of data at a time. In standard implementations of Blowfish, the permutation and substitution functions are derived from the hexadecimal digits of .pi. and the specific key being used to encrypt/decrypt data. This key can be up to 448 bits long. In this content protection system, Blowfish can be modified to allow the use of alternate initialization values for the permutation and substitution functions. Specifically, instead of .pi. other values can be used. These values may be randomly generated and stored in volatile or nonvolatile memory within a device. Alternatively, these values can be generated in real time or in advance and then distributed as initialization state prior to the use of the cipher. Embodiments of the present invention do not complicate the use of CE devices or PC application software for legitimate users. All copy protection mechanisms happen transparently. When a new device is added to the system no special actions are required to renew device keys or otherwise enable the copy protection mechanisms. The authentication and key exchange mechanisms automatically handle the addition of new devices/applications and the establishment of channels between devices. Referring to FIG. 2, a more detailed embodiment of the present invention is illustrated. In a step 202 a preliminary control channel is established. In a step 204, a preliminary content channel is established. In a step 206, content transfer over the preliminary content channel is begun. In a step 208, a full control channel is established in the background. In a step 210, a full content channel is established. In steps 212, 214, the content transfer over the preliminary content channel is terminated and content transfer over the full content channel is begun. Embodiments of the present invention may be implemented in hardware, or software executed by a computing device such as a microcontroller or microprocessor. Well understood cost and performance trade-offs will guide designers in making specific implementation choices. Typically, for CE devices, the authentication and key exchange mechanisms should be implemented using software running on an embedded microcontroller, and the channel ciphers should be implemented in hardware. Typically, for a PC, all components of the content protection system in accordance with the present invention may be implemented in software. Preferably a PC that implements the present invention is protected by anti-tampering techniques. Embodiments of the present invention are compatible with other copy management technology such as watermarking. For example, the copy control information can be embedded within the content using watermarks. The following notation is used to describe the cryptographic processes of establishing both preliminary and full, control and content channels, as well as authentication processes. General S.sup.X.sup..sup.-1 [M]=Sign M using DSS with private key X.sup.-1 V.sup.X.sup..sup.1 [M]=Verify signature of M using DSS with public key X.sup.1 E[K, M]=Encrypt M with key K using baseline cipher H.sub.SHA-1 [M]=Add SHA-1 hash to M .vertline.=Concatenation of fields Digital Transmission Protection Authority L.sup.1, L.sup.-1 =Digital Transmission Protection Authority DSS public/private key pair g=public constant for Diffie-Hellman key exchange n.sub.full =public prime modulus for full authentication Diffie-Hellman key exchange S.sub.u =Universal shared secret for Preliminary Authentication and key exchange Values Shared by Devices K.sub.Control =Control Channel key generated through Diffie-Hellman key exchanges K.sub.Content =Random Content Channel key Control_Algo_Select=Selected symmetric cipher algorithm for a control channel Content_Algo_Select=Selected symmetric cipher algorithm for a content channel For Device X X.sup.1, K.sup.-1 =DSS Public/private key pair X.sub.ID =Identification Number X.sub.Hash =SHA-1 hash of software implementation X.sub.Auth.sub..sub.-- .sub.Mask =Authorization Mask X.sub.Cert =X.sub.ID.vertline.X.sub.Hash.vertline.X.sub.Auth.sub..sub.-- .sub.Mask.vertline.X.sup.1.vertline.S.sup.L.sup..sup.-1 [X.sub.ID.vertline.X.sub.Hash.vertline.X.sub.Auth.sub..sub.-- .sub.Mask.vertline.X.sup.1 ]=Device Certificate Xk=Random value for the first phase of the Diffie-Hellman key exchange Preliminary Authentication In a typical embodiment of the present invention, authentication and control messages are sent using IEEE 1394 asynchronous transactions. However, other interconnect technologies such a Ethernet, or cable television plants may be used. The only requirement is that the interconnect technology must support bi-directional communication. In an example of system operation in accordance with the present invention, a compliant device ("Device A") which is a source of protected content (e.g., a DVD player) is requested to transmit protected content across a serial bus to another compliant device ("Device B") which is a sink for protected content (e.g., a PC running an MPEG-2 video stream decoder). When Device A is requested to initiate the transmission of protected content to Device B, Device A checks to see if an encrypted control channel has already been established between the two devices. If this control channel exists, the devices have already authenticated each other making further authentication unnecessary, and the devices can immediately establish an encrypted content channel. If however, the control channel does not exist, preliminary authentication must be initiated. The preliminary authentication phase is designed to provide reasonable security for protected content while being computationally lightweight in order to maintain user transparency. The preliminary authentication phase typically requires a fraction of a second of computation to complete on a typical CE embedded controller. In an alternative embodiment, a determination is made regarding the computational capacity of the current source and sink. If both the content source and sink have the computational resources to provide full authentication and channel establishment quickly enough to be transparent to a user, then, as shown in FIG. 1(b), the preliminary authentication phase is bypassed. Typically, when authentication is performed between two PCs, the preliminary authentication phase is bypassed since sufficient computational resources exist to perform the full authentication procedure in a user transparent manner. In an illustrative embodiment of the present invention, the devices exchange challenges, perhaps random challenges (A.sub.C, B.sub.C) and device certificates (A.sub.Cert, B.sub.Cert). Both devices respond by encrypting (with key S.sub.U) and then hashing the other device's challenge. Upon receiving the response to the challenge, each device verifies that the appropriate response has been received. If the expected value is not returned, a security threat has been detected and the system will not be permitted to exchange protected content. If the random challenge is successful, a shared control channel key (K.sub.Pre.sub..sub.-- .sub.Control) is computed by the devices. FIG. 3(a) illustrates details of an illustrative embodiment of the preliminary authentication process in accordance with the present invention. Device A generates a random challenge 302, concatenates the random challenge with the certificate of Device A to form a data string (M.sub.A1). and transmits 304 M.sub.A1 to Device B. Similarly, Device B generates a random challenge 303, concatenates the random challenge with the certificate of Device B to form a data string (M.sub.B1) and transmits 305 M.sub.B1 to Device A. Device A encrypts 306 the random challenge received from Device B. This encryption is performed with the Baseline cipher using the shared secret key S.sub.U. The result of this encryption is then hashed 308 to form a data string (M.sub.A2). Device B encrypts 307 the random challenge received from Device A. This encryption is performed with the Baseline cipher using the shared secret key S.sub.U. The result of this encryption is then hashed 309 to form a data string (M.sub.B2). Data string M.sub.A2 is transmitted 310 to Device B where it is compared 313 to the expected value. Similarly, data string M.sub.B2 is transmitted 311 to Device A where it is compared 312 to the expected value. If both M.sub.A2 and M.sub.B2 match the expected values, then a preliminary control channel key is generated 315, 316 in both Device A and Device B. If either M.sub.A2 or M.sub.B2 does not match its expected value, then Device A and Device B cannot exchange protected content 314. Both Device A and Device B generate the preliminary control channel key by encrypting the random challenge of Device A and the random challenge of Device B, using the Baseline Cipher and the secret shared key S.sub.U, then performing an exclusive OR operation between the two encrypted random challenges 315, 316. This can be described symbolically as Kpre_control=E[S.sub.U,A.sub.c ].sym.E[S.sub.U,B.sub.c ]. In a further embodiment of the present invention, if the random challenge generated by Device A and the random challenge generated by Device B are equal, then the preliminary control channel key is set to E[S.sub.U,A.sub.c ] 319, 320. With the successful generation of a preliminary control channel key a preliminary control channel is established 322. In the case where Device A is a content source and Device B is only a content sink and can never be a content source, then the preliminary authentication procedure can simplified. More particularly, as shown in FIG. 3(b), Device A generates a random challenge 362, concatenates the random challenge with the certificate of Device A to form a data string (M.sub.A1). and transmits 354 M.sub.A1 to Device B. Device B encrypts 355 the random challenge received from Device A. This encryption is performed with the Baseline cipher using the shared secret key S.sub.U. The result of this encryption is then hashed 356 to form a data string (M.sub.B2). Data string M.sub.B2 is transmitted 357 to Device A where it is compared 358 to the expected value. If M.sub.B2 matches the expected value, then a preliminary control channel key is generated 362, 363 in both Device A and Device B. If M.sub.B2 does not match its expected value, then Device A and Device B cannot exchange protected content 360. Both Device A and Device B generate the preliminary control channel key by encrypting the random challenge of Device A using the Baseline Cipher and the secret shared key S.sub.U 362, 363. This can be described symbolically as Kpre_control=E[S.sub.U,A.sub.c ]. To maintain the validity of this authentication mechanism, S.sub.U must not be made public and must be protected from disclosure through reverse engineering. Typically, the baseline channel cipher, which is supported by all devices, will be used for this preliminary control channel. In a further embodiment of the present invention, the exchanged device certificates can provide property information about the devices being authenticated. For example, one property is the level of authentication supported for a given system. Full authentication is one option, however other conditional access mechanisms could be used as well. In an alternative embodiment of the present invention, the initial exchange between Device A and Device B (shown at 304 and 305 in FIG. 3(a)) is modified such that the certificates are not concatenated, or transmitted with the random challenges. Full Authentication and Control Channel Key Exchange If required, as soon as the preliminary authentication process is successfully completed, an attempt to perform a full authentication is begun. Following the successful completion of the preliminary authentication procedure, each device calculates a Diffie-Hellman key exchange first phase value (A.sub.V, B.sub.V). The devices then exchange signed messages (M.sub.A3 and M.sub.B3) which contain: 1) the other device's random challenge from the preliminary authentication (X.sub.C); and 2) the Diffie-Hellman key exchange first phase value (X.sub.V). An embodiment of the full authentication is illustrated with reference to FIG. 4(a). Device A generates a message M.sub.A3, and transmits the message to Device B as shown in steps 402, 404 and 406. Device B generates a message M.sub.B3, and transmits the message to Device A (as shown at 403, 405 and 407). Device A and Device B then process the messages (M.sub.B3, M.sub.A3 respectively) which have been received by first checking the signature on the message by computing V.sup.Y.sup..sup.1 [M.sub.Y3 ] with the other device's (device Y's) public key (Y.sup.1 from Y.sub.Cert) to verify that the message has not been tampered with. Specifically, Device A determines whether M.sub.B3 message signature is valid (408) and if not, then a security threat has been detected (410) and protected content cannot be exchanged. Similarly, Device B determines whether M.sub.A3 message signature is valid (409) and if not, then a security threat has been detected (410) and protected content cannot be exchanged. If the message signatures are valid, the next step is for Device A to verify Device B's certificate (412) by computing V.sup.L.sup..sup.1 [B.sub.Cert ] and for Device B to verify Device A's certificate (413) by computing V.sup.L.sup..sup.1 [A.sub.Cert ]. If the Digital Transmission Protection Authority signature is not valid, the device that transmitted the certificate is not a compliant device. If no errors, or security threats, have occurred up to this point, the two devices have authenticated each other (414, 415). In one embodiment of the present invention a "watch dog" timer is used to ensure that the full authentication procedure is completed in a timely manner. Those skilled in the art will recognize that a specific delay value, or range of values, can be determined according to the computational resources that are being. By calculating B.sub.V.sup.AK mod n.sub.Full (414) and A.sub.V.sup.Bk mod n.sub.Full (415) for Devices A and B respectively, a new, more robust key, K.sub.Control =(g.sup.AkBk mod n.sub.Full), has been established for the encrypted control channel. To complete the full authentication procedure, Device A specifies (416) which channel encryption algorithm will be used to protect the Control Channel. Embodiments of the present invention may compare B.sub.Auth.sub..sub.-- .sub.Mask (found in B.sub.Cert) with A.sub.Auth.sub..sub.-- .sub.Mask to select the strongest encryption algorithm which is mutually supported. Control_Algo_Select is set to the appropriate value and transmitted to Device B. In still further embodiments of the present invention, a cipher initialization state is transmitted to Device B. In the case where Device A is a content source and Device B is only a content sink and can never be a content source, then the full authentication procedure can simplified. More particularly, as shown in FIG. 4(b), where the determinations of Device A's message signature validity and Device A's certificate validity are obviated. Therefore the determinations (409, 413) shown in the embodiment of FIG. 4(a) are not required. To switch over from the preliminary control channel key and baseline cipher to the new key and the cipher specified by Control_Algo_Select, a message is sent across the preliminary control channel indicating that all future control channel messages will use the new key and algorithm. The control channel remains available as long as both devices remain powered up and attached to the communications link. The control channel can be repeatedly used to set up and manage the security of protected content streams without further authentication. Depending on the strength of the channel ciphers, it may be desirable to change the control channel keys on a regular basis. Control channel keys can be updated using a signed Diffie-Hellman key exchange similar to the one used during the full device authentication process. The computation for these key changes would typically be a low priority background activity, which would not affect overall device performance. The algorithms for both DSS and Diffie-Hellman are public knowledge and have been subject to intensive efforts, unsuccessful thus far, to break them. From a technical perspective, the only things which must be kept secret for full authentication are the private keys for signing data. All other aspects of the system can be public. For greater security however, it is desirable to keep aspects of the system such as the symmetric cipher algorithm confidential. Content Channel Encryption Exemplary embodiments of the present invention, to establish an encrypted channel for protected content, can utilize the following procedure once a secure control channel has been established by the preliminary or full device authentication procedures. Encryption of the control channel is performed to preserve the confidentiality of content channel keys and ensure the integrity of other messages. The source of the content sends a message via the encrypted control channel to the compliant destination device (or devices in the case of a content multicast). This message contains: a randomly generated key which is unique for each stream of content. (K.sub.Content); the symmetric cipher to use (Content_Algo_Select); Cipher initialization state; the lsochronous channel associated with the content stream; Copy Control Information (such as CGMS bits); a sequence number initialized to the least significant 16 bits of A.sub.C and incremented for each additional message sent. Alternative embodiments of the present invention can forgo the inclusion of message elements such as the Cipher initialization state or the sequence number initialized to the least significant 16 bits of A.sub.C. If additional compliant devices desire to receive content which is already being transmitted, they can request that the source device send the values described above via the appropriate control channel. While content is flowing across an encrypted content channel, the copy control information associated with the stream can be updated at any time via the control channel(s) between the source device and destination device(s). Upon updating the copy control information, the key associated with the content channel should also be updated. In addition, depending on the strength of the channel ciphers, it may be desirable to change the content channel key on a periodic basis. New content channel keys and copy control information can be put into service when an indicator is transmitted over the content channel. This copy control information can be embedded in the content stream or as part of a header in the IEEE 1394 protocol, such as the CIP header. When the source device has completed the transmission of the copyrighted content it sends a message to the destination(s) via the control channel(s) to terminate the content channel. Most of the content which this system is intended to protect is real time in nature. Therefore, if the communications link used is the IEEE 1394 bus, then the protected content will typically be transferred across the IEEE 1394 serial bus isochronously. This system can also be used to protect non-real time content transferred asynchronously across a communications link. FIG. 5 shows an example of the operation of an embodiment of the present invention. The source of the content, in a step 502, sends a message (as described above), via the previously established control channel, to a compliant destination device (or devices in the case of a content multicast). If additional compliant devices desire to receive content which is already being transmitted, those devices can request receipt of the values described above via the control channel. A separate control channel is created between each source and destination. The protected content is transmitted in a step 504. When the source has completed the transmission of the protected content it sends a message, in a step 506 to the destination(s) asynchronously via the control channel(s) which terminates the content channel. Compliant System Components A compliant system must implement the components described in the following sections. FIG. 6 shows the components required for a device which is a source of protected content. FIG. 7 shows the components for a receiver of protected content. In both FIGS. 6 and 7, the subsystems in boxes with solid outlines are required for compliance. Boxes with dashed outlines are subsystems which are common to compliant and non-compliant devices. Marking Subsystem A Marking Subsystem 602 shown in FIG. 6 is present in systems which are sources of protected content. The primary function is to determine the protection status of the content which is to be transferred across the serial bus. This status is then translated into protection requirements which are passed to an Authentication and Key Exchange Subsystem 604. Authentication and Key Exchange Subsystem As shown in FIGS. 6 and 7 an Authentication and Key Exchange Subsystem 604, 704 is found in both Senders and Receivers of protected content. Authentication and Key Exchange Subsystem 604, 704 is responsible for implementing the protocols which are used to ensure that devices exchanging protected content are compliant. The protocol is also used to select a channel encryption algorithm and exchange the control channel encryption key. Channel Encryption Subsystem A compliant device that transmits protected content must have a Channel Encryption Subsystem 606. Control messages, as well as protected content, are encrypted prior to transmission. Channel Encryption Subsystem 606 performs these encryptions. The keys used to encrypt the content and commands are passed to Channel Encryption Subsystem 606 from Authentication and Key Exchange Subsystem 604. Channel Encryption Subsystem 606 may support more than one cipher, although for interoperability it is preferable that a Baseline Cipher be supported. In a typical embodiment of the present invention, Authentication and Key Exchange Subsystem 604 specifies the particular cipher and key to be used for each packet transmitted. Channel Decryption Subsystem A compliant device which receives protected content must have a Channel Decryption Subsystem 708. Channel Decryption Subsystem 708 decrypts control messages and protected content which are received from the serial bus. The keys used to decrypt the content and commands are passed to Channel Decryption Subsystem 708 from Authentication and Key Exchange Subsystem 704. Channel Decryption Subsystem 708 may support more than one cipher, although for interoperability it is preferable that a Baseline Cipher be supported. Authentication and Key Exchange Subsystem 704 specifies the particular cipher and key to be used for each packet received. Baseline Cipher A Baseline Cipher must be supported by Channel Encryption Subsystem 606 and Channel Decryption Subsystem 708 of all compliant devices. This baseline cipher is required to ensure the interoperability of all compliant devices. Additional ciphers with other properties such as increased security can also be deployed and used, provided that both the source and destination devices support it. Those skilled in the art will recognize that many symmetric key ciphers, for example DES, are available to for use as a baseline cipher. Key Generation at Device Manufacture Ideally, each device manufactured will have a unique device ID and public/private DSS key pair. With unique device IDs and DSS keys, the Digital Transmission Protection Authority will only need to revoke the certificates of the specific devices which have been compromised. Other users who bought the same device model and have not violated the license agreement would not be effected by this revocation. The principle drawback of this scheme may be that the manufacture of CE devices is made more complicated. This would be the case if no information unique to each copy of the device (such as a serial number) is currently programmed into it. Authentication Software Infrastructure An illustrative embodiment 800 implementing the present invention on a PC is shown in FIG. 8. A shared authentication proxy 802 on the PC handles all authentication activities associated with managing a protected content stream traversing a serial bus 804 between the PC and other IEEE 1394 devices 806. This includes not only authenticating external devices but also authenticating software components running on the PC which will source and sink protected content streams. The authentication mechanism used between the software components running on the PC and authentication proxy 802 is typically the same as the one described above in connection with hardware sources/sinks. Each software component which is a source or sink of content has a digital certificate and a public/private DSS key pair associated with it just like a physical device. When a software source or sink is initialized, it performs a full authentication with authentication proxy 802. This results in the establishment of a secure control channel between the software component and the authentication proxy. External devices also authenticate themselves with the authentication proxy on the PC whenever they need to exchange content with the PC. The authentication proxy passes the control channel key established with an external device to the software components that handle the content being transmitted or received by that device via the control channel between the software component and the authentication proxy. The external device and the software component can then establish content channels using the control channel which is now open between them. Alternative embodiments, including ones with no centralized authentication proxy, are possible. If there is no centralized authentication proxy, authentication can be performed directly between the software components sourcing or sinking the protected content and the external serial bus devices. Additional software functionality would be needed to ensure that authentication messages get routed correctly between an IEEE 1394 software stack and the source/sink software components being authenticated. Conclusion Embodiments of the present invention provide a flexible system which can support a range of protection levels. Digital certificates enable device authentication which in turn facilitates the exclusion of devices which can circumvent the protection of the content. Furthermore, the content itself may be encrypted to ensure that even if it is copied, it will be in an unusable format. The present invention allows for a high level of content protection which can be implemented with a reasonable level of resources for consumer electronics equipment and computer systems. Embodiments of the present invention advantageously provide strong protection of audio/video content transmitted over communications links such as an IEEE 1394 bus. A further advantage of the present invention is that non-compliant devices are unable to transmit or receive protected content. A still further advantage of the present invention is that it is inexpensive to implement in PCs and other consumer electronic devices. It will be understood by those skilled in the art that many design choices are possible within the scope of the present invention. The present invention is not limited to communication via a bit serial link, nor is it limited to a particular cryptographic algorithm or key length. For example, although an illustrative embodiment of the present invention is described as using an IEEE 1394 serial bus, the present invention is equally applicable to other interconnect technologies such as Ethernet, Asynchronous Transfer Mode (ATM), cable television systems, and telephony networks. Also, cryptographic algorithms chosen for the content and control channels may be different. Similarly, cryptographic algorithms chosen for authentication may be different from those described herein. For example, the RSA algorithm can be used for digital signatures and key exchange. The present invention can be embodied as methods and apparatuses for practicing those methods. The present invention can also be embodied in the form of computer program code embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The program code encoded in tangible media creates the means for causing the computer to perform the various steps of the present invention. The present invention can also be embodied in the form of computer program code, whether stored in a storage medium loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general purpose microprocessor, the computer program code combines with the microprocessor to provide a unique device that operates analogously to specific circuits. It will be understood that various changes in the details, materials, and arrangements of the parts and steps which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the principles and scope of the invention as expressed in the subjoined claims.
|
Same subclass Same class Consider this |
||||||||||
