IP Library Granted Patent US 8,528,102
Granted Patent B2
US 8,528,102 · App. 11/753,414 · Granted Sep 3, 2013

Method and system for protection of customer secrets in a secure reprogrammable system

Inventors: Xuemin Chen (San Diego, CA); Iue Shuenn Chen (San Diego, CA); Stephane Rodgers (San Diego, CA); Andrew Dellow (Minchinhampton, GB)
Assignee: Broadcom Corporation
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,528,102
App. No.
11/753,414
Granted
Sep 3, 2013
Kind
B2
Abstract

Methods and systems for protection of customer secrets in a secure reprogrammable system are disclosed, and may include controlling, via hardware logic and firmware, access to customer specific functions. The firmware may comprise trusted code, and may comprise boot code, stored in non-volatile memory, which may comprise read only memory, or a locked flash memory. A customer mode may be checked via the trusted code prior to allowing downloading of code written by a customer to the reprogrammable system. Access to customer specific functions may be restricted via commands from a trusted source. The hardware logic may be latched at startup in a disabled mode by the firmware, determined by the customer mode stored in a one time programmable memory. The customer mode may be re-checked utilizing the firmware, and may disallow the use of code other than trusted code in the reprogrammable system when the re-checking fails.

Claims (46)

1. A method for software security, in a reprogrammable system that handles a plurality of customer specific functions for a corresponding plurality of customers, the method comprising:

storing, in memory, as firmware, a plurality of user-specific algorithms;

controlling, via hardware logic and a particular user-specific algorithm, access to one or more of said plurality of customer specific functions for a particular customer while excluding access to all other customer-specific functions of all other of said plurality of customers once said reprogrammable system is configured for a particular customer, thereby defining a customer mode;

wherein the excluding access to all other customer-specific functions of all other of said plurality of customers includes latching said hardware logic in a disabled mode by said firmware for said all other customer-specific functions of all other of said plurality of customers, and

wherein the user-specific algorithm comprises a unique customer-specific key used to control the access to the one or more of said plurality of customer specific functions and a common key used to control access to non-customer specific functions.

2. The method according to claim 1 , wherein said firmware comprises trusted code stored in non-volatile memory.

3. The method according to claim 2 , comprising checking said customer mode, via said trusted code, prior to allowing downloading of code written by one of said plurality of customers, to said reprogrammable system.

4. The method according to claim 2 , wherein said non-volatile memory comprises read only memory.

5. The method according to claim 2 , wherein said non-volatile memory comprises a locked flash memory.

6. The method according to claim 2 , wherein boot code for said reprogrammable system is stored in said non-volatile memory.

7. The method according to claim 1 , comprising restricting said access to one or more of said plurality of customer specific functions via commands from a trusted source.

8. The method according to claim 1 , wherein said latching is performed at startup of said reprogrammable system.

9. The method according to claim 1 , comprising re-checking said customer mode utilizing said firmware.

10. The method according to claim 9 , comprising disallowing use of code other than trusted code in said reprogrammable system when said re-checking fails.

11. The method according to claim 1 , wherein said customer mode for said particular customer is stored in a one time programmable memory.

12. A system for software security, the system comprising:

one or more circuits for use in a reprogrammable system, said one or more circuits handles a plurality of customer specific functions for a corresponding plurality of customers;

memory configured to store firmware and a plurality of user-specific algorithms; and

said one or more circuits comprising hardware logic and a particular user-specific algorithm that control access to one or more of said plurality of customer specific functions for a particular customer while excluding access to all other customer-specific functions of all other of said plurality of customers once said reprogrammable system is configured for a particular customer, thereby defining a customer mode,

wherein the user-specific algorithm comprises a unique customer-specific key used to control the access to the one or more of said plurality of customer specific functions and a common key used to control access to non-customer specific functions, and

wherein said one or more circuits enables latching said hardware logic in a disabled mode by said firmware for said all other customer-specific function of all other of said plurality of customers.

13. The system according to claim 12 , wherein said firmware comprises trusted code stored in non-volatile memory.

14. The system according to claim 13 , wherein said one or more circuits enables checking said customer mode, via said trusted code, prior to allowing downloading of code written by one of said plurality of customers, to said reprogrammable system.

15. The system according to claim 13 , wherein said non-volatile memory comprises read only memory.

16. The system according to claim 13 , wherein said non-volatile memory comprises a locked flash memory.

17. The system according to claim 13 , wherein boot code for said reprogrammable system is stored in said non-volatile memory.

18. The system according to claim 12 , wherein said one or more circuits enables restricting said access to one or more of said plurality of customer specific functions via commands from a trusted source.

19. The system according to claim 12 , wherein said latching is performed at startup of said reprogrammable system.

20. The system according to claim 12 , wherein said one or more circuits enables re-checking said customer mode utilizing said firmware.

21. The system according to claim 20 , wherein said one or more circuits enables disallowing use of code other than trusted code in said reprogrammable system when said re-checking fails.

22. The system according to claim 12 , wherein said customer mode for said particular customer is stored in a one time programmable memory.

23. A non-transitory machine-readable storage having stored thereon, a computer program having at least one code section for software security in a reprogrammable system that handles a plurality of customer specific functions for a corresponding plurality of customers, the at least one code section being executable by a machine for causing the machine to perform steps comprising:

storing, in memory, as firmware, a plurality of user-specific algorithms;

controlling, via hardware logic and a particular user-specific algorithm, access to one or more of said plurality of customer specific functions for a particular customer while excluding access to all other customer-specific functions of all other of said plurality of customers once said reprogrammable system is configured for a particular customer, thereby defining a customer mode;

wherein the excluding access to all other customer-specific functions of all other of said plurality of customers includes latching said hardware logic in a disabled mode by said firmware for said all other customer-specific functions of all other of said plurality of customers, and

wherein the user-specific algorithm comprises a unique customer-specific key used to control the access to the one or more of said plurality of customer specific functions and a common key used to control access to non-customer specific functions.

24. The non-transitory machine readable storage according to claim 23 , wherein said firmware comprises trusted code stored in non volatile memory.

25. The non-transitory machine readable storage according to claim 24 , wherein said at least one code section comprises code for checking said customer mode, via said trusted code, prior to allowing downloading of code written by one of said plurality of customers, to said reprogrammable system.

26. The non-transitory machine readable storage according to claim 24 , wherein said non-volatile memory comprises read only memory.

27. The non-transitory machine readable storage according to claim 24 , wherein said non-volatile memory comprises a locked flash memory.

28. The non-transitory machine readable storage according to claim 23 , wherein boot code for said reprogrammable system is stored in said non-volatile memory.

29. The non-transitory machine readable storage according to claim 23 , wherein said at least one code section comprises code for restricting said access to one or more of said plurality of customer specific functions via commands from a trusted source.

30. The non-transitory machine readable storage according to claim 23 , wherein said at least one code section comprises code for performing said latching at startup of said reprogrammable system.

31. The non-transitory machine readable storage according to claim 23 , wherein said at least one code section comprises code for re-checking said customer mode utilizing said firmware.

32. The non-transitory machine readable storage according to claim 31 , wherein said at least one code section comprises code for disallowing use of code other than trusted code in said reprogrammable system when said re-checking fails.

33. The non-transitory machine readable storage according to claim 23 , wherein said customer mode for said particular customer is stored in a one time programmable memory.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2007
From: CHEN, XUEMIN; CHEN, IUE-SHUENN; RODGERS, STEPHANE; DELLOW, ANDREW
To: BROADCOM CORPORATION
Reel/Frame 019451/0024 →
Continuity (2)
Provisional Application 60828580 · Oct 6, 2006
Related Publication 20080086780A1 · Apr 10, 2008