`
`U3006799277BZ
`
`{12)
`
`United States Patent
`Colvin
`
`(10) Patent N0.:
`
`(45) Date of Patent:
`
`US 6,799,277 B2
`*Sep. 28, 2004
`
`(54)
`
`(75}
`
`(73}
`
`SYSTEM AND METHOD FOR MONITORING
`SOFTWARE
`
`Inventor: David S. Calvin, Commerce 'Ibwnship,
`M] (US)
`
`Assignee: 14 'lbcl‘tnologles, Inc., Commerce
`Township, MI (US)
`
`(‘l
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C‘. 154(b) by 0 days.
`
`This patent is subject to a terminal dis-
`claimer.
`
`{21)
`
`(22)
`
`(65)
`
`(63)
`
`(60)
`
`(51)
`(52)
`(58)
`
`(56)
`
`Appl. N0.: 09,818,819
`
`I-‘iled:
`
`Mar. 27, 2001
`Prior Publication Data
`
`US 20iiltfi034712 Al Oct. 25, 200]
`
`Related U.S. Application Data
`
`Continuation-impart of application No. 09535521, filed on
`Mar. 27, 2000, new Pat. No. 6,460,142, which is a continu-
`ation of application No. 09,090,620, filed on Jun, 4. 1998,
`now Pat. No. 6,044,471.
`Provisional application No. 601192284, filed on Mar. 27,
`2000.
`
`HIM-L 9732
`Int. Cl.7
`713,202; 705151
`U.S. CI.
`
`7137200, 201,
`Field of Search
`7137202, 193; 7091229; 70504.51, 52,
`53, 55, 57, 59
`
`References Cited
`
`U.S. PA'l'EN'I' DOCUMENTS
`
`4,796,220 A
`4,827,508 A *‘
`5,014,234 A
`5,182,770 A
`5,199,066 A
`5,287,403 A
`
`1.0989 Wolfe
`5t1989 Shear
`5099]. Edwards, in
`1t1993 Medvcezky et :11.
`3.31993 Logan
`2fl994 Samson
`
`70553
`
`705359
`
`5,341,429 A
`5,495,4ll A
`5,509,070 A
`5,548,645 A
`5,553,139 A *
`5,564,038 A
`5,579,479 A
`5,606,614 A
`5,638,513 A
`5,652,793 A
`5,717,756 A
`5,771,347 A
`
`80994 Stringer el all.
`231996 Ananda
`4.31996 Schull
`$1996 Ananda
`9.31996 Ross et al.
`102‘ 1996 Grant: et al.
`1121996 Plum
`2.31997 Brady at a].
`6.31997 Ananda
`7t’l997 l’rienl et al.
`2.31998 Coleman
`60998 Grant: ct at.
`
`(List continued on next page.)
`OTHER PUBLICATIONS
`
`Garceau el at, “General controls in a local area network”
`Feb. 1995, Ohio CPA Journal, vol. 54, #1, p. 24—29.*
`Magid, “Software Rentals Revisited—The growth of the
`Internet, intranets, and extrancts has revived the concept of
`renting software—and added a twist." Aug. 18, 1997, Infor-
`mationweek, n. 644-, p. 132.
`Li el al, Mattab Tutorial Jan. 3, 1999, http:ttwww.me.umn-
`.edutcoursestem4232ttuloria1.hlrnl.
`
`(List continued on next page.)
`
`Prt‘ttmtjv Exatttinerfiyaz Sheikh
`Assistant Examiner—Christopher Revak
`(74) Attorney. Agent, or Firm—Brooks Kushman RC.
`
`(57)
`
`ABSTRACT
`
`Systems and methods for monitoring, testing, distribution,
`and use of computer software with aswciated methods and
`systems for repeatedly contacting a software user and
`exchanging information. such as passwords. authorization
`information, marketing, advertising, or promotional infor-
`mation include associating a list of passwords with each
`copy or group ofeopies of computer software which must be
`entered at predetermined intervals to provide continued use
`of the software. Software monitoring and network license
`metering may be providing by storing information relative to
`software operation on a local computer or server and trans
`ferring the information to a remote computer or server at
`predetermined intervals.
`
`40 Claims, 17 Drawing Sheets
`
`
`
`am mun“:
`A!”:sww
`:
`mull!
`.
`m I nan-Ln on r)
`mama: wetsuit
`
`
`”fall cIM'mn-ou
`
` mil mum M'- n?
`
`Wm um I
`“mm
`I! m: It mind...
`mm sad-cry
`mm as:
`
`in
`
`LYFT 1035
`
`LYFT 1035
`
`1
`
`
`
`U.S. PATENT DOCUMENTS
`4‘
`
`5,790,664
`5,812,764
`5,842,124
`5,845,065
`5,845,077
`5,848,397
`5,862,299
`5,870,543
`5,870,610
`5,931,901
`5,940,074
`5,974,454
`5,974,461
`5,991,402
`6,023,268
`
`I!
`
`>>>>Zb>>>>ibbbl>>>
`
`831998
`911998
`1 1.11998
`1 23' 1998
`127'1998
`1211998
`13' 1999
`2.? 1999
`2.? 1999
`$1999
`$1999
`10,3 1999
`101' 1999
`l 1/ 1999
`232000
`
`Coley at a].
`Heinz, Sr.
`Kenagy el al.
`Come el al.
`Faweett
`Marsh et 8.].
`Lee et al.
`Renning
`Beyda
`Wolfe et al.
`Britt, Jr. el al.
`Apfel et al.
`Goldman et al.
`.1161 et al.
`Britt, Jr. el al.
`
`US 6,799,277 B2
`Page 2
`
`7091203
`
`386794
`
`272000 Barriiz et al.
`6,029,145 A
`412000 Slivka elal.
`6,049,671 A
`572000 Liff el al.
`6,068,156 A
`672000 1-‘awcelt
`6,073,214 A
`6,134,593 A * 10(2000 Alexander et al.
`6,182,144 Bl
`1.320101 England
`6,349,335 Bl
`212002 Jenney
`6,697,948 Bl *
`2.32004 Rabin et a].
`
`OTHER PUBLICATIONS
`
`7091229
`
`213K200
`
`Games, “Rumer Abnul Windenws 95 snooping program
`refuses to die" Aug. 17, 1995, The Gazelle.
`Duncan, “What ’5 New in thWare 3.2", Feb. 1998, Novell
`Research, pp. 1—12.
`
`* cited by examiner
`
`2
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 1 0f 17
`
`US 6,799,277 B2
`
`ozoz
`
`29.2255.mug;5mm
`
`
`5%.35:8.75in5%Egg:25%:fig
`
`
`
` mmgfié2.gmEmafizwmmfiwmmngow851255
`
`Em225:2$.35232&on$52$8
`
`mm_
`mm295anE?SalaamE
`
`mma232.58mo8s:
`magma5m:1.55
`mm¢>>tom
`
`A.‘$25528Empmflwfioflmw:m?55288BE20%m,22bwwwflwwfimm
`
`35:51?$85$2SEE2:239.295?:
`$2$8“5BE;582:
`
`we,oz
`
`5mm
`
`
`.E222322.3&2:.zozémez.222823.”.madamE92$335E5:$25:35238x?_
`
`
`
`
`
`
`\
`
`
`
`
`
`mapmxgzozq NM_.“N§Badge—2mmEm:wzfiauémum:mo“.qumfigmSSmmmq
`
`zQfi<E¢EE
`
`3
`
`
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 2 0f 17
`
`US 6,799,277 B2
`
`mm;
`
`mm
`
`agge
`
`
`5.2sz02memsE.BEBEwmou—EéfimozmmEmmmo2958393
`
`
`
`
`
`Edam:SE525:mmmScmm20563;?m5:221%.EAmi:cm
`
`
`
`zo_._.<E¢ou_z_mmmEmmmdFmE
`Ema2:sz“a'E
`
`mmgéé_,__Em33%5.:mean:m8m2
`ZigzfiohndzoEofinid.
`$93—28
`
`9m.
`
`33%no$2.$25528E8:29:.233828mm>3?
`
`3720:5154wmooxoEm:55:;4553.320:5an
`
`
`wwmEamDmmm¢mqam:55.29“D...
`
`
`$2$8”asaga$39%
`
`
`
`Q26.Em:.2meE33%.5:$28...3342.58:9»‘
`
`
`
`
`
`
`
`
`
`.05iEEEmEEwagon:.zoflqfimcmz‘.EzEEEoEwmznaam
`
`
`
`
`
`
`
`§\§mmEE3:32mm:8%?zOEQEEE::21;Ewas8.EggmagmaE:8:35:85.22%:325%23.35%
`
`
`
`
`
`
`wm_zQEEmEEwz_Exm<Ea2:
`
`
`.oiméuDEwaEm:352.52.Em:mop.mm<m¢EaBEE:qu
`
`mm
`
`
`
`
`
`$05282552054295:?
`
`
`
`35%3a$23:a2:2
`
`
`
`
`
`
`
`WE:ommEommxflmEmofimzzEmcEwEmammmmmuoma
`
`
`
`mmEEmso>m_SEEN—mmmq:9me
`
`4
`
`
`
`
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 3 0f 17
`
`Us 6,799,277 B2
`
`USER INSTALLs
`PRDGRAM
`
`USER ENTERS
`DISCRETE SERIAL NUMBER
`
`154
`
`
`l5
`SERIAL NUMBER
`
`INSTALLED
`?
`
`YES
`
`150
`
`I52
`
`N0
`
`_
`HE ENTER SERIAL NUMBER
`
`156
`
`CONTACT ASR FOR
`FIRST PASSWORD
`
`158
`
`150
`
`162
`
`
`IS
`' DOES
`
`
`USER DATABASE
`NO
`YES‘
`SERIAL NUMBER
`
`
`MATCH REGISTRA-
`ALREADY
`
`
`
`TION INFO?
`FIEGISJEFIED
`
`
`
`NO
`
`
`ASH REGISTERS SOFTWARE AND
`
`BEGINS BUILDING USER DATABASE
`
`
`
`164
`
`
`
`ATIS’ITHI‘AIIITIEfiffifi’éfififlfiI‘Dn
`
`IGDODflM-QDMS)
`
`APPLICATION
`OPERABLE FOR 30 DAYS
`
`PROGRAM CALCULATES THAT
`PASSWORD UPDATE IS NEEDED
`15 DAYS IN ADVANCE OF PROGRAM
`TERMINATION
`
`
`
`
`’53
`
`’79
`
`172
`
`STOP INSTALLATION AND
`ALERTUSER—TRAT-LICENSE
`TRRRUAATM
`MAY BE PIRATED AND TD
`CDNTACT ASH BY CLICKING
`BUTTON OR BY TELEPHONE
`
`PROGRAM SILENTLY
`CDNTACTs ASH
`
`’74
`
`we
`
`5
`
`
`
`US. Patent
`
`US 6,799,277 B2
`
`
`
`0DOm353%;Egg:Hnm,$3.555%
`Damage;-mam“Wm1mm.me53->I_‘w3533:-min8$58amamamma
`5Eggs:-$383::
`
`
`45.5%memo:Eugen;-was8E3”.2588256
`
`m$5.958::as:..swflmfimfimfl?”n
`
`
`
`5853:usingmozmzawm30>...me
`
`
`
`EN
`
`33805...-m><oon30.0mm
`
`
`
`gamuofim-22:5QO.252.
`
`2032”.
`
`GE8EE
`
`EN
`
`EN
`
`
`
`
`
`
`
`
`
` Exam;U35onwe-amJ2::E2&onE933295.599345:;\mE.253:95...8859:“5-33$528.0.22>me
`
`WNW
`
`«3ka
`
`335353.925cm5...:
`
`aka—.EEX-minam$55
`
`Sham—.25:-min.om9:1...
`
`menacwgfiq.943onazoomm
`
`mama—.255,.maneomEm=8
`
`55:33..-238EIC
`
`NE
`
`6
`
`
`
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 5 0f 17
`
`US 6,799,277 B2
`
`
`
`
`
`haI.zofiSJsz—"552:.ozazommmmmoo
`
`EN
`
`mmm
`
`
`
`\mmwIma:mommmoommK“gENl300mmszfiazqfi
`
`
`
`mum:>mommmhzm0%}...me
`
`ummlzo:.<._._<._.m2_”5m2;
`
`EmIchbxmem
`
`N3.|ESwsE.
`
`wwwImean24m
`
`EmI.memomama92:
`
`
`
`NmmIawn—2:2$.4sz
`
`
`
`
`
`
`
`.3“IE5axmmaaazazEmmmmS3%on
`
`.ENL80$52552azazemwmmoomfiwwmwwwwmfiw:
`
`
`.Nww$28.E:azazonEES7.452%mm522%.
`
`
`
`«aw:“atmamas”:mzazagms
`
`ENI882%$252338ahwwfimmmmwm
`
`
`
`
`
`~vmm[mooomamaHES.—szzomwmmmoo85$szmwmoo
`
`
`
`§‘ka
`
`
`
`Edge...”2—ammopmBEEzwwWES$24195
`
`
`
`ha.ImmmzszNEE:wz_ozon_mwmmoo
`
`
`
`mummmdgg>m$5.5szmnoo550mm4.9.2an
`
`
`
`
`
`aaaaaaaaaaaaaaanaaaaaaanam—maaaaannaanaaaaaauaanmanaa
`
`EN
`
`mum
`
`7
`
`
`
`
`
`
`US. Patent
`
`Sep. 28,2004
`
`Sheet 6 0f 17
`
`US 6,799,277 B2
`
` .
`
`£00295
`
`
`..0.0.0000..0_.0..
`
`
`
`.2505sz..0.=_._=o-10:01:04..
`
`
`
`
`
`
`
`
`......00M0080000¢E=...00.00.000.0._2.fi__...020000aafia..fi..§..fl8.§.____§._
`
`
`
`mcioozu00..:0»0.50:...
`Boos03:0c0005.:
`
`noonuuF—O9:0:£505a—EEEfiEE
`
`
`>03.5002:0.50:_naE3.0....0anm=°
`
`
`
`
`
`.comohoi
`
`
`
`
`
`
`..magi»........9000.
`
` ......0200000.g0.30.50.00.00.._.....
`.._..0..0..000,_0__...._
`
`
`
`....,_.__m__._.__0
`
`......m.“._0.000000....
`
`
`
`0000000085000002.
`
`can
`
`
`
`
`
`
`
`
`
`..........”_.venom—5.0620.2296
`...u....E.0:00th.zfimEBi.
`
`8
`
`
`
`
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 7 0f 17
`
`US 6,799,277 B2
`
`.w
`
`§Q
`
`5:22:E58».3.
`
`
`
`
`
`
`
`
`>=awmuuuaman:EczemaEwd....
`
`
`
`
`
`5..onEnigma50>uuumun:“Eu
`
`ooowquOroach-.5.Banana—mo.—
`
`.955
`58922
`
`:35...g5
`35,350:
`Ego“.
`swam
`
`
`
`
`
`.5535}5:83:92..........8...“.4.3.5.
`
`aw.
`
`9
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 8 0f 17
`
`US 6,799,277 B2
`
`
`
`k\~%....me3>9:5:83Eugen?Eucop—fig
`_.._.HI...L._.
`:ofihgfix83:25:ESE-.822:€38!
`
`
`
`...
`._....._.....nmu:.m_nohm.mofigmm3&5“:_._..:vM...2mm.
`
`
`
`
`
`
`n........._m....new“..._._.....__.__...._.._......_..._......m.G._._....fl
`
`
`.EEm1.83325.603.8can903mgaREE1%258#3:.8Buntocma..noafime2%n.CDmOhOEcr
`..wwmmfiméow2a82355038:88a..5...=9,
`
`.33..3.2"..5s58.mm...a.:9«i=83%:IQO—hho
`”_._......_.._........_..me“:..fimfim.gnaw...
`
`
`
`
`
`.53an;SEQ:S9.5..Eu:32E32:.
`
`..um—OFFOZ
`
`E.
`
`.952
`
`
`
`
`€222...on.bEfiqué.._;5:952;as“an:328:aEu:9»=.323553:32Q.3:
`
`2339.a;.355929.385.5.
`
`
`
`.3has:2Emguom252a..33mm”:2mcunsufiasis=Inigo:
`
`10
`
`10
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 9 0f 17
`
`US 6,799,277 B2
`
`
`
`
`
`
`
`TOW—Lam
`
`.
`
`EEOEms...
`
`8..5.52.2.3..
`
`
`83.:3:22....
`i.Ea...BEE
`\INUMT».....3:32....
`
`.23..»
`
`_u_._._3mL...
`
`.2:353
`
`E...u...fi=..
`
`Egan.»
`
`a.au...5I...«.I..3...:.§.—O
`
`
`
`.1...0...:Eur-Ii.
`
`h:&.ufl&u0
`5.3..3302.3“
`
`
`11
`
`__Esau”...
`._H.mafia....5”833.5%.
`.fin..53.“.22..
`
`
`_3525.59.5..wa
`
`
`
`
`
`
`
`11
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 10 Of 17
`
`Us 6,799,277 B2
`
`PROGRAM CALCULATES THAT
`PASSWORD UPDATE IS NEEDED
`- 15 DAYS IN ADVANCE OF
`
`PROGRAM TERMINATION
`
`PROGRAM OPENS BROWSER
`AND CONTACTS ASH FOR
`NEXT PASSWORD
`
`ASR CHECKS DATABASE AND
`COMPARES SERIAL NUMBER
`AND USER FILE TO REQUEST
`
`350
`
`352
`
`354
`
`
`
`HAS
`
`IS
`
`PASSWORD UPDATE
`OTHER USER
`
`
`INFORMATION CONSISTENT
`BEEN DOWNLOADED
`
`
`
`TO THAT SERIAL
`WITH USER DATA-
`
`
`BASE?
`NUMBER
`
`
`?
`
`
`
`353
`
`NO
`
`NO
`
`362
`
`364
`
`“UPLOAD
`_
`__
`NEXT OPERATIONAL
`PASSWORD (GOOD
`
`DO NOT UPDATE PASSWORD.
`AEERT'USER'THAT'EICENSE'
`15 ALREADY REGISTERED AND
`
`FOR NEXT 30 DAYS) USER'S SOFTWARE MAY BE PIRATED
`BUTTON OR BY TELEPHONE
`
`AND TO CONTACT ASR BY CLICKING
`
`32?”?
`
`12
`
`12
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 11 OH?
`
`Us 6,799,277 B2
`
`DECRYPT
`LICENSE FILE
`
`370
`
`374
`
`378
`
`
`
`372
`
`
`
`
`VALID
`YES
`ATTEMPT TO
`NOTIFY THE
`
`SERVER
`NOTIFY THE
`USER
`
`
`
`KEY?
`SERVER
`0F ERROR
`
`
`“0
`
`oecgglEDATE
`EXPIRATI
`
`380
`
`332
`
`334
`
`375
`
`39"
`-£er
`
`YES
`
`DISPLAY
`
`392
`
`> 15
`
`
`
`
`DAYS IN THE -FUTURE? RU”
`
`MEEFEFSEEE
`
`
`
`388
`
`“0
`390
`386
`
` YES
`
`
`CONNECT
`TO
`SERVER
`
`
`
`
`DOWNLOAD
`LICENSE,
`
`CONE. ABS.
`
`4
`
`
`DOWNLOAD
`LICENSE,
`
`CONE. ADS.
`
`
`
`13
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 12 0f 17
`
`US 6,799,277 B2
`
`AC SEPT
`ACTIVATI 0N
`KEY
`
`.
`
`YES
`
`422
`
`430
`
`ALREADY
`USED?
`
`N0
`
`420
`
`428
`
`N0
`
`LOG
`ERROR
`MESSAGE
`
`424
`
`434
`
`INFORM USER
`OF POSSIBLE
`MlS-TYPING
`
`42
`6
`
`446
`
`454
`
`YES
`
`436
`
`443
`
`450
`
`PRFOORAPT
`uses no a
`
`
`
`YES
`
`
`
`SAME AS
`IN DAT'IABASE
`
`
`
`NO
`
`LOG
`ERROR
`MESSAGE
`
`”0
`
`T
`MANY
`
`
`IfigTALLS
`
`?
`
`YES
`
`LOG
`ERROR
`MESSAGE
`
`438
`
`440
`
`442
`
`INFORM'USER
`OF LICENSE
`VIOLATION
`
`INFORM‘USE‘R
`OF LICENSE
`VIOLATION
`
`452
`
`444
`
`W I!
`
`14
`
`14
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 13 0f 17
`
`Us 6,799,277 B2
`
`ACCEPT
`ACTIVATE 0 N
`KEY
`
`470
`
`472
`
`474
`
`476
`
`478
`
`® MESSAGE
`
`LOG
`ERROR
`
`NO
`
`INFORM USER
`OF POSSIBLE
`
`MlS—TYPWG -
`
`EXIT
`
`YES
`
`488
`
`450
`
`
`ACT'VMED
`KEY?
`
`
`
`NO
`
`YES
`
`4
`
`99
`
`432
`
`434
`
`LOG
`ERROR
`MESSAGE
`
`INFORM USER
`OF LICENSE
`VIOLATION
`
`REVOKE KEY,
`INFORM
`AOMIN.
`
`492
`
`494
`
`REVDKED
`
`YES
`
`LOG
`ERROR
`MESSAGE
`
`INFORM USER
`OF LICENSE
`VIOLATION
`
`.EXIT
`
`4'86
`495
`
`505
`
`500
`
`502
`
`L0G
`ERROR
`MESSAGE
`
`INFORM USER
`OF LICENSE
`VIOLATION
`
`REVGKE KEY,
`INFORM
`ADMIN.
`
`504
`
`508
`
`$5? 14
`
`NO
`
`498
`
`
`RENEWAL
`PREVIOUSLY
`
`SENT?
`
`YES
`
`”0
`
`
`UPDATE
`
`
`ACCOUNT
`STATUS
`
`
`
`510
`
`15
`
`15
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 14 0f 17
`
`Us 6,799,277 B2
`
`1. PROCESS AOMINISTRATORS;
`
`53"
`
`M; (a) LOGIN ID.
`534 f (b) PASSWORD.
`536 f (0) FULL NAME.
`538 f (d) ACCESS RIGHT.
`54m,- (e) DATE OF LAST PASSWORD CHANGE.
`542/— (t) HASHED PASSWORD HISTORY.
`
`2. CATALOG OF PROTECTED SOFTWARE PROGRAMS:
`
`550
`
`sszf (a) UNIQUE PROGRAM IDENTIFIERS.
`554x (b) NAMES.
`556/ (c) VENDOR INFORMATION.
`553! (d) REVISION INFORMATION.
`560! (e) PRIVATE AND PUBLIC KEYS USED FOR EACH PROGRAM.
`
`3. ACTIVATION KEY DATABASE
`
`57"
`
`Hzf (a) PROGRAM IDENTIFIER.
`574*,- (b) ACTIVATION KEY.
`575-—/‘ (c) CREATION DATE.
`mf (:1) CUSTOMER ID (INITIAL BLANK).
`4. CLIENT DATABASE
`
`59"
`
`592_/- (a) UNIQUE RANDOM IDENTIFIER.
`594x (b) NAME.
`595/ (C) ADDRESS.
`Sggf-(d)-PHGNE—ANDFAX-NUMBERS
`goof (e) E-MAIL ADDRESS.
`602f (1) FIRST REGISTRATIONDATE.
`604!" (Q) DEMOGRAPHIC AND MARKETING INFORMRTIUN.
`
`5. CLIENTIPROGRAMTLICENSE DATABASE.
`
`510
`
`512—” (a) CLIENT ID.
`614—” (b) PROGRAM ID.
`f (0) FIRST SUCCESSFUL DOWNLOAD.
`
`31;, (a) FIRST UNSUCCESSFUL DOWNLOAD. W A?”
`620/ (3) LAST SUCCESSFUL DowN LOAD.
`622 J.— (1') LAST UNSUCCESSFUL DOWNLOAD.
`
`'
`
`16
`
`16
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 15 0f 17
`
`Us 6,799,277 B2
`
`524"— (0) CURRENT LICENSE EXPIRES DATE.
`525“» (h) STATUS IAGTIVEIREVOKE D)
`
`6. EVENT LOG:
`
`530
`
`WI (3) ADMINISTRATOR ID.
`534/ (b) CLIENT ID.
`max (0) PROGRAM ID.
`”sf (a) ACTIVATION KEY.
`540! (e) DATBTIME.
`542/" (1‘) TYPE CODE.
`545/ (g) DETAIL TEXT.
`523;. 1.5%
`
`650/. (3) ASSIGN A SINGLE RANDOM. 64-BIT MASTER PASSWORD TO THE BATCH.
`652/ (b) CREATE ONE UNIQUE ACTIVATION KEY PER COPY OF THE
`INSTALLED MEDIA MANUFACTURED.
`f (8) FOR EACH ACTIVATION KEY, CREATE A RANDOM 128-BIT ENCRYPTIDN KEY.
`654 f (d) ENCRYPT A 123-BIT BLOCK, COMPOSED OF THE MASTER PASSWORD
`656
`PLUS A RANDOM 64-BIT NUMBER, WITH THE ENCRYPTION KEY FOR
`EACH ACTIVATION KEY.
`
`w 145?
`
`670 \
`
`CD #
`
`672
`
`674
`
`676
`
`673
`
`Encrypted Key
`
`Encrypt (E3, Master Key + Randomfl)
`
`
`Encrypt {E1, Master Key + Randam())
`Encrypt (E2, Master Key + Randomfl)
`
`Encrypt (En, Master} Key + Randam())
`
`17
`
`17
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Sheet 16 0f 17
`
`US 6,799,277 B2
`
`E
`
`N E
`
`mum
`
`w-
`Q
`
`mE1JM“202%BE.__"memo:
`mica“:__unH-53%E332..._fl
`_._92$Edam:"m$25:$25:m“52mm”M£3m
`
`NE
`
`Em
`
`Em
`
`
`m52.5mu222%n
`
`9.52m
`
`omxotgm
`
`mzozmmzmt
`
`xmogmz
`
`man
`
`$23:
`
`“.3893
`
`own
`
`Em...
`
`29.53%;
`
`-5052...:-+$2.3
`
`52005
`
`$50:-zQEEEnE
`
`-x8525;-+wmz=5
`
`mum:
`
`zo_._.¢._.mxmo§
`
`zo_Eo_._n_n_¢
`
`8k
`
`«E
`
`van
`
`8h
`
`EK
`
`NE.
`
`3K
`
`m3
`
`18
`
`18
`
`
`
`
`
`
`
`
`US. Patent
`
`Sep. 28, 2004
`
`Shect17 0f17
`
`US 6,799,277 B2
`
`New
`
`52mm
`
`:48:
`
`own
`
`mHoEmm
`
`mu>mmw
`
`afim
`
`mhm
`
`new
`
`emu
`
`19
`
`19
`
`
`
`
`
`
`
`US 6,799,277 B2
`
`1
`SYSTEM AND METHOD FOR MONITORING
`SOFTWARE
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation—impart of U.S. appli—
`cation Ser. No. 09535321 filed Mar. 27, 2000, now 0.3.
`Pat. No. 6,460,142 which is a continuation of U.S. patent
`application Ser. No. 09i090,620, filed Jun. 4. 1998, now US.
`Pat. No. 6,044,471, the disclosures of which are hereby
`incorporated by reference in their entirety. This application
`also claims priority to US. provisional application Serial
`No. 60t192,284 filed Mar. 27, 2000 titled “System and
`Method for Monitoring Software," the disclosure of which
`is hereby incorporated by reference in its entirety.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to systems and methods for
`monitoring, testing, distribution, and use of computer soft-
`ware with associated methods and systems for repeatedly
`contacting a software user and exchanging information, such
`as passwords, authorization information, marketing,
`advertising, or promotional information, quality assurance
`information, and network monitoring and metering.
`2. Background Art
`Software developers are often victims of illicit copying
`and unauthorized use of their software in violation of
`
`contractual obligations imposed by licensing agreements
`and subject to civil and criminal penalties under various
`domestic and foreign laws. Unauthorized entities range from
`a relatively small percentage of the total users to an over—
`whelming majority of illegal users. Likewise, unauthorized
`use may range from an “extra” copy on a laptop computer
`or for an office mate to “try” the software, to understating the
`number of users for a “site" license or networked version of
`
`the software, to wholesale copying and black market selling
`or distribution of pirated software. Such unauthorized use
`not only amounts to theft of the developers’ intellectual
`property, but also reduces the number of programs sold and
`therefore the associated profitability of the developer. This
`may ultimately diminish the creative effort expended by the
`software developers due to the reduced financial incentive.
`The advent of the Internet has contributed to the prolifera-
`tion of pirated software. known as “warez", which is easily
`located and readily downloaded.
`Various strategies have been employed to make unautho—
`rizcd duplication and use of software more difficult. One
`such approach is to provide a hardware “key” which is
`typically installed in the parallel port of the computer to
`provide a software interlock. If the key is not in place, the
`software will not execute. This method is relatively expen-
`sive for the developer and cumbersome for the authorized
`user while remaining vulnerable to theft by duplication of
`the hardware key.
`Another approach requires the user to enter a serial
`number or customer identification number during installa-
`tion of the software. Missing or invalid registration infor-
`mation prevents installation of the software. This approach
`is easily defeated by transferring the serial number or
`customer identification number to one or more unauthorized
`users.
`
`Yet another approach requires registering the software
`with the manufacturer or distributor to obtain an operational
`code or password necessary for installation of the software.
`
`‘JI
`
`It)
`
`15
`
`toU!
`
`3!]
`
`4E}
`
`45
`
`SD
`
`55
`
`60
`
`2
`Again, once the operational code or password is obtained, it
`may be perpetually transferred along with pirated copies to
`numerous unauthorized users.
`
`Various copy protection strategies have been employed to
`reduce the number of unauthorized copies available. This
`approach is generally disfavored by users who may have a
`legitimate need to make backup or archival copies or trans-
`fer a copy to a new computer or hard drive.
`In addition to revenue lost due to unauthorized copying of
`software, developers expend significant
`resources to
`research and develop new software features which will be
`embraced by users. The increasing complexity of software
`combined with the wide variety of hardware platforms
`makes it virtually impossible for a developer to test every
`combination of features for compatibility and proper
`operation, particularly while subject to market pressures to
`release new versions of the software on a regular basis.
`Compatibility issues may arise when a particular application
`is used with one or more other applications which may be
`specific to a particular field or discipline. Minor errors or
`compatibility issues often are not reported by users but
`contribute to overall dissatisfaction with the product and
`may result
`in reduced sales for future versions. Product
`research relative to the strengths and weaknesses of the
`software and the desirability of new features is often costly
`and time consuming which contributes to the market sensi-
`tive release of new versions of the software.
`
`While prior art strategies have enjoyed various levels of
`success in reducing unauthorized use of software, they often
`impose a significant burden on the authorized users or are
`easily defeated by unauthorized users. As such, software
`developers need an apparatus andtor method for reducing
`unauthorized use of software which does not burden the
`
`authorized users to dissuade them from purchasing and
`using the protected software.
`
`SUMMARY OF THE INVENTION
`
`As such, it is an object of the present invention to provide
`systems and methods for monitoring, testing, distribution,
`and use of computer software.
`invention is to provide
`Another object of the present
`systems and methods for repeatedly contacting a software
`user and exchanging information, such as passwords, autho-
`rization information, marketing, advertising, or promotional
`information.
`
`A further object of the present invention is to provide
`systems and methods for monitoring software use to reduce
`unauthorized software use through repeated contact with
`users.
`
`invention is to provide
`Another object of the present
`systems and methods for monitoring, metering or auditing
`networked computers having access to particular computer
`software for compliance with software licensing terms.
`Yet another object of the present invention is to provide
`systems and methods for improving software quality assur—
`31366.
`
`A further object of the present invention is to provide
`systems and methods for collecting operational data relative
`to various software features which may include program use,
`errors, help requests, and the like.
`In carrying out
`the above objects and other objects,
`features, and advantages of the invention, a system and
`method for generating a plurality of authorization codes for
`use in monitoring software to reduce unauthorized copying
`or use of the software include repeatedly requiring a user or
`
`20
`
`20
`
`
`
`US 6,799,277 B2
`
`3
`user computer to obtain an authorization code upon expiran
`tion of an authorization interval for continued operation of
`the computer software. in one embodiment, the system and
`method include assigning a unique customer code with a
`software developer, publisher, or distributor, generating a
`serial number for each copy of the computer software,
`generating a password code identifying a plurality of pass—
`words or a password algorithm for each copy of the
`software, and combining the customer code,
`the serial
`number, and the password code to form an authorization
`code for each copy of the software. In one embodiment, the
`system and method require a user of the software to contact
`an authorized software representative during installation of
`the software, collect registration information from the user
`or the user computer including an activation key or code,
`and determine whether the user is an authorized user based
`
`on some or all of the registration information and the
`activation key or code. The codes corresponding to the
`activation on key or code based on the determination of
`whether the user is an authorized user.
`
`In another embodiment of the present invention, a system
`and method for monitoring computer software installed on a
`plurality of computers in communication with one another
`or a central computer to form a computer network include
`associating an activation code or password with the com-
`puter software for authorizing one or more copies of the
`software to be installed on computers associated with the
`computer network, the activation code or password corre—
`sponds to a plurality of authorization codes or passwords
`(which may be identical if desired), collecting registration
`information from one or more computers or servers associ-
`ated with the computer network during installation of the
`computer software, providing a first authorization code or
`password from the plurality of authorization codes or pass
`words for the software to authorize operation of the com—
`puter software for a first interval, and requiring entry of
`another one of the plurality of authorization codes or pass-
`words for each copy of the computer software to continue
`operating beyond the first interval.
`Systems and methods for monitoring computer software
`to provide quality assurance and marketing information to
`software developers andr‘or remote monitoring of network!
`site license compliance are also provided.
`In these
`embodiments, the systems and methods may include storing
`information relative to use of the computer software and
`automatically transmitting the stored information to an
`authorized software representative at predetermined inter-
`vals.
`In one implementation. a system and method for
`monitoring computer software used by a plurality of com~
`puters connected to a local server to form a
`local area
`netwurk to reduce unauthorized use of the computer soft-
`ware include monitoring a number of computers using the
`computer software, storing information associated with the
`computers using the computer software on the local server.
`and repeatedly transferring the stored information to a
`remote server.
`
`The present invention provides a number of advantages
`relative to prior art systems and methods for monitoring,
`testing, distribution, and use of computer software. For
`example, the present invention allows for complete opera-
`tional and pricing flexibility while providing ongoing con-
`tact with authorized users and reducing unauthorized use of
`software. The global quality assurance capabilities of the
`present invention afl'ord software developers the ability to
`fully audit
`their software applications to identify the
`strengths, weaknesses, use, andt'or errors of various software
`features. This feature of the present invention may be used
`
`4
`for complete statistical control during and after beta test
`cycles including full monitoring of errors, conflicts, use
`patterns, etc. eliminating reliance upon human reporting and
`research. The quality assurance features of the present
`invention may also be used to provide a complete fault or
`error log of program conflicts or shutdowns with associated
`error codes of all programs in use, worldwide, in addition to
`a complete log of non-fatal errors of all programs in use on
`a particular computer. Likewise, monitoring of use patterns
`including time of use, most used features and tools, and use
`and context of help screens, may be provided through local
`storage of information which is subsequently transferred to
`a remote server at predetermined intervals. The flexibility
`associated with the present invention accommodates a wide
`range of audit parameters for use in quality assu ratio: as well
`as network license metering and monitoring. Additional
`flexibility is provided in that the various features of the
`present invention may be used alone or in any combination.
`The above advantages and other advantages, objects, and
`features of the present invention, will be readily apparent
`from the following detailed description of the best mode for
`carrying out the invention when taken in connection with the
`accompanying drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`is a block diagram illustrating one
`In and If)
`FIGS.
`embodiment for software monitoring to reduce unauthorized
`use according to one embodiment of the present invention;
`FIG. 2 is a block diagram illustrating one embodiment for
`initial
`installation of computer software for a system or
`method for monitoring software according to the present
`invention
`FIG. 3 illustrates an authorization or activation code and
`
`related password sequence tables according to one embodi—
`ment for monitoring software of the present invention;
`FIGS. 4n and 4b illustrate generation of an activation code
`and associated password entered by a user for continued
`operation of protected computer software according to one
`embodiment of the present invention;
`FIGS. 5—7 illustrate messages which provide information
`to a user of protected software during initial installation or
`subsequent password updates according to one embodiment
`of the present invention;
`FIG. 8 illustrates representative information including but
`not limited to advertising, marketing, or promotional infor-
`mation which may be transferred during initial installation
`or a subsequent password updates according to one embodi-
`ment of the present invention;
`FIG. 9 is a block diagram illustrating operation of a
`system or method for monitoring software including a
`license file or password update process according to one
`embodiment of the present invention;
`FIG.
`II] is a block diagram illustrating operation of a
`system or method for automatically renewing or updating a
`password according to one embodiment of the present
`invention;
`FIG. 11 is a block diagram illustrating operation of a
`system or method for server registration and validation of an
`activation key according to one embodiment of the present
`invention;
`FIG. 12 is a block diagram illustrating operation of a
`system or method for server license file renewal according
`to one embodiment of the present invention;
`FIGS. 13¢: and 13b illustrate a representative database for
`use in facilitating batch and interactive processing of moni-
`
`‘JI
`
`It)
`
`15
`
`toU!
`
`3!]
`
`4E}
`
`45
`
`SD
`
`55
`
`60
`
`21
`
`21
`
`
`
`US 6,799,277 B2
`
`5
`
`toring functions administered by an authorized software
`representative according to one embodiment of the present
`invention;
`
`FIGS. 14¢: and 14b illustrate a system or method for batch
`distribution of authorization information which may be
`encrypted according to one embodiment of the present
`invention;
`FIG. 15 is a block diagram illustrating a representative
`system for monitoring software according to one embodi-
`ment of the present invention; and
`FIG. 16 is a block diagram illustrating an alternative
`embodiment of a system for auditing or metering network
`software which may include various quality assurance fea—
`tures according to one embodiment of the present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTtS)
`
`As will be appreciated by one of ordinary skill in the art,
`the various block diagrams illustrating operation of a system
`or method for monitoring software according to the present
`invention may be implemented using one or more general
`purpose computers, dedicated hardware, or a combination of
`general and special purpose hardware and software. The
`various functions or steps illustrated are preferably ell’ected
`by a programmed computer unless otherwise indicated.
`Various steps or functions may be performed manually by a
`software administration or a computer user without depart—
`ing from the spirit or scope of the present invention. As will
`also be appreciated by those of skill in the art, the illustrated
`steps, functions, or control logic may be implemented using
`any of a number of known programming and processing
`techniques or strategies and is generally not limited to the
`order or sequence illustrated. For example, interrupt or event
`driven processing may be used to capture various informa—
`tion relative to program errors or feature use. Likewise,
`parallel processing, multi-tasking, or multi-threaded systems
`and methods may be used to accomplish the objectives,
`features, and advantages of the present invention. The inven-
`tion is independent ofthe particular programming language,
`operating system, processor, or circuitry used to develop
`andfor implement
`the control logic illustrated. Likewise,
`depending upon the particular programming language and
`processing strategy, various functions may be performed in
`the sequence illustrated, at substantially the same time, or in
`a different sequence while accomplishing the features and
`advantages of the present invention. The illustrated func-
`tions may be modified, or in some cases omitted, without
`departing from the spirit or scope of the present invention.
`Although not explicitly illustrated, various steps or functions
`may be repeatedly performed depending on the type of
`function and the type of processing employed.
`As described in greater detail below, the present invention
`provides the capability of integrating various software moni-
`toring features to provide software security, advanced
`e-commerce marketing and advertising concepts. global
`quality assurance, and network license auditing, monitoring,
`and metering. Depending upon the particular application,
`these features may be used alone or in any combination.
`Those of ordinary skill in the art will recognize that “pass-
`words” and "authorization codes or keys" may be used
`interchangeably unless otherwise noted. Similarly, “activa-
`tion" codes or keys typically represent the firs “authoriza~
`tion code” or “password" entered during initial registration
`of the computer software. As will also be appreciated,
`authorization “intervals” generally represent a metric for
`measuring use of a particular software application program.
`
`‘JI
`
`It)
`
`15
`
`toU!
`
`3!]
`
`4t}
`
`45
`
`SD
`
`55
`
`60
`
`6
`limited to random,
`“Intervals" may include but are not
`pseudo-random, regular,
`irregular, event-triggered,
`time-
`based, calendar-based, or other suitable measures for deter-
`mining use of the monitored computer software. Interval
`metrics may also include individual or aggregate program
`execution time or number of program eitecutions,
`for
`example.
`A security feature according to one embodiment of the
`present invention should dramatically reduce the piracy rates
`for software developers inc