IP Library › Granted Patent US 12,375,272
Granted Patent B2
US 12,375,272 · App. 18/114,693 · Granted Jul 29, 2025

Key rotation for device application authentication

Inventors: Ruben Erick Escolero (San Francisco, CA); Michael Freed (Pleasanton, CA); Fiona Hall-Zazueta (San Jose, CA); Jason Trung Hoa Tang (San Jose, CA)
Assignee: Cisco Technology, Inc.
H04L9/0894H04L9/0825
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 12,375,272
App. No.
18/114,693
Granted
Jul 29, 2025
Kind
B2
Abstract

In various embodiments, a server stores a set of cryptographic keys associated with a client that includes a server-stored bootstrap key, a server-stored authentication key, and a server-stored proposed key. The server receives an authentication request from the client that includes a client-indicated bootstrap key, a client-indicated authentication key, and a client-indicated proposed key. The server makes a determination that the client is authenticated based in part on whether there is a match between the client-indicated authentication key and either the server-stored authentication key or the server-stored proposed key. The server provides, based on the determination, an authentication response to the client indicating that the client has been authenticated.

Claims (53)

1. A method comprising:

storing, by a server, a set of cryptographic keys associated with a client that includes a server-stored bootstrap key, a server-stored authentication key, and a server-stored proposed key;

receiving, at the server, an authentication request from the client that includes a client-indicated bootstrap key, a client-indicated authentication key, and a client-indicated proposed key;

making, by the server, a determination that the client is authenticated based in part on whether there is a match between the client-indicated authentication key and either the server-stored authentication key or the server-stored proposed key; and

providing, by the server and based on the determination, an authentication response to the client indicating that the client has been authenticated.

2. The method as in claim 1 , wherein the client sets its client-indicated authentication key to the client-indicated proposed key, in response to the authentication response.

3. The method as in claim 1 , further comprising:

setting, by the server, the server-stored proposed key to the client-indicated proposed key, when the client-indicated authentication key matches the server-stored authentication key.

4. The method as in claim 1 , further comprising:

setting, by the server, the server-stored authentication key to the client-indicated proposed key, when the client-indicated authentication key matches the server-stored proposed key; and

setting, by the server, the server-stored proposed key to be null, when the client-indicated authentication key matches the server-stored proposed key.

5. The method as in claim 1 , further comprising:

entering a recovery mode of the server, in response to a request to do so from a user interface, wherein the server makes the determination that the client is authenticated when the client-indicated bootstrap key matches the server-stored bootstrap key and while in its recovery mode.

6. The method as in claim 5 , further comprising:

setting, by the server and while in its recovery mode, the server-stored authentication key to the client-indicated authentication key and the server-stored proposed key to the client-indicated proposed key.

7. The method as in claim 5 , further comprising:

exiting the recovery mode after making the determination that the client is authenticated.

8. The method as in claim 1 , further comprising:

receiving, at the server and while in a bootstrap initialization mode of the server, an initial authentication request from the client that includes the client-indicated bootstrap key and an initial client-indicated proposed key; and

setting, by the server, the server-stored proposed key to the initial client-indicated proposed key, based on the client-indicated bootstrap key in the initial authentication request matching the server-stored bootstrap key.

9. The method as in claim 8 , further comprising:

exiting the bootstrap initialization mode, when the client-indicated bootstrap key in the initial authentication request matching the server-stored bootstrap key, wherein the server does not compare the server-stored bootstrap key to any client-indicated bootstrap key when the server is not in the bootstrap initialization mode.

10. The method as in claim 1 , wherein the client comprises a sensor or an actuator.

11. An apparatus, comprising:

one or more network interfaces;

a processor coupled to the one or more network interfaces and configured to execute one or more processes; and

a memory configured to store a process that is executable by the processor, the process when executed configured to:

store a set of cryptographic keys associated with a client that includes a server-stored bootstrap key, a server-stored authentication key, and a server-stored proposed key;

receive an authentication request from the client that includes a client-indicated bootstrap key, a client-indicated authentication key, and a client-indicated proposed key;

make a determination that the client is authenticated based in part on whether there is a match between the client-indicated authentication key and either the server-stored authentication key or the server-stored proposed key; and

provide, and based on the determination, an authentication response to the client indicating that the client has been authenticated.

12. The apparatus as in claim 11 , wherein the client sets its client-indicated authentication key to the client-indicated proposed key, in response to the authentication response.

13. The apparatus as in claim 11 , wherein the process when executed is further configured to:

set the server-stored proposed key to the client-indicated proposed key, when the client-indicated authentication key matches the server-stored authentication key.

14. The apparatus as in claim 11 , wherein the process when executed is further configured to:

set the server-stored authentication key to the client-indicated proposed key, when the client-indicated authentication key matches the server-stored proposed key; and

set the server-stored proposed key to be null, when the client-indicated authentication key matches the server-stored proposed key.

15. The apparatus as in claim 11 , wherein the process when executed is further configured to:

enter a recovery mode, in response to a request to do so from a user interface, wherein the apparatus makes the determination that the client is authenticated when the client-indicated bootstrap key matches the server-stored bootstrap key and while in its recovery mode.

16. The apparatus as in claim 15 , wherein the process when executed is further configured to:

set, by the apparatus and while in its recovery mode, the server-stored authentication key to the client-indicated authentication key and the server-stored proposed key to the client-indicated proposed key.

17. The apparatus as in claim 15 , wherein the process when executed is further configured to:

exit the recovery mode after making the determination that the client is authenticated.

18. The apparatus as in claim 11 , wherein the process when executed is further configured to:

receive, while in a bootstrap initialization mode of the apparatus, an initial authentication request from the client that includes the client-indicated bootstrap key and an initial client-indicated proposed key; and

set the server-stored proposed key to the initial client-indicated proposed key, based on the client-indicated bootstrap key in the initial authentication request matching the server-stored bootstrap key.

19. The apparatus as in claim 18 , wherein the process when executed is further configured to:

exit the bootstrap initialization mode, when the client-indicated bootstrap key in the initial authentication request matching the server-stored bootstrap key, wherein the apparatus does not compare the server-stored bootstrap key to any client-indicated bootstrap key when not in the bootstrap initialization mode.

20. A tangible, non-transitory, computer-readable medium storing program instructions that cause a server to execute a process comprising:

storing, by a server, a set of cryptographic keys associated with a client that includes a server-stored bootstrap key, a server-stored authentication key, and a server-stored proposed key;

receiving, at the server, an authentication request from the client that includes a client-indicated bootstrap key, a client-indicated authentication key, and a client-indicated proposed key;

making, by the server, a determination that the client is authenticated based in part on whether there is a match between the client-indicated authentication key and either the server-stored authentication key or the server-stored proposed key; and

providing, by the server and based on the determination, an authentication response to the client indicating that the client has been authenticated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2023
From: ESCOLERO, RUBEN ERICK; FREED, MICHAEL; HALL-ZAZUETA, FIONA; TANG, JASON TRUNG HOA
To: CISCO TECHNOLOGY, INC.
Reel/Frame 062813/0324 →
Continuity (2)
Provisional Application 63418301 · Oct 21, 2022
Related Publication 20240137220A1 · Apr 25, 2024
References Cited (18)
US 8565422B2 · Lee et al. · 2013 [cited by applicant]
US 10581820B2 · Keshava et al. · 2020 [cited by applicant]
US 10742626B2 · Oberheide et al. · 2020 [cited by applicant]
US 10992472B2 · Gehrmann · 2021 [cited by applicant]
US 11522684B2 · Sreeravindra · 2022 [cited by applicant]
US 20060143453A1 · Imamoto · 2006 [cited by examiner]
US 20080130902A1 · Foo Kune · 2008 [cited by examiner]
US 20170214664A1 · Birgisson et al. · 2017 [cited by applicant]
US 20180191501A1 · Lindemann · 2018 [cited by examiner]
US 20190306154A1 · Girdhar · 2019 [cited by examiner]
US 20190356482A1 · Nix · 2019 [cited by applicant]
US 20210218567A1 · Richards et al. · 2021 [cited by applicant]
Dagan, Roy, “Password Rotation Can Make or Break Your Security Posture”, online: https://venturebeat.com/enterprise/password-rotation-can-make-or-break-your-security-posture/, Feb. 18, 2022, 7 pages, VentureBeat. [cited by applicant]
“Key Rotation”, online: https://cloud.google.com/kms/docs/key-rotation, accessed Feb. 23, 2023, 3 pages. [cited by applicant]
“Rotating AWS KMS keys”, online: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html, online: https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html, accessed Feb. 23, 2023, 10 pages. [cited by applicant]
“Rotating Keys”, online: https://cloud.google.com/kms/docs/rotating-keys#kms-create-key-rotation-schedule-console, accessed Feb. 23, 2023, 10 pages. [cited by applicant]
Everspaugh, et al., “Key Rotation for Authenticated Encryption”, Advances in Cryptology—CRYPTO 2017. CRYPTO 2017. Lecture Notes in Computer Science( ), vol. 10403, 37 pages, Springer, Cham. [cited by applicant]
European Search Report in European Patent Application No. 23201710.3, dated Dec. 18, 2023, 8 Pages. [cited by applicant]