IP Library › Granted Patent US 10,389,535
Granted Patent B2
US 10,389,535 · App. 15/446,677 · Granted Aug 20, 2019

Using public keys provided by an authentication server to verify digital signatures

Inventors: Thomas Fiege (Salinas, CA); Michael P. Groover (Vail, AZ); Mark E. Hack (Austin, TX)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L9/3247G06F21/31H04L9/0894H04L9/14H04L9/3271H04L63/061H04L63/123G06F2221/2103
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,389,535
App. No.
15/446,677
Granted
Aug 20, 2019
Kind
B2
Abstract

Provided are a computer program product, system, and method for using public keys provided by an authentication server to verify digital signatures. A plurality of public keys from a plurality of public-private key pairs and stored in a local key store. A request is received to access computational resources in the system. A challenge is returned in response to the request. A response to the challenge is received comprising a purported digitally signed challenge. A determination is made as to whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store. A determination is made as to whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge.

Claims (88)

1. A computer program product to manage cryptographic keys in a system, wherein the computer program product comprises a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:

receiving a plurality of public keys from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge;

invalidating the first public key in response to determining that the first public key did not verify the purported digitally signed challenge; and

indicating to use the second public key to verify a next received purported digitally signed challenge in response to invalidating the first public key and verifying the purported digitally signed challenge with the second public key.

2. The computer program product of claim 1 , wherein the operations of receiving the response, using the first and second public keys to verify the purported digitally signed challenge, and invalidating the first public key are performed while the system maintains no network connection to an authentication server that generates the public keys.

3. The computer program product of claim 1 , wherein the operations further comprise:

granting access to the computational resource in the system in response to determining that the first or the second public key verified the purported digitally signed challenge.

4. The computer program product of claim 1 , wherein the request to access the computational resource in the system comprises a request from a system technician to service the system, wherein the system technician provides the challenge to an authentication server to generate a digital signature of the challenge, and wherein the system technician provides the digital signature of the challenge to the system.

5. A computer program product to manage cryptographic keys in a system, wherein the computer program product comprises a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:

receiving a plurality of public keys, associated with an order, from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge, wherein the first public key and the second public key are the first and second public keys in the order; and

in response determining that the first and second public keys did not verify the purported digitally signed challenge, selecting a next public key of the public keys in the order following a previous used public key to use to verify the purported digitally signed challenge.

6. The computer program product of claim 5 , wherein the operations further comprise:

in response to the next public key verifying the purported digitally signed challenge, invalidating the public keys that failed to verify the purported digitally signed challenge; and

reordering the public keys from the next public key, following public keys according to the order, that verified the purported digitally signed challenge.

7. The computer program product of claim 5 , wherein the operations further comprise:

in response to determining that all of the public keys available in the local key store failed to verify the purported digitally signed challenge, returning failure to the response to the challenge.

8. A system comprising:

a processor; and

a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:

receiving a plurality of public keys from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge;

invalidating the first public key in response to determining that the first public key did not verify the purported digitally signed challenge; and

indicating to use the second public key to verify a next received purported digitally signed challenge in response to invalidating the first public key and verifying the purported digitally signed challenge with the second public key.

9. The system of claim 8 , wherein the operations of receiving the response, using the first and second public keys to verify the purported digitally signed challenge, and invalidating the first public key are performed while the system maintains no network connection to an authentication server that generates the public keys.

10. The system of claim 8 , wherein the operations further comprise:

granting access to the computational resource in the system in response to determining that the first or the second public key verified the purported digitally signed challenge.

11. The system of claim 8 , wherein the request to access the computational resource in the system comprises a request from a system technician to service the system, wherein the system technician provides the challenge to an authentication server to generate a digital signature of the challenge, and wherein the system technician provides the digital signature of the challenge to the system.

12. A system comprising:

a processor; and

a computer readable storage medium having computer readable program instructions executed by a processor to perform operations, the operations comprising:

receiving a plurality of public keys, associated with an order, from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge, wherein the first public key and the second public key are the first and second public keys in the order; and

in response determining that the first and second public keys did not verify the purported digitally signed challenge, selecting a next public key of the public keys in the order following a previous used public key to use to verify the purported digitally signed challenge.

13. The system of claim 12 , wherein the operations further comprise:

in response to the next public key verifying the purported digitally signed challenge, invalidating the public keys that failed to verify the purported digitally signed challenge; and

reordering the public keys from the next public key, following public keys according to the order, that verified the purported digitally signed challenge.

14. The system of claim 12 , wherein the operations further comprise:

in response to determining that all of the public keys available in the local key store failed to verify the purported digitally signed challenge, returning failure to the response to the challenge.

15. A method for managing cryptographic keys in a system, comprising:

receiving a plurality of public keys from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge;

invalidating the first public key in response to determining that the first public key did not verify the purported digitally signed challenge; and

indicating to use the second public key to verify a next received purported digitally signed challenge in response to invalidating the first public key and verifying the purported digitally signed challenge with the second public key.

16. The method of claim 15 , wherein the receiving the response, using the first and second public keys to verify the purported digitally signed challenge, and invalidating the first public key are performed while the system maintains no network connection to an authentication server that generates the public keys.

17. The method of claim 15 , further comprising:

granting access to the computational resource in the system in response to determining that the first or the second public key verified the purported digitally signed challenge.

18. The method of claim 15 , wherein the request to access the computational resource in the system comprises a request from a system technician to service the system, wherein the system technician provides the challenge to an authentication server to generate a digital signature of the challenge, and wherein the system technician provides the digital signature of the challenge to the system.

19. A method for managing cryptographic keys in a system, comprising:

receiving a plurality of public keys, associated with an order, from a plurality of public-private key pairs;

storing the plurality of public keys in a local key store;

receiving a request to access a computational resource in the system;

returning a challenge in response to the request;

receiving a response to the challenge comprising a purported digitally signed challenge;

determining whether the purported digitally signed challenge is verified using a first public key of the public keys in the local key store;

determining whether the purported digitally signed challenge is verified using a second public key of the public keys in the local key store in response to determining that the first public key did not verify the purported digitally signed challenge, wherein the first public key and the second public key are the first and second public keys in the order; and

in response determining that the first and second public keys did not verify the purported digitally signed challenge, selecting a next public key of the public keys in the order following a previous used public key to use to verify the purported digitally signed challenge.

20. The method of claim 19 , further comprising:

in response to the next public key verifying the purported digitally signed challenge, invalidating the public keys that failed to verify the purported digitally signed challenge; and

reordering the public keys from the next public key, following public keys according to the order, that verified the purported digitally signed challenge.

21. The method of claim 19 , further comprising:

in response to determining that all of the public keys available in the local key store failed to verify the purported digitally signed challenge, returning failure to the response to the challenge.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2017
From: FIEGE, THOMAS; GROOVER, MICHAEL P.; HACK, MARK E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041434/0908 →
Continuity (1)
Related Publication 20180254889A1 · Sep 6, 2018