throbber
(12) United States Patent
`(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

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