TSS示例程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
aik密钥的标
2.Paraik aik密钥参数;
3.Pkpca pca的公钥;
4.K
会话密钥;
5.cred 背书、平台、
一致性证书;
证书
OWNER
5.encpkpca(K),encK (resp)
PCA
6.Signaik 用aik私钥签 名;
(1)有关PCR操作(READ)
• 示例程序-1
– 程序功能:
• 读取TPM中的PCR值
– 源码参见:
• pcr_read.c
– 程序流程见右图:
创建上下文 并
连接到本地 TCS
获取TPM对 象
读取TPM对 象
的PCR值
输出PCR值
(1)创建上下文并连接到本地TCS; Tspi_Context_Create(&hCont ext); Tspi_Context_Connect(hCont ext, 0); (2)获取TPM对象; Tspi_Context_GetTpmObject( hContext,&hTPM); (3)读取TPM对象的PCR值; Tspi_TPM_PcrRead(hTPM,i,& pulPcrValueLength,&prgbPcr Value) (4)Tspi_Context_FreeMemory (hContext,prgbPcrValue);
• 示例程序-4
– 程序功能:
• 对文件加密
– 源码参见:
• tpm_sealdata.c
– 程序流程如下图:
创建上下文并 连接到本地
TCS
创建加密数据对象 创建RSA密钥对象 创建对称密钥对象
读取待加密文件
将待加密文件用对称密钥加密 生成密文,采用AES-CBC方
式 。将密文存放至加密数据对象
中
以上软件安装完毕后,执行以下3个操作
TPM模拟环境的搭建
(1)启动Tpm_emulator:打开一个新的 终端,在终端中输入命令:
#modprobe tpmd_dev #rm /var/run/tpm/tpmd_socket:0 #tpmd –fd
Βιβλιοθήκη Baidu
TPM_Emulator启动成功
获取TPM对象
(2)获取TPM对象; Tspi_Context_GetTpmObject(hCo ntext,&hTPM);
扩展TPM对象 的PCR值
输出扩展 的PCR值
(3)扩展TPM对象的PCR值,通过 TCS扩展到真正TPM的PCR值; Tspi_TPM_PcrExtend(hTPM, i, ulPcrDataLength, pbPcrData, pPcrEvent,&pulPcrValueLength,& prgbPcrValue) (4) 输出扩展PCR值
(2)HASH操作
创建上下文并 连接到本地
TCS
• 示例程序-3
– 程序功能:
• 对消息进行SHA-1操作
– 源码参见:
• tpm_hash.c
– 程序流程见右图:
创建HASH对 象
将消息数据 进行HASH
操作
读取HASH 对象的散列值
输出HASH 操作后的值
(3)文件加解密操作
“存储的安全性”是指计算机中的重要文
得到对称密钥
采用AES解密算法,将密 文
用对称密钥解密,得到明 文
输出解密后的明文
(4)远程证明
• 远程证明
– 可信平台使用AIK对当前存储了平台配置信息的PCR值进行签名, 报告给远程挑战者以证明其平台状态的可信性
– TPM使用EK生成AIK,并通过私有CA签发的AIK证书来完成身份 认证
为什么不能用EK直接作为签名密钥?
件必须以密文的形式存放在磁盘上,以防 止私密信息泄露和客体重用。
密钥的存储保护主要有两种方式
基于加密文件系统的软件保护
系统的加/解密密钥都存放在系统指定的文件中,必须 是系统管理员才有权限访问该文件,并进行密钥的相关 操作
密钥本身容易遭受恶意病毒感染或者木马破坏甚至盗取 密钥
(3)文件加解密操作
(2)启动TSS软件栈
打开一个新的终端,在终端中输入命令: #tcsd //TSS启动 #tpmmanager 则出现如图所示界面:
(3)设置TPM属主及SRK密码
提纲
TPM模拟环境搭建 TSS编程实例
有关PCR的操作(READ、EXTEND) HASH操作 文件加解密操作 远程证明
TSS示例程序
提纲
TPM模拟环境搭建 TSS编程实例
有关PCR的操作(READ、EXTEND) HASH操作 文件加解密操作 远程证明
TPM模拟环境的搭建
准备工作:
1. Linux操作系统,内核版本在2.6.30以上 2. Tpm_emulator软件 3. TSS软件栈
(1)有关PCR操作(EXTEND)
• 示例程序-2(扩展)
– 程序功能:
• 对PCR寄存器 进行扩展操作
– 源码参见:
• pcr_extend.c
– 程序流程见右图:
创建上下文并 连接到本地
TCS
(1)创建上下文并连接到本地TCS; Tspi_Context_Create(&hContext); Tspi_Context_Connect(hContext, 0);
将对称密钥用生成的RSA 公钥进行加密生成的密文 存放至加密数据对象中( 绑
定)
将该RSA公私钥对用SRK 公钥进行加密,并将密文 存放至加密数据对象中
加密数据对象生成密文文 件
,其中包括:文件密文、 RSA密文和对称密钥密文
输出密文文件
生成的密文结构
用SRK加密RSA 对象生成的密文
用RSA公钥加密 的对称密钥密文
(4)远程证明—应用场景
• 旅馆式办公
– 用户不需要和特定的机器绑定,而是和服务器上的身份进行绑定 – 要求终端机器要是安全的,以防用户的信息在终端机器上泄露 – 可以通过TPM来发送当前机器的状态给服务器,服务器根据用户
当前终端的状态来判断是否允许用户从终端下载其系统镜像
(1)申请AIK
1.Idaik 签;
用对称密钥加密 的密文
文件加解密操作
• 示例程序-5
– 程序功能:
• 解密密文文件
– 源码参见:
• tpm_unsealdata.c
– 程序流程如图:
创建上下文并 连接到本地
TCS
创建RSA密钥对象 创建对称密钥对象
读取密文文件
用SRK私钥解密RSA 公私钥对,得到RSA
公私钥对
用RSA私钥解密对称密 钥