EP0886202A2

Method and apparatus for protecting application data in secure storage areas

Abstract

A method, apparatus and computer program product are disclosed for certifying the authenticity of an application program and for securely associating certified application programs whose certification has been verified, with persistent application data that they own. The invention prevents other application programs, including certified application programs whose certifications have been verified, from accessing data not of their own.

EP0886202A2, drawing sheet 1
Sheet 1 of 6

Term

Term ended

Projected expiry passed 14 April 2018, 8.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

10 claims: 7 independent, 3 dependent

  1. 1
    A method for allowing an externally originating certified application program to be loaded into and executed in a secure module in a computer comprising the acts of:certifying the authenticity of an application program at a centralized certifying authority;verifying the authenticity of the application program at the computer into which it is to be loaded and executed;loading the application program into a secure module in the computer comparing a unique name of the application program with a name stored in association with a persistent data area;and permitting the application program to access the persistent data area only if the unique name of the application program compares favourably with the name stored in association with the persistent data area.
  2. 2
    A method for certifying the authenticity of a program P so that program P can be stored externally to a secure area and loaded into and executed in the secure area comprising the acts of:selecting a unique name N for the program P;combining N and P into a single contiguous object PN;calculating a digital signature DPN from PN using a private key of a private-public key pair algorithm;attaching the digital signature DPN to the object PN to obtain a certified program CP;making a public key, corresponding to the private key of the private-public key pair algorithm, available in each secure area where the program P will be loaded and executed.
  3. 3
    A method for loading a certified program CP from external storage into a secure area for execution in the secure area, the certified program CP having an attached digital signature DPN, the method comprising the acts of:requesting an operating system resident in the secure area load a program CP;retrieving CP from external storage into operating system protected mode memory;separating in protected mode memory in the secure area, the digital signature DPN from the object PN of certified program CP;validating that digital signature DPN, using a public key corresponding to the private key of a public-private key pair algorithm which was used to generate DPN, is a valid signature for the object PN;separating a program P from a name N of the object PN;loading program P into memory for execution;storing name N in protected operating system memory for later use in allowing access by program P to a data file stored in a memory in the secure area.
  4. 5
    Apparatus for certifying the authenticity of a program P so that program P can be stored externally to a secure area and loaded into and executed in the secure area comprising:means for selecting a unique name N for the program P;means for combining N and P into a single contiguous object PN;means for calculating a digital signature DPN from PN using a private key of a private-public key pair algorithm;means for attaching the digital signature DPN to the object PN to obtain a certified program CP;means for distributing a public key, corresponding to the private key of the private-public key pair algorithm, available in each secure area where the program P will be loaded and executed.
  5. 6
    Apparatus for loading a certified program CP from external storage into a secure area for execution in the secure area, the certified program CP having an attached digital signature DPN, comprising:means for requesting an operating system resident in the secure area load a program CP;means for retrieving CP from external storage into operating system protected mode memory;means for separating in protected mode memory in the secure area, the digital signature DPN from the object PN of certified program CP;means for validating that digital signature DPN, using a public key corresponding to the private key of a public-private key pair algorithm which was used to generate DPN, is a valid signature for the object PN;means for separating a program P from a name N of the object PN;means for loading program P into memory for execution;means for storing name N in protected operating system memory for later use in allowing access by program P to a data file stored in a memory in the secure area.
  6. 8
    A computer program product having a computer readable medium having computer program logic recorded thereon for certifying the authenticity of a program P so that program P can be stored externally to a secure area and loaded into and executed in the secure area, the program product comprising:means for selecting a unique name N for the program P;means for combining N and P into a single contiguous object PN;means for calculating a digital signature DPN from PN using a private key of a private-public key pair algorithm;means for attaching the digital signature DPN to the object PN to obtain a certified program CP;means for distributing a public key, corresponding to the private key of the private-public key pair algorithm, available in each secure area where the program P will be loaded and executed.
  7. 9
    A computer program product having a computer readable medium having computer program logic recorded thereon for loading a certified program CP from external storage into a secure area for execution in the secure area, the certified program CP having an attached digital signature DPN, the program product comprising:means for requesting an operating system resident in the secure area load a program CP;means for retrieving CP from external storage into operating system protected mode memory;means for separating in protected mode memory in the secure area, the digital signature DPN from the object PN of certified program CP;means for validating that digital signature DPN, using a public key corresponding to the private key of a public-private key pair algorithm which was used to generate DPN, is a valid signature for the object PN;means for separating a program P from a name N of the object PN;means for loading program P into memory for execution;means for storing name N in protected operating system memory for later use in allowing access by program P to a data file stored in a memory in the secure area.