Nova Patents
EP1320795B2

Software code signing system and method

Abstract

This record has no abstract on file.

EP1320795B2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Expired 20 September 2021, 5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

19 claims: 8 independent, 11 dependent

  1. 1
    A code signing system for operation in conjunction with a software application (66) having a digital signature (96) and a signature identification (94), where the digital signature is associated with the signature identification, comprising:- an application platform;- an application programming interface (API) having an associated signature identifier (92), the API is configured to link the software application with the application platform;and - wherein the authenticity of the digital signature is verified by a virtual machine (69) in order to control access to the API by the software application where the signature identifier corresponds to the signature identification;- wherein the digital signature is generated by applying a private signature key to a hash of the software application, and the virtual machine verifies the authenticity of the digital signature by generating a hash of the software application to obtain a generated hash, applying a public signature key to the signature to obtain a recovered hash, and comparing the generated hash with the recovered hash.
  2. 4
    The code signing system of any of claims 1 to 3, further comprising:- a plurality of API libraries, each of the plurality of API libraries includes a plurality of APIs, wherein the virtual machine controls access to the plurality of API libraries by the software application.
  3. 5
    The code signing system of any of claims 1 to 4, - wherein at least one of the plurality of API libraries is classified as sensitive;- wherein access to a sensitive API library requires a digital signature associated with a signature identification where the signature identification corresponds to a signature identifier associated with the sensitive API library;- wherein the software application includes at least one digital signature and at least one associated signature identification for accessing sensitive API libraries;and - wherein the virtual machine authenticates the software application for accessing the sensitive API library by verifying the one digital signature included in the software application that has a signature identification corresponding to the signature identifier of the sensitive API library.
  4. 7
    The code signing system of any of claims 1 to 6, wherein the application platform (i) comprises an operating system, or (ii) comprises one or more core functions of a mobile device, or (iii) comprises hardware on a mobile device.
  5. 9
    The code signing system of any of claims 1 to 8, wherein the software application is a Java application for a mobile device.
  6. 10
    The code signing system of any of claims 1 to 9, wherein (i) the API interfaces with a cryptographic routine on the application platform, or wherein (ii) the API interfaces with a proprietary data model on the application platform.
  7. 11
    The code signing system of any of claims 1 to 10, wherein the virtual machine is a Java virtual machine installed on a mobile device.
  8. 12
    A method of controlling access to sensitive application programming interfaces on a mobile device (62), comprising the steps of:- loading a software application (66) on the mobile device that requires access to a sensitive application programming interface (API) having a signature identifier (92);- determining whether the software application includes a digital signature (96) and a signature identification (94);- denying the software application access to the sensitive API where the digital signature does not correspond with the signature identifier;- verifying the authenticity of the digital signature where the signature identification corresponds with the signature identifier, wherein access to the sensitive API by the software application is based upon the verifying of the authenticity of the digital signature;- wherein the digital signature is generated by applying a private signature key to a hash of the software application, and wherein the step of verifying the authenticity of the digital signature is performed by steps comprising: - storing a public signature key that corresponds to the private signature key on the mobile device;- generating a hash of the software application to obtain a generated hash;- applying the public signature key to the digital signature to obtain a recovered hash;and - comparing the generated hash with the recovered hash.
  9. 15
    The method of any of claims 12 to 14, comprising the additional step of:- denying the software application access to the sensitive API where the digital signature is not authenticated.
  10. 17
    The method according to one of the claims 12 to 16, wherein a description string is displayed to a user when the software application attempts to access said at least one of the APIs.
  11. 18
    The method of any of claims 12 to 17, comprising the additional step of:- displaying a description string that notifies a user of the mobile device that the software application requires access to the sensitive API.