20175318 可信计算基础 实验三 可信数据绑定程序设计

一、实验目的:

  • 熟悉数据与硬件绑定的方法;
  • 理解密钥填充对数据绑定的影响;
  • 掌握硬件相关的程序设计流程和实现步骤;

二、实验内容、步骤及结论

1. 实验内容

  • 按照数据绑定结构、密钥类型、密钥长度、密钥填充类型等进行数据与硬件绑定程序设计,并基于 TPM 进行调试

2. 实验步骤

1.启动相关模块
(1)启动TPM

sudo su
modprobe tpmd_dev
tpmd -f -d  //-d 进入debug 模式  -f 使应用在前台运行

(2) 启动tcsd

sudo su
tcsd -e -f 

(3) 设置owner和SRK密码

tpm_takeownership -u 

(4) 编写代码

编写代码流程如下:

创建上下文对象……
创建TPM对象……
载入SRK密钥……
获取SRK的密钥对象……设置SRK的策略授权……创建绑定密钥……
在TPM产生密钥前,设置填充类型……
产生密钥,该密钥不与PCR绑定
装载绑定密钥到UUID……
执行数据绑定……

代码调用的接口顺序为

  • Tspi_Context_Create (&hContext):创建上下文对象
  • Tspi_Context_Connect (hContext,NULL):连接上下文
  • Tspi_Context_GetTpmObject (hContext,&hTPM):获得隐式创建的TPM对象的句柄
  • Tspi_GetPolicyObject (hTPM,TSS_POLICY_USAGE,&hownerpolicy):获得TSP隐式创建的策略对象
  • Tspi_Policy_SetSecret (hownerpolicy,TSS_SECRET_MODE_POPUP,0,NULL):设置秘密
  • Tspi_Context_LoadKeyByUUID (hContext,TSS_PS_TYPE_SYSTEM,SRK_UUID,&hSRK):根据UUID加载SRK密钥
  • Tspi_GetPolicyObject (hSRK,TSS_POLICY_USAGE,&hSRKPolicy):获得SRK的策略对象
  • Tspi_Policy_SetSecret (hSRKPolicy,TSS_SECRET_MODE_POPUP,0,NULL):设置SRK的策略授权
  • Tspi_Context_CreateObject (hContext,TSS_OBJECT_TYPE_RSAKEY,initFlags,&hkey):设置好密钥标记initFlags后创建绑定密钥,hkey中存储加密的数据块
  • Tspi_SetAttribUint32(hkey,TSS_TSPATTRIB_KEY_INFO,TSS_TSPATTRIB_KEYINFO_ENCSCHEME,T SS_ES_RSAESPKCSV15):在TPM产生密钥前,设置填充类型
  • Tspi_Key_CreateKey(hkey,hSRK,0):产生密钥,该秘钥不与PCR绑定
  • Tspi_Context_RegisterKey(hContext,hkey,TSS_PS_TYPE_USER,bindkeyUUID,TSS_PS_TYPE_SY STEM,SRK_UUID):装载绑定密钥到UUID
  • Tspi_Context_CreateObject(hContext,TSS_OBJECT_TYPE_ENCDATA,TSS_ENCDATA_BIND,&hEncD ata):创建加密数据对象
  • Tspi_GetAttribUint32(hkey,TSS_TSPATTRIB_KEY_INFO,TSS_TSPATTRIB_KEYINFO_SIZE,&keysi ze):执行这步后,要比较待加密数据长度与keysize -16的大小,以防加密数据过大
  • Tspi_Data_Bind(hEncData,hkey,strlen(in),in):绑定数据
  • Tspi_GetAttribData(hEncData,TSS_TSPATTRIB_ENCDATA_BLOB,TSS_TSPATTRIB_ENCDATABLOB_B LOB,&blobLen,&blob):执行这步后要比较blobLen 和 *blob大小,以防被加密的blob过大
  • Tspi_Context_Close(hContext):关闭上下文

(5) 编译并运行代码

sudo su
gcc -o 20175318exp3 20175318exp3.c -ltspi
./20175318exp3


Download:20175318exp3.c

3. 实验结论
sb

猜你喜欢

转载自www.cnblogs.com/L1079991001/p/12683681.html