# US 2008/0189554 A1 · Method and system for securing communication between a host computer and a secure portable device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0189554 A1
- Document ID: US20080189554A1
- Status: Published application
- Kind: A1
- Application number: 11/948,758
- Filed: 2007-11-30
- Published: 2008-08-07
- Earliest claimed: 2007-02-05
- Inventors: Asad Ali; HongQian Karen Lu; Michael Montgomery; Apostol Vassilev
- Web page: https://patentgrep.com/patent/US20080189554A1

## CPC

- G06F 13/10: Program control for peripheral devices (G06F13/14 - G06F13/42 take precedence)
- G06F 21/34: involving the use of external additional devices, e.g. dongles or smart cards
- H04L 9/0877: {using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A secure portable electronic device for providing secure services when used in conjunction with a host computer having a central processing unit. The secure portable device communicates with the host computer via a host agent program executing on the host computer from the secure portable device. Periodically, the host agent and a corresponding program executing on the secure portable device, cooperate to verify the integrity and authenticity of the host agent program, for example, in conjunction with exchanging a new session key. Other systems and methods are disclosed.

## Claims

### Claim 1

A secure portable electronic device for providing secure services when used in conjunction with a host computer having a central processing unit of a first type, the secure portable electronic device having a central processing unit of a second type, wherein a secure service is provided by executing an application in a flexible distributed fashion among the host computer and the secure portable electronic device, comprising:
a read-only memory partition, a read/write memory partition, and a secure memory partition;
a communications interface for securely transmitting and receiving data between the host computer and the secure portable electronic device using a communications protocol over the communications interface, wherein communications between secure portable device and the host computer are secured by encryption using a symmetric key;
instructions stored in the read-only partition, wherein the instructions comprise:
a host agent containing instructions executable by a central processing unit of the first type;
private information stored in the secure memory partition; and
instructions stored in the secure memory partition, comprising:
a card agent containing instructions executable by central processing units of the second type, the instructions including instructions to cause the secure device to:
receive a message from a host agent executing on the host computer requesting to diversify the symmetric key established to secure communication between the host agent executing on the host computer and the card agent executing on the secure device to establish a replacement value for the symmetric key;
in response to receiving a key diversification request, transmit a message to request a thumbprint of the host agent instructions executing on the host computer;
receive a message containing a thumbprint from the host computer;
compare the received thumbprint against a known-to-be-correct thumbprint;
prevent further access to secure data stored on the secure device by the host computer if the received thumbprint does not match the known-to-be-correct thumbprint; and
continue key diversification operations if the received thumbprint matches the known-to-be-correct thumprint;
the host agent comprising instructions including instructions to:
compute a thumbprint; and
transmit the computed thumbprint to the secure device.

### Claim 2 (depends on 1)

The secure portable electronic device of claim 1, wherein the thumbprint request comprises an offset; and wherein the host agent comprises thumbprint computation instructions to cause the host computer compute the thumbprint over the host agent instruction code executing on the host computer starting at the offset.

### Claim 3 (depends on 1)

The secure portable electronic device of claim 1 wherein the thumbprint request comprises a length parameter and wherein the thumbprint computation instructions further comprise instructions to cause the host computer to compute the thumbprint over a section of the host agent instruction code executing on the host computer and equal in size to the length parameter.

### Claim 4 (depends on 1)

The secure portable electronic device of claim 1 wherein the thumbprint request comprises an algorithm indicator and wherein the thumbprint computation instructions further comprise instructions to cause the host computer to compute the thumbprint over a section of the host agent instruction code using an algorithm corresponding to the algorithm indicator.

### Claim 5 (depends on 1)

The secure portable electronic device of claim 1 wherein the thumbprint computation instructions comprise instructions to cause the host computer to compute the thumbprint over a section of the host agent instruction code using a hashing algorithm.

### Claim 6 (depends on 1)

The secure portable electronic device of claim 1 wherein the card agent further comprises instructions to compute the known-to-correct thumbprint over a section of the host agent instruction code using a hashing algorithm.

### Claim 7 (depends on 1)

The secure portable electronic device of claim 1 wherein the card agent further comprises a table of known-to-correct thumbprints each corresponding to thumbprints computed over a particular section of the host agent instruction code.

### Claim 8 (depends on 1)

The secure portable electronic device of claim 1 further comprising key obfuscation instructions including instructions to cause the secure device to generate the symmetric key and to write the symmetric key at specified locations in the host agent code.

### Claim 9 (depends on 8)

The secure portable electronic device of claim 8 wherein the key obfuscation instructions further comprise instructions to cause the secure device to generate the symmetric key and to write the symmetric key at specified locations in the host agent code at start up of the secure device.

### Claim 10 (depends on 8)

The secure portable electronic device of claim 8 the key obfuscation instructions further comprise instructions wherein the instructions to write the symmetric key at specified locations in the host agent code writes the symmetric key beginning at an offset and distributed over the host agent code.

### Claim 11 (depends on 10)

The secure portable electronic device of claim 10 the key obfuscation instructions further comprise instructions to cause the secure device to distribute the symmetric key over the host agent code according to a specified increment.

### Claim 12 (depends on 11)

The secure portable electronic device of claim 11 wherein the key obfuscation instructions further comprise instructions to cause the secure device to write at least one of the offset and increment into the host agent in a subset of bits of a memory location and randomizing the remaining bits of the memory location.

### Claim 13 (depends on 8)

The secure portable electronic device of claim 8 further comprising key recovery instructions in the host agent code to cause the host computer executing the host agent to recover the symmetric key from locations in the host agent code where the secure device has written the symmetric key according to the key obfuscation instructions.

### Claim 14 (depends on 13)

The secure portable electronic device of claim 13 wherein the host agent code further comprises instructions to cause the host computer to write the recovered symmetric key into a cryptography key management system of the host computer.

### Claim 15 (depends on 14)

The secure portable electronic device of claim 14 wherein host computer includes a Crypto Services API, and the instructions to cause the host computer to write the recovered symmetric key into the cryptography key management system includes calls to the Crypto Services API.

### Claim 16 (depends on 1)

The secure portable electronic device of claim 1 wherein the card agent and host agent each further comprise instructions to cause the secure device and the host computer, respectively, to negotiate a replacement value for the symmetric key.

### Claim 17 (depends on 16)

The secure portable electronic device of claim 16 wherein the instructions to negotiate a replacement value for the symmetric key comprises using a known shared master secret and a random string to generate the replacement value for the symmetric key.

### Claim 18 (depends on 17)

The secure portable electronic device of claim 17
wherein the instructions to negotiate a replacement value for the symmetric key comprises instructions in the card agent to cause the secure device to:
generate the random string;
compute the replacement value for the symmetric key using the master shared secret and the random string;
encrypt the random string using the symmetric key; and
transmit the encrypted random string to the host computer; and
wherein the instructions of negotiate a replacement value for the symmetric key comprises instructions in the host agent to cause the host computer to:
receive the encrypted random string;
decrypt the encrypted random string using the symmetric key; and
compute the replacement value for symmetric key from the master shared secret and the random string.

### Claim 19 (depends on 18)

The secure portable electronic device of claim 18
wherein the instructions to negotiate a replacement value for the symmetric key comprises instructions in the card agent to request the host agent to compute the thumbprint according to a specification;
wherein the instructions to negotiate a replacement value for the symmetric key comprises instructions in the host agent to cause the host computer to compute and to encrypt the thumbprint using the replacement value for the symmetric key; and
wherein the instructions to negotiate a replacement value for the symmetric key comprises instructions in the card agent to cause the secure device to decrypt the thumb print using the replacement value for the symmetric key.
