IP Library Granted Patent US 8,301,903
Granted Patent B2
US 8,301,903 · App. 12/394,278 · Granted Oct 30, 2012

Low-level code signing mechanism

Assignee: Research In Motion Limited
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,301,903
App. No.
12/394,278
Granted
Oct 30, 2012
Kind
B2
Abstract

Before an application is allowed to execute a secure function, code signing keys associated with the application are analyzed for correspondence with the class that contains the secure function as well as correspondence with the secure function. Optionally, code signing keys associated with the application are analyzed for correspondence with the input parameters to the function.

Claims (46)

1. A method for verifying that a given application is to be permitted access to a secure subroutine, said method comprising:

obtaining code for said given application;

obtaining a subroutine cryptographic identifier associated with said given application and associated with said secure subroutine, wherein said secure subroutine is associated with a secure input parameter;

obtaining an input parameter cryptographic identifier associated with said given application and associated with said secure input parameter;

obtaining a hash of said code for said given application;

decoding said subroutine cryptographic identifier, using a locally-stored public key associated with said secure subroutine, to obtain a decoded subroutine cryptographic identifier;

decoding said input parameter cryptographic identifier, using a locally-stored public key associated with said secure input parameter, to obtain a decoded input parameter cryptographic identifier;

determining that said hash of said code matches said decoded subroutine cryptographic identifier;

determining that said hash of said code matches said decoded input parameter cryptographic identifier; and

responsive to determining that said hash of said code matches said decoded subroutine cryptographic identifier and that said hash of said code matches said decoded input parameter cryptographic identifier, allowing said application to execute said secure subroutine.

2. The method of claim 1 wherein each of said hash of said code and said decoded subroutine cryptographic identifier comprises a 1024-bit value.

3. The method of claim 2 wherein said obtaining said hash of said code comprises employing a Digital Signature Algorithm as defined in Federal Information Processing Standard 186-2 Change Notice 1.

4. The method of claim 1 wherein said subroutine comprises instructions to add an entry to a secure database.

5. The method of claim 1 wherein said subroutine comprises instructions to modify an entry in a secure database.

6. The method of claim 1 wherein said subroutine comprises instructions to view an entry in a secure database.

7. The method of claim 1 wherein said subroutine comprises instructions to delete an entry from a secure database.

8. The method of claim 1 wherein said subroutine comprises instructions to open a communication channel to an internal corporate network.

9. A computing apparatus comprising:

a processor;

a memory for storing:

code for a given application;

a subroutine cryptographic identifier associated with said given application and associated with said secure subroutine, wherein said secure subroutine is associated with a secure input parameter;

an input parameter cryptographic identifier associated with said given application and associated with said secure input parameter;

said processor being configured to verify that an application should be given access to said secure subroutine by:

obtaining a hash of said code for said given application; decoding said subroutine cryptographic identifier, using a locally-stored public key associated with said secure subroutine, to obtain a decoded subroutine cryptographic identifier;

decoding said input parameter cryptographic identifier, using a locally-stored public key associated with said secure input parameter, to obtain a decoded input parameter cryptographic identifier:

determining that said hash of said code matches said decoded subroutine cryptographic identifier;

determining that said hash of said code matches said decoded input parameter cryptographic identifier; and

responsive to determining that said hash of said code matches said decoded subroutine cryptographic identifier and that said hash of said code matches said decoded input parameter cryptographic identifier, allowing said application to execute said secure subroutine.

10. The computing apparatus of claim 9 wherein each of said hash of said code and said decoded subroutine cryptographic identifier comprises a 1024-bit value.

11. The computing apparatus of claim 10 wherein said obtaining said hash of said code comprises employing a Digital Signature Algorithm as defined in Federal Information Processing Standard 186-2 Change Notice 1.

12. The computing apparatus of claim 9 wherein said subroutine comprises instructions to add an entry to a secure database.

13. The computing apparatus of claim 9 wherein said subroutine comprises instructions to modify an entry in a secure database.

14. The computing apparatus of claim 9 wherein said subroutine comprises instructions to view an entry in a secure database.

15. The computing apparatus of claim 9 wherein said subroutine comprises instructions to delete an entry from a secure database.

16. The computing apparatus of claim 9 wherein said subroutine comprises instructions to open a communication channel to an internal corporate network.

17. A non-transitory computer readable medium storing computer-executable instructions that, when executed by a processor to verify that a given application should be given access to a secure subroutine, cause said processor to:

obtain code for said given application;

obtain a subroutine cryptographic identifier associated with said given application and associated with said secure subroutine, wherein said secure subroutine is associated with a secure input parameter;

obtain an input parameter cryptographic identifier associated with said given application and associated with said secure input parameter;

obtain a hash of said code for said given application;

decode said subroutine cryptographic identifier, using a locally-stored public key associated with said secure subroutine, to obtain a decoded subroutine cryptographic identifier;

decode said input parameter cryptographic identifier, using a locally-stored public key associated with said secure input parameter, to obtain a decoded input parameter cryptographic identifier;

determine that said hash of said code matches said decoded subroutine cryptographic identifier;

determine that said hash of said code matches said decoded input parameter cryptographic identifier; and

responsive to determining that said hash of said code matches said decoded subroutine cryptographic identifier and that said hash of said code matches said decoded input parameter cryptographic identifier, allow said application to execute said secure subroutine.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Jun 6, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 033104/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2009
From: MACFARLANE, DAVID; BROWN, MICHAEL K.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 022560/0854 →
Continuity (1)
Related Publication 20100223475A1 · Sep 2, 2010