US20090133131A1 - Method and system for managing software licenses - Google Patents

Method and system for managing software licenses Download PDF

Info

Publication number
US20090133131A1
US20090133131A1 US12/356,329 US35632909A US2009133131A1 US 20090133131 A1 US20090133131 A1 US 20090133131A1 US 35632909 A US35632909 A US 35632909A US 2009133131 A1 US2009133131 A1 US 2009133131A1
Authority
US
United States
Prior art keywords
licenses
user
account
security device
user account
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
US12/356,329
Inventor
Paul A. Cronce
Andrew A. Kirk
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.)
Pace Anti Piracy Inc
Original Assignee
Pace Anti Piracy Inc
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 Pace Anti Piracy Inc filed Critical Pace Anti Piracy Inc
Priority to US12/356,329 priority Critical patent/US20090133131A1/en
Publication of US20090133131A1 publication Critical patent/US20090133131A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Definitions

  • the usual method of selling software is to sell a license to use the software.
  • the license typically includes various restrictions, known as license terms.
  • Software can be delivered with a written license document. However, it is easy to duplicate the software and distribute it illegally with this method. To prevent piracy of the licensed software, many techniques to prevent copying software have been used. Some methods are focused on making the actual software difficult to copy. Other methods use an electronic form of the license terms as a method of limiting distribution of the software.
  • the electronic licenses are of course subject to hacking and piracy as well.
  • Various methods of increasing the security of an electronic software license have been developed.
  • the assignee of the present invention has developed a method of delivering secure licenses for this purpose, as described in U.S. patent application Ser. No. 10/072,597 entitled “A METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” and U.S. patent application Ser. No. 10/080,639 entitled “DELIVERY OF A SECURE SOFTWARE LICENSE FOR A SOFTWARE PRODUCT AND A TOOLSET FOR CREATING THE SOFTWARE PRODUCT.”
  • the assignee has also developed an external security device for storing software licenses in which the licenses are accessed by plugging the external device into an I/O port of the user computer, as described in U.S. Pat. No. 7,032,240 entitled “PORTABLE AUTHORIZATION DEVICE FOR AUTHORIZING USE OF PROTECTED INFORMATION AND ASSOCIATED METHOD,” assigned to the same assignee of the present invention describes such a device.
  • a method and system for managing licenses over a network includes establishing a user account on a server coupled to the network, and allowing a user or publisher to upload or download licenses from a computer to or from the server. The licenses are then associated with the user account, and the user is allowed to log into the user account to review the account and associated uploaded licenses. The method and system further include allowing the user to review and retrieve the licenses for download to the user computer in the case of a lost or damaged license.
  • the present invention allows the user to establish a record of user licenses, and to recover licenses in the case of a lost or damaged license.
  • FIG. 1 is a block diagram of the system used to implement the present invention.
  • FIG. 2 is a block diagram of the software to implement the present invention on the user computer.
  • FIG. 3 is a flow diagram of the present invention.
  • FIG. 4 is a block diagram of the license management web application used to implement the present invention.
  • FIG. 5 is a flow diagram of the process of ensuring that only a single working copy of a license file stored in an external security device is available at any given time.
  • FIG. 6 is a flow diagram of the process of reselling or renting software licenses.
  • FIG. 7 is a flow diagram of the process of ensuring that only a single working copy of a license stored on an external security device is available at any given time.
  • the present invention relates to a method for managing software licenses over a network.
  • the following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements.
  • Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art.
  • the present invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features described herein.
  • FIG. 1 is a block diagram illustrating a license management system in accordance with a preferred embodiment of the present invention.
  • the system includes a user computer 101 , a network 103 , and a web server 102 . Additionally, in the preferred embodiment, an external security device 132 may be coupled to the user computer 101 to provide a secure storage for software licenses 142 .
  • User computer system 101 preferably comprises a microprocessor or CPU 113 , a memory system 114 , and input/output hardware 112 .
  • the input/output hardware 112 is preferably connected the network 103 , and optionally to the external security device 132 .
  • Other I/O devices may be connected to the I/O 112 , such as keyboard, mouse, trackball, and display, as required (not shown).
  • a storage device 124 such as a hard disk or flash memory is connected to I/O 112 , and supplies non-volatile storage for user computer 101 .
  • Stored on this device are licensed software programs 150 , unlicensed software programs (not shown), and software licenses 141 .
  • the licenses for licensed software programs 150 may reside either on the storage device 124 or the external security device 132 , according to the present invention.
  • the network 103 is also connected to web server 102 .
  • the connection to the network 103 may take various forms, including wireless, DSL, dial-up, or IR.
  • Other variations of the user computer, such as PDA's, are well known by one skilled in the art, and thus will not be described in more detail herein.
  • web server 102 includes a web application 400 and associated database 407 , which contains software licenses 143 that have been uploaded from user's computer 101 over network 103 .
  • Web server 102 contains other software and hardware that is known to those of ordinary skill in the art, and will not be described in more detail herein.
  • the user connects to the web application 400 using a web browser on the user's computer 101 , and sets up an account.
  • the user uploads software licenses, either from the hard disk 124 (software licenses 141 ), from an external security device 132 (software licenses 142 ), or by entering data from written licenses into web forms provided by the web application 400 .
  • Written licenses typically include a serial number or CD key.
  • on-line software licenses 143 are now available for the user in case of loss of license information on computer 101 or security device 132 .
  • the user will be able to recover the license information to enable reloading the software onto a new hard disk.
  • a new one can be purchased and the software licenses 142 can be restored from software licenses 143 stored in database 407 . This is accomplished by the user logging into his account via web application 400 and selecting a download license function from the functions menu or links. In this way, the present invention can provide backup and restoration of license information in case of lost or damaged licenses, hardware, or software. Additional advantages of the present invention will be described below.
  • FIG. 2 a block diagram of the software used to implement the present invention on the user computer is shown.
  • the software is loaded into memory system 114 of computer system 101 .
  • Various components of the computer system software are shown. This includes the basic I/O system (BIOS) 211 , the Kernel 212 , the Operating System 213 , and the I/O Routines 214 required for communicating over the network. These routines are shown within the Operating System 213 .
  • BIOS basic I/O system
  • a typical web browser 215 is used to access the web site's server 102 .
  • an additional “helper” application 216 is downloaded into the user computer 101 to facilitate automatic remote retrieval of licenses to operation from the user's computer to the server 102 . This download typically occurs as part of the user account setup process described below.
  • the helper application registers a unique file extension with the operating system 213 , such that the helper application will be invoked whenever a file with that extension is received during normal operation of the browser 215 . This capability is well known by those of ordinary skill in the art, and will not be described in more detail herein.
  • step 301 a user account is set up on server 102 over network 103 .
  • the user interacts using the web browser by “surfing” to the home page of the web application on server 102 used to implement the present invention.
  • the term “surfing” refers to providing network addresses to the browser by clicking on links on the user computer or on web pages from various web sites on the network, or manually entering the address of a web site into the browser.
  • the user may select a link labeled “Set Up a New Account,” for example.
  • This link would access a web page on serer 102 where the user can enter the required information to enable the web application to set up an account for the user, such as name, address, phone number, email address, and optionally credit card information, if the service provided is fee-based rather than free.
  • license files 141 and 142 for his licensed software 150 to the server 102 in step 30 .
  • These license files may be located on the user computer hard disk 124 , on the external security device 132 , or be a set of manually entered information provided by the user from printed license documents. In the latter case, the user would supply any authentication keys, CD keys, or serial numbers required to successfully install the licensed software on his computer. Other useful information includes the software product name and version number. Other information may be required: some software requires both an ID and serial number, for example. Additionally, the user may wish to provide the publisher name, date of purchase, location of purchase, and publisher contact information. In the preferred embodiment, the information provided manually by the user would be entered into a web page form provided by server 102 , and submitted to the web application on server 102 with a click on a “submit” button. An example of a submission might look like this:
  • the key information here is the serial number. Because Adobe Systems, Inc. provides the serial number on small stick-on labels it is easy to misplace them. Even worse, in this example, an “upgrade” from a previous version was purchased, typically at a lower price then the full 6.0 version in the example. In this case, the original 4.0 “full version” disk is required in order to install the upgrade disk. This is critical information for the user to remember. In order to reinstall the Photoshop 6.0 software, both the 6.0 and 4.0 disks are required, along with the serial number.
  • the “helper” application 216 is downloaded to the user computer during the user account setup process. This application responds automatically to a specific file extension.
  • the web application wishes to automatically retrieve license files stored on the hard disk 124 or external security device 132
  • the request is downloaded to the user computer 101 via the web browser 215 using the helper application's 216 unique file extension. In this way, the helper application 216 is invoked to process the request.
  • the helper application 216 uses the operating system 213 to access the hard disk 124 to locate any license files, or uses the I/O routines 214 to communicate with the external security device 132 for the purpose of retrieving licenses stored on the external security device 132 .
  • Additional I/O routines may be required to communicate with the external security device 132 .
  • these additional I/O routines are installed at the time of the security device 132 first use using software provided with the security device 132 , or from system files located on the user computer hard disk 124 .
  • the helper application 216 may only search for license files on the hard disk 124 , or may only search for license files on the optional external security device 132 , depending on the method of license storage used by the software product publishers who licensed the software to the user. In any case, the software product licenses are uploaded to the server 102 , either automatically from the helper application 216 or from user-entered data as described above.
  • the uploaded license information 143 is associated with the user account. Typically, this is done using a database 407 .
  • the operation and use of databases is well known by those of ordinary skill in the art, and will not be described in more detail herein.
  • the user has successfully stored software licenses on the server 102 .
  • the user can optionally return at a later time to review the licenses and license information, or to update license information. Updating license information can include editing information, adding new information, or uploading additional software product licenses.
  • the user can optionally return to retrieve for download the stored license information, in the case where one or more licenses were damaged or destroyed by a software or hardware failure on the user computer, or by the action of a computer virus, a hacker, or mechanical damage.
  • the user may purchase a new computer and want to transfer all or some licensed programs 150 to the new computer, and would require license information for that task.
  • other reasons for accessing the user account include selling and transferring licenses to other users, receiving updated license information such as new features or extending time-limited license terms, or even temporarily transferring licenses to other users for rental for a specified period of time.
  • the web application 400 is typically a collection of web pages, active server pages (ASP), or other web application technology, running on the web server, and including various required software modules necessary for the proper operation of the license management website.
  • one of the modules is a copy of the helper application (not shown).
  • the operation of a website is well known by those of ordinary skill in the art, and will not be discussed in detail herein.
  • a home page 401 is used as an entry point into the application 400 . From here, links or buttons will lead a user to appropriate pages in the website, for example, a page for user account setup 402 , and a page for publisher account setup 403 .
  • User account setup has been described in detail above.
  • the data from user accounts is stored in database User Accounts 407 a
  • uploaded license information is stored in database User Licenses 407 b .
  • Application 400 also includes user account functions 405 for accessing and processing user account information and user license information. Other pages for user login, user account management, and license review and updates are not shown, and would also access User Accounts 407 a and User Licenses 407 b databases, either using user account functions 405 or by direct access to the databases using database queries.
  • Various rules are also required for the correct operation of web application 400 .
  • These business rules are often also stored in a database, such as Application business rules 407 e . These rules control the setup and use of accounts, including specifying required fees and service level options, for example.
  • software publishers may also have accounts 407 d on the web application 400 , set up using the publisher account setup page 402 . This is important to allow the website to facilitate transactions between the user and the publisher. This is especially useful when license files can be automatically retrieved from the user computer 101 , either from the hard disk 124 or external security device 132 .
  • the publisher has the ability to grant new, additional, or replacement licenses for its software products, and is typically interested in maintaining contact with the user to apprise the user of and sell product updates and new products, to provide a mechanism for making offers available from the publisher partners, and to maintain control over the licensed products. Additionally, the publisher may wish to use the web application 400 to assist in customer support functions.
  • the publisher will typically establish a set of business rules for dealing with customers. These rules are stored in a database Publisher Business Rules 407 c associated with the publisher accounts stored in Publisher Accounts 407 d database, and are typically entered using various web page forms provided by web application 400 (not shown). These business rules allow the web application 400 to manage the functions of the web application according to the wishes of the publisher. For example, one software publisher may have a business rule that allows a user to acquire a replacement license for 30 days, during which time the user must provide proof of loss. Another publisher may require full payment for a replacement license, and provide a full or partial refund upon proof of loss. One publisher may allow a user to resell their license. Another may not.
  • All of the rules associated with various functions that the website can provide can be programmed via web page forms provided to the publisher during the publisher account setup process. These rules 407 c and publisher accounts 407 d can be accessed directly with database queries, or via publisher account functions 406 for use by the web application in providing service to the publishers and users.
  • FIG. 4 shows a plurality of databases 407 a through 407 e
  • this data can be stored in a single database in separate tables, or in various other arrangements.
  • the data in each database shown is “related” to the other databases shown. This allows accessing the appropriate information stored in one database from information stored in another.
  • a user account is associated with one or more licenses. By accessing the user account in User Accounts 407 a , one can then look up all user licenses associated with the user account in User Licenses 407 b .
  • a software publisher can access all user licenses for software products provided by the publisher by first logging into the publisher account in Publishers Accounts 407 d , and then accessing related licenses in User Licenses 407 b .
  • the operation of relational databases is well know to those of ordinary skill in the art, and will not be described in more detail herein.
  • the web application 400 also includes an e-commerce subsystem 404 that is used to collect fees from the publisher or user, depending on the application business rules 407 e .
  • fees might be collected.
  • the service provided by the web application 400 could be associated with a single, one-time setup fee to either or both user and publisher, or could be associated with a recurring fee, such as a yearly service fee.
  • service provided between the publisher and user could be fee-based.
  • the web application 400 could provide a mechanism for special offers for upgrades and other products when the user logs into his account. If the user buys an upgrade or additional product, some of the proceeds can be diverted to the licensing management website owner, and the remaining proceeds transferred to the publisher.
  • the business rules 407 e for the website or the publisher business rules 407 b would hold the information related to these transactions, including setting the amounts paid by the user and the fee paid for the service by the web application.
  • the web application could provide a means for one user offering for sale a software license no longer needed, or even a time-based rental. For example, if a user is going on a long vacation, or is working on a project, and will not require a particular software package for a period of time, the license could be temporarily transferred for a fee to another user. In this case, the license owner would receive a rental fee, and the license management website owner may receive a commission for the service of transferring and controlling the license. Additionally, the publisher may receive a fee for allowing rentals to take place.
  • the ability to transfer a license—either permanently or temporarily— would be controlled by the publisher business rules 407 c . For security purposes, this transfer would most likely only be allowed if the license could be guaranteed to be only in one place at a time. This would be possible in at least two cases:
  • the process begins when the license management website receives a license request 501 from the user.
  • This request can actually come in various ways, including from the user running a downloaded copy of the licensed software from a purchase transaction on the publisher website, or via a phone call from the user, for example.
  • the license request typically includes information, such as product information, and may also include user information, user computer fingerprints, and financial transaction information.
  • the request information is used to generate a license document in step 502 .
  • a time-limited license is created.
  • the time period for the license can be set by the business rules 407 c .
  • the time-limited license is provided to the user in step 503 .
  • the software product may automatically request a license extension, or the user may request an extension in various ways, such as logging into the web application 400 , or calling the publisher, and requesting the extension.
  • the user license is updated as needed to maintain use of the software product. In the preferred embodiment, this process happens automatically in the background over an open connection to the Internet, to reduce interference with the user's use of the product.
  • this process such as specifying in the license that the user may continue using the software product for a period of time after the expiration date, to eliminate customer frustration caused by unavailable network connections, or by requesting a license update a few days prior to the date the license expires, for example.
  • the user can be allowed to rent or sell the license to another user, starting on the expiration date of the current license received from the server in step 504 or 503 , if allowed by the publisher business rules 407 c and application business rules 407 e .
  • the license file it is possible to ensure that when it is transferred to another user, the original user cannot use the license at the same time. If the license also includes machine fingerprint information, preventing the license from being used on any other computer, the security of the license is substantially higher.
  • step 505 the publisher rules database 407 c may allow rental periods or resale to start prior to the expiration date, where a limited overlap of potential license use may occur. The publisher may require an additional fee for this feature. Likewise, the publisher may allow an overlap at the end of a rental period, also optionally for an additional fee.
  • step 601 the user posts his desire to either rent or sell one or more software licenses to the web application 400 . This is done typically by the user logging in to his account and selecting the appropriate menu item or link. This will access a web page where the user can select from his available licenses and indicate his desire to sell or rent.
  • the request is associated with one or more licenses already loaded into the user account, and already issued to the user as time-limited license files.
  • step 602 the web application 400 verifies that the requested transactions are allowed according to the publisher business rules 407 c for each of the software licenses in the request.
  • step 603 the web application 400 posts the sale or rental offer information on the appropriate web page, such as a Software Rental Center page, or a Software For Sale page.
  • the data related to the transaction is stored in a database.
  • the information may be stored in the User Licenses 407 b database, or in a separate For Sale or For Rent database (not shown).
  • the expiration dates of the last issued software license for each product would constitute the start date for any rental or sale.
  • the user would be allowed to set the sale price or rental price in the preferred embodiment.
  • the web application 400 would set standard pricing based on publisher business rules 407 c or web application business rules 407 e.
  • step 604 a buyer/renter views the offer to sell or rent one or more licenses.
  • step 605 the buyer/renter sets up an account on the web application 400 if one does not already exist, and enters the information necessary to allow financial transactions for payment of the rental or purchase price, including any fees to the web application owner or publisher. The actual financial transaction may not take place until the licenses are issued on the expiration date.
  • the time-limited licenses are issued to the renter/buyer.
  • the licenses are issued when the buyer/renter pays for them.
  • the issued licenses may include a start date as well as an end date.
  • the licenses can be issued on the expiration date.
  • the publisher may allow an overlap, i.e., from the time the current owner offers the licenses for resale or rental to the end of the existing time period for the last issued license, the publisher may allow the next owner or renter to also have a concurrent license. In effect, there would be two licenses in operation at the same time for a short period of time. This option may be at extra cost to either or both buyer and seller.
  • the process completes, with the updating of the new owner's account with the new license information (User Licenses 407 b ), and the deletion of the license information from the original owner's database (User Licenses 407 b ).
  • the new owner or renter can download the license at any time.
  • the related licensed software would also require downloading.
  • the licensed software is distributed on a CD, the CD must be mailed to the new owner or renter.
  • all software for resale or rental would be electronically distributed.
  • step 607 the process continues in step 607 , where the rental period expires, and the web application 400 issues a new time-limited license back to the license owner, and updates the User Licenses 407 b database.
  • the license is deleted from the renter's account, and restored to the owner's account.
  • this license can be issued immediately and include a start date as well as an end date, can be issued on the expiration date of the rental, or can overlap for a short period, depending on the application business rules 407 e or the publisher business rules 407 c . As before, fees may be required for overlapping license terms.
  • FIG. 7 a flow diagram of the process of ensuring that only a single working copy of a license is available at any given time is shown.
  • This process is specifically designed to work with the licenses 142 stored on external security device 132 communicating via the helper application 216 and browser 215 running on user computer 101 with web server 102 over a network 103 .
  • the helper application has the required functionality to communicate with the external security device 132 , and by using the operating system file extension function, can be automatically invoked for processing a specific file type received by the browser 215 , as described above.
  • FIG. 7 differs from FIG. 5 in that FIG. 7 applies to the use of an external security device 132 only, while FIG.
  • license 5 applies to both licenses 141 stored on the user's hard disk 124 and to licenses 142 stored in an external security device 132 .
  • the additional security afforded by the external security device 132 allows a license to be securely transferred with or without use of time-limited license terms, while license files stored on the user's hard disk 124 cannot be so securely controlled.
  • a use may make one or more copies of a license file prior to connecting to web application 400 , and thus there can be no guarantee of a single license without use of time limited license terms.
  • step 302 where the user uploads license information to the server 102
  • the server 102 can automate the upload process using helper application 216 .
  • a command to locate and retrieve license information can be downloaded via browser 215 to the helper application 216 .
  • the command includes the session key.
  • the session key is essentially a random number used to randomize the secure transactions between the server and security device 132 .
  • Helper application 216 searches for the external security device 132 . If it cannot be found, the user is prompted to insert it into the appropriate I/O socket.
  • the command is transmitted to the security device 132 using the appropriate protocol, along with the session key.
  • the security device 132 then returns an encrypted log of existing licenses.
  • the encryption is accomplished with a secret key stored within the security device 132 , only known to an issuing authority, and in the preferred embodiment, stored in another external security device (not shown) plugged into an I/O port of the server 102 .
  • the log information is randomized using the session key in conjunction with a reversible mathematical operation, and then encrypted using the secret key.
  • the helper application 216 or the web application 400 may be required to request each license in a separate transaction. By providing a single log function, the transaction time can be minimized.
  • the function of the session key is to ensure that every interaction between the server 102 and the external security device 132 is different, and that information transferred from the device cannot be memorized and provided by a substitute device.
  • the function of the external security device (not shown) connected to the server 102 is to ensure that the secret keys for the external security device 132 and others like it are not available by hacking into the server.
  • a server security device (not shown) is responsible for applying the session key to randomize, as well as decrypting and encrypting, and never exposes the secret keys or the randomizing function.
  • step 701 where the request is sent to the external security device 132 from the server 102 , along with a session key, generated randomly at the start of the transaction.
  • the browser 215 and helper application 216 in the preferred embodiment facilitate all transactions between server 102 and security device 132 .
  • Other embodiments are possible, including a specialized application running on the user computer 101 specifically designed for communicating with the server 102 and any license files on the hard disk 124 or security device 132 . There are many embodiments of this process that are well known by one of ordinary skill in the art, and will not be described in detail herein.
  • the security device 132 receives the request and the session key, and a challenge is prepared, using the private key and the session key to encrypt requested information.
  • the challenge information sent will depend on the request.
  • One example is a request for a log of all licenses stored on the device.
  • Another is a request for a specific license.
  • the challenge is randomized and encrypted as described above, and returned to the server 102 .
  • the challenge is received by server 102 , and decrypted and derandomized by reversing the mathematical operation.
  • the decryption and derandomizing is accomplished by sending a decryption request (the encrypted challenge) and the session key to the server security device (not shown).
  • Alternate embodiments may have the encryption process and keys stored on the server 102 or a remote server (not shown).
  • the decrypted and derandomized challenge information is received back from the decryption service, and in step 703 , the challenge data is examined. By checking the contents of the response, to ensure that the secret key encrypted the challenge, the server can validate the challenge. Depending on the function the server is attempting to accomplish, various actions may be taken. If the only function is to receive a log of licenses stored on the security device 132 , the process is now complete. Ideally, to maximize security on the server 102 , the randomized and encrypted version of the log, along with the session key will be stored in the user license database 407 b associated with the user.
  • licenses from the user account with the related publisher account 407 d such as product name, version, date of purchase, etc.
  • This information is may not be stored within the license information.
  • the additional information must be accessed from a license database (not shown) provided by the security device 132 issuing authority.
  • the issuing authority for the security device 132 is also the owner and operator of the server 102 .
  • step 703 by modifying the license information sent in the challenge into a response.
  • the response license information will be modified, such as marking the license time-limited, or marking it for deletion.
  • step 704 the response is again randomized and encrypted using the secret key and the session key. In the preferred embodiment, this is accomplished by sending the response and session key to the security device (not shown) connected to server 102 , and receiving the randomized and encrypted result back. The randomized and encrypted result is then sent to the browser 215 using the helper application 216 file extension, as described above.
  • the helper application 216 is invoked, and the response and session key are transmitted to the external security device 132 .
  • the security device 132 decrypts the response using the private key and derandomizes using the session key.
  • the response is then verified to ensure the sender used the same private key.
  • the new, updated license information is now used to replace the previous license information. Thus, if a license was marked for deletion, the license no longer resides within the security device 132 . If server 102 modified other license terms, then the license terms are now updated for the license stored in security device 132 .
  • the external security device 132 In the case of a delete or modify operation, an optional further step is useful to ensure completion of the operation.
  • the external security device 132 generates a receipt indicating that the license has been deleted or modified. This receipt is also randomized and encrypted as before, and returned to the server 102 .
  • the server receives the encrypted receipt.
  • the license database can be updated, indicating, in the case of a deletion, that the license on the server is now the only existing license, and is therefore available for download, resale, or rental.
  • a modified license such as the addition of a time limit, the license database can be so updated.
  • the external security device 132 may be disconnected from the user's computer 101 between the time the challenge is sent and the response is received back, thus preventing the license from being marked for deletion, or preventing a change of license terms. Adding the receipt step ensures that the update requested has been performed within the security device 132 .
  • the license can instead be modified such that it becomes a time-limited license, as described in conjunction with FIG. 5 .
  • the security device 132 must have regular updates of the license to maintain use of the software.
  • One advantage of this approach is that a stolen security device 132 will only operate properly until the license expiration date. At that time, it must be updated from the server 102 to enable the licensed software to be operable.
  • the server 102 may send a command to deactivate the security device 132 completely, or just delete all licenses stored on the device. All of this can be accomplished by the process of storing lost or stolen security device 132 serial numbers in a database at the server 102 , checking the list each time a new connection is established with a security device 132 , and deactivating any security device 132 that matches the serial number in the database.
  • the other advantage of using time-limited licenses with the security device is that the publisher, in cases of loss or theft, can readily replace licenses because the publisher knows that the stolen or lost licenses are going to automatically expire. If the licenses are permanent, i.e., not time-limited, then the publisher has to consider the possibility that the licenses are being used by someone—potentially even the user claiming loss—and may be unwilling to replace the license at no cost or a small service fee.
  • transactions between the browser 215 and the server 102 are formatted as signed XML documents, using a proposed standard.
  • This method guarantees that the documents have not been tampered with. Specifically, using the embedded certificates and public keys, along with private keys, the validity of the document can be demonstrated, and the identity of the sender can be verified. This process of validation and verification is described in detail in related U.S. patent application Ser. No. 10/072,597 entitled “METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” cited above.
  • a license management system has been disclosed.
  • the present invention has been described in accordance with the embodiments shown, and one of ordinary skill in the art will readily recognize that there could be variations to the embodiments, and any variations would be within the spirit and scope of the present invention.
  • software written according to the present invention may be stored on a computer-readable medium, such as a removable memory, or transmitted over a network, and loaded into a server for execution. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.

Abstract

A method and system for managing licenses over a network is disclosed. The method and system include establishing a user account on a server coupled to the network, and allowing a user or publisher to upload or download licenses from a computer to or from the server. The licenses are then associated with the user account, and the user is allowed to log into the user account to review the account and associated uploaded licenses. The method and system further include allowing the user to review and retrieve the licenses for download to the user computer in the case of a lost or damaged license.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a Divisional of U.S. patent application Ser. No. 10/094,435 entitled “METHOD AND SYSTEM FOR MANAGING SOFTWARE LICENSES”, filed Mar. 8, 2002; and is related to U.S. patent application Ser. No. 10/072,597 entitled “METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” filed on Feb. 5, 2002, U.S. patent application Ser. No. 10/080,639 entitled “DELIVERY OF A SECURE SOFTWARE LICENSE FOR A SOFTWARE PRODUCT AND A TOOLSET FOR CREATING THE SOFTWARE PRODUCT” filed on Feb. 21, 2002, and U.S. Pat. No. 7,032,240 entitled “PORTABLE AUTHORIZATION DEVICE FOR AUTHORIZING USE OF PROTECTED INFORMATION AND ASSOCIATED METHOD”, all assigned to the assignee of the present invention, and herein incorporated by reference.
  • BACKGROUND OF THE INVENTION
  • The usual method of selling software is to sell a license to use the software. The license typically includes various restrictions, known as license terms. Software can be delivered with a written license document. However, it is easy to duplicate the software and distribute it illegally with this method. To prevent piracy of the licensed software, many techniques to prevent copying software have been used. Some methods are focused on making the actual software difficult to copy. Other methods use an electronic form of the license terms as a method of limiting distribution of the software.
  • The electronic licenses are of course subject to hacking and piracy as well. Various methods of increasing the security of an electronic software license have been developed. The assignee of the present invention, has developed a method of delivering secure licenses for this purpose, as described in U.S. patent application Ser. No. 10/072,597 entitled “A METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” and U.S. patent application Ser. No. 10/080,639 entitled “DELIVERY OF A SECURE SOFTWARE LICENSE FOR A SOFTWARE PRODUCT AND A TOOLSET FOR CREATING THE SOFTWARE PRODUCT.”
  • The assignee has also developed an external security device for storing software licenses in which the licenses are accessed by plugging the external device into an I/O port of the user computer, as described in U.S. Pat. No. 7,032,240 entitled “PORTABLE AUTHORIZATION DEVICE FOR AUTHORIZING USE OF PROTECTED INFORMATION AND ASSOCIATED METHOD,” assigned to the same assignee of the present invention describes such a device.
  • During the use of licenses by a user, it is not uncommon for a license to be damaged or lost, due to a computer malfunction, virus, hardware failure, or mechanical damage. In this case, the user faces a difficult chore of acquiring new licenses from the various software publishers. This is not only a time consuming process, but also typically cannot be accomplished without having to purchase new licenses, where proof of purchase cannot be produced. Often, enough time has passed that the original version of the software is no longer available, and a new version must be purchased.
  • Accordingly, there is a need for a method for managing licenses that enables a user to easily retrieve a license in the case where the license is damaged or lost.
  • SUMMARY OF THE INVENTION
  • A method and system for managing licenses over a network is disclosed. The method and system include establishing a user account on a server coupled to the network, and allowing a user or publisher to upload or download licenses from a computer to or from the server. The licenses are then associated with the user account, and the user is allowed to log into the user account to review the account and associated uploaded licenses. The method and system further include allowing the user to review and retrieve the licenses for download to the user computer in the case of a lost or damaged license.
  • According to the system and method disclosed herein, the present invention allows the user to establish a record of user licenses, and to recover licenses in the case of a lost or damaged license.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of the system used to implement the present invention.
  • FIG. 2 is a block diagram of the software to implement the present invention on the user computer.
  • FIG. 3 is a flow diagram of the present invention.
  • FIG. 4 is a block diagram of the license management web application used to implement the present invention
  • FIG. 5 is a flow diagram of the process of ensuring that only a single working copy of a license file stored in an external security device is available at any given time.
  • FIG. 6 is a flow diagram of the process of reselling or renting software licenses.
  • FIG. 7 is a flow diagram of the process of ensuring that only a single working copy of a license stored on an external security device is available at any given time.
  • DETAILED DESCRIPTION
  • The present invention relates to a method for managing software licenses over a network. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features described herein.
  • FIG. 1 is a block diagram illustrating a license management system in accordance with a preferred embodiment of the present invention. The system includes a user computer 101, a network 103, and a web server 102. Additionally, in the preferred embodiment, an external security device 132 may be coupled to the user computer 101 to provide a secure storage for software licenses 142.
  • User computer system 101 preferably comprises a microprocessor or CPU 113, a memory system 114, and input/output hardware 112. The input/output hardware 112 is preferably connected the network 103, and optionally to the external security device 132. Other I/O devices may be connected to the I/O 112, such as keyboard, mouse, trackball, and display, as required (not shown). Finally, a storage device 124, such as a hard disk or flash memory is connected to I/O 112, and supplies non-volatile storage for user computer 101. Stored on this device are licensed software programs 150, unlicensed software programs (not shown), and software licenses 141. The licenses for licensed software programs 150 may reside either on the storage device 124 or the external security device 132, according to the present invention.
  • The network 103 is also connected to web server 102. The connection to the network 103 may take various forms, including wireless, DSL, dial-up, or IR. Other variations of the user computer, such as PDA's, are well known by one skilled in the art, and thus will not be described in more detail herein. According to the present invention, web server 102 includes a web application 400 and associated database 407, which contains software licenses 143 that have been uploaded from user's computer 101 over network 103. Web server 102 contains other software and hardware that is known to those of ordinary skill in the art, and will not be described in more detail herein.
  • In operation, the user connects to the web application 400 using a web browser on the user's computer 101, and sets up an account. Next, the user uploads software licenses, either from the hard disk 124 (software licenses 141), from an external security device 132 (software licenses 142), or by entering data from written licenses into web forms provided by the web application 400. Written licenses typically include a serial number or CD key. These licenses are then uploaded to the web server 102 through network 103, and stored in the database 407 by web application 400.
  • These on-line software licenses 143 are now available for the user in case of loss of license information on computer 101 or security device 132. For example, if hard disk 124 crashes and all data is lost, the user will be able to recover the license information to enable reloading the software onto a new hard disk. Alternately, if the user accidentally drops and breaks the external security device 132, a new one can be purchased and the software licenses 142 can be restored from software licenses 143 stored in database 407. This is accomplished by the user logging into his account via web application 400 and selecting a download license function from the functions menu or links. In this way, the present invention can provide backup and restoration of license information in case of lost or damaged licenses, hardware, or software. Additional advantages of the present invention will be described below.
  • Referring now to FIG. 2, a block diagram of the software used to implement the present invention on the user computer is shown. The software is loaded into memory system 114 of computer system 101. Various components of the computer system software are shown. This includes the basic I/O system (BIOS) 211, the Kernel 212, the Operating System 213, and the I/O Routines 214 required for communicating over the network. These routines are shown within the Operating System 213.
  • In the preferred embodiment, a typical web browser 215 is used to access the web site's server 102. In the preferred embodiment, an additional “helper” application 216 is downloaded into the user computer 101 to facilitate automatic remote retrieval of licenses to operation from the user's computer to the server 102. This download typically occurs as part of the user account setup process described below. The helper application registers a unique file extension with the operating system 213, such that the helper application will be invoked whenever a file with that extension is received during normal operation of the browser 215. This capability is well known by those of ordinary skill in the art, and will not be described in more detail herein.
  • Referring now to FIG. 3, a flow diagram of the present invention for managing software licenses is shown. The process begins with step 301, where a user account is set up on server 102 over network 103. In the preferred embodiment, the user interacts using the web browser by “surfing” to the home page of the web application on server 102 used to implement the present invention. The term “surfing” refers to providing network addresses to the browser by clicking on links on the user computer or on web pages from various web sites on the network, or manually entering the address of a web site into the browser. Once arriving at the home page for the server 102, the user may select a link labeled “Set Up a New Account,” for example. This link would access a web page on serer 102 where the user can enter the required information to enable the web application to set up an account for the user, such as name, address, phone number, email address, and optionally credit card information, if the service provided is fee-based rather than free.
  • Once the user account has been set up, the user is allowed to upload from his computer license files 141 and 142 for his licensed software 150 to the server 102 in step 30. These license files may be located on the user computer hard disk 124, on the external security device 132, or be a set of manually entered information provided by the user from printed license documents. In the latter case, the user would supply any authentication keys, CD keys, or serial numbers required to successfully install the licensed software on his computer. Other useful information includes the software product name and version number. Other information may be required: some software requires both an ID and serial number, for example. Additionally, the user may wish to provide the publisher name, date of purchase, location of purchase, and publisher contact information. In the preferred embodiment, the information provided manually by the user would be entered into a web page form provided by server 102, and submitted to the web application on server 102 with a click on a “submit” button. An example of a submission might look like this:
  • Product Name Photoshop
  • Version: 6.0
  • Type: Upgrade
  • Publisher: Adobe Systems, Inc.
  • Serial Number, ID or CD Key: PWM500D7R511378-234
  • Other Requirements Requires Photoshop 4.0 disk
  • Using this information, the user would be able to load a copy of Photoshop into his computer, using any Photoshop 6.0 disk. The key information here is the serial number. Because Adobe Systems, Inc. provides the serial number on small stick-on labels it is easy to misplace them. Even worse, in this example, an “upgrade” from a previous version was purchased, typically at a lower price then the full 6.0 version in the example. In this case, the original 4.0 “full version” disk is required in order to install the upgrade disk. This is critical information for the user to remember. In order to reinstall the Photoshop 6.0 software, both the 6.0 and 4.0 disks are required, along with the serial number.
  • In the preferred embodiment, if an external security device 132 is used to store licenses, or if license files are stored on the computer hard disk 124, the “helper” application 216 is downloaded to the user computer during the user account setup process. This application responds automatically to a specific file extension. Thus, when the web application wishes to automatically retrieve license files stored on the hard disk 124 or external security device 132, the request is downloaded to the user computer 101 via the web browser 215 using the helper application's 216 unique file extension. In this way, the helper application 216 is invoked to process the request. The helper application 216 uses the operating system 213 to access the hard disk 124 to locate any license files, or uses the I/O routines 214 to communicate with the external security device 132 for the purpose of retrieving licenses stored on the external security device 132. Additional I/O routines (not shown) may be required to communicate with the external security device 132. Typically, these additional I/O routines are installed at the time of the security device 132 first use using software provided with the security device 132, or from system files located on the user computer hard disk 124.
  • The helper application 216 may only search for license files on the hard disk 124, or may only search for license files on the optional external security device 132, depending on the method of license storage used by the software product publishers who licensed the software to the user. In any case, the software product licenses are uploaded to the server 102, either automatically from the helper application 216 or from user-entered data as described above.
  • Next, in step 303, the uploaded license information 143 is associated with the user account. Typically, this is done using a database 407. The operation and use of databases is well known by those of ordinary skill in the art, and will not be described in more detail herein. At this point, the user has successfully stored software licenses on the server 102. In step 304, the user can optionally return at a later time to review the licenses and license information, or to update license information. Updating license information can include editing information, adding new information, or uploading additional software product licenses. Finally, in step 305, the user can optionally return to retrieve for download the stored license information, in the case where one or more licenses were damaged or destroyed by a software or hardware failure on the user computer, or by the action of a computer virus, a hacker, or mechanical damage. Alternatively, the user may purchase a new computer and want to transfer all or some licensed programs 150 to the new computer, and would require license information for that task.
  • According to the present invention, other reasons for accessing the user account include selling and transferring licenses to other users, receiving updated license information such as new features or extending time-limited license terms, or even temporarily transferring licenses to other users for rental for a specified period of time.
  • Referring now to FIG. 4, a block diagram of the license management web application used to implement the present invention is shown. The web application 400 is typically a collection of web pages, active server pages (ASP), or other web application technology, running on the web server, and including various required software modules necessary for the proper operation of the license management website. In the preferred embodiment, one of the modules is a copy of the helper application (not shown). There may be multiple copies required, one for each type of user computer 101, such as one for Microsoft Windows 95/98, one for Microsoft Windows NT/2000, one for Apple Macintosh OS/9, and one for Apple Macintosh OS X. The operation of a website is well known by those of ordinary skill in the art, and will not be discussed in detail herein.
  • Typically, a home page 401 is used as an entry point into the application 400. From here, links or buttons will lead a user to appropriate pages in the website, for example, a page for user account setup 402, and a page for publisher account setup 403. User account setup has been described in detail above. The data from user accounts is stored in database User Accounts 407 a, and uploaded license information is stored in database User Licenses 407 b. Application 400 also includes user account functions 405 for accessing and processing user account information and user license information. Other pages for user login, user account management, and license review and updates are not shown, and would also access User Accounts 407 a and User Licenses 407 b databases, either using user account functions 405 or by direct access to the databases using database queries.
  • Various rules are also required for the correct operation of web application 400. These business rules are often also stored in a database, such as Application business rules 407 e. These rules control the setup and use of accounts, including specifying required fees and service level options, for example. In the preferred embodiment, software publishers may also have accounts 407 d on the web application 400, set up using the publisher account setup page 402. This is important to allow the website to facilitate transactions between the user and the publisher. This is especially useful when license files can be automatically retrieved from the user computer 101, either from the hard disk 124 or external security device 132. Specifically, the publisher has the ability to grant new, additional, or replacement licenses for its software products, and is typically interested in maintaining contact with the user to apprise the user of and sell product updates and new products, to provide a mechanism for making offers available from the publisher partners, and to maintain control over the licensed products. Additionally, the publisher may wish to use the web application 400 to assist in customer support functions.
  • The publisher will typically establish a set of business rules for dealing with customers. These rules are stored in a database Publisher Business Rules 407 c associated with the publisher accounts stored in Publisher Accounts 407 d database, and are typically entered using various web page forms provided by web application 400 (not shown). These business rules allow the web application 400 to manage the functions of the web application according to the wishes of the publisher. For example, one software publisher may have a business rule that allows a user to acquire a replacement license for 30 days, during which time the user must provide proof of loss. Another publisher may require full payment for a replacement license, and provide a full or partial refund upon proof of loss. One publisher may allow a user to resell their license. Another may not. All of the rules associated with various functions that the website can provide can be programmed via web page forms provided to the publisher during the publisher account setup process. These rules 407 c and publisher accounts 407 d can be accessed directly with database queries, or via publisher account functions 406 for use by the web application in providing service to the publishers and users.
  • While FIG. 4 shows a plurality of databases 407 a through 407 e, one of ordinary skill in the art will recognize that this data can be stored in a single database in separate tables, or in various other arrangements. Typically, the data in each database shown is “related” to the other databases shown. This allows accessing the appropriate information stored in one database from information stored in another. For example, a user account is associated with one or more licenses. By accessing the user account in User Accounts 407 a, one can then look up all user licenses associated with the user account in User Licenses 407 b. Likewise, a software publisher can access all user licenses for software products provided by the publisher by first logging into the publisher account in Publishers Accounts 407 d, and then accessing related licenses in User Licenses 407 b. The operation of relational databases is well know to those of ordinary skill in the art, and will not be described in more detail herein.
  • According to a further aspect of the present invention, the web application 400 also includes an e-commerce subsystem 404 that is used to collect fees from the publisher or user, depending on the application business rules 407 e. There are many ways that fees might be collected. For example, the service provided by the web application 400 could be associated with a single, one-time setup fee to either or both user and publisher, or could be associated with a recurring fee, such as a yearly service fee. Additionally, service provided between the publisher and user could be fee-based. For example, the web application 400 could provide a mechanism for special offers for upgrades and other products when the user logs into his account. If the user buys an upgrade or additional product, some of the proceeds can be diverted to the licensing management website owner, and the remaining proceeds transferred to the publisher. The business rules 407 e for the website or the publisher business rules 407 b would hold the information related to these transactions, including setting the amounts paid by the user and the fee paid for the service by the web application.
  • Additionally, the web application could provide a means for one user offering for sale a software license no longer needed, or even a time-based rental. For example, if a user is going on a long vacation, or is working on a project, and will not require a particular software package for a period of time, the license could be temporarily transferred for a fee to another user. In this case, the license owner would receive a rental fee, and the license management website owner may receive a commission for the service of transferring and controlling the license. Additionally, the publisher may receive a fee for allowing rentals to take place. The ability to transfer a license—either permanently or temporarily—would be controlled by the publisher business rules 407 c. For security purposes, this transfer would most likely only be allowed if the license could be guaranteed to be only in one place at a time. This would be possible in at least two cases:
      • 1. External Security Device: as described in U.S. Pat. No. 7,032,240 entitled “PORTABLE AUTHORIZATION DEVICE FOR AUTHORIZING USE OF PROTECTED INFORMATION AND ASSOCIATED METHOD” cited above, a license file can be securely transferred into an external security device by several means, including direct from the internet, from a floppy disk, or from a plug-in card. In this case, the security link between the web application and the external security device is sufficient to ensure only one working copy of a license is available at any given time. The method for transfer of licenses between the server and the external security device will be described on more detail below, in conjunction with FIG. 5.
      • 2. License Files: as described in U.S. patent application Ser. No. 10/072,597 entitled “A METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” cited above, a license file may be securely transferred to a computer from a server. The method for ensuring only one working copy is available at any given time will be described below, in conjunction with FIG. 7.
  • Referring now to FIG. 5, a flow diagram of the process of ensuring that only a single working copy of a license file on the user computer 101 or external security device 132 is available at any given time is shown. The process begins when the license management website receives a license request 501 from the user. This request can actually come in various ways, including from the user running a downloaded copy of the licensed software from a purchase transaction on the publisher website, or via a phone call from the user, for example. The license request typically includes information, such as product information, and may also include user information, user computer fingerprints, and financial transaction information. The request information is used to generate a license document in step 502. However, even though a user may have purchased a permanent license for the product, a time-limited license is created. The time period for the license can be set by the business rules 407 c. The time-limited license is provided to the user in step 503.
  • After the time period elapses, the license expires, and the software product will not function. In this case, the software product may automatically request a license extension, or the user may request an extension in various ways, such as logging into the web application 400, or calling the publisher, and requesting the extension. In either case, in step 504, the user license is updated as needed to maintain use of the software product. In the preferred embodiment, this process happens automatically in the background over an open connection to the Internet, to reduce interference with the user's use of the product. There are many possible variations of this process, such as specifying in the license that the user may continue using the software product for a period of time after the expiration date, to eliminate customer frustration caused by unavailable network connections, or by requesting a license update a few days prior to the date the license expires, for example.
  • In step 505, the user can be allowed to rent or sell the license to another user, starting on the expiration date of the current license received from the server in step 504 or 503, if allowed by the publisher business rules 407 c and application business rules 407 e. In effect, by time-limiting the license file, it is possible to ensure that when it is transferred to another user, the original user cannot use the license at the same time. If the license also includes machine fingerprint information, preventing the license from being used on any other computer, the security of the license is substantially higher.
  • Other embodiments of step 505 are possible. For example, the publisher rules database 407 c may allow rental periods or resale to start prior to the expiration date, where a limited overlap of potential license use may occur. The publisher may require an additional fee for this feature. Likewise, the publisher may allow an overlap at the end of a rental period, also optionally for an additional fee. Some of these variations are described in more detail below.
  • Referring now to FIG. 6, a flow diagram of the process of reselling or renting software licenses is shown. In step 601, the user posts his desire to either rent or sell one or more software licenses to the web application 400. This is done typically by the user logging in to his account and selecting the appropriate menu item or link. This will access a web page where the user can select from his available licenses and indicate his desire to sell or rent. The request is associated with one or more licenses already loaded into the user account, and already issued to the user as time-limited license files. In step 602, the web application 400 verifies that the requested transactions are allowed according to the publisher business rules 407 c for each of the software licenses in the request. Any financial requirements, such as fees required by either or both the web application 400 owner and the software publisher would be presented and must be accepted by the user. In an alternate embodiment, only licenses from publishers who allow resale or rental will be provided in the selection page presented by the web application 400 in step 601, thus combining step 601 and 602 into a single operation. Next, in step 603, the web application 400 posts the sale or rental offer information on the appropriate web page, such as a Software Rental Center page, or a Software For Sale page. Typically, the data related to the transaction is stored in a database. Specifically, the information may be stored in the User Licenses 407 b database, or in a separate For Sale or For Rent database (not shown). The expiration dates of the last issued software license for each product would constitute the start date for any rental or sale. The user would be allowed to set the sale price or rental price in the preferred embodiment. In alternate embodiments, the web application 400 would set standard pricing based on publisher business rules 407 c or web application business rules 407 e.
  • In step 604, a buyer/renter views the offer to sell or rent one or more licenses. In step 605, the buyer/renter sets up an account on the web application 400 if one does not already exist, and enters the information necessary to allow financial transactions for payment of the rental or purchase price, including any fees to the web application owner or publisher. The actual financial transaction may not take place until the licenses are issued on the expiration date.
  • In step 606, the time-limited licenses are issued to the renter/buyer. In the preferred embodiment, the licenses are issued when the buyer/renter pays for them. However, since the expiration date may not have yet occurred, the issued licenses may include a start date as well as an end date. Alternatively, the licenses can be issued on the expiration date. Depending on business rules, the publisher may allow an overlap, i.e., from the time the current owner offers the licenses for resale or rental to the end of the existing time period for the last issued license, the publisher may allow the next owner or renter to also have a concurrent license. In effect, there would be two licenses in operation at the same time for a short period of time. This option may be at extra cost to either or both buyer and seller.
  • In the case of a buyer, the process completes, with the updating of the new owner's account with the new license information (User Licenses 407 b), and the deletion of the license information from the original owner's database (User Licenses 407 b).
  • Once the transfer of license is completed between user accounts, the new owner or renter can download the license at any time. The related licensed software would also require downloading. Alternatively, if the licensed software is distributed on a CD, the CD must be mailed to the new owner or renter. In the preferred embodiment, all software for resale or rental would be electronically distributed.
  • In the case of a rental, the process continues in step 607, where the rental period expires, and the web application 400 issues a new time-limited license back to the license owner, and updates the User Licenses 407 b database. Specifically, the license is deleted from the renter's account, and restored to the owner's account. In the same way as above, this license can be issued immediately and include a start date as well as an end date, can be issued on the expiration date of the rental, or can overlap for a short period, depending on the application business rules 407 e or the publisher business rules 407 c. As before, fees may be required for overlapping license terms.
  • Referring now to FIG. 7, a flow diagram of the process of ensuring that only a single working copy of a license is available at any given time is shown. This process, is specifically designed to work with the licenses 142 stored on external security device 132 communicating via the helper application 216 and browser 215 running on user computer 101 with web server 102 over a network 103. In this case, the helper application has the required functionality to communicate with the external security device 132, and by using the operating system file extension function, can be automatically invoked for processing a specific file type received by the browser 215, as described above. FIG. 7 differs from FIG. 5 in that FIG. 7 applies to the use of an external security device 132 only, while FIG. 5 applies to both licenses 141 stored on the user's hard disk 124 and to licenses 142 stored in an external security device 132. The additional security afforded by the external security device 132 allows a license to be securely transferred with or without use of time-limited license terms, while license files stored on the user's hard disk 124 cannot be so securely controlled. Specifically, a use may make one or more copies of a license file prior to connecting to web application 400, and thus there can be no guarantee of a single license without use of time limited license terms.
  • Referring again to FIG. 3, step 302, where the user uploads license information to the server 102, in the case where the user has an external security device 132 containing licenses, the server 102 can automate the upload process using helper application 216. Specifically, in step 701, a command to locate and retrieve license information can be downloaded via browser 215 to the helper application 216. The command includes the session key. The session key is essentially a random number used to randomize the secure transactions between the server and security device 132. Helper application 216 then searches for the external security device 132. If it cannot be found, the user is prompted to insert it into the appropriate I/O socket. Once the security device 132 is found, the command is transmitted to the security device 132 using the appropriate protocol, along with the session key. The security device 132 then returns an encrypted log of existing licenses. The encryption is accomplished with a secret key stored within the security device 132, only known to an issuing authority, and in the preferred embodiment, stored in another external security device (not shown) plugged into an I/O port of the server 102. The log information is randomized using the session key in conjunction with a reversible mathematical operation, and then encrypted using the secret key. Alternatively, the helper application 216 or the web application 400 may be required to request each license in a separate transaction. By providing a single log function, the transaction time can be minimized.
  • The function of the session key is to ensure that every interaction between the server 102 and the external security device 132 is different, and that information transferred from the device cannot be memorized and provided by a substitute device. The function of the external security device (not shown) connected to the server 102 is to ensure that the secret keys for the external security device 132 and others like it are not available by hacking into the server. A server security device (not shown) is responsible for applying the session key to randomize, as well as decrypting and encrypting, and never exposes the secret keys or the randomizing function.
  • Referring again to FIG. 7, step 701, where the request is sent to the external security device 132 from the server 102, along with a session key, generated randomly at the start of the transaction. As described above, the browser 215 and helper application 216 in the preferred embodiment facilitate all transactions between server 102 and security device 132. Other embodiments are possible, including a specialized application running on the user computer 101 specifically designed for communicating with the server 102 and any license files on the hard disk 124 or security device 132. There are many embodiments of this process that are well known by one of ordinary skill in the art, and will not be described in detail herein.
  • The security device 132 receives the request and the session key, and a challenge is prepared, using the private key and the session key to encrypt requested information. The challenge information sent will depend on the request. One example is a request for a log of all licenses stored on the device. Another is a request for a specific license. The challenge is randomized and encrypted as described above, and returned to the server 102. In step 702, the challenge is received by server 102, and decrypted and derandomized by reversing the mathematical operation. In the preferred embodiment, the decryption and derandomizing is accomplished by sending a decryption request (the encrypted challenge) and the session key to the server security device (not shown). Alternate embodiments may have the encryption process and keys stored on the server 102 or a remote server (not shown). The decrypted and derandomized challenge information is received back from the decryption service, and in step 703, the challenge data is examined. By checking the contents of the response, to ensure that the secret key encrypted the challenge, the server can validate the challenge. Depending on the function the server is attempting to accomplish, various actions may be taken. If the only function is to receive a log of licenses stored on the security device 132, the process is now complete. Ideally, to maximize security on the server 102, the randomized and encrypted version of the log, along with the session key will be stored in the user license database 407 b associated with the user. However, it is also very useful to store other information, to associate licenses from the user account with the related publisher account 407 d, such as product name, version, date of purchase, etc. This information is may not be stored within the license information. In this case, the additional information must be accessed from a license database (not shown) provided by the security device 132 issuing authority. In the preferred embodiment, the issuing authority for the security device 132 is also the owner and operator of the server 102.
  • If the desired process shown in FIG. 7 is to move a license from the external security device 132 to the server 102, maintaining the existence of only one working license at any given time, then the process continues in step 703 by modifying the license information sent in the challenge into a response. The response license information will be modified, such as marking the license time-limited, or marking it for deletion. In step 704, the response is again randomized and encrypted using the secret key and the session key. In the preferred embodiment, this is accomplished by sending the response and session key to the security device (not shown) connected to server 102, and receiving the randomized and encrypted result back. The randomized and encrypted result is then sent to the browser 215 using the helper application 216 file extension, as described above. The helper application 216 is invoked, and the response and session key are transmitted to the external security device 132. The security device 132 decrypts the response using the private key and derandomizes using the session key. The response is then verified to ensure the sender used the same private key. The new, updated license information is now used to replace the previous license information. Thus, if a license was marked for deletion, the license no longer resides within the security device 132. If server 102 modified other license terms, then the license terms are now updated for the license stored in security device 132.
  • In the case of a delete or modify operation, an optional further step is useful to ensure completion of the operation. In this case, the external security device 132 generates a receipt indicating that the license has been deleted or modified. This receipt is also randomized and encrypted as before, and returned to the server 102. In step 705, the server receives the encrypted receipt. Finally, in step 706, the license database can be updated, indicating, in the case of a deletion, that the license on the server is now the only existing license, and is therefore available for download, resale, or rental. In the case of a modified license, such as the addition of a time limit, the license database can be so updated. If the receipt step 705 is not used, it is possible that the external security device 132 may be disconnected from the user's computer 101 between the time the challenge is sent and the response is received back, thus preventing the license from being marked for deletion, or preventing a change of license terms. Adding the receipt step ensures that the update requested has been performed within the security device 132.
  • It is possible to combine the process from FIG. 7 and FIG. 5 for the external security device 132. Specifically, rather than deleting the license stored in the security device 132 when moving it to the server 102, the license can instead be modified such that it becomes a time-limited license, as described in conjunction with FIG. 5. This means that the security device 132 must have regular updates of the license to maintain use of the software. One advantage of this approach is that a stolen security device 132 will only operate properly until the license expiration date. At that time, it must be updated from the server 102 to enable the licensed software to be operable. Assuming the original owner has reported the security device 132 as stolen, the licenses will not be updated by the server 102, because the server 102 will recognize the serial number of the security device 132 transmitted as part of the license log. In this case, the server 102 may send a command to deactivate the security device 132 completely, or just delete all licenses stored on the device. All of this can be accomplished by the process of storing lost or stolen security device 132 serial numbers in a database at the server 102, checking the list each time a new connection is established with a security device 132, and deactivating any security device 132 that matches the serial number in the database.
  • The other advantage of using time-limited licenses with the security device is that the publisher, in cases of loss or theft, can readily replace licenses because the publisher knows that the stolen or lost licenses are going to automatically expire. If the licenses are permanent, i.e., not time-limited, then the publisher has to consider the possibility that the licenses are being used by someone—potentially even the user claiming loss—and may be unwilling to replace the license at no cost or a small service fee.
  • In the preferred embodiment, transactions between the browser 215 and the server 102 are formatted as signed XML documents, using a proposed standard. This method guarantees that the documents have not been tampered with. Specifically, using the embedded certificates and public keys, along with private keys, the validity of the document can be demonstrated, and the identity of the sender can be verified. This process of validation and verification is described in detail in related U.S. patent application Ser. No. 10/072,597 entitled “METHOD AND SYSTEM FOR DELIVERY OF SECURE SOFTWARE LICENSE INFORMATION” cited above.
  • A license management system has been disclosed. The present invention has been described in accordance with the embodiments shown, and one of ordinary skill in the art will readily recognize that there could be variations to the embodiments, and any variations would be within the spirit and scope of the present invention. In addition, software written according to the present invention may be stored on a computer-readable medium, such as a removable memory, or transmitted over a network, and loaded into a server for execution. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.

Claims (30)

1. A method for providing a license management system over a network, the method comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving an upload of one or more of the corresponding licenses from at least one of the publishers to the server;
associating the uploaded licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses; and
allowing the user to retrieve and download the licenses to at least one of a user computer and an external security device connected to the user computer.
2. The method of claim 1 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
3. The method of claim 1 further including replacing the licenses accessed on the at least one of the user computer and the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
4. The method of claim 1 further comprising:
searching for the licenses stored on the at least one of the user computer and the external security device.
5. The method of claim 4 wherein the licenses found on the at least one of the computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
6. A method for providing a license management system over a network, the method, comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving by the server an upload of one or more of the corresponding licenses of the user from at least one of a user computer and an external security device connected to the user computer;
associating the uploaded licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses; and
allowing the user to retrieve and download the licenses to at least one of the user computer or the external security device.
7. The method of claim 6 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
8. The method of claim 6 further including replacing the licenses accessed on the user computer or the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
9. The method of claim 6 further comprising:
searching for the licenses stored on the at least one of the user computer and the external security device.
10. The method of claim 9 wherein the licenses found on the at least one of the computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
11. A method for providing a license management system over a network, the method comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving a transfer of one or more of the corresponding licenses from another account on the server;
associating the transferred licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses; and
allowing the user to retrieve and download the licenses to at least one of a user computer and an external security device connected to the user computer.
12. The method of claim 11 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
13. The method of claim 11 further including replacing the licenses accessed on the at least one of the user computer and the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
14. The method of claim 11 further comprising:
searching for the licenses stored on the at least one of the user computer and the external security device.
15. The method of claim 14 wherein the licenses found on the at least one of the computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
16. A method for providing a license management system over a network, the method comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving an upload of one or more the corresponding licenses from at least one of the publishers to the server;
associating the uploaded licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses, including allowing the user to manage individually each of the licenses associated with the user account according to business rules, wherein manage each of the licenses includes retrieving and downloading the associated licenses to at least one of a user computer and an external security device connected to the user computer, and at least one of:
i. transferring the licenses to another account;
ii. modifying some portion of license information; and
iii. deleting the licenses from the user account.
17. The method of claim 16 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
18. The method of claim 16 further including replacing the licenses accessed on the at least of the user computer and the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
19. The method of claim 16 further comprising:
searching for the licenses stored on one of the user computer and the external security device.
20. The method of claim 19 wherein the licenses found on at least one of the computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
21. A method for providing a license management system over a network, the method comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving by the server an upload of one or more of the corresponding licenses of the user from at least one of a user computer and an external security device;
associating the uploaded licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses, including allowing the user to manage individually each of the licenses associated with the user account according to business rules, wherein managing each of the licenses includes retrieving and downloading the licenses to the at least one of the user computer and the external security device connected to the user computer and at least one of:
i. transferring the licenses to another account;
ii. modifying some portion of license information; and
iii. deleting the licenses from the user account.
22. The method of claim 21 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
23. The method of claim 21 further including replacing the licenses accessed on the at least one of the user computer and the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
24. The method of claim 21 further comprising:
searching for the licenses stored on the at least one of the user computer and the external security device.
25. The method of claim 24 wherein the licenses found on the at least one of the user computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
26. A method for providing a license management system over a network, the method comprising:
establishing a user account on a server coupled to the network, wherein the user has obtained a copy of one or more software products from one or more software publishers, and wherein the software products have corresponding licenses;
receiving a transfer of one or more of the corresponding licenses from another account on the server;
associating the uploaded licenses with the user account;
allowing the user to log into the user account and review the account and associated licenses, including allowing the user to manage individually each of the licenses associated with the user account according to business rules, wherein manage each of the licenses includes retrieving and downloading the licenses to at least one of a user computer and an external security device connected to the user computer and at least one of:
i. transferring the licenses to another account;
ii. modifying some portion of license information; and
iii. deleting the licenses from the user account.
27. The method of claim 26 wherein downloaded licenses and locations of the downloaded licenses are represented in the user account, the method further comprising allowing the user to log into the user account and review the downloaded licenses and the locations of the downloaded licenses.
28. The method of claim 26 further including replacing the licenses accessed on the at least one of the user computer and the external security device with time-limited licenses, and requiring the user to connect with the server on a regular basis to receive updated licenses to maintain licensed use of the software products.
29. The method of claim 26 further comprising:
searching for the licenses stored on the at least one of the user computer and the external security device.
30. The method of claim 29 wherein the licenses found on at least one of the user computer and the external security device and locations of the licenses found are represented in the user account, the method further comprising allowing the user to log into the user account and review the licenses found and the locations of the licenses found.
US12/356,329 2002-03-08 2009-01-20 Method and system for managing software licenses Abandoned US20090133131A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/356,329 US20090133131A1 (en) 2002-03-08 2009-01-20 Method and system for managing software licenses

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/094,435 US7483860B2 (en) 2002-03-08 2002-03-08 Method and system for managing software licenses
US12/356,329 US20090133131A1 (en) 2002-03-08 2009-01-20 Method and system for managing software licenses

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/094,435 Division US7483860B2 (en) 2002-03-08 2002-03-08 Method and system for managing software licenses

Publications (1)

Publication Number Publication Date
US20090133131A1 true US20090133131A1 (en) 2009-05-21

Family

ID=27804255

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/094,435 Expired - Lifetime US7483860B2 (en) 2002-03-08 2002-03-08 Method and system for managing software licenses
US12/356,329 Abandoned US20090133131A1 (en) 2002-03-08 2009-01-20 Method and system for managing software licenses

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/094,435 Expired - Lifetime US7483860B2 (en) 2002-03-08 2002-03-08 Method and system for managing software licenses

Country Status (3)

Country Link
US (2) US7483860B2 (en)
AU (1) AU2003225743A1 (en)
WO (1) WO2003075633A2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090020600A1 (en) * 2007-07-19 2009-01-22 Canon Kabushiki Kaisha Right-of-use transfer system
US20090326964A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Extensible agent-based license structure
US20100100565A1 (en) * 2008-10-20 2010-04-22 Canon Kabushiki Kaisha License management system and control method for the license management system
US20100115579A1 (en) * 2004-07-21 2010-05-06 Beachhead Solutions, Inc. System and method for lost data destruction of electronic data stored on portable electronic devices
US20140164225A1 (en) * 2012-12-06 2014-06-12 Javier Cardona Method and apparatus for content distribution and deferred payment over a wireless network
US20140379594A1 (en) * 2013-06-23 2014-12-25 Cisco Technology, Inc. Recording and maintaining acceptances of licenses for using computer products
US20140379596A1 (en) * 2013-06-23 2014-12-25 Cisco Technology, Inc. Cloud-based auditing and management of licenses to use computer products
US20150294093A1 (en) * 2014-04-11 2015-10-15 Canon Kabushiki Kaisha Management system, information processing device, management server, control method therefor, and program
EP3208730A1 (en) * 2016-02-19 2017-08-23 Canon Kabushiki Kaisha License system, license management server, method, and storage medium
US10452818B2 (en) * 2016-01-29 2019-10-22 Canon Kabushiki Kaisha License management system

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7885896B2 (en) * 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) * 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
US7966520B2 (en) 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7681245B2 (en) 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US20040078339A1 (en) * 2002-10-22 2004-04-22 Goringe Christopher M. Priority based licensing
CN100363919C (en) * 2002-12-20 2008-01-23 泽田研一 Web application server support program and server
US7890997B2 (en) 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
US20060053079A1 (en) * 2003-02-03 2006-03-09 Brad Edmonson User-defined electronic stores for marketing digital rights licenses
US20050004873A1 (en) * 2003-02-03 2005-01-06 Robin Pou Distribution and rights management of digital content
US8135795B2 (en) * 2003-04-03 2012-03-13 International Business Machines Corporation Method to provide on-demand resource access
JP4329395B2 (en) * 2003-05-07 2009-09-09 セイコーエプソン株式会社 Used goods trade-in system, method and program thereof
US20040249653A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application allowing users to input missing licenses
US20040249762A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application using configuration input pages
US20040249760A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application using encrypted universal resource locators
US20040249756A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application allowing software version upgrade and downgrade
US20040249755A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application using a group administration application
US20040249761A1 (en) * 2003-06-03 2004-12-09 Bea Systems, Inc. Self-service customer license management application providing transaction history
US20050010532A1 (en) * 2003-07-09 2005-01-13 Bea Systems, Inc. Self-service customer license management application using software license bank
US7493488B2 (en) * 2003-07-24 2009-02-17 International Business Machines Corporation Method to disable on/off capacity in demand
US20050071273A1 (en) * 2003-09-25 2005-03-31 Utstarcom, Inc. Method and Apparatus for Feature Rights Management in a Multilevel Hierarchy
US20050071274A1 (en) * 2003-09-27 2005-03-31 Utstarcom, Inc. Method and Apparatus in a Digital Rights Client and a Digital Rights Source and associated Digital Rights Key
US20060116966A1 (en) * 2003-12-04 2006-06-01 Pedersen Palle M Methods and systems for verifying protectable content
US8700533B2 (en) 2003-12-04 2014-04-15 Black Duck Software, Inc. Authenticating licenses for legally-protectable content based on license profiles and content identifiers
US9489687B2 (en) * 2003-12-04 2016-11-08 Black Duck Software, Inc. Methods and systems for managing software development
US7552093B2 (en) 2003-12-04 2009-06-23 Black Duck Software, Inc. Resolving license dependencies for aggregations of legally-protectable content
ATE434227T1 (en) * 2003-12-30 2009-07-15 Wibu Systems Ag METHOD FOR RECOVERING AN AUTHORIZATION CODE
KR20070015440A (en) * 2004-04-26 2007-02-02 구글 잉크. Methods and systems for dynamically composing distributed interactive applications from high-level programming languages
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7747851B1 (en) 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US7725721B2 (en) * 2004-11-18 2010-05-25 Cisco Technology, Inc. Method and system for transferring software and hardware feature licenses between devices
US8074223B2 (en) * 2005-01-31 2011-12-06 International Business Machines Corporation Permanently activating resources based on previous temporary resource usage
US7797245B2 (en) 2005-03-18 2010-09-14 Black Duck Software, Inc. Methods and systems for identifying an area of interest in protectable content
JP4234721B2 (en) * 2005-03-29 2009-03-04 株式会社東芝 Content distribution apparatus, user terminal apparatus, relief management method, and computer program
US8385525B2 (en) * 2005-05-16 2013-02-26 Noah John Szczepanek Internet accessed text-to-speech reading assistant
US7673346B1 (en) * 2005-06-22 2010-03-02 Symantec Corporation Intra-data license for using data
US7949138B2 (en) * 2005-06-30 2011-05-24 Microsoft Corporation Secure instant messaging
US7949873B2 (en) * 2005-06-30 2011-05-24 Microsoft Corporation Secure instant messaging
US8087092B2 (en) * 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
US8010538B2 (en) * 2006-05-08 2011-08-30 Black Duck Software, Inc. Methods and systems for reporting regions of interest in content files
US8182271B2 (en) * 2006-07-25 2012-05-22 Siemens Aktiengesellschaft Training method and system
US8788829B2 (en) 2006-08-17 2014-07-22 Aol Inc. System and method for interapplication communications
US8284929B2 (en) 2006-09-14 2012-10-09 Uniloc Luxembourg S.A. System of dependant keys across multiple pieces of related scrambled information
US7681045B2 (en) * 2006-10-12 2010-03-16 Black Duck Software, Inc. Software algorithm identification
US8010803B2 (en) * 2006-10-12 2011-08-30 Black Duck Software, Inc. Methods and apparatus for automated export compliance
US20080147530A1 (en) * 2006-12-19 2008-06-19 Kwan Shu-Leung Programmatically transferring applications between handsets based on license information
JP4045461B1 (en) * 2006-12-28 2008-02-13 富士ゼロックス株式会社 Electronic apparatus and image forming apparatus
WO2008088856A1 (en) 2007-01-17 2008-07-24 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
US7970663B2 (en) * 2007-05-02 2011-06-28 Ganz Method of calculating an estimated market value of a character
US7908662B2 (en) * 2007-06-21 2011-03-15 Uniloc U.S.A., Inc. System and method for auditing software usage
JP5058697B2 (en) * 2007-07-19 2012-10-24 キヤノン株式会社 Information processing apparatus, application management method, and computer program
EP2203815B1 (en) * 2007-09-20 2015-08-12 Uniloc Luxembourg S.A. Installing protected software product using unprotected installation image
JP4954031B2 (en) * 2007-11-16 2012-06-13 キヤノン株式会社 Image processing apparatus and reinstallation method
EP2223256A1 (en) 2007-11-17 2010-09-01 Uniloc Usa, Inc. System and method for adjustable licensing of digital products
WO2009076232A1 (en) * 2007-12-05 2009-06-18 Uniloc Corporation System and method for device bound public key infrastructure
US8374968B2 (en) * 2008-02-22 2013-02-12 Uniloc Luxembourg S.A. License auditing for distributed applications
US8812701B2 (en) 2008-05-21 2014-08-19 Uniloc Luxembourg, S.A. Device and method for secured communication
US20090327070A1 (en) * 2008-06-25 2009-12-31 Uniloc Usa, Inc. System and Method for Monitoring Efficacy of Online Advertising
KR101062182B1 (en) * 2008-09-09 2011-09-05 삼성전자주식회사 Method and device for automatic update of authority object
US20100088235A1 (en) * 2008-10-02 2010-04-08 Seagate Technology Llc System and method for media content distribution
US8838976B2 (en) 2009-02-10 2014-09-16 Uniloc Luxembourg S.A. Web content access using a client device identifier
CA2697309A1 (en) * 2009-03-18 2010-09-18 Luc Bessette Medical records system with dynamic avatar generator and avatar viewer
US20100293103A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Interaction model to migrate states and data
US9424399B2 (en) * 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
US8103553B2 (en) * 2009-06-06 2012-01-24 Bullock Roddy Mckee Method for making money on internet news sites and blogs
US20100312702A1 (en) * 2009-06-06 2010-12-09 Bullock Roddy M System and method for making money by facilitating easy online payment
US20100325431A1 (en) * 2009-06-19 2010-12-23 Joseph Martin Mordetsky Feature-Specific Keys for Executable Code
US9047458B2 (en) 2009-06-19 2015-06-02 Deviceauthority, Inc. Network access protection
US20100325446A1 (en) * 2009-06-19 2010-12-23 Joseph Martin Mordetsky Securing Executable Code Integrity Using Auto-Derivative Key
US20100325424A1 (en) * 2009-06-19 2010-12-23 Etchegoyen Craig S System and Method for Secured Communications
US9047450B2 (en) 2009-06-19 2015-06-02 Deviceauthority, Inc. Identification of embedded system devices
US8423473B2 (en) 2009-06-19 2013-04-16 Uniloc Luxembourg S. A. Systems and methods for game activation
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US20100324981A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution on Social Networks
US8495359B2 (en) * 2009-06-22 2013-07-23 NetAuthority System and method for securing an electronic communication
US20100325051A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Piracy Reduction in Software Activation
US20100325735A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Software Activation
US20100325200A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Software Activation Through Digital Media Fingerprinting
US20100325025A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Sharing Media
US20100325149A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Auditing Software Usage
US8452960B2 (en) * 2009-06-23 2013-05-28 Netauthority, Inc. System and method for content delivery
US20100321208A1 (en) * 2009-06-23 2010-12-23 Craig Stephen Etchegoyen System and Method for Emergency Communications
US8903653B2 (en) 2009-06-23 2014-12-02 Uniloc Luxembourg S.A. System and method for locating network nodes
US20100325040A1 (en) * 2009-06-23 2010-12-23 Craig Stephen Etchegoyen Device Authority for Authenticating a User of an Online Service
US8736462B2 (en) 2009-06-23 2014-05-27 Uniloc Luxembourg, S.A. System and method for traffic information delivery
US20100324989A1 (en) * 2009-06-23 2010-12-23 Craig Stephen Etchegoyen System and Method for Monitoring Efficacy of Online Advertising
US8239852B2 (en) * 2009-06-24 2012-08-07 Uniloc Luxembourg S.A. Remote update of computers based on physical device recognition
US9075958B2 (en) * 2009-06-24 2015-07-07 Uniloc Luxembourg S.A. Use of fingerprint with an on-line or networked auction
US9129097B2 (en) * 2009-06-24 2015-09-08 Uniloc Luxembourg S.A. Systems and methods for auditing software usage using a covert key
US20100332319A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Methods and Systems for Dynamic Serving of Advertisements in a Game or Virtual Reality Environment
US10068282B2 (en) 2009-06-24 2018-09-04 Uniloc 2017 Llc System and method for preventing multiple online purchases
US20100332331A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Systems and Methods for Providing an Interface for Purchasing Ad Slots in an Executable Program
US8213907B2 (en) * 2009-07-08 2012-07-03 Uniloc Luxembourg S. A. System and method for secured mobile communication
US9141489B2 (en) * 2009-07-09 2015-09-22 Uniloc Luxembourg S.A. Failover procedure for server system
US8260715B2 (en) * 2009-07-13 2012-09-04 International Business Machines Corporation Software license usage amongst workgroups using software usage data
US8769296B2 (en) * 2009-10-19 2014-07-01 Uniloc Luxembourg, S.A. Software signature tracking
US9082128B2 (en) * 2009-10-19 2015-07-14 Uniloc Luxembourg S.A. System and method for tracking and scoring user activities
US20110093503A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data
US9003541B1 (en) * 2009-12-22 2015-04-07 Adobe Systems Incorporated Method and apparatus for desktop product license portability with user identity subscription using durable tokens
US9235399B2 (en) * 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9256899B2 (en) * 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US8548919B2 (en) * 2010-01-29 2013-10-01 Dell Products L.P. System and method for self-provisioning of virtual images
US9100396B2 (en) * 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8429641B2 (en) * 2010-02-02 2013-04-23 Dell Products L.P. System and method for migration of digital assets
US9053472B2 (en) * 2010-02-26 2015-06-09 Red Hat, Inc. Offering additional license terms during conversion of standard software licenses for use in cloud computing environments
US10783504B2 (en) * 2010-02-26 2020-09-22 Red Hat, Inc. Converting standard software licenses for use in cloud computing environments
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US8650195B2 (en) * 2010-03-26 2014-02-11 Palle M Pedersen Region based information retrieval system
US8707087B2 (en) 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
JP5545037B2 (en) * 2010-05-28 2014-07-09 株式会社リコー Information processing device
AU2011100168B4 (en) 2011-02-09 2011-06-30 Device Authority Ltd Device-bound certificate authentication
US9135610B2 (en) 2011-03-29 2015-09-15 Microsoft Technology Licensing, Llc Software application license roaming
US20130254113A1 (en) * 2012-03-20 2013-09-26 Tata Consultancy Services Limited Administering pay per use software licensing
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
US20140067689A1 (en) * 2012-08-31 2014-03-06 Ncr Corporation Security module and method of securing payment information
US20140108657A1 (en) * 2012-10-17 2014-04-17 Dell Products L.P. System and method for managing entitlement of digital assets
US20150088680A1 (en) * 2013-09-24 2015-03-26 Xerox Coporation Methods and systems for operating a marketplace for software products
US10909509B1 (en) * 2014-05-20 2021-02-02 Wells Fargo Bank, N.A. Infrastructure for maintaining math-based currency accounts
US11176524B1 (en) 2014-05-20 2021-11-16 Wells Fargo Bank, N.A. Math based currency credit card
US10565645B1 (en) 2014-05-20 2020-02-18 Wells Fargo Bank, N.A. Systems and methods for operating a math-based currency exchange
US10719816B1 (en) 2015-11-19 2020-07-21 Wells Fargo Bank, N.A. Systems and methods for math-based currency escrow transactions
JP6661395B2 (en) * 2016-01-29 2020-03-11 キヤノン株式会社 License management server, license management system, program
CN110366724B (en) * 2017-03-30 2023-03-31 株式会社OPTiM Computer system, license management method, and recording medium
US20210035115A1 (en) * 2019-07-30 2021-02-04 EMC IP Holding Company LLC Method and system for provisioning software licenses

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713754A (en) * 1984-10-09 1987-12-15 Wang Laboratories, Inc. Data structure for a document processing system
US5428774A (en) * 1992-03-24 1995-06-27 International Business Machines Corporation System of updating an index file of frame sequences so that it indexes non-overlapping motion image frame sequences
US20010032207A1 (en) * 1998-03-12 2001-10-18 Bruce Hartley Operational system for operating on client defined rules
US20020032763A1 (en) * 1998-12-14 2002-03-14 Cox David E. Methods, systems and computer program products for distribution of application programs to a target station on a network
US20020091645A1 (en) * 2000-12-20 2002-07-11 Kagemoto Tohyama Software licensing system
US20020120846A1 (en) * 2001-02-23 2002-08-29 Stewart Whitney Hilton Electronic payment and authentication system with debit and identification data verification and electronic check capabilities
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US20030084306A1 (en) * 2001-06-27 2003-05-01 Rajasekhar Abburi Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices
US20030149670A1 (en) * 2002-02-05 2003-08-07 Cronce Paul A. Method and system for delivery of secure software license information
US20030156719A1 (en) * 2002-02-05 2003-08-21 Cronce Paul A. Delivery of a secure software license for a software product and a toolset for creating the sorftware product

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US6611812B2 (en) * 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
EP1762958A1 (en) * 1999-03-08 2007-03-14 Spyrus, Inc. Method and system for enforcing access to a computing resource using a licensing certificate
US6898706B1 (en) * 1999-05-20 2005-05-24 Microsoft Corporation License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
EP1243998B1 (en) * 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4713754A (en) * 1984-10-09 1987-12-15 Wang Laboratories, Inc. Data structure for a document processing system
US5428774A (en) * 1992-03-24 1995-06-27 International Business Machines Corporation System of updating an index file of frame sequences so that it indexes non-overlapping motion image frame sequences
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US20010032207A1 (en) * 1998-03-12 2001-10-18 Bruce Hartley Operational system for operating on client defined rules
US20020032763A1 (en) * 1998-12-14 2002-03-14 Cox David E. Methods, systems and computer program products for distribution of application programs to a target station on a network
US20020091645A1 (en) * 2000-12-20 2002-07-11 Kagemoto Tohyama Software licensing system
US20020120846A1 (en) * 2001-02-23 2002-08-29 Stewart Whitney Hilton Electronic payment and authentication system with debit and identification data verification and electronic check capabilities
US20030084306A1 (en) * 2001-06-27 2003-05-01 Rajasekhar Abburi Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices
US20030149670A1 (en) * 2002-02-05 2003-08-07 Cronce Paul A. Method and system for delivery of secure software license information
US20030156719A1 (en) * 2002-02-05 2003-08-21 Cronce Paul A. Delivery of a secure software license for a software product and a toolset for creating the sorftware product

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100115579A1 (en) * 2004-07-21 2010-05-06 Beachhead Solutions, Inc. System and method for lost data destruction of electronic data stored on portable electronic devices
US20110197258A1 (en) * 2004-07-21 2011-08-11 Beachhead Solutions, Inc. System and method for lost data destruction of electronic data stored on portable electronic devices
US8037304B2 (en) * 2004-07-21 2011-10-11 Beachhead Solutions, Inc. System and method for lost data destruction of electronic data stored on portable electronic devices
US8185735B2 (en) * 2004-07-21 2012-05-22 Beachead Solutions, Inc. System and method for lost data destruction of electronic data stored on portable electronic devices
US20090020600A1 (en) * 2007-07-19 2009-01-22 Canon Kabushiki Kaisha Right-of-use transfer system
US7757937B2 (en) * 2007-07-19 2010-07-20 Canon Kabushiki Kaisha Right-of-use transfer system
US20090326964A1 (en) * 2008-06-25 2009-12-31 Microsoft Corporation Extensible agent-based license structure
US20100100565A1 (en) * 2008-10-20 2010-04-22 Canon Kabushiki Kaisha License management system and control method for the license management system
US20140164225A1 (en) * 2012-12-06 2014-06-12 Javier Cardona Method and apparatus for content distribution and deferred payment over a wireless network
US20140379594A1 (en) * 2013-06-23 2014-12-25 Cisco Technology, Inc. Recording and maintaining acceptances of licenses for using computer products
US20140379596A1 (en) * 2013-06-23 2014-12-25 Cisco Technology, Inc. Cloud-based auditing and management of licenses to use computer products
US20150294093A1 (en) * 2014-04-11 2015-10-15 Canon Kabushiki Kaisha Management system, information processing device, management server, control method therefor, and program
US10452818B2 (en) * 2016-01-29 2019-10-22 Canon Kabushiki Kaisha License management system
EP3208730A1 (en) * 2016-02-19 2017-08-23 Canon Kabushiki Kaisha License system, license management server, method, and storage medium
CN107103210A (en) * 2016-02-19 2017-08-29 佳能株式会社 License system, licence management server and method
KR20170098179A (en) * 2016-02-19 2017-08-29 캐논 가부시끼가이샤 License system, license management server, method of controlling license system, and storage medium
US10354052B2 (en) * 2016-02-19 2019-07-16 Canon Kabushiki Kaisha License system, license management server, method, and storage medium
KR102127115B1 (en) 2016-02-19 2020-06-26 캐논 가부시끼가이샤 License system, license management server, method of controlling license system, and storage medium

Also Published As

Publication number Publication date
AU2003225743A8 (en) 2003-09-22
US7483860B2 (en) 2009-01-27
US20030172035A1 (en) 2003-09-11
AU2003225743A1 (en) 2003-09-22
WO2003075633A3 (en) 2004-04-15
WO2003075633A2 (en) 2003-09-18

Similar Documents

Publication Publication Date Title
US7483860B2 (en) Method and system for managing software licenses
US6732106B2 (en) Digital data distribution system
EP0719485B1 (en) Access control for portable data storage media
US6009401A (en) Relicensing of electronically purchased software
US5925127A (en) Method and system for monitoring the use of rented software
US7096203B2 (en) Method and apparatus for dynamic renewability of content
US5677953A (en) System and method for access control for portable data storage media
US7962417B2 (en) System and method for distributing protected information
US20060190409A1 (en) Method and system for licensing digital works
US7016878B2 (en) Content sales period verifying system and content decryption key effective period verifying system
US20100299761A1 (en) System and method for sending electronic data to inmates
US20070198422A1 (en) System and method for providing a flexible licensing system for digital content
CN101036099A (en) Centralized management of digital rights licensing
US20040039705A1 (en) Distributing a software product activation key
US20040059937A1 (en) Apparatus, method and computer program for controlling use of a content
EA009793B1 (en) Distribution and rights management of digital content
JP2003524264A (en) Method and apparatus for storing, distributing and accessing intellectual property in digital form
JP2002334173A (en) Method for distributing contents, and server, terminal and computer program used in the same
CN1759363A (en) Distribution and rights management of digital content
EP1174786A2 (en) Method, system, and program for reusing software licenses with new computer hardware
JP2004030617A (en) Transaction service system using internet and its method
US20030018791A1 (en) System and method for electronic file transmission
KR20060021963A (en) Method for providing for enabling resale of used contents
JP2002287844A (en) Rental system for program software
JP2004062864A (en) On-line shopping system using the internet

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION