Methods for controlling software usage
First Claim
1. A computer implemented method for controlling software usage, the method comprising:
- receiving a request for at least one software application license for a software application by a computing apparatus comprising at least one processor and a readably coupled memory, wherein the request comprises a user count upper limit;
generating, by the computing apparatus, one or more sets of license data in response to the request, wherein the one or more sets of license data comprise the user count upper limit, a security certificate associated with the software application, and a corresponding sequence number;
signing each of the one or more sets of license data digitally with a private key;
embedding the one or more sets of signed license data into the software application;
performing registration for user identification data comprising a user identification string and a password string, wherein registration comprises (a)-(d);
(a) validating the license data, wherein validating the license data comprises validating the signed license data embedded into the software application;
(b) maintaining an active user count;
(c) checking availability of a license, wherein checking availability comprises comparing the active user count against the user count upper limit; and
(d) associating the user identification data with the corresponding sequence number in the signed license data;
receiving a request to access the software application, wherein receiving the request comprises receiving registered user identification data through an input interface associated with the computing apparatus and signed license data;
validating the registered user identification data, wherein validating comprises (e)-(g);
(e) identifying the sequence number associated with the registered user identification data;
(f) comparing the corresponding sequence number associated with the registered user identification data with the corresponding sequence number in the signed license data; and
(g) authenticating the registered user identification data, wherein authenticating comprises authenticating only if the corresponding sequence number associated with the registered user identification data and the corresponding sequence number in the signed license data match; and
responsive to successfully validating the registered user identification data, providing access to the software application by the user identification string.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods for controlling software usage are described. Methods comprise receiving a request for at least one software application license, wherein the request comprises a user count, generating, by the computing apparatus, one or more sets of license data in response to the request, wherein a set of license data comprises at least one of the user count and a corresponding sequence number, signing each of the one or more sets of license data digitally with a private key, embedding a set of signed license data into the software application, receiving user identification data from a user through an input interface associated with the computing apparatus, and validating the user identification data. Additional embodiments incorporate mechanisms for license renewal, user registration and user authentication by means of associating a range of user identification data with the license data.
-
Citations
19 Claims
-
1. A computer implemented method for controlling software usage, the method comprising:
receiving a request for at least one software application license for a software application by a computing apparatus comprising at least one processor and a readably coupled memory, wherein the request comprises a user count upper limit; generating, by the computing apparatus, one or more sets of license data in response to the request, wherein the one or more sets of license data comprise the user count upper limit, a security certificate associated with the software application, and a corresponding sequence number; signing each of the one or more sets of license data digitally with a private key; embedding the one or more sets of signed license data into the software application; performing registration for user identification data comprising a user identification string and a password string, wherein registration comprises (a)-(d); (a) validating the license data, wherein validating the license data comprises validating the signed license data embedded into the software application; (b) maintaining an active user count; (c) checking availability of a license, wherein checking availability comprises comparing the active user count against the user count upper limit; and (d) associating the user identification data with the corresponding sequence number in the signed license data; receiving a request to access the software application, wherein receiving the request comprises receiving registered user identification data through an input interface associated with the computing apparatus and signed license data; validating the registered user identification data, wherein validating comprises (e)-(g); (e) identifying the sequence number associated with the registered user identification data; (f) comparing the corresponding sequence number associated with the registered user identification data with the corresponding sequence number in the signed license data; and (g) authenticating the registered user identification data, wherein authenticating comprises authenticating only if the corresponding sequence number associated with the registered user identification data and the corresponding sequence number in the signed license data match; and responsive to successfully validating the registered user identification data, providing access to the software application by the user identification string. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A non-transitory computer readable storage medium having stored thereon computer executable instructions for performing a method for controlling software usage, the method comprising:
-
receiving a request for at least one software application license for a software application by a computing apparatus comprising at least one processor and a readably coupled memory, wherein the request comprises a user count upper limit; generating, by the computing apparatus, one or more sets of license data in response to the request, wherein a set of license data comprises the user count upper limit, a security certificate associated with the software application, user details received from a user, and a corresponding sequence number, wherein the corresponding sequence number is in an arbitrarily determined range, and size of the range is equal to the user count upper limit; signing each of the one or more sets of license data digitally with a private key; embedding a set of signed license data into the software application; performing registration for user identification data comprising a user identification string and a password string, wherein registration comprises (a)-(d); (a) validating the license data; (b) maintaining an active user count; (c) checking availability of a license, wherein checking availability comprises comparing the active user count against the user count upper limit; and (d) associating the user identification data with the corresponding sequence number in the signed license data; receiving a request to access the software application, wherein receiving the request comprises receiving registered user identification data through an input interface associated with the computing apparatus and signed license data; validating the registered user identification data, wherein validating comprises (e)-(g); (e) identifying the sequence number associated with the registered user identification data; (f) comparing the corresponding sequence number associated with the registered user identification data with the corresponding sequence number in the signed license data; and (g) authenticating the registered user identification data, wherein authenticating comprises authenticating only if the corresponding sequence number associated with the registered user identification data and the corresponding sequence number in the signed license data match; and responsive to successfully validating the registered user identification data, providing access to the software application by the user identification string. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a memory and at least one processor configured to perform; receiving a request for at least one software application license for a software application by a computing apparatus comprising at least one processor and a readably coupled memory, wherein the request comprises a user count upper limit; generating, by the computing apparatus, a set of license data in response to the request, wherein the set of license data comprises the user count upper limit, a security certificate associated with the software application, user details received from a user, and a corresponding sequence number, wherein the corresponding sequence number is in an arbitrarily determined range, and size of the range is equal to the user count upper limit; signing the set of license data digitally with a private key; embedding the set of signed license data into the software application; performing registration for user identification data comprising a user identification string and a password string, wherein registration comprises (a)-(d); (a) validating the license data, wherein validating the license data comprises validating the signed license data embedded into the software application; (b) maintaining an active user count; (c) checking availability of a license, wherein checking availability comprises comparing the active user count against the user count upper limit; and (d) associating the user identification data with the corresponding sequence number in the signed license data; receiving a request to access the software application, wherein receiving the request comprises receiving registered user identification data through an input interface associated with the computing apparatus and signed license data; validating the registered user identification data, wherein validating comprises (e)-(g); (e) identifying the sequence number associated with the registered user identification data; (f) comparing the corresponding sequence number associated with the registered user identification data with the corresponding sequence number in the signed license data; and (g) authenticating the registered user identification data, wherein authenticating comprises authenticating only if the corresponding sequence number associated with the registered user identification data and the corresponding sequence number in the signed license data match; and responsive to successfully validating the registered user identification data, providing access to the software application by the user identification string.
-
Specification