EP0968585A1 - Digital product rights management technique - Google Patents

Digital product rights management technique

Info

Publication number
EP0968585A1
EP0968585A1 EP98912914A EP98912914A EP0968585A1 EP 0968585 A1 EP0968585 A1 EP 0968585A1 EP 98912914 A EP98912914 A EP 98912914A EP 98912914 A EP98912914 A EP 98912914A EP 0968585 A1 EP0968585 A1 EP 0968585A1
Authority
EP
European Patent Office
Prior art keywords
product
reader system
signature
encrypted
fragment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP98912914A
Other languages
German (de)
French (fr)
Inventor
John H. Lebourgeois
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptoworks Inc
Original Assignee
Cryptoworks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cryptoworks Inc filed Critical Cryptoworks Inc
Publication of EP0968585A1 publication Critical patent/EP0968585A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1083Partial license transfers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/103Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for protecting copy right

Definitions

  • the invention relates to controlled distribution of digital products in a manner that tends to ensure that authors receive proper royalty payments for their work.
  • Digitally encoded products such as software, music, images and video segments are extremely important in today's economy.
  • the ease and economy with which perfect copies can be made of digitally encoded products has promoted the widespread unauthorized copying and distribution of such products through such channels as user-to-user copying and sharing, digital data networks such as the Internet, and CD-ROM publishing.
  • These distribution channels have made it difficult for the creators and copyright holders of such products to regulate the use of their products or to receive payment and registration information from their users. Consequently, digital product producers often forfeit substantial revenues and valuable information about their customer base and potential markets, while businesses and universities find themselves subject to legal prosecution and intimidation for copyright infringement.
  • Copy protection mechanisms Built into hardware or software.
  • Copy protection mechanisms sometimes can inconvenience users who have a legitimate need for making copies.
  • Copy protection mechanisms also can prevent digital product developers from taking advantage of the new distribution channels, such as the Internet.
  • the CDI technique suffers from at least two problems. First, while the encryption of a data product during transmission may be very strong, it is still theoretically possible for an unauthorized third party to decipher it. Second, even if the product remains secure during transmission, once it is decrypted by the customer, CDI ' s strong encryption techniques no longer protect the product against further unauthorized distribution.
  • the above- cited documents indicate that content as well as executables can be "locked" to a specific registered machine while still allowing for unrestricted distribution of the software in a crippled or time-dated mode, but the documents do not explain how this is to be accomplished.
  • Schull describes a technique for distributing digital products (specifically software) by selling a password to the user.
  • the user uses the password to unlock advanced features of the product, but the password is usable only on one machine.
  • the technique allows users to freely distribute software to other machines and other potential users, but does not allow other users to take advantage of advanced features of the software without obtaining a new password which is specific to the new machine.
  • the user generates a "passwordable- ID" either from the user's voice, by reading the serial number of the machine's CPU, or by any of a number of other suggested methods.
  • the passwordable-ID is transmitted to a licensing system which uses the passwordable-ID to generate an encrypting seed for the software advanced features.
  • the encrypted encrypting seed is then transmitted back to the user as a key for unlocking the advanced features of the software.
  • a digital product is freely distributed through uncontrolled channels in encrypted form.
  • Unencrypted preview material may also be provided in order to help the customer decide whether to purchase a license.
  • one or more fragments of the encrypted product are withheld from uncontrolled distribution, and provided only upon communication with a license server.
  • the technique of the present invention renders it literally impossible for an eavesdropper to recover the complete decrypted product without contacting the licensor.
  • the product is not merely encrypted; to the extent of the security fragments, it is not even there.
  • the customer purchases a license through the use of reader software which examines the components then present on the reader system to develop a reader system signature (RSS) .
  • the reader system signature is transmitted to a license server which uses it either to encrypt the product decryption key, or to further encrypt the security fragments, or both, before sending them to the reader system.
  • the reader system signature is not stored on the reader system. Rather, at the time that the customer would like to use the digital product (view an image or movie, listen to a sound or execute software, for example) , a new reader system signature is generated in the same manner as the original reader system signature.
  • the new reader system signature is used to decrypt the product decryption key and/or the double-encrypted security fragments, only at the time of use. If the user is attempting to use the digital product on a different machine, such as would be the case in the event of unauthorized distribution, then the new reader system signature will not work properly and the unauthorized user will not be able to use the digital product.
  • the above second aspect of the invention could be problematical in the event that the user upgrades or modifies the reader system.
  • a mechanism that regenerates the reader system signature each time a digital product is to be used could prevent a legitimate user from using the product after such an upgrade.
  • the machine authorization of the reader system allows a certain amount of "upgrade drift" before it is deemed advisable to check for unauthorized use.
  • the reader system signature is determined by examining various components (hardware and/or software) of the reader system, to determine individual signatures for each component.
  • the individual component signatures are then combined to form the overall reader system signature, for example by a weighted sum of the individual component signatures or by concatenating the individual component signatures together. If the reader system signature is determined on the basis of a weighted sum (or equivalently, a weighted average) of the individual component signatures, then the amount of permissible upgrade drift can be expressed as a percentage; that is, if the reader system signature generated upon usage of the digital product differs from the reader system signature generated at the time the product is purchased by no more than a predetermined percentage or fraction, then the usage is considered authorized.
  • the reader system signature is generated as a concatenation of the individual component signatures, then the number of components which differ at usage time relative to purchase time can be specified not to exceed a specific count.
  • the reader system signature generated at the time of purchase is not stored on the reader system, it can instead be uploaded to a license server. If the reader system signature generated at usage time is found by the reader system not to properly decrypt either the product decryption key or the product itself, then in an embodiment, the reader system can automatically contact the license server for reauthorization. The reader system uploads the newly generated reader system signature, and the license server performs the upgrade drift test in comparison with the reader system signature that was stored on the license server at the time of purchase.
  • the license server determines that the newly generated reader system signature is within the permissible upgrade drift parameter, then it transmits a new product decryption key and/or new product security fragments, back to the reader system, encrypted according to the new reader system signature.
  • the reader system is then able to decrypt the digital product and play, view or otherwise use it in the desired manner.
  • one embodiment of the reader system also uploads the raw component signatures of the computer system. This allows customer support to determine which components have changed.
  • the reader system signature is generated in dependence upon a component whose individual component signature carries with it external assurances of substantial uniqueness among all computer systems which could reasonably pose as authorized reader systems.
  • a component signature can be used by itself, or in conjunction with other component signatures, in order to generate the overall reader system signature. If used by itself, then upgrade drift is usually not permissible without manual re-validation.
  • Fig. 1 is an overall symbolic diagram of a system according to the invention.
  • Fig. 2 is a block diagram illustrating the structure of a typical reader system of Fig. 1.
  • Fig. 3 illustrates the overall system flow for the authoring system of Fig. 1.
  • Fig. 4 is a flow chart illustrating the flow of a product registration segment of Fig. 3.
  • Fig. 5 is a flow chart illustrating the general operation of the reader system of Fig. 1.
  • Fig. 6 is a flow chart of the product purchase preparation step of Fig. 5.
  • Fig. 7 is a flow chart illustrating one technique for generating the reader system signature.
  • Figs. 8 and 9 together constitute a flow chart of steps which takes place in the license server 104 in response to receipt of a product purchase package.
  • Fig. 10 is a flow chart of the step in Fig. 8 in which the license server processes the customer's payment information.
  • Figs. 11-13 together constitute a flow chart of the step in Fig. 5 in which the reader system plays the digital product.
  • Fig. 14 is a flow chart illustrating the license server's operations in response to receipt of a re- validation package.
  • Figs. 15 and 16 are alternative details of the step in Fig. 14 in which the license server determines whether the difference between the two RSS's exceeds a threshold.
  • Fig. 1 is an overall symbolic diagram of a system according to the invention.
  • the system has three primary components: an authoring system 102, a license server 104 and a reader system 106.
  • the overall system is most useful when used with an uncontrolled distribution channel such as an insecure public distribution network 108 (e.g., the Internet).
  • an insecure public distribution network 108 e.g., the Internet.
  • the author or proprietor of one or more digital products first uses the authoring system 102 to register with the license server 104 as an author.
  • Author registration information is transmitted from the authoring system 102 to the license server 104, and an author ID is returned to the authoring system.
  • the product When the author has a digital product to market, the product is provided to the authoring system 102, together with certain usage parameters .
  • the usage parameters include a set of free usage parameters and one or more sets of paid usage parameters .
  • the authoring system compresses and encrypts the digital product (compression is optional) , extracts one or more security fragments from the encrypted product and then packages the product for broadcast via the uncontrolled distribution network 108 and for upload to the license server 104.
  • the authoring system then transmits the product registration package up to the license server 104 and receives a product ID in return.
  • the authoring system also makes the product broadcast package available on the uncontrolled distribution network 108.
  • a "product” can include one or more sub-products, all of which are considered herein to themselves be “products”.
  • the customer utilizes the reading system 106 to perform those functions of the digital product which are freely authorized according to the free usage parameters that were previously specified by the author.
  • Such functions can include, among other things, a preview of the digital product, and an indication of one or more licensing options which the customer can purchase. If the customer chooses to purchase one of the license options, the reader system 106 examines certain components of the reader system and, in dependence thereon, generates a reader system signature (RSS) .
  • RSS reader system signature
  • the reader system assembles a product purchase package including the RSS and payment information, and uploads it to the license server 104.
  • the license server 104 processes the payment information and, if successful, transmits a product server download package back to the reader system.
  • the reader system uses the product server download package to unlock the functions of the digital product which are authorized under the license option that the customer has purchased, and allows the user to use the product accordingly.
  • the reader system 106 performs fingerprint and/or watermark insertion as described hereinafter.
  • the license server 104 performs a number of functions, including maintaining a database of registered authors and storing all of the product registration packages.
  • the license server 104 also stores reader system signatures from customers, performs customer payment validation, as well as certain fraud detection functions as described below.
  • the license server 104 also performs the functions of royalty payment clearing. Specifically, license royalties received from (or on behalf of) customers are properly accounted for and transferred to the proper authors after deduction of a commission.
  • the authoring system 102, the license server 104 and the reader system 106 are each illustrated as a respective individual block. Depending on the embodiment, each block might contain no more than a single computer, or in different embodiments, different blocks can contain more than one computer.
  • one or more of the blocks 102, 104 and 106 contains a number of computers spread out over a great geographical area and interconnected by a network.
  • the illustration of the authoring system 102, the license server 104, and the reader system 106 as single blocks is not intended to indicate that each must constitute only a single computer system or that each must be located at a respective single location.
  • FIG. 2 is a symbolic block diagram illustrating the structure of a typical computer system which may be used as an authoring system, a reader system or a license server. It comprises a CPU 202 and cache memory 204, both connected to a CPU bus 206. Interface circuitry 208 is also connected to the CPU bus 206. The interface circuitry 208 is further connected to a main memory 210, as well as to two I/O buses: PCI-bus 212 and ISA-bus 214.
  • a PCI-bus 212 Connected to the PCI-bus 212 are sound and game controllers 216, a network adapter 232 and a display adapter 218, the last of which is further connected to a monitor 220.
  • a hard disk drive controller 222 Connected to the ISA-bus 214 is a hard disk drive controller 222, a CD-ROM drive controller 224, a floppy disk drive controller 226, various I/O ports 228, and a boot PROM 230.
  • Most of the peripheral components illustrated in Fig. 2 include on-board configuration data which can be read by the CPU 202.
  • the boot PROM 230 includes a portion which is writeable by the CPU 202 to store configuration data.
  • the software to operate the authoring system 102, the license server 104 or the reader system 106 is stored on the disk drive controlled by the disk drive controller 222, and brought into main memory 210 as needed for execution.
  • the computer system of Fig. 2 communicates with the other systems of Fig. 1, and with the distribution network 108, if appropriate, via the network adapter 232.
  • Fig. 3 illustrates the overall system flow for the authoring system 102.
  • the authoring system flow is generally divided into two segments: an author registration segment 302 followed by one or more product registration segments 304.
  • the author (or other proprietor) of one or more digital products enters his or her identification information.
  • Such information can include, for example, the author's name, address, Social Security or other tax ID number, password or other challenge information (for confirmation of identity during customer service calls) , e-mail address and/or telephone number (step 306) .
  • the authoring system uses this information to create an author registration package which is transmitted, in step 310, to the license server 104.
  • the license server 104 adds the author and the author's identification information to its registered author database, and in step 312, the authoring system 102 receives and stores and author ID from the license server 104.
  • the communication between the authoring system 102 and the license server 104 in the author registration segment 302 should take place via digital certificate and one-time secure channel, or by secure, signed electronic mail.
  • Fig. 4 is a flow chart illustrating the flow of a product registration segment 304 (Fig. 3) .
  • the author identifies one of possibly many digital products to the authoring system 102 and enters usage parameters.
  • the digital product is identified, for example, by identifying a filename within which the digital product is stored.
  • the usage parameters can include such parameters as the number of copies which will be permitted to be made on the reader system, whether the reader system will be authorized to save the digital product to a hard disk, whether printing will be enabled, whether preview is enabled, and the amount of RSS drift which will be permitted on a reader system before manual reauthorization will be required.
  • the usage parameters may be specified as several options, including a set of free usage parameters (for which no payment is required) and one or more options of purchasable usage parameters (functions requiring a purchased license) .
  • the author can also indicate at this point whether the product should be compressed.
  • the reader system extracts the appropriate preview material with the assistance of the author.
  • the entire digital product is then encrypted in a step 406.
  • the product is first compressed (step 408) by any known algorithm.
  • the product can be compressed using a Lempel- Ziv algorithm or by a Huffman encoding algorithm.
  • the compression step 408 is considered part of the product encryption step 406 because compression is, in effect, a form of encryption; it is very difficult to recover the original uncompressed product unless the algorithm used for compression is known. Compression is optional because for certain kinds of products, the benefits to be gained by compression are outweighed by the performance degradation that compression/decompression often entails.
  • a product encryption key is generated.
  • the key can be generated in any known manner; for example, by a pseudo-random number generator using a seed derived from the time period between two successive user key strokes.
  • the compressed digital product is encrypted using the encryption key developed in step 410.
  • any known key-based symmetric encryption algorithm can be used (as long as the correct complementary algorithm is used for decryption on the reader system 106) .
  • One such well-known encryption algorithm is DES, described in National Institutes of Standards and Technology, "Data Encryption Standard," FIPS Publication No. 46-1 (January 1988) , incorporated by reference herein.
  • Triple DES also known as DES-3)
  • yet another is RC-5.
  • RC-5 is described in R. W. Baldwin and R. Rivest, "The RC5, RC5-CBC,- RC5-CBC-Pad, and RC5-CTS Algorithms", INTERNET-DRAFT (March 1996) , available from ftp: //ftp.nordu.net/internet-drafts/draft-baldwin- rc5-00.txt, visited March 4, 1997, incorporated herein by reference.
  • the result of product encryption step 406 is referred to herein as an encrypted "version" of the digital product.
  • a “version” of a digital product is still considered to be the digital product, because it continues to include all the information of the digital product.
  • a native "version” of a product also is nevertheless “the product”.
  • a digital product can exist in several versions, each of which is a reversibly processed version of the native version.
  • the authoring system 102 After the product encryption step 406, in step 414, the authoring system 102 generates a digest of the encrypted product. Any- suitable digesting algorithm can be used for this purpose including, for example, an error-correcting code (ECC) generator or the well-known SHA-1 algorithm.
  • ECC error-correcting code
  • the SHA-1 digesting algorithm is described National Institute of Standards and Technology (NIST) , FIPS Publication 180: Secure Hash Standard (SHS) (May 1993), as amended by National Institute of Standards and Technology (NIST) Announcement of Weakness in the Secure Hash Standard (May 1994) , both incorporated herein by reference.
  • SHS Secure Hash Standard
  • NIST National Institute of Standards and Technology
  • the authoring system 102 separates one or more "security fragments" in the encrypting product.
  • the security fragments preferably constitute only a small portion of the overall digital products; for example, 1-5% of the byte count of the overall product not to exceed, for example, 3OK bytes.
  • the number and size of the security fragments can be predetermined and constant for all digital products, or it can be dynamically selected or optimized for different digital products. It is desirable to minimize the size of the security fragments while maximizing the effect that their absence would have in helping to prevent unauthorized usage of the digital products. One way of maximizing such effect is to include the beginning of the digital product in one of the security fragments.
  • the authoring system 102 In a step 418, the authoring system 102 generates a digest of the encrypted product less the security fragments. Again any digesting algorithm, such as SHA- 1, can be used in this step.
  • the authoring system 102 creates a product registration package and transmits it to the license server in step 422.
  • the license registration package can form part of a digital certificate in one embodiment.
  • the license server stores the product registration package and returns a product ID to the authoring system 102 (step 424) .
  • the reason that the security fragments should be kept as small as possible is to minimize the storage capacity requirements of the license server.
  • the authoring system 102 creates a product broadcast package for the digital product and makes it available (step 428) via any uncontrolled distribution network, such as the Internet.
  • the product registration package which can also be digitally certified, includes the following items:
  • usage parameters both the free usage parameters and the usage parameters at various purchasable options
  • the product decryption key referred to above is whatever key is required to decrypt the results of the encryption process of step 412.
  • the product decryption key will be the same as the key used for product encryption in step 410; for asymmetric encryption algorithms (such as for public key encryption) , the product decryption key might be different than the product encryption key (such as for RSA encryption) .
  • the product decryption key is referred to herein as being "complementary" to the key used for product encryption in step 410.
  • the product decryption key is the only segment of the product registration package which should be transmitted to the license server securely. Other segments can be transmitted securely if desired or convenient, but this is not necessary. Security of the product decryption key can be ensured, for example, by public/private key encryption of the product decryption key itself, or by connecting to the license server 104 via a secure network.
  • the product broadcast package contains the following items. If more than one sub-product is included in the product broadcast package, then the package contains a set of these items for each sub- product . product ID preview material (unencrypted) free usage parameters purchasable usage parameter options
  • Fig. 5 is a flow chart illustrating the general operation of the reader system 106.
  • the reader software automatically generates an installation ID.
  • the installation ID which is stored on disk in the reader system 106, is a substantially unique identifier of the installation.
  • the installation ID is stored in such a way that if the particular installation of the reader system software was to be copied to a different system, the installation ID would likely be copied as well.
  • the customer/user of the reader system 106 downloads the product broadcast package for a digital product that he or she wishes to examine .
  • the customer performs one or more of the freely authorized functions, including a preview of the material in the digital product (if available) .
  • the preview material might be a portion of that sound.
  • the preview might be a portion of the movie, or a trailer.
  • the digital product is an image, then the preview material might include a thumb nail of the image.
  • the digital product is text, then the preview material might include an abstract .
  • a step 506 the customer chooses to buy a license in accordance with one of the license options made available in the usage parameters.
  • the customer enters his or her identification information, payment and contact information.
  • the identification information can include the customer's name, address and phone, or optionally an arbitrary privacy ID. Such identification is desirable so that the licensing authority can identify the customer if and when the customer calls in for support.
  • the payment information can include a credit card number and authorization and/or digital money information.
  • Various forms of digital money are described in Daniel C. Lynch, "Digital Money” (John Wiley & Sons, 1996) , incorporated herein by reference.
  • the reader system 106 prepares a product purchase package described hereinafter, and in a step 512, the reader system 106 uploads the product purchase package to the license server 104 at the URL identified in the product broadcast package. Note that multiple or bounce URLs may be available for this purpose.
  • the product purchase package may be transmitted by secure channel and/or encrypted in a digital certificate.
  • the reader system receives the product server download package for the desired digital product.
  • the product server download package need not be transmitted by secure channel.
  • the reader system stores the product broadcast package on the reader system (or at least accessibly to the reader system) in conjunction with the product server download package. Either at that time or at a later time, at the customer's request, the reader system plays (or otherwise uses) the product (step 518) . All further use of the product by the customer occurs on the reader system 106 through the reader system software.
  • Fig. 6 is a flow chart of the step 510 (Fig. 5) in which the reader system 106 prepares the product purchase package.
  • the reader system 106 generates a reader system signature (RSS) for the reading system 106. The manner in which the RSS is generated is described hereinafter.
  • the reader system 106 retrieves the previously generated installation ID, and in a step 606, the reader system generates a digest of the encrypted product less the security fragments (as obtained from the product broadcast package) .
  • the digest performed in step 606 should be the same as that performed by the authoring system 102 in step 418 (Fig. 4) .
  • the reader system 106 extracts the product ID from the product broadcast package and in a step 610, the reader system assembles the product purchase package.
  • the product purchase package includes the following items: product ID customer's installation ID customer's identification information (or privacy ID) customer's payment information customer's contact information (including information on where to send the product server download package)
  • RSS of the reader system 106 generated digest of the encrypted product less security fragments
  • the reader system signature can be generated in a number of different ways in different embodiments.
  • the system takes advantage of serial numbers or other identifying data which may be present in the reader computer system, and which carry external assurances of substantial uniqueness. That is, many computers when manufactured are assigned a serial number or other indicator which the manufacturer of the computer, or some other authority, guarantees to be unique. For example, Apple Macintosh computers, when manufactured, are assigned an Ethernet address which is unique to that specific computer.
  • the identifier can be assigned in software, such as in the operating system of the computer.
  • serial number it is not essential that whatever authority assigns the serial number guarantee uniqueness; it is sufficient only in that it be extremely unlikely that two computer systems which can act as reader systems 106 carry the same identifier. This is the case where, for example, the number carries external assurances of substantial uniqueness, such as in the case of Ethernet addresses.
  • the reader system signature does not rely on a component having an identifier that carries external assurances of substantial uniqueness. Instead, a plurality of components (hardware or software) are examined to determine individual component signatures. The individual component signatures are then combined to form the overall reader system signature. In one embodiment, the individual component signatures are all concatenated together in a predetermined sequence to form the overall reader system signature. The individual component signatures may be digested prior to concatenation in order to limit their size to the predefined field size. In another embodiment, optionally after digesting, the individual component signatures are averaged or summed together to form the overall reader system signature.
  • the individual component signatures can be weighted prior to combination, in order to reduce the impact on the reader system signature that would result from changes in components that are more frequently subject to upgrade or replacement.
  • the reader system 106 generates the reader system signature in dependence upon component signatures from the following components, to the extent present in the system. Except as indicated below, most of the component signatures set forth in this list are readable either from the CMOS or from a device manager driver. This is only an illustrative list; other embodiments can refer to other components not on this list.
  • Hard Disk Drive drive ID numbers of cylinders, sectors and heads drive defective sector map (obtained from sector 0) • drive name drive manufacturer
  • a combination of individual component signatures also includes one or more component signatures that carry external assurances of substantial uniqueness, to the extent such a component exists in the machine.
  • Fig. 7 is a flow chart illustrating one technique for generating the reader system signature for reader system 106.
  • a step 704 it is determined whether the reader system 106 includes a component which has an ID that carries external assurances of substantial uniqueness. If so, then the reader system signature is given by the component ID of that component (step 706) . If not, then in step 708, the reader system 106 obtains the data regarding the above-listed components to the extent present in the reader system 106.
  • each of the individual component signatures is digested, and they are combined in step 712 to form the reader system signature.
  • Fig. 8 is a flow chart of the steps which takes place in the license server 104 in response to receipt of a product purchase package. As used herein, steps which take place "in response to" a predecessor event, do so if the predecessor event influenced the performance of such steps. If there is an intervening time period, the performance of the steps can still be considered "responsive" to the predecessor event. If the performance of the steps depends on more than one predecessor event, then the steps are considered performed in response to each of the predecessor events .
  • the license server 104 compares the digest from the product purchase package with the digest of the encrypted product less security fragments as stored on the server 104 with the product registration package for the product ID referred to in the newly received product purchase package. If the two digests do not match, then it is very likely that either the product broadcast package has been tampered with prior to generation of the digest on the reader system 106, or the customer is attempting to obtain the product server download package fraudulently. In this case, the license server 104 returns a package to the reader system 106 indicating that the attempt to purchase a license was unsuccessful (step 804) .
  • step 806 the license server 104 processes the customer's payment information. If there is an error in this process, then again the license server returns an indication to the reader system 106 that the customer's attempt to purchase a license has been unsuccessful (step 804) .
  • the license server 104 stores the customer's RSS obtained from the product purchase package in conjunction with the customer's installation ID, also obtained from the product purchase package. This information need not be stored “on” the license server 104 itself, as long as it is stored in a manner in which it is "accessible” to the license server 104 at a future time.
  • the license server 104 performs certain fraud detection checks. This step is optional in different embodiments, as indicated by the dotted line surrounding the box in Fig. 8. If performed, the fraud detection step 810 can include a check of the installation ID from the product purchase package against the installation IDs that have been stored previously on the license server for other product purchases . If a large number of purchases have been made using product purchase packages specifying the same installation ID, then it is likely that someone has altered an installation of the reader system software and is passing it around to different customers who are using it to purchase licenses. The same is true if the same license has been purchased several times from the same installation ID, or if several significantly varying reader system signatures have been stored in the license server's database in conjunction with the same installation ID. A number of other fraud detection mechanisms can also be employed. In any event, an investigation is warranted if step 810 suggests that an altered version of the reader system software might be being distributed.
  • Fig. 8 continues after step 810 with step 902 in Fig. 9, as indicated by the symbol "9" in both Figs. 8 and 9.
  • step 902 the license server 104 further encrypts the already once-encrypted security fragments (from the product registration package) using the customer's RSS as a key.
  • the key used in step 902 need not be the RSS exactly; it can be some other number which depends on the RSS. For example, it can be a digest reduction of the RSS from the customer's product purchase package. In any event, step 902 results in "double-encrypted" security fragments from the digital product.
  • step 902 the product decryption key from the product registration package is also encrypted using the customer's RSS (or a number derived therefrom) as a key. Note that in a different embodiment, either step 902 or step 904 can be omitted, although such an omission would likely reduce the security of the overall system.
  • the license server 104 assembles the product server download package, and in a step 908, it transmits the product server download package back to the reader system 106. Processing then resumes in the reader system 106 at step 514 (Fig. 5) .
  • the product server download package includes the following items:
  • Fig. 10 is a flow chart of the step 806 (Fig. 8) , in which the license server 104 processes the customer's payment information.
  • Fig. 10 illustrates the process where the customer is paying by credit card; a similar process would take place where the customer is paying with digital money or in some other payment form.
  • step 1002 the license server 104 transmits the charge information to a credit card clearing house.
  • the credit card clearing house returns either an approval code or an error.
  • step 1004 if an error was received, then the license server 104 returns an error to step 806 (Fig. 8) (Step 1006) . If an approval code was received, then in step 1008, the license server 104 credits the author's account with the amount of the approved purchase price less a commission. In step 1010, the license server 104 returns successfully to the step 806 (Fig. 8) .
  • Fig. 11 is a flow chart of the step 518 in which the reader system plays the digital product. (The terms “play”, “view” and “use” are used interchangeably herein as regards a digital product.)
  • the reader system 106 regenerates the RSS for the reader system. This step takes place using the same algorithm that was used in step 602 (Fig. 6) when the RSS was generated for preparation of the product purchase package.
  • the reader system 106 decrypts the double-encrypted security fragments using the new
  • the key used in step 1104 need not be the RSS identically; another number which depends on the RSS can be used instead. However, whatever algorithm is used to derive the key from the RSS in step 1104 should be the same as that used in step 904.
  • step 1106 the reader system 106 merges the encrypted security fragments into the encrypted product less the encrypted security fragments, thereby assembling a complete, but still encrypted, version of the digital product.
  • step 1108 the full encrypted digital product is digested using the same algorithm as was used originally by the authoring system 102 in step 414 (Fig. 4) .
  • step 1110 the reader system 106 determines whether the newly calculated digest matches the digest which was provided by the license server 104 in the product server download package. If so, then usage of the product on the reader system 106 is authorized. Flow continues with the flowchart of Fig. 12 (as indicated by the number "12" in the small circles in both Figs. 11 and 12) . If the two digests do not match in step 1110, then usage of the product on the reader system 106 is not immediately authorized. Flow continues with the flowchart of Fig. 13, as indicated by the number "13" in the small circles in both Figs. 11 and 13.
  • the current reader system signature has been confirmed to be the same as that which was used when the reader system 106 first uploaded its product purchase package in step 512 (Fig. 5) . It is also the same RSS that was used to encrypt the product decryption key as downloaded from the license server 104 to the reader system 106 in steps 908 and 514. Accordingly, in step 1202, the reader system 106 decrypts the product decryption key from the product server download package using the current RSS.
  • the actual key used to decrypt the product decryption key in step 1202 need not be identical to the current RSS, as long as it is dependent thereon, and as long as the algorithm to generate the key is the same as that which was used to generate the key with which the product decryption key was originally encrypted in step 904 (Fig. 9) .
  • step 1204 the reader system 106 decrypts the merged encrypted product using the product decryption key that was decrypted in step 1202.
  • step 1206 if the decrypted product was compressed, it is now decompressed using an algorithm complementary to that used by the authoring system in step 408 (Fig. 4) .
  • the resulting decompressed digital product is transmitted in step 1210 to an appropriate viewer. It will be appreciated that once the digital product is transmitted in step 1210 to a viewer, which may be any standard viewer appropriate to the content of the digital product, the output stream is no longer secured by the mechanisms built into the overall system as described herein. Accordingly, a step 1208 is optionally inserted between steps 1206 and 1210 of Fig. 12.
  • a fingerprint and/or a watermark is (are) inserted into the digital output stream prior to or while it is being provided to the viewer.
  • Watermarking is a technique using a visible identifier that will let the user know that he or she has been associated with this particular instance of the content . It acts primarily as a deterrent.
  • Fingerprinting embeds and hides codes into the output stream itself that are retrievable only by the author or by the licensing authority. Such codes uniquely associate the particular copy of the digital product with the individual who purchased it . Fingerprinting is used primarily for criminal prosecution and court proceedings.
  • the fingerprint is inserted in a manner which does not affect the resulting viewing experience.
  • the output stream includes CD audio
  • the fingerprint can be spread over a large number of the audio samples, either substituting for the low-order bit or modifying the low-order bit in an exclusive OR manner in each sample.
  • the data stream can be transformed into the frequency domain, modified in the frequency domain to insert the fingerprint codes, and then transformed back to the time domain.
  • steganographic techniques can be used to insert the fingerprint into the image. Steganography is described in Neil F.
  • the fingerprint to be inserted in the digital output stream should preferably be either the installation ID of the reader system 106, or the reader system signature that was generated at the time of product usage (step 1102) .
  • the output stream can also be randomly seeded to further hamper differential cryptanalysis. In this manner, if pirated copies of a digital product do begin to appear, the author of the product or the licensing authority should be able to determine the original source of the pirated copies by examining the fingerprint.
  • the reader system 106 determines that the newly generated reader system signature is not the same as that which was generated in step 602 (Fig. 6) at the time of product purchase. In an aspect of the invention, this determination does not immediately preclude usage of the product by the customer on the reader system 106. Instead, proceeding in Fig. 13, in a step 1302, the reader system 106 prepares a re-validation package.
  • the re-validation package can be the same as set forth above with respect to the product purchase package, except that the customer's payment information can be omitted.
  • the reader system 106 uploads the re-validation package to the license server 104 at the URL identified in the product broadcast package.
  • Fig. 14 The license server's operations in response to receipt of a re-validation package are set forth in Fig. 14.
  • a step 1402 it is first determined whether the RSS in the re-validation package was based on a component in the reader system 106 having external assurances of substantial uniqueness. If so, then re-validation is considered unsuccessful (step 1404) and this result is returned to the reader system 106. If the RSS in the re-validation package was not based on a component having external assurances of substantial uniqueness, then in step 1406, the license server 104 compares the new RSS from the re- validation package to the RSS previously stored accessibly to the server for the same reader system 106 (as identified by the installation ID specified in the re-validation package) .
  • the threshold can be specified as a percentage of one or the other RSS, or as a number of component signatures which differ between the two RSS's, or by a number of other different specifications . If the difference between the two RSS's does not exceed the designated threshold (step 1408) , then the re-validation is considered successful.
  • the license server 104 prepares a new product server download package using the same algorithms as set forth above with respect to Fig.
  • the license server 104 also stores the new RSS in conjunction with the installation ID specified in the re-validation package. A history of such ostensible reader system upgrades is maintained on the server 104.
  • Fig. 15 is a detail of step 1408 (Fig. 14) in which the license server 104 determines whether the difference between the two RSS ' s exceeds the threshold specified by the author in the usage parameters for the digital product.
  • the flowchart set forth in Fig. 15 represents one embodiment, in which the threshold has been specified as a percentage.
  • the server 104 calculates the weighted sum of the RSS received in the product re-validation package.
  • the server 104 makes the same calculation with respect to the RSS previously stored on the server 104.
  • the license server 106 determines whether the difference between the two calculated values exceeds the threshold specified by the author in the usage parameters. If so, then in step 1508, the routine returns to Fig. 14 affirmatively.
  • Fig. 16 is a detail of step 1408 (Fig. 14) as performed in a second embodiment, in which the upgrade drift percentage is specified as a maximum number of components whose individual component signatures can differ between the two RSS's.
  • the server 104 counts the number of components of the RSS in the re-validation package, which differ from the corresponding components of the RSS previously stored on the server 106 from the original product purchase package. If the count exceeds the predetermined drift threshold, then the routine returns affirmatively (step 1606) . If not, then it returns negatively (step 1608) . Returning to the reader system flow as illustrated in Fig.
  • step 1306 the reader system 106 receives the re-validation result. If the re-validation was unsuccessful (step 1308) , then the reader system displays an error message to the user and requests the customer to call customer service of the licensing authority (step 1310) . In this situation, automatic re-validation has failed, and manual re-validation as in step 1310 is necessary. During the call, a customer service representative can determine whether the customer's license should be extended to cover the reader system 106 as it now stands. If automatic re- validation was successful (step 1308) , then the reader system returns to step 514 (as indicated by the numeral "5" in the small circle in both Figs. 13 and 5) to store and process the new product server download package in the same manner as it processed the original product server download package received upon purchase.

Abstract

A digital product is freely distributed through uncontrolled channels in encrypted form (108). Security fragment(s) of the encrypted product are withheld (102), and provided only upon communication with license server (104). The customer uses reader software (106) to purchase a license. Such software (106) examines components then present on the reader system to develop a reader system signature, which the license server (106) uses to encrypt the product decryption key and the security fragments before sending them to the reader system. When the customer wishes to use the product, a new reader system signature is generated and used to decrypt the product fragments.

Description

DIGITAL PRODUCT RIGHTS MANAGEMENT TECHNIQUE
BACKGROUND
1. Field of the Invention The invention relates to controlled distribution of digital products in a manner that tends to ensure that authors receive proper royalty payments for their work.
2. Description of Related Art
Digitally encoded products, such as software, music, images and video segments are extremely important in today's economy. However, the ease and economy with which perfect copies can be made of digitally encoded products has promoted the widespread unauthorized copying and distribution of such products through such channels as user-to-user copying and sharing, digital data networks such as the Internet, and CD-ROM publishing. These distribution channels have made it difficult for the creators and copyright holders of such products to regulate the use of their products or to receive payment and registration information from their users. Consequently, digital product producers often forfeit substantial revenues and valuable information about their customer base and potential markets, while businesses and universities find themselves subject to legal prosecution and intimidation for copyright infringement.
But the problem of unauthorized distribution of digital products is not limited to the simple loss of revenues which rightfully belong to the original developer of the product, although that problem can be substantial by itself. There is also the additional problem that developers will be less willing to spend substantial time and money in developing new digital products if they cannot depend on a market which pays fair value for their products.
In the past, when copying and distribution of products was more expensive, time consuming and imperfect, the creators of digital products could depend in part on economic factors as well as legal protections to minimize unauthorized copying and distribution. Neither is effective today with digital products, easy and inexpensive channels of distribution, and huge numbers of people participating in the illicit trade.
One technique that has been developed to deter unauthorized copying of digital products involves copy protection mechanisms built into hardware or software. However, copy protection mechanisms sometimes can inconvenience users who have a legitimate need for making copies. Copy protection mechanisms also can prevent digital product developers from taking advantage of the new distribution channels, such as the Internet.
Another method for controlling the distribution of digital products is described in Commerce Direct International (CDI) , "Electronic Commerce", World Wide Web URL http://www.cdi.net/electron/commerce.htm
(visited March 23, 1996) and CDI, "CDI In Action", World
Wide Web URL http://www.cdi.net/cdiactio/cdinactn.htm
(visited March 23, 1996) , both incorporated herein by reference. The mechanisms described in these documents call for a customer to review an on-line catalog of products and choose one to buy. The customer's software then sends encrypted credit card information to the product distributor, and the product distributor transmits the product to the customer in a strongly encrypted form. The customer's software then uses a "secret key" to decrypt the product and use it . Secure direct modem connections may be used instead of Internet connections at various parts of the process in order to further ensure that no one else can use the encrypted product .
The CDI technique suffers from at least two problems. First, while the encryption of a data product during transmission may be very strong, it is still theoretically possible for an unauthorized third party to decipher it. Second, even if the product remains secure during transmission, once it is decrypted by the customer, CDI ' s strong encryption techniques no longer protect the product against further unauthorized distribution. The above- cited documents indicate that content as well as executables can be "locked" to a specific registered machine while still allowing for unrestricted distribution of the software in a crippled or time-dated mode, but the documents do not explain how this is to be accomplished.
In Schull U.S. Patent No. 5,509,070, incorporated by reference herein, Schull describes a technique for distributing digital products (specifically software) by selling a password to the user. The user uses the password to unlock advanced features of the product, but the password is usable only on one machine. Thus, the technique allows users to freely distribute software to other machines and other potential users, but does not allow other users to take advantage of advanced features of the software without obtaining a new password which is specific to the new machine. In the Schull method, the user generates a "passwordable- ID" either from the user's voice, by reading the serial number of the machine's CPU, or by any of a number of other suggested methods. The passwordable-ID is transmitted to a licensing system which uses the passwordable-ID to generate an encrypting seed for the software advanced features. The encrypted encrypting seed is then transmitted back to the user as a key for unlocking the advanced features of the software.
One drawback, of the Schull method is that the password ultimately provided by the licensing system to the user is stored on the user's machine. Without certain extraordinary copy protection mechanisms applied to the password, the password could simply be copied to a new machine, thereby allowing a different user to use the advanced features of a pirated version of the product without paying a fair licensing fee. The extraordinary methods suggested by Schull to protect the password as stored on the user's machine, reimposes many of the same problems that formed the basis for finding non-objectionable copy protection mechanisms in the first place.
Several other technologies for preventing unauthorized distribution of digital products are set forth in the following World Wide Web pages: Northeast Consulting Resources, Inc., "Digital Rights Management Technologies", Web page URL http://www.ncri.com/articles /rightsjmanagement/ (October 1995: visited November 19, 1996) ; Intertrust Technologies Corporation, Web pages http: //www. intertrust . com/architecture/overview.html , http : //www. intertrust . com/architecture/flow. html , http : //www. intertrust . com/architecture/stc .html , http: //www. intertrust . com/products/applications .html, ht tp : / /www . intertrust . co /product s /sdk . html , http : //www. intertrust. com/about/whoweare . html , http: //www. intertrust . com/about/vision. html (all visited November 19, 1996, and all incorporated herein by reference) . However, all of the technologies described in these references suffer from one or all of the problems mentioned above, as well as others. Accordingly, there is a deeply felt need for a new technology which will control the distribution of digital products via the Internet and other uncontrolled distribution channels such that a fair return to the originator of the product can be ensured without unduly hampering wide and free distribution of sufficient information about the digital product to enable customers to decide whether to purchase a license.
SUMMARY OF THE INVENTION
According to the invention, roughly described, a digital product is freely distributed through uncontrolled channels in encrypted form. Unencrypted preview material may also be provided in order to help the customer decide whether to purchase a license. In an aspect of the invention, one or more fragments of the encrypted product are withheld from uncontrolled distribution, and provided only upon communication with a license server. Unlike prior art mechanisms, which rely on practical limitations of computing power in order to prevent unauthorized product decryption, the technique of the present invention renders it literally impossible for an eavesdropper to recover the complete decrypted product without contacting the licensor. The product is not merely encrypted; to the extent of the security fragments, it is not even there.
In a second aspect of the invention, again roughly described, the customer purchases a license through the use of reader software which examines the components then present on the reader system to develop a reader system signature (RSS) . The reader system signature is transmitted to a license server which uses it either to encrypt the product decryption key, or to further encrypt the security fragments, or both, before sending them to the reader system. The reader system signature is not stored on the reader system. Rather, at the time that the customer would like to use the digital product (view an image or movie, listen to a sound or execute software, for example) , a new reader system signature is generated in the same manner as the original reader system signature. The new reader system signature is used to decrypt the product decryption key and/or the double-encrypted security fragments, only at the time of use. If the user is attempting to use the digital product on a different machine, such as would be the case in the event of unauthorized distribution, then the new reader system signature will not work properly and the unauthorized user will not be able to use the digital product.
The above second aspect of the invention could be problematical in the event that the user upgrades or modifies the reader system. A mechanism that regenerates the reader system signature each time a digital product is to be used could prevent a legitimate user from using the product after such an upgrade. Accordingly, in another aspect of the invention, the machine authorization of the reader system allows a certain amount of "upgrade drift" before it is deemed advisable to check for unauthorized use.
In an embodiment, the reader system signature is determined by examining various components (hardware and/or software) of the reader system, to determine individual signatures for each component. The individual component signatures are then combined to form the overall reader system signature, for example by a weighted sum of the individual component signatures or by concatenating the individual component signatures together. If the reader system signature is determined on the basis of a weighted sum (or equivalently, a weighted average) of the individual component signatures, then the amount of permissible upgrade drift can be expressed as a percentage; that is, if the reader system signature generated upon usage of the digital product differs from the reader system signature generated at the time the product is purchased by no more than a predetermined percentage or fraction, then the usage is considered authorized. If the reader system signature is generated as a concatenation of the individual component signatures, then the number of components which differ at usage time relative to purchase time can be specified not to exceed a specific count. In a situation where the reader system signature generated at the time of purchase is not stored on the reader system, it can instead be uploaded to a license server. If the reader system signature generated at usage time is found by the reader system not to properly decrypt either the product decryption key or the product itself, then in an embodiment, the reader system can automatically contact the license server for reauthorization. The reader system uploads the newly generated reader system signature, and the license server performs the upgrade drift test in comparison with the reader system signature that was stored on the license server at the time of purchase. If the license server determines that the newly generated reader system signature is within the permissible upgrade drift parameter, then it transmits a new product decryption key and/or new product security fragments, back to the reader system, encrypted according to the new reader system signature. The reader system is then able to decrypt the digital product and play, view or otherwise use it in the desired manner. (In order to assist in evaluating the permissibility of an upgrade drift, one embodiment of the reader system also uploads the raw component signatures of the computer system. This allows customer support to determine which components have changed.)
In an embodiment of the invention, the reader system signature is generated in dependence upon a component whose individual component signature carries with it external assurances of substantial uniqueness among all computer systems which could reasonably pose as authorized reader systems. Such a component signature can be used by itself, or in conjunction with other component signatures, in order to generate the overall reader system signature. If used by itself, then upgrade drift is usually not permissible without manual re-validation.
BRIEF DESCRIPTION OF THE DRAWINGS The invention will be described with respect to particular embodiments thereof, and reference will be made to the drawings, in which:
Fig. 1 is an overall symbolic diagram of a system according to the invention. Fig. 2 is a block diagram illustrating the structure of a typical reader system of Fig. 1.
Fig. 3 illustrates the overall system flow for the authoring system of Fig. 1. Fig. 4 is a flow chart illustrating the flow of a product registration segment of Fig. 3.
Fig. 5 is a flow chart illustrating the general operation of the reader system of Fig. 1. Fig. 6 is a flow chart of the product purchase preparation step of Fig. 5.
Fig. 7 is a flow chart illustrating one technique for generating the reader system signature.
Figs. 8 and 9 together constitute a flow chart of steps which takes place in the license server 104 in response to receipt of a product purchase package.
Fig. 10 is a flow chart of the step in Fig. 8 in which the license server processes the customer's payment information. Figs. 11-13 together constitute a flow chart of the step in Fig. 5 in which the reader system plays the digital product.
Fig. 14 is a flow chart illustrating the license server's operations in response to receipt of a re- validation package.
Figs. 15 and 16 are alternative details of the step in Fig. 14 in which the license server determines whether the difference between the two RSS's exceeds a threshold.
DETAILED DESCRIPTION Fig. 1 is an overall symbolic diagram of a system according to the invention. The system has three primary components: an authoring system 102, a license server 104 and a reader system 106. In addition, the overall system is most useful when used with an uncontrolled distribution channel such as an insecure public distribution network 108 (e.g., the Internet). In general operation, the author or proprietor of one or more digital products first uses the authoring system 102 to register with the license server 104 as an author. Author registration information is transmitted from the authoring system 102 to the license server 104, and an author ID is returned to the authoring system.
When the author has a digital product to market, the product is provided to the authoring system 102, together with certain usage parameters . The usage parameters include a set of free usage parameters and one or more sets of paid usage parameters . The authoring system compresses and encrypts the digital product (compression is optional) , extracts one or more security fragments from the encrypted product and then packages the product for broadcast via the uncontrolled distribution network 108 and for upload to the license server 104. The authoring system then transmits the product registration package up to the license server 104 and receives a product ID in return. The authoring system also makes the product broadcast package available on the uncontrolled distribution network 108. Note that as used herein, a "product" can include one or more sub-products, all of which are considered herein to themselves be "products". When a customer is interested in a particular digital product, he or she can download the product broadcast package from the uncontrolled distribution network 108. The customer utilizes the reading system 106 to perform those functions of the digital product which are freely authorized according to the free usage parameters that were previously specified by the author. Such functions can include, among other things, a preview of the digital product, and an indication of one or more licensing options which the customer can purchase. If the customer chooses to purchase one of the license options, the reader system 106 examines certain components of the reader system and, in dependence thereon, generates a reader system signature (RSS) . The reader system assembles a product purchase package including the RSS and payment information, and uploads it to the license server 104. The license server 104 processes the payment information and, if successful, transmits a product server download package back to the reader system. The reader system uses the product server download package to unlock the functions of the digital product which are authorized under the license option that the customer has purchased, and allows the user to use the product accordingly. In addition, the reader system 106 performs fingerprint and/or watermark insertion as described hereinafter.
The license server 104 performs a number of functions, including maintaining a database of registered authors and storing all of the product registration packages. The license server 104 also stores reader system signatures from customers, performs customer payment validation, as well as certain fraud detection functions as described below. The license server 104 also performs the functions of royalty payment clearing. Specifically, license royalties received from (or on behalf of) customers are properly accounted for and transferred to the proper authors after deduction of a commission. In Fig. 1, the authoring system 102, the license server 104 and the reader system 106 are each illustrated as a respective individual block. Depending on the embodiment, each block might contain no more than a single computer, or in different embodiments, different blocks can contain more than one computer. In one embodiment, one or more of the blocks 102, 104 and 106, for example the license server 104, contains a number of computers spread out over a great geographical area and interconnected by a network. The illustration of the authoring system 102, the license server 104, and the reader system 106 as single blocks is not intended to indicate that each must constitute only a single computer system or that each must be located at a respective single location.
Nor is there any requirement that computers used to form the authoring system 102, the license server 104, and the reader system 106 have any particular structure. Fig. 2 is a symbolic block diagram illustrating the structure of a typical computer system which may be used as an authoring system, a reader system or a license server. It comprises a CPU 202 and cache memory 204, both connected to a CPU bus 206. Interface circuitry 208 is also connected to the CPU bus 206. The interface circuitry 208 is further connected to a main memory 210, as well as to two I/O buses: PCI-bus 212 and ISA-bus 214. Connected to the PCI-bus 212 are sound and game controllers 216, a network adapter 232 and a display adapter 218, the last of which is further connected to a monitor 220. Connected to the ISA-bus 214 is a hard disk drive controller 222, a CD-ROM drive controller 224, a floppy disk drive controller 226, various I/O ports 228, and a boot PROM 230. Most of the peripheral components illustrated in Fig. 2 include on-board configuration data which can be read by the CPU 202. In addition, the boot PROM 230 includes a portion which is writeable by the CPU 202 to store configuration data. In general , the software to operate the authoring system 102, the license server 104 or the reader system 106 is stored on the disk drive controlled by the disk drive controller 222, and brought into main memory 210 as needed for execution. The computer system of Fig. 2 communicates with the other systems of Fig. 1, and with the distribution network 108, if appropriate, via the network adapter 232.
Fig. 3 illustrates the overall system flow for the authoring system 102. The authoring system flow is generally divided into two segments: an author registration segment 302 followed by one or more product registration segments 304. In the author registration segment 302, the author (or other proprietor) of one or more digital products enters his or her identification information. Such information can include, for example, the author's name, address, Social Security or other tax ID number, password or other challenge information (for confirmation of identity during customer service calls) , e-mail address and/or telephone number (step 306) . In a step 308, the authoring system uses this information to create an author registration package which is transmitted, in step 310, to the license server 104. The license server 104 adds the author and the author's identification information to its registered author database, and in step 312, the authoring system 102 receives and stores and author ID from the license server 104. The communication between the authoring system 102 and the license server 104 in the author registration segment 302 should take place via digital certificate and one-time secure channel, or by secure, signed electronic mail.
Fig. 4 is a flow chart illustrating the flow of a product registration segment 304 (Fig. 3) . In a step 402, the author identifies one of possibly many digital products to the authoring system 102 and enters usage parameters. The digital product is identified, for example, by identifying a filename within which the digital product is stored. The usage parameters can include such parameters as the number of copies which will be permitted to be made on the reader system, whether the reader system will be authorized to save the digital product to a hard disk, whether printing will be enabled, whether preview is enabled, and the amount of RSS drift which will be permitted on a reader system before manual reauthorization will be required. The usage parameters may be specified as several options, including a set of free usage parameters (for which no payment is required) and one or more options of purchasable usage parameters (functions requiring a purchased license) . In an embodiment, the author can also indicate at this point whether the product should be compressed. In a step 404, if preview is to be enabled, the reader system extracts the appropriate preview material with the assistance of the author. The entire digital product is then encrypted in a step 406. In the product encryption step 406, the product is first compressed (step 408) by any known algorithm. For example, the product can be compressed using a Lempel- Ziv algorithm or by a Huffman encoding algorithm. The compression step 408 is considered part of the product encryption step 406 because compression is, in effect, a form of encryption; it is very difficult to recover the original uncompressed product unless the algorithm used for compression is known. Compression is optional because for certain kinds of products, the benefits to be gained by compression are outweighed by the performance degradation that compression/decompression often entails.
In a step 410, a product encryption key is generated. The key can be generated in any known manner; for example, by a pseudo-random number generator using a seed derived from the time period between two successive user key strokes. In step 412, the compressed digital product is encrypted using the encryption key developed in step 410. Again, any known key-based symmetric encryption algorithm can be used (as long as the correct complementary algorithm is used for decryption on the reader system 106) . One such well-known encryption algorithm is DES, described in National Institutes of Standards and Technology, "Data Encryption Standard," FIPS Publication No. 46-1 (January 1988) , incorporated by reference herein. Another is Triple DES (also known as DES-3) , and yet another is RC-5. RC-5 is described in R. W. Baldwin and R. Rivest, "The RC5, RC5-CBC,- RC5-CBC-Pad, and RC5-CTS Algorithms", INTERNET-DRAFT (March 1996) , available from ftp: //ftp.nordu.net/internet-drafts/draft-baldwin- rc5-00.txt, visited March 4, 1997, incorporated herein by reference.
The result of product encryption step 406 is referred to herein as an encrypted "version" of the digital product. As used herein, a "version" of a digital product is still considered to be the digital product, because it continues to include all the information of the digital product. A native "version" of a product also is nevertheless "the product". A digital product can exist in several versions, each of which is a reversibly processed version of the native version. After the product encryption step 406, in step 414, the authoring system 102 generates a digest of the encrypted product. Any- suitable digesting algorithm can be used for this purpose including, for example, an error-correcting code (ECC) generator or the well-known SHA-1 algorithm. The SHA-1 digesting algorithm is described National Institute of Standards and Technology (NIST) , FIPS Publication 180: Secure Hash Standard (SHS) (May 1993), as amended by National Institute of Standards and Technology (NIST) Announcement of Weakness in the Secure Hash Standard (May 1994) , both incorporated herein by reference.
In a step 416, the authoring system 102 separates one or more "security fragments" in the encrypting product. The security fragments preferably constitute only a small portion of the overall digital products; for example, 1-5% of the byte count of the overall product not to exceed, for example, 3OK bytes. The number and size of the security fragments can be predetermined and constant for all digital products, or it can be dynamically selected or optimized for different digital products. It is desirable to minimize the size of the security fragments while maximizing the effect that their absence would have in helping to prevent unauthorized usage of the digital products. One way of maximizing such effect is to include the beginning of the digital product in one of the security fragments. For many encryption algorithms, as well as data compression algorithms, it is much more difficult to decrypt (decompress) the portions that remain, if the beginning portion is missing. Also, if the digital product includes a header at the beginning, absence of the beginning portion of the product often makes it difficult to use any of the remaining portion of the product even if such remaining portion can be decrypted.
In a step 418, the authoring system 102 generates a digest of the encrypted product less the security fragments. Again any digesting algorithm, such as SHA- 1, can be used in this step. In step 420, the authoring system 102 creates a product registration package and transmits it to the license server in step 422. The license registration package can form part of a digital certificate in one embodiment. The license server stores the product registration package and returns a product ID to the authoring system 102 (step 424) . The reason that the security fragments should be kept as small as possible is to minimize the storage capacity requirements of the license server. In a step 426, the authoring system 102 creates a product broadcast package for the digital product and makes it available (step 428) via any uncontrolled distribution network, such as the Internet. The product registration package, which can also be digitally certified, includes the following items:
• author ID
• usage parameters (both the free usage parameters and the usage parameters at various purchasable options)
• the encrypted security fragments
• a product decryption key (complementary to the product encryption key of step 410)
• the digest of the encrypted product less security fragments
• digest of the full encrypted product
The product decryption key referred to above is whatever key is required to decrypt the results of the encryption process of step 412. For symmetric encryption algorithms, such as for DES or RC-5, the product decryption key will be the same as the key used for product encryption in step 410; for asymmetric encryption algorithms (such as for public key encryption) , the product decryption key might be different than the product encryption key (such as for RSA encryption) . In both cases, the product decryption key is referred to herein as being "complementary" to the key used for product encryption in step 410.
The product decryption key is the only segment of the product registration package which should be transmitted to the license server securely. Other segments can be transmitted securely if desired or convenient, but this is not necessary. Security of the product decryption key can be ensured, for example, by public/private key encryption of the product decryption key itself, or by connecting to the license server 104 via a secure network.
The product broadcast package contains the following items. If more than one sub-product is included in the product broadcast package, then the package contains a set of these items for each sub- product . product ID preview material (unencrypted) free usage parameters purchasable usage parameter options
Universal Resource Locator (URL) of license server 104 copyright notice contact information for assistance or questions encrypted product less security fragments As can be seen, whereas the great bulk of the product is transmitted via the uncontrolled distribution network 108, not only is it encrypted, but it is also incomplete so that even if it could be decrypted, for example by a powerful computer system, important fragments of the product simply are not there .
Fig. 5 is a flow chart illustrating the general operation of the reader system 106. When a user installs the reader software on the reader system 106, the reader software automatically generates an installation ID. The installation ID, which is stored on disk in the reader system 106, is a substantially unique identifier of the installation. The installation ID is stored in such a way that if the particular installation of the reader system software was to be copied to a different system, the installation ID would likely be copied as well.
In a step 502, the customer/user of the reader system 106 downloads the product broadcast package for a digital product that he or she wishes to examine . In a step 504, the customer performs one or more of the freely authorized functions, including a preview of the material in the digital product (if available) . For example, if the digital product is a sound, the preview material might be a portion of that sound. If a digital product includes a movie, then the preview might be a portion of the movie, or a trailer. If the digital product is an image, then the preview material might include a thumb nail of the image. If the digital product is text, then the preview material might include an abstract .
In a step 506, the customer chooses to buy a license in accordance with one of the license options made available in the usage parameters. In step 508, the customer enters his or her identification information, payment and contact information. The identification information can include the customer's name, address and phone, or optionally an arbitrary privacy ID. Such identification is desirable so that the licensing authority can identify the customer if and when the customer calls in for support. The payment information can include a credit card number and authorization and/or digital money information. Various forms of digital money are described in Daniel C. Lynch, "Digital Money" (John Wiley & Sons, 1996) , incorporated herein by reference.
In a step 510, the reader system 106 prepares a product purchase package described hereinafter, and in a step 512, the reader system 106 uploads the product purchase package to the license server 104 at the URL identified in the product broadcast package. Note that multiple or bounce URLs may be available for this purpose. The product purchase package may be transmitted by secure channel and/or encrypted in a digital certificate. Assuming the product purchase package is in order, then in a step 514, the reader system receives the product server download package for the desired digital product. The product server download package need not be transmitted by secure channel. In a step 516, the reader system stores the product broadcast package on the reader system (or at least accessibly to the reader system) in conjunction with the product server download package. Either at that time or at a later time, at the customer's request, the reader system plays (or otherwise uses) the product (step 518) . All further use of the product by the customer occurs on the reader system 106 through the reader system software.
Fig. 6 is a flow chart of the step 510 (Fig. 5) in which the reader system 106 prepares the product purchase package. In a step 602, the reader system 106 generates a reader system signature (RSS) for the reading system 106. The manner in which the RSS is generated is described hereinafter. In a step 604, the reader system 106 retrieves the previously generated installation ID, and in a step 606, the reader system generates a digest of the encrypted product less the security fragments (as obtained from the product broadcast package) . The digest performed in step 606 should be the same as that performed by the authoring system 102 in step 418 (Fig. 4) .
In a step 608, the reader system 106 extracts the product ID from the product broadcast package and in a step 610, the reader system assembles the product purchase package. The product purchase package includes the following items: product ID customer's installation ID customer's identification information (or privacy ID) customer's payment information customer's contact information (including information on where to send the product server download package)
RSS of the reader system 106 generated digest of the encrypted product less security fragments The reader system signature can be generated in a number of different ways in different embodiments. In one embodiment, the system takes advantage of serial numbers or other identifying data which may be present in the reader computer system, and which carry external assurances of substantial uniqueness. That is, many computers when manufactured are assigned a serial number or other indicator which the manufacturer of the computer, or some other authority, guarantees to be unique. For example, Apple Macintosh computers, when manufactured, are assigned an Ethernet address which is unique to that specific computer. Alternatively, the identifier can be assigned in software, such as in the operating system of the computer. It is not essential that whatever authority assigns the serial number guarantee uniqueness; it is sufficient only in that it be extremely unlikely that two computer systems which can act as reader systems 106 carry the same identifier. This is the case where, for example, the number carries external assurances of substantial uniqueness, such as in the case of Ethernet addresses.
In another embodiment, the reader system signature does not rely on a component having an identifier that carries external assurances of substantial uniqueness. Instead, a plurality of components (hardware or software) are examined to determine individual component signatures. The individual component signatures are then combined to form the overall reader system signature. In one embodiment, the individual component signatures are all concatenated together in a predetermined sequence to form the overall reader system signature. The individual component signatures may be digested prior to concatenation in order to limit their size to the predefined field size. In another embodiment, optionally after digesting, the individual component signatures are averaged or summed together to form the overall reader system signature. The individual component signatures can be weighted prior to combination, in order to reduce the impact on the reader system signature that would result from changes in components that are more frequently subject to upgrade or replacement. In one embodiment, the reader system 106 generates the reader system signature in dependence upon component signatures from the following components, to the extent present in the system. Except as indicated below, most of the component signatures set forth in this list are readable either from the CMOS or from a device manager driver. This is only an illustrative list; other embodiments can refer to other components not on this list.
Hard Disk Drive drive ID numbers of cylinders, sectors and heads drive defective sector map (obtained from sector 0) • drive name drive manufacturer
Floppy Disk Controller
• I/O addresses and settings • interrupt assignments
• manufacturer name Monitor
• monitor name
• monitor type
Display Adaptor
• device name on-board memory
Mother Board
CPU type
CPU speed . total memory present total cache present cache timings (measured empirically)
Ports
I/O addresses and settings interrupt assignments
Sound. Video and Game Controllers
• device name
• driver name
• driver version
System Devices
• CMOS profile
In yet another embodiment, a combination of individual component signatures also includes one or more component signatures that carry external assurances of substantial uniqueness, to the extent such a component exists in the machine.
Fig. 7 is a flow chart illustrating one technique for generating the reader system signature for reader system 106. In a step 704, it is determined whether the reader system 106 includes a component which has an ID that carries external assurances of substantial uniqueness. If so, then the reader system signature is given by the component ID of that component (step 706) . If not, then in step 708, the reader system 106 obtains the data regarding the above-listed components to the extent present in the reader system 106. In a step 710, each of the individual component signatures is digested, and they are combined in step 712 to form the reader system signature.
Returning to Fig. 5, as previously mentioned, after the reader system prepares and uploads a product purchase package to the license server (step 512) , the license server 104, if everything is in order, returns a product server download package to the reader system 106 (step 514) . Fig. 8 is a flow chart of the steps which takes place in the license server 104 in response to receipt of a product purchase package. As used herein, steps which take place "in response to" a predecessor event, do so if the predecessor event influenced the performance of such steps. If there is an intervening time period, the performance of the steps can still be considered "responsive" to the predecessor event. If the performance of the steps depends on more than one predecessor event, then the steps are considered performed in response to each of the predecessor events .
In a step 802, the license server 104 compares the digest from the product purchase package with the digest of the encrypted product less security fragments as stored on the server 104 with the product registration package for the product ID referred to in the newly received product purchase package. If the two digests do not match, then it is very likely that either the product broadcast package has been tampered with prior to generation of the digest on the reader system 106, or the customer is attempting to obtain the product server download package fraudulently. In this case, the license server 104 returns a package to the reader system 106 indicating that the attempt to purchase a license was unsuccessful (step 804) .
If the two digests do match, then in step 806, the license server 104 processes the customer's payment information. If there is an error in this process, then again the license server returns an indication to the reader system 106 that the customer's attempt to purchase a license has been unsuccessful (step 804) .
Assuming the customer's payment information was processed successfully, in step 808, the license server 104 stores the customer's RSS obtained from the product purchase package in conjunction with the customer's installation ID, also obtained from the product purchase package. This information need not be stored "on" the license server 104 itself, as long as it is stored in a manner in which it is "accessible" to the license server 104 at a future time.
In a step 810, the license server 104 performs certain fraud detection checks. This step is optional in different embodiments, as indicated by the dotted line surrounding the box in Fig. 8. If performed, the fraud detection step 810 can include a check of the installation ID from the product purchase package against the installation IDs that have been stored previously on the license server for other product purchases . If a large number of purchases have been made using product purchase packages specifying the same installation ID, then it is likely that someone has altered an installation of the reader system software and is passing it around to different customers who are using it to purchase licenses. The same is true if the same license has been purchased several times from the same installation ID, or if several significantly varying reader system signatures have been stored in the license server's database in conjunction with the same installation ID. A number of other fraud detection mechanisms can also be employed. In any event, an investigation is warranted if step 810 suggests that an altered version of the reader system software might be being distributed.
The flow chart of Fig. 8 continues after step 810 with step 902 in Fig. 9, as indicated by the symbol "9" in both Figs. 8 and 9.
In Fig. 9, in step 902, the license server 104 further encrypts the already once-encrypted security fragments (from the product registration package) using the customer's RSS as a key. The key used in step 902 need not be the RSS exactly; it can be some other number which depends on the RSS. For example, it can be a digest reduction of the RSS from the customer's product purchase package. In any event, step 902 results in "double-encrypted" security fragments from the digital product.
In step 902, the product decryption key from the product registration package is also encrypted using the customer's RSS (or a number derived therefrom) as a key. Note that in a different embodiment, either step 902 or step 904 can be omitted, although such an omission would likely reduce the security of the overall system.
In a step 906, the license server 104 assembles the product server download package, and in a step 908, it transmits the product server download package back to the reader system 106. Processing then resumes in the reader system 106 at step 514 (Fig. 5) .
The product server download package includes the following items:
• product ID
• paid usage parameters
• payment confirmation information (such as a credit card payment confirmation) • digest of full encrypted product (from the product registration package stored on the license server 104)
• encrypted product decryption key (product decryption key encrypted with the customer ' s RSS)
• double-encrypted security fragments
(encrypted security fragments further encrypted with the customer's RSS)
Fig. 10 is a flow chart of the step 806 (Fig. 8) , in which the license server 104 processes the customer's payment information. Fig. 10 illustrates the process where the customer is paying by credit card; a similar process would take place where the customer is paying with digital money or in some other payment form.
In step 1002, the license server 104 transmits the charge information to a credit card clearing house.
The credit card clearing house returns either an approval code or an error. In step 1004, if an error was received, then the license server 104 returns an error to step 806 (Fig. 8) (Step 1006) . If an approval code was received, then in step 1008, the license server 104 credits the author's account with the amount of the approved purchase price less a commission. In step 1010, the license server 104 returns successfully to the step 806 (Fig. 8) .
Returning to Fig. 5, as previously mentioned, each time the customer desires to use the digital product, he or she does so using the reader system software on the reader system 106. Fig. 11 is a flow chart of the step 518 in which the reader system plays the digital product. (The terms "play", "view" and "use" are used interchangeably herein as regards a digital product.) Referring to Fig. 11, in a step 1102, the reader system 106 regenerates the RSS for the reader system. This step takes place using the same algorithm that was used in step 602 (Fig. 6) when the RSS was generated for preparation of the product purchase package. In a step 804, the reader system 106 decrypts the double-encrypted security fragments using the new
RSS as a key. As mentioned with respect to step 904
(Fig. 9) , the key used in step 1104 need not be the RSS identically; another number which depends on the RSS can be used instead. However, whatever algorithm is used to derive the key from the RSS in step 1104 should be the same as that used in step 904.
In step 1106, the reader system 106 merges the encrypted security fragments into the encrypted product less the encrypted security fragments, thereby assembling a complete, but still encrypted, version of the digital product. In step 1108, the full encrypted digital product is digested using the same algorithm as was used originally by the authoring system 102 in step 414 (Fig. 4) . In step 1110, the reader system 106 determines whether the newly calculated digest matches the digest which was provided by the license server 104 in the product server download package. If so, then usage of the product on the reader system 106 is authorized. Flow continues with the flowchart of Fig. 12 (as indicated by the number "12" in the small circles in both Figs. 11 and 12) . If the two digests do not match in step 1110, then usage of the product on the reader system 106 is not immediately authorized. Flow continues with the flowchart of Fig. 13, as indicated by the number "13" in the small circles in both Figs. 11 and 13.
Referring to Fig. 12, since the two digests match in step 1110, the current reader system signature has been confirmed to be the same as that which was used when the reader system 106 first uploaded its product purchase package in step 512 (Fig. 5) . It is also the same RSS that was used to encrypt the product decryption key as downloaded from the license server 104 to the reader system 106 in steps 908 and 514. Accordingly, in step 1202, the reader system 106 decrypts the product decryption key from the product server download package using the current RSS. Again, the actual key used to decrypt the product decryption key in step 1202 need not be identical to the current RSS, as long as it is dependent thereon, and as long as the algorithm to generate the key is the same as that which was used to generate the key with which the product decryption key was originally encrypted in step 904 (Fig. 9) .
In step 1204, the reader system 106 decrypts the merged encrypted product using the product decryption key that was decrypted in step 1202. In step 1206, if the decrypted product was compressed, it is now decompressed using an algorithm complementary to that used by the authoring system in step 408 (Fig. 4) . The resulting decompressed digital product is transmitted in step 1210 to an appropriate viewer. It will be appreciated that once the digital product is transmitted in step 1210 to a viewer, which may be any standard viewer appropriate to the content of the digital product, the output stream is no longer secured by the mechanisms built into the overall system as described herein. Accordingly, a step 1208 is optionally inserted between steps 1206 and 1210 of Fig. 12. In an embodiment which includes step 1208, a fingerprint and/or a watermark is (are) inserted into the digital output stream prior to or while it is being provided to the viewer. Watermarking is a technique using a visible identifier that will let the user know that he or she has been associated with this particular instance of the content . It acts primarily as a deterrent. Fingerprinting embeds and hides codes into the output stream itself that are retrievable only by the author or by the licensing authority. Such codes uniquely associate the particular copy of the digital product with the individual who purchased it . Fingerprinting is used primarily for criminal prosecution and court proceedings.
If fingerprinting is used, preferably the fingerprint is inserted in a manner which does not affect the resulting viewing experience. For example, if the output stream includes CD audio, then the fingerprint can be spread over a large number of the audio samples, either substituting for the low-order bit or modifying the low-order bit in an exclusive OR manner in each sample. Alternatively, to avoid differential cryptanalysis, the data stream can be transformed into the frequency domain, modified in the frequency domain to insert the fingerprint codes, and then transformed back to the time domain. Also for images, steganographic techniques can be used to insert the fingerprint into the image. Steganography is described in Neil F. Johnson, "Steganography", available at http:// adams.patriot.net/ "Johnson/ html/ neil/ stegdoc/ stegdoc.html, visited March 4, 1997, incorporated by reference herein. The fingerprint to be inserted in the digital output stream should preferably be either the installation ID of the reader system 106, or the reader system signature that was generated at the time of product usage (step 1102) . Optionally, the output stream can also be randomly seeded to further hamper differential cryptanalysis. In this manner, if pirated copies of a digital product do begin to appear, the author of the product or the licensing authority should be able to determine the original source of the pirated copies by examining the fingerprint.
Returning to Fig. 11, if the two digests do not match (step 1110) , then the reader system 106 has determined that the newly generated reader system signature is not the same as that which was generated in step 602 (Fig. 6) at the time of product purchase. In an aspect of the invention, this determination does not immediately preclude usage of the product by the customer on the reader system 106. Instead, proceeding in Fig. 13, in a step 1302, the reader system 106 prepares a re-validation package. The re-validation package can be the same as set forth above with respect to the product purchase package, except that the customer's payment information can be omitted. In step 1304, the reader system 106 uploads the re-validation package to the license server 104 at the URL identified in the product broadcast package. The license server's operations in response to receipt of a re-validation package are set forth in Fig. 14. Referring to Fig. 14, in a step 1402, it is first determined whether the RSS in the re-validation package was based on a component in the reader system 106 having external assurances of substantial uniqueness. If so, then re-validation is considered unsuccessful (step 1404) and this result is returned to the reader system 106. If the RSS in the re-validation package was not based on a component having external assurances of substantial uniqueness, then in step 1406, the license server 104 compares the new RSS from the re- validation package to the RSS previously stored accessibly to the server for the same reader system 106 (as identified by the installation ID specified in the re-validation package) . If the difference between the two RSS ' s exceeds the threshold that was specified by the author in the usage parameters stored on the server 104 for the product ID specified in the re-validation package (step 1408) , then, again, re-validation is unsuccessful and such a result is returned to the reader system 106 (step 1404) . In different embodiments, the threshold can be specified as a percentage of one or the other RSS, or as a number of component signatures which differ between the two RSS's, or by a number of other different specifications . If the difference between the two RSS's does not exceed the designated threshold (step 1408) , then the re-validation is considered successful. The license server 104 prepares a new product server download package using the same algorithms as set forth above with respect to Fig. 9, but using the new RSS for encryption instead of the RSS that was used to download the original product server download package upon purchase . The new product server download package is then transmitted back to the reader system 106 with re- validation. Optionally, in order to assist investigation of any potential fraud, in step 1410, the license server 104 also stores the new RSS in conjunction with the installation ID specified in the re-validation package. A history of such ostensible reader system upgrades is maintained on the server 104.
Fig. 15 is a detail of step 1408 (Fig. 14) in which the license server 104 determines whether the difference between the two RSS ' s exceeds the threshold specified by the author in the usage parameters for the digital product. The flowchart set forth in Fig. 15 represents one embodiment, in which the threshold has been specified as a percentage. In a step 1502, the server 104 calculates the weighted sum of the RSS received in the product re-validation package. In a step 1504, the server 104 makes the same calculation with respect to the RSS previously stored on the server 104. In step 1506, the license server 106 determines whether the difference between the two calculated values exceeds the threshold specified by the author in the usage parameters. If so, then in step 1508, the routine returns to Fig. 14 affirmatively. If not, then in step 1510, the routine returns to Fig. 14 negatively. Fig. 16 is a detail of step 1408 (Fig. 14) as performed in a second embodiment, in which the upgrade drift percentage is specified as a maximum number of components whose individual component signatures can differ between the two RSS's. In step 1602, the server 104 counts the number of components of the RSS in the re-validation package, which differ from the corresponding components of the RSS previously stored on the server 106 from the original product purchase package. If the count exceeds the predetermined drift threshold, then the routine returns affirmatively (step 1606) . If not, then it returns negatively (step 1608) . Returning to the reader system flow as illustrated in Fig. 13, after the reader system 106 uploads the re-validation package to the license server 104, in a step 1306, the reader system 106 receives the re-validation result. If the re-validation was unsuccessful (step 1308) , then the reader system displays an error message to the user and requests the customer to call customer service of the licensing authority (step 1310) . In this situation, automatic re-validation has failed, and manual re-validation as in step 1310 is necessary. During the call, a customer service representative can determine whether the customer's license should be extended to cover the reader system 106 as it now stands. If automatic re- validation was successful (step 1308) , then the reader system returns to step 514 (as indicated by the numeral "5" in the small circle in both Figs. 13 and 5) to store and process the new product server download package in the same manner as it processed the original product server download package received upon purchase.
It can be seen that a secure product distribution mechanism has been described which takes advantage of the benefits of an uncontrolled distribution network, while ensuring that authors and proprietors of digital products are paid an appropriate royalty for their efforts at creativity. In addition, the mechanism ensures that once a customer is licensed to use a digital product on a particular reader system, that product cannot be used on any other reader system without re-validation. The mechanism allows for a certain amount of upgrade drift within which re- validation can be entirely automated.
The foregoing description of preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in this art. For example, whereas the flowcharts described herein illustrate steps being performed in a particular sequence, it will be appreciated that in many instances the sequence of the steps can be reversed, or the steps can be performed in a pipelined, overlapping manner, or both, without departing from the scope of the invention. The embodiments herein were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents .

Claims

CLAIMS 1. A method for preparing a digital product for controlled distribution using a distribution network, comprising the steps of: encrypting said product; separating at least one encrypted fragment from said encrypted product; transmitting said encrypted product less said at least one encrypted fragment onto said distribution network; and withholding said at least one encrypted fragment from said distribution network.
2. A method according to claim 1, further comprising the step of transmitting said at least one encrypted fragment to a license server.
3. A method according to claim 2 , further comprising the step of transmitting to said license server a decryption key that can be used to decrypt said product .
4. A method according to claim 1, wherein said encrypted product includes a header portion followed by a remainder portion, and wherein said step of separating at least one encrypted fragment from said encrypted product comprises a step of separating from said encrypted product an encrypted fragment that includes at least part of said header portion.
5. A method according to claim 1, wherein said encrypted product consists of a starting byte followed at least logically by all remaining bytes, and wherein said step of separating at least one encrypted fragment from said encrypted product comprises a step of separating from said encrypted product an encrypted fragment that includes said starting byte.
6. A method according to claim 1, wherein said encrypted product consists of a plurality of data bytes, and wherein said at least one encrypted fragment consists of not more than five percent of said data bytes.
7. A method for controlling usage of a digital product, comprising the steps of: storing accessibly to a server at least one fragment of an encrypted version of said digital product ; receiving product request information for acquisition by a user, of a usage license for said digital product; and transmitting a version of said at least one fragment as stored accessibly to said server to said user in response to receipt of said product request information, transmissions of said at least one fragment to said user in response to receipt of said product request information being limited to less than all of said digital product.
8. A method according to claim 7, wherein less than all of said digital product is accessible to said server.
9. A method according to claim 7, wherein said product request information includes payment information, further comprising a step of transmitting paid usage parameters to said user in response to said receipt of said product request information.
10. A method according to claim 7, wherein said product request information further includes a digest of a portion of a version of said digital product, said portion being non- co-extensive with said at least one fragment, further comprising the steps of: storing a digest of said portion accessibly to said server prior to said step of receiving product request information; and in response to receipt of said product request information, comparing said digest in said product request information with said digest stored accessibly to said server.
11. A method according to claim 7, wherein said product request information further includes a reader system signature of a particular reader system, further comprising a step of encrypting at least one of said at least one fragment as stored accessibly to said server, in dependence upon said reader system signature, to form a further encrypted version of said at least one fragment as stored accessibly to said server, the version transmitted to said user in said step of transmitting including said further encrypted version of said at least one fragment.
12. A method according to claim 7, wherein said product request information further includes a reader system signature of a particular reader system, further comprising the steps of: storing a product decryption key accessibly to said server prior to said step of receiving product request information; encrypting said product decryption key in dependence upon said reader system signature, to form an encrypted product decryption key; and transmitting said encrypted product decryption key to said user in response to receipt of said product request information.
13. A method according to claim 7, wherein said product request information further includes a first reader system signature of a particular reader system, further comprising the step of storing said reader system signature accessibly to said server, in response to receipt of said product request information; and further comprising the steps of, subsequently to said step of transmitting: receiving a product re-validation request identifying said particular reader system and including a second reader system signature; determining whether differences between said first and second reader system signatures satisfy predetermined re-validation criteria.
14. A method according to claim 13, wherein said differences between said first and second reader system signatures satisfy said re-validation criteria, further comprising a step of encrypting at least one of said at least one fragment as stored accessibly to said server, in dependence upon said first reader system signature, to form a first further encrypted version of said at least one fragment, the version transmitted to said user in said step of transmitting including said first further encrypted version of said at least one fragment; said method further comprising the steps of: encrypting said at least one of said at least one fragment as stored accessibly to said server, in dependence upon said second reader system signature, to form a second further encrypted version of said at least one fragment; and transmitting said second further encrypted version of said at least one fragment to said user in response to said step of determining.
15. A method according to claim 13 , wherein said differences between said first and second reader system signatures satisfy said re-validation criteria, further comprising the steps of: storing a product decryption key accessibly to said server prior to said step of receiving product request information; encrypting said product decryption key in dependence upon said first reader system signature, to form a first encrypted product decryption key; and transmitting said first encrypted product decryption key to said user in response to receipt of said product request information, said method further comprising the steps of: encrypting said product decryption key in dependence upon said second reader system signature, to form a second encrypted product decryption key; and transmitting said second encrypted product decryption key to said user in response to said step of determining.
16. A method for controlled usage of a digital product, comprising the steps of: developing a first signature of a first reader system in dependence upon a first group of at least one component as present in said first reader system at a first time; at a second time subsequent to said first time, developing a second signature of a second reader system in dependence upon a second group of at least one component present in said second reader system at said second time; using a digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, said predetermined reader system drift criteria not requiring identity between said first and second signatures.
17. A method according to claim 16, wherein said digital product comprises a sound, and wherein said step of using said digital product comprises a step of playing said sound.
18. A method according to claim 16, wherein said digital product comprises software and wherein said step of using said digital product comprises a step of executing said software.
19. A method according to claim 16, wherein said first and second signatures do not satisfy said predetermined reader system drift criteria, further comprising the steps of: manually communicating with a licensing authority for re-authorization; and using said digital product at a time subsequent to said second time in response to said re- authorization.
20. A method according to claim 16, wherein said second reader system is said first reader system.
21. A method according to claim 16, wherein said step of using said digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, comprises the steps of : said second reader system making a determination that said first and second signatures match; and using said digital product in response to said determination.
22. A method according to claim 21, further comprising the steps of: storing accessibly to said second reader system a first digest of at least a covered portion of said digital product; and storing, at said first time and accessibly to said second reader system, at least one fragment of said digital product encrypted in dependence upon said first signature, said at least one fragment overlapping said covered portion of said digital product, and wherein said step of said second reader system making a determination that said first and second signatures match, comprises the steps of: decrypting said at least one fragment in dependence upon said second signature, to form at least one decrypted fragment; digesting said covered portion of said digital product, using said at least one decrypted fragment, to form a second digest; and comparing said second digest to said first digest .
23. A method according to claim 16, further comprising the step of storing said first signature accessibly to a server different from said second reader system, and wherein said step of using said digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, comprises the steps of: transmitting said second signature to said server; and said server determining whether said first and second signatures satisfy said predetermined reader system drift criteria.
24. A method according to claim 16, wherein said reader system drift criteria are specified in conjunction with said digital product.
25. A method according to claim 16, wherein said first group includes more than one component, and wherein said step of developing a first signature comprises the steps of: developing a first component signature of each respective component in said first group as present in said first reader system at said first time; and combining said first component signatures into a first combined signature.
26. A method according to claim 25, wherein said second group includes more than one component, and wherein said step of developing a second signature comprises the steps of : developing a second component signature of each respective component in said second group as present in said second reader system at said second time; and combining said second component signatures into a second combined signature, wherein said first and second combined signatures constitute numerical combinations, and wherein said step of using said digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, comprises the step of using said digital product at said second time if and only if said second combined signature differs from said first combined signature by no more than a predetermined maximum drift percentage.
27. A method according to claim 25, wherein said step of combining comprises a step of concatenating said first component signatures into said first combined signature, wherein said second group includes more than one component , and wherein said step of developing a second signature comprises the steps of: developing a second component signature of each respective component in said second group as present in said second reader system at said second time; and concatenating said second component signature into a second combined signature, and wherein said step of using said digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, comprises the step of using said digital product at said second time if and only if a count of the number of said second component signatures in said second combined signature which differ from corresponding first component signatures in said first combined signature is no greater than a predetermined maximum drift number.
28. A method according to claim 16, further comprising the step of storing a version of said digital product accessibly to said second reader system, at least a portion of said version being encrypted in dependence upon said first signature.
29. A method according to claim 28, wherein said step of using said digital product at said second time if and only if said first and second signatures satisfy predetermined reader system drift criteria, comprises a step of decrypting said portion of said version in dependence upon said second signature.
30. A method according to claim 16, wherein said step of using said digital product comprises the steps of: inserting into said digital product a fingerprint that substantially uniquely identifies said second reader system, said fingerprint being recoverable from said digital product; and using said digital product with said fingerprint inserted.
31. A method according to claim 16, wherein said step of using said digital product comprises the steps of: inserting into said digital product a watermark that substantially uniquely identifies said second reader system, said watermark being recoverable from said digital product; and using said digital product with said watermark inserted.
EP98912914A 1997-03-14 1998-03-11 Digital product rights management technique Withdrawn EP0968585A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US81813297A 1997-03-14 1997-03-14
US818132 1997-03-14
PCT/US1998/004658 WO1998042098A1 (en) 1997-03-14 1998-03-11 Digital product rights management technique

Publications (1)

Publication Number Publication Date
EP0968585A1 true EP0968585A1 (en) 2000-01-05

Family

ID=25224756

Family Applications (1)

Application Number Title Priority Date Filing Date
EP98912914A Withdrawn EP0968585A1 (en) 1997-03-14 1998-03-11 Digital product rights management technique

Country Status (4)

Country Link
EP (1) EP0968585A1 (en)
AU (1) AU6759198A (en)
IL (1) IL131876A0 (en)
WO (1) WO1998042098A1 (en)

Families Citing this family (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (en) 1994-11-23 1996-10-11 Xerox Corp Distribution and use control system of digital work and access control method to digital work
KR100394924B1 (en) * 1998-07-02 2003-08-19 샤프 가부시키가이샤 Copyright management device, electronic-production sales device, electronic-book display device, key information management device, and electronic-production distribution management system in which these devices are connected via communication lines
US6519700B1 (en) * 1998-10-23 2003-02-11 Contentguard Holdings, Inc. Self-protecting documents
US6510513B1 (en) * 1999-01-13 2003-01-21 Microsoft Corporation Security services and policy enforcement for electronic data
AU2004229005B2 (en) * 1999-03-01 2006-12-14 Quark Media House Sarl Digital media asset management system and process
US6973444B1 (en) 1999-03-27 2005-12-06 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US20020019814A1 (en) 2001-03-01 2002-02-14 Krishnamurthy Ganesan Specifying rights in a digital rights license according to events
US6829708B1 (en) 1999-03-27 2004-12-07 Microsoft Corporation Specifying security for an element by assigning a scaled value representative of the relative security thereof
US7103574B1 (en) * 1999-03-27 2006-09-05 Microsoft Corporation Enforcement architecture and method for digital rights management
US6889208B1 (en) 1999-04-15 2005-05-03 Victor Company Of Japan, Ltd. Contents sale system
US6922781B1 (en) 1999-04-30 2005-07-26 Ideaflood, Inc. Method and apparatus for identifying and characterizing errant electronic files
JP2000330783A (en) * 1999-05-20 2000-11-30 Nec Corp Software illegal copy prevention system and recording medium with software illegal copy prevention program recorded thereon
WO2000075787A1 (en) * 1999-06-05 2000-12-14 Hyo Joon Park Digital product license control system based on independent digital product registration server
WO2000075760A1 (en) * 1999-06-07 2000-12-14 Firepad, Inc. Method and system for preventing the unauthorized use of software
AU5328900A (en) * 1999-06-08 2000-12-28 Ethos Technologies, Inc. Protection against unauthorized use of software products
US7197144B1 (en) 1999-06-08 2007-03-27 Ethos Technologies, Inc. Method and apparatus to authenticate a user's system to prevent unauthorized use of software products distributed to users
US6938154B1 (en) 2000-06-19 2005-08-30 Xerox Corporation System, method and article of manufacture for a cryptographic key infrastructure for networked devices
GB9916212D0 (en) * 1999-07-09 1999-09-15 Simmons Douglas M A system and method for distributing electronic publications
JP2001092721A (en) * 1999-09-17 2001-04-06 Fujitsu Ltd Device and method for controlling content use and computer readable recording medium having content use control program recorded thereon
US7536561B2 (en) 1999-10-15 2009-05-19 Ebrary, Inc. Method and apparatus for improved information transactions
US8311946B1 (en) 1999-10-15 2012-11-13 Ebrary Method and apparatus for improved information transactions
JP3934941B2 (en) 1999-11-30 2007-06-20 三洋電機株式会社 Recording device
EP1237323A4 (en) * 1999-12-07 2005-09-07 Sanyo Electric Co Device for reproducing data
US6792113B1 (en) 1999-12-20 2004-09-14 Microsoft Corporation Adaptable security mechanism for preventing unauthorized access of digital data
US6832230B1 (en) 1999-12-22 2004-12-14 Nokia Corporation Apparatus and associated method for downloading an application with a variable lifetime to a mobile terminal
US6789188B1 (en) * 2000-02-07 2004-09-07 Koninklijke Philips Electronics N.V. Methods and apparatus for secure content distribution
SG97852A1 (en) * 2000-02-25 2003-08-20 Kent Ridge Digital Labs Method and apparatus for digital content copy protection
US7249105B1 (en) 2000-03-14 2007-07-24 Microsoft Corporation BORE-resistant digital goods configuration and distribution methods and arrangements
EP1338944A3 (en) * 2000-03-30 2006-09-27 Siemens Aktiengesellschaft Method for activating a file by means of a vectorial code
DE50014708D1 (en) 2000-03-30 2007-11-22 Siemens Ag Method and system for activating an encrypted file
US6636966B1 (en) 2000-04-03 2003-10-21 Dphi Acquisitions, Inc. Digital rights management within an embedded storage device
DE60134842D1 (en) * 2000-04-11 2008-08-28 Thomson Licensing DEVICE FOR SAFE SAVING OF SECRET INFORMATION
US20020032664A1 (en) * 2000-04-28 2002-03-14 Tatsuhiko Ikuta Accounting system, accounting method, content executing device, accounting monitoring device, accounting control device and recording medium
US7051199B1 (en) 2000-06-19 2006-05-23 Xerox Corporation System, method and article of manufacture for providing cryptographic services utilizing a network
US7421583B1 (en) 2000-06-19 2008-09-02 Xerox Corp System, method and article of manufacture for determining a price of cryptograph IC services based on a computational burden thereof
US6754821B1 (en) * 2000-06-19 2004-06-22 Xerox Corporation System, method and article of manufacture for transition state-based cryptography
US6990468B1 (en) 2000-06-19 2006-01-24 Xerox Corporation System, method and article of manufacture for cryptoserver-based auction
US7036011B2 (en) * 2000-06-29 2006-04-25 Cachestream Corporation Digital rights management
CN1386226A (en) * 2000-07-11 2002-12-18 松下电器产业株式会社 Method and system for controlling content circulation system
EP1189432A3 (en) * 2000-08-14 2004-10-20 Matsushita Electric Industrial Co., Ltd. A hierarchical encryption scheme for secure distribution of predetermined content
GB2366162A (en) * 2000-08-15 2002-02-27 Chargenet Ltd Controlling access to a telecommunicated data file
ATE272858T1 (en) 2000-08-24 2004-08-15 Wibu Systems Ag METHOD FOR PROTECTING COMPUTER SOFTWARE AND/OR COMPUTER READABLE DATA AND PROTECTIVE DEVICE
WO2002019612A2 (en) * 2000-08-30 2002-03-07 Hrl Laboratories, Llc Method and apparatus for facilitating data subscription services
AU2001285265A1 (en) * 2000-09-12 2002-03-26 Aladdin Knowledge Systems, Ltd. System for managing rights and permitting on-line playback of digital content
US7542571B2 (en) 2000-09-12 2009-06-02 Sony Corporation Transmitting second content data with reference for use with first content data
GB2366969A (en) 2000-09-14 2002-03-20 Phocis Ltd Copyright protection for digital content distributed over a network
US7039615B1 (en) 2000-09-28 2006-05-02 Microsoft Corporation Retail transactions involving digital content in a digital rights management (DRM) system
GB2368245A (en) * 2000-10-17 2002-04-24 Mode Internat Ltd Distribution system for digital works with associated metadata
US7373391B2 (en) 2000-10-24 2008-05-13 Seiko Epson Corporation System and method for digital content distribution
US6889209B1 (en) 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
US6898286B2 (en) * 2000-12-19 2005-05-24 International Business Machines Corporation Method and system verifying product licenses using hardware and product identifications
JP3970040B2 (en) * 2001-01-31 2007-09-05 株式会社ソニー・コンピュータエンタテインメント Computer system and method of use thereof
GB0103119D0 (en) * 2001-02-08 2001-03-28 Comodo Technology Dev Ltd Improvements in and relating to software modification
AU1547402A (en) 2001-02-09 2002-08-15 Sony Corporation Information processing method/apparatus and program
JP2002244927A (en) * 2001-02-16 2002-08-30 Matsushita Electric Ind Co Ltd Data distribution system
US20040136536A1 (en) * 2001-05-18 2004-07-15 Michtchenko Valentin Alexandrovich Method for recording for distributing and reproducing information recorded on data carriers
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
WO2002101494A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Protected content distribution system
GB2379295A (en) 2001-08-31 2003-03-05 Sony Uk Ltd A system for distributing audio/video material to a potential buyer
GB2379299B (en) * 2001-09-04 2006-02-08 Imagination Tech Ltd A texturing system
KR20040045821A (en) * 2001-10-12 2004-06-02 코닌클리케 필립스 일렉트로닉스 엔.브이. Secure content distribution method and system
US20030084332A1 (en) * 2001-10-26 2003-05-01 Koninklijke Philips Electronics N.V. Method for binding a software data domain to specific hardware
WO2003073295A1 (en) * 2002-02-27 2003-09-04 Matsushita Electric Industrial Co., Ltd. Host device
GB0205047D0 (en) * 2002-03-05 2002-04-17 Bitarts Ltd Protecting computer software
WO2003093961A2 (en) 2002-05-02 2003-11-13 Shieldip, Inc. Method and apparatus for protecting information and privacy
US7065787B2 (en) * 2002-06-12 2006-06-20 Microsoft Corporation Publishing content in connection with digital rights management (DRM) architecture
US7152243B2 (en) * 2002-06-27 2006-12-19 Microsoft Corporation Providing a secure hardware identifier (HWID) for use in connection with digital rights management (DRM) system
NO20023860D0 (en) * 2002-08-14 2002-08-14 Sospita As Procedure for generating and processing data streams containing encrypted and decrypted data
US20040039932A1 (en) * 2002-08-23 2004-02-26 Gidon Elazar Apparatus, system and method for securing digital documents in a digital appliance
US7979700B2 (en) 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
US9038096B2 (en) 2002-10-03 2015-05-19 Nagra France Sas System and method of adaptive and progressive descrambling of digital image content
US8695029B2 (en) * 2002-10-03 2014-04-08 Nagra France System and method of adaptive and progressive descrambling of streaming video
US7370017B1 (en) 2002-12-20 2008-05-06 Microsoft Corporation Redistribution of rights-managed content and technique for encouraging same
FR2850515B1 (en) * 2003-01-23 2005-07-01 Medialive ADAPTIVE AND PROGRESSIVE METHOD AND SYSTEM FOR SECURELY DISTRIBUTING FIXED IMAGES CODED IN WAVELET
WO2004086363A2 (en) 2003-03-27 2004-10-07 M-Systems Flash Disk Pioneers Ltd. Data storage device with full access by all users
FR2854019B1 (en) * 2003-04-16 2005-09-16 Medialive SCREENING, UNLOCKING AND SECURED DISTRIBUTION OF AUDIOVISUAL SEQUENCES FROM VIDEO ENCODERS BASED ON WAVELET PROCESSING
EP1471406A1 (en) * 2003-04-25 2004-10-27 Culture.com Technology (Macau) Ltd Method of verifying authorized use of electronic book on an information platform
FR2854531B1 (en) * 2003-05-02 2007-01-05 Medialive METHOD AND SYSTEM FOR SECURING SCRAMBLING, UNLOCKING AND DISTRIBUTION OF VECTORIAL VISUAL SEQUENCES
US20040267645A1 (en) * 2003-06-24 2004-12-30 Pekka Pollari Method and corresponding equipment enabling billing for use of applications hosted by a wireless terminal
US7761921B2 (en) * 2003-10-31 2010-07-20 Caterpillar Inc Method and system of enabling a software option on a remote machine
JP4731111B2 (en) 2003-11-19 2011-07-20 パナソニック株式会社 Multimedia content playback apparatus and playback method, and recording medium storing data used therefor
EP1550930B1 (en) * 2003-12-15 2007-08-01 Mobile Integrated Solutions Limited A method for restraining the re-distribution of licensed data in a digital mobile environment
JP2007523523A (en) * 2004-01-20 2007-08-16 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for content protection using biometric watermarks
DE602005017369D1 (en) 2004-02-03 2009-12-10 Sandisk Secure Content Solutio PROTECTION OF DIGITAL DATA CONTENT
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
BRPI0400265A (en) 2004-03-10 2006-02-07 Legitimi Ltd Requesting device hardware and software subscription-based information service access control system
FR2868654B1 (en) * 2004-04-06 2007-06-22 Medialive METHOD AND SYSTEM FOR SECURE DIFFUSION OF AUDIOVISUAL FLOWS PROTECTED AT A DYNAMIC GROUP OF RECEIVERS
US20060080702A1 (en) * 2004-05-20 2006-04-13 Turner Broadcasting System, Inc. Systems and methods for delivering content over a network
KR100601706B1 (en) * 2004-10-15 2006-07-18 삼성전자주식회사 Method and apparatus for sharing and generating system key in DRM
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
EP1669833B1 (en) * 2004-12-01 2017-07-26 Amadeus S.A.S. Method of validating a trusted computer system
KR20070104628A (en) 2005-01-24 2007-10-26 코닌클리케 필립스 일렉트로닉스 엔.브이. Private and controlled ownership sharing
WO2006077546A2 (en) * 2005-01-24 2006-07-27 Koninklijke Philips Electronics N.V. Registration phase
US7840564B2 (en) 2005-02-16 2010-11-23 Ebrary System and method for automatic anthology creation using document aspects
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
FR2887097A1 (en) * 2005-06-14 2006-12-15 France Telecom METHOD FOR PROTECTING A SOURCE CODE IN SEMI-INTERPRETED LANGUAGE
US7433869B2 (en) 2005-07-01 2008-10-07 Ebrary, Inc. Method and apparatus for document clustering and document sketching
DE102005039207A1 (en) * 2005-08-18 2007-03-15 Siemens Ag Method of using a program and associated units
US8087092B2 (en) 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
US7987362B2 (en) 2005-09-12 2011-07-26 Uniloc Usa, Inc. Method and apparatus for using imperfections in computing devices for device authentication
EP1783635A1 (en) * 2005-11-07 2007-05-09 Thomson Licensing S.A. Method and system for distributing multimedia content
US8078788B2 (en) 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
EP2284756A3 (en) * 2006-05-18 2011-08-10 Vodafone Holding GmbH Method for managing digital content, management unit and rendering device
US8839005B2 (en) 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
FR2912529A1 (en) 2007-02-13 2008-08-15 France Telecom Computer program and/or data e.g. audio type data, coupling method for e.g. portable computer, involves protecting value associated with system, and executing software related to parameter from parameter group
TW200903296A (en) 2007-05-22 2009-01-16 Koninkl Philips Electronics Nv Data security
GB0717587D0 (en) * 2007-09-10 2007-10-17 Mediares Ltd Systems and methods relating to encryption and decryption
US8160962B2 (en) 2007-09-20 2012-04-17 Uniloc Luxembourg S.A. Installing protected software product using unprotected installation image
US9032154B2 (en) 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
TWI461954B (en) * 2008-01-18 2014-11-21 Hon Hai Prec Ind Co Ltd System and method for protecting electronic documents
JP5121542B2 (en) * 2008-04-09 2013-01-16 キヤノン株式会社 Application packaging device, its control method, and program
EP2184695A1 (en) 2008-11-10 2010-05-12 Siemens Aktiengesellschaft Method of combining data with a device to be used for processing data, corresponding functionality to execute the individual steps in the procedure and computer program to implement the procedure
JP4692652B2 (en) 2009-02-18 2011-06-01 コニカミノルタビジネステクノロジーズ株式会社 License management system, license management computer, license management method, and license management program
US8959653B2 (en) * 2009-03-31 2015-02-17 Blackberry Limited Automatic license key injection
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
ES2782329T3 (en) * 2009-09-22 2020-09-14 Amadeus Sas Process to ensure the communication of a digital file through a communication network
US20110093503A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data
US8316421B2 (en) * 2009-10-19 2012-11-20 Uniloc Luxembourg S.A. System and method for device authentication with built-in tolerance
GB2484268A (en) 2010-09-16 2012-04-11 Uniloc Usa Inc Psychographic profiling of users of computing devices
US20120095877A1 (en) * 2010-10-19 2012-04-19 Apple, Inc. Application usage policy enforcement
US9449324B2 (en) * 2010-11-11 2016-09-20 Sony Corporation Reducing TV licensing costs
US9811827B2 (en) 2012-02-28 2017-11-07 Google Inc. System and method for providing transaction verification
ES2462398B1 (en) * 2012-10-18 2015-04-13 Navista S.A.R.L. METHOD FOR LIMITING AND ENSURING THE OPERATION AND OPERATION OF A COMPUTER PROGRAM ONLY AND EXCLUSIVELY WITH THE COMPUTER EQUIPMENT WHERE IT IS INSTALLED
ITUB20155127A1 (en) * 2015-10-16 2017-04-16 Morphcybersystems S R L S A method to uniquely identify a device and to manage firmware and hardware updates through an encrypted code
DE102016009439A1 (en) * 2016-08-03 2018-02-08 Giesecke+Devrient Mobile Security Gmbh Individual encryption of control commands

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530757A (en) * 1994-06-28 1996-06-25 International Business Machines Corporation Distributed fingerprints for information integrity verification
US5613004A (en) * 1995-06-07 1997-03-18 The Dice Company Steganographic method and device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9842098A1 *

Also Published As

Publication number Publication date
WO1998042098A1 (en) 1998-09-24
IL131876A0 (en) 2001-03-19
AU6759198A (en) 1998-10-12

Similar Documents

Publication Publication Date Title
WO1998042098A1 (en) Digital product rights management technique
US11366878B2 (en) Method and apparatus for delivering encoded content
KR100798199B1 (en) Data processing apparatus, data processing system, and data processing method therefor
US7270193B2 (en) Method and system for distributing programs using tamper resistant processor
KR100467929B1 (en) System for protecting and managing digital contents
US7480802B2 (en) License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
KR100611740B1 (en) System and method for tracing illegally copied contents on the basis of fingerprint
US6801999B1 (en) Passive and active software objects containing bore resistant watermarking
US20060149683A1 (en) User terminal for receiving license
US6684198B1 (en) Program data distribution via open network
US20120072731A1 (en) Secure and efficient content screening in a networked environment
JP2004520755A (en) Method for protecting and managing digital contents and system using the same
CA2426425A1 (en) Method and apparatus for protecting information and privacy
JP2004193843A (en) Device, method, and program for content delivery and device, method, and program for reproducing content
JPH07131452A (en) Digital information protection method and its processor
US20070239617A1 (en) Method and apparatus for temporarily accessing content using temporary license
JPH1131130A (en) Service providing device
JPH09282155A (en) Method for equipping cipher authentication function
EP1471405A1 (en) Method and device for protecting information against unauthorised use
KR100773963B1 (en) Fingerprinting management system and method for delivering fingerprint code
JP2004318448A (en) Terminal equipment with content protection function
JP2004303107A (en) Content protection system, and content reproduction terminal
JP2000324329A (en) Contents id provision system
JP2004110277A (en) Method, device and program for managing content distribution
JP2004153476A (en) Contents distribution apparatus, contents distribution method, and contents distribution program

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19991007

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LI NL SE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20031001