CA2415334A1 - System for persistently encrypting critical software data to control operation of an executable software program - Google Patents

System for persistently encrypting critical software data to control operation of an executable software program Download PDF

Info

Publication number
CA2415334A1
CA2415334A1 CA002415334A CA2415334A CA2415334A1 CA 2415334 A1 CA2415334 A1 CA 2415334A1 CA 002415334 A CA002415334 A CA 002415334A CA 2415334 A CA2415334 A CA 2415334A CA 2415334 A1 CA2415334 A1 CA 2415334A1
Authority
CA
Canada
Prior art keywords
software program
data element
user
selected data
functionalities
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.)
Granted
Application number
CA002415334A
Other languages
French (fr)
Other versions
CA2415334C (en
Inventor
Henning Riebe
David Aldis
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.)
III Holdings 12 LLC
Original Assignee
Protexis Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Protexis Inc filed Critical Protexis Inc
Priority to CA2415334A priority Critical patent/CA2415334C/en
Priority to US10/334,139 priority patent/US7200760B2/en
Publication of CA2415334A1 publication Critical patent/CA2415334A1/en
Application granted granted Critical
Publication of CA2415334C publication Critical patent/CA2415334C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Abstract

A data encryption/decryption system is provided which maintains in encrypted form one or more critical data elements required by a software program. A user must obtain a license key in order to decrypt the critical data elements before the software program can use them. The data elements can be chosen such that their contents provide a control mechanism for the correct operation of the executable software program. The system allows for the inclusion of different data elements with or within a single version of the software program. The different data elements are encrypted for different license keys to allow for different license options and corresponding levels of control and flexibility in the delivery of the software program.

Claims (25)

1. A method of protecting a software program from piracy comprising the steps of:
selecting at least one data element from said software program for encryption, said data element affecting operation of said software program and comprising usable data that supports any of usable, viewable and executable forms of content;
encrypting said selected data element such that a user is required to obtain a valid license to decrypt said selected data element;
distributing said selected data element and said software program to said user;
decrypting said selected data element during runtime of said software program upon said user obtaining a valid license; and erasing the decrypted said selected data element after said software program executes correctly such that said selected data element is only available at runtime of said software program and in the presence of said valid license.
2. A method as claimed in claim 1, wherein said data element is selected from the group consisting of program data required for at least one of initialization and control of execution of said software program, a proprietary algorithm, and at least one parameter.
3. A method as claimed in claim 1, wherein said data element is stored within a program executable of said software program.
4. A method as claimed in claim 1, wherein said data element is stored as an external dataset with respect to said software program.
5. A method as claimed in claim 4, wherein said external dataset is accessible locally with respect to said user.
6. A method as claimed in claim 4, wherein said external dataset is accessible remotely with respect to said user via a network.
7. A method as claimed in claim 4, further comprising the step of updating said selected data element in said external dataset without changing the code of said software program.
8. A method as claimed in claim 1, wherein said decrypting step further comprises the steps of:
receiving a user request for a key with which to decrypt said selected data element;
generating an activation code linked to said key; and providing said activation code to said user.
9. A method as claimed in claim 8, wherein said activation code is locked to a hash of a unique hardware identifier associated with said user's computer.
10. A method as claimed in claim 1, wherein said distributing step comprises providing an encoded serial number with said license to use said software program, and said decryption step further comprises the steps of:
receiving a user request for a key with which to decrypt said selected data element;
generating an activation code linked to said key; and providing said activation code only to those users having an unactivated said serial number.
11. A method as claimed in claim 1, wherein verification of said valid license causes at least one of programmable switches and application values in said software program to be selectively changed to create a sequence of states that are verified prior to ending operation of said software program if a valid license is not obtained by said user.
12. A method as claimed in claim 1, wherein said software program is configured, upon verification of said valid license, to quit in different places therein in accordance with a plurality of conditions if said user does not obtain a valid license.
13. A method of protecting a software program from piracy comprising the steps of:
selecting at least one data element from said software program for encryption, said data element affecting operation of said software program and comprising usable data that supports any of usable, viewable and executable forms of content;
encrypting said selected data element such that a user is required to obtain a valid license to decrypt said selected data element;
distributing said selected data element and said software program to said user;
decrypting said selected data element during runtime of said software program upon said user obtaining a valid license; and operating said software program sub-optimally if no valid license is obtained by said user and said selected data element is not decrypted.
14. A method as claimed in claim 13, further comprising the steps of:
hiding the functionality of said selected data element during runtime of said software program by not providing an error message if said license is invalid; and operating said software program such that said selected data element appears to be decrypted but contains invalid data if said license is invalid.
15. A method of protecting a software program comprising the steps of:
bundling different functionalities in at least one software program that require respective license terms such that they are subject to respective licenses;
encrypting each of said functionalities;
providing said software program to a user with all of encrypted said functionalities;
and decrypting and enabling each of said functionalities whenever said user obtains the corresponding one of said licenses therefor.
16. A method as recited in claim 15, wherein said functionalities provide a range of programmatic execution control ranging from coarse control of said software program to fine control of a specific function provided by said software program.
17. A method as recited in claim 16, wherein said functionalities for said range of programmatic execution control comprise different datasets stored in respective encrypted buffers.
18. A method as recited in claim 17, wherein said respective encrypted buffers are each provided with a unique instance tag as part of the cryptographic process to generate keys therefor.
19. A method as recited in claim 15, wherein said functionalities provide a fully licensed version of said software program and a trialware version of said software program.
20. A method as recited in claim 19, wherein said functionalities for said fully licensed version and said trialware version comprises datasets stored in respective encrypted buffers.
21. A method as recited in claim 20, wherein said respective encrypted buffers are each provided with a unique instance tag as part of the cryptographic process to generate keys therefor.
22. A method as recited in claim 15, wherein said functionalities comprise a basic mode of operation and at least one other mode of increased functionality.
23. A method as recited in claim 15, wherein said functionalities correspond to respective ones of multiple versions of a data element associated with said software program.
24. A method as recited in claim 23, wherein said encrypting step comprises individually encrypting each of said multiple versions of said data element with a key specific to a different license, and said providing step further comprises the step of sending the different said encrypted data elements to said user along with said software application.
25. A method as recited in claim 15, wherein at least one of said functionalities has a data element which comprises usable data that supports any of usable, viewable and executable forms of content.
CA2415334A 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control operation of an executable software program Expired - Fee Related CA2415334C (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA2415334A CA2415334C (en) 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control operation of an executable software program
US10/334,139 US7200760B2 (en) 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control the operation of an executable software program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2415334A CA2415334C (en) 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control operation of an executable software program
US10/334,139 US7200760B2 (en) 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control the operation of an executable software program

Publications (2)

Publication Number Publication Date
CA2415334A1 true CA2415334A1 (en) 2004-06-30
CA2415334C CA2415334C (en) 2012-04-24

Family

ID=33419253

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2415334A Expired - Fee Related CA2415334C (en) 2002-12-31 2002-12-31 System for persistently encrypting critical software data to control operation of an executable software program

Country Status (2)

Country Link
US (1) US7200760B2 (en)
CA (1) CA2415334C (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752139B2 (en) 2005-12-27 2010-07-06 Michael Noel Hu Method and system for managing software licenses and reducing unauthorized use of software
CN114528603A (en) * 2022-04-24 2022-05-24 广州万协通信息技术有限公司 Isolation dynamic protection method, device, equipment and storage medium of embedded system

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4899248B2 (en) * 2001-04-02 2012-03-21 富士通セミコンダクター株式会社 Semiconductor integrated circuit
US7835520B2 (en) * 2003-02-20 2010-11-16 Zoran Corporation Unique identifier per chip for digital audio/video data encryption/decryption in personal video recorders
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
TW200511053A (en) * 2003-09-03 2005-03-16 United Microelectronics Corp System, method and chip for hardware detection of illegal software user, computer system having hardware detection chip thereof and a software registration center
US7296296B2 (en) * 2003-10-23 2007-11-13 Microsoft Corporation Protected media path and refusal response enabler
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
US8031865B2 (en) * 2004-01-08 2011-10-04 Encryption Solutions, Inc. Multiple level security system and method for encrypting data within documents
US7526643B2 (en) * 2004-01-08 2009-04-28 Encryption Solutions, Inc. System for transmitting encrypted data
US7752453B2 (en) * 2004-01-08 2010-07-06 Encryption Solutions, Inc. Method of encrypting and transmitting data and system for transmitting encrypted data
US7836301B2 (en) * 2004-03-10 2010-11-16 Harris Steven M Computer program for securely viewing a file
US7568096B2 (en) * 2004-04-23 2009-07-28 Microsoft Corporation Rendering digital content in a content protection system according to a plurality of chained digital licenses
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
TWI241818B (en) * 2004-06-10 2005-10-11 Ind Tech Res Inst Application-based data encryption system and method thereof
EP1612637A1 (en) * 2004-06-29 2006-01-04 Nagracard S.A. Security module and method of personalisation of a security module
US20090249085A1 (en) * 2004-06-29 2009-10-01 Nagracard S.A. Security module and personalization method for such a security module
US20060047601A1 (en) * 2004-08-25 2006-03-02 General Instrument Corporation Method and apparatus for providing channel key data
US20060075505A1 (en) * 2004-09-30 2006-04-06 July Systems Inc. Method and system for dynamic multi-level licensing of mobile data services
US7899754B2 (en) * 2004-12-03 2011-03-01 International Business Machines Corporation Enablement of system features with improved feature key
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
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
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7877329B2 (en) * 2005-09-23 2011-01-25 Business Objects Software Ltd. Apparatus and method for processing license keys using dynamic field mapping
DE102005046696B4 (en) * 2005-09-29 2009-11-05 Fujitsu Siemens Computers Gmbh A method for generating protected program code and method for executing program code of a protected computer program and computer program product
WO2007063433A2 (en) * 2005-10-17 2007-06-07 Nxp B.V. Program executable image encryption
US10085677B2 (en) * 2005-11-16 2018-10-02 Etymotic Research, Inc. System and method for performing a hearing screening
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
DE102006018039B4 (en) * 2006-04-11 2010-11-25 Michael Letterer Method for executing a program code
US20080270310A1 (en) * 2006-06-27 2008-10-30 Intuit Inc. Facilitating dynamic configuration of software products
US9471756B2 (en) * 2006-06-27 2016-10-18 Intuit Inc. Method and apparatus for authorizing a software product to be used on a computer system
US7876902B2 (en) * 2006-08-31 2011-01-25 Microsoft Corporation Distribution of encrypted software update to reduce attack window
US20080229115A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Provision of functionality via obfuscated software
US8078508B1 (en) * 2008-01-25 2011-12-13 Intuit Inc. Method and system for upgrading to an integrated financial product
US8646091B2 (en) * 2008-05-22 2014-02-04 Dell Products L.P. Digital software license procurement
US20100325431A1 (en) * 2009-06-19 2010-12-23 Joseph Martin Mordetsky Feature-Specific Keys for Executable Code
US9754115B2 (en) * 2011-03-21 2017-09-05 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
US20130170645A1 (en) * 2011-12-29 2013-07-04 Mediatek Inc. Encryption and decryption devices and methods thereof
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
WO2014176461A1 (en) 2013-04-25 2014-10-30 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
US10200345B2 (en) 2013-10-29 2019-02-05 Uniloc 2017 Llc Electronic mail sender verification
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
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
US10505984B2 (en) 2015-12-08 2019-12-10 A10 Networks, Inc. Exchange of control information between secure socket layer gateways
US10469594B2 (en) 2015-12-08 2019-11-05 A10 Networks, Inc. Implementation of secure socket layer intercept
US10257189B2 (en) 2016-05-24 2019-04-09 Microsoft Technology Licensing, Llc Using hardware based secure isolated region to prevent piracy and cheating on electronic devices
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
TW201915810A (en) * 2017-09-25 2019-04-16 英屬維爾京群島商伊格拉斯控股有限公司 新竹市新安路5號4樓之1 107,206室 A method of protecting a electronic file and a computer program product that completes the method
CN111625248B (en) * 2020-06-01 2023-04-07 杭州万高科技股份有限公司 Programming device and encryption programming method
US11397822B2 (en) * 2020-07-23 2022-07-26 Dell Products L.P. System and method of utilizing document security

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3798359A (en) * 1971-06-30 1974-03-19 Ibm Block cipher cryptographic system
US3906460A (en) * 1973-01-11 1975-09-16 Halpern John Wolfgang Proximity data transfer system with tamper proof portable data token
US3958081A (en) * 1975-02-24 1976-05-18 International Business Machines Corporation Block cipher system for data security
US4028679A (en) * 1975-10-16 1977-06-07 Bell Telephone Laboratories, Incorporated Memory patching circuit with increased capability
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
WO1997025798A1 (en) * 1996-01-11 1997-07-17 Mrj, Inc. System for controlling access and distribution of digital property
US6088452A (en) * 1996-03-07 2000-07-11 Northern Telecom Limited Encoding technique for software and hardware
US5809145A (en) * 1996-06-28 1998-09-15 Paradata Systems Inc. System for distributing digital information
US6523119B2 (en) 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
US6192475B1 (en) * 1997-03-31 2001-02-20 David R. Wallace System and method for cloaking software
US6073256A (en) * 1997-04-11 2000-06-06 Preview Systems, Inc. Digital product execution control
US6012033A (en) * 1997-06-30 2000-01-04 Vlsi Technology, Inc. Proprietary information protection method
US6009525A (en) * 1997-08-29 1999-12-28 Preview Systems, Inc. Multi-tier electronic software distribution
US6055503A (en) * 1997-08-29 2000-04-25 Preview Systems Software program self-modification
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US6223288B1 (en) * 1998-05-22 2001-04-24 Protexis Inc. System for persistently encrypting critical software file to prevent installation of software program on unauthorized computers
US6044471A (en) * 1998-06-04 2000-03-28 Z4 Technologies, Inc. Method and apparatus for securing software to reduce unauthorized use
US6324578B1 (en) 1998-12-14 2001-11-27 International Business Machines Corporation Methods, systems and computer program products for management of configurable application programs on a network
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
AU2001266692A1 (en) 2000-06-02 2001-12-11 John Denton Biddle System and method for licensing management
US20020091645A1 (en) 2000-12-20 2002-07-11 Kagemoto Tohyama Software licensing system
EP1243998B1 (en) 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752139B2 (en) 2005-12-27 2010-07-06 Michael Noel Hu Method and system for managing software licenses and reducing unauthorized use of software
CN114528603A (en) * 2022-04-24 2022-05-24 广州万协通信息技术有限公司 Isolation dynamic protection method, device, equipment and storage medium of embedded system

Also Published As

Publication number Publication date
CA2415334C (en) 2012-04-24
US7200760B2 (en) 2007-04-03
US20040125954A1 (en) 2004-07-01

Similar Documents

Publication Publication Date Title
CA2415334A1 (en) System for persistently encrypting critical software data to control operation of an executable software program
EP2294529B1 (en) Electronic device and method of software or firmware updating of an electronic device
US8738536B2 (en) Licensing content for use on portable device
EP0798892B1 (en) Creation and distribution of digital documents
US8660964B2 (en) Secure device licensing
EP2820546B1 (en) Blackbox security provider programming system permitting multiple customer use and in field conditional access switching
AU2005255327B2 (en) Method and apparatus for digital rights management using certificate revocation list
JP4916512B2 (en) Copy digital content between content protection systems
EP2264639B1 (en) Securing executable code integrity using auto-derivative key
CA2543572A1 (en) Tamper-resistant trusted virtual machine
US9047445B2 (en) Memory device and method for updating a security module
US20080025503A1 (en) Security method using self-generated encryption key, and security apparatus using the same
US9116841B2 (en) Methods and systems for securely transferring embedded code and/or data designed for a device to a customer
JP2005129069A (en) Encryption of content and data protection on portable medium
BR0303651A (en) Appliance, method and program of execution of content and appliance and key management system
EP2099154A3 (en) On-chip storage, creation, and manipulation of an encryption key
EP1733504A1 (en) Authentication between device and portable storage
CN101523399A (en) Methods and systems for modifying an integrity measurement based on user athentication
US20060155651A1 (en) Device and method for digital rights management
JP2002116839A (en) Method for protecting computer software and/or computer readable data and device for the same
EP1636664A2 (en) Proof of execution using random function
CN107005402A (en) Access to content is provided
EP1836851A1 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
KR102583995B1 (en) Cryptographic program diversification
CN100410831C (en) Random binding software installing method

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20191231