IP Library Granted Patent US 8,601,279
Granted Patent B2
US 8,601,279 · App. 13/542,815 · Granted Dec 3, 2013

Debugging port security interface

Inventors: Herbert A. Little (Waterloo, CA); Jerrold R. Randell (Waterloo, CA); Richard C. Madter (Puslinch, CA); Ryan J. Hickey (Waterloo, CA)
Assignee: BlackBerry 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,601,279
App. No.
13/542,815
Granted
Dec 3, 2013
Kind
B2
Abstract

The present invention provides a secure JTAG interface to an application-specific integrated circuit (ASIC). In the preferred embodiment the invention operates through the combined efforts of a Security Module (SM) comprising a state machine that controls the security modes for the ASIC, and a Test Control Module (TCM) which contains the JTAG interface. The TCM operates in either a restricted mode or an unrestricted mode, depending on the state of the SM state machine. In a restricted mode, only limited access to memory content is permitted. In an unrestricted mode, full access to memory content is permitted.

Claims (68)

1. A method of providing debugging access to a processing device comprising a first memory device and a second memory device, the method comprising:

receiving a request for debugging access;

if the processing device is in an insecure state,

denying access to at least one encryption key stored on the processing device such that decryption of encrypted data stored on the first memory device is not permitted,

overwriting unencrypted data in the second memory device, and

providing access to a set of debugging functions; and

if the processing device is in a secure state,

permitting access to the at least one encryption key such that decryption of encrypted data stored on the first memory device is permitted, and

providing access to the set of debugging functions.

2. The method of claim 1 , further comprising:

receiving a request to transition the processing device from the insecure state to the secure state, the request to transition the processing device comprising a password;

comparing the received password to a password stored in a secure, non-volatile memory; and

if the received password matches the stored password, transitioning the processing device from the insecure state to the secure state.

3. The method of claim 2 , wherein at least one of the request for debugging access or the received password is received via a debugging port interface.

4. The method of claim 2 , wherein at least one of the request for debugging access or the received password is received via a JTAG port interface.

5. The method of claim 1 , further comprising:

prior to receiving the request for debugging access, providing restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions.

6. The method of claim 1 , further comprising:

upon receipt of a command to exit debugging access while access to the set of debugging functions is being provided,

providing restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions, and

if the processing device is in the secure state, transitioning the processing device from the secure state to the insecure state.

7. The method of claim 1 , wherein the first memory device comprises a non-volatile memory store, and wherein the second memory device comprises a volatile memory store.

8. A processing device comprising a processor, a first memory device, and a second memory device, the processor being configured to:

receive a request for debugging access;

determine if the processing device is in an insecure state or a secure state;

if the processing device is determined to be in the insecure state when the request for debugging access is received,

deny access to at least one encryption key stored on the processing device such that decryption of encrypted data stored on the first memory device is not permitted,

overwrite unencrypted data in the second memory device, and

provide access to a set of debugging functions; and

if the processing device is determined to be in the secure state when the request for debugging access is received,

permit access to the at least one encryption key such that decryption of encrypted data stored on the first memory device is permitted, and

provide access to the set of debugging functions.

9. The processing device of claim 8 , wherein the processor is further configured to:

receive a request to transition the processing device from the insecure state to the secure state, the request to transition the processing device comprising a password;

compare the received password to a password stored in a secure, non-volatile memory; and

if the received password matches the stored password, transition the processing device from the insecure state to the secure state.

10. The processing device of claim 9 , wherein at least one of the request for debugging access or the received password is received via a debugging port interface.

11. The processing device of claim 9 , wherein at least one of the request for debugging access or the received password is received via a JTAG port interface.

12. The processing device of claim 8 , wherein the processor is further configured to:

prior to receiving the request for debugging access, provide restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions.

13. The processing device of claim 8 , wherein the processor is further configured to:

receive a command to exit debugging access;

if the command to exit debugging access is received while access to the set of debugging functions is being provided,

provide restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions, and

if the processing device is in the secure state when the command to exit debugging access is received, transition the processing device from the secure state to the insecure state.

14. The processing device of claim 8 , wherein the first memory device comprises a non-volatile memory store, and wherein the second memory device comprises a volatile memory store.

15. A computer readable storage medium comprising instructions that, when executed by a processor of a processing device comprising a first memory device and a second memory device, cause the processing device to perform acts of a method of providing debugging access to the processing device, the acts comprising:

receiving a request for debugging access;

if the processing device is in an insecure state,

denying access to at least one encryption key stored on the processing device such that decryption of encrypted data stored on the first memory device is not permitted,

overwriting unencrypted data in the second memory device, and

providing access to a set of debugging functions; and

if the processing device is in a secure state,

permitting access to the at least one encryption key such that decryption of encrypted data stored on the first memory device is permitted, and

providing access to the set of debugging functions.

16. The medium of claim 15 , wherein the acts further comprise:

receiving a request to transition the processing device from the insecure state to the secure state, the request to transition the processing device comprising a password;

comparing the received password to a password stored in a secure, non-volatile memory; and

if the received password matches the stored password, transitioning the processing device from the insecure state to the secure state.

17. The medium of claim 16 , wherein at least one of the request for debugging access or the received password is received via a debugging port interface.

18. The medium of claim 16 , wherein at least one of the request for debugging access or the received password is received via a JTAG port interface.

19. The medium of claim 15 , wherein the acts further comprise:

prior to receiving the request for debugging access, providing restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions.

20. The medium of claim 15 , wherein the acts further comprise:

upon receipt of a command to exit debugging access while access to the set of debugging functions is being provided,

providing restricted debugging access, the restricted debugging access comprising access to some but not all functions of the set of debugging functions, and

if the processing device is in the secure state, transitioning the processing device from the secure state to the insecure state.

21. The medium of claim 15 , wherein the first memory device comprises a non-volatile memory store, and wherein the second memory device comprises a volatile memory store.

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 Nov 3, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034150/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2012
From: LITTLE, HERBERT A.; RANDELL, JERROLD R.; MADTER, RICHARD C.; HICKEY, RYAN J.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028498/0448 →
Continuity (4)
Continuation 12325853 · Dec 1, 2008
Continuation 11049987 · Feb 4, 2005
Provisional Application 60542173 · Feb 5, 2004
Related Publication 20120278630A1 · Nov 1, 2012