|
Claims  |
|
|
What is claimed is:
1. A registration system for licensing execution of digital data in a use
mode, said digital data executable on a platform, said system including
local licensee unique ID generating means and remote licensee unique ID
generating means, said system further including mode switching means
operable on said platform which permits use of said digital data in said
use mode on said platform only if a licensee unique ID first generated by
said local licensee unique ID generating means has matched a licensee
unique ID subsequently generated by said remote licensee unique ID
generating means; and wherein said remote licensee unique ID generating
means comprises software executed on a platform which includes the
algorithm utilized by said local licensee unique ID generating means to
produce said licensee unique ID.
2. The system of claim 1, wherein said local licensee unique ID generating
means generates said local licensee unique ID by execution of a
registration algorithm which combines information in accordance with said
algorithm, said information uniquely descriptive of an intending licensee
of said digital data to be executed in said use mode.
3. The system of claim 2, wherein said mode switching means permits
operation of said digital data in said use mode in subsequent execution of
said digital data only if said licensee unique ID generated by said local
licensee unique ID generating means has not changed.
4. The system of claim 3, wherein said local licensee unique ID generating
means comprises part of said digital data when executed on said platform.
5. The system of claim 4, wherein said mode switching means comprises part
of said digital data when executed on said platform.
6. The system of claim 5, wherein the information utilized by said local
licensee unique ID generating means to produce said licensee unique ID
comprises prospective licensee details including at least one of payment
details, contact details and name.
7. The system of claim 1, said system further including platform unique ID
generating means, wherein said mode switching means will permit said
digital data to run in said use mode in subsequent execution of said
digital data on said platform only if said platform unique ID has not
changed.
8. The system of claim 7, wherein said platform unique ID generating means
comprises part of said digital data when executed on said platform.
9. The system of claim 8, wherein said platform unique ID generating means
utilizes hard disc or other platform information to determine said
platform unique ID.
10. The system of claim 1, wherein said platform comprises a computer
operating system environment.
11. The system of claim 10, wherein said digital data comprises a software
program adapted to run under said operating system environment.
12. A registration system attachable to software to be protected, said
registration system generating a security key from information input to
said software which uniquely identifies an intended registered user of
said software on a computer on which said software is to be installed; and
wherein said registration system is replicated at a registration authority
and used for the purposes of checking by the registration authority that
the information unique to the user is correctly entered at the time that
the security key is generated by the registration system.
13. The registration system of claim 12, wherein said security key is
generated by a registration number algorithm.
14. The registration system of claim 13, wherein said registration number
algorithm combines information entered by a prospective registered user
unique to that user with a serial number generated from information
provided by the environment in which the software to be protected is to
run.
15. The registration system of claim 12, wherein said registration system
checks at the time of boot of said software as to whether it is a first
boot of the software to be protected or a subsequent boot, and, if a
subsequent boot is detected, then environment and user details are
compared to determine whether the program reverts to a demonstration mode
and a new user registration procedure is to commence or a full version
run.
16. The registration system of claim 15, wherein said environment details
comprise at least one element which is not user-configurable on the
platform.
17. A method of control of distribution of software, said method comprising
providing mode-switching means associated with said software adapted to
switch said software between a fully enabled mode and a partly enabled or
demonstration mode, said method further comprising providing registration
key generating means adapted to generate a registration key which is a
function of information unique to an intending user of the software; said
mode-switching means switching said software into fully enabled mode only
if an enabling key provided to said mode-switching means by said intending
user at the time of registration of said software has matched identically
with said registration key; and wherein said enabling key is communicated
to said intending user at the time of registration of said software; said
enabling key generated by a third party means of operation of a duplicate
copy of said registration key generating means.
18. The method of claim 17, wherein said registration key is also a
function of the environment in which said software is installed.
19. A remote registration station incorporating remote licensee unique ID
generating means, said station forming part of a registration system for
licensing execution of digital data in a use mode, said digital data
executable on a platform, said system including local licensee unique ID
generating means, said system further including mode switching means
operable on said platform which permits use of said digital data in said
use mode on said platform only if a licensee unique ID generated by said
local licensee unique ID generating means has matched a licensee unique ID
generated by said remote licensee unique ID generating means; and wherein
said remote licensee unique ID generating means comprises software
executed on a platform which includes the algorithm utilized by said local
licensee unique ID generating means to produce said licensee unique ID.
20. A method of registration of digital data so as to enable execution of
said digital data in a use mode, said method comprising an intending
licensee operating a registration system for licensing execution of
digital data in a use mode, said digital data executable on a platform,
said system including local licensee unique ID generating means and remote
licensee unique ID generating means, said system further including mode
switching means operable on said platform which permits use of said
digital data in said use mode on said platform only if a licensee unique
ID generated by said local licensee unique ID generating means has matched
a licensee unique ID generated by said remote licensee unique ID
generating means; and wherein said remote licensee unique ID generating
means comprises software executed on a platform which includes the
algorithm utilized by said local licensee unique ID generating means to
produce said licensee unique ID. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to improvements in systems for software registration
and, more particularly, to improvements in arrangements where software is
transferable by media such as magnetic disks, CD ROMS and the like.
2. Description of the Related Art
Much commercially available software is provided at time of purchase (or
license) on a magnetic media, typically a floppy disk. Frequently the only
security feature attached to the software is a simple registration number
stored on the media. This registration number identifies that particular
copy of the software and it is often required at the time of installation
of the software onto any given computer that the installer must provide
the registration number independently to the installation routines.
However, such simple security arrangements for the distribution of software
on media suffer from at lest two disadvantages: (1) each copy of the
software made on any given media at the time of manufacture must include
an individual, unique number, programmed into the media, and (2) this
arrangement does not prevent copying of the software, once installed on
any given computer, to another computer by means of file transfer (as
opposed to reinstallation).
WO 92/09,160 to Tan Systems Corporation discloses a registration system
which is relatively sophisticated which relies for its security on a
requirement that an intending software licensee must obtain from a remote
location by file transfer significant and essential portions of the
program which the licensee desires to execute. The arrangement disclosed
in WO 92/09,160 suffers from a number of deficiencies including:
a. the shell program which the intending licensee initially executes
requires a unique identity embodied within the shell prior to distribution
of the shell program;
b. the shell program is not, itself, a functional program--that is, it does
not include all of the code which the intending licensee wishes to
execute. That program must be obtained remotely with all the delays,
inconveniences and possibilities of corruption during transit that that
entails;
c. the prior art system appears to require and indeed, rely on, encryption
to ensure that the program material which is communicated from a remote
location is not intercepted for utilization in an unauthorized manner; and
d. it is unclear whether the system can accommodate and react appropriately
to the situation where the program, once registered, is transferred in its
entirety from one platform to another so as to avoid the requirement for
payment of a further registration fee.
U.S. Pat. No. 4,796,220, assigned to Pride Software Development
Corporation, discloses a system for unique recognition of a platform on
which licensed software is to be executed. However, U.S. Pat. No.
4,796,220 does not contemplate or disclose utilization of information
which is unique to the user or intended licensee as part of the
registration process which is to be distinguished from identification of
the platform upon which the software is proposed to be run.
U.S. Pat. No. 4,688,169 to Joshi broadly discloses the same principles as
U.S. Pat. No. 4,796,220 in that it discloses a computer software security
system which relies for its security on a "machine identification code
unique to the machine" upon which the software to be protected is to be
run. Again, the disclosure is limited to identification of the platform
and there is no suggestion or contemplation of linking platform
identification with unique user identification.
Also this arrangement does not allow the flexibility of transfer of copies
of the program from platform to platform which can be run in a
demonstration mode.
It is an object of the present invention to address or reduce the
above-mentioned disadvantages.
Definitions
Throughout this specification the term "software" is to be interpreted
broadly so as to include all forms of digital data which are executable on
a platform (as to be later defined). The digital data comprising the
software can, for example, be code comprising a word processing program
adapted to run on a PC or the like. The software can also, for example, be
digital data stored on a CD ROM adapted for playback as music on a CD ROM
audio drive. The digital data can be displayable information or
information which is otherwise usable by a licensed user.
Throughout this specification the term "platform" denotes an environment to
be associated with a computing device such as a microprocessor or other
data processing device which permits execution of the digital data (to
which reference has previously been made in relation to the term
"software") whereby the computer can perform functions on input and output
devices associated therewith.
In some circumstances, the "software" or digital data may itself be the
operating system environment. Typically, but by no means exclusively,
examples of operating system environments include the MicroSoft DOS
operating system, the IBM OS/2 operating system or the Macintosh System 7
environment. In the degenerate case of microcontrollers operating from
ROM, the operating system environment may be the microcode of the
microcontroller which enables the microcontroller to execute machine code.
In this specification, "use mode" refers to use of the digital data or
software by its execution on a platform so as to fulfill the
seller's/licensor's obligations in relation to the sale or license of the
right to execute the digital data or software in the use mode. The use
mode is to be distinguished from what might generally be termed unlicensed
modes of operation (which is not to say unauthorized modes of operation)
as typified by the demonstration modes later described in this
specification.
SUMMARY OF THE INVENTION
In broad terms, the system according to the invention is designed and
adapted to allow digital data or software to run in a use mode on a
platform if and only if an appropriate licensing procedure has been
followed. In particular forms, the system includes means for detecting
when parts of the platform on which the digital data has been loaded has
changed in part or in entirety as compared with the platform parameters
when the software or digital data to be protected was for example last
booted or run or validly registered.
The system relies on digital data or code which forms part of the digital
data to be protected by the system. This portion of the digital data which
preferably is integral to the digital data to be protected has been termed
the "code portion" elsewhere in this specification. The code portion
includes an algorithm adapted to generate a registration number which is
unique to an intending licensee of the digital data based on information
supplied by the licensee which characterizes the licensee.
The algorithm in the code portion is duplicated at a remote location on a
platform under the control of the licensor or its agents and communication
between the intending licensee and the licensor or its agent is required
so that a matching registration number can be generated at the remote
location for subsequent communication to the intending licensee as a
permit to licensed operation of the digital data in a use mode.
Preferably, the code portion is integral with the digital data and can be
identical for all copies of the digital data. It is the algorithm embedded
within the code portion (and which is duplicated at the remote location)
which provides a registration number which can be "unique" if the
information provided by the intending licensee upon which the algorithm
relies when executed upon the platform is itself "unique."
In any event, in particular preferred forms, a serial number (see further
on) is included in the registration number generation algorithm which
introduces an additional level of uniqueness into the registration number
calculation process.
Accordingly, in one broad form of the invention there is provided a system
for licensing use of digital data in a use mode, the digital data
executable on a platform, the system including local licensee unique ID
generating means and remote licensee unique ID generating means, the
system further including mode switching means operable on the platform
which permits use of the digital data in the use mode on the platform only
if a licensee unique ID generated by the local licensee unique ID
generating means has matched a licensee unique ID generated by the remote
licensee unique ID generating means.
Preferably, the system further includes platform unique ID generating
means, wherein the mode switching means will permit the digital data to
run in the use mode in subsequent execution of the digital data on the
platform only if the platform unique ID has not changed.
Preferably, the mode switching means permits operation of the digital data
in the use mode in subsequent execution of the digital data only if the
licensee unique ID generated by the local licensee unique ID generating
means has not changed.
Preferably, the mode switching means includes part of the digital data.
Preferably, the remote licensee unique ID generating means comprises
software which includes the algorithm utilized by the local licensee
unique ID generating means to produce the licensee unique ID.
Preferably, the information utilized by the local licensee unique ID
generating means to produce the licensee unique ID comprises prospective
licensee credit card number, date of birth and full name and address.
Preferably, the platform unique ID generating means forms part of the
digital data.
Preferably, the platform unique ID generating means utilizes hard disk
information and/or other computer hardware or firmware information to
determine the platform unique ID.
Preferably, the platform comprises a computer operating system environment.
Preferably, the digital data comprises a software program adapted to run
under the operating system environment.
In a further broad form of the invention, there is provided a security
routine or registration means attachable to software to be protected, the
registration means generating a security key from information input to the
software which uniquely identifies an intended registered user of the
software on a computer on which the software is to be installed.
Preferably, the security key is generated by a registration number
algorithm.
Preferably, the registration number algorithm combines information entered
by a prospective registered user unique to that user with a serial number
generated from information provided by the environment in which the
software to be protected is to run (e.g., system clock, last modify date,
user name).
Preferably, the registration means is replicated at a registration
authority and used for the purposes of checking by the registration
authority that the information unique to the user is correctly entered at
the time that the security key is generated by the registration means.
Preferably, the registration means checks at the time of boot of the
software as to whether it is a first boot of the software to be protected
or a subsequent boot. If a subsequent boot is detected, then environment
and user details are compared to determine whether the program reverts to
a demonstration mode and a new user registration procedure is to commence,
or a full version run.
Preferably, the environment details comprise one or more of disc volume
name, user name or computer, initialization date of hard disk, hardware
identifier (e.g., ROM checksum) or other elements which are generally not
user-configurable on the platform.
In a further broad form of the invention, there is provided a method of
control of distribution of software, the method comprising providing
mode-switching means associated with the software adapted to switch the
software between a fully enabled mode and a partly enabled or
demonstration mode; the method further comprising providing registration
key generating means adapted to generate an enabling key which is a
function of information unique to an intending user of the software; the
mode-switching means switching the software into fully enabled mode only
if an enabling key provided to the mode-switching means by the intending
user at the time of registration of the software has matched identically
with the registration key generated by the registration key generating
means.
Preferably, the enabling key is communicated to the intending user at the
time of registration of the software by a third party operating a
duplicate copy of the registration key generating means.
In yet a further broad form of the invention, there is provided digital
data incorporating registration code, the digital data executable on a
platform; the registration code comprising a portion of the digital data
executable on the platform so as to switch the digital data between a
demonstration mode and a use mode.
Preferably, the registration code when executed on the platform provides
local licensee unique ID generating means whereby the digital data can be
switched from the demonstration mode to the use mode by execution of the
registration code only if a licensee unique ID generated by the local
licensee unique ID generating means has matched a licensee unique ID
generated by remote licensee unique ID generating means.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described with reference to the
accompanying drawings wherein:
FIG. 1 is a schematic diagram of the relationship and interaction between
an intending registered user and a registration authority of software on
media secured according to a first embodiment of the invention;
FIGS. 2a, 2b and 2c are segments of a flow chart of the procedure to be
followed during registration of software by a user according to a first
embodiment of the invention;
FIG. 3 is a flow chart of alternative boot processes according to a second
embodiment of the invention;
FIG. 4 is a personal information dialogue box relating to the procedure of
FIGS. 2a, 2b, 2c in accordance with a third embodiment;
FIG. 5 is a schematic diagram of a system according to a fourth embodiment
of the invention;
FIG. 6 is an implementation of the fourth embodiment of FIG. 5 in relation
to a CD ROM drive;
FIG. 7 is a logic flow chart in relation to the decoder box of FIG. 6;
FIG. 8 is a block diagram of a generalized system according to a fifth
embodiment of the invention;
FIG. 9 is a block diagram indicating one particular example of generation
of a registration number for the system of FIG. 8; and
FIG. 10 is a schematic diagram of a sixth embodiment comprising a
particular example of the generalized system of FIG. 8.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
It is to be understood that, in its various embodiments, the present
invention is for the protection of digital code/software by control of
permission to use the digital code/software. A hardware platform and a
remote registration station implemented at least partially by means of
electronic hardware are required by the various embodiments.
The code/software to be protected requires at least some adaption to be
usable with the invention in its various embodiments. The adaptation can
be universal for all copies of the code/software to be protected.
First Embodiment
With reference to FIGS. 1 and 8, the system according to embodiments of the
invention is designed and adapted to allow digital data 39 or software to
run in a use mode on a platform 31 if and only if an appropriate licensing
procedure has been followed. In particular forms, the system includes
means for detecting when parts of the platform 31 on which the digital
data 39 has been loaded has changed in part or in entirety as compared
with the platform parameters when the software or digital data to be
protected was, for example, last booted or run or validly registered.
The system relies on digital data or code 38 which forms part of the
digital data to be protected by the system. This portion of the digital
data, which preferably is integral to the digital data to be protected,
has been termed the code portion 38 elsewhere in this specification. The
code portion 38 includes an algorithm adapted to generate a registration
number 66 or local licensee unique ID or registration key which
characterizes the licensee. In this instance, the local licensee unique ID
generator which generates the registration number comprises the execution
of code 38 on platform 31.
The algorithm in the code portion is duplicated at a remote location on a
platform 67 under the control of the licensor or its agents, and
communication between the intending licensee and the licensor or its agent
is required so that a matching registration number or enabling key can be
generated at the remote location for subsequent communication to the
intending licensee as a permit to licensed operation of the digital data
39 in a use mode.
Execution of the duplicated code portion on platform 67 comprises, in this
instance, the remote licensee unique ID generating means.
Mode switching means can comprise execution of the code portion which
additionally performs a comparison of the locally and remotely generated
registration numbers.
Preferably, the code portion 38 is integral with the digital data and can
be identical for all copies of the digital data. It is the algorithm
embedded within the code portion (and which is duplicated at the remote
location) which provides a registration number which can be "unique" if
the information provided by the intending licensee upon which the
algorithm relies when executed upon the platform is itself "unique".
In any event, in particular preferred forms, a serial number (see further
on) is included in the registration number generation algorithm which
introduces an additional level of uniqueness into the registration number
calculation process.
With particular reference to FIG. 1, a program comprising digital data
protected according to a first embodiment of the invention is supplied
recorded on a magnetic disk 10.
Included as part of the software on that disk 10 is a registration and
re-registration routine which executes whenever the program protected by
the arrangement of the first embodiment "boots".
With reference to FIG. 1 and FIGS. 2a, 2b and 2c, the operation of the
security routine will be described on the assumption that the program on
the disk 10 protected by the registration routine has not been registered
on the platform or is otherwise being loaded for the first time.
The prospective new user 11 inserts disk 10 into the user PC 12 so as to be
read by PC 12.
As part of the software installation procedure, the registration routine is
activated causing a series of dialogue boxes to appear on the display 13
of the user PC 12. Having checked to ensure that the software has not
previously been registered on the PC 12, a dialogue box A (in FIG. 2a) is
displayed which provides the user with a choice of either seeing a
demonstration of the software (which typically has features such as save
and/or print disabled) or alternatively an invitation to register
ownership/licensee of the software (after which all features of the
software are made available to the user).
If the register option is selected or if the user cancels the demonstration
in favor of registration, then a contact dialogue box B (in FIG. 2a) is
presented on the display 13 which provides a list (stored on disk 10 as
part of the registration routine) which provides for example, names and
contact numbers of the software publishing company together with other
general product information.
Following the user's indication of agreement during display of license
details (box B1) to proceed to register, the user can contact the
| | |