Some vendors heretofore may license the use of software products, hardware products, or digital content. Such a license may specify, for example, the number of times the product may be used or the device in which digital content or software may be downloaded. A recent development in licensing is credit based licensing. In such a system, a hardware or digital product may be associated with a number of credits that may be consumed by a user each time the product is utilized.
As noted above, a product may be associated with a number of credits that may be consumed by a user. The credits available may be in accordance with a license to use agreement. Such credits may be stored in a device and may be traced as they are consumed. The credits may be associated with digital content such as music, movies, text, etc. Alternatively, the credits may be associated with ink usage of a printing device or with the number of pages the device is allowed to print. Unfortunately, these credits may be vulnerable to attackers who seek to violate the license by maliciously altering the credits consumed or the maximum number of credits allowed. This allows the attacker to use the device, software, or digital content beyond that which Is allowed by the license. In turn, vendors may experience a loss of revenue or a decrease in the issuance of licenses, since attackers may reset the number of credits consumed or increase the maximum number of credits allowed and continue to use the product without restriction.
In view of the foregoing, disclosed herein are a system, computer-readable medium, and method for managing license to use agreements. In one example, the maximum number of credits a device is allowed to consume is determined. In a further example, an attacker resistant counter is increased using an atomic write. In one example, an atomic write may be defined as a two stage transaction in which a first transaction deletes an old value and a second transaction writes a new value. In a further example, an atomic write may be undone if the write is interrupted or aborted midway through the atomic write. As will be discussed in more detail below, reversing an interrupted write may prevent an attacker from ceasing the increase when the old value is deleted and modifying the counter to defraud the system. The aspects, features and advantages of the present disclosure will be appreciated when considered with reference to the following description of examples and accompanying figures. The following description does not limit the application; rather, the scope of the disclosure is defined by the appended claims and equivalents.
Non-transitory computer readable medium (“CRM”) 112 may store instructions that may be retrieved and executed by processor 110. As will be discussed in more detail below, the instructions may comprise a microcontroller 114. Non-transitory CRM 112 may be used by or in connection with any instruction execution system that can fetch or obtain the logic from non-transitory CRM 112 and execute the instructions contained therein. Non-transitory computer readable media may comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable non-transitory computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a read-only memory (“ROM”), an erasable programmable read-only memory, a portable compact disc or other storage devices that may be coupled to device 100 directly or indirectly. Alternatively, non-transitory CRM 112 may be an electrically erasable programmable read-only memory (“EEPROM”) or a smart card with integrated circuits to implement microcontroller 114 in accordance with aspects of the present disclosure. The non-transitory CRM 112 may also include any combination of one or more of the foregoing and/or other devices as well. While only one processor and one non-transitory CRM are shown in
In one example, processor 110 may determine whether the maximum number of credits available for a given device Is greater than or equal to a sum of a number of credits consumed by the given device and a number of credits requested by the device. As will be discussed below, the maximum number of credits available may be received via a secure packet from a remote usage manager. If the maximum number of credits available is greater than or equal to the sum, processor 110 may initiate an increase of counter 116 using microcontroller 114. Counter 116 may indicate the number of credits consumed by the device. Upon receipt of the packet from a remote usage manager, processor 110 may respond to the packet so as to acknowledge receipt and storage of the maximum number of credits. The maximum number of credits may be stored in a non-volatile memory to ensure that it's stored and accessible despite a power outage or a shutdown of the system.
Microcontroller 114 may be implemented in the form of hardware, software, or a combination of hardware and software. In one example, processor 110 may use microcontroller 114 to increase counter 116 when a credit is consumed such that the increase is equal to a number of credits requested, in one example, counter 116 is a read-write max counter resistant to decrease by an attacker. Such resistance to an attacker may be carried out by logic in the operating system of microcontroller 114. As noted above, the increase may be executed as an atomic write. An example of such an atomic write will be discussed below with regard to
Examples of the system, method, and non-transitory computer-readable medium are shown in
As shown in block 202 of
Remote usage manager 302 may govern the usage of devices 306, 308, and 310 and each device may comprise a counter 307, 309, and 311 respectively. Each counter may be indicative of the number of credits consumed by its associated device. Remote usage manager 302 may send the secure packet via network 304, which may be a LAN, WAN, the internet, etc., or which may he wired or wireless. As discussed above, each device may store the maximum number of credits in a non-volatile memory to ensure that it is stored despite a power outage or a shutdown. Such non-volatile memory may be for example, a phase change memory (“PCM”) or spin-torque transfer RAM (“STT-RAM”). Each counter may be a read-write max counter that is impervious to decrease by an attacker. That is, an attacker is prevented from decreasing the number of credits consumed, which would allow a user to use the device or digital content beyond that which is allowed by the license to use agreement.
Referring back to
Advantageously, the foregoing system, method, and non-transitory computer readable medium allow license to use agreements to be securely enforced. In this regard, an atomic write and an attacker resistant counter may prevent attackers from violating the license to use agreement by altering the counter. In turn, vendors of hardware or software products subject to a license to use agreement may be confident that the restrictions imposed by the license will not be violated by unscrupulous users.
Although the disclosure herein has been described with reference to particular examples, it is to be understood that these examples are merely illustrative of the principles of the disclosure. It is therefore to be understood that numerous modifications may be made to the examples and that other arrangements may be devised without departing from the spirit and scope of the disclosure as defined by the appended claims. Furthermore, while particular processes are shown in a specific order in the appended drawings, such processes are not limited to any particular order unless such order is expressly set forth herein; rather, processes may be performed in a different order or concurrently and steps may be added or omitted.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2013/038713 | 4/30/2013 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2014/178824 | 11/6/2014 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6957921 | Silverbrook et al. | Oct 2005 | B1 |
8306878 | Nagarajan | Nov 2012 | B2 |
8332332 | Carlson et al. | Dec 2012 | B2 |
20030065713 | Quach et al. | Apr 2003 | A1 |
20030074312 | White | Apr 2003 | A1 |
20030182368 | Horiyama | Sep 2003 | A1 |
20090047997 | Silverbrook et al. | Feb 2009 | A1 |
20100195133 | Adkins | Aug 2010 | A1 |
20100313056 | Margolis | Dec 2010 | A1 |
20100315680 | Ishikake | Dec 2010 | A1 |
20110191197 | VanWinkle | Aug 2011 | A1 |
20110220711 | Hendley | Sep 2011 | A1 |
Number | Date | Country |
---|---|---|
WO-2010064085 | Jun 2010 | WO |
Entry |
---|
International Search Report & Written Opinion received for PCT Application No. PCT/US2013/038713; dated Jan. 27, 2014, 10 pages. |
User Guide, ObjectPrint Software, Version 4.1, 2012, pp. 1-53, Fitosoft, Available at: <fitosoft.com/download/ObjectPrint.pdf>. |
Number | Date | Country | |
---|---|---|---|
20160042259 A1 | Feb 2016 | US |