Abstract:
One embodiment of the present invention provides a system that facilitates marking content during distribution of the content to a client. The system starts by receiving a request for the content from the client at the server and then obtaining a content identifier for the content. Next, the server generates a version identifier that uniquely identifies the version of the content that is sent to the client. Once the version identifier has been generated, the server stores the version identifier in a database along with information to facilitate identification of the requesting client. Finally, the server creates the version of the content by marking the content with the version identifier and delivers the version to the client. Note that the markings on the content facilitate subsequent identification of the client by examining the version of the content.

Description:
BACKGROUND 
     1. Field of the Invention 
     The present invention relates to computer networks. More specifically, the present invention relates to a method and an apparatus for marking content during distribution of the content to a client, so that markings on the content facilitate identification of the client. 
     2. Related Art 
     The explosive growth of the Internet has led to the proliferation of content and of software that facilitates the sharing of content. Most published content is presently available to the public in electronic form. This, coupled with the fact that high capacity digital storage media, such as CD-ROMs, are cheap enough that they are available to the majority of the general public, has sparked widespread sharing and duplication of content that is virtually identical in quality to the source. 
     While sharing of content, in many cases, is beneficial to the society in general and should be encouraged, a growing piece of this trend is focused on piracy and the unlawful duplication of content. The future holds even more appeal to those in the illegal duplication and distribution business. Movies are starting to be filmed and produced entirely on digital mediums. When a theater receives a digital copy of a movie from the film studio, they are also receiving a perfect master from which near-perfect copies of the movie can be made. 
     Many safeguards have been put into place to prevent the illegal copying of protected content. While many of these safeguards work well when they are distributed, they are quickly defeated by other individuals, many of whom view the new safeguards as a challenge that they must break. Current safeguards being placed on distributed content not only discourage the illegal duplication of the content, but they are starting to disallow operations that a purchaser of the content has the legal right to perform. For instance, in their continual quest to prevent the duplication of music CDs purchased from legitimate sources, the recording industry has placed anti-duplication measures on the CDs that are so restrictive, they do not allow the purchaser to copy the songs to his or her MP3 player, or to even play the music CD in a drive that is connected to a PC. 
     What is needed, in this case, is a method and apparatus that discourages the illegal copying of content while not preventing the consumer from making legal copies of the content. 
     SUMMARY 
     One embodiment of the present invention provides a system that facilitates marking content during distribution of the content to a client. The system starts by receiving a request for the content from the client at the server and then obtaining a content identifier for the content. Next, the server generates a version identifier that uniquely identifies the version of the content that is sent to the client. Once the version identifier has been generated, the server stores the version identifier in a database along with information to facilitate identification of the requesting client. Finally, the server creates the version of the content by marking the content with the version identifier and delivers the version to the client. Note that the markings on the content facilitate subsequent identification of the client by examining the version of the content. 
     In a variation on this embodiment, the server marks the version of the content using more than one marking method. Multiple non-interfering marks can be applied to the same part of the content. Note that each subsequent download of the same content potentially would be marked with different marking methods. 
     In a further variation on this embodiment, the server marks different sections of the content using different marking methods, so that any given section of the content is not operated on by all of the marking methods. 
     In a variation on this embodiment, the server marks the content in such a manner that removal of the mark degrades the quality or usability of the content. 
     In a variation on this embodiment, in marking the content information added to the content that does not affect usability of the content by the client and facilitates identifying the client at a later time. 
     In a variation on this embodiment, the server stores a number of items in the database including, the client&#39;s IP address, the current date and time, and information that facilitates identifying the client. 
     One embodiment of the present invention provides a system that facilitates identification of the client to which a version of content was originally distributed. The system starts by receiving the version of the content, and examining it for the presence of a mark. Once a mark has been found, the system examines the mark to determine a version identifier for the content. If a version identifier is found in the mark, the system performs a look up of the version identifier in a database to determine the client to which the version of the content was originally distributed. 
     In a variation on this embodiment, the process of determining the client to which the version of the content was originally distributed is performed each time the version of the content is uploaded to a server or delivered across a network. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates a computer network in accordance with an embodiment of the present invention. 
         FIG. 2  illustrates the content download process in accordance with an embodiment of the present invention. 
         FIG. 3  illustrates the client detection process in accordance with an embodiment of the present invention. 
         FIG. 4  illustrates the process of marking the content in accordance with an embodiment of the present invention. 
         FIG. 5  illustrates the process of identifying the original downloading client in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. 
     The data structures and code described in this detailed description are typically stored on a computer readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital versatile discs or digital video discs), and computer instruction signals embodied in a transmission medium (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, such as the Internet. 
     Computer Network 
       FIG. 1  illustrates a computer network  100  in accordance with an embodiment of the present invention. As is illustrated in  FIG. 1 , client  102  and client  104  are connected to network  100 . Clients  102  and  104  can generally include any node on a network including computational capability and including a mechanism for communicating across the network. Network  100  can generally include any type of wire or wireless communication channel capable of coupling together computing nodes. This includes, but is not limited to, a local area network, a wide area network, or a combination of networks. In one embodiment of the present invention, network  100  includes the Internet. 
     Client&#39;s  102  and  104  include storage devices  106  and  108 , respectively. Storage devices  106  and  108  can include any type of non-volatile storage device that can be coupled to a computer system. This includes, but is not limited to, magnetic, optical, and magneto-optical storage devices, as well as storage devices based on flash memory and/or battery-backed up memory. 
     Server  110  is connected to network  100 . Server  110  can generally include any computational node including a mechanism for servicing requests from a client for computational and/or data storage resources. Server  110  is additionally connected to database  112 . Database  112  can include any type of system for storing data in non-volatile storage. This includes, but is not limited to, systems based upon magnetic, optical, and magneto-optical storage devices, as well as storage devices based on flash memory and/or battery-backed up memory. 
     Content Download Process 
       FIG. 2  illustrates the content download process in accordance with an embodiment of the present invention. As illustrated in  FIG. 2 , client  102  and server  110  are coupled to network  100 . Client  102  is also coupled to storage device  106  and server  110  is also coupled to database  112 . Client  102  contains download control software  202 . Server  110  contains server control software  208 . 
     In one embodiment of the present invention, download control software  202  in client  102  contacts server control server  208  in server  110  to request an item of content. Server  110  then authenticates client  102 . If the authentication of client  102  is successful, server control software  208  retrieves the content from database  112 . Next, server control software  208  generates a content identifier for the content and a unique version identifier for this download instance. The version identifier is then associated with information that facilitates identification of client  102 . This information can include, for example, client  102 &#39;s IP address, the date and time, and the content identifier. This information, along with the content identifier and version identifier, is then stored in database  112 . Note that the version identifier can also be referred to as the download identifier. 
     Server control software  208  now determines the number and type of marking methods to mark the content with. In one embodiment of the present invention, server control software  208  retrieves the marking methods from database  112  to be used for this particular content. Server control software  208  then marks the content with the version identifier via the various marking methods. In one embodiment of the present invention, each marking method is applied to a different portion of the content so that any given portion contains, at most, one mark. In another embodiment of the present invention, multiple non-interfering marks are added to the same part of the content. Moreover, the marks are applied to the content such that the mark is invisible to the user, and removal of the mark will degrade the content and render it unusable. After server control software  208  finishes marking the content, the content is delivered to client  102 . 
     Optionally, the marking method can be varied at random so each download of the same piece of content can contain different marks. This makes it very difficult for a hacker to write and publish a mark removal program that removes all marks from a particular content title or any such universal mark-removal program. Note also that the mark detection only need to find one or the marks employed to record the original version identifier (or version) and can make multiple passes over the content until one of the employed marks is found, so the detector does not need an exact knowledge of the marks used. In one embodiment of the present invention, client  102  always receives content marked with a specific set of marking methods. In this same embodiment, client  104  always receives content marked with a specific set of marking methods that are different from those used for client  102 . This is a further security measure because a client cannot fully analyze the mark methods used without receiving download samples from many additional clients. 
     Note that in one embodiment of the present invention, database  112  includes three separate databases: a content database, an account database, and a marking method database. 
     Client Detection Process 
       FIG. 3  illustrates the client detection process in accordance with an embodiment of the present invention. As is illustrated in  FIG. 3 , client  302  contains client detection software  304  and is coupled to network  100 . Note that client  302  can generally include any node on a network including computational capability and including a mechanism for communicating across the network.  FIG. 3  also illustrates server  110 , which contains server control software  208 , and is coupled to network  100 . Server  110  is additionally coupled to database  112 . 
     Client  302  initially contains a piece of content and wants to determine the client that originally downloaded the software. Client detection software  304  sends a message to server control software  208  to request detection of a client. Server control software  208  then authenticates client  302 , and if the authentication is successful and client  302  has the appropriate permissions, server control software  208  sends a request to client detection software  304  for the content. 
     Upon receiving the request, client detection software  304  uploads the content to server control software  208 . Upon receiving the content, server control software  208  looks up the content identifier in database  112  to determine the marking methods used on this particular content. Server control software  208  then examines the content for the presence of the marks. When a mark is found, server control software  208  analyzes the mark to determine the version identifier. Once the version identifier has been read, server control software  208  looks up the version identifier in database  112  to determine the client that originally downloaded the content. Server control software  208  then shares this information with client detection software  304  on client  302 . 
     Process of Marking Content 
       FIG. 4  illustrates the process of marking the content in accordance with an embodiment of the present invention. The system starts when server  110  receives a request for content from client  102  (step  402 ). Server  110  obtains a content identifier for the content, or, if necessary, generates one (step  404 ). Next, server  110  generates a version identifier for the content (step  406 ). This version identifier contains information that facilitates subsequent identification of the downloading client, which in this case is client  102 . 
     After the version identifier and the content identifier have been created, server  110  stores this information in database  112  (step  408 ) and creates the version of the content by marking the content with this information (step  410 ). Finally, server  110  delivers the version of the content to client  102  (step  412 ). 
     Process of Identifying the Original Downloading Client 
       FIG. 5  illustrates the process of identifying the original downloading client in accordance with an embodiment of the present invention. The system starts when server  110  receives a request to determine the identity of the original downloader of an item of content (step  502 ). This request includes a version of the content. Server  110  then examines the content for the presence of a mark (step  504 ). If a mark is found, server  110  examines the mark to determine a version identifier for the content (step  506 ). Finally, server  110  performs a lookup based on the version identifier in database  112  to identify the original downloading client (step  508 ). 
     In one embodiment of the present invention, the system uses a fingerprinting algorithm to generate a content identifier that will be robust in the face of common content altering techniques. In this case, the system finds the content identifier (fingerprint) so that the subset of marks for that content are known and mark detection software for those marks only need be employed. 
     The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.