Project

General

Profile

Trusted Platform Module 2.0 » History » Version 4

Andreas Steffen, 18.02.2017 16:57

1 1 Andreas Steffen
h1. Trusted Platform Module
2 1 Andreas Steffen
3 2 Andreas Steffen
h2. Connect to a TPM 2.0 device
4 2 Andreas Steffen
5 3 Andreas Steffen
In order to connect to a TPM 2.0 hardware or firmware device, the TSS2 software stack developed by Intel is needed. Since the official Ubuntu *tpm2-tss* package is rather obsolete (Version 0.98) because e.g. the TCTI interface to the TPM 2.0 resource manager has changed several times, strongSwan is currently based on a recent version drawn from the TPM2-TSS git repository https://github.com/01org/TPM2.0-TSS. Avoid TCTI interface incompatibilities by also fetching the latest *tpm2-tools* version from https://github.com/01org/tpm2.0-tools as well.
6 1 Andreas Steffen
7 4 Andreas Steffen
Build and install both the *tpm2-tss* stack and the *tpm2.0-tools*, start the *tpm2-resourcemgr* as a service and try to connect to the TPM 2.0 e.g. by listing the contents of the SHA-1 bank of PCR registers
8 3 Andreas Steffen
9 3 Andreas Steffen
   tpm2_listpcrs -g 0x0004
10 3 Andreas Steffen
11 3 Andreas Steffen
  Bank/Algorithm: TPM_ALG_SHA1(0x0004)
12 3 Andreas Steffen
PCR_00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13 3 Andreas Steffen
PCR_01: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
14 3 Andreas Steffen
PCR_02: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
15 3 Andreas Steffen
PCR_03: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
16 3 Andreas Steffen
PCR_04: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
17 3 Andreas Steffen
PCR_05: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
18 3 Andreas Steffen
PCR_06: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
19 3 Andreas Steffen
PCR_07: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 3 Andreas Steffen
PCR_08: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21 3 Andreas Steffen
PCR_09: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
22 3 Andreas Steffen
PCR_10: a9 45 e7 0f 42 a2 79 f0 78 ca d4 64 60 39 39 da 9d 6a d1 a5
23 3 Andreas Steffen
PCR_11: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
24 3 Andreas Steffen
PCR_12: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
25 3 Andreas Steffen
PCR_13: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
26 3 Andreas Steffen
PCR_14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
27 3 Andreas Steffen
PCR_15: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
28 3 Andreas Steffen
PCR_16: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
29 3 Andreas Steffen
PCR_17: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30 3 Andreas Steffen
PCR_18: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
31 3 Andreas Steffen
PCR_19: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
32 3 Andreas Steffen
PCR_20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
33 3 Andreas Steffen
PCR_21: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
34 3 Andreas Steffen
PCR_22: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
35 3 Andreas Steffen
PCR_23: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
36 2 Andreas Steffen
37 2 Andreas Steffen
h2. Private Key Access via VICI interface
38 2 Andreas Steffen
39 1 Andreas Steffen
Configuration of TPM private key access in *swanctl.conf*
40 1 Andreas Steffen
41 1 Andreas Steffen
  secrets {
42 1 Andreas Steffen
    token_ak_rsa {
43 1 Andreas Steffen
      handle = 81010002
44 1 Andreas Steffen
    }
45 1 Andreas Steffen
    token_ak_ecc {
46 1 Andreas Steffen
      handle = 81010004
47 1 Andreas Steffen
    }
48 1 Andreas Steffen
}