您好,欢迎访问三七文档
课程实验报告课程名称:可信计算上机实验专业班级:信息安全2班学号:U201214739姓名:黎星指导教师:邹德清报告日期:2015年5月7日计算机科学与技术学院目录1实验目的....................................................................................................................12实验内容....................................................................................................................13实验步骤及截图........................................................................................................13.1清除TPM的TakeOwnership.........................................................................13.2编译实验源代码..............................................................................................13.3初始化..............................................................................................................23.4KeyHierarchy...................................................................................................23.5Seal、Unseal、extend......................................................................................33.6KeyMigration...................................................................................................73.7RemoteAttestation............................................................................................74实验各个步骤的理解................................................................................................84.1Seal、Unseal、extend操作.............................................................................84.2密钥迁移........................................................................................................104.3远程证明........................................................................................................115实验心得体会..........................................................................................................116实验源代码..............................................................................................................126.1creat_register_key.c创建K4的代码.............................................................126.2load_key.c中K4的代码...............................................................................126.3unseal_file.c....................................................................................................1311实验目的加深对TPM核心功能的理解。通过在实践中运行各种命令,实际的体会TPM所带来的安全保障能力。理解TPM中的远程证明、密钥迁移、密钥结构、数据密封等功能的原理,并能学会在实际中运用这些功能。学会利用TSS提供的各种接口,编写自己的应用程序。2实验内容因为我用的是实验室里面的电脑,用的是物理的TPM实验平台,所以不用安装TPMemulator,直接编译源代码。按照trusted-computing-project目录下的README,进行后面的实验。3实验步骤及截图3.1清除TPM的TakeOwnership这个步骤可以参考老师在实验室的黑板上给出的清除TPM的TakeOwnership的操作,首先在进入LINUX系统之前按住F10进入BIOS,修改里面的SYSTEMSECURITY。注意,要两次进入BIOS系统。改完之后就可以进入LINUX系统开始试验了。3.2编译实验源代码将下载好的实验源代码放在桌面上,然后解压实验源代码,运行命令:tarxvzftrusted-computing-projectv0.3进入解压后得到的trusted-computed-projectv0.3目录,编译源码,运行命令:makecleanmake23.3初始化运行如下命令:sudomodprobetpm_tissudotcsd进入当前目录下的init目录,运行如下命令:./Tspi_TPM_TakeOwnership01-v1.2运行命令:./create_mig_key-v1.2此时会要求输入PIN,我们为了方便起见,此后的所有PIN我们都输入123456。此时得到的结果如下图33.1:图3.3.13.4KeyHierarchy进入Keyhierarchy目录,运行命令:./create_register_key–v1.2此时会要求你输入4次PIN,结果如图3.4.1:3图3.4.1运行命令:./load_key–v1.2,结果如图3.4.2:图3.4.23.5Seal、Unseal、extend进入SealUnseal目录,运行命令:./seal–v1.2结果成功,如图3.5.1:4图3.5.1运行命令:./unseal–v1.2结果成功,如图3.5.2:图3.5.2运行命令:./extend–v1.2结果成功,如图3.5.3:5图3.5.3运行命令./seal_filetest.ctest.en会要求输入之前的PIN,结果如下:用cat查看得到的test.en是一堆乱码,如图3.5.4:图3.5.4运行命令:./unseal_filetest.entest.de在这里要提前编写好unseal_file.c,放在SealUnseal目录下,然后重新回到trusted-computed-project目录下运行make对其进行编译,编译正确则会得到6可执行程序unseal_file。unseal_file.c的代码由于比较长,就附录在后后面。运行结果如图3.5.5:用cat查看得到的test.de如下:图3.5.5运行命令:扩展./extend–v1.2解封./unseal_filetest.entest.de结果失败,如图3.5.6:图3.5.673.6KeyMigration进入KeyMigration目录,运行命令:./platform_dst–g会生成srk.pub的文件。这里我和另外一个同学一起做的,他的机器为机器1,我的为机器2,故把在他的电脑上生成的srk.pub文件拷到我的机器上。进入机器2中的KeyMigration目录,运行命令:./platform_src会生成mig.blob的文件。将刚刚生成的mig.blob文件拷到机器1上,再运行命令:./platform_dst–m结果如图3.6.1:图3.6.13.7RemoteAttestation由于我是机器2,所以只写出我的机器上显示的结果,进入机器2的RemoteAttestation目录,运行命令:./RAClient192.168.30.43192.168.30.44(机器2的ip为:192.168.30.43机器1的ip为:192.168.30.44)结果如图3.7.1:8图3.7.14实验各个步骤的理解4.1Seal、Unseal、extend操作Seal和Unseal也就是数据密封和解密封操作。课本上讲过数据密封就是对数据进行加密,并且这种加密是与平台的状态绑定在一起的。查看seal.c可知操作过程如下:(1)调用Tspi_Context_CreateObject分别创建一个加密数据句柄hEncData和Pcr9句柄hPcrs。(2)调用Tspi_TPM_GetCapability获取TPM版本信息,当capArea=TSS_TPMCAP_PROPERTY而rgbSubCap=TSS_TPMCAP_PROP_PCR时,prgbRespData,也就是此函数最后一个参数,返回的就是TPM支持的最大PCR寄存器个数,参考《TCGSoftwareStack(TSS)SpecificationVersion1.2,ErrataA》(3)调用Tspi_TPM_PcrRead读出TPM中各个pcr的值并写到上面得到的hPcrs句柄中。(4)调用Tspi_Data_Seal加密数据,用的密钥是SRK,加密后的数据在hEncData指向的位置。(5)调用Tspi_GetAttribData导出DataBlob,并将其写入文件“sealedData”。(6)释放内存关闭上下文unseal解封的操作如下:(1)调用connect_load_all加载上下文、SRK、TPM;(2)调用Tspi_Context_CreateObject创建加密数据句柄hEncData;(3)调用set_secret设置口令(4)读取文件中的DataBlob到缓冲区dataBuf(5)调用Tspi_SetAttribData导出hEncData(6)调用Tspi_Data_Unseal解封(7)释放内存关闭上下文seal_file操作如下:(1)创建并连接上下文(2)Tspi_Context_GetTpmObject获取TPM句柄hTPM(3)Tspi_Context_LoadKeyByUUID加载SRK(4)Tspi_Context_CreateObject创建PCR句柄hPcrs和加密数据句柄hEncData(5)set_secret设置口令(6)Tspi_Context_LoadKeyByUUID加载K1(7)set_popup_secret验证K1的pin(8)Tspi_TPM_GetRandom获取随机数random(9)Tspi
本文标题:黎星可信计算
链接地址:https://www.777doc.com/doc-1957488 .html