Method and apparatus for distributing information products6173403Abstract A method and apparatus for distributing information products is described that comprises: receiving an encrypted launch code; decrypting the encrypted launch code with a string, R, as the key to recover a first candidate authentication code and an indicium of a first information product; and installing the first information product onto the computer when the candidate authorization code matches a first known authorization code. Claims What is claimed is: Description FIELD OF THE INVENTION
TABLE 1
The files that compose the Patent Law Library.
File Location
File 1 .backslash.directory1.backslash.file1.htm
File 2 .backslash.directory1.backslash.file2.htm
File 3 .backslash.directory1.backslash.file3.htm
File 4 .backslash.directory1.backslash.file4.htm
File 5 .backslash.directory1.backslash.file5.htm
For pedagogical reasons, the three information products in the illustrative embodiment comprise a total of 12 files. In commercial applications, it will be clear to those skilled in the art that a single information product can comprise hundreds or thousands of files. It will be clear to those skilled in the art how to make and use the files that compose the three information products. The books HTML Publishing for Netscape, Stuart Harris & Gayle Kidder, Ventana Communications Group, Inc., Research Triangle Park, North Carolina, and HTML: The Definitive Guide, Chuck Musciano & Bill Kennedy, O'Reilly & Associates, Inc., Sebastopol, Calif., provide an excellent overview the creation of files using HTML and are incorporated by reference. II. Build The Ancillary Files Because (1) each file can contain a hypertext link to a target file that may not be in the same information product, and (2) the information products can be licensed and installed separately, the possibility exists that a file can be installed on a end-user's computer that contains a hypertext link to a target file that is not installed on the end-user's computer. The result is a hypertext link that, when executed, generates a run-time error because the target file is not installed on the computer. To preclude run-time errors, the installer advantageously installs a "dummy" or "nominal" file into the end-user's computer in the same location and with the same name as each file that could be referenced but is not also installed. The nominal file advantageously does not contain the same information as the authentic file, but contains a notice that it is only a nominal file and that access to the authentic file requires the installation of another information product. At step 102, ancillary files are built to enable the installer to know where to install the nominal files. In the illustrative embodiment, one ancillary file is built for each information product and the ancillary files indicates the name and location of each nominal file to be installed when that information product is installed. There are two alternative techniques that can be used by the installer for installing the nominal files and the authentic files. According to the first technique, the installer installs all of the authentic files for all of the information products to be installed, and then installs all of the nominal files into those locations not containing an authentic file. According to the second technique, the installer installs all of the nominal files for all of the information products to be installed, and then installs all of the authentic files to be installed over the nominal files, perhaps overwriting over some or all of the nominal files. The choice of technique advantageously does not affect how the ancillary files are built. The installer associated with the illustrative embodiment uses the first technique, but it will be clear to those skilled in the art how to make and use embodiments of the present invention that use the second technique. When the total number of files in all of the information products is small, each ancillary file associated with each information product can exhaustively list all of the files associated with every other information product. In contrast, when the total number of files in all of the information products is large, it is advantageous for each ancillary file to list only those files actually needed. To determine which files are needed, all of the files in all of the information products need to be examined to determine which files reference which other files. FIG. 2 depicts an illustrative directed graph that represents all of the files in the three illustrative products and indicates which files contain hypertext links to other files. It will be clear to those skilled in the art how to determine the topology of the directed graph by examining all of the files in all of the products associated with an embodiment of the present invention. Each file in each product is represented by a polygon enclosing a number. Each of the five files associated with the Patent Law Library are depicted by a triangle; each of the three files associated with the Trademark Law Library are depicted by a square and each of the four files associated with the Copyright Law Library are depicted by a pentagon. The number inside the polygon indicates exactly which file it is associated with. For example, the file "file3.htm" is depicted by a triangle enclosing the number 3. An arrow from one polygon to another indicates that the file associated with the first polygon contains at least one hypertext link to the file associated with the second polygon. A double-ended arrow indicates that both files contain hypertext links to each other. Table 4 provides the same information as does FIG. 2, but in tabular format. Each row in Table 4 represents a file in one of the three products, and an "X" in a box means that the file associated with the row contains a hypertext link to the file associated with that column. Like the directed graph in FIG. 2, the entries in Table 4 are illustrative only. It will be clear to those skilled in the art how to make a similar table by examining all of the files in all of the information products associated with an embodiment of the present invention. Although both the directed graph of FIG. 2 and Table 4 illustrate a tendency for files within an information product to reference other files within the same product, there are occurrence of files within one product containing references to files in other products.
TABLE 4
Which Files Externally Reference Which Files
1 2 3 4 5 6 7 8 9 10 11 12
1 X X X X
2 X X
3 X X X
4 X
5 X X
6 X X X
7 X X X X
8 X
9 X X X
10 X
11 X X X X
12 X X
As both FIG. 2 and Table 4 indicate, there are three files (File 6, File 7 and File 11) not within the Patent Law Library that are referenced by files within Patent Law Library. Therefore, the Patent Law Library's ancillary file is built as shown in Table 5. Whenever the Patent Law Library is installed, the files listed in the ancillary file are advantageously also installed as nominal files.
TABLE 5
Ancillary File associated with the Patent Law Library
Ancillary File
.backslash.directory2.backslash.file6.htm
.backslash.directory2.backslash.file7.htm
.backslash.directory3.backslash.file11.htm
As both FIG. 2 and Table 4 indicate, there are four files (File 3, File 5, File 9 and File 10) not within the Trademark Law Library that are referenced by files within Trademark Law Library. Therefore, the Trademark Law Library's ancillary file is built as shown in Table 6. Whenever the Trademark Law Library is installed, the files listed in the ancillary file are advantageously also installed as nominal files.
TABLE 6
Ancillary File associated with the Trademark Law Library
Ancillary file
.backslash.directory1.backslash.file3.htm
.backslash.directory1.backslash.file5.htm
.backslash.directory3.backslash.file9.htm
.backslash.directory3.backslash.file10.htm
As both FIG. 2 and Table 4 indicate, there are four files (File 1, File 5, File 7 and File 8) not within the Copyright Law Library that are referenced by files within Copyright Law Library. Therefore, the Copyright Law Library's ancillary file is built as shown in Table 7. Whenever the Copyright Law Library is installed, the files listed in the ancillary file are advantageously also installed as nominal files.
TABLE 7
Ancillary File associated with the Copyright Law Library
Ancillary file
.backslash.directory1.backslash.file1.htm
.backslash.directory1.backslash.file5.htm
.backslash.directory2.backslash.file7.htm
.backslash.directory2.backslash.file8.htm
III. Prepare For Distribution Referring again to step 103 in FIG. 1, when each information product and its associated ancillary file are built, the files are advantageously prepared for distribution. Because all of the information products are advantageously distributed on the same medium (e.g., CD-ROM, DVD, diskette) or distributed electronically over a wide-area-network (e.g., the Internet), each information product is advantageously compressed with a lossless compression technique and encrypted, in well-known fashion, with the string, S, as the key. The purpose of the compression is to reduce the amount of bandwidth each information product consumes during distribution and to reduce the entropy of the information products before encryption. The purpose of encryption is to enable the distribution of the information products without allowing unauthorized access to the information products after the information products have left the publisher's possession. In other words, the encryption allows the publisher to give a potential end-user a CD-ROM that contains all of information products but to retain control of the end-user's access to the information products. The installer advantageously knows the cryptosystem and key for decrypting each of the information products. How the publisher grants access to the information products after they have left his or her control will be described in detail below. It will be clear to those skilled in the art how to prepare the information products and ancillary files for distribution. IV. Distribute the Information Products At step 104, the information products and ancillary files and the accompanying installer and its associated files are distributed on a single medium (e.g., a CD-ROM, DVD, etc.), on multiple media (e.g., diskettes, etc.) and/or electronically over a network (e.g., the Internet, etc.). It will be clear to those skilled in the art how to distribute the information products. V. Receive the Information Products At step 105, the information products and ancillary files and the accompanying installer and its associated files are received by the end-user. VI. Run the Installer At step 106, the end-user initiates the installation process. When the information products are distributed on one or more media, the end-user inserts the media into his or her computer and runs the installer in well-known fashion. When the information products are distributed electronically over a network, the end-user collects the files on his or her computer and then runs the installer in well-known fashion. VI. Locate and Cleanse the Token At step 107, the installer advantageously checks to determine if the publisher has previously granted authorization to install one or more of the information products on the end-user's computer. The installer determines if the publisher has previously granted authorization by searching for a token on the end-user's computer, which token would have been placed there by an earlier edition of the installer from the publisher. When an end-user obtains a subscription to one or more of the information products, the installer memorializes the authorization during the length of the subscription. This is advantageous because it relieves the publisher and the end-user from having to obtain explicit authorization for each issue during the length of the subscription. The token can be conceptualized as a secret, authenticated message from one installer to a subsequent installer that indicates to the subsequent installer that the end-user's computer is granted access to certain of the information products for a given duration. How the token is created and placed on the end-user's computer will be described in detail below. Advantageously, the token is a file with a name and location that are known to the installer. The token advantageously comprises a data structure comprising: (1) an authentication code; (2) an indicium of the name of the end-user; (3) a list of the information products to which the end-user has been granted access; and (4) an indicium of when the authorization for each information product expires. Furthermore, the token file is encrypted so as to impede an end-user from illicitly obtaining access to an information product by doctoring the token. The encryption is performed, in well-known fashion, and the installer advantageously knows the both the cryptosystem and the key, T, for decrypting the token. Table 8 depicts the contents of the illustrative token.
TABLE 8
Contents of the Illustrative token
Authentication code
Indicium of End-User's Identity
Information Product No. 1; Expiration Date
Information Product No. 2; Expiration Date
The authentication code is advantageously a 32-bit or longer string that is known to the installer and publisher and is not generally known to the public. The indicium of the name of the user can either be the actual name of the end-user or a code that represents the name of the end-user. When a user illicitly attempts to share the token with others or to post it on a bulletin board or the Internet, it indelibly bears an indicium of the name of the person to whom it was originally given. If the publisher sees the token posted publicly, the publisher can decrypt the token, learn the identity of the user to whom the token was given and then investigate whether that user is inducing copyright infringement of the publisher's information products. The list of information products to which the end-user has been authorized access can either list the products to which access has been authorized, or, alternatively, can list of all of the information products published and an indicium of whether access has been authorized or not for each product. The indicium of when the access for each information product expires is advantageously based on the information products' version numbers rather than on calendar dates. Each edition of the installer is told what is the version number of the information products that accompany it. FIG. 3 depicts a flowchart of the illustrative steps conducted by the installer in locating and cleansing the token, which is step 107 in FIG. 1. At step 301, the installer searches the end-user's computer for a file with the same name as the token and in the same location as expected. At step 303, if the installer locates a file with the same name as the token and in the same location as expected, then control passes to step 305, else the installer infers that authorization was not previously given. At step 305, the installer decrypts the found file, in well-known fashion, according to the cryptosystem and the key it knows. At step 307, the installer attempts to locate the candidate authentication code in the decrypted file and compares the candidate authentication code with the known authentication code, which the installer knows. If the installer determines that the candidate authentication code matches the known authentication code, the installer infers that the token is genuine and has not been doctored and control passes to step 309; else the installer infers than authorization was not previously given or the token was doctored and control passes to step 315. As a practical matter, a mismatched authentication code is likely to be the result of an end-user trying to gain unauthorized access to the information products by tinkering with the token. At step 309, the installer determines if the any of the information products' authorizations have expired. If the any of the information products' authorizations have expired, then control passes to step 311. At step 311, the installer notifies the end-user which information products' authorizations have expired, and then control passes to step 313. At step 313, the installer determines if all of the information products' authorizations have expired, and if they have, control passes to step 315. At step 315, the installer deletes the token. VII. Subscribe or Re-Subscribe? Referring to step 108 in FIG. 1, the end-user is queried by the installer whether the end-user desires to subscribe to new information products or to re-subscribe to information products whose subscriptions have expired. If the end-user indicates "No," then the installer stops and the process ends. Otherwise, control passes to step 109. VIII. Obtain Authorization At step 109 the end-user seeks authorization to subscribe or re-subscribe to one or more information products. Because the various information products are encrypted, it is difficult for the end-user to access the information products unilaterally and without the installer's cooperation. The end-user acquires the installer's cooperation to decrypt and install the respective information products by entering into the installer a "password" or "launch code," which is chosen from a large number of possibilities so that probabilistically it is unlikely that the end-user can guess it. Advantageously, the publisher only provides the launch code to the end-user after the publisher is satisfied that the end-user has paid for access to the desired information products. FIG. 4 depicts a flowchart of the steps involved in the illustrative embodiment for obtaining and providing authorization to begin a subscription. First, at step 400 the installer advantageously requires that the end-user enter all or a portion of his or her name. At step 401, the installer then generates and notifies the end-user of a 32-bit or longer "serial number," R, that is advantageously based on a random number generated by the installer. The serial number can also be based, in part, on the end-user's name, as input at step 400. It is advantageous that the end-user not be able to control what serial number is generated, nor that the same serial number be generated each time step 401 is encountered. At step 403, the end-user then advantageously contacts the publisher via the telephone or the Internet and provides to the publisher: (1) the end-user's name and address; (2) the end-user's credit card information or other method of payment; (3) the name of the information products that the end-user desires to subscribe to and for what duration; and (4) the serial number, R, generated by the installer at step 401. When the publisher is satisfied that he or she will be paid for the subscription, the publisher creates the launch code by encrypting a data structure comprising: (1) an authentication code; (2) an indicium of the name of the end-user; (3) a list of the information products to which the end-user has been granted access; and (4) an indicium of when the authorization for each information product expires in a cryptosystem known to the installer using R as the key. Advantageously, only the publisher and the installer know the cryptosystem used for encrypting and decrypting the launch code. It will be clear to those skilled in the art how to create the launch code. At steps 409 and 411, the publisher transmits the launch code to the end-user, who enters the launch code into the installer. At step 413, the installer decrypts the launch code with R as the key. At step 415, the installer recovers the candidate authentication code from the decrypted launch code and determines if the candidate authentication code matches the authentication code known to the installer. When the authentication code matches, the installer infers that the launch code is authentic and control passes to step 419. When the authentication code does not match, the installer infers that the launch code has been corrupted or doctored, and control passes to step 417. At step 417 the end-user is notified by the installer that the launch code is not accepted and control passes to step 401. At step 419, the installer notifies the end-user that the launch code is accepted and also advantageously notifies the end-user that subscriptions for what product have been authorized and for what duration. The purpose of generating a new serial number, R, each time the installer requires a launch code is to prevent the end-user from using a single launch code to install the information products on multiple computers. The purpose of encrypting the data structure at step 407 is to impede an end-user from manipulating the parameters in the data structure to get more than was paid for. The purpose of putting an indicium of the end-user's identity into the launch code is identical to the reason the indicium of the end-user's identity was put into the token. That is, if an end-user shares the launch code with others or to post it on a bulletin board or the Internet, it indelibly bears the name of the person to whom it was originally given. If the publisher sees the launch code posted publicly, the publisher can decrypt the launch code, learn the identity of the user to whom the launch code was given and then investigate whether that end-user is inducing copyright infringement of the publisher's information products. Because the publisher may not know what value of R was used to encrypt that particular launch code, the existence of the known authentication code in the plaintext provides the publisher with information to make a known-plaintext cryptanalytic attack on the launch code. IX. Install the Products At step 111 in FIG. 1, the installer installs all of the information products that have been authorized by the publisher to be installed. This includes both the information products whose authorization was given previously in the token, and the information products whose authorization was obtained in step 109. Advantageously, the installer decrypts the authorized information products and installs them on the end-user's computer in well-known fashion. Then the installer uses the ancillary file associated with each installed information product to install the nominal files, if any, on the end-user's computer, as described above. X. Memorialize the Authentication At step 112 in FIG. 1, the installer memorializes the authorization of the various information products by updating the token located in step 107, if necessary, with the new authorizations, if any, obtained in step 109. The revised token is then advantageously encrypted with a cryptosystem and a key, T, that will be known to later editions of the installer. The encrypted token is then stored on the end-user's computer with a name and in location to be known by later editions of the installer.
|
Same subclass Same class Consider this |
||||||||||
