Uniloc USA, Inc. et al v. NATIONAL INSTRUMENTS CORP. et al
Filing
251
RESPONSE in Opposition re 243 Opposed MOTION for Leave to Construe Previously Construed Term filed by Uniloc Singapore Private Limited, Uniloc USA, Inc.. (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Text of Proposed Order)(Nelson, Edward)
111111111111111111111111111111111111111111111111111111111111111111111111111
US005490216A
United States Patent
[19]
[11]
Richardson, III
[45]
[54]
Inventor:
5,386,468
5,388,211
5,390,297
SYSTEM FOR SOFTWARE REGISTRATION
[75]
Frederic B. Richardson, III,
Brookvale, Australia
Assignee: Uni10c Private Limited, Singapore
[21]
Appl. No.: 124,718
[22]
Filed:
[56]
Feb. 6, 1996
1/1995 Akiyama et aI. ........................... 38014
2/1995 Hornbuckle ................................. 38014
2/1995 Barber et aI ................................ 38014
W09209160
5/1992
WIPO.
Primary Examiner-David C. Cain
Attorney, Agent, or Firm-Knobbe, Martens, Olson & Bear
Sep. 21, 1993
[57]
Foreign Application Priority Data
Sep. 21, 1992 [AU]
Oct. 26, 1992 [AU]
[51]
[52]
[58]
5,490,216
FOREIGN PATENT DOCUMENTS
[73]
[30]
Patent Number:
Date of Patent:
Australia ................................. PL4842
Australia ................................. PL5524
Int. Cl. 6 ........................................................ H04L 9/00
U.S. Cl. ................................................... 380/4; 380/23
Field of Search ............................... 380/3, 4, 23, 24,
380/25
References Cited
u.s. PATENT DOCUMENTS
4,654,799 3/1987 Ogaki et aL .
4,688,169 8/1987 Joshi.
4,796,220 1/1989 Wolfe.
4,982,430 1/1991 Frezza et aI ..
4,999,806 3/1991 Chernow et aI ............................
5,191,611 3/1993 Lang ...........................................
5,199,066 3/1993 Logan .........................................
5,222,133 6/1993 Chou et aI ..................................
5,239,166 8/1993 Graves.
5,239,648 8/1993 Nukui ..........................................
5,287,408 2/1994 Samson .......................................
5,291,598 3/1994 Grundy.
5,313,637 5/1994 Rose ............................................
5,319,705 7/1994 Halter et aI .................................
5,337,357 8/1994 Chou et aI. .................................
5,343,526 8/1994 Lassers ........................................
5,349,643 9/1994 Cox et aI ....................................
5,371,792 12/1994 Asai et aI. .. ................................
5,379,433 111995 Yamagishi ...................................
13
38014
38014
38014
38014
38014
380/4
38014
38014
38014
38014
38014
38014
ABSTRACT
A registration system allows digital data or software to run
in a use mode on a platform if and only if an appropriate
licensing procedure has been followed. Preferably, the system detects when part 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 last booted or run. The
system relies on a portion of digital data or code which is
integral to the digital data to be protected by the system. This
integral portion is termed the code portion and may include
an algorithm that generates a registration number 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. The code portion can be identical
for all copies of the digital data. The algorithm provides a
registration number which can be "unique" if the details
provided by the intending licenses upon which the algorithm
relies when executed upon the platform are themselves
"unique".
20 Claims, 12 Drawing Sheets
380/4
[2J
15
10
u.s. Patent
Feb. 6, 1996
Sheet 1 of 12
5,490,216
.........
u.s. Patent
Feb. 6, 1996
NO
5,490,216
Sheet 2 of 12
IS
THIS A NEW
COpy ?
(INTERNAL CHECKING
BY APPLICATION)
GO TO
FIG. 30 OR 3b
DEMO
.------_ _...L..-_ _- ,
B
DISPLAY PRODUCT
INFORMATION BOX:
e.g .. SOFTWARE
PUBLISHER DETAILS
DEMO MODE OF APPLICATION:
NO SAVE OR PRINT CAPABILITY
CANCEL
AGREE
B1
LICENSE INFO. DIALOG BOX:
DETAILS OF NEW LICENSING
AGREEMENT
CANCEL
CONTINUE
FIG.2a
GO TO FIG. 2b
u.s. Patent
Feb. 6, 1996
Sheet 3 of 12
,
5,490,216
FROM FIG. 20
FIG.2b
A SERIAL NO. IS GENERATED
BY THE APPLICATION USING
INFORMATION FROM THE USER
ENVIRONMENT (E.G. TIME, MACHINE
TYPE, LAST MODIFICATION DATE)
SERIAL NO. IS ENCRYPTED,
REARRANGED AND PRESENTED AS
A NUMBER IN THE SERIAL NO. FIELD
OF THE REGISTRATION DIALOG BOX.
REGISTRATION DIALOG BOX: USER MUST
ENTER DETAILS IN THE SPECIFIED
FIELDS IN ORDER TO REGISTER THE PRODUCT INCLUDING:
NAME, COMPANY, ADDRESS, CONTACT NUMBER (PHONE
AND CREDIT CARD DETAILS OR CORPORATE ACCOUNT NO.)
-
USER CALLS THE NEAREST ADMINISTRATION CENTER
(FROM CONTACT DIALOG BOX) AND COMMUNICATES
THE REGISTRATION DETAILS AS WELL AS
THE SERIAL NO. GENERATED BY APPLICATION
PAYMENT
DETAILS
CONFIRMED
(E.G. CREDIT CARD)
PUBLISHER USES
REGISTRATION DETAILS
IN UNLOCKING APPLICATION
REGISTRATION NO. GENERATED
FROM USER DETAILS ADDED TO
SERIAL NO. IS ENCRYPTED
AND RE-ARRANGED
'-----~~: USER GIVEN REGISTRATION NO.
t
GO TO FIG. 2c
u.s. Patent
Feb. 6, 1996
5,490,216
Sheet 4 of 12
FROM FIG. 2b
FIG.2c
USER TYPES IN
REGISTRATION NUMBER
APPLICATION USES UNLOCKING
ALGORITHM TO CHECK VALIDITY
NO
VALID
YES
?
ALERT DIALOG BOX: USER TOLD
THE REGISTRATION NO. IS INCORRECT
AND ASKED TO CALL THE OPERATOR FOR
ASSISTANCE IN CHECKING REGISTRATION
DETAILS. USER GIVEN 3 ATTEMPTS TO
REGISTER AFTER WHICH THE PROGRAM
AUTOMATICALLY REVERTS TO DEMO VERSION
RUN DEMO
VERSION
,
RUN FULL
VERSION
u.s. Patent
5,490,216
Sheet 5 of 12
Feb. 6, 1996
FIG. 3
DO
REGISTRA TlON
.-----_--:N~0=---i (KEY) DETAILS EXIST ~YE=S~_
IN APPLICATION
?
LOOK FOR DUPLICATE
NO
KEY FILE STORED
~-------{
ELSEWHERE ON MACHINE
DO
REGISTRATION (KEY)
DETAILS MATCH
ENVIRONMENT
?
YES
YES
NO
REMOVE KEY
NO
INFORMATION ~~
IF IT EXISTS
COpy DUPLICATE
KEY FILE INFORMATION
TO APPLICATION
DO
REGISTRATION (KEY)
DETAILS MATCH
ENVIRONMENT
?
RUN DEMO
VERSION
YES
RUN FULL
VERSION
u.s. Patent
Feb. 6, 1996
5,490,216
Sheet 6 of 12
/220
{
NAME:
ORGANIZATION
ADDRESS
CITY
ZIP/POST CODE
COUNTRY
I
CREDIT CARD /ORDER# ~I===================;
EXPIRE DATE
L-I_ _ _ _ _ _ __
LAST USER NO.
SERIAL NO.
PRODUCT NO.
YOUR USER NO.
1~==============~~~
r
I
r
REGISTRATION NO.
FIG. 4
I
1""
__j-22
-50
21
u.s. Patent
5,490,216
Sheet 7 of 12
Feb. 6, 1996
37
A.
r
39
38
.A.
r
y
.A.
"
,
34
31
III
33
ENVIRONMENT/PLATFORM
30
J.L P
,---_ _ _ _--. 32
IJ
a:m CIDJ I:IJ:DJ
~---IIJIJOOOOOOIJIJCJ
ClIJOOOIJIJIJOOCl
OOOOOOIJOOCl
o 01
'0 D
35
FIG. 5
0000
OIJOO
0000
OIJIJO
u.s. Patent
Feb. 6, 1996
Sheet 8 of 12
52
56'
53
DAC
TO
TV/HI FI
FIG. 6
5,490,216
u.s. Patent
Sheet 9 of 12
Feb. 6, 1996
5,490,216
PLAY
FIRST PIECE OF ENCODED
INFORMATION IS BROUGHT
INTO CONTROLLER INCLUDING
A PRODUCT IDENTIFIER.
YES
DEMO
}--~
NO
ALLOWS ACCESS TO
DEMONSTRATION RECORDINGS
THAT ARE NOT ENCRYPTED.
REGISTRATION DATA
ENTRY eg: PAYMENT
DETAILS AND
PERSONAL DATA
COMMUNICATION
WITH REGISTRATION
SERVICE PROVIDOR
SUPPLY OF
REGISTRATION
NUMBER TO
CUSTOMER
STORE REGISTRATION
NUMBER IN WRITABLE
MEMORY OF LOCAL
CONTROLLER AND
WRITABLE STORAGE
AREA OF SMART CARD.
FIG. 7
ALLOWS ACCESS
TO DAC AND
DECRYPTION
ENGINE
u.s. Patent
,-------------
,-------------1
I
I
I
REMOTE REGISTRATION
DATABASE LOCATION
I
I
I
I LOCAL LICENSEE LOCATION 1
I
INTERNAL
I
39",
BOND
,- 38
6/",
I
:
USER
PROGRAM
I
5,490,216
Sheet 10 of 12
Feb. 6, 1996
I
I
I
I
I
I
I
i
I
I
I
I
I
REGISTRATION:
DATABASE
I
PROGRAM
I
IALGI
I
I
,-62
I
I
I
I
I
I
I
I
I
I
I PROGRAM
I SUBSET
I
I
I
I
I
I
I
I
I
I
I
t
53
t
PLATFORM
I~--------------~
I
I
I
I
LOCAL
LICENSEE
UNIQUE
1.0.
GENERATOR
(DEMO)
0 .....
0 ......----
---
MODE
SWITCHER
I
~
I
67
REMOTE
LICENSEE
UNIQUE
1.0.
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
GENERATOR
66
I
FULL
PROGRAM
I
I
I
70
I
I
I
PLATFORM
UNIQUE
1.0
GENERATOR
I
I
:
I
L _____________ -.J
FIG. 8
I
I
L _____________ _
u.s. Patent
Feb. 6, 1996
VARIABLE
KEY PORTION
72
[ I' 1
if
5,490,216
Sheet 11 of 12
SYSTEM
INFORMATION
71
50
I I I '''---I-----"11/
1
SERIAL NO.
61
+
r-----------./
'--_ _ _ _ _ _ _ _ _ _......1
PRODUCT NAME
65
+
/
'--_____________....
1
CUSTOMER
INFORMATION
22
+
/
'--_ _ _ _ _ _ _ _ _ _....
1
PREVIOUS USER
IDENTIFICATION
6'6'
/
1
"---_ _ _ _ _ _ _ _...1.
FIG. 9
REGISTRATION
NUMBER
u.s. Patent
Feb. 6, 1996
Sheet 12 of 12
5,490,216
x
>-
i'I
I
I
r------...,
1
'I
I~L __
1
1
1
1
,/
I
//
I
'"
L.. ______ ..J
).
-------1
r-~I~~------~
I
I
I
r-
,I
1-
"
..... '
~I
~
I
0-:
~
~
I
I
I
I
I
I
,=>
~
:
I
:r !
~~
I
~
L _ _ _ _ _ _ _ _ _ -1
5,490,216
1
2
closes a computer software security system which relies for
its security on a "machine identification code unique to the
BACKGROUND OF THE INVENTION
machine" upon which the software to be protected is to be
run. Again, the disclosure is limited to identification of the
1. Field of the Invention
5 platform and there is no suggestion or contemplation of
This invention relates to improvements in systems for
linking platform identification with unique user identificasoftware registration and, more particularly, to improvetion.
ments in arrangements where software is transferable by
Also this arrangement does not allow the flexibility of
media such as magnetic disks, CD ROMS and the like.
transfer of copies of the program from platform to platform
2. Description of the Related Art
10 which can be run in a demonstration mode.
Much commercially available software is provided at time
It is an object of the present invention to address or reduce
of purchase (or license) on a magnetic media, typically a
the above-mentioned disadvantages.
floppy disk. Frequently the only security feature attached to
Definitions
the software is a simple registration number stored on the
Throughout this specification the term "software" is to be
media. This registration number identifies that particular 15 interpreted broadly so as to include all forms of digital data
copy of the software and it is often required at the time of
which are executable on a platform (as to be later defined).
installation of the software onto any given computer that the
The digital data comprising the software can, for example,
installer must provide the registration number independently
be code comprising a word processing program adapted to
to the installation routines.
run on a PC or the like. The software can also, for example,
However, such simple security arrangements for the dis- 20 be digital data stored on a CD ROM adapted for playback as
music on a CD ROM audio drive. The digital data can be
tribution of software on media suffer from at lest two
disadvantages: (1) each copy of the software made on any
displayable information or information which is otherwise
usable by a licensed user.
given media at the time of manufacture must include an
Throughout this specification the term "platform" denotes
individual, unique number, programmed into the media, and
(2) this arrangement does not prevent copying of the soft- 25 an environment to be associated with a computing device
such as a microprocessor or other data processing device
ware, once installed on any given computer, to another
computer by means of file transfer (as opposed to reinstalwhich permits execution of the digital data (to which referlation).
ence has previously been made in relation to the term
"software") whereby the computer can perform functions on
WO 92/09,160 to Tan Systems Corporation discloses a
registration system which is relatively sophisticated which 30 input and output devices associated therewith.
In some circumstances, the "software" or digital data may
relies for its security on a requirement that an intending
itself be the operating system environment. Typically, but by
software licensee must obtain from a remote location by file
no means exclusively, examples of operating system envitransfer significant and essential portions of the program
ronments include the MicroSoft DOS operating system, the
which the licensee desires to execute. The arrangement
disclosed in WO 92109,160 suffers from a number of defi- 35 IBM OS/2 operating system or the Macintosh System 7
environment. In the degenerate case of microcontrollers
ciencies including:
operating from ROM, the operating system environment
a. the shell program which the intending licensee initially
may be the microcode of the microcontroller which enables
executes requires a unique identity embodied within the
the microcontroller to execute machine code.
shell prior to distribution of the shell program;
In this specification, "use mode" refers to use of the
40
b. the shell program is not, itself, a functional programdigital data or software by its execution on a platform so as
that is, it does not include all of the code which the
to fulfill the seller' s/licensor' s obligations in relation to the
intending licensee wishes to execute. That program
sale or license of the right to execute the digital data or
must be obtained remotely with all the delays, inconsoftware in the use mode. The use mode is to be distinveniences and possibilities of corruption during transit 45 guished from what might generally be termed unlicensed
that that entails;
modes of operation (which is not to say unauthorized modes
c. the prior art system appears to require and indeed, rely
of operation) as typified by the demonstration modes later
on, encryption to ensure that the program material
described in this specification.
which is communicated from a remote location is not
intercepted for utilization in an unauthorized manner; 50
SUMMARY OF THE INVENTION
and
In broad terms, the system according to the invention is
d. it is unclear whether the system can accommodate and
designed and adapted to allow digital data or software to run
react appropriately to the situation where the program,
in a use mode on a platform if and only if an appropriate
once registered, is transferred in its entirety from one
platform to another so as to avoid the requirement for 55 licensing procedure has been followed. In particular forms,
the system includes means for detecting when parts of the
payment of a further registration fee.
platform on which the digital data has been loaded has
U.S. Pat. No. 4,796,220, assigned to Pride Software
changed in part or in entirety as compared with the platform
Development Corporation, discloses a system for unique
parameters when the software or digital data to be protected
recognition of a platform on which licensed software is to be
executed. However, U.S. Pat. No. 4,796,220 does not con- 60 was for example last booted or run or validly registered.
The system relies on digital data or code which forms part
template or disclose utilization of information which is
of the digital data to be protected by the system. This portion
unique to the user or intended licensee as part of the
of the digital data which preferably is integral to the digital
registration process which is to be distinguished from idendata to be protected has been termed the "code portion"
tification of the platform upon which the software is pro65 elsewhere in this specification. The code portion includes an
posed to be run.
algorithm adapted to generate a registration number which is
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 disunique to an intending licensee of the digital data based on
SYSTEM FOR SOFTWARE REGISTRATION
5,490,216
3
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
4
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
5 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
10
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
15 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
20 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
25
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.
30
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
35 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
40 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
45 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
50
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
55
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
60 licensee unique ID generating means has matched a licensee
unique ID generated by remote licensee unique ID generating means.
65
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention will now be described with
reference to the accompanying drawings wherein:
5,490,216
5
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.
6
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 gen5
erated 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
10 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
15
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 infor20 mation 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
25 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
30
DETAILED DESCRIPTION OF THE
registration and re-registration routine which executes
PREFERRED EMBODIMENT
whenever the program protected by the arrangement of the
first embodiment "boots".
It is to be understood that, in its various embodiments, the
With reference to FIG. 1 and FIGS. 2a, 2b and 2c, the
present invention is for the protection of digital code/
software by control of permission to use the digital code/ 35 operation of the security routine will be described on the
software. A hardware platform and a remote registration
assumption that the program on the disk 10 protected by the
registration routine has not been registered on the platform
station implemented at least partially by means of electronic
or is otherwise being loaded for the first time.
hardware are required by the various embodiments.
The code/software to be protected requires at least some
The prospective new user 11 inserts disk 10 into the user
adaption to be usable with the invention in its various 40 PC 12 so as to be read by PC 12.
embodiments. The adaptation can be universal for all copies
As part of the software installation procedure, the regisof the code/software to be protected.
tration routine is activated causing a series of dialogue boxes
to appear on the display 13 of the user PC 12. Having
45 checked to ensure that the software has not previously been
First Embodiment
registered on the PC 12, a dialogue box A (in FIG. 2a) is
displayed which provides the user with a choice of either
With reference to FIGS. 1 and 8, the system according to
seeing a demonstration of the software (which typically has
embodiments of the invention is designed and adapted to
features such as save and/or print disabled) or alternatively
allow digital data 39 or software to run in a use mode on a
platform 31 if and only if an appropriate licensing procedure 50 an invitation to register ownership/licensee of the software
(after which all features of the software are made available
has been followed. In particular forms, the system includes
to the user).
means for detecting when parts of the platform 31 on which
If the register option is selected or if the user cancels the
the digital data 39 has been loaded has changed in part or in
entirety as compared with the platform parameters when the
demonstration in favor of registration, then a contact diasoftware or digital data to be protected was, for example, last 55 logue box B (in FIG. 2a) is presented on the display 13
booted or run or validly registered.
which provides a list (stored on disk 10 as part of the
registration routine) which provides for example, names and
The system relies on digital data or code 38 which forms
contact numbers of the software publishing company
part of the digital data to be protected by the system. This
together with other general product information.
portion of the digital data, which preferably is integral to the
digital data to be protected, has been termed the code portion 60
Following the user's indication of agreement during dis38 elsewhere in this specification. The code portion 38
play of license details (box Bl) to proceed to register, the
user can contact the registration center after filling out the
includes an algorithm adapted to generate a registration
registration dialogue box C as detailed below. After selecting
number 66 or local licensee unique ID or registration key
which characterizes the licensee. In this instance, the local
"continue", the registration routine begins the first step in the
licensee unique ID generator which generates the registra- 65 generation of a security key which will be unique to the
tion number comprises the execution of code 38 on
current copy of the software and to certain features of the
platform 31.
environment in which it runs.
5,490,216
7
As shown in FIG. 2b, the first step in the generation of the
security key comprises the generation of a serial number
generated from the current time on the system and, in this
example, the last modify date of the software and other
information from the computer environment. The serial 5
number is encrypted and rearranged and then presented as a
number in the registration dialogue box on the display 13.
The registration dialogue box C (in FIG. 2b) prompts the
user for details unique to that user (including, for example,
name, company, address, state, contact number) together 10
with financial details for payment for the purpose of becoming a registered user of the software protected by the
registration routine (for example Mastercard or corporate
account number details). This information, unique to the
user, is passed through a registration number algorithm 14 15
(represented symbolically in FIG. 1) which generates a
registration number or security key from the information
unique to the user together with the serial number previously
generated. The registration number or security key is not
made available to the user of the PC 12 by the PC 12.
20
An identical registration number algorithm 14 resides on
the registration authority PC 15. As an integrlll part of the
registration procedure, the prospective new user 11 communicates the information unique to the user which was entered
by the user on the user PC 12, along with the serial number 25
generated by the user's algorithm, to the registration authority 16. The registration authority feeds this information into
the registration authority PC 15 wherein the registration
number algorithm 14 should produce an identical registration number or security key to that produced by the user PC 30
12 if the details communicated to the registration authority
by the prospective new user 11 match with the details that
have been entered on the user PC 12. Optionally, the user
can communicate the information to the registration authority electronically, e.g., by fax or modem or tone phone.
35
As a final stage in registration (refer to FIG. 2d), the
registration authority 16 provides the registration number
generated by the registration authority PC 15 to the user 11.
The user 11 enters the registration number into the user PC
12 where the registration routine checks to see whether the 40
entered registration number matches the calculated registration number. If the two match, then a valid registration has
taken place and access is provided by the registration routine
to a full operating version of the software protected by the
registration routine. If there is no match and a preference file 45
(which stores the user details) does not exist then a dialogue
box D (FIG. 2c) appears on the display 13 of user PC 12
providing the prospective new user 11 with the opportunity
to check hislher details or switch to the demonstration
version of the software protected by the registration routine. 50
Again, the registration authority PC 15 can provide to PC
12 the registration number which it generates by electronic
means such as modem communication.
It will be evident that it is not obvious to the prospective 55
new user 11 that the registration number which unlocks the
full version of the software protected by the registration
routine is, in fact, generated from an algorithm residing on
the magnetic disk 10 and that it forms part of the software
to which access is desired.
60
In this manner, the registration procedure outlined above
ensures that exactly the same details entered by the prospective new user on hislher user PC 12 are those details
recorded by the registration authority 16. It will also be
evident that the procedure does not require each magnetic 65
disk 10 containing a copy of the software to be protected to
have a unique registration number recorded on the disk at the
8
time of distribution of the disk. Each copy has exactly the
same registration number algorithm located upon it. A
unique registration number or "security key" is generated
only at the time of registration from the details supplied by
the prospective new user 11.
The registration routine behaves generally as follows
where any copy of the protected software boots. In this
situation, the registration routine checks at the time of boot
to see what registration details are present for that particular
copy of the software. If no details are present, then it is
assumed that the PC is booting from a newly distributed
magnetic disk and registration is to occur for the first time.
The registration procedure in that case is that followed in
respect of FIGS. 2a, 2b and 2c.
In the event that registration details are present, then the
registration routine checks a number of parameters which
are expected to be unique to the environment in which the
software to be protected operates. In this embodiment, the
parameters checked are hard disk volume name, user name,
and computer name and user password and hard disc initialization date (not generally user configurable on the Apple
Macintosh computer). The registration routine then checks
these parameters against the corresponding details that it
finds from the operating environment of the computer on
which the software is running. If a designated combination
of these details matches then it is assumed that a properly
authorized and registered copy of the software is running
and full access to the software is allowed.
In this manner, it is quite in order for users to provide
other users with copies of the software protected by the
security routine. The security routine attached to the software to be protected determines from the environment in
which it operates whether an additional registration fee is
required. If it is determined by the registration routine that
this is the case, then the registration routine has the capability to provide a fresh registration number as part of an
authorized registration procedure pending which the protected software reverts to demonstration mode.
Second Embodiment
(Auto re-registration)
According to a second embodiment, a more sophisticated
procedure suitable for checking at first boot and at subsequent boot is shown in flowchart form in FIG. 3.
This procedure incorporates redundancy to cope with
situations where the key file containing the information from
which the current use has been authorized may have been
deleted or does not exist on a subsequent boot.
The distinction as against the first embodiment is that a
"key file" is created at the time of registration of the software
and a duplicate key file is also created at the same time. The
duplicate key file is arranged to be stored on the computer
at a location separate from the program to be protected. In
the case of the Apple Macintosh computer the duplicate key
file can be stored in the "system" folder.
Both the key file (stored with the software) and the
duplicate key file are encrypted and both contain identical
information. The information contained comprises:
1. The user registration details including the serial number,
2. The environment details of the computer, and
3. Details of the application protected by the security
routine for which registration is to be or has been
obtained.
With reference to FIG. 3, whenever the protected application boots, a check is made by the registration routine to
5,490,216
9
determine whether registration details exist in the key file of
the protected application. If they do, a comparison is made
by the registration routine between what is stored in the key
file and the environment to determine whether a change has
taken place to the environment as compared with what is 5
stored in the key file. If no change is detected, then the
protected application is permitted to run normally.
If there are no registration details present in the key file or
if the above-referenced comparison between the key file
contents and the application does not show a match, then the 10
re-registration routine of FIG. 3 looks for the existence of a
duplicate key file within the environment. If a duplicate key
file exists, then the information contained within that duplicate key file is copied to the application key file and
comparisons as previously described as between the key file 15
details and the environment and application are made. If the
comparison is positive, then the protected application is
allowed to run normally. If the comparison proves negative,
then the protected application is permitted to run by the
registration routine in demonstration mode only. If a dupli- 20
cate key file is found not to exist at all and the internal key
file, if present, brings a negative result, then the protected
application is allowed to run in demonstration mode only.
This arrangement provides improved durability for the
registration routine in the sense that it is less likely that the 25
protected application will be caused to run in demonstration
mode for incorrect reasons.
10
platform. The serial number 50 generated by the selfserialization process can be a required input to the registration algorithm from which the registration number is generated. Clearly, the serial number 50, as determined and
displayed to the user, will then be required to be communicated to the registration authority for input to the registration authority's registration number generating algorithm.
It will be observed that a serial number 50 generated in
this manner is likely to be displayed as a different number on
each platforni on which the software to be protected is to be
run and comprises a randomized input to the registration
algorithm which is determined and determinable only at the
time of registration.
Fifth Embodiment
With reference to FIG. 5, there is shown in schematic
form a microprocessor 30 adapted to operate under an
operating system or upon a platform 31 such as, for example,
MicroSoft DOS or Macintosh System 7. The platform 31
allows relatively high level commands to be used to cause
the microprocessor 30 to interact with input/output devices
such as keyboard 32, monitor 33, loudspeaker 34, memory
35 and magnetic or CD ROM disk 36.
By way of example a word processing program comprising a length of code or digital data 37 has been copied onto
disk 36.
The digital data 37 includes registration code portion 38
and use code portion 39.
Third Embodiment
30
The digital data 37 is arranged in such a way that when
Tracking System
microprocessor 30 seeks to first execute the digital data 37
With reference to FIG. 4, a modified form of the dialogue
by way of operating system or platform 31 the digital data
box C of FIG. 2b is shown which includes provision for
comprising the registration code portion 38 is caused to
entry of "your user number" in box 21.
execute first in a manner previously described in reference
At the time a prospective new user enters his/her details 35 to the first embodiment of the invention. The execution of
into the other boxes comprising the dialogue box C, there is
the digital data comprising the registration code portion 38
an option for the user to enter a user number into box 21. The
in conjunction with the operating system or platform 31
user number is provided by the registration authority 16 as
comprises a mode switcher which will permit the microproa number unique to that particular registered user. If the box
cessor 30 to execute the use code portion 39 of digital data
21 has the user number details inserted into it, then the 40 37 only in a demonstration mode unless and until registraregistration routine, When the next copy of the protected
tion involving reference to an external registration authority
application is made, will transfer the user number details
is first completed successfully. This registration procedure is
from box 21 to the "last user number" box 22. A similar
as previously described with reference to the first emboditransfer will take place when next a copy is made of the
ment.
protected application if and only if the person wishing to 45
The digital data 37 can comprise, for example, a word
register the next copy enters their user number details in box
processing program such as Wordperfect 6.0 available from
21. If they do not, then the last user number details in box
Wordperfect Corporation. The registration code portion 38 is
22 remain as before. In this manner, a tracking system is
integral with the digital data 37 comprising the word proavailable to the registration authority in the form of a tree
cessing program. The registration code portion 38 includes
where any given copy is identified by its ancestry based on 50 the algorithm for calculation of the registration number as
current and previous user number as entered into boxes 21
previously described in respect of other embodiments of the
and 22.
invention.
Self-Serialization
It will be appreciated that the registration code portion 38
In a particular embodiment, a process termed "self-seri55 effectively forms simply a part of the software or digital data
alization" can be utilized to produce the serial number 50
37 to be protected/registered and that the digital data 37 will
which is displayable to the userllicensee as illustrated in
be or can be identical for all copies of the word processing
FIG. 4.
program produced. The registration code portion 38 allows
The serial number 50 is disguised by use of a random or
a unique link to be made between the digital data 37 and an
pseudorandom number input to the algorithm which generates the serial number at the time of first boot of the software 60 individual authorized or licensed to use the digital data 37 by
way of initial execution of a copy of the digital data
as part of the initial registration procedure. For example, the
comprising registration code portion 38.
serial number, when generated by the self-serialization proWith reference to FIGS. 6 and 7, a specific realization of
cess, can be generated by a random number routine forming
the fifth embodiment will be described.
part of the registration software or it can be generated by the
With particular reference to FIG. 6, a decoder 51 is
registration software with reference to data which is avail- 65
interposed in the datapath from the CD in CD player 52 and
able in a widely varying fashion on the platform on which
a digital-to-analog converter 53. The digital-to-analog conthe software is located-for example, a time reference on the
5,490,216
11
12
verter 53 is the device by which digitally encoded musical
or video information residing on CD ROM 54 is converted
to analog form suitable for playback on current mass produced television sets (video) or hi-fi sets (audio).
The decoder 51 comprises part of the platform upon
which the digital data 37 is executed and includes means to
interpret the code portion 38 of the digital data 37 whereby
the registration system is implemented such that the digital
data 37 and, more particularly, the use code portion 39 of
that digital data 37 can be executed on the platform in a use
mode only if the registration procedure to which reference
has been made in respect of previous embodiments has been
performed.
The registration code portion 38 can include a preview or
demonstration related to a subset of the balance of the digital
data on the CD 54 which can be executed by the platform
without license.
The decoder 61 includes LCD display 55 and keypad 56
whereby the licensee can enter information via keypad 56
and receive information via the LCD display 55 for the
purpose of the registration procedure.
In addition a smart card (SRAM) 57 is receivable by the
decoder 81 for the purpose of customizing or amending
operation of the decoder 51.
With reference to FIG. 7, the registration procedure
following insertion of CD 54 into CD player 52 is as follows.
The user operates the play control and decoder 51 reads from
CD 54 code portion 38 of digital data 37 located thereon and
executes this code so as to determine whether the digital data
is already licensed for the platform. If not, a demonstration
is communicated via digital-to-analog converter 63 whilst
the user determines whether to register as a licensee of the
digital data 37 in the manner indicated in the flowchart of
FIG. 7.
changed as provided to it by platform unique ID generator
70.
In this embodiment, serial number 50 is comprised of two
components, namely system information 71 and a variable
key portion 72. The variable key portion 72 provides the
characteristic of self serialization described earlier in the
specification and, in this embodiment, is generated at the
time of registration on platform 31 by reference to a variable
platform parameter, in this case reference to system time
information, although other parameters which are variable
can be utilized in other embodiments.
System information 71 can include information which
identifies the hardware comprising the platform 31 on which
the user program 39 is to be executed such as, for example,
CPU number (where available), or unique parameters associated with the firmware in use. The system information,
optionally, can further include system configuration information such as amount of memory, type of processor etc.
It will be noted, therefore, that serial number 50 will
appear to an intending licensee when it appears on screen as
per box C in FIG. 4 as an apparently random variable having
no obvious link to the platform 31 or the user program 39.
However, when the serial number 50 is communicated to
the remote licensee unique ID generator 67 a secondary
algorithm complementary to the algorithm which generated
the serial number including variable key portion 72 and
system information 71 is able to "decode" or otherwise strip
away the variable key portion 72 so as to make use of the
system information 71 if allowable and desirable in the
circumstances.
Whether the system information 71 is utilized or not, the
serial number 50 generated in this manner provides an input
to the algorithm which generates registration number 66
which presents as an apparently variable parameter thereby
rendering "cracking" of the software registration system
more difficult and unlikely.
5
10
15
20
25
30
35
Sixth Embodiment
With reference to FIG. 8, there is shown a block diagram
of a system according to a further embodiment of the
invention which is to be read in the context of the earlier
generalized description in respect of FIG. 1.
The system illustrated in FIG. 8 operates in the manner
generally described in respect of previous embodiments and
as generally outlined in the diagram. In the context of the
block C illustrated in FIG. 4, and with reference to FIG. 9,
the algorithm, which generates the unique user identification
and which is resident both as the registration code portion 38
in digital data 37 integrally bound to use code portion 39 for
execution on local platform 31 and also as remote algorithm
61, is attached to registration database program 62 for
execution on the remote platform 63.
The algorithm, in this embodiment, combines by addition
the serial number 50 with the software product name 64 and
customer information 65 and previous user identification 22
to provide registration number 66.
As discussed earlier, all of the items to be summed,
namely items 50, 64, 65 and 22 must be communicated to
the remote licensee unique ID generator 67 by the intending
licensee whereby algorithm 51 causes the production of a
registration number 66 which matches identically with the
locally produced registration number. When mode switcher
68 verifies the match, then the mode switcher 68 allows
execution on platform 31 of the full user program 39.
Prior to allowing execution of the full program, mode
switcher 68 will also check whether platform ID 69 has
Seventh Embodiment
40
45
50
55
60
65
The schematic diagram of FIG. 10 illustrates a substantially hardware implementation of the invention applicable,
for example, for implementation of the CD arrangement of
FIG. 6 or the more generalized arrangement of FIGS. 8 and
9.
In this embodiment, a prospective user 80 of digital code
81 on media 82 by its execution on platform 83 firstly inserts
the media 82 into an appropriate digital code reading device
within platform 83 (e.g., a floppy disk drive or a CD ROM
drive).
Customer information C is provided by user 80 both
direct to local encoder/decoder 84 and also to local adder or
summer 85.
Additionally, product information P derived from media
82 (typically via platform 83) or else via the intermediary of
the user (signified by the small man symbol) is provided to
encoder/decoder 84 and to summer 85.
Finally, a serial number S derived from platform 83 is
supplied either directly or via the intermediary of user 80 to
encoder/decoder 84 and to summer 85.
Summer 85 acts as a local licensee unique ID generating
means by combining, by addition, customer information C,
product information P and serial number S in order to
provide a local licensee unique ID here designated Y.
Encoder/decoder 84 transmits the serial number S, the
customer information C and the product information P via
5,490,216
13
modems 86, 87 over the public switched telephone network
to a remote encoder/decoder 88 which, in turn, supplies
signals S, C and P to the inputs of remote summer 89.
Remote summer 89 combines these signals by addition
(thereby acting as a remote license unique ID generating
means) so as to provide a summed output, here termed X,
which represents a licensee unique ID or enabling key which
should match identically with the local licensee unique ID or
registration key or registration number Y if inputs S, C and
P to summers 85 and 89 are identical.
The licensee unique ID termed X is transmitted back via
encoder/decoders and modems 84, 86, 87, 88 to comparator
90 which outputs a high signal if X equals Y. This condition
corresponds to the local licensee unique ID matching with
the licensee unique ID generated at the remote location by
the remote licensee unique ID generating means generally
comprising summer 89.
Digital code 81 on media 82 comprises code identified as
a demonstration portion D together with code identified as a
use portion U. There may be other kinds of code designated
o as well.
Code 81 is executed on platform 83 (for example, a
microprocessor or a substantially hardware based, dedicated
playback device such as a CD drive) with the code being
passed through a mode switcher comprising first gate 91 and
second gate 92 together with relay 93.
First gate 91 energizes relay 93 so as to permit execution
of code of type D but not code of any other type such as of
~~u.
Second gate 92 permits execution of any kind of code by
closure of relay 93 provided only that the output of comparator 90 is high (which is to say that X equals Y or that the
local licensee unique ID matches with the licensee unique
ID generated by the remote licensee unique ID generating
means comprising summer 89).
Comparator 90 together with gates 91, 92 and relay 93
comprise one particular form of mode switcher or switching
platform 83 of various kinds of code such as the code of
types D and U.
Industrial Applicability
The aforementioned may be applied either in dedicated
electronic hardware or by means of more generalized digital
computation devices such as microprocessors and the like
whereby digital code or software (which may incorporate at
least part of the code which, when executed, acts as a
licensee unique ID generator) is fully enabled only after
following a specified licensing procedure.
The above describes only some embodiments of the
present invention and modifications, obvious to those skilled
in the art, can be made thereto without departing from the
scope and spirit of the present invention.
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 lic-
14
5
10
15
20
25
~
35
40
45
50
55
60
65
ensee 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 authori~ and used for the purposes of checking by the
registration authori~ 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.
5,490,216
15
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 pro- 5
viding 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 10
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 15
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
20
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 25
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
16
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.
* * * * *
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?