The present invention relates to the field of authentication and protection of digital content from illegal copying and use. More particularly, the invention relates to a method and system for protecting digital content stored on recordable media from illegal copying and use.
Optical media such as CD-ROM and DVD have become major means for software storing due to the high density and reliable storage which they provide at a relatively low price. In the past, the piracy in the copying of optical media like CD-ROM was negligible, as recording machines were available only to professionals due to their high price. In recent years, the price of recording machines capable of making a perfect copy of original, prerecorded CDs and DVDs has been reduced. Consequently, the rate of illegal copying and illegal use of software has significantly increased, which resulted in significant damages to the content owners.
Compact Disks (CD) are an optical storage media of digital information (content) widely utilized for storage of audio, video, text, and other types of digital content. Their reliability, efficiency and low price made their use very common for storage of music, movies, computer software and data. The content stored on the CD may be easily copied, and actually, it is accessible utilizing the basic tools of virtually any computer Operating System (OS). The arrival of recordable CDs (CD-R), made the pirate reproduction of CDs a very simple task.
In recent years, several copy protection technologies for optical discs were developed to fight against the increasing piracy levels. Most of them are based on deliberately corrupting the disc, or changing its optical properties. The corruption of the disc is done by professional mastering equipment that is used in optical discs replication facilities. The standard optical disc recorders, that are used by pirates to make illegal copies, are not designed to corrupt the optical discs, and therefore, cannot create an exact copy of the original protected disc. A software module that is added to the optical disc, reads the areas on the disc that should be corrupted, determines if the disc is original or a copy and grant or deny access to the content on the disc accordingly.
The existing copy protection technologies may be suitable for protecting against the copying of applications such as computer games that can be replicated many times using one corrupted master that had been produced by replication facilities. The drawback of copy protection technologies that are based on intentionally corrupting the optical disc, is that they cannot be easily applied to recordable discs, since standard optical disc recorders are not designed to record information on corrupted recordable discs.
Copy protection solutions for recordable optical discs is extremely important for pre-releases (Alphas, Betas, etc.) of computer games and software. Content owners are used to publish pre-releases of their content in a limited number of copies, in order to have a field test of their software, which are important for reporting if there are any major bugs that should be fixed before releasing the final version of their product. Many times the pre-released copies, of copy right protected digital content, are copied illegally and distributed over the internet, even before the final version of the product is released to the market. The piracy of software in such an early stage, cause huge loss of sales because it damage the first wave of sales, which is the most significant. Pre-releases are published on a very limited number of copies. Usually few singles to a few hundreds, and this is the reason why in most cases they are published on recordable discs that are duplicated in-house by the content owner.
The ability to protect the content of optical recordable discs against unauthorized copying is also extremely important for publishing final versions of software in low volumes. For example, professional software that is sold in a high price for a limited professional market. In particular, a copy protection for optical recordable discs can be well exploited for on-demand environments, where a customer makes his own selection of the content he wish to buy, and a disc containing all his selections is compiled and recorded instantly.
The ability to protect the content on optical recordable discs against unauthorized copying is also extremely important for protecting confidential information in governmental institutes, military and even financial information in banks.
In addition, such a copy protection for optical recordable discs against illegal copying can also allow private consumers to record their own copy protected content, on optical discs one at a time, whenever it is needed, without needing the mass production processes carried out today by the common mastering facilities.
The ability to protect the content of optical recordable discs against unauthorized copying allows certain features that strengthen the copy protection solution, and cannot be applied easily to replicated discs. For example, the ability to make each disc unique by adding unique serial numbers, and adding unique tracking information that can help to track the original owners of original discs, from which illegal copies were made. These features will be explained in details herein later.
All the prior art solutions for protecting the content of optical storage media such as CDs DVDs have not yet provided methods and/or means for protecting recordable optical discs from copying. Therefore, methods for protecting the content on recordable discs are highly required to provide means for protecting the content produced by individuals and/or which is made available in a limited number of copies, without needing mass production mastering processes.
It is an object of the present invention to provide a method and system for protecting digital content that is recorded on standard recordable discs against unauthorized copying.
It is another object of the present invention to provide a method and system for protecting digital content from unauthorized copying, using a recordable disc that contains pre-burned information with intentionally embedded logical symbols and serial numbers, that are used for the copy protection process and for determining the authenticity of the disc and the copy protected digital content that is stored on it.
It is also an object of the present invention to provide a method for tracking the owner of an originally recorded medium, from which a pirated copy of protected digital content was made, based on a unique serial number that is recorded on both the original and the pirated copies,
It is another object of the present invention to provide a software driver that provides the operating systems of a computer the ability to transparently read digital content, that is stored in encrypted form on any medium, as long as the medium is a legitimate original. The driver also designed to block any copying attempt of the encrypted content.
Other objects and advantages of the invention will become apparent as the description proceeds.
The terms CD-R and CD-RW are used herein to refer to CDs on which digital content can be written by end users. The term disc is used herein to refer CD-Rs and CD-RWs.
The term Cyclic Redundancy Check (CRC) refers to a method for producing a unique signature for data which is often used to detect errors in transmitted data.
The present invention is directed to a method and system for preventing the illegal copying of a copy protected content by a computerized system. The invention may comprise installing a software driver in the operating system of the computerized system, where the software module is capable of intercepting any attempt of the I/O routines of the operating system to access the device drivers of the operating system. Whenever an attempt to read data from the device drivers is intercepted the following steps are performed:
Whenever an attempt to write data to the device drivers is intercepted performing the following steps:
The data stored on the I/O devices may be stored in an encrypted form and the invention may therefore further comprise decrypting the encrypted data whenever it is determined that the accessed device contains an original copy. Optionally, the decryption keys may be obtained from the I/O device from which the encrypted data was read.
The invention is also directed to a method and system for protecting content stored on a recordable CD. The values of the disc ID and the Lead-in start time of the recordable CD are used for generating an encryption key which is utilized for encrypting the content that should be stored on the CD using. The encrypted content is written to the recordable CD, and whenever an attempt to read the content of the CD the following steps are performed:
Optionally, the same key is used for carrying out the encryption and the decryption of the protected content.
The illegal copying of a copy protected content by a computerized system may be also prevented by setting a flag to a logical ON state whenever an active process attempts to read data from the content, where the flag is generally in a logical OFF state and it is associated with the process, and checking the status of the flag associated with a process attempting to output data and preventing the data output if the flag is in the logical ON state.
The present invention is also directed to a method and system for protecting the content stored on a recordable CD which comprise a pre-burned first session including one or more Tracks, each of which includes unique and/or nonstandard data structures. The protected content is recorded on the CD in a concealed form together with an authentication module capable of determining the existence or non-existence of the unique and/or nonstandard data structures and capable of accessing the concealed content and reveal its content. The authentication module is activated whenever attempting to access the CD, and if the unique and/or nonstandard data structures are found on the CD then the access to the concealed content is allowed.
The unique and/or nonstandard data structures may comprise Rom Sync Shifts, Digital Silence, Link Blocks, and/or Predetermined Rom Skew values. The recordable CD may further comprise unique serial numbers stored in predetermined locations within the one or more Tracks. The unique serial numbers may include one or more unique copy-seal serial numbers, which are stored in predetermined locations in the User Data of predetermined data frames within the Tracks, and one or more unique copy-authentication serial numbers which are stored in predetermined locations in the Sub Channels of predetermined data frames within the Tracks.
The copy-seal and/or copy-authentication serial numbers may be used to identify the original copy of the protected content which was used for the copying of a pirate copy. In a preferred embodiment of the invention a unique copy-seal and copy-authentication serial numbers are used for each and every recordable CD, and the bits of the copy-authentication serial numbers are stored in the Copy Permit/Prohibit bit of the Q Sub-Channel of a sequence of predetermined data frames within the one or more Tracks.
According to another preferred embodiment of the invention copy protected storage mediums are produced by: writing data into a first set of a predetermined number of consecutive sectors having consecutive addresses; following the first set writing different data into a second set of the same predetermined number of consecutive sectors having the same consecutive addresses as the first set, such that any attempt to copy the medium results in copying only one of the sets.
Optionally, the copy protected storage mediums are produced by: designating a sector address as a starting location for writing authenticating data sectors; following the starting location writing data into a first set of a predetermined number of consecutive sectors having consecutive addresses; following the first set, writing different data into a second set of the same predetermined number of consecutive sectors having the same consecutive addresses as the first set; and following the second set, designating a sector as an ending location and setting the address of the sector to the consecutive address following the first set, such that any attempt to copy the medium results in copying the starting location sector, one of the sets, and the ending location sector.
The authenticating of the copy protected storage mediums can be carried out by: reading the data of the first set of sectors and producing an identifier for each read sector; reading the ending location sector; reading the sectors preceding the ending location sector in a descending order, producing an identifier for each read sector, and comparing the identifier to the identifier previously produced for the corresponding sector in the first set; indicating that the storage medium is original whenever it is determined that the identifiers which were produced for corresponding sectors mismatch, and if it is determined that the identifiers match indicating the medium being a copy.
The invention is also directed to a copy protected recordable CD. The copy protected recordable CD comprises:
According to a preferred embodiment of the invention the one or more Tracks are recorded in different Subcode Formats. Optionally, the unique and/or nonstandard data structures may comprise Rom Sync Shifts, Digital Silence, Link Blocks, and/or Predetermined Rom Skew values. The copy protected recordable CD may further comprise unique serial numbers stored in predetermined locations within the one or more Tracks, where said serial numbers includes:
According to another preferred embodiment of the invention the copy-seal and/or copy-authentication serial numbers are used to identify the original copy of the protected content which was used for the copying of a pirate copy. According to yet another preferred embodiment of the invention the unique copy-seal and copy-authentication serial numbers are used for each and every recordable CD. The bits of the copy-authentication serial numbers may be stored in the Copy Permit/Prohibit bit of the Q Sub-Channel of a sequence of predetermined data frames within the one or more Tracks.
According to another preferred embodiment of the invention the copy protected recordable CD comprises a pre-burned session comprising one or more Tracks including predetermined locations within the one or more Tracks which comprise one or more unique copy-seal serial numbers, which are stored in predetermined locations in the User Data of predetermined data frames within the Tracks, and one or more unique copy-authentication serial numbers which are stored in predetermined locations in the Sub Channels of predetermined data frames within the Tracks.
In the drawings:
Copy protection for software is usually implemented by integrating an authentication procedure into the software, that checks if the medium that the software is stored on is original. The execution of the protected software is carried out whenever it is determined that the storage medium that is being used is original, and it is terminated whenever it is not so.
The copy protection of digital content other than software (e.g., text, music) cannot be protected using such techniques, since the access to such content usually does not involve initiating any process originated from the storing media, and therefore it is accessed in the same manner whether the storing medium is original or not. The present invention provides an architecture for a software driver (hereinafter will be also referred to as content protection driver), that is installed in the operating system and adds support for reading encrypted content from any medium as long as it is original. The process of decrypting the content is fully transparent to the end user. The media may contain any type of content such as MPEG video files or MP3 audio files. This content may be used in a normal way, for example by playing the video and audio files with any player that may be installed on the users computer. However, any copying attempt of the content will be blocked by the content protection driver.
The content is preferably stored on the protected media in an encrypted form. The protection of the stored content is carried out by the content protection driver, that intercepts any reading and/or writing operations initiated from the user's computer. When the storing media, on which the encrypted content is stored, is accessed, the content protection driver verifies that the media is original by using one or more of the authentication methods that are described herein. If the storing media is indeed original, the content protection driver decrypts the information that is read from the media, and calculate a Cyclic Redundancy Check (CRC) code for that read operation. The content protection driver stores in the computer's memory the calculated CRC codes of several read operations that have been performed recently. When the content protection driver intercept a write operation, it calculates the CRC code for the information that should be written. If the CRC code that was calculated for the information to be written matches one of the last CRC codes of the read operations that are stored in the computer memory, the content protection driver blocks the write operation, or writes faked content instead (e.g., random data).
This unique method solves the problems of many existing content protection/encryption methods, wherein it is impossible to use a fully transparent system for decrypting the encrypted content and allow any program to use it. Most of the content protection methods which are based on storing encrypted content requires the user to enter some code or use an external device that holds the decryption keys which enables accessing the encrypted content. The main problem in a fully transparent system is that any active process capable of accessing the OS resources can also gain access to the encrypted content, and therefore any copying software is also capable of doing the same i.e., reading and copying the protected content. For example, a fully transparent system will allow the windows explorer of a MS-Windows operating system to read the encrypted content that can then be written to a different medium.
Copy protection system usually includes an authentication process that is used for determining if the storing medium that is used is original or not. Based on the result of this authentication process the access to the protected content is granted or denied. The present invention provides two different methods for determining if the medium is original or not. The methods that will be described hereinafter were particularly adapted for optical recordable discs.
The authentication process of the first method is preformed to standard recordable discs, utilizing unique Identification Marks that exist on any recordable disc.
The authentication process of the second method is mainly based on the fact that two different discs that contains the same content, but were recorded using different recorders, and maybe even different recording methods, essentially have some minor differences between them. The authentication method of the present invention, exploit said differences to determine if the disc that is used is original, or a copy made by a different recorder and maybe even by using a different recording method.
The authentication process of the second method is performed to standard recordable discs that have a pre-burned area which includes intentionally embedded logical symbols and unique serial numbers. The authentication process is designed to read information from the pre-burned area and use it to determine if the disc is original or not. As will be explained, the serial numbers that are embedded into the discs, are unique for each and every disc, although the same information maybe recorded on the discs. Should an illegal copy be found, the serial numbers may also be used to identify the owner of the original disc, from which the copy was made.
As will be understood by those skilled in the art, the authentication methods of the present invention, can be integrated into processes of almost any software. While the software run, the authentication processes are carried out to determine if the medium on which it is stored is an original medium or not, and its operation is continued or terminated accordingly. Additionally, these authentication methods can also be integrated into the authentication procedures of the content protection driver of the present invention, in order to provide a copy protection mechanism which is also suitable for any type of digital content other than software, by utilizing encryption means.
A typical recorded CD media consists from a succession of CD frames.
The structure of the main channel block 110 is determined by the type of information that is recorded on the CD. Audio, computer data and video content have different main channel block structures. The main channel block 110 shown in
The synchronization pattern of the main channel of a disc (Sync 111) typically occurs every 2352 bytes (at the beginning of each CD frame). However, the distance between two consecutive synchronization patterns may be less or greater than 2352 bytes. This phenomenon is known as Rom Sync Shift and it usually appears due to errors in the manufacturing process of CD-ROM masters. Recording devices are typically not designed to create Rom Sync Shifts. According to the present invention, intentionally embedded Rom Sync Shifts are utilized to authenticate a copy protected recordable disc, as will be shown and explained herein later.
The Sub Channels field 120, consists of 2 synchronization bytes and 96 bytes of Sub Channels information. Each Sub-Channels information byte 121 is divided into 8 Sub-Channel bits labeled using the letters P to W according to their bit position, as shown in
All the information in the frame's main channel 110, except to the Sync field 111, is scrambled. The scrambling is preformed by XORing the information of the main channel 110 with predetermined values. When information is read from the disc, the reading device automatically unscramble the information before sending it to the reading application. A sequence of one or more CD frames that contains zeros on all fields after scrambling is called “digital silence”. Standard discs typically do not contain digital silences. As will be explained herein later, these “digital silence” frames can be used to authenticate a copy protected recordable discs according to the method of the invention.
The information on a disc is recorded in a logical structure called session. A session is divided into 3 logical entities beginning from the inner radius of the disc and continuing toward its outer edge.
The Program Area 2200 is divided into logically separated areas called tracks 2210. There should be at least 1 track 2210 in the Program Area 2200. Each track 2210 contains 2 pause areas. The Pre-Gap, field 2211, and the Post-Gap, field 2213. The length of each of said pause areas is 150 CD frames. The P Sub-Channel is reserved for identifying the gaps. The value of the P Sub-Channel in the Program Area is 0 its value is set to 1 in the Gaps areas 2211 and 2213. The data frames within the Program Area, field 2212, are used for storing the user content e.g., computer files.
When writing to a standard recordable disc, using a standard recording device, the Pre-Gap area 2211 of each track is filled with CD frames that contain zeros (frames in which all the bytes of the User Data 113 holds zero values) or Track Descriptors, depending on the recorder that is used. Track Descriptors are used to describe the track in which they are written and they contain information such as the length of the track and the recording method that is used to record the track. The Track Descriptors have no affect on the functionality of the disc, and as mentioned above some recorders may even write in the Pre-Gap area 2211 CD frames that contain zeros in the User Data field 113 instead of Track Descriptors.
A session is constructed from the following recorded sequence: Lead-in 2100, Tracks Area 2200, and Lead-out 2300. However, there is also a multi-session technique which allows a single disc to have several concatenated sessions. As will be discussed hereinafter this mode can be exploited for the construction of a copy protection scheme for recordable optical discs
The first frame of a blank recordable disc starts at a negative address which its value depends on the disc manufacturer. This start address is also known as the “Lead-in Start Time”. A negative address in MSF addressing is defined as a count down from address 00:00:00, for example, the address −1 is represented as 99:59:74. The Program Area 2200, always starts at address 00:00:00 (MSF). Therefore, the length of the first Lead-in is varying in different disc brands. The time lengths of the subsequent Lead-ins (e.g., session No. 2 and above) are typically 60 seconds long. A blank recordable disc also has a unique 32 bits number that is recorded on it. This number is called the Disc ID. The Disc ID and the Lead-in Start Time can be read by using the standard Multi Media command ‘Read Disc Information’ as defined in the SCSI MMC-3 standard (NCITS. 360:2002.)
Typical CD-ROM devices are not capable of reading through unrecorded areas on the medium. This means that to ensure that a CD-ROM device is capable of accessing all areas of the Program Area 2200, the Program Area 2200 needs the Lead-in 2100 and Lead-out 2300, protection zones. On a recorded disc, sessions may appear as shown in
Fields 441 to 449 in
Before starting a write operation, the “write mode page” parameters of the recording device must be set. The “write mode page” is an internal parameter table, that is used to control the writing functionality of the recording device e.g., the writing method, writing speed, the type of content that is written (Audio, Data, etc.).
There are 3 basic methods of writing to a recordable disc. Track At Once (TAO), Session At Once (SAO) and Disc At Once (DAO).
When writing information in TAO, each track is recorded in separate recording operation and the laser beam of the recorder is turned off after the recording of each track is completed. When writing in SAO, all the tracks in each session are recorded in an uninterrupted operation, and the laser beam of the recorder is not turned off after recording each track. Each session is still recorded in a separate operation, and the laser beam is turned off only after the recording of each session is completed.
DAO is the only true uninterrupted recording method. When writing in DAO, all the information on the disc from the first Lead-in to the last Lead-out, will be recorded in one uninterrupted operation without turning off the laser beam until the last session is written. As will be explained herein later, the writing method affects the structure of the data on the disc. To gain a better understanding of these effects, the following terms should be explained:
b illustrates the structure of the pre-burned information 1301. The pre-burned information 1301 is a session with two tracks, Track 1 and Track 2. The Pre-Gap of the first track 1331, includes CD frames with the following intentionally embedded logical symbols:
In a preferred embodiment of the invention the Track Program Area of Track 1, field 1341, includes CD frames with the following intentionally embedded logical symbols:
According to one preferred embodiment of the invention, the Pre-Gap 1, 1331, of Track 1 is recorded according to the Philips Subcode format, while Pre-Gap 2, 1361, of Track 2 is recorded according to the Sony Subcode format. In this way, whenever an attempt to copy the content of the copy-protected disc 1300 is made, both Pre-Gap areas, 1331 and 1361, of the recorded copies will be recorded according to one Subcode format that is determined by the recording device.
The pre-burned information 1301 also contains Link Blocks between Post-Gap 1, 1351, of Track 1, and the Pre-Gap 2, 1361, of Track 2. Additional false Link Blocks are intentionally written in the middle on the Track Program Area (2212) of Track 1, where Link Blocks are not written when using standard recorders and recording methods. These Link Blocks are fake Link Blocks that are written instead of standard CD frames within the Program Area of track 1. When making a copy of the disc 1300, Link Blocks are written according to the recording method that is used to make the copy. Therefore, the false Link Blocks within the Track Program Area of Track 1 will not be copied to the recorded copy. Additionally, the Link Blocks between field 1351 and field 1361 may not appear on the copy as well if the copy is recorded in one of the uninterrupted recoding methods (SAO or DAO).
Each of the Link Blocks in
Except for the logical symbols that are listed above, the PMA area of the disc 1300, contains intentionally embedded false PMA Entries 1311 that do not match the layout of the disc. An example for a false PMA entry is one that lists an address of a CD frame that is within the Track Program Area of track 1. This is not a true PMA entry because PMA entries are written only when the recording is stopped and recorders are not designed to stop the recording in a middle of a track, and then continue the recording within said track. When attempting to make a copy of the disc 1300, the recorder will add to the copy, PMA Entries that match the disc layout and the recording method, and the false PMA Entries will not exist on the copy.
These intentionally embedded logical symbols, together with the Disc ID, the Lead-in Start Time and the Rom Skew value of the pre-burned information, are used to authenticate original discs and for protecting digital contnet from illegal copying and use by means of encryption. The content to be protected is added to the recordable area 1302, as will be explained hereinafter.
The encryption process starts in step 1200 in
In step 1204 the content that is about to be written (i.e., the actual content to be stored) is encrypted using the encryption key that was generated in step 1203. In step 1205 the encrypted content is written to the disc (CD). The encrypted content on the recorded copy become useless in any attempt of making a copy of a disc that contains encrypted content utilizing this method. In order to properly decrypt and use the encrypted content, the exact Disc Id and the Lead-in Start Time values are needed. The chances that the copied disc have the same Disc Id and Lead-in Start Time as the original, are negligible.
In step 1002 the CD frames of the Track Program Area of track 1 (field 1341), which exits on an original disc and which should contain intentionally embedded Digital Silence, are read from the disc. In step 1011 it is checked if the CD frames that were read in step 1002 contain Digital Silence. If the frames containing Digital Silence were not found, then it is determined that the CD is a copy. Otherwise, if it is determined that the CD frames that were read in step 1002 contain Digital Silence, then the control is passed to step 1003, in which the CD frames that should contain intentionally embedded Rom Sync Shifts in the Program Area of track 1 on an original disc are read. In step 1012 it is checked if there are Rom Sync Shifts within the CD frames that were read in step 1003. If it is determined that there are no Rom Sync Shifts, then it is determined that the CD is a copy. Otherwise, if there are Rom Sync Shifts, then the control is passed to step 1004, in which the Subcode formats of the first two Pre-Gaps on the disc, fields 1331 and 1361, are determined. In step 1013 it is checked if the said two first Pre-Gaps on the disc have the same Subcode formats. If it is determined that the two Pre-Gaps have the same Subcode format, then it is determined that the disc is a copy. Otherwise, if the different Subcode formats are found on said two Pre-Gaps, then the control is passed to step 1005 in
In step 1005 in
The authentication process illustrated using
The encryption process starts in step 1100 of
The generation of the encryption key and decryption key performed in steps 1103 and 1114 is carried out utilizing some or all of the values that were previously obtained (i.e., serial#A, serial#B, false Track Descriptors, and Custom Information) by utilizing mathematical and/or logical operations, and/or by utilizing some predetermined sequence of permutations acted on said values or on the result of a mathematical and/or logical operations performed upon them.
The content protection driver 813 is installed between the Operating System's I/O API's 812 and the Operating System's device drivers 814, in such a way that it is able to intercept any I/O operations and data transfers that are carried out between the I/O devices 816 and the computer memory 810. The placing of the content protection driver 813 in such manner is also termed Hooking.
It should be noted that the content protection driver 813 is actually a program file that can be stored on the protected medium itself or on a different medium. The installation process is initiated by running this program file.
In step 803 it is checked if there is a medium present in each of the existing supported I/O devices 816. If there is no medium present the control is transferred to step 809 in which a flag (No_Decrypt) is set to indicate that there is no need to decrypt the content that is being read from the specific I/O device. The operation continues as the control is passed from step 809 to the content protection driver's main loop through {circle around (2)}.
If it is determined in step 803 that a medium is present in one of the supported I/O devices 816, the control is passed to step 804. In step 804 it is checked if the content on the medium is encrypted. This check is dependent on the medium type. In case of a CD, it is done by reading the CD frame at the relative address 00:02:16 of the first track. As was explained before, according to the encryption process of the present invention this CD frame is used for storing an Identification Mark, in fields that are unused according to the ISO 9660 standard. The existence of the Identification Mark indicates that the medium is protected and its content is encrypted. If the content on the medium is not encrypted, then there is no need to perform decryption of the stored content that is read from the specific I/O device and the control is passed to step 809. If the content is encrypted, the process continues in step 805, wherein an authentication test is performed to determine if the medium is an original or not. The authentication test is also dependent on the medium type. In case of a recordable CD this authentication test can be one of the authentication tests of the present invention, illustrated in
In step 806 the result of the authentication test of step 805 is checked. If it is determined in step 806 that the medium is not an original, the decryption of the content that is read from the specific I/O device should not be decrypted, and the control is passed to step 809. Otherwise, if it is determined in step 806 that the medium is an original, the control is passed to step 807, wherein the appropriate decryption keys are read from the medium. Then the control is passed to step 808, which resets the No_Decrypt flag to indicate that the content that is read from the specific I/O device need to be decrypted. The control is then passed to the main loop through {circle around (2)}. The decryption keys required to decrypt the protected content are stored on the storing media in predetermined locations which are determined according to the storing media that is being used. For example in a CD encryption keys may be calculated using the values of Serial#A and Serial#B, and the Custom Information in the pre-gap.
If it is determined in step 838 that the new inserted medium is protected, then the control is passed to step 839, in which an authentication test is performed on the medium. The test in step 839 is identical to the test preformed in step 805 in
If it is determined in step 832 that new medium was not inserted, then the control is passed to step 833, in which it is checked if the event was generated due to of an intercepted write operation, and if it is so, then the control is passed to the write procedure (shown in
If it is determined in step 834 that the event was not generated due to an intercepted read operation, then the control is returned to step 831, in which the process enters a wait state, and waits for the next event. If it is determined in step 834 that the event was generated due to an intercepted read operation, the control is passed to step 835, in which it is checked if the read content should be decrypted by checking the state of the No_Decrypt flag of the specific I/O device. If decryption should not be preformed (No_Decrypt=“1”), then the control is returned to step 831, for waiting for the next event. Otherwise, If decryption should be preformed (No_Decrypt=“0”), then the control is passed to step 836 in which the read content is decrypted. The process proceeds in step 837, in which a CRC code for the read content is calculated, and the CRC result is then stored in the computers memory. This step also manages a list of CRC codes of all the content that was read in the recent read operations. Finally, the control is returned to step 831 that waits for the next event.
If it is determined in step 842 that the calculated checksum that was obtained does not equal to one of the checksums that were calculated for the content that was read in the recent read operations, then the control is passed to step 843, in which the write process is allowed to continue normally. Eventually, the control is passed back to step 831 in the main loop of the content protection driver through {circle around (2)}.
The protection against copying of protected content can be further improved to prevent such copying by any active process. For example, step 837 may include setting a flag associated with the process which initiated the read event. In this way whenever a write operation is performed by this process it can be prevented in step 842 by checking the status of the flag associated with process which initiated the write event. A determination that the flag associated with process which initiated the write event is set “ON” will result in preventing the write operation in step 844. It should be noted that this additional protection can be used to prevent any output (e.g., print, paste, etc.) from the initiating process.
The VDH section of the storage medium comprises several consecutive information blocks (sectors), which are divided into 2 parts (
For example, on a CD, each CD Frame has its address written in 3 different locations: in the ATIME and RTIME of the Q sub channel as shown in
The 2 parts of the VDH appear to the reading drive as one virtual part that contain unstable information (e.g., Virtual Block 1 to Virtual Block 4). When the reading drive receives from an application a request to read the content of an information block found in the VDH, the drive may detect 2 different information blocks with an address that matches the address of the requested information. In that case, the drive will access the information block that is physically closest to the location of the drive's reading head. The greater the difference between the distances of the overlapping information blocks from the reading head, the higher the probability that the drive will actually read the nearest information block. If the difference between those 2 distances is minor or zero, then it is unpredictable which of the information blocks will be read.
Making a copy of any digital medium involves 2 basic operations: reading from the source medium and then writing to the target medium. Any copy of a storage medium containing a VDH, will necessarily lack the VDH contained on the source medium. During the reading process, each information block is read and then written to the target medium. However, in the area where the VDH is located there are 2 sets of information blocks (overlapping blocks) that appear as one. When reading this area, only one information block of each set of overlapping blocks will be read and then written to the source. As a result, the target medium will contain in the VDH area only the read information blocks without their overlapping information blocks of the VDH area of the source medium.
There is no way to know for sure which of the overlapping information blocks will actually be copied to the VDH area on the target medium, but the information in this area will necessarily be stable. This means that whenever an application requests the drive to read the content of an information block from a copied medium, the same information block will be read regardless of the drives' reading head's location.
In step 1800, the first Reset Block (RB1) is read, which is the first sector before the VDH area. Reading this sector brings the drive's reading head to the beginning of the first part of the VDH, wherein the first overlapped sector RB1+1 is located. In step 1801, the next sector is read, which is actually the first overlapped sector RB1+13. In step 1802, a CRC code is calculated for the information read in step 1801, the CRC code is stored in the computer's memory. In step 1803 it is checked if the sector read in step 1801 is the last sector of the first block i.e., RB1+4. If it is determined that the read sector is not the last sector of the first part, the control is passed to step 1801. Otherwise, the control is passed to step 1804.
In step 1804 the next sector is read i.e., RB2(=RB1+5). In step 1805, the previous sector is read (e.g., RB1+4), and in step 1806, a CRC code is calculated for the information read in step 1805. In step 1807, the CRC code calculated in step 1806 is compared to the CRC calculated in step 1802 for the same sector (e.g., RB1+4). If the 2 codes are not equal, then it is assumed that an overlapping sector pair was detected, because different information was read from the same sector addresses in two different read operations. In this case, it is concluded that the medium is original and the process is terminated. In case that the CRC codes compared in step 1807 are equal, then the control is passed to step 1808.
In step 1808 it is checked if the sector that was read in step 1805 is the first sector of the VDH, RB1+1. If it is not the first sector RB1+1 of the VDH, the control is passed to step 1805 for processing the previous sector. Otherwise, if the first sector RB1+1 is reached, it is concluded that the medium does not contain the VDH, because no overlapping sector pair was detected, and therefore, the medium is a copy.
Number | Date | Country | Kind |
---|---|---|---|
154346 | Feb 2003 | IL | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IL04/00120 | 2/4/2004 | WO | 7/25/2005 |