Patents Assigned to Irdeto Canada Corporation
-
Publication number: 20220271916Abstract: An apparatus method and computer media for implementing a white-box block cipher in a software application to create a secure software application having the same functionality as the software application.Type: ApplicationFiled: April 28, 2022Publication date: August 25, 2022Applicant: Irdeto Canada CorporationInventors: Tingting LIN, Dafu LOU, Manfred VON WILLICH
-
Patent number: 11403372Abstract: Systems, methods, and storage media for obfuscating a computer program by representing the control flow of the computer program as data that is not source code are disclosed. Exemplary implementations may: receive source code of a computer program; parse the source code; extract the control flow of the source code; represent at least a portion of the control flow as a control flow model using a mathematical modeling language; store the control flow model as control flow data that represents the control flow of the program and is not executable code; and remove the at least a portion of the control flow from the source code, to thereby obfuscate the control flow of the source code and render the source code more resistant to tampering.Type: GrantFiled: January 29, 2019Date of Patent: August 2, 2022Assignee: Irdeto Canada CorporationInventors: Robert Durand, Andrew Hoyt
-
Patent number: 11204985Abstract: Systems, methods, and storage media for rendering target code are disclosed. Exemplary implementations may: receive the input code; apply at least one obfuscation transformation to multiple code functions of the input code to create transformed code including transformed code functions; determine a shared constant; determine a function-expression; and replace, for each transformed code function in the transformed code, the transformation parameters with the function expression and the at least one cloaked constant to create target code in which the transformed code functions are entangled to thereby render the target code protected against static analysis attacks.Type: GrantFiled: March 31, 2020Date of Patent: December 21, 2021Assignee: Irdeto Canada CorporationInventors: Damon Peng, Grant Goodes
-
Publication number: 20200313850Abstract: An apparatus method and computer media for implementing a white-box block cipher in a software application to create a secure software application having the same functionality as the software application.Type: ApplicationFiled: March 29, 2019Publication date: October 1, 2020Applicant: Irdeto Canada CorporationInventors: Tingting LIN, Dafu LOU, Manfred Von WILLICH
-
Publication number: 20200242217Abstract: Systems, methods, and storage media for obfuscating a computer program by representing the control flow of the computer program as data that is not source code are disclosed. Exemplary implementations may: receive source code of a computer program; parse the source code; extract the control flow of the source code; represent at least a portion of the control flow as a control flow model using a mathematical modeling language; store the control flow model as control flow data that represents the control flow of the program and is not executable code; and remove the at least a portion of the control flow from the source code, to thereby obfuscate the control flow of the source code and render the source code more resistant to tampering.Type: ApplicationFiled: January 29, 2019Publication date: July 30, 2020Applicant: IRDETO CANADA CORPORATIONInventors: Robert Durand, Andrew Hoyt
-
Patent number: 10318271Abstract: A method and system for renewing software at the component-level is provided. A client program includes a base component for loading a software component into at least one loadable region of the program to update the program. Code in the software component is for writing state data associating the state of the update in storage, upon execution of the software component, and testing the state data to verify condition of the updated program and disallowing rollback and roll-forward attacks, the state data comprising hash chain values. The state data for verifying the correctness of the updated program is entangled with application data used for the program functionality. A server includes: an update pool having a plurality of software updates deployed in each client, and a policy control for monitoring and controlling at least one of: the length of time the client runs until the software update is invoked, a chain of the updates; and the granularity of the update.Type: GrantFiled: February 7, 2017Date of Patent: June 11, 2019Assignee: IRDETO CANADA CORPORATIONInventors: Clifford Liem, Hongrui Dong, Sam Martin, Yuan Xiang Gu, Michael Wiener
-
Publication number: 20150333906Abstract: In the present disclosure, implementations of Diffie-Hellman key agreement are provided that, when embodied in software, resist extraction of cryptographically sensitive parameters during software execution by white-box attackers. Four embodiments are taught that make extraction of sensitive parameters difficult during the generation of the public key and the computation of the shared secret. The embodiments utilize transformed random numbers in the derivation of the public key and shared secret. The traditional attack model for Diffie-Hellman implementations considers only black-box attacks, where attackers analyze only the inputs and outputs of the implementation. In contrast, white-box attacks describe a much more powerful type of attacker who has total visibility into the software implementation as it is being executed.Type: ApplicationFiled: February 9, 2012Publication date: November 19, 2015Applicant: IRDETO CANADA CORPORATIONInventors: SK MD Mizanur RAHMAN, James MUIR
-
Publication number: 20150324590Abstract: In the present disclosure, a hash function is computed over a known image, for example, an address range in a program. The result of the hash function is known to be the same at two distinct points in time, before the program is run, i.e. signing at build-time, and during the running of the program, i.e. run time. The value that the programmer wishes to hide, i.e. the secret value, is also known at build-time. At build-time, the secret value is combined with the hash in such a way that the combining operation can be reversed at run time. This combined value, i.e. the salt, is stored along with the program. Later, at runtime, the program computes the same hash value as was computed at signing time, and does the reverse combining operation in order to reveal the secret value.Type: ApplicationFiled: March 26, 2012Publication date: November 12, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Robert KRTEN, Hongrul DONG, Clifford LIEM
-
Publication number: 20150113640Abstract: The present disclosure provides a description of a computer implemented method and system for protecting a software program from attack during runtime. The system comprises a plurality of software blocks for providing desired functions during execution of a software program and a trusted address server having a table for mapping predetermined source tokens to destination tokens. The trusted address server couples each of the plurality of software blocks for receipt of predetermined source tokens from any one of the plurality of software blocks, while returning a mapped destination token from the predetermined destination tokens to said any one of the plurality of software blocks in dependence upon the table for mapping predetermined source tokens to destination tokens.Type: ApplicationFiled: February 10, 2012Publication date: April 23, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Robert Krten, Jonathan Emmett, Clifford Liem
-
Publication number: 20150113286Abstract: A method and system for secure data protection is provided. The method and system includes carrying out a transform on structured data comprising a fixed data field for implementing an application, the structured data having n segments, each having m bits, including: encoding each of the n segments subsequently to provide n coded segments, including: encoding each of the (n?1) segments depending on a previous segment value; and changing at least one of the n encodings to the n segments such that the fixed data field of a first structured data is encoded differently from the fixed data field of a second structured data, and the transformed first structure data and the transformed second structure data are further processed in the same operation for implementing the application.Type: ApplicationFiled: March 21, 2012Publication date: April 23, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Michael Wiener, Phil Eisen
-
Publication number: 20150113518Abstract: A method and system for renewing software at the component-level is provided. A client program includes a base component for loading a software component into at least one loadable region of the program to update the program. Code in the software component is for writing state data associating the state of the update in storage, upon execution of the software component, and testing the state data to verify condition of the updated program and disallowing rollback and roll-forward attacks, the state data comprising hash chain values. The state data for verifying the correctness of the updated program is entangled with application data used for the program functionality. A server includes: an update pool having a plurality of software updates deployed in each client, and a policy control for monitoring and controlling at least one of: the length of time the client runs until the software update is invoked, a chain of the updates; and the granularity of the update.Type: ApplicationFiled: March 22, 2012Publication date: April 23, 2015Applicant: Irdeto Canada CorporationInventors: Clifford Liem, Hongrui Dong, Sam Martin, Yuan Xiang Gu, Michael Weiner
-
Patent number: 9009481Abstract: A digital signature generation (DSG) process which provides resistance against white box attackers is disclosed. This is done by applying specially selected data transformations to the inputs, outputs and internal parameters of the algorithm. In particular, the signatory's private key does not appear in the clear in our protected implementation. Our new white box implementation produces signatures that are compatible with signatures created by conventional implementations; thus our solution facilitates interoperability and can be used as a drop-in replacement for conventional implementations. In particular, we describe transformations to the key (d) and the generator domain parameter (usually denoted G or g) of the digital signature generation processes, such that embodiments of the invention can produce signed messages which appear to a verifier as if the key (d) was used, without actually ever using the key (d).Type: GrantFiled: March 31, 2010Date of Patent: April 14, 2015Assignee: Irdeto Canada CorporationInventors: James Muir, Jiayuan Sui, Daniel Elie Murdock, Philip Allan Eisen
-
Publication number: 20150089645Abstract: A system and method is provided for implementing platform security on a consumer electronic device having an open development platform. The device is of the type which includes an abstraction layer operable between device hardware and application software. A secured software agent is provided for embedding within the abstraction layer forming the operating system. The secured software agent is configured to limit access to the abstraction layer by either blocking loadable kernel modules from loading, blocking writing to the system call table or blocking requests to attach debug utilities to certified applications or kernel components.Type: ApplicationFiled: March 30, 2012Publication date: March 26, 2015Applicant: Irdeto Canada CorporationInventor: Ron Vandergeest
-
Publication number: 20150066776Abstract: A method and apparatus for enhancing content security including a content corruptor module having an input for encoded content, a content parameter modifier coupled to the input and having outputs for modified content and fixer data, a content encoder coupled to the output for modified content and having an output for encoded modified content and a fixer data encoder coupled to the output for fixer data and having an output for encoded fixer data. The modified encoded content discourages copying as it is not usable with the corrector data.Type: ApplicationFiled: September 7, 2011Publication date: March 5, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Andrew Szczeszynski, Andrew Wajs, Martin Soukup
-
Publication number: 20150067875Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.Type: ApplicationFiled: March 28, 2013Publication date: March 5, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
-
Publication number: 20150067874Abstract: Systems and techniques for securing accessible computer-executable program code and systems are provided. One or more base functions may be generated and blended with existing program code, such that it may be difficult or impossible for a potential attacker to distinguish the base functions from the existing code. The systems and code also may be protected using a variety of other blending and protection techniques, such as fractures, variable dependent coding, dynamic data mangling, and cross-linking, which may be used individually or in combination, and/or may be blended with the base functions.Type: ApplicationFiled: March 28, 2013Publication date: March 5, 2015Applicant: IRDETO CANADA CORPORATIONInventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener
-
Patent number: 8839414Abstract: A custom database connectivity component is deployed in conjunction with a native database connectivity component and a credential manager. The custom connectivity component has a requestor interface for communicating with a requestor application, a credential service interface for communicating with the credential manager, a native database connectivity interface for communicating with native connectivity components, and a decision engine for determining how to convert a request from a requestor to an appropriate API call to the credential manager. The custom connectivity component provides an authenticated and authorized database connection for a requestor application. The component transparently serves retrieves database, or other target resource, credentials on a real time basis, without requiring code changes to the requestor application.Type: GrantFiled: June 1, 2009Date of Patent: September 16, 2014Assignee: Irdeto Canada CorporationInventors: James Alexander Sydney Mantle, Garney David Adams
-
Patent number: 8752032Abstract: Methods and devices for thwarting code and control flow based attacks on software. The source code of a subject piece of software is automatically divided into basic blocks of logic. Selected basic blocks are amended so that their outputs are extended. Similarly, other basic blocks are amended such that their inputs are correspondingly extended. The amendments increase or create dependencies between basic blocks such that tampering with one basic block's code causes other basic blocks to malfunction when executed.Type: GrantFiled: February 23, 2007Date of Patent: June 10, 2014Assignee: Irdeto Canada CorporationInventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
-
Patent number: 8510726Abstract: A development suite for generating files, such as DRM-protected files, using white-box cryptography. The suite consists of a code generation tool, a data transformation engine, and a white-box data generation tool, and a white-box library. In the white-box cryptography context, the data transformation engine is used to protect the boundary between the cryptographic operation and the surrounding code. In particular, the data transformation engine is used to apply data transformations to the inputs to and outputs from the cryptographic operations. If the user specifies that transformations are required via a white-box parameterization file, the code generation tool puts the information specified by the user into a form the data transformation engine understands, namely as qualifiers on data variables and function prototypes. The data transformation engine then applies the specified transformations, and passes information to the data generation tool regarding which transformations were chosen.Type: GrantFiled: May 25, 2009Date of Patent: August 13, 2013Assignee: Irdeto Canada CorporationInventors: Philip Allan Eisen, Grant Stewart Goodes, Daniel Elie Murdock
-
Patent number: 8458792Abstract: Attacks by computer viruses, worm programs, and other hostile software (‘malware’), have become very serious problems for computer systems connected to large communication networks such as the Internet. One potential defense against such attacks is to employ diversity—that is, making each copy of the attacked software different. However, existing diversity techniques do not offer sufficient levels of protection. The invention provides an effective diversity solution by applying tamper resistant software (TRS) encoding techniques, to the communications that take place between software components, with corresponding changes to the code handling those communications. These communications may include, for example, data passed between software routines via parameters or mutually accessible variables, light-weight messages, signals and semaphores passed between threads, and messages passed between software processes. Effective TRS encoding techniques include data-flow encoding and mass-data encoding techniques.Type: GrantFiled: May 12, 2011Date of Patent: June 4, 2013Assignee: Irdeto Canada CorporationInventors: Stanley T. Chow, Harold T. Johnson, Alexander Main, Yuan Xiang Gu