Using flash storage device to prevent unauthorized use of software
Abstract
A flash storage device and a method for using the flash storage device to prevent unauthorized use of a software application are provided. An identifier may be encoded within specific sectors of the flash storage device. One bits of the identifier may be encoded as unusable ones of the specific sectors and zero bits of the identifier may be encoded as usable one of the specific sectors. Alternatively, the zero bits of the identifier may be encoded as the unusable ones of the specific sectors and the one bits of the identifier may be encoded as the usable ones of the specific sectors. The software application may be permitted to execute on a processing device connected to the flash storage device only when the identifier is encoded within the flash storage device.
Claims
exact text as granted — not AI-modifiedI claim as my invention:
1 . A machine-implemented method of employing a flash storage device in selectively controlling use of software, the machine-implemented method comprising:
accessing license information encoded in the flash storage device, wherein writeability or non-writeability of respective sectors of a plurality of sectors of the flash storage device corresponds to values of a plurality of data bits of at least a portion of the license information; and selectively controlling the use of the software based at least in part on the accessed license information.
2 . The machine-implemented method of claim 1 , wherein accessing the license information includes:
reading the portion of the license information from the flash storage device by performing at least one write operation to each of multiple sectors of the plurality of sectors.
3 . The machine-implemented method of claim 1 , wherein:
the license information is associated with a number of times that the software is licensed to be used, the machine-implemented method further comprises:
rendering a particular use counting sector of a plurality of use counting sectors non-writeable, including:
performing a plurality of write operations to the particular use counting sector, and wherein
selectively controlling the use of the software includes:
determining whether any use counting sector of the plurality of use counting sectors is writeable; and
selectively controlling the use of the software based at least in part on the determination of whether any use counting sector of the plurality of use counting sectors is writeable.
4 . The machine-implemented method of claim 1 , wherein:
the license information is associated with a validity period for the software, the machine-implemented method further comprises:
rendering at least one sector of the flash storage device non-writeable following an end of the validity period, including:
performing a plurality of write operations to the at least one sector, and
selectively controlling the use of the software includes:
determining whether the at least one sector is writeable; and
selectively controlling the use of the software based at least in part on the determination of whether the at least one sector is writeable.
5 . The machine-implemented method of claim 1 , wherein the portion of the license information includes at least an identifier of the software and a representation of at least one license term for the software.
6 . The machine-implemented method of claim 1 , wherein the machine-implemented method further comprises:
performing a network-based validation of the accessed license information.
7 . The machine-implemented method of claim 1 , wherein the machine-implemented method further comprises:
encoding the identifier into specific sectors of the plurality of sectors as part of an activation of the software.
8 . The machine-implemented method of claim 1 , wherein the license information includes a digital signature of an identifier of the software.
9 . The machine-implemented method of claim 1 , wherein a writeable sector of the plurality of sectors represents a value of “one” for a particular data bit of the plurality of data bits and a non-writeable sector of the plurality of sectors represents a value of “zero” for another data bit of the plurality of data bits.
10 . The machine-implemented method of claim 1 , wherein a writeable sector of the plurality of sectors represents a value of “zero” for a particular data bit of the plurality of data bits and a non-writeable sector of the plurality of sectors represents a value of “one” for another data bit of the plurality of data bits.
11 . A computer-readable storage medium having instructions stored therein for performing operations that selectively control use of software, the operations comprising:
accessing license information encoded in a flash storage device according to respective writeable or non-writeable of each sector of a plurality of sectors of the flash storage device, wherein each sector of the plurality of sectors corresponds to a particular data bit of a plurality data bits of at least a portion of the license information; and selectively controlling the use of the software based at least in part on the accessed license information.
12 . The computer-readable storage medium of claim 11 , wherein accessing the license information includes:
reading the portion of the license information from the flash storage device via a plurality of write operations to each of multiple sectors of the plurality of sectors.
13 . The computer-readable storage medium of claim 11 , wherein:
the license information is associated with a number of times the software is licensed for execution, the operations further comprise:
rendering a particular use counting sector of a plurality of use counting sectors non-writeable, including:
performing a plurality of write operations to the particular use counting sector, and wherein
selectively controlling the use of the software includes:
determining whether any use counting sector of a plurality of use counting sectors is writeable; and
selectively controlling the use of the software based at least in part on the determination of whether any use counting sector of a plurality of use counting sectors is writeable.
14 . The computer-readable storage medium of claim 11 , wherein the portion of the license information includes at least an identifier of the software and represents at least one license term for the software.
15 . The computer-readable storage medium of claim 11 , wherein the software is stored on the flash storage device.
16 . A flash storage device for controlling functionality of a software application, the flash storage device being organized into a plurality of sectors, and the flash storage device having stored therein:
license information for the software application, the license information including a plurality of bits thereof that are encoded within the flash storage device such that unusable ones of specific sectors of the flash storage device represent “one” bits and usable ones of the specific sectors of the flash storage device represent “zero” bits, or such that the writeable ones of specific sectors of the flash storage device represent the “one” bits and the non-writeable ones of the specific sectors of the flash storage device represent “zero” bits.
17 . The flash storage device of claim 16 , wherein the license information further includes a digital signature stored within the flash storage device.
18 . The flash storage device of claim 16 , wherein:
the license information further includes information regarding a number of times the software application is permitted to be executed, and writeability of additional specific sectors of the flash storage device are indicative of whether the software application has been executed the number of permitted times.
19 . The flash storage device of claim 16 , wherein the flash storage device also has the software application stored therein.
20 . The flash storage device of claim 16 , wherein:
the license information includes information regarding an expiration date of a license for the software application, and writeability of additional specific sectors of the flash storage device are indicative of whether the license for the software application has expired.Join the waitlist — get patent alerts
Track US2016063225A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.