WO1999063707A1 - Method of controlling usage of software components - Google Patents
Method of controlling usage of software components Download PDFInfo
- Publication number
- WO1999063707A1 WO1999063707A1 PCT/US1999/011106 US9911106W WO9963707A1 WO 1999063707 A1 WO1999063707 A1 WO 1999063707A1 US 9911106 W US9911106 W US 9911106W WO 9963707 A1 WO9963707 A1 WO 9963707A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- component
- password
- application program
- identifier
- key
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 59
- 238000010586 diagram Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 238000013478 data encryption standard Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Definitions
- the present invention relates generally to object oriented programming and object security and, more specifically, to a method for controlling the use of software components with an application program in a computer system.
- a software component is a portion of software that is intended to inter-operate with other software, such as an application program.
- the software componet is developed independently from the application program. Developers want to provide greater flexibility with their application programs by structuring portions or features of the software as separate components. This allows the end user to license only those features that the end user desires.
- ActiveX controls are a subset of component object module (COM) technology developed by Microsoft Corporation. COM technology may be written in one of several object oriented progr__mming languages such as C++, Java, and Visual Basic, for example. ActiveX controls are typically linked or "plugged in" to a portion of an application program called a control container. An ActiveX control registers itself for use by an application program running on a computer system. In systems executing versions of the Windows operating system, commercially available from Microsoft Corporation, a database called a registry is used to store registration information for authorized components. The registry provides a way for a component, such as an ActiveX control, to advise the application program about the component's functionality. The registry typically includes information which identifies particular components, such as global unique identifiers (GUIDs), category identifiers (CATIDs), and class identifiers (CLSIDs).
- GUIDs global unique identifiers
- CAIDs category identifiers
- CLSIDs class identifiers
- Access to a component may be obtained through a source code interface definition called a layer class.
- the layer class provides an interface between the application program and the component (which may be an ActiveX control, for example).
- a GUID is typically "hard-coded” or preset into a given layer class.
- Additional components may be coupled or "plugged in” to an application program that may already have one or more components.
- a plug-in component is said to be "source compatible” if a new version of the component works unchanged in an application program, but the application program must typically be rebuilt. That is, the application program may be recompiled and re-linked before the application program executes with the functionality provided by the new component.
- an application program may be partitioned into components at the source code level.
- the components may be combined with the application program in various ways. This results in a different "build" or release of the software for each new combination.
- DLL dynamic link library
- DLL files are typically not registered by an end user and may easily be copied from one computer system to another.
- an application program uses component object modules (COM) or a similar technology to register the components, as discussed above for ActiveX controls.
- COM component object modules
- these objects may also easily be copied from one computer system to another.
- An embodiment of the present invention is a method of generating a password for controlling usage of a software component by an application program.
- a first key is created from an identifier of the application program, a second key is created from an identifier of the component, and the password is created from the first and second keys.
- Another embodiment of the present invention is a method of controlling the usage of a software component with an application program in a computer system.
- the method includes obtaining an identifier of the application program and generating a first password from the application program identifier and an identifier of the component.
- the method also includes registering the component with the application program, generating, by the application program, a second password from the application program identifier and the component identifier, comparing the first password and the second password; and allowing use of the component with the application program on the computer system when the first password matches the second password.
- Figure 1 is a block diagram of an operating environment of an embodiment of the present invention
- Figure 2 is a diagram illustrating a sample computer system suitable to be programmed with embodiments of the methods for controlling usage of software components in accordance with the present invention
- Figure 3 is a flow diagram for creating a component password according to an embodiment of the present invention.
- Figure 4 is a diagram illustrating a combination of data items used in producing a component password in accordance with an embodiment of the present invention.
- Figure 5 is a flow diagram illustrating registering and authenticating a component according to embodiments of the present invention.
- An embodiment of the present invention is a method of controlling the use of software components in a computer system by protecting them with encrypted passwords. This allows software developers to independently market software components for use in a variety of application program configurations.
- application programs may be divided into components and may provide a secure capability for "plug-in" or "snap-in" of the components. Preferably, all of these components are licensed by the end-user prior to distribution. The components may be distributed and licensed separately or collectively. Embodiments of the present invention ensure that a component functions only with the application program that has the license number that was provided when the component was licensed.
- the component will not be snapped in. In this case, the component will not be recognized by the application program and will not appear to the end user as a feature of the application program.
- FIG. 1 is a block diagram of an operating environment of an embodiment of the present invention.
- An end user's computer system 10 executes an application program 12, previously licensed from a software developer (not shown).
- the end user's computer system may be a personal computer (PC), engineering workstation, minicomputer, network computer, or other computing device.
- the application program is representative of any computer software written in any progranrming language and licensed by a user to perform desired functions on the user's computer system.
- the programming language and object oriented technology used may be one or more of C++, Java, Visual Basic, COM, Distributed COM (DCOM), ActiveX, and the like.
- Application program 12 may include one or more components, labeled 14, 16, and 18.
- Each component provides the application program with some desired functionality once the component is communicatively coupled to the application program. This coupling is also known as performing a "snap-in” or "plug-in” of the component.
- the components may be distributed and licensed to the end user along with the application program, or individual components may be subsequently communicated to the end user's computer system for use with the application program as needed.
- the end user initiates execution of application program 12 by computer system 10 to perform the functions provided by the application program and the linked components 14, 16, and 18.
- Application program 12 comprises a registry 20.
- the registry stores information regarding the application program and components that have been snapped in for use with the application program.
- the components are ActiveX controls and the registry comprises at least the global unique identifiers (GUIDs) of the ActiveX controls.
- GUIDs global unique identifiers
- DLLs dynamic linked libraries
- EXEs specialized executable programs
- Application program 12 also comprises application security control function 22, which operates to ensure that in this embodiment only licensed components are used with the application program. Additional information regarding application security control is provided in further detail with reference to Figure 5 below.
- controller computer system 24 Distribution and security control of the application program and components may be supported by controller computer system 24.
- the controller computer system may store at least one copy of each of the components and the application program.
- the components and the application program may also be stored on conventional storage media (not shown) coupled to the computer system or otherwise writable by the computer system, such as compact disk read only memories (CD-ROMs), floppy disks, digital versatile disks (DVDs), magnetic tapes, and the like.
- CD-ROMs compact disk read only memories
- DVDs digital versatile disks
- the number of components stored in the controller computer system and available for licensing by the end user computer system may be different than the number of components shown in application program 12 of Figure 1.
- the controller also includes controller security control 26 according to embodiments of the present invention, which operates in conjunction with application security control 22 resident in the application program 12, and the components 14, 16, and 18, to inhibit unauthorized use of the components.
- the controller 24 may be communicatively coupled to the end user computer system 10 by a network 28, such the Internet, by well-known techniques.
- a network 28 such the Internet
- licensed application programs and components may be transmitted to the end user's computer system over the network.
- the controller may be operated in a "stand alone" mode, whereby it is not in communication with the network.
- application programs and components are embodied in any one of several well known storage media and distributed to end users through commercial channels.
- the controller computer system may be managed by a developer of the application program and components, or other distributor, original equipment manufacturer (OEM), or vendor.
- OEM original equipment manufacturer
- FIG. 2 is a diagram illustrating a sample computer system suitable to be programmed with embodiments of the method for controlling usage of software components in accordance with the present invention.
- Sample computer system 100 may be used, for example, to execute the processing for the methods described herein, both for the end user's computer system and the controller computer system.
- Sample computer system 100 is representative of computer systems based on the PENTIUM®, PENTIUM® Pro, and PENTIUM® II microprocessors available from Intel Corporation, although other computer systems (including personal computers (PCs) having other microprocessors, engineering workstations and the like) may also be used.
- Sample computer system 100 includes microprocessor 102 and cache memory 104 coupled to each other through processor bus 105.
- Sample computer system 100 also includes high performance I/O bus 108 and standard I/O bus 118.
- Processor bus 105 and high performance I/O bus 108 are bridged by host bridge 106, whereas high performance I/O bus 108 and standard I/O bus 118 are bridged by I/O bus bridge 110.
- Coupled to high performance I/O bus 108 are main memory 112 and video memory 114.
- Coupled to video memory 114 is video display 116.
- Coupled to standard I/O bus 118 are mass storage 120, and keyboard and pointing devices 122.
- mass storage 120 may be used to provide permanent storage for the executable instructions for embodiments of methods for controlling usage of software components in accordance with the present invention
- main memory 112 is used to temporarily store the executable instructions of embodiments of the methods for controlling usage of software components in accordance with the present invention during execution by microprocessor 102.
- FIG. 3 is a flow diagram for creating a component password according to an embodiment of the present invention.
- an end user licenses an application program and obtains an associated unique identifier, such as an application license number, from the developer or vendor of the application program.
- the application license number may be given to the end user only after the end user has agreed to the terms of a software license and completed payment obligations.
- the application program is obtained from the controller computer system via a network (e.g., the Internet).
- controller security control creates an encrypted application key, using at least a portion of the application license number and a secret encryption key as input data.
- the application key is encrypted according to the well known Data Encryption Standard (DES) technique, although other encryption techniques may also be employed.
- the secret encryption key comprises a predetermined data value known by the controller security control operation of the controller computer system, but it is not known by any end user.
- the secret encryption key is a private key.
- the encrypted application key is associated with the specific copy of the application program that the requesting end user has previously been authorized to use.
- the invention is not restricted in scope in this respect.
- the controller security control operation creates an encrypted component key, using an unique identifier for the requested component and the secret encryption key as input data.
- the component key may be encrypted according to the well known DES technique, although other encryption techniques may also be employed.
- GUID global unique identifier
- the controller security control creates an encrypted component password, by combining the encrypted application key and the encrypted component key and encrypting the resulting combination.
- the DES encryption technique is used, although other encryption techniques may also be employed.
- FIG. 4 is a block diagram illustrating a combination of data items used in producing a component password in accordance with an embodiment of the present invention.
- the application license number 230 provided by the end user is encrypted using the secret encryption key 232 to produce application key 234.
- component identifier (ID) 236 is encrypted with the secret encryption key 232 to produce component key 238.
- the application key and the component key are then encrypted with the secret encryption key to produce the component password 240.
- different encryption keys may be used to generate the application key, the component key, and the component password.
- generation of the component password may be simplified.
- at least a portion of the application license number 230 may be combined with the component ID 236 to form the component password.
- the controller computer system creates the component password by encrypting all or part of the application license number 230 by using the unique component ID 236 as the key instead of encryption key 232. Any one of a variety of other combination techniques may also be employed within the scope of the present invention.
- the component password may then be returned by the controller security control operation to the end user at block 210 of Figure 3. In some embodiments, this communication may be conditioned upon completion of a payment obligation.
- the requested component may then be transferred to the end user computer system by any available technique (such as via the Internet, for example).
- the component password may be transferred to the end user as a file embedded in the requested component, for example. In this way, the end user does not need to enter the component password into the end user computer system, nor does the end user even have to know the component password.
- FIG. 5 is a flow diagram illustrating registering and authenticating a component according to embodiments of the present invention. These operations may be performed by application security control 22, which may be part of application program 12 of Figure 1, although the invention is not limited in scope in this respect.
- the end user initiates registration of a component with the application program.
- the component may be in a compressed or "zipped” format, although the invention is not limited in scope in this respect. The end user then decompresses or "unzips" the zipped component.
- the component may be in the form of a self-extracting zip file (which decompressed itself), or the end user may execute an "unzip" program to decompress the component.
- the end user may run a set-up or install procedure to install the components on the end user computer system, although the invention is not limited in scope in this respect. In embodiments of the present invention, this involves a snap-in or plug-in operation (such as a procedure call to the Active X snap-in layer class, for example).
- the component as part of the snap-in operation, obtains the component password and stores it in the registry.
- the component password is placed in the registry at registration time, not at the execution time of the application program, although the invention is not limited in scope in this respect.
- the component also stores the component's global unique identifier (GUID) in the registry in this embodiment.
- GUID global unique identifier
- the component password if the component password is stored in a text or other file previously transferred to the end user computer system with the component, the component reads the file to obtain the component password.
- the end-user may be prompted to enter the component password via conventional computer system input techniques (e.g., a user interface dialog window). In either case, if a component password is not obtained, the component may signal an error to the end user and cease operating. Alternatively, the component may be allowed to operate without a valid component password. Likewise, in other embodiments other actions may result.
- the application program attempts to snap-in the component at block 264.
- the application program runs, it snaps in registered components. This is different than the registration process, since a component in this particular embodiment is first registered before it is snapped-in to an application program.
- the application program may perform the snap-in operations at application start-up time, or it may check for new components "on the fly" while the application program is executing.
- the application program reads the component password for the component from the registry. If the component password for the component is not in the registry, then an error signal may be presented to the end user and snap-in processing may be ended.
- the component password is identified in the registry as being associated with the component by the component's global unique identifier (GUID).
- GUID global unique identifier
- the application program uses its license number (embedded within the application program) and the unique identifier of the component (obtained from registry) to generate a password using the technique discussed above with reference to Figures 3 and 4 and the secret encryption key.
- the secret encryption key may be "hard-coded" or pre-set in the application program by the software developer, although the invention is not limited in scope in this respect.
- the application program compares the password it generated with the component password retrieved from the registry. If the component password matches the generated password, then the application program completes the snap-in process and allows use of the component at block 272. If the component password does not match the generated password, the component is not registered to operate with the application program. In this case, the usage error is handled at block 274. Error handling may include removing the component from the end user computer system and deleting the component information from the registry, and sending a message to the end user requesting the user to license the component.
- Embodiments of the present invention allow software developers to structure portions of application programs as components and to market the application programs and components in a variety of ways.
- the application program and all associated snap-in components may be marketed and licensed together, in which case the component password may be generated at the time of installation of the application program.
- all components may be authorized and operate immediately after installation.
- the application program initially has no snap-in components and any or all of the components may be distributed and licensed separately. The only change between the application program versions in these cases is the embedded install program. With embodiments of the present invention, there may be no other impact to application program testing or development.
- Embodiments of the present invention also reduce the possibilities that illegal copies may be made of a software developer's components.
- an end-user may have many client system applications with the same license number, and perhaps many more client system applications, each with a different license number.
- Embodiments of the present invention produce the result that users should purchase a component for each license number they own. Without this mechanism, they might purchase one component and install it on all of their computer systems, resulting in the loss of revenue for the software developer.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002333613A CA2333613C (en) | 1998-06-05 | 1999-05-19 | Method of controlling usage of software components |
DE69927022T DE69927022T2 (en) | 1998-06-05 | 1999-05-19 | METHOD FOR CONTROLLING THE USE OF SOFTWARE COMPONENTS |
EP99923231A EP1084549B1 (en) | 1998-06-05 | 1999-05-19 | Method of controlling usage of software components |
AU40054/99A AU4005499A (en) | 1998-06-05 | 1999-05-19 | Method of controlling usage of software components |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/092,632 | 1998-06-05 | ||
US09/092,632 US6363486B1 (en) | 1998-06-05 | 1998-06-05 | Method of controlling usage of software components |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1999063707A1 true WO1999063707A1 (en) | 1999-12-09 |
WO1999063707A8 WO1999063707A8 (en) | 2000-03-16 |
Family
ID=22234251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/011106 WO1999063707A1 (en) | 1998-06-05 | 1999-05-19 | Method of controlling usage of software components |
Country Status (6)
Country | Link |
---|---|
US (1) | US6363486B1 (en) |
EP (1) | EP1084549B1 (en) |
AU (1) | AU4005499A (en) |
CA (1) | CA2333613C (en) |
DE (1) | DE69927022T2 (en) |
WO (1) | WO1999063707A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456200C (en) * | 2002-02-22 | 2009-01-28 | 英特尔公司 | Multi-token seal and unseal |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
US20040117631A1 (en) * | 1998-06-04 | 2004-06-17 | Z4 Technologies, Inc. | Method for digital rights management including user/publisher connectivity interface |
US20040107368A1 (en) * | 1998-06-04 | 2004-06-03 | Z4 Technologies, Inc. | Method for digital rights management including self activating/self authentication software |
US6044471A (en) | 1998-06-04 | 2000-03-28 | Z4 Technologies, Inc. | Method and apparatus for securing software to reduce unauthorized use |
US6986063B2 (en) * | 1998-06-04 | 2006-01-10 | Z4 Technologies, Inc. | Method for monitoring software using encryption including digital signatures/certificates |
US7194092B1 (en) * | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US7139915B2 (en) * | 1998-10-26 | 2006-11-21 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US7174457B1 (en) | 1999-03-10 | 2007-02-06 | Microsoft Corporation | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6813640B1 (en) * | 1998-12-08 | 2004-11-02 | Macrovision Corporation | System and method for controlling the editing by user action of digital objects created in a document server application |
US20030208641A1 (en) * | 1999-03-09 | 2003-11-06 | Wesemann Darren L. | Software components as virtual processors |
US6651171B1 (en) | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US6874087B1 (en) * | 1999-07-13 | 2005-03-29 | International Business Machines Corporation | Integrity checking an executable module and associated protected service provider module |
US7430670B1 (en) | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
US7865442B1 (en) * | 1999-10-15 | 2011-01-04 | Invensys Systems, Inc. | Distributing and billing software according to customer use of program modules |
US6490723B1 (en) * | 1999-11-30 | 2002-12-03 | Dell Products L.P. | Method and system for installing files in a computing system |
US6757824B1 (en) | 1999-12-10 | 2004-06-29 | Microsoft Corporation | Client-side boot domains and boot rules |
US20050015608A1 (en) | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US6879988B2 (en) | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US8230482B2 (en) * | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6386894B2 (en) * | 2000-04-28 | 2002-05-14 | Texas Instruments Incorporated | Versatile interconnection scheme for beverage quality and control sensors |
US7076468B2 (en) * | 2000-04-28 | 2006-07-11 | Hillegass James C | Method and system for licensing digital works |
US7024696B1 (en) | 2000-06-14 | 2006-04-04 | Reuben Bahar | Method and system for prevention of piracy of a given software application via a communications network |
AU7593601A (en) * | 2000-07-14 | 2002-01-30 | Atabok Inc | Controlling and managing digital assets |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
US20030046668A1 (en) * | 2001-01-29 | 2003-03-06 | Matt Bowen | System, method and article of manufacture for distributing IP cores |
US7062650B2 (en) * | 2001-09-28 | 2006-06-13 | Intel Corporation | System and method for verifying integrity of system with multiple components |
JP2003122537A (en) * | 2001-10-15 | 2003-04-25 | Minolta Co Ltd | License management device and management system |
US7159240B2 (en) | 2001-11-16 | 2007-01-02 | Microsoft Corporation | Operating system upgrades in a trusted operating system environment |
US7137004B2 (en) * | 2001-11-16 | 2006-11-14 | Microsoft Corporation | Manifest-based trusted agent management in a trusted operating system environment |
US7243230B2 (en) | 2001-11-16 | 2007-07-10 | Microsoft Corporation | Transferring application secrets in a trusted operating system environment |
US7313705B2 (en) * | 2002-01-22 | 2007-12-25 | Texas Instrument Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
CA2383825A1 (en) * | 2002-04-24 | 2003-10-24 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system |
CA2384181A1 (en) * | 2002-04-29 | 2003-10-29 | Ibm Canada Limited-Ibm Canada Limitee | System and method for manipulating a registry |
US20040215534A1 (en) | 2003-04-25 | 2004-10-28 | Apple Computer, Inc. | Method and system for network-based allowance control |
EP1639440A4 (en) | 2003-04-25 | 2009-03-11 | Apple Inc | Graphical user interface for browsing, searching and presenting media items |
US20050071656A1 (en) * | 2003-09-25 | 2005-03-31 | Klein Dean A. | Secure processor-based system and method |
US7681046B1 (en) | 2003-09-26 | 2010-03-16 | Andrew Morgan | System with secure cryptographic capabilities using a hardware specific digital secret |
US7844548B2 (en) * | 2003-10-15 | 2010-11-30 | Apple Inc. | Techniques and systems for electronic submission of media for network-based distribution |
US7694151B1 (en) | 2003-11-20 | 2010-04-06 | Johnson Richard C | Architecture, system, and method for operating on encrypted and/or hidden information |
US20050125254A1 (en) * | 2003-12-03 | 2005-06-09 | Roy Schoenberg | Key maintenance method and system |
US7392523B1 (en) * | 2004-06-01 | 2008-06-24 | Symantec Corporation | Systems and methods for distributing objects |
TWI241818B (en) * | 2004-06-10 | 2005-10-11 | Ind Tech Res Inst | Application-based data encryption system and method thereof |
DE102005014273B4 (en) * | 2005-03-24 | 2012-04-05 | Dspace Digital Signal Processing And Control Engineering Gmbh | Comparison of interfaces between software components |
US20070016770A1 (en) * | 2005-07-18 | 2007-01-18 | Dell Products L.P. | System and method for managing the initiation of software programs in an information handling system |
US7496727B1 (en) | 2005-12-06 | 2009-02-24 | Transmeta Corporation | Secure memory access system and method |
US20070265969A1 (en) * | 2006-05-15 | 2007-11-15 | Apple Computer, Inc. | Computerized management of media distribution agreements |
US7962634B2 (en) | 2006-05-15 | 2011-06-14 | Apple Inc. | Submission of metadata content and media content to a media distribution system |
US7827162B2 (en) * | 2006-05-15 | 2010-11-02 | Apple Inc. | Media package format for submission to a media distribution system |
US8015237B2 (en) | 2006-05-15 | 2011-09-06 | Apple Inc. | Processing of metadata content and media content received by a media distribution system |
US7996787B2 (en) * | 2007-02-06 | 2011-08-09 | Cptn Holdings Llc | Plug-in architecture for window management and desktop compositing effects |
WO2009065135A1 (en) * | 2007-11-17 | 2009-05-22 | Uniloc Corporation | System and method for adjustable licensing of digital products |
US9076176B2 (en) | 2008-05-05 | 2015-07-07 | Apple Inc. | Electronic submission of application programs for network-based distribution |
US9342287B2 (en) | 2008-05-05 | 2016-05-17 | Apple Inc. | Software program ratings |
US10255580B2 (en) | 2008-05-05 | 2019-04-09 | Apple Inc. | Network-based distribution of application products |
US20090307682A1 (en) * | 2008-06-08 | 2009-12-10 | Sam Gharabally | Techniques for Acquiring Updates for Application Programs |
JP5599557B2 (en) * | 2008-08-29 | 2014-10-01 | 株式会社リコー | Information processing apparatus, license determination method, program, and recording medium |
US20100088690A1 (en) * | 2008-10-03 | 2010-04-08 | Microsoft Corporation | Replacing the identity of an activex control |
US20100235889A1 (en) * | 2009-03-16 | 2010-09-16 | Michael Kuohao Chu | Application products with in-application subsequent feature access using network-based distribution system |
US20100235254A1 (en) * | 2009-03-16 | 2010-09-16 | Payam Mirrashidi | Application Products with In-Application Subsequent Feature Access Using Network-Based Distribution System |
US20100299219A1 (en) * | 2009-05-25 | 2010-11-25 | Cortes Ricardo D | Configuration and Management of Add-ons to Digital Application Programs for Network-Based Distribution |
US9633183B2 (en) | 2009-06-19 | 2017-04-25 | Uniloc Luxembourg S.A. | Modular software protection |
US20100325431A1 (en) * | 2009-06-19 | 2010-12-23 | Joseph Martin Mordetsky | Feature-Specific Keys for Executable Code |
US8423473B2 (en) * | 2009-06-19 | 2013-04-16 | Uniloc Luxembourg S. A. | Systems and methods for game activation |
US20100324983A1 (en) * | 2009-06-22 | 2010-12-23 | Etchegoyen Craig S | System and Method for Media Distribution |
US9729609B2 (en) * | 2009-08-07 | 2017-08-08 | Apple Inc. | Automatic transport discovery for media submission |
US8935217B2 (en) * | 2009-09-08 | 2015-01-13 | Apple Inc. | Digital asset validation prior to submission for network-based distribution |
US8549314B2 (en) | 2010-04-29 | 2013-10-01 | King Saud University | Password generation methods and systems |
AU2011334594A1 (en) * | 2010-11-22 | 2013-05-30 | Lockerteck Pty Ltd | A system and method for providing an application lock |
EP3518128B1 (en) | 2011-03-30 | 2021-04-28 | Irdeto B.V. | Enabling a software application to be executed on a hardware device |
US9203624B2 (en) | 2012-06-04 | 2015-12-01 | Apple Inc. | Authentication and notification heuristics |
US8990188B2 (en) | 2012-11-30 | 2015-03-24 | Apple Inc. | Managed assessment of submitted digital content |
US9087341B2 (en) | 2013-01-11 | 2015-07-21 | Apple Inc. | Migration of feedback data to equivalent digital assets |
US9912555B2 (en) | 2013-03-15 | 2018-03-06 | A10 Networks, Inc. | System and method of updating modules for application or content identification |
US9722918B2 (en) | 2013-03-15 | 2017-08-01 | A10 Networks, Inc. | System and method for customizing the identification of application or content type |
US9838425B2 (en) | 2013-04-25 | 2017-12-05 | A10 Networks, Inc. | Systems and methods for network access control |
US9294503B2 (en) | 2013-08-26 | 2016-03-22 | A10 Networks, Inc. | Health monitor based distributed denial of service attack mitigation |
US9756071B1 (en) | 2014-09-16 | 2017-09-05 | A10 Networks, Inc. | DNS denial of service attack protection |
US9537886B1 (en) | 2014-10-23 | 2017-01-03 | A10 Networks, Inc. | Flagging security threats in web service requests |
WO2016118216A2 (en) | 2014-11-06 | 2016-07-28 | Intertrust Technologies Corporation | Secure application distribution systems and methods |
US9621575B1 (en) | 2014-12-29 | 2017-04-11 | A10 Networks, Inc. | Context aware threat protection |
US9584318B1 (en) | 2014-12-30 | 2017-02-28 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack defense |
US9900343B1 (en) | 2015-01-05 | 2018-02-20 | A10 Networks, Inc. | Distributed denial of service cellular signaling |
US9848013B1 (en) | 2015-02-05 | 2017-12-19 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack detection |
US10063591B1 (en) | 2015-02-14 | 2018-08-28 | A10 Networks, Inc. | Implementing and optimizing secure socket layer intercept |
US9787581B2 (en) | 2015-09-21 | 2017-10-10 | A10 Networks, Inc. | Secure data flow open information analytics |
US10469594B2 (en) | 2015-12-08 | 2019-11-05 | A10 Networks, Inc. | Implementation of secure socket layer intercept |
US10505984B2 (en) | 2015-12-08 | 2019-12-10 | A10 Networks, Inc. | Exchange of control information between secure socket layer gateways |
US10116634B2 (en) | 2016-06-28 | 2018-10-30 | A10 Networks, Inc. | Intercepting secure session upon receipt of untrusted certificate |
US10158666B2 (en) | 2016-07-26 | 2018-12-18 | A10 Networks, Inc. | Mitigating TCP SYN DDoS attacks using TCP reset |
US12045375B2 (en) | 2020-08-24 | 2024-07-23 | Analog Devices, Inc. | Techniques of tracking software usage on a remote device |
US20230385120A1 (en) * | 2022-05-27 | 2023-11-30 | Cisco Technology, Inc. | Admission control based on universal references for hardware and/or software configurations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5708709A (en) * | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
US5790663A (en) * | 1996-03-28 | 1998-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for software access to a microprocessor serial number |
US5819091A (en) * | 1994-12-22 | 1998-10-06 | Arendt; James Wendell | User level control of degree of client-side processing |
US5818936A (en) * | 1996-03-15 | 1998-10-06 | Novell, Inc. | System and method for automically authenticating a user in a distributed network system |
US5892905A (en) * | 1996-12-23 | 1999-04-06 | International Business Machines Corporation | Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4471163A (en) * | 1981-10-05 | 1984-09-11 | Donald Thomas C | Software protection system |
US5287408A (en) * | 1992-08-31 | 1994-02-15 | Autodesk, Inc. | Apparatus and method for serializing and validating copies of computer software |
IL110891A (en) * | 1993-09-14 | 1999-03-12 | Spyrus | System and method for data access control |
US5542045A (en) * | 1993-10-15 | 1996-07-30 | Software Security, Inc. | Method for interposing a security function in a computer program |
US5394469A (en) * | 1994-02-18 | 1995-02-28 | Infosafe Systems, Inc. | Method and apparatus for retrieving secure information from mass storage media |
US5652793A (en) * | 1995-05-08 | 1997-07-29 | Nvidia Corporation | Method and apparatus for authenticating the use of software |
US5721779A (en) * | 1995-08-28 | 1998-02-24 | Funk Software, Inc. | Apparatus and methods for verifying the identity of a party |
US5694469A (en) * | 1995-11-17 | 1997-12-02 | Le Rue; Charles | Method and system for disseminating stored programs and data |
US5887065A (en) * | 1996-03-22 | 1999-03-23 | Activcard | System and method for user authentication having clock synchronization |
US5774544A (en) * | 1996-03-28 | 1998-06-30 | Advanced Micro Devices, Inc. | Method an apparatus for encrypting and decrypting microprocessor serial numbers |
US5784460A (en) * | 1996-10-10 | 1998-07-21 | Protocall Technolgies, Inc. | Secured electronic information delivery system having a three-tier structure |
US6073122A (en) * | 1997-08-15 | 2000-06-06 | Lucent Technologies Inc. | Cryptographic method and apparatus for restricting access to transmitted programming content using extended headers |
-
1998
- 1998-06-05 US US09/092,632 patent/US6363486B1/en not_active Expired - Lifetime
-
1999
- 1999-05-19 WO PCT/US1999/011106 patent/WO1999063707A1/en active IP Right Grant
- 1999-05-19 EP EP99923231A patent/EP1084549B1/en not_active Expired - Lifetime
- 1999-05-19 CA CA002333613A patent/CA2333613C/en not_active Expired - Fee Related
- 1999-05-19 AU AU40054/99A patent/AU4005499A/en not_active Abandoned
- 1999-05-19 DE DE69927022T patent/DE69927022T2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819091A (en) * | 1994-12-22 | 1998-10-06 | Arendt; James Wendell | User level control of degree of client-side processing |
US5708709A (en) * | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
US5818936A (en) * | 1996-03-15 | 1998-10-06 | Novell, Inc. | System and method for automically authenticating a user in a distributed network system |
US5790663A (en) * | 1996-03-28 | 1998-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for software access to a microprocessor serial number |
US5892905A (en) * | 1996-12-23 | 1999-04-06 | International Business Machines Corporation | Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web |
Non-Patent Citations (1)
Title |
---|
See also references of EP1084549A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456200C (en) * | 2002-02-22 | 2009-01-28 | 英特尔公司 | Multi-token seal and unseal |
Also Published As
Publication number | Publication date |
---|---|
US6363486B1 (en) | 2002-03-26 |
EP1084549A1 (en) | 2001-03-21 |
DE69927022D1 (en) | 2005-10-06 |
WO1999063707A8 (en) | 2000-03-16 |
CA2333613A1 (en) | 1999-12-09 |
CA2333613C (en) | 2005-02-01 |
AU4005499A (en) | 1999-12-20 |
EP1084549B1 (en) | 2005-08-31 |
DE69927022T2 (en) | 2006-06-29 |
EP1084549A4 (en) | 2002-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6363486B1 (en) | Method of controlling usage of software components | |
US6704872B1 (en) | Processor with a function to prevent illegal execution of a program, an instruction executed by a processor and a method of preventing illegal execution of a program | |
US6449720B1 (en) | Public cryptographic control unit and system therefor | |
US6460140B1 (en) | System for controlling the use of licensed software | |
US8719595B2 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
US4866769A (en) | Hardware assist for protecting PC software | |
US6857067B2 (en) | System and method for preventing unauthorized access to electronic data | |
US5138712A (en) | Apparatus and method for licensing software on a network of computers | |
US6651171B1 (en) | Secure execution of program code | |
EP0875814B1 (en) | Information processing apparatus and method and recording medium for executing programs having been encrypted using public keys | |
US6775779B1 (en) | Hierarchical trusted code for content protection in computers | |
US6243813B1 (en) | Method of detaching a security device from a personal computer | |
US20020116632A1 (en) | Tamper-resistant computer system | |
JPH10171648A (en) | Application authenticating device | |
WO1998009209B1 (en) | Systems and methods for secure transaction management and electronic rights protection | |
JPH10313309A (en) | System for authenticating legitimate execution of prescribed service class by application under framework of international cryptology | |
KR20010049886A (en) | Virus resistant and hardware independent method of flashing system bios | |
KR20090048581A (en) | Portable mass storage with virtual machine activation | |
US7290137B2 (en) | Information processing apparatus, executable module generating method, and storage medium | |
JP4017149B2 (en) | Processor with function for preventing unauthorized execution of programs | |
JPH0844553A (en) | System for software having open part and secret part provided for plural users | |
JP3289656B2 (en) | Program execution control method | |
WO2001095073A1 (en) | A method relating to copy protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: C1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C1 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
CFP | Corrected version of a pamphlet front page |
Free format text: REVISED ABSTRACT RECEIVED BY THE INTERNATIONAL BUREAU AFTER COMPLETION OF THE TECHNICAL PREPARATIONS FOR INTERNATIONAL PUBLICATION |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 2333613 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1999923231 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1999923231 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWG | Wipo information: grant in national office |
Ref document number: 1999923231 Country of ref document: EP |