CA2399317A1 - Apparatus and method for enforcing software license - Google Patents

Apparatus and method for enforcing software license Download PDF

Info

Publication number
CA2399317A1
CA2399317A1 CA002399317A CA2399317A CA2399317A1 CA 2399317 A1 CA2399317 A1 CA 2399317A1 CA 002399317 A CA002399317 A CA 002399317A CA 2399317 A CA2399317 A CA 2399317A CA 2399317 A1 CA2399317 A1 CA 2399317A1
Authority
CA
Canada
Prior art keywords
license
software
checker
usb device
participating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002399317A
Other languages
French (fr)
Inventor
Brian Ka Kui Chan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CA002399317A priority Critical patent/CA2399317A1/en
Publication of CA2399317A1 publication Critical patent/CA2399317A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client

Abstract

An apparatus and method to enforce software license with USB device. The method comprises of a USB hardware key that is added to the system anytime it is needed, and codes that is installed to the participating software. The USB device contains a processor; an internal oscillator; non-erasable-non-volatile memory; volatile memory; a bus; an interrupt controller; an USB
SIE; and an USB
transceiver. Software send request to the USB device anytime during the run of the program for license check, the program would stop if a wrong device or no device is detected. Another approach of the said apparatus contains a flash memory that stores the license status, the license status determines if additional installation is allowed with the corresponding software. Another approach of the said apparatus is to use the USB device as a key to run the software.
The said invention increases the cost for any illegal users who try to break in the code, and it adds the flexibilities for developers.

Description

Apparatus and method for enforcing retail software license DESCRIPTION
TECHNICAL FIELD
The present invention relates to an apparatus of using both hardware and software for controlling and enforcing software licenses. The said invention uses the USB
technology.
BACKGROUND OF INVENTION
As PC and other computer system is getting more popular and needed, there is over $50 billions of sales in PC software annually over the world, these sales includes PC games software and business software. Retail software piracy is a major problem that is hurting this industry, many people who has not paid for the use of software is using or even generating profit for their own. The illegal users not only use software they have not paid for, some of them are even using the products to generate money for their own. This problem pulls down the revenue of the software manufacturers, and also the businesses that is hurt by their bad competitors who use illegal software.
This is just not fair to those who obey the laws.
Researches show that software piracy is hurting at least 40% of worldwide sales. In some countries like China, the software piracy percent is over 90%! This problem is getting worse and really affecting the software development industries, companies spend millions or billions of dollars in developments but they are not getting what they deserve. And companies or consumers are stopping to buy PC games or other software because they have other channels to get the same product. We can see the harm by just comparing the prices of some games in PC
platform and other video game consoles; they have at least 10% difference, a few games may have even up to 30%
difference in the PC based and console based prices.
Software manufacturers are trying their best to attract users to buy their game, such as lower price in PC, better customer services or better on-line services. However, the best way to control the loss is a better license control system, many software companies are trying and looking for new technologies to protect their right. There are many solutions already available in the market, however almost every one of them cannot absolute solve the problem totally, either the technologies have some weakness or they are not realistic to software businesses. Moreover, all these available technologies are very general solutions that neither one of them is focusing on only on games nor solely on application/business software, they all want to hit all the birds with only one stone. At the end, they won't get anything back.
DESCRIPTION OF RELATED ARTS
Current state of art software license protection schemes support software license enforcement based on a few concepts.
Firstly, one concept is based on serial number/string of the software. A
unique software serial number is shipped out with software. Upon software installation, a software procedure would request the user to enter a validation number that is shipped with the software. After the user enters the serial number, the validation procedure would validate the number/string.
If the entered serial munber/string does not satisfy the validation requirement, the installation would then be aborted.
Issue facing this type of licensing system is that if one person publishes a copy of the serial number publicly, anyone who has access to the number would be able to install the software freely.
There is no communication between systems to enforce single installation.
Secondly, another licensing scheme involves hardware specific license that runs on a specific machine. The buyer needs to contact the software manufacturer to activate/register the software.
After registration, the user is given a valid code that is allowed to run only on the system with the registration configuration.
Issue facing this system is that users need to contact manufacturers every time they install or remove the software, this is not a comfortable method for many regular users.
Other that installing and removing, whenever a hardware upgrade happens to the system, the software would not be allowed to start.
Thirdly, a licensing system is based on encryption that stores the keys in the CD. Encryption keys, public and private key, are stored in the CD that contains the data. The data in the CD is encrypted and cannot be read without decrypting it. The key, which is used to decrypt the data is stored or hidden on the CD. Different approaches and technologies in the market are used to hide the key. When a user wants to run the software, the original CD is required to obtain the key. This approach stops illegal users from backing up the CD and distribute it illegally.
Issue facing this system is that it is very non-secure. We can imagine that we lock a room;
we need a key to unlock the door lock in order to get in. However, we know that the key is just hiding somewhere outside the door. No matter how well it is hidden or how high tech the door lock is, it is just a matter of time to find it out. The reason is that we all know the key is just by the door.
Facts show that nearly every related technology that is available on the market is broken or cracked.
This type of technology is bound by the fact that leaving the key with the lock.
Another issue facing these and other retail software licensing systems is that they can only be put at the front line of software. That is, they can only guard the front door, illegal users need only crack or break the first line security, or fmd the key. They can use the software for as long as they want. These kinds of setting also provide illegal user the convenience of breaking in. They simply break the first few line of coding in the installation or starting procedure.
Another issue facing these and other retail software licensing systems is that it is very low cost for illegal users to break the scheme/system comparing to the benefits they obtain. Usually what they need is just time and knowledge, after then they will be able to break in any system with no cost. If it takes no cost for using software, many good users have become bad users without a doubt when it comes to the matter of money.
Accordingly, what is needed is a retail software licensing method for use of controlling retail licensing effectively, without user contacting manufacture of activations and removals, allows in depth controls rather that placing checks at starting. A successful retail software licensing method should also And the most important, increase the cost as much as possible of illegal users if they want to use it illegal.
SUMMARY OF INVENTION
An apparatus and method according to the disclosed invention allows software manufacturers to control the license of their software product more efficiently with the problems cause by other inventions and methods.

According to the present invention, the invention provides flexibilities to the developers to choose when and where to perform license validation. Also, the said invention increases the costs of illegal users to use the software illegally.
It is one part of the present invention is a hardware device to provide and representation of the license. The hardware device is a USB device which contains code and information of the license. This device is needed to present in the system at specific periods.
This USB device can be med to act as a key to start certain function or program, it is similar to the 'autorun' features in most CD.
It is yet another part of the present invention is the software code that used to perform checks and validation of the license. This code can be put anywhere in the participating software. This code is used to trigger the validation.
According to the present invention, it works along with any retail software product which uses it. When a certain 'function' is required to be run, the term 'function' used here includes starting a software function, running a certain procedure, upgrading the software, saving and loading.
After placing the code in any software procedure or function, before it is run or continues, a request of information would be send to the hardware device as an interrupt.
The USB hardware would return the request information to the system. The code would examine the information and validate it. According to one aspect of the invention, a determination is made as to whether the requested information satisfying the license agreement, the function is allowed to continue.
Another approach of the present invention includes an additional erasable memory and different nature of host coding.
»REIF DESCRIPTION OF DRAWINGS) Figure 1. Diagram of this apparatus in work with a PC system Figure 2. Block diagram of the USB hardware device as shown in Figure 1 S
Figure 3. Block diagram of the microcontroller as shown in Figure 2 Figure 4. Flow chart illustrating the work flow of the hardware device from Figure 2 in work Figure 5. Block diagram of the setting 2 of the USB hardware device as shown in Figure 1 Figure 6. Flow chart illustrating the work flow of installation checker in work Figure 7. Block diagram of the participating software with installation checker and status checker installed DETAILED DESCRIPTION OF INVENTION
The following detailed description is of the best presently contemplated mode for carrying out the invention. This description is not to be taken in a limiting sense but is made merely for the purpose of illustrating the general principles of the inventions since the scope of the invention is best defined by the appending claims.
The present invention, herein would be called invention 1 from this point, may be run on a variety of computers under a number of different operating systems. The computer could be, for example, a personal computer, a mini computer, or a main frame computer. T'he only requirement of the computer is that it supports USB (Universal Serial Bus), which is almost a basic requirement for tile systems that are produced in the last few years. For purposes of illustration only, the invention is described as implemented on a personal computer, such as a desktop PC that supports USB running Windows 95.
The present invention is composite of an USB I/O device 111 with a single upstream connection to provide data to the host system and a software program, herein called license checker 112 in the host system to communicate with the device.
According to the present invention, the USB device is a low speed device.
Also, the USB
device uses the transaction type of 'Interrupt Transaction'. The term 'Interrupt Transaction' here does not mean an immediate response to an external event. The term 'interrupt transaction' is a USB

standard term that means the host system polls the I/O device to inquire if it needs attention. The host can poll often as every (micro)frame.
Refernng now to the drawings, and more particularly to Figure 1, this is a shown a personal computer system 11, comprising the USB interface hub 10, a USB socket 12.
Participating software 1l 5 is an example of the retail software that uses the license checker 112 of the present invention.
'Che USB device 111 comprising a downstream type A connector 13 and the main body 14 of the 1JSB device 111. Software developers of participating software 15 can place calls of license checker 1.12 anywhere they like. When software checker 112 is called, it generates a request to the main body 14 through the USB hub 10, the USB socket 12 the downstream type A
connector 13 accordingly.
When the main body 14 receives a request, it will respond correspondingly, more detail will be described in other figures. The main body 14 returns the information through the downstream connector 13, the USB socket 12 and the USB hub 10 to license checker 112.
According to one aspect of the invention, a determination will be made as to whether the returned information satisfies the license agreement.
Figure 2 shows a block diagram of the main body 14 that is suitable for the connection shown in Figure 1. The main body 14, which comprises of a microcontroller 21 and related circuitries, connects with the downstream type A connector 13 with the USB
specification standard.
A microcontroller 21 comprising most part of the main body 14, power sources from connector 13 is provided to the microcontroller 21, data line D- and D+ is also connect to the personal computer system 11 through connector 13.
The internal configuration of microcontroller 21 shown in Figure 3 is suitable for the connection for Figure 2 and further connection for Figure 1. The microcontroller 21 comprising a processor 32, an internal oscillator 33, ROM 34, RAM 35, a Bus 36, an interrupt controller 37, an L1SB Serial Interface Engine 39 and an USB Transceiver 38.
The processor 32 is used to fetch, decode, execute, memory access and write back to memory of instructions. The processor 32 is clocked by the internal oscillator 33 through the connection 331.

The RAM 35 is used to stored temporary register values and other variable values, the values includes the address for the USB device assigned by the host, it can also used to store code downloaded from the license checker 112. The RAM 35 is connected to the Bus 36 through the connection bus 351. The ROM 34 is used to store microcontroller codes and also the information/data that is needed for validation.
The information/data in the present invention does not necessary to be static values includes a serial number. The information includes results from the functions executes in the processor 32, other than this, information includes a small file that is needed by the license checker 112.
According to the present invention, an interrupt controller 37 is used to control the interrupt generate by the license checker 112. It communicates with the USB SIE 39 through the interrupt bus 3'~71, the bus 36 and the USB engine Bus 361. Device 37 also communicates with the processor 32 through connection 371 and Bus 36. The Bus 36 controls all the traffic between different components in microcontroller as shown in Figure 3 and communication with outside the device.
The USB SIE 39 is a standard device for any USB device. The SIE 39 allows the other components in the microcontroller 21 communicate with the USB host, herein the interface hub 10.
The last component in Microcontroller 21 is the USB transceiver 38; it connects the USB
SIE 39 with connection 381. T'he transceiver 38 is a voltage/current level converter, which is a requirement for all USB devices, including the USB device 111 of the present invention.
Figure 4 illustrating the work of the license checker 112 in the system 11.
This license checker 112 can be any software code written in any programming languages that can be run compatibly with the participating software 15 in Figure 1. Step 40 in Figure 4 represents a call to the license checker 112 by the participating software 15. The license checker 112 can be repeated as many times as the developers of participating software 15 want.
Still referring to Figure 4, step 41 checks the present of any USB device which is corresponding to the participating software 15. The check in step 41 may be based on a few things of the USB devices present in the system 15, such as Product ID and Vendor ID.
If the check is >atisfying, the license checker 112 would proceed to step 42. If the check is not satisfying, the license checker 112 would exit and return the negative result indicating no present of corresponding 1:1SB device back to participating software 15, acknowledging it that the result does not satisfy the validation. Step 43 is the step that the developers of participating software 15 would decide on what participating software 1 S should behave.
Back to step 42 in Figure 4 if Step 41 satisfies the validation, the license checker 112 would request information as shown in Figure 3 from the USB device. Everything involving the hardware device 111 is done in step 42. After getting the information from the device 111, step 42 would validate the result. The validation includes checking the correctness of the result or merging the file to a file in the checker 112. If the validation is completed and the result satisfies the requirement, the license checker 112 will acknowledge Participating software 1 S that the license allows the following operation. However, if the result from the step 42 check is not valid, license checker 112 will behave the same way as step 41 with negative result, that is, proceeding to Step 43.
Developers of participating software 15 have an option to repeat the license checker 112 program until a valid key with valid information is plugged into the USB
socket in Figure 1.

The present invention takes a different approach that can be implemented as developer's choice. The advanced setting of the invention, herein label as approach 2, is very similar to the basic mode of the present invention. The USB device of setting 2 herein is called USB device 211, and the software part of approach 2 is an installation checker 72 and a status writer 73.
Figure 5 is the block of the microcontroller of approach 2. Thus, all the components in the rnicrocontroller 51 are identical to the microcontroller 21, every single components that exist in microcontroller 21 are perform and assembled the same in microcontroller 51.
However in the rnicrocontroller 51, an erasable memory 59 is added and connected to the bus.
This memory 59 can be any form of erasable non-volatile memory; an example would be the Flash memory. This memory 59 is used to store the status of the license, the size of this memory range from 1 bit to a few Kilo Bytes.
Figure 7 is the block diagram of the participating software 71 that uses approach 2, an installation checker 72 and a status writer 73 is among the source code of participating software 71.
The installation checker 72 determines whether further installation should be continued; the status writer is responsible to update the latest license status to the USB device.
The installation checker 72 in Figure 7 is different from the installation checker 112 in Figure 2. Figure 6 illustrating the steps happens in the related to the installation checker 72. Step 61 illustrates the installation request input by the user of participating software 71. Participating software 71 makes a function call to the installation checker 72 before any installation process. Step 62 is the first step of installation checker 72. Step 62 performs the exactly the same as step 41 from Figure 4. This step 62 checks the present of USB devices and check if there is an USB device that is corresponding to participating software ?1 is connected to the USB socket 12.
If the check in Step 62 fails, the installation checker 72 would end and acknowledge participating software 15 that the validation result is negative. Developers of the participating software 71 can choose to do whatever they like based on this result, e.g.
asking the user to plug in a valid USB device or aborting the installation process.

If a valid device is detected, installation checker 72 would proceed to Step 64 in Figure 6.
Step 64 takes a big part in installation checker 72; it requests the license status of participating software 71 to the microcontroller 51 of setting 2. Similar to step 42 from Figure 4, Step 64 is the only step in license checker that communicate with the hardware device 211.
When device 211 receives the request, it would pass the request to microcontroller 51. The rnicrocontroller would collect the information of the erasable memory and send them to installation checker 72. The information in the erasable non volatile memory can be in any form, e.g. just 1 bit storage with a 1 or 0 value. After the license checker receive the information in Step 64, the information is being checked for it status. If the information shows that this participating software i' 1 has been installed before, the installation checker 72 would end and acknowledge participating software 71 that this license allows no further installation. Developers of participating software 71 can choose to either ask for an uninstalled license or ask the user to uninstall the participating software 71 from another computer before installing it in the new machine.
If the information shows that the license is valid, step 64 would acknowledge participating software 71 and proceed to the Step 66. Step 66 can be anything developers of participating software T1 want to do, usually it would continue and finish the installation process that was original requested. Step 66 belongs neither to installation checker 72 nor status writer 73. After the participating software 71 finishes step 66, step 66 would acknowledge the status writer 73. Step 69 is the only step that status writer 73 does, it would update the license status of participating software 71 in USB device 211 by erasing or overwriting the data in memory 59 to reflect the latest license status. After that, the participating software 71 is official installed/valid to use. User will fail to install it again on another system without purchasing more licenses or uninstall the installed program. Vice versa, the status writer 73 would update the license status in USB device 211 if any user uninstalls the software using the device.
Although the present invention has been described in relation to particular embodiments thereof, many other variations and modifications and other uses will become apparent to those skilled in the art. It is preferred, therefore, that the present invention be limited not by the specific disclosure herein, but only by the appended claims.

EXAMPLES) OF INTENDED USE
1!.. The basic setting of the present invention, invention l, can be used in PC game software I>roduct. PC game software is one of the markets that are hurt terribly by software piracy. The most popular solution for PC games now is to encrypt the data on the CD and hide a encryption key somewhere on the CD. However illegal users crack this solution easily by taking the decrypted data out of the CD and create a visual CD ROM drive on the hard disk. It is very easy to find patches on the Internet for most of the commercialized technologies.
Invention 1 can be used by the game developers to put checks anywhere they want, the license checker 112 can be placed before:
a. Installing the game (and/or) b. Starting of the application/game(and/or) c. Loading/Saving a game/file (and/or) d. Entering certain stages (and/or) e. Joining a network game (and/or) f. Hosting a network game (and/or) g. Connecting servers for upgrade(and/or) h. Getting customer service from(and/or) Vendor I. Every 5/10/30/60 minutes afterlast a function run A,11 these choices are very flexible according to developers/software manufacturers' preference. The users do not need to use the original CD as the key anymore.
2., The invention 1 can be used to offer group license. If developers of Participating software 15 place the license checker only before the installing phase of the software, one single key can be used to install any number of times. This usage works best for enterprise version of software, e.g.
Windows XP Professional Edition. This solves the problem that illegal users make illegal backups of the CDs or distribute the software on the web. They cannot download a hardware key from the web.
3. This example illustrates a sample use of the second approach, setting 2.
The erasable memory 59 has only 1 byte of memory 59(extreme case). If the value of this bit in memory 59 equals to 0, it means that the corresponding Participating software 15 has not been installed yet; if the value of this bit equals to 1, that means the user has not installed the licensed software yet, and the user is allowed to install it. After checking the status of the license, the user can then install the software. After the installation, the value bit in memory 59 is set to 1 and no further installation is allowed.
The size of memory 59 varies. If the memory size is 10 byte, and the license configuration of the Participating software 1 S is set as 5 installations, then 5 bytes of the memory 59 is set to 1. This means that there are 5 more installation allowed. If all 5 bytes are equals to 1, no further installation would be allowed.

Claims (19)

1. A method for enforcing software license, said method comprising:

an USB device; and a license checker in a form of software code that is residing among the source code of the participating software program.
2. A method according to claim 1, wherein an USB device further comprising:

an USB downstream A connector; and a microcontroller, which further comprising:

a processor; an internal oscillator; non-erasable-non-volatile memory;
volatile memory; a bus; an interrupt controller; an USB SIE; and an USB transceiver.
3. A method according to claim 2, software developers of participating software program which use the said method has to set up the devices and the source code, comprising the steps of:

a) Selecting the places in the participating software to validate license;

b) Deciding the information that is residing in the non-erasable-non-volatile memory;

c) Setting up the license checker to perform accurate license validation; and d) Installing the license checker into software product's source code.
4. A method according to claim 2, wherein the non-erasable-non-volatile memory is a ROM.
5. A method according to claim 2, wherein the volatile memory is a ROM.
6. A method according to claim 2, wherein the interrupt controller generates interrupts to the said processor when the interrupt controller receives request of data from the participating software.
7. A method according to claim 3, wherein the places in the software means the lines in the source code that developers of the participating software want to validate the license paid by the user.
The places herein are also where the license checker according to claim 1 resides. It is not restricted to only the start up phase of the participating software.
8. A method according to claim 1, wherein the license checker is a set of software code includes the steps of:

determining the present of the USB device of the participating software;

if the USB device is not detected, exit the license checker with a result indicating no USB device is detected to the calling program, which is the participating software;

if the USB device is detected, request data from the USB device; determining if the license is valid;

if the license is valid, the license checker exits with a result indicating the license is valid;

if the license is not valid, the license checker exits with a result indicating the license from the device is invalid to the participating software.
9. A method according to claim 3, wherein the information means the data that are used by the licensed software to represent the license status. It is not restricted to any form, but it has to be able to reside in the non-erasable-non-volatile memory.
10. A method according to claim 8, wherein the step of determining the present of the USB
device includes comparing the USB device record from the participating system to the data in the license checker that represent the participating software; wherein the data in the license checker that represent the software includes the Product ID and Vendor ID of the corresponding USB device.
11. A method according to claim 8, wherein the step of determining if the license is valid includes compare the data from the USB device with the information that is residing in the license checker. The license is valid if the 2 sets of data are matching; the license is not valid if the 2 sets of data are different.
12. A method according to claim 1, wherein the license checker is a stand alone function.
13. A method according to claim 1, wherein the participating software program means the software product that uses the said method to enforce license.
14. A method for enforcing software license product, said method comprising:

an installation checker in a form of software code that is residing among the storage memory of the participating computer system;

a status writer in a form of software code that is residing among the software code of the participating software; and an USB device, the said USB device further comprising:

an USB downstream A connector; and a microcontroller that is coupled to the USB downstream A connector, the said microcontroller further comprising:

a processor; an internal oscillator; non-erasable-non-volatile memory;
volatile memory; erasable non-volatile memory; a bus; an interrupt controller; an USB
SIE;
and an USB transceiver.
15. A method according to claim 14, wherein the erasable non-volatile memory is a flash memory.
16 16. A method according to claim 14, software developers of participating software program which use the said method has to set up the devices and the source code, comprising the steps of:

a) Selecting the place in the participating software to validate license status;

b) Deciding the information that is residing in the erasable non-volatile memory;

c ) Setting up the installation checker and status writer to perform accurate license enforcement; and d) Installing the installation checker and status writer into the participating software's source code.
17. A method according to claim 14, wherein the installation checker is a set of software code includes the steps of:

determining the present of the USB device of the corresponding software;

if the USB device is not detected, installation checker with a result to the calling program indicating no USB device is detected;

if the USB device is detected, request status data from the USB device;
determining if the license is valid;

If the license is not valid, the installation checker exits with a result indicating invalid license;

If license is valid, the installation checker would exits with a result indicating the license is valid and installation is allowed.
18. A method according to claim 14, wherein the status writer is a set of software code includes the steps of:

preparing the data to represent the latest status of the license status of the participating software;

sending a request to write the data that represent the latest license status to the USB device;

the USB device write the data that represent the license status into the erasable non-volatile memory.
The said data that represent the latest license status is any form of data that is able to be stored in the erasable non-volatile memory of the USB device.
19. A method according to claim 17, wherein determining if the license is valid includes checking if the information that represent the license from the installation checker matches with the data from the USB device.
CA002399317A 2002-09-05 2002-09-05 Apparatus and method for enforcing software license Abandoned CA2399317A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002399317A CA2399317A1 (en) 2002-09-05 2002-09-05 Apparatus and method for enforcing software license

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002399317A CA2399317A1 (en) 2002-09-05 2002-09-05 Apparatus and method for enforcing software license

Publications (1)

Publication Number Publication Date
CA2399317A1 true CA2399317A1 (en) 2004-03-05

Family

ID=32046492

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002399317A Abandoned CA2399317A1 (en) 2002-09-05 2002-09-05 Apparatus and method for enforcing software license

Country Status (1)

Country Link
CA (1) CA2399317A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552429B2 (en) 2005-04-21 2009-06-23 International Business Machines Corporation Integrated development environment for managing software licensing restrictions
WO2009112595A1 (en) * 2008-03-10 2009-09-17 Fundación Cetena Support system for a computer executing secure algorithms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7552429B2 (en) 2005-04-21 2009-06-23 International Business Machines Corporation Integrated development environment for managing software licensing restrictions
WO2009112595A1 (en) * 2008-03-10 2009-09-17 Fundación Cetena Support system for a computer executing secure algorithms

Similar Documents

Publication Publication Date Title
US6460140B1 (en) System for controlling the use of licensed software
US6857067B2 (en) System and method for preventing unauthorized access to electronic data
US7849329B2 (en) Licensing the use of a particular feature of software
CN100461064C (en) Method and system for limiting software updates
EP1443381B1 (en) System and method for secure software activation with volume licenses
US9246916B2 (en) Specifying rights in a digital rights license according to events
US7134144B2 (en) Detecting and responding to a clock rollback in a digital rights management system on a computing device
US7849017B2 (en) Enforced seat-based licensing
US6006190A (en) Computer implemented method and a computer system for enforcing software licenses
TWI446180B (en) A method, system, and computer program product of controlling use of a computer program
US8219828B2 (en) Methods and a device for secure software installation
KR100648533B1 (en) Virus resistant and hardware independent method of flashing system bios
US20080300887A1 (en) Usage Model of Online/Offline License for Asset Control
US20080263542A1 (en) Software-Firmware Transfer System
US7363507B2 (en) Device and method of preventing pirated copies of computer programs
JP2004038247A (en) License management method, system, and program
US20080077420A1 (en) System and Method for Securely Updating Remaining Time or Subscription Data for a Rental Computer
US7565531B2 (en) Locking programming interface
EP1174786A2 (en) Method, system, and program for reusing software licenses with new computer hardware
CA2399317A1 (en) Apparatus and method for enforcing software license
JP2004046756A (en) License management method, system and program
US7971262B2 (en) Protecting against software piracy
JP2004515845A (en) System and method for preventing software piracy
EP1939784A1 (en) Methods and a device for secure software installation
JP2004295388A (en) Method for installing and protecting software

Legal Events

Date Code Title Description
FZDE Discontinued