记一次双系统配置TPM的过程

前言

既然是涉及双系统,这里也顺便记录下一个安装Win + Ubuntu双系统可能出现的问题:解决由于intelRST问题导致无法安装ubuntu

写下此篇时,还未开始动手修改IBM ACS源代码,待日后实现了修改方案更新本文。

正篇

起因 – IBM ACS发起注册失败

之前都是在Vmware的虚拟机上模拟的TPM进行操作的,这一次是拿到了一台物理机,带物理TPM 2.0芯片。在装好Ubuntu之后,编译安装ibmtss和ibmacs(教程:IBM Attestation Client Server测试) 。

想要进行一次简单的证实测试,但是却出现了问题通过nvread读取EK相关的信息,全部都提示失败。

根据相关资料[3]的描述,可以得知厂商预设的EK相关信息是存储在NV区域的低地址空间。

  • 直接读取nv区域:
  • 通过其他工具读取EK Template\Nonce\Certificate

处理方法1 – 自签名EK

自签名EK就没什么好说的了,但是这并不是一个安全的方式。

1
2
3
# 将EK证书存储在TPM上
tpm2_createek -P abc123 -w abc123 -c 0x81010009 -G rsa -u ek.pub
tpm2_readpublic -c 0x81010009

处理方法2 – 远程EK证书

该方式适合使用了Intel PTT技术的环境。

“Device-Node“ retrieving the endorsement-key-certificate to send to the “Privacy-CA“. There are two possible locations where the endorsement key certificates are provided by the TPM manufacturer. While most TPM manufacturers store them in the TCG specified NV indices , some make it available for download through a web hosting. Let’s look at both these methods.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Location 1 - TPM2 NV Index 0x1c00002 is the TCG specified location for RSA-EK-certificate.
RSA_EK_CERT_NV_INDEX=0x01C00002

NV_SIZE=`tpm2_nvreadpublic $RSA_EK_CERT_NV_INDEX | grep size | awk '{print $2}'`

tpm2_nvread \
--hierarchy owner \
--size $NV_SIZE \
--output rsa_ek_cert.bin \
$RSA_EK_CERT_NV_INDEX

# Location 2 - Web hosting. This applies specifically to Intel(R) PTT RSA-EK-certificate.
# rsa_ek.pub is generated by myself
tpm2_getekcertificate \
--ek-public rsa_ek.pub \
--offline \
--allow-unverified \
--ek-certificate rsa_ek_cert.bin \
https://ekop.intel.com/ekcertservice/

## convert to a standard DER format
sed 's/-/+/g;s/_/\//g;s/%3D/=/g;s/^{.*certificate":"//g;s/"}$//g;' \
rsa_ek_cert.bin | base64 --decode > rsa_ek_cert.bin

处理方法3 – DAA

由于DAA方式的证实,并不需要EK证书的参与,因此可以绕开无法获取EK证书的问题。但是IBM ACS默认是不支持DAA方式的,因此需要修改源码实现。

DAA的相关资料参考:TPM2.0 ECDAA方法测试

相关资料

  1. Clearing TPM does not ask for new password, but “change owner password” asks for the old one

  2. TrustedPlatformModule

  3. TCG Credential Profile EK 2.0 - Trusted Computing Group

  4. Remote Attestation With Tpm2 Toolss

  5. tpm2_getekcertificate.1.md

  6. tpm2_createek.1.md

Author

Chaos Chen

Posted on

2021-05-29

Updated on

2023-06-30

Licensed under

Commentaires