|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of secure software rental
systems.
2. Background Art
The use of personal computers (PC) and communication modems (CM) has
increased significantly in recent years and is expected to continue to
grow. Using electronic mail capabilities, PC users communicate more
frequently amongst themselves. Additionally, centralized computer systems
have evolved allowing PC users to access large databases. Such databases
include various information libraries: news, weather, sports, stock
markets, entertainment, education, and so on. Access to such databases is
commonly controlled so that users must subscribe to the centralized
computer systems. In a typical session, the user connects to the
centralized computer system using the PC, transfers information to the
user's PC, and is further usable without being connected to the database
of the centralized computer system. The centralized computer system
enables a large number of users to concurrently access the database of the
central computer system.
While centralized computer systems frequently provide access to information
databases, such systems less frequently provide access to copyrighted
application software. The primary reason for not providing copyrighted
application software from databases of centralized computer systems is due
to a lack of tamper-proof security methods and apparatuses for preventing
unauthorized copying of copyrighted application software. Prior art
systems do not provide a comprehensive method or apparatus for permitting
the rental of copyrighted application software without having any
possibility of the copyrighted application software being copied and used
without being connected to the database.
A prior art system, disclosed in U.S. Pat. Nos. 4,796,181 and 5,047,928
issued to John D. Wiedemer on Jan. 3, 1989 and Sep. 10, 1991,
respectively, implements a computer software security and billing system
that enciphers an application program using a numeric key. The computer of
the user requires a hardware security device and a removable billing
device. Both devices carry unique codes. The security device containing
the billing device is coupled to the user's computer. A security program
accesses the application software and writes billing information into the
billing device. The billing module must be periodically replaced so the
user can be charged for the software usage. Thus, the system of Wiedemer
is directed to a security device including a billing device that is
installed in a user's computer for enciphering/deciphering software and
billing for usage of the software. This system disadvantageously requires
special hardware for billing use of application software and does not use
a dynamic password for preventing unauthorized use of application
software.
Another prior art system, disclosed in U.S. Pat. No. 4,999,806 issued to
Fred Chernow, et al., on Mar. 12, 1991, is a system for distributing
software by telephone. A central station accepts credit card information,
transmits an acceptance code to a caller, and terminates the call. The
central station first verifies the caller's credit card, and then calls
back the caller. The transaction is continued after receiving the
acceptance code. The central station transfers a control transfer program
and initialization program to the caller. The caller (or purchaser)
executes the initialization program so that the central station can
control the caller's computer. The control transfer program then transfers
a protection program for ensuring that a copying program is not resident
in the memory of the caller's computer. A storing program is then
transferred to the caller's computer for modifying the purchased program
for storage on the caller's computer. The purchased program is then
transferred to the caller's computer. During execution of the system for
distributing software, the various transmitted programs are erased so that
only a copy of the purchased software remains on the caller's computer.
Thus, the system of Chernow, et al., is directed to a system of
transmitting copy protected versions of software to a caller's computer
for a limited amount of time similar to a demonstration. The system of
Chernow et al., is similar to copy protection of software and does not use
a dynamic password for preventing unauthorized use of application
software.
A further prior art system, disclosed in U.S. Pat. No. 5,138,712 issued to
John R. Corbin on Aug. 11, 1992, implements a method and apparatus for
licensing software on a computer network. Encrypted license information is
stored in a license token, and is sorted in a database controlled by a
license server. To access a program, the license server locates the
correct license token for a software application and transmits the license
token to a license library. The application has an attached application
specific license access module that decodes the licensing token. The
license information is verified by license library routines coupled to the
software application. The license is then checked out and the license
token is updated. The application specific license access module encodes
the updated license token before returning it to the license server. Thus,
only a single application can be breached by unauthorized cracking of an
encrypted application. Thus, the system of Corbin is directed to providing
network protection against unauthorized use of software in a computer
network.
Thus, the prior art is not able to provide a dynamic secure software rental
system.
SUMMARY OF THE PRESENT INVENTION
The present invention is a system for providing secure access and execution
of application software stored on a first computer by a second computer
using a communication device while a communication link is maintained
between the first and second computers. More specifically, the present
invention is a secure software rental system. The system enables a user in
a remote location using a personal computer and a modem to connect to a
central rental facility, transfer application software from the central
rental facility to the remote computer, and execute the application
software on the remote computer while electronically connected to the
central rental facility. When the communication link between the central
and remote computers is interrupted or terminated, the application
software no longer executes on the remote computer. This is accomplished
by integrating header software with the application software according to
the present invention.
The application software stored on the central rental facility is
integrated with the header software to provide a security feature of the
present invention. The use of header software allows the user to only
execute the application software while the user is electronically
connected to the central rental facility continuously. This prevents the
user from copying the application software to a storage device of the
remote computer, and subsequently executing the application software after
interrupting or terminating the communications link between the central
and remote computers.
The system of the present invention comprises a plurality of remote
computers, communication modems, a multiuser communication modem, a
database computer, and a memory system. The user connects the remote
computer to the database of the central rental facility using methods
well-known in the art of computer communications. However, the central
rental facility requires the user to provide a unique user identification
password to access the system. Each user of the system is allocated a
unique user identification password.
A plurality of users having remote computers are able to communicate with
the central rental facility using multiuser communication modem coupled to
the central rental facility. The database computer comprises a multiuser,
multitasking controller, password validation modules, user registration
databases, and memory system. When a user transmits a password to the
central rental facility, the central rental facility activates the user
registration database through the user password module. The user
registration database contains information about each user that is stored
in a separate file for each user. The user validation module compares the
password with the password stored in the user registration database for
the user. When the password is validated, the controller of the central
rental facility establishes continuous connection with the remote computer
of the user. Otherwise, communications with the remote computer are
terminated.
When the continuous connection between the central rental facility and the
remote computer is established, the user is able to access rental
application software database through a directory request module of the
central rental facility. The multiuser controller of the central rental
facility initiates the interface between the user and the rental
application software database. The user is then able to select application
software from the rental application software database. When the user
selects a software application, the multiuser controller of the central
rental facility transfers the software application to the remote computer
using a file transfer module. The software is transmitted through the
multiuser communication modem of the central rental facility and the
communication modem of the remote computer to the user.
When the application software is transferred to the remote computer, the
central rental facility registers a transfer time. The transfer time is
temporarily stored in the user file for transfer of the application
software. The temporary storage on the central rental facility is only
maintained during the time that the user is continuously connected to the
central rental facility. The multiuser controller of the central rental
facility stores the transfer time of each application software that the
user transfers in a separate file. The multiuser controller also transmits
a message containing the transfer time and an identification number for
each transmitted application software to the remote computer. The message
is encrypted by the central rental facility before transfer, and
transmission of the message is accomplished transparently to the user. The
user is then able to execute the application software.
The application software executes normally on the remote computer without
any apparent modification of the application software. However, each
application software of the rental application software database is
modified to include header software. The application software is coupled
to the header software by interface parameters. When executing the
application software, the header software is an integral part of the
application software and is executed as part of the initialization process
for the application software. The interface parameters are adapted to the
application software although the header software is the same for all
application software. The internal functions of the header software
includes a rental security manager, user processor clock interface, user
operating system interface, and user display interface. The header
software primarily carries out dynamic password verification, which is an
asynchronous process with respect to the functions of the application
software and is carried out at finite intervals of time.
The rental security manager performs functions including interfacing with
the communication manager that in turn interfaces with the communication
modem, interfacing with the controller of the central rental facility, and
interfacing with the application software. Also, the rental security
manager generates passwords, correlate passwords, executes authorization
verification, continues authorization verification, and terminates
execution of the application software. The user processor clock interface
obtains the current time from the user processor at finite intervals and
provides it to the rental security manager. The user operating system
interface determines the appropriate interface parameters for executing
the application software on the operating system on the remote computer.
The user display interface generates and provides messages to the user as
necessary.
When the user executes the application software, the rental security
manager initiates authorization verification. The authorization
verification process begins by obtaining the time through the user
processor clock interface. The rental security manager decrypts the
authorization verification message containing the rental application
software transfer time from the central rental facility. It determines the
time difference between the transfer time from the central rental facility
and the user processor clock time of the remote computer. The rental
security manager generates a new authorization verification password using
the time difference and the user identification password. It stores the
new authorization verification password temporarily in a store of the
rental security manager. The rental security manager then prepares a
message containing the clock time, the user identification password, and
identification number of the application software. The rental security
manager encrypts the message, and transfers it to the central rental
facility.
The multiuser controller of the central rental facility decrypts the
transmitted message. It then computes a time difference by differencing
the user processor clock time and the transfer time. The transfer time was
stored previously in the user file for the application software. The
multiuser controller generates an authorization verification password
using the time difference computed by the controller and the decrypted
user identification password. The multiuser controller creates a new
message containing the processor clock time, the user identification
password, and the authorization verification password. The message is
encrypted by the multiuser controller, and transmitted to the remote
computer.
The rental security manager decrypts the received message. The decrypted
message is compared against the stored user processor clock time, the user
identification password, and the authorization verification password using
the password correlation module. When the password correlation module
completes successfully, the authorization verification process is
completed and the application software continues to execute. Otherwise,
the authorization verification fails and termination of the executing
application software is initiated. The user is notified of the
authorization verification failure. The system performs the authorization
verification process three times consecutively when failures occur before
terminating the application software execution. The above listed steps are
repeated at fixed time intervals during execution of the application
software. The authorization verification process occurs transparently to
the user when successful.
The authorization verification method thus prevents the user from
circumventing the rental scheme in three ways. In one case, it prevents
the user from transferring the application software to the remote computer
and disconnecting the communication link while executing the application
software. This attempt fails because the rental security manager is unable
to communicate with the central rental facility. In another case, the
authorization verification method prevents the user from copying the
application software to a storage device, disconnecting the communication
link, and re-executing the application software. This attempt fails
because the transfer time is not available or the rental security manager
is unable to communicate with the central rental facility. In yet another
case, it prevents the user from establishing a communication link, without
responding to any inquiry from the database computer, and re-executing a
previously copied version of the application software that was stored on
the remote computer. This attempt fails because the previous transfer time
(or a CD-ROM time in the embodiment described below) cannot be found on
the central rental facility.
In one embodiment, the invention comprises downloading an application
software from a local storage device such as a CD-ROM instead of
downloading from the central rental facility. However, the user still
needs to establish communication with and obtain authorization from the
central rental facility for successful execution of the application
software. This results in saving the time required to download the
application software from the central rental facility while at the same
time maintaining a secure software rental system.
Thus, the present invention provides a secure system for allowing remote
execution of rental application software and monitoring the time period
that the application software is executed. The system also allows a single
user to access more than one application software while independently
monitoring each execution of application software using the multiuser,
multitasking controller of the central rental facility. The multiuser,
multitasking controller of the central rental facility is also capable of
interfacing with a plurality of users concurrently.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram illustrating a remote user computer system and a
central rental facility;
FIG. 2 is a diagram further illustrating the remote user computer system
and the central rental facility;
FIG. 3 is a diagram illustrating a rental application comprising an
application software and a header according to the present invention;
FIG. 4 is a flow diagram illustrating the present invention for preventing
execution of a rental application stored in the user computer and the user
computer is not connected to the central rental facility;
FIG. 5 is a flow diagram further illustrating FIG. 4;
FIG. 6 is a flow diagram illustrating the present invention when a rental
application stored on the storage media of the user computer is executed
after connecting to the database computer without transferring the rental
application from the database computer and without responding to any
inquiry from the database computer;
FIGS. 7A-7B are flow diagrams further illustrating FIG. 6;
FIG. 8 is a flow diagram illustrating transfer of a communication manager
from the central rental facility to the remote user computer system;
FIG. 9 is a flow diagram illustrating the step 1118 of FIG. 11 of the
present invention;
FIGS. 10A-10D are flow diagrams illustrating the asynchronous header
password verification process of the present invention;
FIG. 11 is a flow diagram illustrating the present invention for providing
a secure software rental system when the application software is
downloaded from a central rental facility;
FIGS. 12 is a diagram illustrating a central rental facility and a remote
user computer system with a local storage device; and
FIG. 13 is a flow diagram illustrating the present invention for providing
a secure software rental system when the application software is
downloaded from a local storage device.
DETAILED DESCRIPTION OF THE PRESENT INVENTION
A method and apparatus for providing a secure software rental system is
described. In the following description, numerous specific details, such
as number and nature of messages, communication applications, etc., are
described in detail in order to provide a more thorough description of the
present invention. It will be apparent, however, to one skilled in the
art, that the present invention may be practiced without these specific
details. In other instances, well-known features have not been described
in detail so as not to unnecessarily obscure the present invention.
The Secure Software Rental System and a User Computer
FIG. 1 is a diagram illustrating a remote user computer system 150
connected to a central rental facility 180 by electronic communications
path 136A for securely renting software. The remote user computer system
150 includes user computer 102, a display device 104, a keyboard 114, and
a communication modem 106. The central rental facility 180 includes
database computer 122, a display device 124, a keyboard 128, and a
multiuser communication modem 126. Coupling 112 connects user computer 102
to display 104 for providing output to a user. Coupling 114 connects
keyboard 108 to user computer 102 for providing input from a user. Modem
106 is connected to user computer 102 by coupling 110.
Modem 106 of remote user computer system 150 is coupled to multiuser
communication modem 126 by communication path 136A. In the preferred
embodiment of the present invention, communication path 136A is a
telephone transmission line. The present invention is not limited to a
telephone transmission line, and other communication paths may be utilized
without departing from the scope of the present invention. Multiuser modem
126 is coupled to a plurality of communication paths 136A-136C for
establishing communications with a plurality of remote user computer
systems concurrently. Multiuser modem 126 is connected to database
computer 122 by coupling 120. Coupling 132 connects database computer 122
to display 124 for providing output to an operator. Coupling 114 connects
keyboard 128 to database computer 122 for providing input from an
operator. While a single keyboard 128 and display device 124 are
illustrated in FIG. 1, it should be apparent to a person skilled in the
art that the present invention may be practiced with a plurality of such
devices coupled to the database computer.
The user computer 102 of the remote user computer system 150 comprises a
processing means coupled to main memory (e.g., random access memory RAM
and/or read only memory ROM), secondary storage means (e.g., media storage
systems and/or CDROM), and input/output ports for communicating with other
devices including keyboards, printers, displays, etc. As is well-known in
the art, the user computer system 150 may further include printing devices
for providing hard copy output from the user computer 102, CD-ROM drives
for storing information including multimedia information, scanning devices
for providing electronic images as input, and manual input devices (e.g.,
mice, pen systems, etc.) for providing input. The database computer 122 is
a multitasking, multiuser computer capable of executing a plurality of
processes in parallel. In the preferred embodiment of the present
invention, a file server workstation operating the Windows operating
environment is used as the database computer 122. However, the present
invention may be implemented using a mainframe computer or a plurality of
computers connected and operated in parallel for the database computer
122. Similarly, the central rental facility may further comprise printing
devices, CD-ROM drives, scanning devices, manual input devices, etc.
In the present invention, a user accesses the central rental facility 180
using the remote user computer system 150 illustrated in FIG. 1. The
remote user computer system 150 comprises the elements necessary for
accessing the central rental facility 180. The user connects to the
central rental facility 180 using communication methods well-known in the
art for connecting to other database systems (e.g., Compuserve, etc.). The
secure software rental system of the present invention requires that each
user be assigned or allocated a unique user identification password. The
user identification password is necessary for accessing the central rental
facility 180. When electronically connected to the remote user computer
system 150 using the modem 106, the central rental facility 180 requests
the user to provide the user identification password. The user inputs the
user identification password through the keyboard 108 to user computer
102. User computer 102 transmits the user identification password to the
central rental facility using modem 106. The database computer 122 of
central rental facility 180 receives the user identification password
through multiuser modem 126. When the database computer 122 receives the
user identification password, the database computer 122, as illustrated in
FIG. 2, retrieves the user registration database 212 using electronic
connection 260 from system memory/storage 220.
Modules of the Central Rental Facility
In FIG. 2, the user computer 102 comprises a rental application 284 and
communication manager 280. The database computer 122 includes
communication manager 202, multiuser controller 222, a plurality of
control modules 204-210, databases 212-214, and system memory/storage 220.
The user computer 102 is coupled to the database computer 122 through the
multiuser modem 126 of the central rental facility 180, as illustrated in
FIG. 1. The rental application 284 comprising header 284A and application
284B is coupled to communication manager 280 by connection 282.
Communication manager 280 is coupled to modem 106 by connection 110. Modem
106 of the remote user computer system 150 is coupled to multiuser modem
126 through communication path 136A.
Multiuser modem 126 is coupled to communication manager 202 by connection
120. Communication manager 202 is coupled to multiuser controller 222 by
connection 200. Multiuser controller 222 is coupled to user password
validation module 204, directory request module 206, file transfer module
208, and user status module 210 by connections 230, 232, 234, and 236,
respectively. The user password validation module is connected to user
registration database 212 by coupling 240. The directory request module
206 is connected to the rental application database 214 by coupling 242.
The file transfer module 208 is coupled to the rental application database
214 and user memory 216 by coupling 244 and 246, respectively. The user
status module 210 is connected to user memory 216 and transaction log
database 218 by coupling 248 and 250, respectively. User registration
database 212, rental application database 214, user memory 216, and
transaction log database 218 to system memory/storage 220 by connections
260, 262, 264, and 266, respectively.
The central rental facility 180 is operated by the multiuser controller 222
that is capable of processing a plurality of users and interfaces with
various subsystem elements including multiuser modem 126. Initially, the
multiuser controller 222 recognizes that the user has transmitted a user
identification password to the central rental facility 180, thereby
causing the controller 222 to activate the user registration database 212
through the user password validation module 204. The user registration
database 212 contains stored information regarding the identifications of
authorized users of the secure software rental system, as well as other
relevant information regarding users, in an identifiable file for each
user. The user identification password may comprise, up to a predetermined
number of characters, any combination of letters of the alphabet and
numbers. For example, the Social Security number of the user may be used
as the user identification password.
The password validation module 204 performs a check to determine whether or
not the transmitted user identification password is authorized by first
retrieving and then searching the user registration database 212. When the
search fails to locate the user in the user registration database 212, the
user password validation module 204 notifies the multiuser controller 222
of the failure. The password validation module 204 transmits the status of
the search to controller 222 characterizing the user identification
password transfer to the central rental facility 180 as an unauthorized
access. The multiuser controller 222 transmits an appropriate message to
the remote user computer system 150 that is displayed on its display 104
(shown in FIG. 1), and the central rental facility 180 terminates the
connection to the remote user computer system 150.
When the search performed by the password validation module 204
successfully locates the user in the user registration database 212, the
user password validation module 204 transmits validity information to the
multiuser controller 222. The multiuser controller 222 establishes
continuous connection between the central rental facility 180 and the
remote user computer system 150 using communication manager 202. This
enables the user to directly access the database of the central rental
facility 180 (including the rental application database 214) using the
remote user computer system 150. The multiuser controller 222 initiates
the interface between the remote user computer system 150 and the rental
application database 214 by a series of queries from the multiuser
controller 222 to the user and by receiving appropriate responses from the
user.
The user selects an application software by reviewing the directory of the
rental application database 214 using the directory request module 206. In
response to an appropriate user command, the multiuser controller 222
transfers the selected application software from the rental application
database 214 using the file transfer module. The file transfer module is
electronically coupled to the rental application database 214 by
connection 244, and it transfers the selected application software from
the rental application database through multiuser communication modem 126
to the remote user computer system 150. The multiuser controller 222
transmits the selected application software by means of the communication
manager 202 through the multiuser modem 126 across communication path 136A
to modem 106 that is controlled by communication manager 280 of the user
computer 102.
At the time of the application software transfer to the remote user
computer system 150, the multiuser controller 222 registers a transfer
time for the application software obtained from the timer clock of the
database computer 122. In the preferred embodiment of the present
invention, the time of the database computer is measure to a precision of
nanoseconds. The transfer time is temporarily stored in the user file of
the user registration database 212. The temporarily stored transfer time
is kept until the user terminates the communication link between the
remote user computer system 150 and the central rental facility 180. If
the user transfers another software application from the rental
application database 214 to the remote user computer system 150 during the
same time period that the user has already transferred an application
software from the central rental facility 180, the multiuser controller
222 registers and stores the transfer time of the latter application
software. In this manner, during a rental session when the remote user
computer system 150 is continuously connected to the central rental
facility 180, the multiuser controller 222 maintains a listing of transfer
times containing the transfer time of each application software.
In addition to the transfer time of the application software, the multiuser
controller transmits a message containing the transfer time of the
selected application software and an identification number for the
application. The information contained in the message is not displayed to
the user. The multiuser controller 222 of the database computer 122
includes encryption and decryption capabilities. Thus, the multiuser
controller 222 encrypts the message before transmitting it to the user
computer 102.
Once the transfer of an application software t | | |