US6243692B1 - Secure electronic software packaging using setup-external unlocking module - Google Patents

Secure electronic software packaging using setup-external unlocking module Download PDF

Info

Publication number
US6243692B1
US6243692B1 US09/082,964 US8296498A US6243692B1 US 6243692 B1 US6243692 B1 US 6243692B1 US 8296498 A US8296498 A US 8296498A US 6243692 B1 US6243692 B1 US 6243692B1
Authority
US
United States
Prior art keywords
module
software
added
software program
trial
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.)
Expired - Lifetime
Application number
US09/082,964
Inventor
Michel Floyd
Cay S. Horstmann
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.)
SafeNet Data Security Israel Ltd
Original Assignee
Preview Software
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
Priority to US09/082,964 priority Critical patent/US6243692B1/en
Application filed by Preview Software filed Critical Preview Software
Assigned to PREVIEW SOFTWARE reassignment PREVIEW SOFTWARE ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FLOYD, MICHEL, HORSTMANN, CAY S.
Priority to PCT/US1999/011384 priority patent/WO1999062017A1/en
Assigned to PREVIEW SYSTEMS, INC. reassignment PREVIEW SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PREVIEW SOFTWARE, INC.
Publication of US6243692B1 publication Critical patent/US6243692B1/en
Application granted granted Critical
Assigned to ALADDIN KNOWLEDGE SYSTEMS, INC. reassignment ALADDIN KNOWLEDGE SYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PREVIEW SYSTEMS, INC.
Assigned to ALADDIN KNOWLEDGE SYSTEMS, LTD reassignment ALADDIN KNOWLEDGE SYSTEMS, LTD ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PREVIEW SYSTEMS, INC.
Assigned to DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT reassignment DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT FIRST LIEN PATENT SECURITY AGREEMENT Assignors: ALLADDIN KNOWLEDGE SYSTEMS LTD.
Assigned to DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT reassignment DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT SECOND LIEN PATENT SECURITY AGREEMENT Assignors: ALLADDIN KNOWLEDGE SYSTEMS LTD.
Assigned to SAFENET DATA SECURITY (ISRAEL) LTD. reassignment SAFENET DATA SECURITY (ISRAEL) LTD. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ALADDIN KNOWLEDGE SYSTEMS LTD.
Assigned to ALADDIN KNOWLEDGE SYSTEMS LTD reassignment ALADDIN KNOWLEDGE SYSTEMS LTD SECOND LIEN PATENT SECURITY AGREEMENT RELEASE Assignors: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Assigned to ALADDIN KNOWLEDGE SYSTEMS LTD reassignment ALADDIN KNOWLEDGE SYSTEMS LTD FIRST LIEN PATENT SECURITY AGREEMENT RELEASE Assignors: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Definitions

  • the present invention relates to software distribution, particularly electronic software distribution.
  • ESD Electronic software distribution
  • Buy/Try Buy-Before-You-Try
  • Try-Before-You-Buy Try/Buy is technologically more complex but is favored by buyers and is advantageous for sellers as well.
  • a software tool for Try/Buy “self-wrapping” of software programs is sold by Preview Software, the present assignee- Using this tool, a software program is “injected” with a code module that performs trial protection and enables electronic purchase of the software program.
  • the injected software program and related files are then packed as a program archive, or setup file set, using a conventional installation tool such as InstallShieldTM installation software.
  • InstallShieldTM installation software A secondary setup executable is added outside the program archive and functions to install distribution information and instructions.
  • a program executable has added to it trial and commerce information, resulting in a modified executable.
  • the modified executable and other files are processed by an installer tool to produce a setup file set, e.g., setup.exe, that is a ready-to-install Try/Buy application.
  • the present invention provides for secure electronic software packaging using a setup-external unlocking module.
  • a software publisher can produce a single ESD-ready version of a software title that may later be prepared for distribution through multiple different ESD channels by adding channel-specific unlocking modules. Duplication of the injection process prior to the packing of the setup file set is eliminated and great flexibility is achieved.
  • the single ESD-ready version allows for trial of the software, e.g., a free 30-day trial.
  • Software publishers are incentivized to produce trial versions of their software for marketing purposes. Once such a trial version of a software title has been produced, no further modifications are required on the part of the software publisher in order to distribute the software through various different channels.
  • the software publisher produces a trial version of a software title using a technology provider tool to inject the program executable with “guard code” referred to herein as a protection module.
  • the protection module allows the program to be run only in accordance with trial parameters specified by the software publisher.
  • the protection module will typically lack commerce capabilities required in order to purchase the software, i.e., obtain unlimited usage of the software or at least usage beyond the original trial period.
  • a conventional installation tool is used to produce a setup file set.
  • the BOB can be downloaded and tried but cannot be purchased. That is, unlike competing technologies, the BOBs at his point are fully functional trial versions that can be tested and tried without adding purchase capabilities.
  • a technology provider tool is used to add an unlocking module to the BOB, together with a secondary license file, adding necessary commerce parameters.
  • the unlocking module and secondary license file are added outside the BOB (i.e., the setup file set), which cannot be readily penetrated.
  • the unlocking module has both trial monitoring capabilities and commerce capabilities.
  • the augmented software program may then be delivered from a server that functions as part of a BOB farm where a collection of wrapped software programs (Bags of Bits, or BOBs) are maintained.
  • the protection module checks whether a unlocking module is present. If not, the protection module handles trial protection.
  • the protection module uses a defined mechanism for communication between the protection module and the unlocking module to authenticate the unlocking module. If the unlocking module is authenticated, the protection module then cooperates with the unlocking module. Through the unlocking module, the software program may be tried and then unlocked at any time. In a typical embodiment, unlocking is predicated upon transmitting payment to a payment clearinghouse and receiving authorization. Alternatively, the unlocking module may read and verify an electronic license that the end-user has purchased, or communicate with a license server that stores electronic licenses and dispenses authorization to execute software programs.
  • FIG. 1 is a diagram of a software wrapping process
  • FIG. 2 is a diagram of software wrapping process in accordance with the present invention.
  • FIG. 3 is a block diagram of a software distribution system
  • FIG. 4 is a block diagram of a Try/Buy application installed on an end user machine
  • FIG. 5 is a screen display produced by a typical unlocking module client.
  • FIG. 6 is a block diagram illustrating authentication features of the license files read by the trial module and the unlocking module.
  • FIG. 7 is a diagram showing authentication of an unlocking module.
  • a program executable has added to it trial information only, resulting in a modified executable.
  • the modified executable and other files are processed by an installer tool to produce a setup file set, e.g., setup.exe, that is a ready-to-install trial-only application.
  • a commerce “brander” is then used to add commerce parameters to the trial-only application. These parameters may include the name of the merchant, the price of the product, phone numbers or email address to use for support during the purchase process, the choice of commerce method (e.g., phone or Internet unlock) and the basic SKUs and product IDs used to track sales.
  • There results a ready-to-install Try/Buy application e.g. setup.exe'.
  • the Try/Buy application is made up of the trial-only application (setup.exe), a secondary installer, the unlocking module, and commerce information.
  • a technology provider tool is used to inject a trial module into the program.
  • the tool used to perform injection is referred to herein as a VboxTM builder tool, or virtual box builder tool.
  • a virtual box is a smart software container of a type described herein.
  • the Vbox builder produces a trial version of the program as described previously in relation to FIG. 2 .
  • the trial version may be distributed directly by the software publisher or may be distributed through various channels.
  • the trial version may be “time-bombed” such that after a period of time the software publisher may be assured that no copies are functional.
  • the trial version may also be hosted within a BOB farm and from the BOB farm be distributed through various channels.
  • a commerce builder tool may be used to turn the trial version into a Try/Buy version.
  • the conversion from trial-only to Try/Buy may be performed by the software publisher, and the trial version may be distributed directly by the software publisher.
  • the conversion may be performed by various channel partners, and the resulting Try/Buy version may be distributed through various channels.
  • the conversion may be performed by various channel partners using a trial version hosted within a BOB farm. The resulting Try/Buy versions are then distributed through various channels.
  • each Try/Buy version may be different.
  • the commerce methods of the various Try/Buy versions need not be the same.
  • the commerce methods may include electronic purchase, telephone purchase, rental, pay-per-use, subscription, etc.
  • new commerce methods they may be implemented in the form of new commerce modules without altering the trial module, without requiring re-injection of the original executables, and without changes to the setup file set.
  • the software version includes the original software, a trial DLL, and a primary license file, and may include an unlocking DLL and a secondary license file, indicated in dashed lines.
  • file is used in a general sense to denote a container of digital information.
  • DLL is used to describe any dynamic link library technology.
  • the trial DLL checks for the presence of the unlocking DLL.
  • the secondary license file is created, which may later be merged with the primary license file.
  • the secondary license file may include server information and one or more keys to be used to unlock or purchase the software.
  • the secondary license file may contain keys required for secure Internet communication and/or a phone unlock key required for phone purchase.
  • the secondary license file identifies the name and location of the unlocking DLL. If the trial DLL, in reading the secondary license file, determines that an unlocking DLL is available, then the trial DLL knows to load the unlocking DLL.
  • the trial DLL reads the primary license file and controls execution of the software accordingly.
  • the license file may specify a 30-day trial.
  • the trial DLL stores encrypted trial parameters, such as number of days since installation, in persistent storage such as within the operating system registry. If the days installed trial parameter is 30 or less, then the trial DLL (in the case of a 30-day trial) will allow execution of the software. After the trial limit has been exceeded, then the trial DLL will not allow execution of the software.
  • the trial DLL invokes the unlocking DLL.
  • the unlocking DLL is a superset of the trial DLL and includes both trial and commerce functionality.
  • the primary license file is a subset of the secondary license file. The unlocking DLL runs, reads the primary license file and controls execution of the software accordingly.
  • the Vbox builder tool 601 uses a privilege file 603 that includes a public/private key pair.
  • the public key 605 is stored with trial state information 607 that is guarded by the trial module (not shown).
  • the private key 609 is encrypted and added to a license information file 611 , external to a setup file set and therefore accessible without requiring penetration of the setup file set.
  • the commerce builder tool 613 obtains the encrypted private key 609 from the primary license file 611 , decrypts it, and uses it to sign the secondary license file 615 .
  • the trial module retrieves the public key 605 from the trial state information 607 and uses it to perform authentication of the secondary license file 615 .
  • the trial DLL may employ to authenticate the unlocking DLL.
  • the technology provider creates a public/private key pair (Pub', Priv').
  • the private key is used to sign the unlocking DLLs provided by the technology provider.
  • the matching public key is embedded in e trial DLL.
  • the matching public key is embedded in the trial DLL.
  • the trial DLL alone, or the trial DLL and the unlocking DLL together, may be referred to as a Vbox client.
  • the client runs before the rest of the application, before any splash screens, login prompts, tips of the day, or other startup tasks.
  • the client is the only part of the application that is visible at launch until the end user starts the trial or successfully purchase the application.
  • a typical client window in shown in FIG. 5 A typical client window in shown in FIG. 5 .
  • Publisher and product information 501 and an icon 503 are all set by the merchant.
  • the message 505 also set by the merchant, depends on the state of the client (e.g, first-time, in-trial, or expired).
  • a Try First button 509 is visible during the trial period.
  • a trial usage meter 511 show the end user how much of the trial is left.
  • the software publisher can specify that the end user must register before using the application, in which case the end user must enter their basic name and email information into the application before the application will be allowed to run.
  • the client interface is enhanced with the addition of the merchant's merchandising information. Most importantly, the “Buy Now” button is added, allowing the end user to directly purchase the application. Once the application has been purchased, the client window will not show up anymore, but part of the client will still run at every invocation of the application, protecting the application from illegal use.
  • the BOB to which an unlocking module is to be added is a trial version of a software product.
  • the BOB may be a Buy/Try enabled software product, i.e., commerce enabled but not trial enabled. It may be desirable to add a module that includes commerce capabilities or different commerce methods. What has heretofore been referred to as the trial module may therefore be more generally referred to as the default module, and the unlock module may be more generally referred to as the added module.
  • the added module when called, functions in place of the default module.
  • the added module may in some or all instances return control to the default module.
  • the default module calls the added module, which assists the default module in some way (e.g., by displaying a Buy control and supplying code that directs a purchase or payment transaction if the control is activated). The added module then returns control to the default module.
  • a further issue relates to the ability to wrap multiple executables in a coordinated manner.
  • the trial builder tool is designed to provide this capability.
  • the software publisher specifies which executable(s) and/or code libraries need to be wrapped, and the Vbox builder tool then injects each of them in a secure, coordinated manner.
  • the Vbox client will execute. If the end-user then runs a second wrapped application that is part of the same product, if a first related product is still running, the Vbox client will execute transparently, without showing the usual dialog. The perception by the user of a single product is therefore maintained. Furthermore, when the user purchases the application, all of its executables are unlocked together.

Abstract

The present invention, generally speaking, provides for secure electronic software packaging using a setup-external unlocking module. As a result, a software publisher can produce a single ESD-ready version of a software title that may later be prepared for distribution through multiple different ESD channels by adding channel-specific unlocking modules. Duplication of the injection process prior to the packing of the setup file set is eliminated and great flexibility is achieved. Preferably, the single ESD-ready version allows for trial of the software, e.g., a free 30-day trial. Software publishers are incentivized to produce trial versions of their software for marketing purposes. Once such a trial version of a software title has been produced, no further modifications are required on the part of the software publisher in order to distribute the software through various different channels. In one embodiment, the software publisher produces a trial version of a software title using a technology provider tool to inject the program executable with “guard code” referred to herein as a protection module. The protection module allows the program to be run only in accordance with trial parameters specified by the software publisher. The protection module will typically lack commerce capabilities required in order to purchase the software, i.e., obtain unlimited usage of the software or at least usage beyond the original trial period. After the software has been injected with the protection module, a conventional installation tool is used to produce a setup file set. At this point, the BOB can be downloaded and tried but cannot be purchased. That is, unlike competing technologies, the BOBs at his point are fully functional trial versions that can be tested and tried without adding purchase capabilities.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to software distribution, particularly electronic software distribution.
2. State of the Art
Electronic software distribution, or ESD, is technology that enables software publishers and resellers to use the Internet as a direct channel to customers. ESD provides a fast, efficient alternative to the distribution of shrink-wrapped software products in retail stores. ESD follows one of two models, either Buy-Before-You-Try (Buy/Try) or Try-Before-You-Buy (Try/Buy). Try/Buy is technologically more complex but is favored by buyers and is advantageous for sellers as well.
A software tool for Try/Buy “self-wrapping” of software programs is sold by Preview Software, the present assignee- Using this tool, a software program is “injected” with a code module that performs trial protection and enables electronic purchase of the software program. The injected software program and related files are then packed as a program archive, or setup file set, using a conventional installation tool such as InstallShield™ installation software. A secondary setup executable is added outside the program archive and functions to install distribution information and instructions.
The foregoing process may be more clearly understood with reference to FIG. 1. A program executable has added to it trial and commerce information, resulting in a modified executable. The modified executable and other files are processed by an installer tool to produce a setup file set, e.g., setup.exe, that is a ready-to-install Try/Buy application.
Various other competing and incompatible Try/Buy ESD technologies have emerged, offered by such technology providers as TestDrive Software, Release Software and TechWave, Inc. ESD merchants have aligned themselves with different ones of these technology providers. As a result, software publishers have faced either choosing one technology provider and ignoring merchants aligned with other technology providers, or producing multiple different versions of a software title for different channels, resulting in considerable expense and duplication of effort.
SUMMARY OF THE INVENTION
The present invention, generally speaking, provides for secure electronic software packaging using a setup-external unlocking module. As a result, a software publisher can produce a single ESD-ready version of a software title that may later be prepared for distribution through multiple different ESD channels by adding channel-specific unlocking modules. Duplication of the injection process prior to the packing of the setup file set is eliminated and great flexibility is achieved. Preferably, the single ESD-ready version allows for trial of the software, e.g., a free 30-day trial. Software publishers are incentivized to produce trial versions of their software for marketing purposes. Once such a trial version of a software title has been produced, no further modifications are required on the part of the software publisher in order to distribute the software through various different channels. In one embodiment, the software publisher produces a trial version of a software title using a technology provider tool to inject the program executable with “guard code” referred to herein as a protection module. The protection module allows the program to be run only in accordance with trial parameters specified by the software publisher. The protection module will typically lack commerce capabilities required in order to purchase the software, i.e., obtain unlimited usage of the software or at least usage beyond the original trial period. After the software has been injected with the protection module, a conventional installation tool is used to produce a setup file set. At this point, the BOB can be downloaded and tried but cannot be purchased. That is, unlike competing technologies, the BOBs at his point are fully functional trial versions that can be tested and tried without adding purchase capabilities.
To ready a BOB for use beyond trial, a technology provider tool is used to add an unlocking module to the BOB, together with a secondary license file, adding necessary commerce parameters. The unlocking module and secondary license file are added outside the BOB (i.e., the setup file set), which cannot be readily penetrated. In one embodiment, the unlocking module has both trial monitoring capabilities and commerce capabilities. The augmented software program may then be delivered from a server that functions as part of a BOB farm where a collection of wrapped software programs (Bags of Bits, or BOBs) are maintained. In operation, when the software program is installed and run, the protection module checks whether a unlocking module is present. If not, the protection module handles trial protection. If an unlocking module is present, the protection module uses a defined mechanism for communication between the protection module and the unlocking module to authenticate the unlocking module. If the unlocking module is authenticated, the protection module then cooperates with the unlocking module. Through the unlocking module, the software program may be tried and then unlocked at any time. In a typical embodiment, unlocking is predicated upon transmitting payment to a payment clearinghouse and receiving authorization. Alternatively, the unlocking module may read and verify an electronic license that the end-user has purchased, or communicate with a license server that stores electronic licenses and dispenses authorization to execute software programs.
BRIEF DESCRIPTION OF THE DRAWING
The present invention may be further understood from the following description in conjunction with the appended drawing. In the drawing:
FIG. 1 is a diagram of a software wrapping process;
FIG. 2 is a diagram of software wrapping process in accordance with the present invention;
FIG. 3 is a block diagram of a software distribution system;
FIG. 4 is a block diagram of a Try/Buy application installed on an end user machine;
FIG. 5 is a screen display produced by a typical unlocking module client; and
FIG. 6 is a block diagram illustrating authentication features of the license files read by the trial module and the unlocking module; and
FIG. 7 is a diagram showing authentication of an unlocking module.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to FIG. 2, a software wrapping process in accordance with the present invention is shown. A program executable has added to it trial information only, resulting in a modified executable. The modified executable and other files are processed by an installer tool to produce a setup file set, e.g., setup.exe, that is a ready-to-install trial-only application. A commerce “brander” is then used to add commerce parameters to the trial-only application. These parameters may include the name of the merchant, the price of the product, phone numbers or email address to use for support during the purchase process, the choice of commerce method (e.g., phone or Internet unlock) and the basic SKUs and product IDs used to track sales. There results a ready-to-install Try/Buy application, e.g. setup.exe'. The Try/Buy application is made up of the trial-only application (setup.exe), a secondary installer, the unlocking module, and commerce information.
Referring to FIG. 3, the manner in which the software program may be distributed will be described. Beginning with the original software program, a technology provider tool is used to inject a trial module into the program. The tool used to perform injection is referred to herein as a Vbox™ builder tool, or virtual box builder tool. A virtual box is a smart software container of a type described herein. The Vbox builder produces a trial version of the program as described previously in relation to FIG. 2. The trial version may be distributed directly by the software publisher or may be distributed through various channels. The trial version may be “time-bombed” such that after a period of time the software publisher may be assured that no copies are functional. The trial version may also be hosted within a BOB farm and from the BOB farm be distributed through various channels.
A commerce builder tool may be used to turn the trial version into a Try/Buy version. Again, the conversion from trial-only to Try/Buy may be performed by the software publisher, and the trial version may be distributed directly by the software publisher. Alternatively, the conversion may be performed by various channel partners, and the resulting Try/Buy version may be distributed through various channels. The conversion may be performed by various channel partners using a trial version hosted within a BOB farm. The resulting Try/Buy versions are then distributed through various channels.
Note that each Try/Buy version may be different. In particular, the commerce methods of the various Try/Buy versions need not be the same. The commerce methods may include electronic purchase, telephone purchase, rental, pay-per-use, subscription, etc. In fact, as new commerce methods are developed, they may be implemented in the form of new commerce modules without altering the trial module, without requiring re-injection of the original executables, and without changes to the setup file set.
Referring now to FIG. 4, a block diagram is shown of a software version installed on an end user machine. The software version includes the original software, a trial DLL, and a primary license file, and may include an unlocking DLL and a secondary license file, indicated in dashed lines. The term “file” is used in a general sense to denote a container of digital information. The term “DLL” is used to describe any dynamic link library technology. During operation, the trial DLL checks for the presence of the unlocking DLL. In an exemplary embodiment, when an unlocking DLL is added using the commerce builder tool, the secondary license file is created, which may later be merged with the primary license file. The secondary license file may include server information and one or more keys to be used to unlock or purchase the software. For example, the secondary license file may contain keys required for secure Internet communication and/or a phone unlock key required for phone purchase.
In an exemplary embodiment, the secondary license file identifies the name and location of the unlocking DLL. If the trial DLL, in reading the secondary license file, determines that an unlocking DLL is available, then the trial DLL knows to load the unlocking DLL.
If no unlocking DLL is present, the trial DLL reads the primary license file and controls execution of the software accordingly. For example, the license file may specify a 30-day trial. The trial DLL stores encrypted trial parameters, such as number of days since installation, in persistent storage such as within the operating system registry. If the days installed trial parameter is 30 or less, then the trial DLL (in the case of a 30-day trial) will allow execution of the software. After the trial limit has been exceeded, then the trial DLL will not allow execution of the software.
If the unlocking DLL is present, then the trial DLL invokes the unlocking DLL. In an exemplary embodiment, the unlocking DLL is a superset of the trial DLL and includes both trial and commerce functionality. The primary license file is a subset of the secondary license file. The unlocking DLL runs, reads the primary license file and controls execution of the software accordingly.
Clearly, not all comers may be allowed to add unlocking capabilities to and to sell a trial software version indiscriminately. A mechanism must be established whereby the software publisher can exercise control over who is able to add unlocking capabilities to and to sell a software application. This control mechanism is established by including as part of the trial DLL and authorized unlocking DLLs a shared secret. When the trial DLL checks for an unlocking DLL, it also authenticates the unlocking DLL to ensure that the unlocking DLL is authorized to sell the software.
Referring more particularly to FIG. 6, during preparation of a trial version of a software program, the Vbox builder tool 601 uses a privilege file 603 that includes a public/private key pair. The public key 605 is stored with trial state information 607 that is guarded by the trial module (not shown). The private key 609 is encrypted and added to a license information file 611, external to a setup file set and therefore accessible without requiring penetration of the setup file set. During preparation of a commerce version of the software program, the commerce builder tool 613 obtains the encrypted private key 609 from the primary license file 611, decrypts it, and uses it to sign the secondary license file 615. During authentication, the trial module retrieves the public key 605 from the trial state information 607 and uses it to perform authentication of the secondary license file 615.
Referring to FIG. 7, an example is shown of one method the trial DLL may employ to authenticate the unlocking DLL. The technology provider creates a public/private key pair (Pub', Priv'). The private key is used to sign the unlocking DLLs provided by the technology provider. The matching public key is embedded in e trial DLL. The matching public key is embedded in the trial DLL. When the trial DLL starts, it authenticates the secondary license file, as previously described, reads the name of the unlocking DLL from the secondary license file, locates the unlocking DLL, and then verifies its signature, using the matching public key.
The trial DLL alone, or the trial DLL and the unlocking DLL together, may be referred to as a Vbox client. The client runs before the rest of the application, before any splash screens, login prompts, tips of the day, or other startup tasks. The client is the only part of the application that is visible at launch until the end user starts the trial or successfully purchase the application. A typical client window in shown in FIG. 5. Publisher and product information 501 and an icon 503 are all set by the merchant. The message 505, also set by the merchant, depends on the state of the client (e.g, first-time, in-trial, or expired). The end user clicks on a Buy Now button 507 to proceed with purchase. In the case of Try/Buy only, a Try First button 509 is visible during the trial period. A trial usage meter 511 show the end user how much of the trial is left. The software publisher can specify that the end user must register before using the application, in which case the end user must enter their basic name and email information into the application before the application will be allowed to run.
When unlocking is added by a merchant, the client interface is enhanced with the addition of the merchant's merchandising information. Most importantly, the “Buy Now” button is added, allowing the end user to directly purchase the application. Once the application has been purchased, the client window will not show up anymore, but part of the client will still run at every invocation of the application, protecting the application from illegal use.
The foregoing discussion has assumed that the BOB to which an unlocking module is to be added is a trial version of a software product. Alternatively, the BOB may be a Buy/Try enabled software product, i.e., commerce enabled but not trial enabled. It may be desirable to add a module that includes commerce capabilities or different commerce methods. What has heretofore been referred to as the trial module may therefore be more generally referred to as the default module, and the unlock module may be more generally referred to as the added module.
Furthermore, it may be desirable to upgrade from one added module to another while the software product is installed on an end user machine. Such an upgrade may be achieved where the end user machine has installed a software agent, or persistent client, of a type described in U.S. application Ser. No. 09/041,315, (Atty. Dkt. No. 031994-025) entitled INTERACTIVE CUSTOMER SUPPORT FOR COMPUTER PROGRAMS USING NETWORK CONNECTION OF USER MACHINE, filed Mar. 12, 1998, incorporated herein by reference. To allow for the possibility of upgrades, the default module is programmed to authenticate multiple added modules, if present, to query authenticated modules for version information, and to find and invoke the most recent version.
Also, the foregoing discussion has assumed that the added module, when called, functions in place of the default module. In other embodiments, the added module may in some or all instances return control to the default module. In this embodiment therefore, the default module calls the added module, which assists the default module in some way (e.g., by displaying a Buy control and supplying code that directs a purchase or payment transaction if the control is activated). The added module then returns control to the default module.
A further issue relates to the ability to wrap multiple executables in a coordinated manner. In an exemplary embodiment, the trial builder tool is designed to provide this capability. Using the Vbox builder tool, the software publisher specifies which executable(s) and/or code libraries need to be wrapped, and the Vbox builder tool then injects each of them in a secure, coordinated manner. When the end-user runs any of the wrapped executables (either directly, by double-clicking on them, or indirectly, by running an application which then calls on a wrapped executable or code library), the Vbox client will execute. If the end-user then runs a second wrapped application that is part of the same product, if a first related product is still running, the Vbox client will execute transparently, without showing the usual dialog. The perception by the user of a single product is therefore maintained. Furthermore, when the user purchases the application, all of its executables are unlocked together.
It will be appreciated by those of ordinary skill in the art that the invention can be embodied in other specific forms without departing from the spirit or essential character thereof. The presently disclosed embodiments are therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than the foregoing description, and all changes which come within the meaning and range of equivalents thereof are intended to be embraced therein.

Claims (22)

What is claimed is:
1. A method of protecting a software program to be distributed electronically comprising the steps of:
adding to the software program a protection module;
installing the software program on an end-user machine;
when startup of the software program is attempted, invoking the protection module;
adding to the software program an unlocking module, the unlocking module being added separately from the protection module; and
the protection module checking whether or not an unlocking module is present.
2. The method of claim 1, further comprising storing permission parameters on a persistent storage medium that is accessible by the protection module.
3. The method of claim 2, wherein if the unlocking module is not present, the protection module checks the permission parameters and allows or disallows use of the software program based on the permission parameters.
4. The method of claim 1, wherein the protection module is added using a first software tool and the unlocking module is added using a second separate software tool.
5. The method of claim 1, wherein if the unlocking module is present, the protection module authenticates and invokes the unlocking module.
6. The method of claim 5, wherein the unlocking module causes display of a user interface control for initiating a transaction for granting usage rights to the software program.
7. The method of claim 5, wherein the unlocking module locates and verifies an electronic license.
8. The method of claim 7, wherein the unlocking module communicates with a server that stores electronic licenses and dispenses authorization to execute software programs.
9. A flexible method of altering the behavior of a software program, comprising the steps of:
adding a default module to the software program without altering source code of the software program;
adding an added module to the software program without altering source code of the software program; and
providing within the default module a mechanism whereby the default module check for and calls, the added module, a combined effect of the default module and the added module being to alter the behavior of the software program.
10. The method of claim 9, wherein the default module controls execution of the software program.
11. The method of claim 9, wherein the added module controls execution of the software program.
12. The method of claim 9, wherein the added module assists the default module in controlling execution of the software program.
13. The method of claim 9, wherein the added module is added to a self-installing setup file set.
14. The method of claim 9, wherein the added module is added to an application binary that is not self-installing but that relies on a separate installer.
15. The method of claim 10, wherein the default module is a protection module.
16. The method of claim 15, wherein the added module includes electronic commerce capabilities.
17. The method of claim 15, wherein the added module includes license management capabilities.
18. The method of claim 16, wherein the added module also includes trial monitoring capabilities.
19. The method of claim 9, wherein the default module is a Buy/Try module.
20. The method of claim 19, wherein the added module includes trial monitoring capabilities.
21. The method of claim 20, further comprising adding a further added module to the software program, wherein the default module compares version information of multiple added modules to determine an added module to be called.
22. A computer-readable medium comprising program instructions including:
a software program and a code module foreign to but attached to the software program, the code module including program instructions that check for and, if present, call an added module distributed together with the foreign module;
wherein the combined effect of the code module and the added module, if present, is to alter the behavior of the software program.
US09/082,964 1998-05-22 1998-05-22 Secure electronic software packaging using setup-external unlocking module Expired - Lifetime US6243692B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US09/082,964 US6243692B1 (en) 1998-05-22 1998-05-22 Secure electronic software packaging using setup-external unlocking module
PCT/US1999/011384 WO1999062017A1 (en) 1998-05-22 1999-05-21 Secure electronic software packaging using setup-external unlocking module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/082,964 US6243692B1 (en) 1998-05-22 1998-05-22 Secure electronic software packaging using setup-external unlocking module

Publications (1)

Publication Number Publication Date
US6243692B1 true US6243692B1 (en) 2001-06-05

Family

ID=22174569

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/082,964 Expired - Lifetime US6243692B1 (en) 1998-05-22 1998-05-22 Secure electronic software packaging using setup-external unlocking module

Country Status (2)

Country Link
US (1) US6243692B1 (en)
WO (1) WO1999062017A1 (en)

Cited By (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010037403A1 (en) * 2000-04-28 2001-11-01 Masao Mougi Program license key issuing method and issuing system
US20020006803A1 (en) * 2000-05-12 2002-01-17 Dennis Mendiola Method and system for inviting and creating accounts for prospective users of an instant messaging system
US20020049680A1 (en) * 1992-12-15 2002-04-25 Jonathan Schull Method for tracking sofware lineages
US20020099954A1 (en) * 2001-01-09 2002-07-25 Gabriel Kedma Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
US20020099951A1 (en) * 2001-01-25 2002-07-25 O'connor Clint H. System and method for limiting use of a software program with another software program
US20020144153A1 (en) * 2000-09-22 2002-10-03 Levine Richard B. Systems and methods for preventing unauthorized use of digital content
US20020197528A1 (en) * 2001-06-26 2002-12-26 Aladdin Knowledge Systems Gmbh & Co. Kg Method for extending an application, to be installed using an installation program, by a function, and a computer software product
US6529949B1 (en) * 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US20030070160A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Embedding information in software
US20030070164A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Extracting information from software
WO2003044662A1 (en) * 2001-11-15 2003-05-30 Aladdin Knowledge Systems, Ltd. Incrementally increasing or decreasing the available functionalities of a computer program
US20030110094A1 (en) * 2002-07-25 2003-06-12 Sony Corporation System and method for wireless viral software distribution
US20030110375A1 (en) * 1998-06-04 2003-06-12 Z4 Technologies, Inc. Method for monitoring software using encryption including digital signatures/certificates
WO2003067826A2 (en) * 2002-02-06 2003-08-14 Snap-On Technologies, Inc Network-based method and system for distributing data
US20030181242A1 (en) * 2002-03-20 2003-09-25 Se-Wai Lee Method and apparatus for sotfware delivery and management
US20030208680A1 (en) * 1996-06-28 2003-11-06 Shannon Byrne System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US20040004114A1 (en) * 1999-03-25 2004-01-08 Koninklijke Philips Electronics N.V. Usage dependent ticket to protect copy-protected material
US20040030912A1 (en) * 2001-05-09 2004-02-12 Merkle James A. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US20040039916A1 (en) * 2002-05-10 2004-02-26 David Aldis System and method for multi-tiered license management and distribution using networked clearinghouses
US20040054597A1 (en) * 2002-07-25 2004-03-18 Sony Corporation System and method for wireless software download and remote transaction settlement
US20040107368A1 (en) * 1998-06-04 2004-06-03 Z4 Technologies, Inc. Method for digital rights management including self activating/self authentication software
US20040117628A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content
US20040117631A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for digital rights management including user/publisher connectivity interface
US20040117663A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution
US20040117664A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Apparatus for establishing a connectivity platform for digital rights management
US20040117644A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content
US20040126750A1 (en) * 2002-11-15 2004-07-01 Wolfgang Theilmann Versioning electronic learning objects
US20040139315A1 (en) * 2002-10-09 2004-07-15 Fujitsu Limited Private data protection distribution method and program
US6769130B1 (en) 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US6785825B2 (en) 1998-06-04 2004-08-31 Z4 Technologies, Inc. Method for securing software to decrease software piracy
US20040215571A1 (en) * 1992-12-15 2004-10-28 Jonathan Schull System and method for controlling access to protected information
US20040225894A1 (en) * 1998-06-04 2004-11-11 Z4 Technologies, Inc. Hardware based method for digital rights management including self activating/self authentication software
US6866587B1 (en) 2000-09-25 2005-03-15 Auran Holdings Pty Ltd. Wide area real-time software environment
US20050097343A1 (en) * 2003-10-31 2005-05-05 Michael Altenhofen Secure user-specific application versions
EP1550933A1 (en) * 2003-10-31 2005-07-06 Sap Ag Securely providing user-specific application versions
US20050192907A1 (en) * 1999-03-27 2005-09-01 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
US6944621B1 (en) 1999-04-21 2005-09-13 Interactual Technologies, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US20050204130A1 (en) * 2004-03-10 2005-09-15 Harris Steven M. Computer program for securely viewing a file
US20050234827A1 (en) * 2004-04-14 2005-10-20 Rudowsky Michael J System for processing executable applications to be suitable for distribution
US7024393B1 (en) * 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US20060161968A1 (en) * 2004-12-21 2006-07-20 Nintendo Co., Ltd. Method and apparatus for secure delivery and evaluation of prototype software over a network
US20060253836A1 (en) * 2003-06-27 2006-11-09 Ipflex Inc. Method for creating parallel processing system
US7209901B2 (en) 1992-12-15 2007-04-24 Sl Patent Holdings Llc C/O Aol Time Warner Method for selling, protecting, and redistributing digital goods
US20070107056A1 (en) * 2005-11-09 2007-05-10 Microsoft Corporation Hardware-aided software code measurement
US20070106682A1 (en) * 2005-11-09 2007-05-10 Microsoft Corporation Independent Computation Environment and Data Protection
US7219222B1 (en) * 2002-01-18 2007-05-15 Ge Medical Technology Services, Inc. Method and system to grant access to software options resident on a medical imaging device
US20070111185A1 (en) * 2005-10-24 2007-05-17 Krebs Andreas S Delta versioning for learning objects
US20070111183A1 (en) * 2005-10-24 2007-05-17 Krebs Andreas S Marking training content for limited access
US20070112687A1 (en) * 2002-07-25 2007-05-17 Read Christopher J System and method for revenue sharing for multimedia sharing in social network
US20070111180A1 (en) * 2005-10-24 2007-05-17 Sperle Robin U Delivery methods for remote learning system courses
US20070122790A1 (en) * 2005-10-24 2007-05-31 Sperle Robin U Monitoring progress of external course
US20070179893A1 (en) * 1992-12-15 2007-08-02 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US20070219918A1 (en) * 2001-01-19 2007-09-20 Jonathan Schull System and method for controlling access to protected information
US20070265980A1 (en) * 2006-05-15 2007-11-15 Mukesh Sehgal Systems and methods for managing, maximizing and clearing contractually based media assets
US20070271597A1 (en) * 2006-05-19 2007-11-22 Microsoft Corporation BIOS Based Secure Execution Environment
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US20080005560A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Independent Computation Environment and Provisioning of Computing Device Functionality
US20080021838A1 (en) * 2006-07-24 2008-01-24 Nokia Corporation Method, apparatus and computer program product for continuously providing a license to a network element via a remote connection
US20080072297A1 (en) * 2006-09-20 2008-03-20 Feitian Technologies Co., Ltd. Method for protecting software based on network
US20080104710A1 (en) * 2006-09-29 2008-05-01 Microsoft Corporation Software utilization grace period
US20080114695A1 (en) * 2006-11-10 2008-05-15 Semantic Components S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20080175384A1 (en) * 2002-04-22 2008-07-24 Shannon Byrne System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US7441192B2 (en) 2001-12-06 2008-10-21 Toyota Motor Sales U.S.A., Inc. Programming, selecting, and playing multimedia files
US20080301771A1 (en) * 2007-06-04 2008-12-04 Takanao Kawai Electronic device, application authentication method, application execution system, and computer readable medium containing executable program instruction
US20090069040A1 (en) * 2003-07-29 2009-03-12 Verisign, Inc. System and method for providing commercial services over a wireless communication network
US20090089864A1 (en) * 2007-09-28 2009-04-02 Nokia Corporation Remote management of telecommunications network element during license expire and renewal period
US20090235366A1 (en) * 2000-12-15 2009-09-17 International Business Machines Corporation Methods, systems, signals and media for encouraging users of computer readable content to register
US7618317B2 (en) * 2001-09-10 2009-11-17 Jackson Mark D Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7779097B2 (en) 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
US7783040B2 (en) 2000-03-08 2010-08-24 Igt Encryption in a secure computerized gaming system
US20100235237A1 (en) * 2007-04-04 2010-09-16 Media Patents, S.L. Methods for distributions of digital files
US20100250400A1 (en) * 2006-11-10 2010-09-30 Media Patents, S.L. Apparatus and methods for the sale of software products
US7818741B1 (en) * 2005-05-17 2010-10-19 Adobe Systems Incorporated Method and system to monitor installation of a software program
US7840175B2 (en) 2005-10-24 2010-11-23 S&P Aktiengesellschaft Method and system for changing learning strategies
US7837556B2 (en) 2001-09-28 2010-11-23 Igt Decoupling of the graphical presentation of a game from the presentation logic
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US20110159472A1 (en) * 2003-07-15 2011-06-30 Hagen Eck Delivery methods for remote learning system courses
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
WO2012064331A1 (en) * 2010-11-12 2012-05-18 Hewlett-Packard Development Company, L.P. Determine authorization of a software product based on a first and second authorization item
US8234161B1 (en) * 2006-10-05 2012-07-31 Victor Sazhin Group Ltd. System and method for internet community building, website popularization and distribution of E-commerce products
US8239274B2 (en) 2007-01-11 2012-08-07 Microsoft Corporation Purchasing of individual features of a software product
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8571462B2 (en) 2005-10-24 2013-10-29 Sap Aktiengesellschaft Method and system for constraining learning strategies
US8644755B2 (en) 2008-09-30 2014-02-04 Sap Ag Method and system for managing learning materials presented offline
US8700535B2 (en) 2003-02-25 2014-04-15 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US8781969B2 (en) 2005-05-20 2014-07-15 Microsoft Corporation Extensible media rights
US8904174B2 (en) 2011-03-22 2014-12-02 International Business Machines Corporation System, method and computer program product for product license management
CN104504324A (en) * 2014-12-03 2015-04-08 深圳市深信服电子科技有限公司 Mobile application certification strengthening method and system
US20150332307A1 (en) * 2003-03-13 2015-11-19 Intel Corporation System And Method For The Distribution Of Software Products
US9224168B2 (en) 2004-11-15 2015-12-29 Microsoft Technology Licensing, Llc Tuning product policy using observed evidence of customer behavior
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4118789A (en) * 1977-06-06 1978-10-03 Allen-Bradley Company Program protection module for programmable controller
EP0297347A2 (en) * 1987-06-26 1989-01-04 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
US5014234A (en) * 1986-08-25 1991-05-07 Ncr Corporation System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software
US5023907A (en) * 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
US5341429A (en) * 1992-12-04 1994-08-23 Testdrive Corporation Transformation of ephemeral material
US5579222A (en) * 1991-11-27 1996-11-26 Intergraph Corporation Distributed license administration system using a local policy server to communicate with a license server and control execution of computer programs
US5673315A (en) * 1994-02-15 1997-09-30 International Business Machines Corporation Method and system for software asset usage detection and management
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
US5715169A (en) * 1994-03-07 1998-02-03 Csk Research Institute Corp. Software rental method and apparatus, and circulating medium therefor
US5745879A (en) * 1991-05-08 1998-04-28 Digital Equipment Corporation Method and system for managing execution of licensed programs
US5758068A (en) * 1995-09-19 1998-05-26 International Business Machines Corporation Method and apparatus for software license management
US5790664A (en) * 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
US5805802A (en) * 1994-12-15 1998-09-08 Marx; Philipp Wilhelm Module for the protection of software
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US5870726A (en) * 1994-05-25 1999-02-09 Lorphelin; Vincent Protected software rental using smart cards
US5915018A (en) * 1996-11-05 1999-06-22 Intel Corporation Key management system for DVD copyright management
US5930357A (en) * 1993-08-30 1999-07-27 Canon Kabushiki Kaisha Method of managing contracts for licensed program use and a management system thereof
US5933497A (en) * 1990-12-14 1999-08-03 International Business Machines Corporation Apparatus and method for controlling access to software
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6009401A (en) * 1998-04-06 1999-12-28 Preview Systems, Inc. Relicensing of electronically purchased software
US6044469A (en) * 1997-08-29 2000-03-28 Preview Software Software publisher or distributor configurable software security mechanism

Patent Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4118789A (en) * 1977-06-06 1978-10-03 Allen-Bradley Company Program protection module for programmable controller
US5014234A (en) * 1986-08-25 1991-05-07 Ncr Corporation System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software
US5155680A (en) * 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
EP0297347A2 (en) * 1987-06-26 1989-01-04 International Business Machines Corporation Method to prevent use of incorrect program version in a computer system
US5023907A (en) * 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
US5933497A (en) * 1990-12-14 1999-08-03 International Business Machines Corporation Apparatus and method for controlling access to software
US5745879A (en) * 1991-05-08 1998-04-28 Digital Equipment Corporation Method and system for managing execution of licensed programs
US5579222A (en) * 1991-11-27 1996-11-26 Intergraph Corporation Distributed license administration system using a local policy server to communicate with a license server and control execution of computer programs
US5341429A (en) * 1992-12-04 1994-08-23 Testdrive Corporation Transformation of ephemeral material
US5930357A (en) * 1993-08-30 1999-07-27 Canon Kabushiki Kaisha Method of managing contracts for licensed program use and a management system thereof
US5673315A (en) * 1994-02-15 1997-09-30 International Business Machines Corporation Method and system for software asset usage detection and management
US5715169A (en) * 1994-03-07 1998-02-03 Csk Research Institute Corp. Software rental method and apparatus, and circulating medium therefor
US5870726A (en) * 1994-05-25 1999-02-09 Lorphelin; Vincent Protected software rental using smart cards
US5805802A (en) * 1994-12-15 1998-09-08 Marx; Philipp Wilhelm Module for the protection of software
US5758068A (en) * 1995-09-19 1998-05-26 International Business Machines Corporation Method and apparatus for software license management
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
US5790664A (en) * 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
US5864620A (en) * 1996-04-24 1999-01-26 Cybersource Corporation Method and system for controlling distribution of software in a multitiered distribution chain
US5915018A (en) * 1996-11-05 1999-06-22 Intel Corporation Key management system for DVD copyright management
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6044469A (en) * 1997-08-29 2000-03-28 Preview Software Software publisher or distributor configurable software security mechanism
US6009401A (en) * 1998-04-06 1999-12-28 Preview Systems, Inc. Relicensing of electronically purchased software

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
B.C. Housel and R.W. Tacker, IBM Technical Disclosure Bulletin, vol. 14, No. 1, pp. 51-53, Jun. 1971.*
Freedman, Beth, "1-2-3 Networker Arrives Late, Receives Lukewarm Reception," PC Week, vol. 4, No. 48, p. 1, Dec. 1987.*
Litwin, Paul, "Making Sense of JET Security," Visual Basic Programmer's Journal, vol. 5, No. 3, p. 66, Mar. 1995.*
National Report on Computers& Health, vol. 12, No. 19, "Data Processing Resources", Sep. 16, 1991. *

Cited By (185)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158954B2 (en) 1992-12-15 2007-01-02 Sl Patent Holdings Llc System and method for processing protected video information
US20050149451A1 (en) * 1992-12-15 2005-07-07 Jonathan Schull Method for tracking software lineages
US20040215571A1 (en) * 1992-12-15 2004-10-28 Jonathan Schull System and method for controlling access to protected information
US7962417B2 (en) 1992-12-15 2011-06-14 Sl Patent Holdings Llc System and method for distributing protected information
US7092908B2 (en) 1992-12-15 2006-08-15 Sl Patent Holdings Llc System and method for selling protected information in an oem context
US7831516B2 (en) 1992-12-15 2010-11-09 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US20100263056A1 (en) * 1992-12-15 2010-10-14 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US8332328B2 (en) 1992-12-15 2012-12-11 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US20050039026A1 (en) * 1992-12-15 2005-02-17 Jonathan Schull System and method for creating and running protected information
US7330837B2 (en) * 1992-12-15 2008-02-12 Sl Patent Holdings Llc Method for adapting a software product to an environment
US20070179893A1 (en) * 1992-12-15 2007-08-02 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US7249103B2 (en) 1992-12-15 2007-07-24 Sl Patent Holdings, Inc. System and method for selectively enabling access based on lineage analysis of digital information
US20070106615A1 (en) * 1992-12-15 2007-05-10 Sl Patent Holdings Llc System and Method for Selectively Changing Parameter Settings Based on Lineage Analysis of Digital Information
US7209901B2 (en) 1992-12-15 2007-04-24 Sl Patent Holdings Llc C/O Aol Time Warner Method for selling, protecting, and redistributing digital goods
US20020049680A1 (en) * 1992-12-15 2002-04-25 Jonathan Schull Method for tracking sofware lineages
US20050021473A1 (en) * 1992-12-15 2005-01-27 Jonathan Schull System and method for operating a licensing server
US8140435B2 (en) 1992-12-15 2012-03-20 Sl Patent Holdings Llc System and method for processing protected text information
US7089212B2 (en) 1992-12-15 2006-08-08 Sl Patent Holdings Llc System and method for controlling access to protected information
US7085743B2 (en) 1992-12-15 2006-08-01 Sl Patent Holdings Llc System and method for creating and running protected information
US7065508B2 (en) 1992-12-15 2006-06-20 Sl Patent Holdings Llc System and method for operating a licensing server
US20050289073A1 (en) * 1992-12-15 2005-12-29 Jonathan Schull System and method for distributing protected information
US20050149449A1 (en) * 1992-12-15 2005-07-07 Jonathan Schull Method for tracking software lineages
US20050060268A1 (en) * 1992-12-15 2005-03-17 Jonathan Schull System and method for processing protected audio information
US20050149444A1 (en) * 1992-12-15 2005-07-07 Jonathan Schull Method for tracking software lineages
US20050102239A1 (en) * 1992-12-15 2005-05-12 Jonathan Schull System and method for selling protected information in an oem context
US20050102238A1 (en) * 1992-12-15 2005-05-12 Jonathan Schull System and method for processing protected text information
US20050060265A1 (en) * 1992-12-15 2005-03-17 Jonathan Schull System and method for processing protected video information
US20030208680A1 (en) * 1996-06-28 2003-11-06 Shannon Byrne System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US7356847B2 (en) 1996-06-28 2008-04-08 Protexis, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US20110010299A1 (en) * 1996-06-28 2011-01-13 Shannon Lee Byrne System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US6859699B2 (en) 1997-05-16 2005-02-22 Snap-On Incorporated Network-based method and system for distributing data
US6792549B2 (en) 1998-06-04 2004-09-14 Z4 Technologies, Inc. Method and apparatus for repeated contact of software end-user
US20040117644A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for reducing unauthorized use of software/digital content including self-activating/self-authenticating software/digital content
US6785825B2 (en) 1998-06-04 2004-08-31 Z4 Technologies, Inc. Method for securing software to decrease software piracy
US6792548B2 (en) 1998-06-04 2004-09-14 Z4 Technologies, Inc. Method for providing repeated contact with software end-user using authorized administrator
US20040117631A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for digital rights management including user/publisher connectivity interface
US6795925B2 (en) 1998-06-04 2004-09-21 Z4 Technologies, Inc. Computer readable storage medium for providing repeated contact with software end-user
US20030110375A1 (en) * 1998-06-04 2003-06-12 Z4 Technologies, Inc. Method for monitoring software using encryption including digital signatures/certificates
US6813717B2 (en) 1998-06-04 2004-11-02 Z4 Technologies, Inc. Method for securing software to reduce unauthorized use
US6813718B2 (en) 1998-06-04 2004-11-02 Z4 Technologies, Inc. Computer readable storage medium for securing software to reduce unauthorized use
US20040225894A1 (en) * 1998-06-04 2004-11-11 Z4 Technologies, Inc. Hardware based method for digital rights management including self activating/self authentication software
US20040117663A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Method for authentication of digital content used or accessed with secondary devices to reduce unauthorized use or distribution
US20040107368A1 (en) * 1998-06-04 2004-06-03 Z4 Technologies, Inc. Method for digital rights management including self activating/self authentication software
US6857078B2 (en) 1998-06-04 2005-02-15 Z4 Technologies, Inc. Method for securing software to increase license compliance
US20040117664A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Apparatus for establishing a connectivity platform for digital rights management
US6986063B2 (en) 1998-06-04 2006-01-10 Z4 Technologies, Inc. Method for monitoring software using encryption including digital signatures/certificates
US20040117628A1 (en) * 1998-06-04 2004-06-17 Z4 Technologies, Inc. Computer readable storage medium for enhancing license compliance of software/digital content including self-activating/self-authenticating software/digital content
US20040158720A1 (en) * 1999-02-09 2004-08-12 Secure Computing Corporation Security framework for supporting kernel-based hypervisors within a computing system
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US7263718B2 (en) 1999-02-09 2007-08-28 Secure Computing Corporation Security framework for supporting kernel-based hypervisors within a computing system
US20040004114A1 (en) * 1999-03-25 2004-01-08 Koninklijke Philips Electronics N.V. Usage dependent ticket to protect copy-protected material
US6817535B2 (en) * 1999-03-25 2004-11-16 Koninklijke Philips Electronics N.V. Usage dependent ticket to protect copy-protected material
US20050192907A1 (en) * 1999-03-27 2005-09-01 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US7680744B2 (en) 1999-03-27 2010-03-16 Microsoft Corporation Method for interdependently validating a digital content package and a corresponding digital license
US7024393B1 (en) * 1999-03-27 2006-04-04 Microsoft Corporation Structural of digital rights management (DRM) system
US6944621B1 (en) 1999-04-21 2005-09-13 Interactual Technologies, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US7711795B2 (en) * 2000-01-20 2010-05-04 Sonic Solutions System, method and article of manufacture for remote control and navigation of local content
US20060195600A1 (en) * 2000-01-20 2006-08-31 Interactual Technologies, Inc. System, method and article of manufacture for remote control and navigation of local content
US6769130B1 (en) 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US6529949B1 (en) * 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US7783040B2 (en) 2000-03-08 2010-08-24 Igt Encryption in a secure computerized gaming system
US20010037403A1 (en) * 2000-04-28 2001-11-01 Masao Mougi Program license key issuing method and issuing system
US20020006803A1 (en) * 2000-05-12 2002-01-17 Dennis Mendiola Method and system for inviting and creating accounts for prospective users of an instant messaging system
US7218921B2 (en) * 2000-05-12 2007-05-15 Chikka Pte Ltd Method and system for inviting and creating accounts for prospective users of an instant messaging system
US6941353B1 (en) * 2000-06-29 2005-09-06 Auran Holdings Pty Ltd E-commerce system and method relating to program objects
US8516473B2 (en) * 2000-06-29 2013-08-20 S.W. Caldwell & Company Llc Converting a limited program object to a complete program object
US7779097B2 (en) 2000-09-07 2010-08-17 Sonic Solutions Methods and systems for use in network management of content
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US20020144153A1 (en) * 2000-09-22 2002-10-03 Levine Richard B. Systems and methods for preventing unauthorized use of digital content
US8261359B2 (en) 2000-09-22 2012-09-04 Sca Ipla Holdings Inc. Systems and methods for preventing unauthorized use of digital content
US6866587B1 (en) 2000-09-25 2005-03-15 Auran Holdings Pty Ltd. Wide area real-time software environment
US20090235366A1 (en) * 2000-12-15 2009-09-17 International Business Machines Corporation Methods, systems, signals and media for encouraging users of computer readable content to register
US8046842B2 (en) * 2000-12-15 2011-10-25 International Business Machines Corporation Methods, systems, signals and media for encouraging users of computer readable content to register
US20020099954A1 (en) * 2001-01-09 2002-07-25 Gabriel Kedma Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
US7260845B2 (en) * 2001-01-09 2007-08-21 Gabriel Kedma Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
USRE43624E1 (en) * 2001-01-09 2012-08-28 Xiloprem Tre Limited Liability Company Sensor for detecting and eliminating inter-process memory breaches in multitasking operating systems
US20070219918A1 (en) * 2001-01-19 2007-09-20 Jonathan Schull System and method for controlling access to protected information
US6931548B2 (en) * 2001-01-25 2005-08-16 Dell Products L.P. System and method for limiting use of a software program with another software program
US20020099951A1 (en) * 2001-01-25 2002-07-25 O'connor Clint H. System and method for limiting use of a software program with another software program
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
US20040030912A1 (en) * 2001-05-09 2004-02-12 Merkle James A. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US8844048B2 (en) 2001-05-09 2014-09-23 Sca Ipla Holdings Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US8117667B2 (en) 2001-05-09 2012-02-14 Sca Ipla Holdings Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US20020197528A1 (en) * 2001-06-26 2002-12-26 Aladdin Knowledge Systems Gmbh & Co. Kg Method for extending an application, to be installed using an installation program, by a function, and a computer software product
EP1271310A1 (en) * 2001-06-26 2003-01-02 Aladdin Knowledge Systems GmbH& Co. KG Method to extend application that is to be installed with an installation program with a function and a computer program product
US7618317B2 (en) * 2001-09-10 2009-11-17 Jackson Mark D Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US7988554B2 (en) 2001-09-28 2011-08-02 Igt Game development architecture that decouples the game logic from the graphics logic
US7837556B2 (en) 2001-09-28 2010-11-23 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US8251807B2 (en) 2001-09-28 2012-08-28 Igt Game development architecture that decouples the game logic from the graphics logic
US20030070160A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Embedding information in software
US7392517B2 (en) 2001-10-04 2008-06-24 International Business Machines Corporation Extracting information from software
US20030070164A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Extracting information from software
WO2003044662A1 (en) * 2001-11-15 2003-05-30 Aladdin Knowledge Systems, Ltd. Incrementally increasing or decreasing the available functionalities of a computer program
US7441192B2 (en) 2001-12-06 2008-10-21 Toyota Motor Sales U.S.A., Inc. Programming, selecting, and playing multimedia files
US7219222B1 (en) * 2002-01-18 2007-05-15 Ge Medical Technology Services, Inc. Method and system to grant access to software options resident on a medical imaging device
WO2003067826A3 (en) * 2002-02-06 2004-07-01 Snap On Tech Inc Network-based method and system for distributing data
CN100341291C (en) * 2002-02-06 2007-10-03 斯耐普昂技术有限公司 Network-based method and system for distributing data
WO2003067826A2 (en) * 2002-02-06 2003-08-14 Snap-On Technologies, Inc Network-based method and system for distributing data
US20030181242A1 (en) * 2002-03-20 2003-09-25 Se-Wai Lee Method and apparatus for sotfware delivery and management
US8216071B2 (en) * 2002-03-20 2012-07-10 Intel Corporation Method and apparatus for software delivery and management
US7770230B2 (en) 2002-04-22 2010-08-03 Arvato Digital Services Canada, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US20080175384A1 (en) * 2002-04-22 2008-07-24 Shannon Byrne System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US20040039916A1 (en) * 2002-05-10 2004-02-26 David Aldis System and method for multi-tiered license management and distribution using networked clearinghouses
US7469232B2 (en) 2002-07-25 2008-12-23 Sony Corporation System and method for revenue sharing for multimedia sharing in social network
US20040054597A1 (en) * 2002-07-25 2004-03-18 Sony Corporation System and method for wireless software download and remote transaction settlement
US20030110094A1 (en) * 2002-07-25 2003-06-12 Sony Corporation System and method for wireless viral software distribution
US7603406B2 (en) 2002-07-25 2009-10-13 Sony Corporation System and method for wireless software download and remote transaction settlement
US20070112687A1 (en) * 2002-07-25 2007-05-17 Read Christopher J System and method for revenue sharing for multimedia sharing in social network
US20040139315A1 (en) * 2002-10-09 2004-07-15 Fujitsu Limited Private data protection distribution method and program
US20040126750A1 (en) * 2002-11-15 2004-07-01 Wolfgang Theilmann Versioning electronic learning objects
US8719171B2 (en) 2003-02-25 2014-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US8700535B2 (en) 2003-02-25 2014-04-15 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US20150332307A1 (en) * 2003-03-13 2015-11-19 Intel Corporation System And Method For The Distribution Of Software Products
US9892393B2 (en) * 2003-03-13 2018-02-13 Intel Corporation System and method for the distribution of software products
US20060253836A1 (en) * 2003-06-27 2006-11-09 Ipflex Inc. Method for creating parallel processing system
US20110159472A1 (en) * 2003-07-15 2011-06-30 Hagen Eck Delivery methods for remote learning system courses
US20090069040A1 (en) * 2003-07-29 2009-03-12 Verisign, Inc. System and method for providing commercial services over a wireless communication network
CN100349086C (en) * 2003-10-31 2007-11-14 Sap股份公司 Secure user-specific application versions
US20050097343A1 (en) * 2003-10-31 2005-05-05 Michael Altenhofen Secure user-specific application versions
EP1550933A1 (en) * 2003-10-31 2005-07-06 Sap Ag Securely providing user-specific application versions
US7836301B2 (en) * 2004-03-10 2010-11-16 Harris Steven M Computer program for securely viewing a file
US20050204130A1 (en) * 2004-03-10 2005-09-15 Harris Steven M. Computer program for securely viewing a file
US20050234827A1 (en) * 2004-04-14 2005-10-20 Rudowsky Michael J System for processing executable applications to be suitable for distribution
US9336359B2 (en) 2004-10-18 2016-05-10 Microsoft Technology Licensing, Llc Device certificate individualization
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US9224168B2 (en) 2004-11-15 2015-12-29 Microsoft Technology Licensing, Llc Tuning product policy using observed evidence of customer behavior
US20060161968A1 (en) * 2004-12-21 2006-07-20 Nintendo Co., Ltd. Method and apparatus for secure delivery and evaluation of prototype software over a network
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US7818741B1 (en) * 2005-05-17 2010-10-19 Adobe Systems Incorporated Method and system to monitor installation of a software program
US8781969B2 (en) 2005-05-20 2014-07-15 Microsoft Corporation Extensible media rights
US20070122790A1 (en) * 2005-10-24 2007-05-31 Sperle Robin U Monitoring progress of external course
US20070111185A1 (en) * 2005-10-24 2007-05-17 Krebs Andreas S Delta versioning for learning objects
US20070111183A1 (en) * 2005-10-24 2007-05-17 Krebs Andreas S Marking training content for limited access
US20070111180A1 (en) * 2005-10-24 2007-05-17 Sperle Robin U Delivery methods for remote learning system courses
US7840175B2 (en) 2005-10-24 2010-11-23 S&P Aktiengesellschaft Method and system for changing learning strategies
US8571462B2 (en) 2005-10-24 2013-10-29 Sap Aktiengesellschaft Method and system for constraining learning strategies
US8121985B2 (en) 2005-10-24 2012-02-21 Sap Aktiengesellschaft Delta versioning for learning objects
US20070106682A1 (en) * 2005-11-09 2007-05-10 Microsoft Corporation Independent Computation Environment and Data Protection
US20070107056A1 (en) * 2005-11-09 2007-05-10 Microsoft Corporation Hardware-aided software code measurement
US7756893B2 (en) 2005-11-09 2010-07-13 Microsoft Corporation Independent computation environment and data protection
US8112798B2 (en) 2005-11-09 2012-02-07 Microsoft Corporation Hardware-aided software code measurement
US20070265980A1 (en) * 2006-05-15 2007-11-15 Mukesh Sehgal Systems and methods for managing, maximizing and clearing contractually based media assets
US20070271597A1 (en) * 2006-05-19 2007-11-22 Microsoft Corporation BIOS Based Secure Execution Environment
US7987512B2 (en) 2006-05-19 2011-07-26 Microsoft Corporation BIOS based secure execution environment
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US20080005560A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Independent Computation Environment and Provisioning of Computing Device Functionality
US10339276B2 (en) * 2006-07-24 2019-07-02 Nokia Technologies Oy Method, apparatus and computer program product for continuously providing a license to a network element via a remote connection
US20080021838A1 (en) * 2006-07-24 2008-01-24 Nokia Corporation Method, apparatus and computer program product for continuously providing a license to a network element via a remote connection
US20080072297A1 (en) * 2006-09-20 2008-03-20 Feitian Technologies Co., Ltd. Method for protecting software based on network
US8321924B2 (en) * 2006-09-20 2012-11-27 Feitian Technologies Co., Ltd. Method for protecting software accessible over a network using a key device
US20080104710A1 (en) * 2006-09-29 2008-05-01 Microsoft Corporation Software utilization grace period
US8234161B1 (en) * 2006-10-05 2012-07-31 Victor Sazhin Group Ltd. System and method for internet community building, website popularization and distribution of E-commerce products
US8645277B2 (en) * 2006-11-10 2014-02-04 Media Patents, S.L. Process for the on-line sale of a software product
US20100153873A1 (en) * 2006-11-10 2010-06-17 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100235263A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20110078044A1 (en) * 2006-11-10 2011-03-31 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100235264A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for the on-line sale of a software product
US20110060689A1 (en) * 2006-11-10 2011-03-10 Media Patents, S.L. Process for implementing a method for the on-line sale of software products and the activation of use licenses through a data network
US20080114695A1 (en) * 2006-11-10 2008-05-15 Semantic Components S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US8645278B2 (en) * 2006-11-10 2014-02-04 Media Patents, S.L. Process for the on-line sale of a software product
US20100235265A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for the on-line sale of a software product
US20100250400A1 (en) * 2006-11-10 2010-09-30 Media Patents, S.L. Apparatus and methods for the sale of software products
US20100235262A1 (en) * 2006-11-10 2010-09-16 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100228647A1 (en) * 2006-11-10 2010-09-09 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US20100153231A1 (en) * 2006-11-10 2010-06-17 Media Patents, S.L. Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process
US8239274B2 (en) 2007-01-11 2012-08-07 Microsoft Corporation Purchasing of individual features of a software product
US20110137738A1 (en) * 2007-04-04 2011-06-09 Media Patents, S.L. Methods for distributions of digital files
US20110137754A1 (en) * 2007-04-04 2011-06-09 Media Patents, S.L. Methods for distributions of digital files
US20100235237A1 (en) * 2007-04-04 2010-09-16 Media Patents, S.L. Methods for distributions of digital files
US20080301771A1 (en) * 2007-06-04 2008-12-04 Takanao Kawai Electronic device, application authentication method, application execution system, and computer readable medium containing executable program instruction
US20090089864A1 (en) * 2007-09-28 2009-04-02 Nokia Corporation Remote management of telecommunications network element during license expire and renewal period
US8644755B2 (en) 2008-09-30 2014-02-04 Sap Ag Method and system for managing learning materials presented offline
US20130219190A1 (en) * 2010-11-12 2013-08-22 Calvin L. Selig Determine Authorization of a Software Product Based on a First and Second Authorization Item
CN103189876A (en) * 2010-11-12 2013-07-03 惠普发展公司,有限责任合伙企业 Determine authorization of a software product based on a first and second authorization item
CN103189876B (en) * 2010-11-12 2016-09-14 惠普发展公司,有限责任合伙企业 The mandate of software product is determined based on the first and second grant item
US9684781B2 (en) * 2010-11-12 2017-06-20 Hewlett Packard Enterprise Development Lp Determine authorization of a software product based on a first and second authorization item
WO2012064331A1 (en) * 2010-11-12 2012-05-18 Hewlett-Packard Development Company, L.P. Determine authorization of a software product based on a first and second authorization item
US8904174B2 (en) 2011-03-22 2014-12-02 International Business Machines Corporation System, method and computer program product for product license management
CN104504324A (en) * 2014-12-03 2015-04-08 深圳市深信服电子科技有限公司 Mobile application certification strengthening method and system
CN104504324B (en) * 2014-12-03 2017-09-29 深信服科技股份有限公司 Mobile solution certification reinforcement means and system

Also Published As

Publication number Publication date
WO1999062017A9 (en) 2000-06-08
WO1999062017A1 (en) 1999-12-02

Similar Documents

Publication Publication Date Title
US6243692B1 (en) Secure electronic software packaging using setup-external unlocking module
US6920567B1 (en) System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
EP1287416B1 (en) System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US7752139B2 (en) Method and system for managing software licenses and reducing unauthorized use of software
US6289452B1 (en) Method and system for delivering digital products electronically
US7584512B2 (en) Restricted software and hardware usage on a computer
US6073124A (en) Method and system for securely incorporating electronic information into an online purchasing application
US20020161709A1 (en) Server-side commerce for deliver-then-pay content delivery
US6169976B1 (en) Method and apparatus for regulating the use of licensed products
US6195432B1 (en) Software distribution system and software utilization scheme for improving security and user convenience
AU750272B2 (en) Method and system of dynamic transformation of encrypted material
US6044469A (en) Software publisher or distributor configurable software security mechanism
US6108420A (en) Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US20020107809A1 (en) System and method for licensing management
US20140172720A1 (en) Method and system for securely incorporating electronic information into an online purchasing application
WO2002054194A2 (en) Adaptive software installation process supporting multiple layers of security-related attributes
JPH10269078A (en) Software distribution method, server device and client device
JP2004500649A (en) How to use software products provided via a network
US20040073789A1 (en) Method for collaborative software licensing of electronically distributed computer programs
WO2006031127A2 (en) Methods and arrangements for distributing computer programs and user licenses in a secure manner
US20030212639A1 (en) Method and system for providing secure authoring services for protected software
EP1174786A2 (en) Method, system, and program for reusing software licenses with new computer hardware
US7197144B1 (en) Method and apparatus to authenticate a user's system to prevent unauthorized use of software products distributed to users
WO2001001225A1 (en) A system, method and article of manufacture for automatically generating a tailored license agreement
Dahlem et al. A Pervasive Application Rights Management Architecture (PARMA) based on ODRL.

Legal Events

Date Code Title Description
AS Assignment

Owner name: PREVIEW SOFTWARE, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FLOYD, MICHEL;HORSTMANN, CAY S.;REEL/FRAME:009347/0832

Effective date: 19980710

AS Assignment

Owner name: PREVIEW SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PREVIEW SOFTWARE, INC.;REEL/FRAME:010871/0287

Effective date: 20000526

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: ALADDIN KNOWLEDGE SYSTEMS, INC., ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PREVIEW SYSTEMS, INC.;REEL/FRAME:012407/0094

Effective date: 20010727

AS Assignment

Owner name: ALADDIN KNOWLEDGE SYSTEMS, LTD, ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PREVIEW SYSTEMS, INC.;REEL/FRAME:013758/0278

Effective date: 20010717

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERA

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:ALLADDIN KNOWLEDGE SYSTEMS LTD.;REEL/FRAME:024892/0677

Effective date: 20100826

AS Assignment

Owner name: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERA

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:ALLADDIN KNOWLEDGE SYSTEMS LTD.;REEL/FRAME:024900/0702

Effective date: 20100826

AS Assignment

Owner name: SAFENET DATA SECURITY (ISRAEL) LTD., ISRAEL

Free format text: CHANGE OF NAME;ASSIGNOR:ALADDIN KNOWLEDGE SYSTEMS LTD.;REEL/FRAME:025848/0923

Effective date: 20101119

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: ALADDIN KNOWLEDGE SYSTEMS LTD, MARYLAND

Free format text: SECOND LIEN PATENT SECURITY AGREEMENT RELEASE;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT;REEL/FRAME:032437/0341

Effective date: 20140305

Owner name: ALADDIN KNOWLEDGE SYSTEMS LTD, MARYLAND

Free format text: FIRST LIEN PATENT SECURITY AGREEMENT RELEASE;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL AGENT;REEL/FRAME:032437/0257

Effective date: 20140305