`(12) United States Patent
`Misra et at.
`Misra et al.
`
`
`1111111111111111111111111111111°11111t1111111111111111111111111111111
`11111111111111111111111111111110111111111111111111111111111111111111111
`
`(10) Patent No.: US 6,189,146 B1
`US 6,189,146 B1
`(10) Patent No.:
`(45) Date of Patent: Feb. 13, 2001
`(45) Date of Patent:
`Feb. 13, 24)01
`
`(54)
`(54)
`
`(75)
`(75)
`
`SYSTEM AND METHOD FOR SOFTWARE
`SYSTEM AND METHOD FOR SOFTWARE
`LICENSING
`LICENSING
`
`Inventors: Pradyumna K. Misra; Bradley J.
`Inventors: Pradyumna K. Misra; Bradley J.
`Graziadio, both of Redmond; Terence
`Graziadio, both of Redmond; Terence
`R. Spies, Kirkland, all of WA (US)
`R. Spies, Kirkland, all of WA (US)
`
`(73)
`(73)
`
`Assignee: Microsoft Corporation, Redmond, WA
`Assignee: Microsoft Corporation, Redmond, WA
`(US)
`(US)
`
`*
`* )
`
`Notice: Under 35 U.S.C. 154(b), the term of this
`Under 35 U.S.C. 154(b), the term of this
`Notice:
`patent shall be extended for 0 days.
`patent shall be extended for 0 days.
`
`(21)
`(21)
`(22)
`(22)
`(51)
`(51)
`(52)
`(52)
`(58)
`(58)
`
`Appl. No.: 09/040,813
`Appl. No.: 09/040,813
`Filed: Mar. 18, 1998
`Mar. 18, 1998
`Filed:
`Int. CI.' GO6F 17/40
`G06F 17/40
`Int. C1.7
`U.S. Cl. 717/11; 380/4; 380/25
`U.S. Cl.
` 717/11; 380/4; 380/25
`Field of Search 395/712; 701/1;
`Field of Search
` 395/712; 701/1;
`380/3, 4, 30, 44, 25; 717/11
`380/3, 4, 30, 44, 25; 717/11
`
`(56)
`(56)
`
`References Cited
`References Cited
`U.S. PATENT DOCUMENTS
`U.S. PATENT DOCUMENTS
`4,924,378 * 5/1990 Hershey et al 713/201
` 713/201
`4,924,378 * 5/1990 Hershey et al.
`5,138,712 * 8/1992 Corbin 713/200
`5,138,712 * 8/1992 Corbin
` 713/200
`5,204,897 * 4/1993 Wyman 380/4
`5,204,897 * 4/1993 Wyman
` 380/4
`5,343,524 * 8/1994 Mu et al. 380/4
` 380/4
`5,343,524 * 8/1994 Mu et al.
`5,553,143 * 9/1996 Ross et al. 380/25
`5,553,143 * 9/1996 Ross et al.
` 380/25
`5,671,412 * 9/1997 Christiano 707/104
`5,671,412 * 9/1997 Christiano
` 707/104
`5,724,425 * 3/1998 Chang et al 380/25
`5,724,425 * 3/1998 Chang et al.
` 380/25
`5,745,879 * 4/1998 Wyman 705/1
`5,745,879 * 4/1998 Wyman
` 705/1
`5,790,677 * 8/1998 Fox et al 380/24
`5,790,677 * 8/1998 Fox et al
` 380/24
`* cited by examiner
`* cited by examiner
`
`Primary Examiner—Reba I. Elmore
`Primary Examiner—Ileba I. Elmore
`(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
`(74) Attorney, Agent, or Firm—Lee & Hayes, PLLC
`(57) ABSTRACT
`(57)
`ABSTRACT
`A software licensing system includes a license generator
`A software licensing system includes a license generator
`located at a licensing clearinghouse and at least one license
`located at a licensing clearinghouse and at least one license
`server and multiple clients located at a company or entity.
`server and multiple clients located at a company or entity.
`When a company wants a software license, it sends a
`When a company wants a software license, it sends a
`purchase request (and appropriate fee) to the licensing
`purchase request (and appropriate fee) to the licensing
`clearinghouse. The license generator at the clearinghouse
`clearinghouse. The license generator at the clearinghouse
`creates a license pack containing a set of one or more
`creates a license pack containing a set of one or more
`individual software licenses. To prevent the license pack
`individual software licenses. To prevent the license pack
`from being copied and installed on multiple license servers,
`from being copied and installed on multiple license servers,
`the license generator assigns a unique license pack ID to the
`the license generator assigns a unique license pack ID to the
`license pack and associates the license pack ID with the
`license pack and associates the license pack ID with the
`particular license server in a master license database kept at
`particular license server in a master license database kept at
`the licensing clearinghouse. The license generator digitally
`the licensing clearinghouse. The license generator digitally
`signs the license pack and encrypts it with the license
`signs the license pack and encrypts it with the license
`server's public key. The license server is responsible for
`server's public key. The license server is responsible for
`distributing the software licenses from the license pack to
`distributing the software licenses from the license pack to
`individual clients. When a client needs a license, the license
`individual clients. When a client needs a license, the license
`server determines the client's operating system platform and
`server determines the client's operating system platform and
`grants the appropriate license. To prevent an issued license
`grants the appropriate license. To prevent an issued license
`from being copied from one client machine to another, the
`from being copied from one client machine to another, the
`software license is assigned to a specific client by including
`software license is assigned to a specific client by including
`a client ID within the license. The software license also has
`a client ID within the license. The software license also has
`a license ID that is associated with the client ID in a database
`a license ID that is associated with the client ID in a database
`record kept at the license server. The license server digitally
`record kept at the license server. The license server digitally
`signs the software license and encrypts it using the client's
`signs the software license and encrypts it using the client's
`public key. The license is stored locally at the client.
`public key. The license is stored locally at the client.
`
`20 Claims, 8 Drawing Sheets
`20 Claims, 8 Drawing Sheets
`
`20\
`-,
`20
`
`28
`28 --
`
`Client Image,
`Client Image,
`Client Sig
`Client Sig
`
`,
`
`26 -
`26 -
`
`Licenser Generator
`Licenser Generator
`
`118 --\
`(Client Image --\
`
`—4..
`
`Installer
`
`z - 122
`-- 122
`/
`Request
`Request
`Handler
`Handler
`
`%
`License Server
`License Server
`
`Master License
`Master License
`Databases
`Databases
`
`License
`License
`Producer
`Producer
`
`Request
`Request
`Handler
`Handler
`
`z- 100
`100
`
`102
`102
`
`Client Image
`•...._ Cache
`
`
`124
`
`120
`120
`Client
`P.-- Client
`Authenticating
`Authenticating
`Module 0
`Module
`
`112
`
`126
`wz— 126
`\...Granting
`Granting
`Module
`Module
`
`114 Secure License
`114
`Secure License
`104 Li-, Store CA
`104
`LP Store —CA
`br
`Table
` a*-116
`1 16
`r-License Pack 110
`License Pack
`110
`- Installer
`Installer
`
`106
`7-106
`Purchase Request
`Purchase Request
`(LS Certificate,
`(LS Cerffficate,
`Platform,
`Platform,
`# Licenses)
`# Licenses)
`
`r 140
`r 140
`License
`License
`Server Cert.
`Server Cert.
`
`32 ---,
`32 ---,
`
`Intermediate Server
`Intermediate Server
`128 ,--
`128
`
`Legacy
`Legacy
`License
`License
`
`(. Client
`r- Client
`Licensing
`Licensing
`Unit
`Unit
`
`130
`130
`
`License
`License
`
`System ID
`System ID
`
`Challenge License
`(Challenge c License
`Handler Requester
`Requester
`Handler
`134-' 132
`134 ---/
`132 --I
`C -2>
`License
`License
`Cache ,-
`Cache
`
`.40
`
`System ID
`System ID
`
`136
`136
`
`System ID
`System ID
`
`Challenge
`Challenge
`
`Response
`Response
`
`License for
`License for
`Client ID
`Client ID
`
`142
`142
`
`License
`pack
`License
`Peck
`
`
`— 108
`
`Client
`Client
`
`30
`30
`
`Page 1
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`U.S. Patent Feb. 13, 2001
`U.S. Patent
`Feb. 13, 2001
`
`Sheet 1 of 8 US 6,189,146 B1
`US 6,189,146 B1
`Sheet 1 of 8
`
`20 —\
`20 --\
`
`Clearinghouse
`Clearinghouse
`
`-,
`
`,„--- 22
`„--- 22
`
`26
`/— 26
`
`License
`License
`Generator
`Generator
` I
`.1
`
`„
` i
`
`„--- 24
`„--- 24
`,
` s
`Company'
`Company
`
`28
`28
`i
`7
`License Server
`License Server
`\,
`
`32(1)
`32(1)
`
`Intermediate
`Server
`
`32(2) /-3O(5)
`/- /— 32(2)
`/— 30(5)
`c
`Intermediate
`Intermediate
`Server
`Server
`
`-14-- Client
`Client
`\._
`I
`
`730(6)
`/— 30(6)
`
`Client )
`Client )
`\..
`\._
`
`30(1) —\ 30(2) ---\ I 30(3) 30(4)
`30(2)
`30(1)
`30(4)
`30(3)
`7 *\ 7
`Client Clierl
`Client
`Client
`
`Client
`
`Client
`
`„
`
`74, 1
`
`Page 2
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`Juaind 'Sill
`
`8 Jo Z PatIS
`
`ill 9171'681'9 S.11
`
`Network
`
`92
`92
`
`7e9, 2
`e9,
`
`Adapter
`Adapter
`Video
`Video
`
`86
`86
`
`40
`40
`
`84
`
`...........
`
`724/
`Programs 72
`Programs
`(Application
`Application
`
`System 70
`System 70
`Operating
`Operating
`
`Processing Unit
`Processing Unit
`
`(RAM) 50
`— ,
`(RAM)
`50
`:--
`.-,
`:
`
`52
`
`BIOS
`
`A. 42
`
`48
`48
`
`44
`
`System Memory
`System Memory
`
` ------
`
`
`
`
`
`ROM)
`(ROM)
`
`Keyboard
`Keyboard
`
`0,---,===,
`
`78
`78 -
`
`Modem
`Modem
`_fro 0 Cf
`fol-
`7-- 90
`7-- 90
`
` c
`
`0
`
`80
`80
`
`60
`60
`
`76
`76
`
`Data \
`Data
`Program
`Program
`
`74
`74
`
`58
`58
`62
`62 -
`
`56
`56
`
`54
`
`70
`70
`System s
`Programs, Modules,
`System, Programs, Modules\
`[Operating Application
`Other
`Application
`Other
`
`[Operating
`
`72
`72
`
` 68 82 8
`88
`68
`\...,
`
`82
`\..
`
`t \.0
`
`
`
`Interface Interface
`Interfacevo
`Interface
`Serial Port Network
`Serial Port
`Network
`
`--....,_____,
`
`
`
`Interface
`Interface
`Drive
`Drive
`Optical
`Optical
`----,--
`
`64 66
``-
`66
`Interface
`Interfacei `Interface
`Disk Drive
`Disk Drive
`Magnetic
`Hard Disk Magnetic
`-----z"
`
`
`
`\
`
`\ 64
`
`Drive
`
`,---
`
` -
`
`,
`
`.."
`76
`76
`
`
`
`
`
`Program Data
`Program Data
`7 -
`Modules 74
`Modules 74
`Other Program
`Other Program
`
`System Bus
`System Bus
`46
`46
`
`Page 3
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`311a1Rd
`
`8 Jo £
`
`HI 9171'681'9 SA.
`
`/— 130
`/- 130
`
`Store,
`jtore..„,
`License
`License
`Legacy
`Legacy
`
`Unit
`Unit
`
`Client
`Client
`
`Licensing
`Licensing
`-N
`128
`
`7-128
`
`Intermediate Server
`Intermediate Server
`
`System ID
`System ID
`
`Handler
`Handler
`Request )
`Request
`
`
`
`122
`122
`
`License Server
`License Server
`
`Client Image
` Client Image
`118
`118
`
`Installer
`Installer
`
`32
`32
`
`28
`28 --•,„
`
`20
`20 -\
`
`2>
`120 v 124
`124
`120
`
`Authenticating
`Authenticating
`1 Client
`Client
`
`Module
`Module
`
`Client Image
`Client Image
`
`134 132—i
`134 -J
`132 -I
`
`Handler Requester
`Requester
`Handler
`/Challenge c. License
`hallenge) License
`
`(C
`
`System ID
`System ID
`
`License
`License
`
`Client ID
`Client ID
`License for
`License for
`
`Response
`Response
`
`Challenge
`Challenge
`
`116
`
`Module
`Module
`Granting )
`Granting
`v7-126
`wz— 126
`
`
`
` )
`
`s112
`112
`
` 7
`
`..00
`
`Cache
`Cache
`
`30
`30 ---'"
`
`Client
`Client
`
`,i9'3
`74, 3
`
`Cache
`Cache
`136 License
`License
`136
`
`System ID
`System ID
`
`142 —Is\
`142
`
`License
`License
`140
`140
`
`/-
`
`Server Cert.
`Server Cert.
`
`108
`108
`
`Pack
`Pack
`License
`License
`
`License Packl 110
`110
`License Pack
`
`Installer
`Installer
`
`411-n-
`
`‘r
`Table
`Table
`Table
`Table
`CA
`LP Store CA
`\
`114 Secure License
`114 -\ Secure License
`
`104 LP Store
`104
`
`Handler
`Handler
`Request
`Request
`
`# Licenses)
`# Licenses)
`Platform,
`Platform,
`(LS Certificate,
`(LS Certificate,
`I Purchase Request
`Purchase Request
`:7— 106
`7-- 106
`
`Producer
`Producer
`License y- 102
`License
`jr-- 102
`
`r
`
`100
`7-- 100
`
`Master License
`Master License
`
`Databases
`Databases
`
`
`
`Licenser Generator
`Licenser Generator
`
`26
`26 --
`
`Client Sig
`Client Sig
`Client Image,
`Client Image,
`
`Page 4
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`lualcd 'Si!
`
`8 JO 17 lamiS
`
`ig 9t71`681`9 Sil
`
`in Secure License
`in Secure License
`7- 170
`( Install License Pack 170
`Install License Pack
`
`1
`
`Store
`Store
`
`\s.
`
`•1,
`
`)7— 168
`)7-- 168
`
`Evaluate License Pack ID
`Evaluate License Pack ID
`Iv
`
`KLS_pri
`KLS_pri
`
`166
`166
` KCH_pub
` KCH_pub
`164
`164
`
`
`
`
`
`Decrypt License
`Decrypt License
`
`Using Ki_s_pd
`Using K15_0
`
`•
`
`Clearinghouse
`Clearinghouse
`.r Verify Signature of
`Verify Signature of
`
`.1
`
` 0
`
` 1
`
`Purchase Request
`Purchase Request
`r----Generate and Send 150
`Generate and Send
`150
`
`License Server 28
`License Server 28
`
`License Pack ID
`License Pack ID
`
`Non-Assigned
`Non-Assigned
`License Pack
`License Pack
`
`Licenses
`Licenses
`
`_
`
`7— 108
`7- 108
`
`Purchase Request
`Purchase Request
`7— 106
`7- 106
`
`Requested Features
`Requested Features
`LS Certificate
`LS Certificate
`Product ID
`Product ID
`Quantity of Licenses
`Quantity of Licenses
`Platform Type
`Platform Type
`
` Encrypt License Pack
`Encrypt License Pack
`l
`158 —\( .
`158
`\...
`
`\-.
`
`KCH_pri
`KCH_pn.
`
`160
`
`LS_pub
`
`Using Kcitph
`Using Kcito
`Sign License Pack
`Sign License Pack
`160 --\ (
`Using KLS_pub
`KLS_pub Using KLs_pub
`K
`
`7e9, 4
`74, 4
`
`Return License
`Return License
`
`Pack
`Pack
`
`162
`162
`
` i
`
`•
`
`-\(
`
`
`
`156 --\' Associate Pack Ili\
`156 -
`
`with License
`with License
`(Associate Pack
`,._____
`
`Server
`Server
`
`Information in Master
`Information in Master
`
`License DB
`License DB
`
`154 Store Request
`154
`Store Request
`
`\,
`Pack with Pack ID
`Pack with Pack ID
`152 --\( Create License
`152 --\( Create License
`
`License Generator 26
`License Generator 26
`
`Page 5
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`8 Jo S lootiS
`
`RI 9171'681'9 SI1
`
`• 7-178 s.
`N.4 o o
` Query License Cache J4'
` Query License Cache
`s.
`r 7
`176 el
`
` ►
` >
`
`7— 176
`
`JuaWd
`
`)
`z-- 172
`7— 172
`
`Submit Connect
`Submit Connect
`
`Request
`Request
`
`Client 30
`Client 30
`
`7(.9, 5
`
` ..,
`License Server
`License Server
`License from
`License from
`( Request New
`Request New
`(
`188
`
`V
`
`Connection
`Connection
`Complete
`Complete
`
`
`
`r
`186
`186
`
`Yes
`
`Expired?
`License
`
`184
`
`Valid
`
`7-178
`
`any S/W License
`any S/W License
`r Send Client ID and
`Send Client ID and
`
`
`
`(if available)
`(if available)
`SM License
`S/W License
`
`Client ID
`Client ID
`
`Submitted?
`
`License
`
`KLS_pub-11.
`KLS_pub—> Signature and
`Signature and
`Verify License Yes
`Yes
`Verify License
`7- '\ 180
`180
`I
`Valid
`182 ---\
`182 —N Valid
`Not
`Not
`
`•
`
`\
`
`Client ID
`Client ID
`
`System ID
`System ID
`
`Accepted Product
`Accepted Product
`
`Send List of
`Send List of
`
`IDs
`IDs
`
`Rejected
`Rejected
`
`174 --,
`174
`
`Intermediate Server 32
`Intermediate Server 32
`
`Page 6
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`lualud 'Sill
`
`8 Jo 9 WIN
`
`is 911'681'9 SI1
`
`Rejection
`Rejection
`)
`Inform User of )
`Inform User of
`/218
`/— 218
`
`Rejection
`Rejection
`
`Inform Client
`Inform Client
`
`z-- 216
`/— 216
`
`c--
`
`)
`7-212
`212
`
`•.,
`Decrypt and Store
`Decrypt and Store
`
`License
`License
`
`License
`License
`
`'\
`
`Forward New License
`Forward New License
`7-210
`210
`
`Connection
`Connection
`and Complete
`and Complete
`
`74, 6
`
`4--'
`
` )
`
`z-- 196
`196
`
`Challenge
`Challenge
`.
`c -Respond To
`Respond To
`
` i
`
`Response
`Response
`
`Challenge
`Challenge
`
`/--- 198
`198
`
`Response
`Response
`Forward
`Forward
`
`Challenge
`Challenge
`Forward
`Forward
`
`194
`194
`
`Request New
`Request New
`
`License
`License
`
`\—.
`
`Client 30
`Client 30
`
`/-- 188
` 188
`Intermediate Server 32
`Intermediate Server 32
`
`r
`
`Rejection
`Rejection
`
`License
`License
`
`206
`206
`
`204
`204
`
`Return Rejection )
`Return Rejection)
`c
`214
`208 --/ K t C_pub
`208 --/ K
`Client's Public Key
`Client's Public Key
`Encrypt License with
`Encrypt License with
`
`C_pub
`
`
`
`Sign License
`Sign License
`
`U date CA Table
`U •date CA Table
`Grant License and
`Grant License and
`
`\.
`Query License Store)
`(Query License Store)
`c
`esz— 202
`202
`
`v Yes
`
`Response
`Response
`
`Proper?
`Proper?
`Response
`Response
`
`200
`200
`
`Challenge
`Challenge
`
`192
`192
`
`..._
`Challenge
`Challenge
`Generate
`Generate
`
`Product ID
`Product ID
`System ID,
`System ID,
`
`rChallenge Client
`Challenge Client
`
`Authenticity
`Authenticity
`
`190
`190
`License Server 28
`License Server 28
`
`Page 7
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`lualnd
`
`8 Jo L laatiS
`
`TS 9W68149 Sfl
`
`74' 7
`
`)
`7— 226
`7— 226
`
`Inform User of
`Inform User of
`
`Rejection
`Rejection
`
`•
`
` .
`
`Return Hash
`Return Hash
`
`Value
`Value
`
`/— 232
`7-- 232
`
`H
`H
`
`230
`230
`
`Hash (Challenge,
`Hash (Challenge,
`r
`
`Client Image)
`Client Image)
`
` 7
`
`Rejection
`Rejection
`
`Challenge
`Challenge
`
`224
`224
`
`Established
`Established
`
`Trust
`Trust
`
`Yes
`Yes
`
`•
`
`Return Rejection
`Return Rejection
`
`r
`
`238
`238
`
`H'
`H'
`
`— 236
`236
`
`Client Image)
`Client Image)
`r Hash (Challenge,
`Hash (Challenge,
`/
`
`Image from Cache
`Image from Cache
`Retrieve Client
`Retrieve Client
`
`234
`7— 234
`
`No
`
`Send Challenge to
`Send Challenge to
`228
`228
`
`Yes
`Yes
`
`7-
`
`Client
`Client
`
`I
` 220
`220
`
`Software ID
`Software ID
`Submit Client
`Submit Client
`
`
`
`Client 30
`Client 30
`
`I
`
`S/W ID
`S/W ID
`
`Server 32
`Server 32
`Intermediate
`Intermediate
`
`in Cache?
`in Cache?
`lient Image
`lient Image
`
`222
`222
`License Server 28
`License Server 28
`
`Page 8
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`Juaind *Sil
`
`8 Jo g palls
`
`ill 9171'681'9 Sf1
`
`/— 252
`252
`
`License in Cache
`License in Cache
`( Replace Old
`
`Replace Old
`
`\-- 240
`240
`
`License
`License
`
` •
`Send Old S/W
`Send Old SAN
`
`)
`/— 176
`176
`
`Query License
`Query License
`
`Cache
`Cache
`
`I,
`*
`
`Submit Connect
`Submit Connect
`
`Request
`Request
`
`172
`172
`
`Client 30
`Client 30
`
`..
`7
`\..
`
` 1
`
`License
`License
`Upgraded
`Upgraded
`
`License
`License
`
`Old
`Old
`
`List
`List
`
`Product ID
`Product ID
`System ID,
`System ID,
`
`74, g
`74,
`
`Connection
`Connection
`Complete
`Complete
`License and
`License and
`Forward Upgraded
`Forward Upgraded
`7
`7— 250
`7— 250
`
`No /— 244
`
`to Old License
`to Old License
`(-Request Upgrade
`(-Request Upgrade
`
`Old Version?
`Expired or
`
`242
`
`Accepted License
`Accepted License
`:" --\
`Intermediate Server 32
`Intermediate Server 32
`
`Send List of
`Send List of
`
`Product IDs
`Product IDs
`Servers and
`Servers and
`
`License
`License
`Upgraded
`Upgraded
`
`r Send Upgraded -)
`r Send Upgraded
` 248
`7— 248
`Yes7—
`Yes
`
`
`
`License
`License
`
`System ID
`System ID
`License,
`License,
`
`Old
`Old
`
`246
`
`Available?
`Upgrade
`
`174
`
`174
`
`License Server 28
`License Server 28
`
`Page 9
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`US 6,189,146 B1
`US 6,189,146 B1
`
`10
`10
`
`1
`1
`SYSTEM AND METHOD FOR SOFTWARE
`SYSTEM AND METHOD FOR SOFTWARE
`LICENSING
`LICENSING
`TECHNICAL FIELD
`TECHNICAL FIELD
`This invention relates to systems and methods for licens-
`This invention relates to systems and methods for licens-
`ing software. This invention further relates to systems and
`ing software. This invention further relates to systems and
`methods for enforcing software licenses.
`methods for enforcing software licenses.
`
`2
`2
`purchase several thousand copies of the software and begin
`purchase several thousand copies of the software and begin
`installing the copies. However, computers and personnel
`installing the copies. However, computers and personnel
`change over time and it is difficult to centrally monitor how
`change over time and it is difficult to centrally monitor how
`many copies have been installed, whether the copies have
`many copies have been installed, whether the copies have
`expired, whether they need upgrading, and SO forth.
`5 expired, whether they need upgrading, and SO forth.
`5
`Accordingly, there is a need to develop a new approach to
`Accordingly, there is a need to develop a new approach to
`licensing software in a manner that assures that the terms are
`licensing software in a manner that assures that the terms are
`being meet and assists the licensee with monitoring whether
`being meet and assists the licensee with monitoring whether
`it is in compliance with the software license.
`it is in compliance with the software license.
`BACKGROUND
`BACKGROUND
`SUMMARY
`SUMMARY
`Software licensing has historically been based on a "trust"
`Software licensing has historically been based on a "trust"
`This invention concerns a system and method for licens-
`This invention concerns a system and method for licens-
`model in which the user (i.e., licensee) is presumed to be
`model in which the user (i.e., licensee) is presumed to be
`ing software. The system and method provides confidence to
`ing software. The system and method provides confidence to
`honest and trustworthy and to abide by the legal require-
`honest and trustworthy and to abide by the legal require-
`the vendor that the software license is being complied with,
`the vendor that the software license is being complied with,
`ments of the license. Under the trust model, a software
`ments of the license. Under the trust model, a software
`while also assisting the purchaser in monitoring its own
`while also assisting the purchaser in monitoring its own
`license typically accompanies a software product to explain 15
`license typically accompanies a software product to explain
`1 5
`compliance with the license.
`compliance with the license.
`the terms of use. For instance, the software license might
`the terms of use. For instance, the software license might
`According to one aspect of this invention, computer
`According to one aspect of this invention, computer
`dictate that the program code is to be installed on only one
`dictate that the program code is to be installed on only one
`software licenses are electronically issued as digital certifi-
`software licenses are electronically issued as digital certifi-
`computer, and may be used to make one backup copy.
`computer, and may be used to make one backup copy.
`cates that can be distributed in one-to-one correlation with
`cates that can be distributed in one-to-one correlation with
`Common types of licenses include "shrink wrap" licenses,
`Common types of licenses include "shrink wrap" licenses,
`individual client computers and traced to an issuing author-
`20 individual client computers and traced to an issuing author-
`"online" licenses, and "site" licenses. A "shrink wrap"
`20
`"online" licenses, and "site" licenses. A "shrink wrap"
`ity.
`ity.
`license is a license that accompanies each software product
`license is a license that accompanies each software product
`According to another aspect, the system includes a license
`According to another aspect, the system includes a license
`that is sold individually in a shrink-wrapped package
`that is sold individually in a shrink-wrapped package
`generator located at a licensing clearinghouse and at least
`generator located at a licensing clearinghouse and at least
`through retail stores. The user is typically assumed to accept
`through retail stores. The user is typically assumed to accept
`one license server and multiple clients located at or affiliated
`one license server and multiple clients located at or affiliated
`the terms of the shrink wrap license upon breaking the seal
`the terms of the shrink wrap license upon breaking the seal
`with a company or other entity. Because the clients might
`25 with a company or other entity. Because the clients might
`of the package, or the container that holds the disk itself.
`25
`of the package, or the container that holds the disk itself.
`not have network connectivity to the license server, one or
`not have network connectivity to the license server, one or
`An "online" license is one that accompanies software
`An "online" license is one that accompanies software
`more intermediate servers may act as an intermediary for the
`more intermediate servers may act as an intermediary for the
`products that are downloaded online, such as from the
`products that are downloaded online, such as from the
`clients. These intermediate servers are otherwise common
`clients. These intermediate servers are otherwise common
`Internet. The license is typically presented to the user prior
`Internet. The license is typically presented to the user prior
`servers that provide resources to clients, but with the added
`servers that provide resources to clients, but with the added
`to downloading the code. The user is presented with a choice
`to downloading the code. The user is presented with a choice
`ability to facilitate connectivity to the license server for
`30 ability to facilitate connectivity to the license server for
`30
`to accept or reject the license. If the user accepts the license
`to accept or reject the license. If the user accepts the license
`purposes of distributing software licenses to the clients.
`purposes of distributing software licenses to the clients.
`(e.g., by clicking an "Accept" button on the screen), the user
`(e.g., by clicking an "Accept" button on the screen), the user
`When a company wants a software license, it sends a
`When a company wants a software license, it sends a
`is presumed to have accepted the terms of the license and the
`is presumed to have accepted the terms of the license and the
`purchase request (and an appropriate fee) to the licensing
`purchase request (and an appropriate fee) to the licensing
`code is downloaded to the user's computer.
`code is downloaded to the user's computer.
`clearinghouse. The license generator at the licensing clear-
`clearinghouse. The license generator at the licensing clear-
`A "site" license is a single license that allows installation
`A "site" license is a single license that allows installation
`inghouse creates a license pack containing a set of one or
`35 inghouse creates a license pack containing a set of one or
`35
`of multiple copies of software on many different computers
`of multiple copies of software on many different computers
`more individual software licenses. To prevent the license
`more individual software licenses. To prevent the license
`at a particular site or many sites. It is commonly used to sell
`at a particular site or many sites. It is commonly used to sell
`pack from being copied and installed on multiple license
`pack from being copied and installed on multiple license
`software to corporations, firms, or other entities having
`software to corporations, firms, or other entities having
`servers, the license generator assigns a unique license pack
`servers, the license generator assigns a unique license pack
`many computers. The purchaser pays for a certain number of
`many computers. The purchaser pays for a certain number of
`ID to the license pack and associates the license pack ID
`ID to the license pack and associates the license pack ID
`copies (e.g., hundreds or thousands), and the site license
`copies (e.g., hundreds or thousands), and the site license
`with the license server in a master license database kept at
`40 with the license server in a master license database kept at
`40
`enables the purchaser to install that many copies on its
`enables the purchaser to install that many copies on its
`the licensing clearinghouse. The license generator also digi-
`the licensing clearinghouse. The license generator also digi-
`computers. The site license is beneficial because the soft-
`computers. The site license is beneficial because the soft-
`tally signs the license pack and encrypts it with the license
`tally signs the license pack and encrypts it with the license
`ware vendor need not supply a large number of program
`ware vendor need not supply a large number of program
`server's public key. The license generator sends the license
`server's public key. The license generator sends the license
`disks, but merely supplies one or a few copies of the
`disks, but merely supplies one or a few copies of the
`pack to the license server using standard communications,
`pack to the license server using standard communications,
`software and lets the purchaser install the copies without
`software and lets the purchaser install the copies without
`such as over a data communication network (e.g., Internet)
`45 such as over a data communication network (e.g., Internet)
`45
`violating the agreement.
`violating the agreement.
`or via a portable data medium (e.g., floppy diskette,
`or via a portable data medium (e.g., floppy diskette,
`Each of the above license arrangements assumes that the
`CD-ROM, etc.).
`Each of the above license arrangements assumes that the
`CD-ROM, etc.).
`purchaser is honest. The software purchaser must abide by
`purchaser is honest. The software purchaser must abide by
`The license server verifies the license generator's digital
`The license server verifies the license generator's digital
`the license terms in order to legally use the software. If the
`signature on the license pack and if valid, installs the license
`the license terms in order to legally use the software. If the
`signature on the license pack and if valid, installs the license
`purchaser fails to abide by the provisions, the purchaser can
`pack for subsequent distribution of licenses. The license
`purchaser fails to abide by the provisions, the purchaser can
`50 pack for subsequent distribution of licenses. The license
`50
`be charged with civil and criminal violations.
`server maintains an inventory of software licenses that have
`be charged with civil and criminal violations.
`server maintains an inventory of software licenses that have
`However, enforcement of such licenses is impractical, if
`been purchased from the licensing clearinghouse. The
`However, enforcement of such licenses is impractical, if
`been purchased from the licensing clearinghouse. The
`not impossible. Unscrupulous users might make multiple
`license server is responsible for distributing the software
`not impossible. Unscrupulous users might make multiple
`license server is responsible for distributing the software
`copies of the software code and install it on more computers
`licenses contained in the license pack to individual clients.
`copies of the software code and install it on more computers
`licenses contained in the license pack to individual clients.
`than the license allows. Yet, software vendors cannot begin
`It monitors the software licenses that have been granted to
`than the license allows. Yet, software vendors cannot begin
`55 It monitors the software licenses that have been granted to
`55
`to monitor these abuses because they occur in the privacy of
`clients and continues to distribute licenses as long as non-
`to monitor these abuses because they occur in the privacy of
`clients and continues to distribute licenses as long as non-
`the home or company. Thus, it is believed that the software
`assigned licenses remain available. Once the supply of
`the home or company. Thus, it is believed that the software
`assigned licenses remain available. Once the supply of
`industry loses a large percentage of revenues each year
`non-assigned licenses is exhausted, however, the license
`industry loses a large percentage of revenues each year
`non-assigned licenses is exhausted, however, the license
`simply due to illegitimate use of software by the licensees.
`server can no longer grant licenses to the clients and the
`simply due to illegitimate use of software by the licensees.
`server can no longer grant licenses to the clients and the
`This loss does not even account for the problems of overseas
`customer must purchase a new pack from the license clear-
`This loss does not even account for the problems of overseas
`60 customer must purchase a new pack from the license clear-
`60
`pirating.
`inghouse.
`pirating.
`inghouse.
`When a client connects to a server, the client presents a
`Another problem with conventional software licensing
`Another problem with conventional software licensing
`When a client connects to a server, the client presents a
`valid license (if it has one). If the client does not have an
`practices concerns internal monitoring and bookkeeping on
`practices concerns internal monitoring and bookkeeping on
`valid license (if it has one). If the client does not have an
`appropriate license, the server assists the client in obtaining
`the part of large-site licensees. In most cases, the licensees
`the part of large-site licensees. In most cases, the licensees
`appropriate license, the server assists the client in obtaining
`a license from the license server. This provides an automated
`want to comply with the terms of the software licenses, but 65
`want to comply with the terms of the software licenses, but
`65 a license from the license server. This provides an automated
`are unable to adequately track the software as it is used
`mechanism for clients to obtain and license server to dis-
`are unable to adequately track the software as it is used
`mechanism for clients to obtain and license server to dis-
`throughout the site. For example, a large corporation might
`tribute licenses to clients.
`throughout the site. For example, a large corporation might
`tribute licenses to clients.
`
`Page 10
`
`IPR2021-01406
`ANCORA EX 2014
`
`
`
`3
`When a license is requested, the license server initially
`When a license is requested, the license server initially
`checks if the requesting client has already been issued a
`checks if the requesting client has already been issued a
`license. When this situation is detected, the license server
`license. When this situation is detected, the license server
`issues the existing license to the client. This is actually
`issues the existing license to the client