Patents Assigned to Irdeto Canada Corporation
  • Publication number: 20220271916
    Abstract: 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: Application
    Filed: April 28, 2022
    Publication date: August 25, 2022
    Applicant: Irdeto Canada Corporation
    Inventors: Tingting LIN, Dafu LOU, Manfred VON WILLICH
  • Patent number: 11403372
    Abstract: 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: Grant
    Filed: January 29, 2019
    Date of Patent: August 2, 2022
    Assignee: Irdeto Canada Corporation
    Inventors: Robert Durand, Andrew Hoyt
  • Patent number: 11204985
    Abstract: 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: Grant
    Filed: March 31, 2020
    Date of Patent: December 21, 2021
    Assignee: Irdeto Canada Corporation
    Inventors: Damon Peng, Grant Goodes
  • Publication number: 20200313850
    Abstract: 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: Application
    Filed: March 29, 2019
    Publication date: October 1, 2020
    Applicant: Irdeto Canada Corporation
    Inventors: Tingting LIN, Dafu LOU, Manfred Von WILLICH
  • Publication number: 20200242217
    Abstract: 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: Application
    Filed: January 29, 2019
    Publication date: July 30, 2020
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert Durand, Andrew Hoyt
  • Patent number: 10318271
    Abstract: 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: Grant
    Filed: February 7, 2017
    Date of Patent: June 11, 2019
    Assignee: IRDETO CANADA CORPORATION
    Inventors: Clifford Liem, Hongrui Dong, Sam Martin, Yuan Xiang Gu, Michael Wiener
  • Publication number: 20150333906
    Abstract: 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: Application
    Filed: February 9, 2012
    Publication date: November 19, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: SK MD Mizanur RAHMAN, James MUIR
  • Publication number: 20150324590
    Abstract: 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: Application
    Filed: March 26, 2012
    Publication date: November 12, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert KRTEN, Hongrul DONG, Clifford LIEM
  • Publication number: 20150113640
    Abstract: 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: Application
    Filed: February 10, 2012
    Publication date: April 23, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Robert Krten, Jonathan Emmett, Clifford Liem
  • Publication number: 20150113286
    Abstract: 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: Application
    Filed: March 21, 2012
    Publication date: April 23, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Michael Wiener, Phil Eisen
  • Publication number: 20150113518
    Abstract: 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: Application
    Filed: March 22, 2012
    Publication date: April 23, 2015
    Applicant: Irdeto Canada Corporation
    Inventors: Clifford Liem, Hongrui Dong, Sam Martin, Yuan Xiang Gu, Michael Weiner
  • Patent number: 9009481
    Abstract: 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: Grant
    Filed: March 31, 2010
    Date of Patent: April 14, 2015
    Assignee: Irdeto Canada Corporation
    Inventors: James Muir, Jiayuan Sui, Daniel Elie Murdock, Philip Allan Eisen
  • Publication number: 20150089645
    Abstract: 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: Application
    Filed: March 30, 2012
    Publication date: March 26, 2015
    Applicant: Irdeto Canada Corporation
    Inventor: Ron Vandergeest
  • Publication number: 20150066776
    Abstract: 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: Application
    Filed: September 7, 2011
    Publication date: March 5, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Andrew Szczeszynski, Andrew Wajs, Martin Soukup
  • Publication number: 20150067875
    Abstract: 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: Application
    Filed: March 28, 2013
    Publication date: March 5, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener, Yongxin Zhou
  • Publication number: 20150067874
    Abstract: 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: Application
    Filed: March 28, 2013
    Publication date: March 5, 2015
    Applicant: IRDETO CANADA CORPORATION
    Inventors: Harold Johnson, Yuan Xiang Gu, Michael Wiener
  • Patent number: 8839414
    Abstract: 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: Grant
    Filed: June 1, 2009
    Date of Patent: September 16, 2014
    Assignee: Irdeto Canada Corporation
    Inventors: James Alexander Sydney Mantle, Garney David Adams
  • Patent number: 8752032
    Abstract: 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: Grant
    Filed: February 23, 2007
    Date of Patent: June 10, 2014
    Assignee: Irdeto Canada Corporation
    Inventors: Harold Joseph Johnson, Yuan Xiang Gu, Yongxin Zhou
  • Patent number: 8510726
    Abstract: 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: Grant
    Filed: May 25, 2009
    Date of Patent: August 13, 2013
    Assignee: Irdeto Canada Corporation
    Inventors: Philip Allan Eisen, Grant Stewart Goodes, Daniel Elie Murdock
  • Patent number: 8458792
    Abstract: 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: Grant
    Filed: May 12, 2011
    Date of Patent: June 4, 2013
    Assignee: Irdeto Canada Corporation
    Inventors: Stanley T. Chow, Harold T. Johnson, Alexander Main, Yuan Xiang Gu