IP Library Granted Patent US 9,183,158
Granted Patent B2
US 9,183,158 · App. 14/141,230 · Granted Nov 10, 2015

System and method for hardware based security

Inventors: Daniel Francis O'Loughlin (Aptos, CA); Keelan Smith (Toronto, CA); Jay Scott Fuller (Scotts Valley, CA); William Lundy Lattin (Los Altos, CA); Marinus Struik (Toronto, CA); Yuri Poeluev (Waterloo, CA); Matthew John Campagna (Ridgefield, CT); Thomas Rudolf Stiemerling (Toronto, CA); Weicheng Joseph Ku (San Jose, CA)
Assignee: Certicom Corp.
G06F12/1408G06F21/123G06F21/57G06F21/72G06F21/73G06F21/76H04L9/0877H04L9/3066H04L9/3252H04L9/3263H04L9/3273G06F2221/2101
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 9,183,158
App. No.
14/141,230
Granted
Nov 10, 2015
Kind
B2
Abstract

An asset management system is provided, which includes a hardware module operating as an asset control core. The asset control core generally includes a small hardware core embedded in a target system on chip that establishes a hardware-based point of trust on the silicon die. The asset control core can be used as a root of trust on a consumer device by having features that make it difficult to tamper with. The asset control core is able to generate a unique identifier for one device and participate in the tracking and provisioning of the device through a secure communication channel with an appliance. The appliance generally includes a secure module that caches and distributes provisioning data to one of many agents that connect to the asset control core, e.g. on a manufacturing line or in an after-market programming session.

Claims (69)

1. A method for managing resources of a device, comprising:

receiving, by a system-on-chip (SoC) in the device, from a primary customer, a request to access one or more resources of the SoC, the SoC includes a protected non-volatile memory (NVM), a feature register, programming history, and a plurality of resources including the one or more resources, wherein the feature register stores customer identifiers (CIDs) and controls a set of customer-dependent product features when the device is activated;

identifying a primary customer identifier (CID) based on the received request;

authenticating the primary customer using a certificate including the primary CID that matches a CID stored in a cyprtographic security engine embedded in the device;

determining, using the feature register and the primary CID, whether the SoC grants, to the primary customer, access to the one or more resources; and

updating the NVM with a secondary CID for a secondary customer to identify the one or more resources as accessible by the secondary customer;

wherein the programming history is configured to store information that tracks programming or configuration of the SoC by the primary and secondary customers; and

wherein the primary customer has full control to enable resources and a state of the protected NVM a configuration associated with the primary customer while the secondary customers are allowed to activate another configuration based on associated service plans.

2. The method of claim 1 , wherein the one or more resources includes at least one of a feature, a parameter, a key, data, or a hardware-module configuration data.

3. The method of claim 1 , wherein determining whether the SoC grants access to the one or more resources comprises referencing a configuration table.

4. The method of claim 3 , wherein the configuration table is encrypted for subsequent decryption with a private key associated with the primary customer.

5. The method of claim 3 , wherein the configuration table is associated with a distinct serial number.

6. The method of claim 3 , wherein in response to referencing the configuration table, providing to the primary customer at least one of a serial number and a message authentication code (MAC) for preventing altering of the response.

7. The method of claim 1 , further comprising:

receiving, from the primary customer, a request to grant access to the one or more resources of the SoC;

authenticating the primary customer using the primary CID; and

updating the NVM to identify the one or more resources as accessible by the secondary customer.

8. The method of claim 1 , further comprising prohibiting access to one or more resources by the primary customer.

9. The method of claim 1 , further comprising:

identifying initialization of the device; and

uploading, from the NVM, to the feature register, a plurality of CIDs and information identifying accessible resources for each of the CIDs.

10. The method of claim 1 , wherein the authentication is based on the certificate including the CID, a static public key of the customer, and a signature of a Certificate Authority (CA) applied to the certificate.

11. The method of claim 1 , further comprising establishing secure communication between an Asset Control Core (ACC) including the NVM and the feature register, programming history and the respective primary and secondary customer, wherein access to the NVM and the feature register is secured with encryption and authentication using certificates.

12. The method of claim 11 , wherein the ACC is configured to allow enabling and disabling features associated with the resources based on pre-defined criteria associated with the primary customer.

13. The method of claim 11 , wherein authenticating the primary customer and determining access is performed via the ACC.

14. A system-on-chip (SoC), comprising:

a non-volatile memory (NVM) configured to store customer identifiers (CIDs) and information identifying accessible resources associated with a CID;

a feature register for storing the CIDs and the resource information when the device is activated;

programming history;

a plurality of resources configured to provide services; and one or more hardware processors configured to:

receive, by the system-on-chip (SoC), from a primary customer, a request to access one or more resources of the SoC, the SoC includes a protected non-volatile memory (NVM), a feature register, programming history, and a plurality of resources including the one or more resources, wherein the feature register stores customer identifies (CIDs) and controls a set of customer-dependent product features when the device is activated;

identify a primary customer identifier (CID) based on the received request;

authenticate the primary customer using a certificate including the primary CID that matches a CID stored in a cryptographic security engine embedded in the device;

determine, using the feature register and the primary CID, whether the SoC grants, to the primary customer, access to the one or more resources; and

update the NVM with a secondary CID for a secondary customer to identify the one or more resources as accessible by the secondary customer;

wherein the programming history is configured to store information that tracks programming or configuration of the SoC by the primary and secondary customers; and

wherein the primary customer has full control to enable resources and a state of the protected NVM a configuration associated with the primary customer while the secondary customers are allowed activate another configuration based on associated service plans.

15. The system-on-chip of claim 14 wherein the one or more resources includes at least one of a feature, a parameter, a key, data, or a hardware-module configuration data.

16. The system-on-chip of claim 14 , wherein the processor determining whether the SoC grants access to the one or more resources comprises referencing a configuration table.

17. The system-on-chip of claim 14 , wherein the processor is configured to receive, from the primary customer, a request to grant access to the one or more resources of the SoC;

authenticating the primary customer using the primary CID; and

updating the NVM to identify the one or more resources as accessible by the secondary customer.

18. The system-on-chip of claim 14 , wherein the processor is configured to further prohibit access to one or more resources by the primary customer.

19. A computer program product for managing resources of a device, the computer program product embodied in a non-transitory computer readable storage medium having instructions residing thereon when executed to:

receive, by a system-on-chip (SoC) in the device, from a primary customer, a request to access one or more resources of the SoC, the SoC includes a protected non-volatile memory (NVM), a feature register, programming history, and a plurality of resources including the one or more resources, wherein the feature register stores customer identifiers (CIDs) and controls a set of customer-dependent product features when the device is activated;

identify a primary customer identifier (CID) based on the received request;

authenticate the primary customer using a certificate including the primary CID that matches a CID stored in a cryptographic security engine embedded in the device;

determine, using the feature register and the primary CID, whether the SoC grants, to the primary customer, access to the one or more resources; and

update the NVM with a secondary CID for a secondary customer to identify the one or more resources as accessible by the secondary customer;

wherein the programming history is configured to store information that tracks programming or configuration of the SoC by the primary and secondary customers; and

wherein the primary customer has full control to enable resources and a state of the protected NVM a configuration associated with the primary customer while the secondary customers are allowed to activate another configuration based on associated service plans.

20. The computer program product of claim 19 , wherein the one or more resources includes at least one of a feature, a parameter, a key, data, or a hardware-module configuration data.

21. The computer program product of claim 19 , wherein determining whether the SoC grants access to the one or more resources comprises referencing a configuration table.

22. The computer program product of claim 21 , wherein the configuration table is encrypted for subsequent decryption with a private key associated with the primary customer.

23. The computer program product of claim 21 , wherein the configuration table is associated with a distinct serial number.

24. The computer program product of claim 21 , wherein the non-transitory computer readable storage medium has instructions residing thereon when executed to:

in response to referencing the configuration table, provide to the primary customer at least one of a serial number and a message authentication code (MAC) for preventing altering of the response.

25. The computer program product of claim 19 , wherein the non-transitory computer readable storage medium has instructions residing thereon when executed to:

receive, from the primary customer, a request to grant access to the one or more resources of the SoC;

authenticate the primary customer using the primary CID; and

update the NVM to identify the one or more resources as accessible by the secondary customer.

26. The computer program product of claim 19 , wherein the non-transitory computer readable storage medium has instructions residing thereon when executed to prohibit access to one or more resources by the primary customer.

27. The computer program product of claim 19 , wherein the non-transitory computer readable storage medium has instructions residing thereon when executed to:

identify initialization of the device; and

upload, from the NVM, to the feature register, a plurality of CIDs and information identifying accessible resources for each of the CIDs.

28. The computer program product of claim 19 , wherein the authentication is based on the certificate including the CID, a static public key of the customer, and a signature of a Certificate Authority (CA) applied to the certificate.

29. The computer program product of claim 19 , wherein the non-transitory computer readable storage medium has instructions residing thereon when executed to establish secure communication between an Asset Control Core (ACC) including the NVM and the feature register, programming history and the respective primary and secondary customer, wherein access to the NVM and the feature register is secured with encryption and authentication using certificates.

30. The computer program product of claim 29 , wherein the ACC is configured to allow enabling and disabling features associated with the resources based on pre-defined criteria associated with the primary customer.

31. The computer program product of claim 29 , wherein authenticating the primary customer and determining access is performed via the ACC.

Assignments (7)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2015
From: O'LOUGHLIN, DANIEL; FULLER, JAY SCOTT; KU, JOSEPH; LATTIN, WILLIAM; CAMPAGNA, MATTHEW J.
To: CERTICOM (U.S.) LIMITED
Reel/Frame 035649/0350 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2015
From: CERTICOM (U.S.) LIMITED
To: CERTICOM CORP.
Reel/Frame 035704/0034 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2015
From: SMITH, KEELAN; POELUEV, YURI; STIEMERLING, THOMAS
To: CERTICOM CORP.
Reel/Frame 035649/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2015
From: STRUIK, MARINUS
To: CERTICOM CORP.
Reel/Frame 035649/0479 →
Continuity (4)
Continuation 13131019
Provisional Application 61193391 · Nov 24, 2008
Provisional Application 61224801 · Jul 10, 2009
Related Publication 20140108825A1 · Apr 17, 2014