US2002138441A1PendingUtilityA1
Technique for license management and online software license enforcement
Priority: Mar 21, 2001Filed: Aug 3, 2001Published: Sep 26, 2002
Est. expiryMar 21, 2021(expired)· nominal 20-yr term from priority
Inventors:Thomas Lopatic
G06F 21/125
30
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A software protection is presented comprising software license management and online software license enforcement, wherein individual licenses are provided for regulating the use of a software product, and the software product is individualized while being downloaded from a license server, and the execution of each individualized software product is monitored in agreement with the individual license terms corresponding to the individual software download.
Claims
exact text as granted — not AI-modified1 . A method for software license management and online software license enforcement comprising the steps of:
a) providing individual licenses for regulating the use of a software product, b) controlling a transfer of licenses, c) providing individualized copies of said software product for download, and d) monitoring an execution of each individualized copy of said software product in agreement with the individual license terms.
2 . A method for software license management and online software license enforcement according to claim 1 , characterized in that said individualizing step comprises embedding information in said individualized copies of said software product.
3 . A method for software license management and online software license enforcement according to claim 1 or 2 , characterized in that said individualizing step generates a uniquely individualized copy of said software product for each download.
4 . A method for software license management and online software license enforcement according to claim 1 , 2 or 3 , characterized in that each subject joining the procedure of said software license management and online software license enforcement is subject to register prior to being granted access.
5 . A method of modifying one or more files of a software product, particularly in conjunction with a method of one of the claims 1 to 4 characterized in that said modifying is at least partly based on information extracted from at least a part of data of one or more initial and/or intermediate and/or final states of the creation process of said software product.
6 . A method of modifying one or more files of a software product, according to claim 5 , characterized in that said modifying comprises embedding information in at least one of said files.
7 . A method of modifying one or more files of a software product according to claim 5 or 6 , characterized in that said data comprise data of one or more object files generated during the creation process of said software product.
8 . A method of modifying one or more files of a software product according to claim 5 , 6 or 7 , characterized in that said data comprise data of the debug information generated during the creation process of said software product.
9 . A method of modifying one or more files of a software product according to one of the claims 5 to 8 , characterized in that said data comprise data of the relocation information generated during the creation process of said software product.
10 . A method of modifying one or more files of a software product according to one of the claims 5 to 9 , characterized in that said modifying is carried out on one or more executable files of said software product.
11 . A method of modifying one or more files of a software product according to one of the claims 5 to 10 , characterized in that said modifying comprises a modification of the arrangement of the subroutines within said software product.
12 . A method of modifying one or more files of a software product according to one of the claims 5 to 11 , characterized in that said modifying comprises a modification of the arrangement of the variables within said software product.
13 . A method of modifying one or more files of a software product according to one of the claims 5 to 12 , characterized in that said modifying comprises inserting data and/or code between any two subroutines within said software product.
14 . A method of modifying one or more files of a software product according to one of the claims 5 to 13 , characterized in that said modifying comprises inserting data and/or code between any two variables within said software product.
15 . A method of modifying one or more files of a software product according to one of the claims 5 to 14 , characterized in that said modifying comprises inserting data and/or code into the code of one or more subroutines within said software product.
16 . A method of modifying one or more files of a software product according to one of the claims 5 to 15 , characterized in that data and/or code for testing the integrity of one or more parts of one or more modified files is embedded within said software product.
17 . A method of modifying one or more files of a software product according to one of the claims 5 to 16 , characterized in that said modifying comprises at least embedding a part of a piece of verification software.
18 . A license management software program comprising the steps of
providing licenses, and controlling a transfer of licenses.
19 . A license management software program according to claim 18 , characterized by regulating a distribution policy.
20 . A license management software program according to claim 18 or 19 , characterized in that a provision of licenses comprises an upload of one or more licenses to the license management software program.
21 . A license management software program according to claim 18 , 19 , or 20 , characterized in that a provision of licenses comprises a manually triggered generation of a license by the license management software program.
22 . A license management software program according to one of the claims 18 to 21 , characterized in that a provision of licenses comprises an automatic generation of a license on demand.
23 . A license management software program according to one of the claims 18 to 22 , characterized in that in a registration procedure each subject accessing said license management software program is assigned one or more roles.
24 . A license management software program according to claim 23 , characterized in that uploading and/or enabling a generation of licenses is allowed to a subject assigned the role of a software supplier only.
25 . A license management software program according to claim 23 or 24 , characterized in that initiating a provision of licenses comprises defining one or more operations on said licenses.
26 . A license management software program according to claim 25 , characterized in that initiating a provision of licenses comprises linking said defined operations or subsets thereof to one or more roles such, that each subject enlisted in one or more of said roles is capable of performing the operations linked to its role or roles.
27 . A license management software program according to claim 26 , characterized in that the operations available to a subject further depend on attributes of at least one subject involved in the operation different from its role or roles.
28 . A license management software program according to one of the claims 23 to 27 , characterized in that depending on the role assigned to a subject, said subject may further restrict the license conditions of a license.
29 . A license management software program according to one of the claims 23 to 28 , characterized in that said assignment of one or more roles to said subject comprises a verification of an authorization of said subject obtained separately.
30 . A license management software program according to one of the claims 23 to 29 , characterized in that said assignment of one or more roles to said subject comprises a verification of an authorization of said subject by means of a digital signature.
31 . A license management software program according to one of the claims 18 to 30 , characterized in that for the purpose of monitoring licenses, each license holds information about the identity of one or more downloaded individualized copies of the software product licensed by said license.
32 . A license management software program according to one of the claims 18 to 31 , characterized by said license management software program suggesting one or more legitimate upgrade paths leading to a license for a selected software product.
33 . A download control software program for providing an individual download copy of a software product by individually modifying a copy of a master-copy of said software product for download from a server according to a method of one of the claims 5 to 17 .
34 . A download control software program according to claim 33 , characterized in that said modifying creates a uniquely modified copy of said master-copy for each download.
35 . A download control software program according to claim 33 or 34 , characterized in that said modifying comprises embedding information which unambiguously links said individual download copy of a software product to a subject.
36 . A download control software program according to claim 33 , 34 or 35 , characterized in that said modifying comprises embedding information which unambiguously identifies said master-copy of said software product.
37 . A download control software program according to one of the claims 33 to 36 , characterized in that said modifying comprises embedding information which unambiguously identifies said individual download copy of said software product.
38 . A download control software program according to one of the claims 33 to 37 , characterized in that at least some of the parts of said individual download copy being invariant to different downloads are kept in one or more files separate from said individual download copy of said software product.
39 . An execution control software program for linking an individual download copy of a software product requesting permission to run to a matching license, comprising the steps of obtaining identification information from said individual download copy of a software product before or while it is being executed, evaluating licenses matching said identification information, and if at least one of said licenses grants use of said individual download copy of a software product, transmitting approval to said individual download copy of a software product.
40 . An execution control software program according to claim 39 , characterized in that said matching licenses are evaluated on a “best match first”—basis.
41 . An execution control software program according to claim 39 or 40 , characterized by said approval being code and/or data transmitted from said execution control software program to said individual download copy of a software product necessary to obtain a fully usable runtime version of said individual download copy of a software product.
42 . An execution control software program according to claim 39 , 40 or 41 , characterized by said approval being a runtime ticket transmitted from said execution control software program to said individual download copy of a software product.
43 . An execution control software program according to one of the claims 39 to 42 , characterized in that transmitting approval requires successful validation of a request ticket supplied by said individual download copy of a software product.
44 . An execution control software program according to one of the claims 39 to 43 , characterized in that transmitting approval requires successful validation of the integrity of said individual download copy of a software product.
45 . An execution control software program according to one of the claims 39 to 44 , characterized in that changes are effected by said execution control software to be made to said individual download copy of a software product and/or to one or more of the stored tickets.
46 . An execution control software program according to one of the claims 39 to 45 , characterized in that receiving a valid log-off ticket from said individual download copy of a software product is treated as a notification of the termination of an execution of said individual download copy of a software product.
47 . An execution control software program according to claim 46 , characterized in that said individual download copy of a software product has to prove its runtime version unusable before said log-off ticket is accepted.
48 . An execution control software program according to claim 46 or 47 , characterized in that for each license said execution control software maintains a log of all executing individual download copies of software products that have been granted permission to run by said license.
49 . An execution control software program according to claim 48 , characterized in that said log is considered by the execution control software when deciding whether a license grants permission to run to a requesting individual download copy of a software product or not.
50 . An individual download copy of a software product created by individually modifying a copy of a master-copy of said software product for download from a server according to a method of one of the claims 5 to 17 .
51 . An individual download copy of a software product according to claim 50 , characterized in that said individual download copy of a software product is a uniquely modified copy of said master-copy.
52 . An individual download copy of a software product according to claim 50 or 51 , characterized in that said individually modifying comprises embedding identifying information in said individual download copy of a software product.
53 . An individual download copy of a software product according to claim 50 , 51 or 52 , characterized in that said individually modifying comprises embedding at least a part of a piece of verification code for carrying out the steps of:
a) querying an execution control software program to obtain a permission to run at a start-up of said individual download copy of a software product, and
b) continuing an execution of said individual download copy of a software product if a permission to run is obtained and aborting said execution otherwise.
54 . An individual download copy of a software product according to claim 53 , characterized in that said individual download copy of a software product notifies said execution control software program of an infringement of its integrity.
55 . An individual download copy of a software product according to claim 53 or 54 , characterized in that said individual download copy of a software product forwards identification data while querying said execution control software program for a permission to run.
56 . An individual download copy of a software product according to claim 55 , characterized in that said identification data comprise an identification of the licensee.
57 . An individual download copy of a software product according to claim 55 or 56 , characterized in that said identification data comprise an identification of said master-copy of said software product.
58 . An individual download copy of a software product according to claim 55 , 56 or 57 , characterized in that said identification data comprise an identification of said individual download copy of a software product.
59 . An individual download copy of a software product according to one of the claims 53 to 58 , characterized in that a request ticket is supplied with said query to obtain a permission to run.
60 . An individual download copy of a software product according to one of the claims 53 to 59 , characterized in that a runtime ticket received from said execution control software program constitutes said permission to run.
61 . An individual download copy of a software product according to one of the claims 53 to 60 , characterized in that a log-off ticket is received from said execution control software program.
62 . An individual download copy of a software product according to claim 61 , characterized in that said log-off ticket is returned to said execution control software program at the process of terminating the execution of said individual download copy of a software product.
63 . An individual download copy of a software product according to one of the claims 59 to 62 , characterized in that at least a part of a piece of verification code is embedded in one or more subroutines to verify the validity of at least one type of ticket.
64 . An individual download copy of a software product according to one of the claims 50 to 63 , characterized in that code embedded in one or more subroutines increments a counter particular to said subroutine each time said subroutine of said individual download copy of a software product is invoked.
65 . An individual download copy of a software product according to claim 64 , characterized in that the reading of each of said counters is submitted to the execution control software program at the process of terminating the execution of said individual download copy of a software product.
66 . An individual download copy of a software product according to one of the claims 50 to 65 , characterized in that at least a part of a piece of meta-verification code is embedded in one or more subroutines to verify the integrity of at least a part of said individual download copy of a software product.
67 . An individual download copy of a software product according to one of the claims 50 to 66 , characterized by a provision of means for an execution of code supplied by the execution control software program.
68 . An individual download copy of a software product according to claim 67 , characterized by a provision of means for returning a result of the execution of said code to said execution control software program.
69 . A server for providing a software license management and an online software license enforcement in accordance to a method described in one of the claims 1 to 17 , comprising means for the application of:
a) a license management software program according to one of the claims 18 to 32 , and/or
b) a download control software program according to one of the claims 33 to 38 , and/or
c) an execution control software program according to one of the claims 39 to 49 .
70 . A method for acquiring the right to use software comprising
transferring value from a purchaser to a seller of a license in exchange for a transfer of the ownership of said license and said purchaser receiving said ownership of said license from said seller, updating information stored in a license storage that links licenses and license owners to reflect the change in said ownership of said license, said purchaser obtaining an individualized copy of the piece of software corresponding to said license, said purchaser utilizing said piece of software whereby said utilizing is controlled pursuant to the information stored in said license storage.
71 . A method for distributing software on the basis of one or more license servers that provide license storage and/or program storage comprising
a license creation to enable a licensor to create and/or upload licenses for a piece of software on/to said license storage of at least one of said license servers, a software transfer to enable a licensor to transfer said piece of software to said program storage of at least one of said license servers, a license transfer to enable a license owner to change the owner of one or more of his/her licenses by modifying the information stored in said license storage of at least one of said license servers, an individualization for creating individualized copies of said piece of software, a download transfer to enable a purchaser to obtain one of said individualized copies derived from said program storage of at least one of said license servers, and a license enforcement to control the utilization of said individualized copies according to the information stored in said license storage of at least one of said license servers.
72 . A method of granting the right .to use software on the basis of one or more license servers that provide license storage and/or program storage comprising
creating and/or uploading licenses for a piece of software on/to said license storage of at least one of said license servers for distribution, transferring said piece of software to said program storage of at least one of said license servers to enable a purchaser to obtain an individualized copy of said piece of software.
73 . A method of transferring the ownership of a license on the basis of one or more license servers that provide license storage comprising
transferring value from a first purchaser to a first seller of a license in exchange for a first transfer of the ownership of said license and said first purchaser receiving said ownership of said license from said first seller, updating information stored in said license storage of at least one of said license servers that links licenses and license owners to reflect the change in said ownership of said license.
74 . A method of transferring the ownership of a license according to claim 73 , characterized in
that the first purchaser is the end user of said license.
75 . A method of transferring the ownership of a license according to claim 73 , characterized by
transferring value from a second purchaser to said first purchaser in exchange for a second transfer of the ownership of said license and said second purchaser receiving said ownership of said license from said first purchaser, updating information stored in said license storage of at least one of said license servers that links licenses and license owners to reflect the change in said ownership of said license.Join the waitlist — get patent alerts
Track US2002138441A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.