|
Description  |
|
|
CROSS-REFERENCE TO RELATED APPLICATION
The present application is related to U.S. patent application Ser. No.
08/235,033, entitled "Method and Apparatus for Enabling Trial Period Use
of Software Products: Method and Apparatus for Utilizing a Decryption
Stub," further identified by Attorney Docket No. BT9-93-070; U.S. patent
application Ser. No. 08/235,035, entitled "Method and Apparatus for
Enabling Trial Period Use of Software Products: Method and Apparatus for
Allowing a Try-and-Buy User Interaction," further identified by Attorney
Docket No. DA9-94-008; U.S. patent application Ser. No. 08/235,032,
entitled "Method and Apparatus for Enabling Trail Period Use of Software
Products: Method and Apparatus for Generating a Machine-Dependent
Identification," further identified by Attorney Docket No. DA9-94-009; and
U.S. patent application Ser. No. 08/235,418, entitled "Method and
Apparatus for Enabling Trial Period Use of Software Products: Method and
Apparatus for Allowing the Distribution of Software Objects," further
identified by Attorney Docket No. DA9-94-011, all filed on Apr. 25, 1994
by the inventors hereof and assigned to the assignee herein, and
incorporated by reference herein.
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates in general to techniques for securing access
to software objects, and in particular to techniques for temporarily
encrypting and restricting access to software objects.
2. Description of the Related Art
The creation and sale of software products has created tremendous wealth
for companies having innovative products, and this trend will continue
particularly since consumers are becoming ever-more computer literate as
time goes on. Computer software is difficult to market since the potential
user has little opportunity to browse the various products that are
available. Typically, the products are contained in boxes which are
shrink-wrapped closed, and the potential customer has little or no
opportunity to actually interact with or experience the software prior to
purchasing. This causes considerable consumer dissatisfaction with
products, since the consumer is frequently forced to serially purchase a
plurality of software products until an acceptable product is discovered.
This is perhaps one significant cause of the great amount of software
piracy which occurs in our economy. A potential software purchaser will
frequently "borrow" a set of diskettes from a friend or business
associate, with the stated intention of using the software for a temporary
period. Frequently, such temporary use extends for long intervals and the
potential customer may never actually purchase a copy of the software
product, and may instead rely upon the borrowed copy.
Since no common communication channel exists for the sampling of software
products, such as those created in movie theaters by movie trailers, and
in television by commercials, software manufacturers are forced to rely
upon printed publications and direct mail advertisements in order to
advertise new products and solicit new customers. Unfortunately, printed
publications frequently fail to provide an accurate description of the
product, since the user interaction with the product cannot be simulated
in a static printed format. The manufacturers of computer software
products and the customers would both be well served if the customers
could have access to the products prior to making decisions on whether or
not to purchase the product, if this could be accomplished without
introducing risk of unlawful utilization of the product.
The distribution of encrypted software products is one mechanism a software
vendor can utilize to distribute the product to potential users prior to
purchase; however, a key must be distributed which allows the user access
to the product. The vendor is then forced to rely entirely upon the
honesty and integrity of a potential customer. Unscrupulous or dishonest
individuals may pass keys to their friends and business associates to
allow unauthorized access. It is also possible that unscrupulous
individuals may post keys to publicly-accessible bulletin boards to allow
great numbers of individuals to become unauthorized users. Typically,
these types of breaches in security cannot be easily prevented, so vendors
have been hesitant to distribute, software for preview by potential
customers.
SUMMARY OF THE INVENTION
It is one object of the present invention to provide a method and apparatus
for distributing software objects from a producer to potential users which
allows the user a temporary trial period without subjecting the software
product to unnecessary risks of piracy or unauthorized utilization beyond
the trial interval. Preferably this is accomplished by providing a
software object on a computer-accessible memory media along with a file
management program. Preferably, the software object is reversibly
functionally limited, through one or more particular encryption
operations. The computer-accessible memory media is shipped from the
producer to the potential user utilizing conventional mail and delivery
services. Upon receipt, the potential user loads the file management
program into a user-controlled data processing system and associates it
with the operating system for the data processing system. Then, the
computer-accessible memory media is read utilizing the user-controlled
data processing system. The file management program is executed by the
user-controlled data processing system and serves to restrict access to
the software object for a predefined and temporary trial period. During
the temporary trial mode of operation, the software object is temporarily
enabled by reversing the reversible functional limitation of the software
object. This is preferably accomplished by decryption of the encrypted
software object when the software object is called by the operating system
of the user-controlled data processing system. The file management program
preferably prevents copying operations, so the encrypted software project
is temporarily decrypted when it is called by the operating system. If the
potential user elects to purchase the software object, a permanent use
mode of operation is entered, wherein the functional limitation of the
software object is permanently reversed, allowing unlimited use to the
software object by the potential user. This facilitates browsing
operations which allow the potential user to review the software and
determine whether it suits his or her needs.
The file management program continuously monitors the operating system of
the user-controlled data processing system for operating system input
calls and output calls. The file management program identifies when the
operating system of the user-controlled data processing system calls for a
software object which is subject to trial-interval browsing. Then, the
file management system fetches a temporary access key associated with the
software object, and then examines the temporary access key to determine
if it is valid. Next, the file management program reverses the functional
limitation of the software object, and passes it to the data processing
system for processing.
It is another objective of the present invention to provide a method and
apparatus for distributing a software object from a source to a user,
wherein a software object is encrypted utilizing a long-lived encryption
key, and directed from the source to the user. The encrypted software
object is loaded onto a user-controlled data processing system having a
particular system configuration. A numerical machine identification based
at least in part upon the particular configuration of the user-controlled
data processing system is then derived. Next, a temporary key is derived
which is based at least in part upon the numerical machine identification
and the long-lived encryption key. A long-lived key generator is provided
for receiving the temporary key and producing the long-lived encryption
key. The temporary key allows the user to generate for a prescribed
interval the long-lived encryption key to access the software object.
These operations are performed principally by a file management program
which is operable in a plurality of modes. These modes include a set up
mode of operation, a machine identification mode of operation, and a
temporary key derivation mode of operation. During the set up mode of
operation, the file management program is loaded onto a user-controlled
data processing system and associated with an operating system for the
user-controlled data processing system. During the machine identification
mode of operation, the file management program is utilized to derive a
numerical machine identification based upon at least on attribute of the
user-controlled data processing system. During the temporary key
derivation mode of operation, a temporary key is derived which is based at
least in part upon the numerical machine identification. The file
management program also allows a trial mode of operation, wherein the file
management program is utilized by executing it with the user-controlled
data processing system to restrict access to the software object for an
interval defined by the temporary key, during which the long-lived key
generator is utilized in the user-controlled data processing system to
provide the long-lived key in response to receipt of at least one input
including the temporary key.
It is yet another objective of the present invention to provide a method
and apparatus in a data processing system for securing access to
particular files which are stored in a computer-accessible memory media. A
file management program is provided as an operating system component of
the data processing system. A plurality of files are stored in the
computer-accessible memory media, including at least one encrypted file
and at least one unencrypted file. For each encrypted file, a preselected
portion is recorded in computer memory, a decryption block is generated
which includes information which can be utilized to decrypt the file, and
the decryption block is incorporated into the file in lieu of the
preselected portion which has been recorded elsewhere in computer memory.
The file management program is utilized to monitor data processing
operation calls for a called file stored in the computer-accessible memory
media. The file management program determines whether the called file has
an associated decryption block. The file management program processes the
called file in a particular manner dependent upon whether or not the
called file has an associated decryption block. The incorporation of the
decryption block does not change the size of the encrypted file, thus
preventing certain types of processing errors. During the trial interval,
the encrypted file is maintained in an encrypted condition, and cannot be
copied. If the potential user opts to purchase the software product, a
permanent key is provided which results in replacement of the preselected
portion to the file in lieu of the decryption block. Once the decryption
block is removed, the encrypted file may be decrypted to allow
unrestricted use by the purchaser. Preferably, the file management program
is utilized to intercept files as they are called by the operating system,
and to utilize the decryption block to derive a name for a key file and
read the called file. The decryption block of each encrypted file includes
a validation segment which is decrypted by the file management program and
compared to a selected segment for the called file to determine whether
the key can decrypt the particular file. If the decrypted validation
segment matches a known clear text validation segment, the file is then
dynamically decrypted as it is passed for further processing.
It is yet another objective of the present invention to provide a method
and apparatus in a data processing system for securing access to
particular files which are stored in a computer-accessible memory media. A
file management program is provided as an operating system component of a
data processing system. In a computer-accessible memory media available to
the data processing system, at least one encrypted file and one
unencrypted file are stored. The encrypted file has associated with it an
unencrypted security stub which is at least partially composed of
executable code. The file management program is utilized to monitor the
data processing system calls for a called file stored in the computer
accessible memory media, to determine whether the called file has an
associated unencrypted security stub, and to process the called file in a
particular manner dependent upon whether or not the called file has an
associated unencrypted security stub. More particularly, if it is
determined that the called file has no associated unencrypted security
stub, the called file is allowed to be processed. However, if it is
determined that the called file has an associated unencrypted security
stub, it must be examined before a decision can be made about whether or
not to allow it to be processed. First, the unencrypted security stub is
examined in order to obtain information which allows decryption operations
to be performed. Then, the decryption operations are performed. Finally,
the called file is allowed to pass for further processing. Preferably, the
called file is dynamically decrypted as it is passed to the operating
system for processing. Also, the unencrypted security stub is separated
from the called file prior to execution of the called file. However, if
the unencrypted security stub accidentally remains attached to the called
file, processing operations must be stopped, and a message must be posted
in order to prevent the processor from becoming locked-up.
It is still another objective of the present invention to provide a method
and apparatus for distributing a software object from a source to a user.
A computer-accessible memory media is distributed from the source to a
potential user. It includes a software object which is encrypted utilizing
a predetermined encryption engine and a long-lived and secret key. An
interface program is provided which facilitates interaction between the
source and the user. The interface program includes machine identification
module which generates a machine identification utilizing at least on
predetermined attribute of the user-controlled data processing system. It
also further includes a long-lived and secret key generator which receives
as an input at least a temporary key and produces as an output a
long-lived and secret key. A validation module is provided which tests
temporary key determined its validity. The source of the software object
maintains a temporary key generator which receives as an input at least a
machine identification and produces an output of the temporary key. An
interface program is loaded onto the user-controlled data processing
system. The machine identification module is utilized to examine at least
one predetermined attribute of the user-controlled data processing system
and to generate the machine identification. During interaction between the
source and the user, the machine identification is communicated over an
insecure communication channel. At the source of the software object, the
temporary key is generated utilizing the machine identification (and other
information) as an input to the temporary key generator. During
interaction between the source and the user, the temporary key is
communicated, typically over an insecure communication channel. Next, the
validation module is utilized to determine the validity of the temporary
key. The long-lived and secret key generator is then utilized to receive
the temporary key and generate the long-lived and secret key in order to
decrypt and temporarily gain access to the software object. The user is
also provided with an import module and an export module which allow for
the utilization of portable memory media to transfer the encrypted
software object, a key file, and a machine identification file from one
machine in a distributed data processing system to another machine in the
distributed data processing system, while allowing the temporary key to
allow temporary trial access to the software object.
The above as well as additional objectives, features, and advantages of the
present invention will become apparent in the following detailed written
description.
BRIEF DESCRIPTION OF THE DRAWINGS
The novel features believed characteristic of the invention are set forth
in the appended claims. The invention itself, however, as well as a
preferred mode of use, further objectives and advantages thereof, will
best be understood by reference to the following detailed description of
an illustrative embodiment when read in conjunction with the accompanying
drawings, wherein:
FIG. 1 is a pictorial representation of a stand-alone data processing
system, a telephone, and a variety of computer-accessible memory media all
of which may be utilized in the implementation of the preferred technique
of enabling trial period use of software products;
FIG. 2 is a pictorial representation of a distributed data processing
system which may utilize the technique of the present invention of
enabling trial period use of software products;
FIG. 3 is a block diagram representation of data processing system
attributes which may be utilized to generate a machine identification, in
accordance with the present invention;
FIG. 4 is a block diagram depiction of a routine for encrypting software
objects;
FIG. 5 is a pictorial representation of the exchange of information between
a source (a software vendor) and a user (a customer), in accordance with
the teachings of the present invention;
FIG. 6 is a flowchart representation of the broad steps employed in
building a user interface shell, in accordance with the present invention;
FIG. 7 is a flowchart representation of vendor and customer interaction in
accordance with the present invention;
FIGS. 8, 9, 10a, and 10b depict user interface screens which facilitate
trial period operations in accordance with the present invention;
FIG. 11 depicts a user interface which is used to initiate a temporary
access key;
FIG. 12 is a block diagram depiction of the preferred technique of
generating a machine identification;
FIG. 13 is a block diagram depiction of an encryption operation which is
utilized to encrypt a machine identification, in accordance with the
present invention;
FIG. 14 is a block diagram representation of the preferred technique for
generating a product key, in accordance with the present invention;
FIG. 15 is a block diagram representation of a preferred technique
utilizing a temporary product key to generate a real key which can be
utilized to decrypt one or more software objects;
FIGS. 16 and 17 depict a preferred technique of validating the real key
which is derived in accordance with the block diagram of FIG. 15;
FIG. 18 is a block diagram depiction of the preferred routine for
encyrpting a key file which contains information including a temporary
product key;
FIG. 19 is a block diagram depiction of the preferred technique of handling
an encryption header in an encrypted file, in accordance with the present
invention;
FIG. 20 depicts in block diagram form the technique of utilizing a
plurality of inputs in the user-controlled data processing system to
derive the real key which may be utilized to decrypt an encrypted software
object;
FIG. 21 depicts a decryption operation utilizing the real key derived in
accordance with FIG. 20;
FIG. 22 is a block diagram depiction of a comparison operation which is
utilized to determine the validity of the real key;
FIG. 23 depicts a decryption operation utilizing a validated real key;
FIGS. 24, 25, 26, 27, 28 depict the utilization of an encryption header in
accordance with the present invention;
FIGS. 29A and 29B are a flowchart representation of the preferred technique
of providing a trial period of use for an encrypted software object;
FIGS. 30 and 31 depict export and import operations which may be utilized
to perform trial period use operations in a distributed data processing
system;
FIGS. 32 and 33 provide an alternative view of the import and export
operations which are depicted in FIGS. 30 and 31;
FIGS. 34 and 35 provide a block diagram depiction of an alternative
technique for performing an export/import operation.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
The method and apparatus of the present invention for enabling trail period
use of software products can be utilized in stand-alone PCs such as that
depicted in FIG. 1, or in distributed data processing systems, such as
that depicted in FIG. 2. In either event, temporary trial period access to
one or more software products depends upon utilization of the trial
product on a particular data processing system with particular data
processing system attributes. This is accomplished by encrypting the trial
software product utilizing a temporary access key which is based upon one
or more data processing system attributes. FIG. 3 graphically depicts a
plurality of system configuration attributes, which may be utilized in
developing a temporary access key, as will be described in greater detail
herebelow. To begin with, the environment of the stand-alone data
processing system of FIG. 1, and the distributed data processing system of
FIG. 2 will be described in detail, followed by a description of
particular system configuration attributes which are depicted in FIG. 3.
With reference now to the figures and in particular with reference to FIG.
1, there is depicted a pictorial representation of data processing system
10 which may be programmed in accordance with the present invention. As
may be seen, data processing system 10 includes processor 12 which
preferably includes a graphics processor, memory device and central
processor (not shown). Coupled to processor 12 is video display 16 which
may be implemented utilizing either a color or monochromatic monitor, in a
manner well known in the art. Also coupled to processor 12 is keyboard 14.
Keyboard 14 preferably comprises a standard computer keyboard which is
coupled to the processor by means of a cable.
Also coupled to processor 12 is a graphical pointing device, such as mouse
20. Mouse 20 is coupled to processor 12, in a manner well known in the
art, via a cable. As is shown, mouse 20 may include left button 24, and
right button 26, each of which may be depressed, or "clicked", to provide
command and control signals to data processing system 10. While the
disclosed embodiment of the present invention utilizes a mouse, those
skilled in the art will appreciate that any graphical pointing device such
as a light pen or touch sensitive screen may be utilized to implement the
method of the present invention. Upon reference to the foregoing, those
skilled in the art will appreciate that data processing system 10 may be
implemented utilizing a so-called personal computer, such as the Model 80
PS/2 computer manufactured by International Business Machines Corporation
of Armonk, N.Y.
While the present invention may be utilized in stand-alone data processing
systems, it may also be utilized in a distributed data processing system,
provided the import and export routines of the present invention are
utilized to transfer one or more encrypted files, their encrypted key
files, and associated file management programs through a portable memory
media (such as diskettes or tapes) between particular data processing
units within the distributed data processing system. While the import and
export routines of the present invention will be described in greater
detail herebelow, it is important that a basic distributed data processing
system be described and understood.
FIG. 3 provides a block diagram depiction of a plurality of data processing
system attributes which may be utilized to uniquely identify a particular
data processing system (whether a stand-alone or a node in a distributed
data processing system), and which further can be utilized to generate in
the machine identification value which is utilized to derive or generate a
temporary access product key which may be utilized to gain access to an
encrypted product for a particular predefined trial interval. A data
processing system may include a particular system bus 60 architecture, a
particular memory controller 74, bus controller 76, interrupt controller
78, keyboard mouse controller 80, DMA controller 66, VGA video controller
82, parallel controller 84, serial controller 86, diskette controller 88,
and disk controller 82. Additionally, a plurality of empty or occupied
slots 106 may be used to identify the particular data processing system.
Each particular data processing system may have attributes which may be
derived from RAM 70, ROM 68, or CMOS RAM 72. End devices such as printer
96, monitor 94, mouse 92, keyboard 90, diskette 100, or disk drive 104 may
be utilized to derive one or more attributes of the data processing system
which may be processed in a predetermined manner to derive a machine
identification value. The derivation of the machine identification value
will be described in greater detail below. The present invention is
directed to an efficient method of distributing software programs to users
which would provide to them a means to try the program before obtaining
(by purchasing) a license for it. In accordance with this concept,
complete programs are distributed to potential users on
computer-accessible memory media such as diskettes or CD-ROMs. The concept
is to generate keys that allow the user to access the programs from the
distributed media. In this environment, a file management program provides
a plurality of interfaces which allows the user to browse the different
products. The interfaces allow ordering and unlocking of the software
products contained on the distributed media. Unlocking of the software
product is accomplished by the reception, validation, and recording of a
temporary access (decryption) key.
The file management program is resident in the user-controlled data
processing system and becomes a part of the operating system in the user's
computer. An example of such a resident program (in the PC DOS
environment) would be a resident program TSR, for "terminate and stay
resident" operations, that intercepts and handles DOS file input and
output operations. When a temporary access key is provided to a user,
system files are checked to see if this file has been used in a trial mode
of operation before. If the product has never been used in a trial mode of
operation, the temporary key is saved. Once the trial mode of operation
key exists, an encrypted application can only be run if it is initiated by
the file management program. The file management program will recognize
that the application is encrypted and that a valid trial mode of operation
key exists for the particular operation. A valid trial mode of application
key is one that has not expired. The trial mode of operation may be
defined by either a timer, or a counter. A timer can be used to count down
a particular predefined period (such as thirty days); alternatively, the
counter can be used to decrement through a predefined number of trial
"sessions" which are allowed during the trial mode of operation. If the
key is valid, the file management program communicates directly with the
TSR and enables the trial mode of operation for a particular encrypted
application. The file management program then kicks off the encrypted
application. The code which is resident in the operating system of the
user-controlled data processing system maintains control over the
operating system. It monitors the use of the trial mode of operation keys
to allow files to be decrypted and loaded into memory, but prevents the
encrypted files from being decrypted and copied to media. This is done by
using the operating system to determine which applications are trying to
access the data and only allowing the applications that have permission to
access the data to do so.
FIG. 4 is a block diagram depiction of a routine for encrypting software
objects. The binary characters which make up software object 201 are
supplied as an input to encryption engine 205. Real key 203 is utilized as
an encryption key in encryption engine 205. The output of encryption
engine 205 is an encrypted software object 207. Encryption engine 205 may
be any conventional encryption operation such as the published and well
known DES algorithm; alternatively, the encryption engine 205 may be an
exclusive-OR operation which randomizes software object 201.
FIG. 5 is a pictorial representation of the exchange of information between
a source 209 (a software vendor) and a user 211 (a potential customer, in
accordance with the teachings of the present invention. The arrows between
source 209 and user 211 represent exchanges of objects or information
between vendor 209 and 211. In the exchange of flow 203,
computer-accessible memory media is directed from source 209 to user 211.
This transfer may occur by US mail delivery, courier delivery, express
service delivery, or by delivery through printed publications such as
books and magazines. Alternatively, an electronic document may be
transferred from source 209 to user 211 utilizing electronic mail or other
transmission techniques. In flow 215, user-specific information,
preferably including a unique machine identification number which
identifies the data processing system of user 211, is transferred from
user 211 to source 209 via an insecure communication channel; typically,
this information is exchanged over the telephone, but may be passed
utilizing electronic mail or other communication techniques. In flow 217,
source 209 provides a product key to user 211. The product key allows the
product contained in the memory media to be temporarily accessed for a
prescribed and predefined interval. This interval is considered to be a
"trial" interval during which user 211 may become familiar with the
software and make a determination on whether or not he or she wishes to
purchase the software product. User 211 must communicate additionally with
source 209 in order to obtain permanent access to the software product.
The product key allows user 211 to obtain access to the software product
for a particular predefined time interval, or for a particular number of
predefined "sessions." As time passes, the user's clock or counter runs
down. At the termination of the trial period, further access is denied.
Therefore, the user 211 must take affirmative steps to contact source 209
and purchase a permanent key which is communicated to user 211 and which
permanently unlocks a product to allow unrestricted access to the software
product.
The communication between source 209 and user 211 is facilitated by a user
interface. The creation of the interface is depicted in flowchart form in
FIG. 6. The process begins at software block 219, and continues at
software block 221, wherein source 209 makes language and locale sections
which will determine the language and currencies utilized in the interlace
which facilitates implementation of the trial period use of the software
products. A plurality of software products may be bundled together and
delivered to user 211 on a single computer-accessible memory media.
Therefore, in accordance with software block 223, source 209 must make a
determination as to the programs which will be made available on a trial
basis on the computer-accessible memory media, and the appropriate fields
are completed, in accordance with software block 223. Next, in accordance
with software block 225, the programs are functionally limited or
encrypted. Then, in accordance with software block 227, the shell is
loaded along with the computer program products onto a computer-accessible
memory media such as a diskette or CD ROM. The process ends at software
block 229.
FIG. 7 is a flowchart representation of vendor and customer interaction in
accordance with the present invention. The flow begins at software block
231, and continues at step 233, wherein computer-accessible memory media
are distributed to users for a try-and-buy trial interval. Then, in
accordance with step 235, the file management program is loaded from the
computer-accessible memory media onto a user-controlled data processing
system for execution. The file management program includes a plurality of
interface screens which facilitate interaction between the vendor and the
customer, which and which set forth the options available to the customer.
Thus, in accordance with step 237, the file management program allows
browsing and displays appropriate user interfaces. Next, in accordance
with step 239, the customer and the vendor interact, typically over the
telephone or electronic mail, to allow the vendor to gather information
about the customer and to distribute a temporary key which allows access
to one or more software products which are contained on the
computer-accessible memory media for a predefined trial interval.
Typically, the interval will be defined by an internal clock, or by a
counter which keeps track of the number of sessions the potential
purchaser has with a particular software product or products. Step 241
represents the allowance of the trial interval use. Then, in accordance
with software block 243, the file management program monitors and oversees
all input and output calls in the data processing system to prevent
unauthorized use of the encrypted software products contained on the
computer-accessible memory media. In the preferred embodiment of the
present invention, the file management program monitors for calls to
encrypted files, and then determines whether access should be allowed or
denied before the file is passed for further processing. The customer can
assess the software product and determine whether he or she desires to
purchase it. If a decision is made to purchase the product, the customer
must interact once again with the vendor, and the vendor must deliver to
the customer a permanent key, as is set forth in step 245. The process
ends when the customer receives the permanent key, decrypts the one or
more software products that he or she has purchased, and is then allowed
ordinary and unrestricted access to the software products.
FIGS. 8, 9, 10a, and 10b depict user interface screens which facilitate
trial period operations in accordance with the present invention. FIG. 8
depicts an order form user interface 249 which is displayed when the
customer selects a "view order" option from another window. The order form
user interface 249 includes a title bar 251 which identifies the software
vendor and provides a telephone number to facilitate interaction between
the potential customer and the vendor. An order form field 255 is provided
which identifies one or more software products which may be examined
during a trial interval period of operation. A plurality of subfields are
provided including quantity subfield 259, item subfield 257, description
subfield 260, and price subfield 253. Delete button 261 allows the
potential customer to delete items from the order form field. Subtotal
field 263 provides a subtotal of the prices for the ordered software.
Payment method icons 265 identify the acceptable forms of payment. Of
course, a potential user may utilize the telephone number to directly
contact the vendor and purchase one or more software products;
alternatively, the user may select one or more software products for a
trial period mode of operation, during which a software product is
examined to determine its adequacy. A plurality of function icons 267 are
provided at the lowermost portion of order form interface 249. These
include a close icon, fax icon, mail icon, print icon, unlock icon, and
help icon. The user may utilize a graphical pointing device in a
conventional point-and-click operation to select one or more of these
opera | | |