1. Field of the Invention
The invention relates to data storage, and more particularly to storage of secure data.
2. Description of the Related Art
Digital rights management (DRM) is a term for access control technologies that are used by hardware manufacturers, publishers, copyright holders and individuals to limit the use of digital contents. DRM technologies attempt to control use of digital media by preventing unauthorized access, copying or conversion to other formats by end users. Digital rights management is used by companies such as Sony, Amazon, Apple Inc., and Microsoft.
When an end user wants to play a digital content, the end user downloads the digital content from a DRM server to a client-end device, and the DRM server issues a rights object to the client-end device. The end user can then play the digital content stored in the client-end device according to the rights object. If the digital content is copied from an authorized device to an unauthorized device, because the unauthorized device does not have a rights object stored therein, the end user cannot play the copied digital contents on the unauthorized device. Because an ordinary DRM server does not allow the end user to move a rights object from a client-end device to other devices, the end user, can only play the digital contents on the client-end device which has been connected to the DRM server to acquire the corresponding rights object via a network connection; it is inconvenient for the end user.
The Open Mobile Alliance (OMA) has established an OMA DRM 2.0/2.1 standard which allows an end user to move a rights object from a client-end device to a secure removable media (SRM). Examples of secure removable media may be a secure digital (SD) card, a USB disk, or a multi-media card (MMC). The end user can therefore use the rights object stored in the secure removable media to play the digital contents stored in the secure removable media, which is referred to as local consumption. The SRM standard, however, does not disclose how to store and retrieve the rights object in a secure fashion on the secure removable media. Thus, a method for managing the rights object stored in the secure removable media according to the OMADRM 2.0/2.1 standard is required.
The invention provides a secure removable media. In one embodiment, the secure removable media comprises a non-volatile memory and a controller. The secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory), and comprises a public area, a hidden area, and a reserved hidden area for data storage, wherein at least one security program is stored in the public area, and a first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are stored in the reserved hidden area. The controller receives secure data from an external device. The security program then uses the first firmware to retrieve the media identifier from the secure removable media, generates an encryption key according to the media identifier given by the firmware 132, encrypts the secure data according to the encryption key to obtain an encrypted secure data, and uses the second firmware to write the encrypted secure data to the hidden area.
The invention also provides a method for managing a secure removable media. In one embodiment, the secure removable media comprises a non-volatile memory and a controller. The secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory); and the secure removable media is divided into a public area, a hidden area, and a reserved hidden area for data storage. First, a first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are stored in the reserved hidden area. Secure data is then sent by an external device to the secure removable media. The first firmware is then used by the controller to retrieve the media identifier from the secure removable media. An encryption key is then generated according to the media identifier given by the firmware 132 by the security program. The secure data is then encrypted according to the encryption key in order to obtain an encrypted secure data. The second firmware is then used by the controller to write the encrypted secure data to the hidden area.
The invention further provides a secure removable media. In one embodiment, the secure removable media comprises a non-volatile memory and a controller. The secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory), and comprises a public area, a hidden area, and a reserved hidden area for data storage, wherein at least one security program is stored in the public area, and a first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are stored in the reserved hidden area. The controller receives an execution program from an external device, and then the execution program is linked to the security program. The security program then uses the first firmware to retrieve the media identifier from the secure removable media, generates a first program identifier corresponding to the execution program and the secure removable media according to the media identifier given by the firmware 132, and uses the second firmware to write the first program identifier to the hidden area.
The invention also provides a method for managing a secure removable media. In one embodiment, the secure removable media comprises a non-volatile memory and a controller, wherein the secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory), and the secure removable media is divided into a public area, a hidden area, and a reserved hidden area for data storage. First, a first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are stored in the reserved hidden area. An execution program is then stored by an external device to the secure removable media. The first firmware is then used by the controller to retrieve the media identifier from the secure removable media. A first program identifier corresponding to the execution program and the secure removable media is then generated by the security program according to the media identifier given by the firmware. The second firmware is then used by the controller to write the first program identifier to the hidden area.
The invention also provides a secure removable media. In one embodiment, the secure removable media is coupled to a client-end device comprising a digital rights management (DRM) agent, and comprises a non-volatile memory and a controller. The secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory), and comprises a public area, a hidden area, and a reserved hidden area for data storage, wherein a secure removable media (SRM) agent is stored in the public area, and a first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are stored in the reserved hidden area. The controller receives a rights object and secure data from the DRM agent of the client-end device. The SRM agent then uses the first firmware to retrieve the media identifier from the secure removable media, generates an encryption key according to the media identifier given by the firmware 132, encrypts the rights object and the secure data according to the encryption key to obtain an encrypted rights object and encrypted secure data, and uses the second firmware to write the encrypted rights object and the encrypted secure data to the hidden area.
The invention provides a method for managing a secure removable media. In one embodiment, the secure removable media is coupled to a client-end device comprising a digital rights management (DRM) agent; the secure removable media comprises a non-volatile memory and a controller. The secure removable media corresponds to a media identifier, which is a number physically inscribed on the non-volatile memory semiconductor chip and is not stored in the regular non-volatile memory cells or other one-time-programmable memory such as ROM (read only memory), and the secure removable media is divided into a public area, a hidden area, and a reserved hidden area for data storage. First, a secure removable media (SRM) agent is stored in the public area of the secure removable media. A first firmware for retrieving the media identifier and a second firmware for accessing the hidden area are then stored in the reserved hidden area. A rights object and secure data are then sent from the DRM agent of the client-end device to the secure removable media. The SRM agent is then executed to use the first firmware to retrieve the media identifier from the secure removable media, to generate an encryption key according to the media identifier given by the firmware 132, to encrypt the rights object and the secure data according to the encryption key to obtain an encrypted rights object and encrypted secure data, and to use the second firmware to write the encrypted rights object and the encrypted secure data to the hidden area.
A detailed description is given in the following embodiments with reference to the accompanying drawings.
The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein:
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
Referring to
In one embodiment, a storage space of the non-volatile memory 104 is divided into a public area 110, a hidden area 120, and a reserved hidden area 130. The storage space of the public area 110 can be accessed by an end user on demand. The storage space of the hidden area 120 and the reserved hidden area 130 cannot be accessed by the end user. A logical-to-physical address conversion table 140 is stored in the non-volatile memory 104. Firmware 132 and 134 are stored in the reserved hidden area 130 of the non-volatile memory 104. The firmware 132 is used to read the media identifier UID from the non-volatile memory 104. In one embodiment, the firmware 132 contains a one-to-one mapping algorithm. After the firmware 132 reads an original media identifier from the nonvolatile memory 104, the firmware 132 uses the one-to-one mapping algorithm to derive a new media identifier UID from the original media identifier. The media identifier UID output by the firmware 132 is therefore different from the original media identifier inscribed on the semiconductor chip of the non-volatile memory 104 for the sake of security. This one-to-one mapping algorithm can provide extra protection. Even if the memory chip manufacturer leaks out the original media identifier, the media identifier UID used for generation of an encryption key and a decryption key is still unknown to an unauthorized party. The firmware 134 is used to read data from the hidden area 120 or write data to the hidden area 120. A security program 112 and a firmware library 114 are stored in the public area 110 of the non-volatile memory 104. The security program 112 is used to store secure data to the hidden area 120 of the non-volatile memory 104, and retrieve secure data from the hidden area 120. The functions of the security program 112 are further illustrated with
Referring to
Referring to
Referring to
An execution program may also be required to be stored with secure protection.
The execution program, however, cannot be stored in an encrypted format. The encrypted execution program cannot be directly executed by a processor. To prevent an execution program from being executed on an unauthorized device, a security program must determine whether the device storing the execution program is an unauthorized device before the execution program is executed. Referring to
Referring to
The authentication function 208 then determines whether the program identifier UID″ is identical to the program identifier UID′. If the secure removable media 100 is the authorized secure removable media having the execution program 116, which was originally stored therein, the program identifier UID″ generated according to the media identifier UID of the non-volatile memory 104 must be identical to the program identifier UID′ stored in the hidden area 120, such that the execution of the execution program 116 (step 458) will continue. If the secure removable media 100 is not an authorized secure removable media originally storing the execution program 116, the program identifier UID″ generated according to the media identifier UID given by the firmware 132 of the unauthorized secure removable media 100 must be different from the program identifier UID′ stored in the hidden area 120, such that the execution of the execution program 116 (step 460) will be terminated. Thus, even if the execution program 116 is copied to a non-volatile memory of an unauthorized device, the execution program 116 cannot be executed on the unauthorized device.
Referring to
A secure removable media 506 is connected to the client-end device. For example, the secure removable media 506 may be a secure digital (SD) memory card, a multi-media card (MMC), or a USB disk. In one embodiment, the secure removable media is connected to the client-end device via a USB connection, and comprises a secure removable media (SRM) agent 522. The client-end device 504 may write the DRM content 518 to the secure removable media 506 as the DRM content 518′. The client-end device 504 can also move the rights object 516 and secure data between the client-end device 504 and the secure removable media 506. In one embodiment, the secure removable media 506 also comprise a DRM agent 512′ and a content viewer 514′. When the rights object 516′ is moved to the secure removable media 506, the secure removable media 506 can directly play or use the DRM content 518′ according to the rights object 516′.
When the rights object 516 is moved from the client-end device 504 to the secure removable media 506, the SRM agent 522 encrypts the rights object 516 and the secure data to obtain an encrypted rights object 516′ and encrypted secure data, and writes the encrypted rights object 516′ and encrypted secure data to a hidden area of the secure removable media 506. Because the encrypted rights object 516′ stored in the secure removable media 506 is stored in the hidden area, a user cannot directly copy the encrypted rights object 516′ from the secure removable media 506. In addition, because the rights object 516′ stored in the secure removable media 506 is encrypted, a user cannot directly use an encrypted rights object 516′ copied from the secure removable media 506. The rights object of the DRM system 500 is therefore secured from unauthorized access and copying.
Referring to
In one embodiment, a storage space of the non-volatile memory 604 is divided into a public area 610, a hidden area 620, and a reserved hidden area 630. The storage space of the public area 610 can be accessed by an end user on demand. In one embodiment, an SRM agent 612, a firmware library 614, a content viewer 616, a DRM agent 618, and a DRM content 619 are stored in the public area 610. The storage space of the hidden area 620 and the reserved hidden area 630 cannot be accessed by the end user. A logical-to-physical address conversion table 640 is stored in the non-volatile memory 604. Firmware 632 and 634 are stored in the reserved hidden area 630 of the non-volatile memory 604. The firmware 632 is used to read the media identifier UID from the non-volatile memory 604. In one embodiment, the firmware 632 contains a one-to-one mapping algorithm. After the firmware 632 reads an original media identifier from the nonvolatile memory 604, the firmware 632 uses the one-to-one mapping algorithm to derive a new media identifier UID from the original media identifier for the sake of security. The firmware 634 is used to read data from the hidden area 620 or write data to the hidden area 620. The SRM agent 612 is used to encrypt a rights object 622 and secure data 629 before the rights object 622 and the secure data 629 are stored to the hidden area 620 of the non-volatile memory 604. The functions of the SRM agent 612 are further illustrated with
Referring to
Referring to
Referring to
Referring to
The SRM agent 612 then uses the firmware library 614 to read the first encrypted rights object 622 and the first secure data 629 from the hidden area 620 (step 910). The SRM agent 612 then uses the firmware library 614 to retrieve the media identifier UID corresponding to the secure removable media 600 (step 911). The SRM agent 612 then uses the key derivation function 704 and the media identifier UID given by the firmware 132 to generate a decryption key (step 912). The SRM agent 612 then uses the decryption key and the encryption/decryption function 706 to decrypt the first encrypted rights object and the first secure data to obtain a rights object and secure data (step 913). The SRM agent 612 then uses the rights object information to revise the rights object to obtain a revised rights object (step 914). The SRM agent 612 then uses the firmware library 614 to retrieve the media identifier UID given by the firmware 132 (step 915). The SRM agent 612 then uses the key derivation function 704 and the media identifier UID given by the firmware 132 to generate an encryption key (step 916). The SRM agent 612 then uses the encryption key and the encryption/decryption function 706 to encrypt a third encrypted rights object and third secure data according to the revised rights object and the secure data (step 917). The SRM agent 612 then uses the firmware library 614 to write the third encrypted rights object and the third secure data into the hidden area 620 (step 918).
While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.