IP Library Granted Patent US 10,616,197
Granted Patent B2
US 10,616,197 · App. 15/131,919 · Granted Apr 7, 2020

Message authentication with secure code verification

Inventors: Kerry Maletsky (Monument, CO); Oscar Sanchez (Colorado Springs, CO); Nicolas Schieli (Los Gatos, CA)
Assignee: Atmel Corporation
H04L63/08H04L9/3242H04L9/3247H04L63/12H04L67/025H04L67/125H04L67/32H04L67/42
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 10,616,197
App. No.
15/131,919
Granted
Apr 7, 2020
Kind
B2
Abstract

Systems, methods, circuits and computer-readable mediums for message authentication with secure code verification are provided. In one aspect, a system includes a client device storing a code and a security device coupled to the client device. The security device is configured to receive a property of the code generated by the client device, verify correctness of the property of the code based on information associated with the code to determine that the code is an authorized code, the information being stored within the security device. In response to determining that the code is the authorized code, the security device enables to access data stored within the security device and generate a property of a message based on the data.

Claims (73)

1. A system comprising:

a client device storing a code; and

a security device physically arranged adjacent to the client device and coupled to the client device through a local connection, the security device being configured to:

select a plurality of memory address ranges of an authorized code;

determine a respective portion of the authorized code for each of the plurality of memory address ranges;

calculate a respective first property of each determined portion of the authorized code;

store first information indicative of the respective first properties of the portions of the authorized code and second information indicative of the respective memory address ranges in the security device;

respectively associate memory address ranges from among the plurality of memory address ranges with first properties from among the first properties of the portions;

receive a first property of the code from the client device, the first property of the code being generated by the client device;

determine that the code is the authorized code by verifying correctness of the first property of the code based on information associated with the code and stored within the security device;

after determining that the code is the authorized code, authenticate the client device and enable the security device to access first data stored within the security device; and

generate a second property of a first message based on the first data.

2. The system of claim 1 , wherein the client device is configured to:

receive the generated second property of the first message from the security device;

generate the second property of a second message based on second data stored within the client device, the second data corresponding to the first data stored within the security device;

determine whether the generated second property of the second message is valid based on the received generated second property of the first message;

in response to determining that the generated second property of the second message is valid, run, at the client device, an application on the client device using the code; and

otherwise, in response to determining that the generated property of the second message is invalid, restrain the client device from running the application on the client device using the code.

3. The system of claim 2 , wherein the client device is configured to send a nonce to the security device, and

wherein the first message comprises the nonce, and the second message comprises the nonce.

4. The system of claim 3 , wherein the first message comprises the received first property of the code, and wherein the second message comprises the first property of the code.

5. The system of claim 2 , wherein the security device is configured to:

in response to determining that the code is the authorized code, send a value indicating successful verification of the code to the client device; and

receive a nonce from the client device,

wherein the first message comprises the value and the nonce, and the second message comprises the received value and nonce.

6. The system of claim 1 , wherein the security device is configured to:

receive the first message from the client device, the first message being directed to a remote device;

append the generated second property of the first message to the first message; and

causing the first message to be sent, along with the appended second property of the first message, to the remote device.

7. The system of claim 1 , wherein the code includes a boot code stored within the client device.

8. The system of claim 1 , wherein the second property of the first message comprises a message authentication code (MAC) of the first message.

9. The system of claim 1 , wherein the local connection comprises a data cable, a hardware interface, a conductor, or a conductive connection on a circuit board.

10. The system of claim 1 , configured to communicate with a remote device through a network, wherein the client device is configured to communicate with the remote device through the security device.

11. The system of claim 1 , wherein the received first property of the code comprises a first property of a portion of the code that corresponds to a particular memory address range of the plurality of memory address ranges, and

wherein the information comprises a respective first property of a particular portion of the authorized code associated with the particular memory address range.

12. A non-transitory computer-readable storage medium having instructions stored thereon which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

selecting a plurality of memory address ranges of an authorized code;

determining a respective portion of the authorized code for each of the plurality of memory address ranges;

calculating a respective property of each determined portion of the authorized code;

storing first information indicative of the respective properties of the portions of the authorized code and second information indicative of the respective memory address ranges in a security device;

respectively associating memory address ranges from among the plurality of memory address ranges with properties from among the properties of the portions;

accessing a property of a code, the code being stored within a client device;

determining that the code is the authorized code by verifying correctness of the property of the code based on information associated with the code and stored within the security device, the security device being physically arranged adjacent to the client device and coupled to the client device through a local connection;

after determining that the code is the authorized code, authenticating the client device and accessing data stored within the security device; and

generating a property of a message based on the data.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: in response to determining that the code is the authorized code, causing a value indicating successful verification of the code to be sent to the client device; and accessing a nonce from the client device, wherein the message comprises the value and the nonce.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: accessing, at the security device, a nonce from the client device, and wherein the message comprises the nonce.

15. The non-transitory computer-readable storage medium of claim 12 , wherein the message comprises the property of the code.

16. The non-transitory computer-readable storage medium of claim 12 , wherein the property of the code comprises a digest of the code generated by the client device, wherein information associated with the code comprises a signature of the authorized code stored within the security device, and wherein the verifying correctness of the property of the code comprises: generating a signature of the code based on the digest of the code and a public key stored within the security device; and determining that the generated signature of the code matches the stored signature of the authorized code.

17. The non-transitory computer-readable storage medium of claim 12 , wherein the property of the code comprises scrambled data of the code, wherein the operations comprise: descrambling, at the security device, the scrambled data of the code; and generating a digest of the descrambled data of the code, and wherein the verifying correctness of the property of the code comprises: generating a signature of the code based on the generated digest and a public key stored within the security device; and determining that the generated signature of the code matches the signature of the authorized code.

18. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: selecting a particular memory address range from among the plurality of memory address ranges; and causing data indicating the particular memory address range to be sent to the client device, the particular memory address range corresponding to a particular portion of the authorized code.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the property of the code comprises a digest of a portion of the code, and wherein the verifying correctness of the property of the code comprises: determining that the digest of the portion of the code matches a digest of the particular portion of the authorized code stored in the security device.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the property of the code comprises scrambled data of a portion of the code, wherein the operations comprise: descrambling, at the security device, the scrambled data of the portion of the code to get a descrambled portion of the code; and generating a digest of the descrambled portion of the code, and wherein the verifying correctness of the property of the code comprises: determining that the generated digest of the descrambled portion of the code matches the stored digest of the particular portion of the authorized code.

21. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: accessing an entire image of the authorized code; accessing a signature of the authorized code; calculating a digest of the entire image of the authorized code; generating a signature of the digest based on a public key stored within the security device; and verifying authenticity of the entire image of the authorized code based on the accessed signature and the generated signature.

22. The non-transitory computer-readable storage medium of claim 12 , wherein the property of the code comprises a digest of the code generated by the client device, wherein information associated with the code comprises a public key stored within the security device, and wherein the operations comprise: accessing, at the security device, a signature of the authorized code from the client device, the signature of the authorized code being stored within the client device; and generating a signature of the received digest of the code based on the stored public key, and wherein the verifying correctness of the property of the code comprises: determining that the generated signature of the digest of the code matches the received signature of the authorized code.

23. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: accessing the message from the client device, the message being directed to a remote device; appending the generated property of the message to the message; and causing the message to be sent, along with the appended property of the message, to the remote device.

24. The non-transitory computer-readable storage medium of claim 12 , wherein the property of the message comprises a message authentication code (MAC) of the message.

25. The non-transitory computer-readable storage medium of claim 12 , wherein the operations comprise: accessing a property of second code; verifying incorrectness of the property of the second code based on information associated with the second code and stored within the security device; and based on the verifying incorrectness of the property of the second code, disabling the security device to access the data stored in the security device.

26. The non-transitory computer-readable storage medium of claim 25 , wherein the operations comprise: based on the verifying incorrectness of the property of the second code, preventing the client device from communicating with a remote device through a network.

27. The non-transitory computer-readable storage medium of claim 12 , wherein the local connection comprises a data cable, a hardware interface, a conductor, or a conductive connection on a circuit board.

28. A method comprising:

selecting a plurality of memory address ranges of an authorized code;

determining a respective portion of the authorized code for each of the plurality of memory address ranges;

calculating a respective property of each determined portion of the authorized code;

storing first information indicative of the respective properties of the portions of the authorized code and second information indicative of the respective memory address ranges in a security device;

respectively associating memory address ranges from among the plurality of memory address ranges with properties from among the properties of the portions;

receiving, at the security device, a property of code from a client device, the code being stored within the client device, the security device being physically arranged adjacent to the client device and coupled to the client device through a local connection;

determining, by the security device, that the code is the authorized code by verifying correctness of the property of the code based on information associated with the code and stored within the security device; and

after determining that the code is the authorized code, authenticating the client device and enabling the security device to access data stored within the security device; and

generating, by the security device, a property of a message based on the data.

29. The method of claim 28 , wherein the local connection comprises a data cable, a hardware interface, a conductor, or a conductive connection on a circuit board.

30. The method of claim 28 , wherein the received property of the code comprises a property of a portion of the code that corresponds to a particular memory address range of the plurality of memory address ranges, and

wherein the information comprises a respective property of a particular portion of the authorized code associated with the particular memory address range.

Assignments (19)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 060894/0437 →
RELEASE OF SECURITY INTEREST Recorded Mar 11, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059363/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059863/0400 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0335 →
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059263/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: ATMEL CORPORATION
Reel/Frame 059262/0105 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 19, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 058214/0625 →
SECURITY INTEREST Recorded Jun 4, 2021
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 057935/0474 →
SECURITY INTEREST Recorded Dec 24, 2020
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055671/0612 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052856/0909 →
SECURITY INTEREST Recorded Jun 5, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 053468/0705 →
RELEASE OF SECURITY INTEREST Recorded May 30, 2020
From: JPMORGAN CHASE BANK, N.A, AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 053466/0011 →
SECURITY INTEREST Recorded Apr 24, 2020
From: MICROCHIP TECHNOLOGY INC.; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 053311/0305 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
SECURITY INTEREST Recorded Feb 10, 2017
From: ATMEL CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041715/0747 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2016
From: MALETSKY, KERRY; SANCHEZ, OSCAR; SCHIELI, NICOLAS
To: ATMEL CORPORATION
Reel/Frame 038391/0722 →
Continuity (1)
Related Publication 20170302640A1 · Oct 19, 2017