IP Library › Granted Patent US 9,485,091
Granted Patent B2
US 9,485,091 · App. 14/267,147 · Granted Nov 1, 2016

Dual-party session key derivation

Inventors: Todd W. Arnold (Charlotte, NC); Richard V. Kisley (Charlotte, NC); Michael J. Miele (Concord, NC)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L9/0819G06F21/606H04L63/045H04L63/0435H04L63/061H04L63/068H04L63/0853H04L63/0876H04L63/205H04W12/04H04L2463/062
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,485,091
App. No.
14/267,147
Granted
Nov 1, 2016
Kind
B2
Abstract

Embodiments relate to negotiating a session key to secure a user session executed in a host computer. An electronic hardware security module (HSM) located in the host computer generates a first session key. A smart card generates a second session key that matches the first session key. An encrypted copy of the second session key is communicated to an electronic host application module installed in the host computer. The electronic host application module decrypts the encrypted session key to obtain a copy of the session key such that the first and second session keys possessed by the smart card, the host application module and the HSM match one another.

Claims (44)

1. A method of negotiating a session key to secure a user session executed in a host computer, the method comprising:

generating, by an electronic hardware security module (HSM) located in the host computer, a first session key;

generating, by an electronic smart card, a second session key that matches the first session key;

encrypting a copy of the second session key based on encryption information provided by the HSM to generate an encrypted session key and communicating the encrypted session key to an electronic host application module installed in the host computer;

decrypting, by the electronic host application module, the encrypted session key to obtain the copy of the second session key such that the first and second session keys possessed by the smart card, the host application module and the HSM match one another;

generating, by the electronic smart card, a non-ephemeral ECC key having a smart card private portion and a smart card public portion;

generating, by the electronic host application module, a first ephemeral ECC key having a host application public portion and a host application private portion; and

generating, by the electronic HSM, a second ephemeral ECC key having a HSM public portion and an HSM private portion, wherein the second session key is based on the smart card private portion, the smart card public portion and the HSM public portion, and the first session key is based on the smart card public portion, the HSM public portion and the HSM private portion.

2. The method of claim 1 , further comprising:

generating, by the electronic host application module, a first transport key based on the host application public portion, the host application private portion and the smart card public portion; and

generating, by the electronic smart card, a second transport key based on the smart card private portion, the a smart card public portion and the host application public portion.

3. The method of claim 2 , wherein the encrypting a copy of the second session key is performed by the electronic smart card, and wherein the encrypted session key is encrypted based on second transport key.

4. The method of claim 3 , further comprising decrypting the encrypted session key using the first transport key, and authenticating data communicated between the electronic host application module and the electronic HSM using a hash-based message authentication code (HMAC) that is based on the copy of the second session key.

5. The method of claim 4 , wherein the electronic smart card validates the first transport key and the second transport key using a key verification pattern (KVP).

6. The method of claim 5 , wherein the KVP is based on a secure hash algorithm and is electrically communicated between the electronic host application module and the electronic smart card.

7. A computer program product for implementing a method of negotiating a session key to secure a user session executed in a host computer, the computer program product comprising:

a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions readable by a processing circuit to cause the processing circuit to perform a method comprising:

generating, by an electronic hardware security module (HSM) located in the host computer, a first session key;

generating, by an electronic smart card, a second session key that matches the first session key;

encrypting a copy of the second session key to generate an encrypted session key and communicating the encrypted session key to an electronic host application module installed in the host computer;

decrypting, by the electronic host application module, the encrypted session key to obtain the copy of the second session key such that the first and second session keys possessed by the smart card, the host application module and the HSM match one another;

generating, by the electronic smart card, a non-ephemeral ECC key having a smart card private portion and a smart card public portion;

generating, by the electronic host application module, a first ephemeral ECC key having a host application public portion and a host application private portion; and

generating, by the electronic HSM, a second ephemeral ECC key having a HSM public portion and an HSM private portion, wherein the second session key is based on the smart card private portion, the a smart card public portion and the HSM public portion, and the first session key is based on based on the smart card public portion, the HSM public portion and the HSM private portion.

8. The program product of claim 7 , further comprising:

generating, by the electronic host application module, a first transport key based on the host application public portion, the host application private portion and the smart card public portion; and

generating, by the electronic smart card, a second transport key based on the smart card private portion, the a smart card public portion and the host application public portion.

9. The computer program product of claim 8 , wherein encrypting a copy of the second session key is performed by the electronic smart card, and wherein the encrypted session key is encrypted based on the second transport key.

10. The computer program product of claim 9 , further comprising decrypting the encrypted session key using the first transport key, and authenticating data communicated between the electronic host application module and the electronic HSM using a hash-based message authentication code (HMAC) that is based on the copy of the second session key.

11. The computer program product of claim 10 , wherein the electronic smart card validates the first transport key and the second transport key using a key verification pattern (KVP) that is generated according to a secure hash algorithm.

12. A computer system for implementing a method of negotiating a session key to secure a user session executed in a host computer, the system comprising:

a memory having computer readable instructions; and

a computer processor configured to execute the computer readable instructions, the instructions comprising:

generating, by an electronic hardware security module (HSM) located in the host computer, a first session key;

generating, by an electronic smart card, a second session key that matches the first session key;

encrypting a copy of the second session key to generate an encrypted session key and communicating the encrypted session key to an electronic host application module installed in the host computer;

decrypting, by the electronic host application module, the encrypted session key to obtain the copy of the second session key such that the first and second session keys possessed by the smart card, the host application module and the HSM match one another;

generating, by the electronic smart card, a non-ephemeral ECC key having a smart card private portion and a smart card public portion;

generating, by the electronic host application module, a first ephemeral ECC key having a host application public portion and a host application private portion; and

generating, by the electronic HSM, a second ephemeral ECC key having a HSM public portion and an HSM private portion, wherein the second session key is based on the smart card private portion, the smart card public portion and the HSM public portion, and the first session key is based on the smart card public portion, the HSM public portion and the HSM private portion.

13. The computer system of claim 12 , further comprising:

generating, by the electronic host application module, a first transport key based on the host application public portion, the host application private portion and the smart card public portion; and

generating, by the electronic smart card, a second transport key based on the smart card private portion, the a smart card public portion and the host application public portion.

14. The computer system of claim 13 , further comprising encrypting a copy of the second session key is based on the second transport key, and decrypting the encrypted session key is based on the first transport key, and authenticating data communicated between the electronic host application module and the electronic HSM using a hash-based message authentication code (HMAC) that is based on the copy of the second session key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2014
From: ARNOLD, TODD W.; KISLEY, RICHARD V.; MIELE, MICHAEL J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032800/0194 →
Continuity (1)
Related Publication 20150319166A1 · Nov 5, 2015