throbber
a2, United States Patent
`US 6,189,146 B1
`(10) Patent No.:
`Feb. 13, 2001
`(45) Date of Patent:
`Misraetal.
`
`US006189146B1
`
`(54) SYSTEM AND METHOD FOR SOFTWARE
`LICENSING
`
`Primary Examiner—Reba I. Elmore
`(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
`
`(75)
`
`Inventors: PradyumnaK. Misra; BradleyJ.
`Graziadio, both of Redmond; Terence
`R.Spies, Kirkland,all of WA (US)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`(*) Notice:
`
`Under 35 U.S.C. 154(b), the term of this
`patent shall be extended for 0 days.
`
`(21) Appl. No.: 09/040,813
`“44.
`(22)
`Filed:
`Mar.18, 1998
`(SL) Mts C0 cececeeeccccssesssessseeecceseessneeeseeeeesaee GO6F 17/40
`(52) US. Cd. once ecceeeeeseeceeeeeseeeees 717/11; 380/4; 380/25
`(58) Field of Search ......00..ee 395/712; 701/1;
`380/3, 4, 30, 44, 25; 717/11
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`4,924,378 *
`5,138,712 *
`5,204,897 *
`5.343.524 *
`5,553,143 *
`5,671,412 *
`5,724,425 *
`5,745,879 *
`5,790,677 *
`
`5/1990 Hershey Qt al. eeeeeeeeeee 713/201
`
`8/1992 Corbin ........
`- 713/200
`
`«. 380/4
`4/1993 Wyman ...
`....
`” 3830/4
`8/1994 Muetal.
`
`9/1996 Ross etal. ..
`eee 380/25
`
`9/1997 Christiano.......
`.. 707/104
`
`3/1998 Changetal.
`.. 380/25
`4/1998 Wyman.......
`w 705/1
`
`8/1998 Fox et ale ccccssssssesscsssseesessssees 380/24
`
`(57)
`
`ABSTRACT
`.
`.
`.
`.
`A software licensing system includes a license generator
`located at a licensing clearinghouse and at least one license
`server and multiple clients located at a company orentity.
`When a company wants a software license,
`it sends a
`purchase request (and appropriate fee)
`to the licensing
`clearinghouse. The license generator at the clearinghouse
`creates a license pack containing a set of one or more
`individual software licenses. To prevent the license pack
`from being copied and installed on multiple license servers,
`the license generator assigns a unique license pack ID to the
`license pack and associates the license pack ID with the
`particular license server in a master license database kept at
`the licensing clearinghouse. The license generator digitally
`signs the license pack and encrypts it with the license
`server’s public key. The license server is responsible for
`distributing the software licenses from the license pack to
`individual clients. When a client needsa license, the license
`server determines the client’s operating system platform and
`grants the appropriate license. To prevent an issued license
`from being copied from one client machine to another, the
`software license is assigned to a specific client by including
`:
`ae
`5
`:
`a client ID within the license. The software license also has
`a license ID that is associated with the client ID in a database
`record kept at the license server. The license server digitally
`signs the software license and encrypts it using the client’s
`public key. Thelicense is stored locally at the client.
`
`* cited by examiner
`
`20 Claims, 8 Drawing Sheets
`
`20
`
`>
`
`28 —
`Client Image,
`Client Sig: 2Nee
`118
`License Server
`Client Image
`Installer
`
`122)
`
`System ID
`
`130
`
`26
`poseRocacncnenononrers
`| Licenser Generator
`|
`
`MasterLicense
`Databases
`
`%
`32
`cece eeuneeeeeeNe
`Intermediate Server
`
`
`-
`128 Cc
`Legacy
`[7
`Client
`Licensing
`License
`
`
`Store
`Unit
`
`
`Request
`Handler
`124
`V7
`| Challenge
`Client
`Authenticating
`Module
`Response
`
`
`
`}
`102
`foeense|| System 1D
`:;
`\
`Producer
`
`
`
`“Nandi} License
`114 +1 Secure License
`
`
`Requester
`i757 Store
`[ca
`104
`Handler
`Request
`
`
`
`
`Table
`Table
`134
`96.
`_pe 106 116
`
`(LSCertificate,|.i|Installer f_ am eee
`
`
`
`
`
`
`
`
`140
`!
`Purchase Request
`License
`#tisonees)
`Cache
`see
`142
`System ID
`
`
`
`
`
`
`eee
`
`126
`
`400
`
`120
`
`Client Image
`Cache
`
`ws
`
`:
`Granting
`Module
`
`i
`
`Icense
`
`Fac
`
`110
`
`
`
`
`
` (SSE|
`
`:
`
`Licensefor
`Client 1D
`
`132
`
`Client
`
`0.
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 1 of 8
`
`US 6,189,146 B1
`
`aan
`
`porocarrrrnateneeeennecmmennannmenne22
`Clearinghouse
`‘
`
`26
`
`
`
`
`License
`Generator
`
`aefesecneeccecneeee
`|
`
`24
`
`28
`
`Company’
`
`License Server
`
`
`
`
`
`30(5)
`
`Client
`
`
`
`
`30(6)
`
`Client
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 2 of 8
`
`US 6,189,146 B1
`
`v8
`
`c6
`
`
`
` alr
`
`
`98yu¢)Buissecolg
`
`
`
`HOd[elasyeondoonjeubeyy4SIQPJEH|fof
`
`
`
`WdeauSIC@AUg
`Buyeiado
`ejeq|sainpoyy7weiboldJaUIO
`
`uoyeajddy|Buyeiedo
`
`swelboldwa}sks
`
`weJBodJEuIO
`ejeqwesbold
`
`OsplA
`
`Jaydepy
`
`sngwajsks
`
`
`
`
`
`
`
`
`
`
`
`aS
`
`YJOMJON
`
`
`
`sdeLa}u|
`
`eoeLeIu|vehSOBL9IU]
`
`
`
`eoepeyu|soepayu|
`
`
`
`
`
`
`
`
`pueoqhey92blcl
`OL~\
`
`IPR2021-00663
`ANCORA EX2022
`
`ozula1sAS
`
`eZ
`
`suelbold
`
`uojweoddy
`
`pL
`
`so|npo-w
`
`
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 3 of 8
`
`US 6,189,146 B1
`
`Ol
`¢'‘1''‘4t'‘tt''''t1't''','',’V1’,,’‘’,'''4\
`
`d
`
`
`
`wa}sksasusol7
`
`
`
`asusol]
`ebusyjeyuD
`
`Jaysanbay
`Jo}jpuey
`
`GELvel
`
`QIjuealD
`
`asuodsay
`
`JO}@susoI7
`
`210}
`
`wun
`
`@susolq
`Bulsuedl7
`
`Jo|puey
`
`OZ
`
`CDez
`
`
`
`JBAIOSS}eIpSuUajzu|
`
`JUSI|D
`
`|waysks
`
`
`
`ysonbeyJ9;/2}SU]
`
`ebeu|Ua
`
`aBualjeuD
`Buyeoqueyyny
`
`ebeuy|jual|D
`
`Bunuess
`
`3inpow
`
`OLL
`
`Wald
`
`ainpoy
`
`Que)
`
`‘abeUa
`
`
`
`BisJUaIID
`
`
`
`ysanbeyaseyoung
`
`‘aJLOyI9D$7)
`
`(sasuacl]#“UUOPeld
`
`
`
`@SUsd!]JaISeW
`
`seseqejeq
`
`esueolq
`
`Jaonpold
`
`ysanbey
`
`Jajpuey
`
`‘''''’‘'‘'‘’1‘'''‘t''It1It'1't11't'1,''1'',4':'''‘:
`
`Wal|D
`
`@susol]
`
`eyoe9
`
`
`
`G|waysks
`
`cr
`
`
`
`"YWe9
`
`
`
`OvOL}yokedasuaolq
`
`
`JEANIES—sa|jeysu|
`
`prnatteeeennneneeeeeebienen.
`
`
`
`F-cateieieienedaienanenanenenetanietateteietataiatatateieiatateteteieteiatetateeateaetatens?..
`
`
`
`’,
`
`v7OF
`
`
`
`801asuaolq
`
`yoed
`
`
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 4 of 8
`
`US 6,189,146 B1
`
`OSL
`
`
`
`puaspuesjesauayg
`
`
`
`ysonbaysseyoind
`
`
`
`9zJAAIaSaSueor7
`
`JosinjyeuBbisAya,
`
`esnouBbuies|D
`
`
`
`asuedlq}dA109q
`
`ud$7
`yBuisn
`
`
`
`
`
`CI498dBsusa!7ayenjeag
`
`OL
`
`
`
`
`
`yoed8susol7|je}Su|
`
`
`
`esusdl]eunoesul
`
`210}
`
`
`
`pennnanananeeeeeeee-ee,
`
`901
`
`
`
`ysanbeyeseyoind
`
`alyonpoig
`
`sor7
`
`
`
`yoegesuaary
`
`poubissy-uoN
`
`Sasueol]
`
`
`
`dl492gesueo!q
`
`
`
`soinjeajpeysenboy
`sasuaalyjoAyuendy
`adh)woe,
`QJLIIJIWIDST
`yoedasus]ydAuougm
`
`
`9zJoye1BUdySsusor]
`Ja}SeWUlUONeWIO}U]
`
`yoegesueorubisyl
`
`
`GIyoedayelossy9S1
`I]AeYUMYOR,
`
`ysenbeyauojsSI
`
`
`aneslyBuisy)ands
`asugdl7]932919
`
`@SUuso!]WIN}
`HTHOYBis)UH
`@SUddI7]UM
`dqesues'
`
`prone
`
`JOAI9S
`
`Yoed
`
`cSh
`
`O91
`
`BSI
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 5 of 8
`
`US 6,189,146 B1
`
`
`ayoeDesuadlqAland|i
`rerenemceegeennnnnnnneeeeeee
`
`
`
`
`
`
`
`JOAIOS@SUsdI7
`MONJsenbey
`WOlJSUI]
`
`
`
`O€}UaIID
`
`
`
`yOOUUODWwWIGNS/qiuieiskgJojs]pues
`
`ysonboy|yONPolgpaydeoybl
`|payelay|sql
`
`ZEJOAIOSO}eIPSU}U]
`
`
`
`
`
` |(eiqenene1)|e!pue|}ual|I9pues|I3uaI19!asusol]asueoryALAA
`
`esuedl]
`
`épaidxy
`
`9}9|dwW09
`
`uol2euu0s)
`
`L
`
`98L
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 6 of 8
`
`US 6,189,146 B1
`
`910}SpueydAI09q
`
`Bbc9b2vieand
`
`
`
`JOJOSF)WdOjU]
`
`uonoefay
`
`
`
`uonselayuonoefay
`
`
`
`
`
`USI]WOU]uonoefeywinjay
`
`A90z
`
`a@suedl]
`
`
`
`a}e|dwoypue
`
`uoljo8UuU0D
`
`esusorq
`
`
`
`yyesuaol]ydAloug
`
`
`
`98>IGN,S,jUsl|D
`
`
`
`IPR2021-00663
`ANCORA EX2022
`
`9SUddI7]MONPueMIO4
`
`
`
`asuadl]asusol]uBIs
`
`‘S
`
`ST
`
`K
`
`Ole
`
`
`
`v0Zpue9suaolues)
`
`91qelVOsyepan
`
`
`
`3J0}Sasusor]AenyD
`
`
`
`OEJSDJEIBAIBSS]JEIPOLWWS}U]
`
`
`
`8ZJBAIaSSsusorT
`
`Bgl
`
`MON}senboy
`
`asusory
`
`‘a|wayshs
`
`O61
`
`diynpolg
`
`JUa!|Dsbuayeyo
`
`Ayonuauyny
`
`96
`
`O{puodsey
`
`eBusyeyD
`
`
`
`abuayjeuDabuajeuD
`
`pseMo4
`
`aBuayeyD
`
`
`
`esuodsay
`
`
`
`esuodsayasuodsay
`
`psemio4
`
`a}eJ8Ud5
`
`eBuayeyD
`
`esuodsay
`
`éJadold
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 7 of 8
`
`US 6,189,146 B1
`
`j
`
`ySeHWNnjey
`
`anjeA
`
`JoJaSAWojUy
`
`uonoafay
`
`
`
`yual|OwwiqngaLws|!e6eui}JUS]!|!|zz|2GIOAIaS
`
`(aBew)juat|D|juat|D
`
`
`Q|eeMyos||!i&8yoesul
`
`
`
`
`
`
`
`O€}USIID
`
`|Syelpeueyul
`
`
`
`8?JBAIBSSSU90!7
`
`‘aBua|leyo)yseH|||ebuayeug|0}eBualleyopuas!!||8zz
`
`JUSersujey
`
`!
`
`!ayoe)woebew)
`
`
`
`‘ebueyjeyo)ysey
`
`
`
`(abew)yualD
`
`uojoafay
`
`
`
`uonosfeyWwnjey
`
`vee
`
`sm
`
`paysiiqeysy
`
`ON
`
`
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 13, 2001
`
`Sheet 8 of 8
`
`US 6,189,146 B1
`
`CSC
`
`DIOsoejday
`
`yokeU!esUusa!7
`
`0SZ2
`
`SIT
`
`PIO
`
`ove
`
`yOOUUODWlugns
`‘g|wajshs
`QIPNpoed
`papesbdn
`@susorq
`asusolq
`vve—on
`
`pepeiBdnpuemio4
`
`asuseor]pajdescoy
`
`epeiidnjsenbay
`8SUsd!7]PIOO}
`Z4U0ISIBAPIO
`
`JOySs!I"]puss
`puesuaAias
`pue9susolq
`SQ]NPold
`uonosuu0s
`JOpauidxy
`aje|dwoy
`
`cLb
`
`OL}
`
`jsonboy
`
`Ove
`
`esusor7Aland
`
`ayoey
`
`MSPIOpues
`
`@suaolq
`
`OeUSD
`
`
`
`ZeJOAISSa}elpauwazu|
`
`PLL
`
`
`
`8dJOAIBSBSuaol7
`
`PIO
`
`‘asuaolq
`
`|wayshs
`
`9b2
`
`epeiBdn
`
`L9IQEIIEAY
`
`papesbdy
`
`esuaory
`
`8r~
`
`so,
`
`
`
`poepeibdppues
`
`@SU9oI7
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`
`
`
`
`
`
`
`
`
`

`

`US 6,189,146 B1
`
`1
`SYSTEM AND METHOD FOR SOFTWARE
`LICENSING
`
`TECHNICAL FIELD
`
`This invention relates to systems and methodsfor licens-
`ing software. This invention further relates to systems and
`methods for enforcing software licenses.
`
`BACKGROUND
`
`Software licensing has historically been based on a “trust”
`model in which the user (i.e., licensee) is presumed to be
`honest and trustworthy and to abide by the legal require-
`ments of the license. Under the trust model, a software
`license typically accompanies a software product to explain
`the terms of use. For instance, the software license might
`dictate that the program codeis to be installed on only one
`computer, and may be used to make one backup copy.
`Commontypesof licenses include “shrink wrap”licenses,
`“online” licenses, and “site” licenses. A “shrink wrap”
`license is a license that accompanies each software product
`that
`is sold individually in a shrink-wrapped package
`throughretail stores. The user is typically assumed to accept
`the terms of the shrink wrap license upon breaking the seal
`of the package, or the container that holds the disk itself.
`An “online” license is one that accompanies software
`products that are downloaded online, such as from the
`Internet. The license is typically presented to the user prior
`to downloading the code. The user is presented with a choice
`to accept or reject the license. If the user accepts the license
`(e.g., by clicking an “Accept” button on the screen), the user
`is presumed to have accepted the terms of the license and the
`code is downloaded to the user’s computer.
`A “site” license is a single license that allows installation
`of multiple copies of software on many different computers
`at a particular site or manysites. It is commonly usedto sell
`software to corporations, firms, or other entities having
`many computers. The purchaserpaysfor a certain numberof
`copies (e.g., hundreds or thousands), and the site license
`enables the purchaser to install that many copies on its
`computers. The site license is beneficial because the soft-
`ware vendor need not supply a large number of program
`disks, but merely supplies one or a few copies of the
`software and lets the purchaser install the copies without
`violating the agreement.
`Each of the above license arrangements assumesthat the
`purchaser is honest. The software purchaser must abide by
`the license terms in orderto legally use the software. If the
`purchaserfails to abide by the provisions, the purchaser can
`be charged with civil and criminal violations.
`However, enforcement of such licenses is impractical, if
`not impossible. Unscrupulous users might make multiple
`copies of the software code and install it on more computers
`than the license allows. Yet, software vendors cannot begin
`to monitor these abuses because they occurin the privacy of
`the home or company. Thus,it is believed that the software
`industry loses a large percentage of revenues each year
`simply dueto illegitimate use of software by the licensees.
`This loss does not even accountfor the problems of overseas
`pirating.
`Another problem with conventional software licensing
`practices concerns internal monitoring and bookkeeping on
`the part of large-site licensees. In most cases, the licensees
`want to comply with the terms of the software licenses, but
`are unable to adequately track the software as it is used
`throughoutthe site. For example, a large corporation might
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`purchase several thousand copies of the software and begin
`installing the copies. However, computers and personnel
`change over timeandit is difficult to centrally monitor how
`many copies have been installed, whether the copies have
`expired, whether they need upgrading, and SO forth.
`Accordingly, there is a need to develop a new approachto
`licensing software in a mannerthat assures that the terms are
`being meetand assists the licensee with monitoring whether
`it is in compliance with the software license.
`SUMMARY
`
`This invention concerns a system and methodfor licens-
`ing software. The system and method provides confidence to
`the vendorthat the software license is being complied with,
`while also assisting the purchaser in monitoring its own
`compliance with the license.
`According to one aspect of this invention, computer
`software licenses are electronically issued as digital certifi-
`cates that can be distributed in one-to-one correlation with
`individual client computers andtraced to an issuing author-
`ity.
`According to another aspect, the system includesa license
`generator located at a licensing clearinghouse and at least
`one license server and multiple clients located atoraffiliated
`with a company or other entity. Because the clients might
`not have network connectivity to the license server, one or
`more intermediate servers may act as an intermediary for the
`clients. These intermediate servers are otherwise common
`servers that provide resources to clients, but with the added
`ability to facilitate connectivity to the license server for
`purposes of distributing software licenses to the clients.
`When a company wants a software license, it sends a
`purchase request (and an appropriate fee) to the licensing
`clearinghouse. The license generator at the licensing clear-
`inghouse creates a license pack containing a set of one or
`more individual software licenses. To prevent the license
`pack from being copied and installed on multiple license
`servers, the license generator assigns a unique license pack
`ID to the license pack and associates the license pack ID
`with the license server in a master license database kept at
`the licensing clearinghouse. The license generatoralso digi-
`tally signs the license pack and encrypts it with the license
`server’s public key. The license generator sends the license
`pack to the license server using standard communications,
`such as over a data communication network (e.g., Internet)
`or via a portable data medium (e.g.,
`floppy diskette,
`CD-ROM, etc.).
`The license server verifies the license generator’s digital
`signature on the license pack andif valid, installs the license
`pack for subsequent distribution of licenses. The license
`server maintains an inventory of software licenses that have
`been purchased from the licensing clearinghouse. The
`license server is responsible for distributing the software
`licenses contained in the license pack to individual clients.
`It monitors the software licenses that have been granted to
`clients and continues to distribute licenses as long as non-
`assigned licenses remain available. Once the supply of
`non-assigned licenses is exhausted, however,
`the license
`server can no longer grant licenses to the clients and the
`customer must purchase a new pack from the license clear-
`inghouse.
`When a client connects to a server, the client presents a
`valid license (if it has one). If the client does not have an
`appropriate license, the server assists the client in obtaining
`a license from the license server. This provides an automated
`mechanism for clients to obtain and license server to dis-
`tribute licenses to clients.
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`

`

`US 6,189,146 B1
`
`3
`When a license is requested, the license server initially
`checks if the requesting client has already been issued a
`license. Whenthis situation is detected, the license server
`issues the existing license to the client. This is actually
`reissuing of the same license that was previously issued.
`This allows the client to gracefully recover licenses when
`they are lost.
`In one implementation, the license server determines an
`appropriate type of license based in part on the client’s
`operating system platform. The license server derives the
`platform information by establishing a trust relationship
`with the client and then querying its platform type. If a
`software license is available for allocation, the license server
`grants a software license that is appropriate for the client’s
`platform.
`To prevent an issued license from being copied from one
`client machineto another, the software licenseis assigned to
`a specific client by including its client ID within thelicense.
`The software license also has a corresponding license ID
`that is associated with the client ID in a database record kept
`at the license server.
`
`4
`The company 24 contacts the clearinghouse 22 when it
`desires to purchase a software license to run software on the
`company computers. The clearinghouse 22 has a license
`generator 26 that creates a “license pack” containing a set of
`one or more individual software licenses. The clearinghouse
`22 encrypts the license pack using the destination license
`server’s public key and digitally signs the license pack with
`a digital signature unique to the clearinghouse.
`The company 24 hasat least one designated license server
`28. The license pack is sent
`to the company 24 using
`standard communications, such as over a data communica-
`tion network (e.g., Internet) or via a portable data medium
`(e.g., floppy diskette, CD-ROM, etc.), and installed on the
`license server 28.
`
`The license server 28 is responsible for distributing the
`software licenses contained in the license pack to individual
`clients, as represented by clients 30(1)-30(6). The license
`server 28 verifies the license generator’s digital signature on
`the license pack, decrypts the contents of the license pack,
`and stores the individual software licenses for subsequent
`distribution to individualclients.
`
`10
`
`15
`
`20
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`IPR2021-00663
`ANCORA EX2022
`
`The license server 28 maintains an inventory of software
`licenses that have been purchased from the licensing clear-
`Thelicenseserver digitally signs the software license. The
`inghouse 22. The license server 28 monitors the software
`license is passed to the client, where it is stored in a local
`licenses that have been granted to clients. The license server
`25
`cacheat the client. Once a client has obtainedalicense,it is
`28 can distribute licenses to new clients as long as it has
`responsible for managing the storage of that license.
`available non-assigned licenses. Once the supply of non-
`assigned licenses is exhausted, however, the license server
`28 can no longer grant licenses to the clients. The only way
`for the license server 28 to obtain new non-assigned licenses
`is to purchase a license pack from the clearinghouse 22.
`Because the clients might not have network connectivity
`to the license server 28, one or more intermediate servers, as
`represented by servers 32(1) and 32(2), can act as an
`intermediary for the clients. Each intermediate server 32 is
`a commonserverthat provides conventional resourcesto the
`clients. In addition, each intermediate server 32 has network
`connectivity to the license server 28 to facilitate license
`distribution from the license server 28 to the clients 30. The
`intermediate servers 32 accept software licenses issued by
`the license server 28;
`therefore,
`the intermediate server
`associations determine the scope of the license pack to a
`particular license server.
`The clients 30 may be directly coupled to the intermediate
`servers 32 via a LAN (local access network) or WAN (wide
`area network), as represented by clients 30(1)-30(4).
`Additionally, the clients 30 may be indirectly coupled to the
`intermediate servers 32, such as using a dialup connection as
`represented by clients 30(5) and 30(6).
`Whena client 30 connects to the intermediate server 32,
`it must present a valid license. If the client does not have an
`appropriate license, the intermediate server 32 assists the
`client in obtaining a license from the license server 28. This
`provides an automated mechanism for distributing licenses
`to clients. The license server 28 initially checks if the
`requesting client already has been issued a license. When
`this situation is detected, the license server 28 issues the
`existing license to the client. This allows the client
`to
`gracefully recover licenses when they arelost.
`In one particular implementation, the license server 28
`determines an appropriate type of license based in part on
`the client’s platform operating system type. The license
`server 28 derives the platform information by establishing a
`trust relationship with the client 30 and then querying its
`platform type. Once a client 30 has obtained a license, it is
`responsible for managing the storage of that license. The
`platform challenge process is described below in more
`detail.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`the
`
`The same reference numbers are used throughout
`drawings to reference like components andfeatures.
`FIG. 1 shows a software licensing system.
`FIG. 2 shows a block diagram of a computer used to
`implement the software licensing system.
`FIG. 3 shows a functional block diagram showing soft-
`ware components and databases that implement the software
`licensing system.
`FIG. 4 showssteps in a methodforissuing a license pack
`of individual licenses.
`
`FIG. 5 showssteps in a methodforinitiating a connection
`between a client and a server and determining whether the
`client has a valid license.
`
`FIG. 6 showssteps in a methodfor distributing a software
`license to a client.
`
`FIG. 7 showssteps in a method for challenging a client
`prior to granting a software license to that client.
`FIG. 8 showssteps in a method for upgrading a software
`license.
`
`DETAILED DESCRIPTION
`
`the reader is
`The following discussion assumes that
`familiar with public key cryptography. For a basic introduc-
`tion to cryptography, the reader is directed to a text written
`by Bruce Schneier and entitled, “Applied Cryptography:
`Protocols, Algorithms, and Source Code in C,” published by
`John Wiley & Sons, copyright 1994 (second edition 1996),
`which is hereby incorporated by reference.
`FIG. 1 shows a system 20 for licensing software. The
`system 20 has a licensing clearinghouse 22 that creates and
`issues valid software licenses to one or more companies,
`firms, agencies, or other entities, as represented by company
`24. The clearinghouse 22 is a separate entity from the
`company 24. Examples of the clearinghouse include a
`software manufacturer, a software vendor, or a third party
`agent that is authorized to issue software licenses on behalf
`of the software manufacturer or vendor.
`
`IPR2021-00663
`ANCORA EX2022
`
`

`

`5
`Exemplary Computer Used to Implement Servers and/or
`Client
`
`US 6,189,146 B1
`
`10
`
`15
`
`20
`
`25
`
`5 System Architecture
`FIG. 3 shows an exemplary software/hardware architec-
`ture of the system 20. The architecture includes four com-
`ponents: a license generator 26, a license server 28, a client
`30, and an intermediate server 32. The license generator 26
`produces license packs for a fee and the license server 28
`consumesthelicensesbyinstalling them. In turn,the license
`server 28 distributes a license to the client 30 with the help
`of the intermediate server 32. The client 30 then uses the
`
`30
`
`license to gain access to the resources provided by the inter
`mediate server 32.
`
`6
`preferably a Windows-brand operating system such as Win-
`dows NT, Windows 95, Windows CE or other form of
`Windows. The operating system 70 may alternatively be
`other types, including Macintosh and UNIX-based operating
`systems.
`A user may enter commands and in formation into the
`computer 40 through input devices such as a keyboard 78
`and a mouse 80. Other input devices (not shown) may
`include a microphone, joystick, game pad, satellite dish,
`scanner, or the like. These and other in put devices are
`connected to the processing unit 42 through a serial port
`interface 82 that is coupled to the system bus 46, but may
`alternatively be connected by other interfaces, such as a
`parallel port, game port, or a universal serial bus (USB).
`A monitor 84 or other type of display device is also
`connected to the system bus 46 via an interface, such as a
`video adapter 86. The computer 40 has a network interface
`or adapter 88, a modem 90, or other meansfor establishing
`communications over a network 92.
`
`The license generator 26, license server 28, and interme-
`diate server 32 are preferably implemented as computer
`servers, such as Windows NTservers that run Windows NT
`server operating systems from Microsoft Corporation or
`UNIX-based servers. It is noted, however, that the license
`generator 26 and license server 28 may be implemented
`using other technologies, including mainframe technologies,
`as long as they share an inter-operable communication
`mechanism like remote procedure call (RPC) and these
`systems are secure.
`The clients 30 can be implemented as many different
`kinds of computers, including a desktop personal computer,
`a workstation, a laptop computer, a notebook computer, a
`handheld PC, and so forth. The clients 30 may further
`represent a terminal device, which is a low cost machine
`with limited local processing and local memory. The termi-
`nal device includes a display, a keyboard, a mouse
`(optional), limited computer resources like memory, and
`enoughintelligence to connect to an intermediate server. All
`applications run at the server. The terminal merely provides
`a connection point to the server-based processing.
`The clients 30 might also represent a network-centric
`computer, such as a Network Computer (or NC) or a Net PC.
`FIG. 2 shows an example implementation of a computer
`40, which can be used to implementthe license generator 26,
`license server 28, and intermediate server 32. The server 40
`includes a processing unit 42, a system memory 44, and a
`system bus 46 that
`interconnects various system
`The entity or organization that owns,or is responsibefor,
`components, including the system memory 44 to the pro-
`the license server 28 registers itself with an independent
`cessing unit 42. The system bus 46 may be implemented as
`certifying authority that is trusted by both the organization
`any one of several bus structures and using any of a variety
`and the clearinghouse. The organization submits informa-
`of bus architectures, including a memory bus or memory
`tion identifying itself and various license servers to the
`controller, a peripheral bus, and a local bus.
`certifying authority. The certifying authority performs a
`The system memory 44 includes read only memory
`verification analysis of the organization to verify that it is a
`(ROM)48 and random access memory (RAM) 590. A basic
`real entity and that the identification informationis true and
`input/output system 52 (BIOS)is stored in ROM 48.
`accurate. The certifying authority issues a certificate to the
`The computer 40 has one or more of the following drives:
`organization. The certificate contains the public key of the
`a hard disk drive 54 for reading from and writing to a hard
`organization (or particular license server), which is signed
`disk or hard disk array, a magnetic disk drive 56 for reading
`by the certifying authority. This certificate becomes the
`from or writing to a removable magnetic disk 58, and an
`license server’s certificate during the initial purchase request
`optical disk drive 60 for reading from or writing to a
`process whenthelicense server requests a license pack from
`removable optical disk 62 such as a CD ROM orother
`the clearinghouse.
`optical media. The hard disk drive 54, magnetic disk drive
`Similarly, the clearinghouse also registers with the certi-
`56, and optical disk drive 60 are connected to the system bus
`fying authority to receive a publiccertificate. The clearing-
`46 by a hard disk drive interface 64, a magnetic disk drive
`house certificate contains the clearinghouse’s public key,
`interface 66, and an optical drive interface 68, respectively.
`signed by the certifying authority.
`The drives and their associated computer-readable media
`The license generator 26 has a master license database
`provide nonvolatile storage of computer
`readable
`100, a licensing producer 102, and a request handler 104.
`instructions, data structures, program modules and other
`The request handler 104 receives a purchase request 106
`data for the computer 40.
`from the license server 28 asking to purchase one or more
`Although a hard disk, a removable magnetic disk 58, and
`license packs. The purchase request includes information
`a removable optical disk 62 are described, other types of
`pertaining to the licenses and license server 28. For example,
`computer readable media can be used to store data. Other
`the purchase request might contain such information as a
`such media include magnetic cassettes, flash memory cards,
`license server ID,
`the license server’s certificate (which
`digital video disks, Bernoulli cartridges, random access
`contains the license server’s public key), a client’s platform
`memories (RAMs), read only memories (ROM), and the
`type, the quantity of licenses desired, a product ID, andalist
`60
`of features that the licenses should enable. Additional infor-
`like. Additionally, the computer 40 may be configured to
`serve data stored on an independent storage systems, such as
`mation about a customer(e.g., name, contract number,etc.)
`disk array storage systems.
`may also be requested for purposes of tracking and report
`Anumberof program modules may be stored on the hard
`generation. This information is stored in the master license
`database 100.
`disk, magnetic disk 58, optical disk 62, ROM 48, or RAM
`50. These programs include a server operating system 70,
`one or more application programs 72, other program mod-
`ules 74, and program data 76. The operating system 70 is
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`the license producer 102
`In response to the request,
`generates one or more license packs 108, each of which
`contains a set of one or more non-assigned licensesthat are
`
`IPR2021-00663
`ANCORA EX2022
`
`IPR2021-00663
`ANCORA EX2022
`
`

`

`US 6,189,146 B1
`
`7
`purchased from the license clearinghouse. The license gen-
`erator 26 creates licensing packs in a way that prevents them
`from being copied andinstalled on multiple license servers
`28 or being applied multiple times on the sameserver.In the
`preferred implementation, this is accomplished using IDs
`and cryptographic tools. The license producer 102 assigns a
`unique license pack ID to each license pack and associates
`the license pack ID with the license server 28 in the master
`license database 100. The license pack ID is embeddedin the
`license pack 108. This prevents users from multiplying the
`number of licenses they purchase by installing the same
`license pack multiple times on the samelicense server.
`The license generator 26 encrypts the license packs 108
`with the license server’s public key to ensure protected
`transport to the license server 28 and to ensure that only the
`license server 28 can open the packs 108. The license
`generator 26 also digitally signs the license packs 108 with
`a private signing key ofthe license generator 26. The license
`server 28 uses this signature to validate that the license pack
`came from an authorized license generator and has not been
`altered.
`
`The license pack 108 is a data structure that contains
`various information to enable the license server to distribute
`software licenses. The data structure containsfields with the
`
`licensing information. Table 1 showsthe data fields of a
`license pack data structure.
`
`TABLE1
`
`Field
`
`Description / Purpose
`
`Message Version
`
`License Pack Serial
`Number
`
`Issue Date
`First Active Date
`
`Expiration Date
`
`Begin Serial Number
`
`Quantity of Licenses
`Number of Human
`Descriptions
`Array of Human
`Descriptions (Locale,
`Description)
`
`Manufacturer
`
`Manufacturer-Specific
`Product Data
`
`Signature
`
`Clearinghouse’s Public
`Key Certificate
`
`An ID used to distinguish different
`versions of the data structure.
`A serial number assigned by the license
`generator to prevent the license pack from
`being installed multiple times on the same
`license server.
`The date the license pack is issued by the
`clearinghouse.
`The date on whichthe licenses within the
`license pack can first be used.
`The date on whichthe licenses within the
`license pack will expire. A license could
`be set such that it does not expire.
`The beginning serial number for the
`licenses in the license pack. The number
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket