TSS示例程序.

Slides:



Advertisements
Similar presentations
李妍 孔林芳. 一般资料 姓名:冯彩霞 年龄: 68 性别:女 文化程度:小学 入院时间: 2010 年 9 月 14 日 家庭住址:宝鸡市扶风县 工作:农民.
Advertisements

index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Shinysky Infotech Co., Ltd. Copyright (C) 讯天 DPAS 动态口令认证系统 产品简介.
脊柱与四肢检查 一、脊柱检查 脊柱视诊.rm 脊柱视诊.rm 方法:视、触和叩诊 目的: 弯曲度 有无畸形 活动范围 有无压痛 叩击痛。 病变表现:为疼痛、形态或姿势异常以及活动度受限 等。
上海市场首次公开发行股票 网下发行电子化方案 初步询价及累计投标询价 上海证券交易所 上市公司部.
電機電子群 培養學生具備電機與電子群共同核心能力,使具備電機與電子領域有關操作、維修、測試、應用等實用專 業技能。並為相關專業領域之學習或高一層級專業知能之進修奠定基礎。
可信计算技术研究 国家信息化专家咨询委员会委员 沈昌祥 院士.
中小学教育网课程推荐网络课程 小学:剑桥少儿英语 小学数学思维训练 初中:初一、初二、初三强化提高班 人大附中同步课程
小一家長會 訓育訊息 德性培育組 余家濂主任
FD班座谈会 -结合学校目标 找准自己位置-
第四章 内容提要: 电子商务的安全技术 本章从电子商务的安全要求入手,介绍电子商务的几种安全技术,从而说明电子商务安全问题有哪些,其根源何在、带来哪些风险、如何应用安全技术等。
電子商務安全防護 線上交易安全機制.
開南大學 資訊管理學系 學分學程相關說明.
概述 现在网络的发展已呈现商业化、全民化、全球化的趋势。目前,几乎世界上所有的公司都在利用网络传递商业信息,进行商业活动,从宣传企业、发布广告、招聘雇员、传递商业文件乃至拓展市场、网上销售等,无所不能。如今网络已成为企业进行竞争的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业务扩展、企业品牌形象等提供了更高的要求。在以信息技术为支撑的新经济条件下,越来越多的企业利用起网络这个有效的工具。网站早已由论证阶段进入了实质阶段,尤其为企业提供一个展示自己的舞台、为消费者创造一个了解企业的
走进成语天地,把握成语含义 三年级语文 张建华.
PKI在金融领域的应用及前景展望 中国金融认证中心 赵宇 2012年9月.
建筑业2007年年报 2008年定报培训会 及 工交城建科 蔡婉妮
征缴内容培训.
辨析并修改病句   ≪考试说明≫ 对本能力点的要求是:“能够辨析.并修改病句”,“能力层次D”。.
霍乱及其调查处理 传染病防治科 谢华 金寨疾控网站
《爱的教育》一书以一个小男孩安利柯的眼光,从10月份4年级开学第一天开始写起;一直写到第二年7月份,全书共100篇文章,包括发生在安利柯身边各式各样感人的小故事、父母在他日记本上写的劝诫启发性的文章,以及10则老师在课堂上宣读的精彩的“每月故事”。每章每节,都把“爱”表现得精髓深入、淋漓尽致,大至国家、社会、民族的大我之爱,小至父母、师长、朋友间的小我之爱,处处扣人心弦、感人肺腑。
专题3 胚胎工程.
06学年度工作意见 2006年8月30日.
香港普通話研習社科技創意小學 周順強老師.
新疆瓜果大全 新疆是久负盛名的“瓜果之乡”,瓜田果树无处不有。这里阳光充足,气候适宜,为瓜果生产提供了良好的自然条件。瓜果品种繁多,质地优良,营养丰富,一年四季干鲜瓜果不绝于市,处处瓜果飘香,各种瓜果随季节在排队上市,这里不妨顺着瓜果上市的次序来个大点兵:1桑椹、2草莓、3杏子、4李子、5蜜桃、6樱桃、7无花果、8西瓜、9哈密瓜、10葡萄、11蟠桃、12海棠果、13香瓜、14梨瓜、15沙枣、16苹果、17香梨、18核桃、19大枣、20石榴、21巴旦木、22乌梅……
商管群校本課程規劃與實務 ~以日本商業教育為借鑑
安徽地税金三电子税务局 系统培训 2015年12月.
盐对盐敏感性高血压大鼠的影响 指导老师:汤必奎 学生姓名:常明芳 孙艳婷 潘婷 王锦希 刘明亮 蒋宁.
青岛市数字证书认证中心 2011年4月.
法國大革命                                                                            
電子資料保護 吳啟文 100年6月7日.
06資訊安全-加解密.
服务工作会 服务发展部 2006年11月14日.
第五章电子商务安全管理.
电子金融 第七章 网上金融安全 与网上支付机制 第七章 网上金融安全与网上支付机制 第七章 网上金融安全与网上支付机制.
定风波.
三级综合医院评审标准培训 中国医院协会 陈晓红.
第22章 汽车制动系 学习目标 1.掌握制动系的工作原理 2.掌握液压传动装置的结构 3.掌握气压传动装置的结构.
一、汽车空调基本概念 1、汽车空调发展史 我国于70年代,最早的汽车空调装置使用在长春一汽红旗轿车上。1976年,由原上海内燃机油泵厂今上海汽车空调机厂制造汽车空调,配套在上海牌轿车SH760A轿车中 。
涉税事项网上办理 申请代开增值税专用发票操作指引
前不久看到了这样一则报道:某个大学校园里,一个大学生出寝室要给室友留一张字条,告诉他钥匙放在哪里。可是“钥匙”两个字他不会写,就问了其他寝室的同学,问了好几个,谁也不会写,没办法,只好用“KEY”来代替了。 请大家就此事发表一下自己看法。
第十八章 周围血管疾病病人的护理.
北京经济技术开发区社会保险基金管理中心
密碼學簡介與簡單生活應用 Introduction to Cryptography & Simple Applications in Life 2010 Spring ADSP 05/07.
利用共同供應契約 辦理大量訂購流程說明.
資訊安全-資料加解密 主講:陳建民.
第10章 网络安全 本章内容 网络安全的基本概念 信息安全技术 防火墙技术 网络病毒.
第三章 公钥基础设施PKI 本章学习重点掌握内容: 密码学基本术语 密码体制分类 私钥密码体制的主要特点 公钥密码体制的主要特点
Module 2:電子商務之安全.
CH19資訊安全 認識資訊安全與其重要性 了解傳統與公開金鑰密碼系統, 以及基本的安全性觀念 了解訊息鑑別與雜湊函數 了解數位簽章法
计算机安全与保密 (Computer Security and Applied Cryptography )
第九章 IPSec VPN技术.
第四章 電子商務付費系統 電子商務與網路行銷 (第2版).
網路安全期末報告─SSL/TLS 指導教授:梁明章 報告學生:A 徐英智.
雜湊與MAC演算法 Hash and MAC Algorithms
财政部上海证券交易所 国债发行招投标系统功能介绍
第9章 信息安全.
第4章 电子商务交易安全 电子商务安全概述 电子商务的安全问题 1.卖方面临的问题 (1)中央系统安全性被破坏
掌握大趨勢開創新思維 主講人:賴憲政 1.
應用加密技術 A 譚惠心 指導教授:梁明章教授.
国家卫生监督信息系统 数字证书应用介绍 北京数字证书认证中心.
精益之路 王鲁保. 精益之路 王鲁保 汇报内容 行程介绍 收获 思考 行程介绍 第一天(3月10日) 北京热身 抵达名古屋.
兒童及少年保護、 家庭暴力及性侵害事件、 高風險家庭 宣導與通報
進貨管理介接更動 有關「匯入進貨資料」傳,請注意「上游業者出貨單號」,上游業者出貨單號要配合「匯出上游出貨資料」中的「出貨單號」或是「自有系統上傳的出貨單號」。 Ø  若「自有系統上傳的出貨單號」有值,則「匯入進貨資料」中的「上游業者出貨單號」就要key入「匯出上游出貨資料」中的「自有系統上傳的出貨單號」。
金融海嘯談金融重建基金之回顧與展望 財政部常務次長 曾銘宗 民國98年6月
應用加密技術 張維哲 指導老師:梁明章.
“E 保 通” 电 子 保 函 平 台 操 作 手 册.
網路安全技術 淺談金鑰系統的應用 A 陳靖宇.
深圳信息职业技术学院《电子商务基础》课程组版权所有
Presentation transcript:

TSS示例程序

提纲 TPM模拟环境搭建 TSS编程实例 有关PCR的操作(READ、EXTEND) HASH操作 文件加解密操作 远程证明

TPM模拟环境的搭建 准备工作: 以上软件安装完毕后,执行以下3个操作 1. Linux操作系统,内核版本在2.6.30以上 2. Tpm_emulator软件 3. TSS软件栈 以上软件安装完毕后,执行以下3个操作

TPM模拟环境的搭建 (1)启动Tpm_emulator:打开一个新的终端,在终端中输入命令: #modprobe tpmd_dev #rm /var/run/tpm/tpmd_socket:0 #tpmd –fd

TPM_Emulator启动成功

(2)启动TSS软件栈 打开一个新的终端,在终端中输入命令: #tcsd //TSS启动 #tpmmanager 则出现如图所示界面:

(3)设置TPM属主及SRK密码

提纲 TPM模拟环境搭建 TSS编程实例 有关PCR的操作(READ、EXTEND) HASH操作 文件加解密操作 远程证明

(1)有关PCR操作(READ) 示例程序-1 程序功能: 源码参见: 程序流程见右图: 读取TPM中的PCR值 pcr_read.c (1)创建上下文并连接到本地TCS;Tspi_Context_Create(&hContext); Tspi_Context_Connect(hContext, 0); (2)获取TPM对象; Tspi_Context_GetTpmObject(hContext,&hTPM); (3)读取TPM对象的PCR值; Tspi_TPM_PcrRead(hTPM,i,&pulPcrValueLength,&prgbPcrValue) (4)Tspi_Context_FreeMemory(hContext,prgbPcrValue); 创建上下文并 连接到本地 TCS 示例程序-1 程序功能: 读取TPM中的PCR值 源码参见: pcr_read.c 程序流程见右图: 获取TPM对象 读取TPM对象 的PCR值 输出PCR值

(1)有关PCR操作(EXTEND) 示例程序-2(扩展) 程序功能: 源码参见: 程序流程见右图: 对PCR寄存器 进行扩展操作 创建上下文并 连接到本地 TCS 示例程序-2(扩展) 程序功能: 对PCR寄存器 进行扩展操作 源码参见: pcr_extend.c 程序流程见右图: (1)创建上下文并连接到本地TCS; Tspi_Context_Create(&hContext); Tspi_Context_Connect(hContext, 0); (2)获取TPM对象; Tspi_Context_GetTpmObject(hContext,&hTPM); (3)扩展TPM对象的PCR值,通过TCS扩展到真正TPM的PCR值; Tspi_TPM_PcrExtend(hTPM, i, ulPcrDataLength, pbPcrData, pPcrEvent,&pulPcrValueLength,&prgbPcrValue) (4) 输出扩展PCR值 获取TPM对象 扩展TPM对象 的PCR值 输出扩展 的PCR值

(2)HASH操作 示例程序-3 程序功能: 源码参见: 程序流程见右图: 对消息进行SHA-1操作 tpm_hash.c 创建上下文并 连接到本地 TCS 创建HASH对象 示例程序-3 程序功能: 对消息进行SHA-1操作 源码参见: tpm_hash.c 程序流程见右图: 将消息数据 进行HASH 操作 读取HASH 对象的散列值 输出HASH 操作后的值

(3)文件加解密操作 “存储的安全性”是指计算机中的重要文件必须以密文的形式存放在磁盘上,以防止私密信息泄露和客体重用。 密钥的存储保护主要有两种方式 基于加密文件系统的软件保护 系统的加/解密密钥都存放在系统指定的文件中,必须是系统管理员才有权限访问该文件,并进行密钥的相关操作 密钥本身容易遭受恶意病毒感染或者木马破坏甚至盗取密钥 基于USB Key或身份卡的硬件保护模式 一旦该硬件被盗或者损坏,则密钥就不再安全

(3)文件加解密操作 示例程序-4 程序功能: 对文件加密 源码参见: tpm_sealdata.c 程序流程如下图:

创建上下文并 连接到本地 TCS 创建加密数据对象 创建RSA密钥对象 创建对称密钥对象 将该RSA公私钥对用SRK 公钥进行加密,并将密文 存放至加密数据对象中 读取待加密文件 加密数据对象生成密文文件 ,其中包括:文件密文、 RSA密文和对称密钥密文 将待加密文件用对称密钥加密 生成密文,采用AES-CBC方式 。将密文存放至加密数据对象中 输出密文文件 将对称密钥用生成的RSA 公钥进行加密生成的密文 存放至加密数据对象中( 绑定)

生成的密文结构 用SRK加密RSA对象生成的密文 用RSA公钥加密的对称密钥密文 用对称密钥加密的密文

文件加解密操作 示例程序-5 程序功能: 解密密文文件 源码参见: tpm_unsealdata.c 程序流程如图:

创建上下文并 连接到本地 TCS 创建RSA密钥对象 创建对称密钥对象 采用AES解密算法,将密文 用对称密钥解密,得到明文 读取密文文件 输出解密后的明文 用SRK私钥解密RSA 公私钥对,得到RSA 公私钥对 用RSA私钥解密对称密钥 得到对称密钥

(4)远程证明 远程证明 为什么不能用EK直接作为签名密钥? 可信平台使用AIK对当前存储了平台配置信息的PCR值进行签名,报告给远程挑战者以证明其平台状态的可信性 TPM使用EK生成AIK,并通过私有CA签发的AIK证书来完成身份认证 为什么不能用EK直接作为签名密钥?

(4)远程证明—应用场景 旅馆式办公 用户不需要和特定的机器绑定,而是和服务器上的身份进行绑定 要求终端机器要是安全的,以防用户的信息在终端机器上泄露 可以通过TPM来发送当前机器的状态给服务器,服务器根据用户当前终端的状态来判断是否允许用户从终端下载其系统镜像

(1)申请AIK证书 OWNER PCA TSS TPM 5.encpkpca(K),encK (resp) 1.Idaik aik密钥的标签; 2.Paraik aik密钥参数; 3.Pkpca pca的公钥; 4.K 会话密钥; 5.cred 背书、平台、一致性证书; 6.Signaik 用aik私钥签名; 5.encpkpca(K),encK (resp) OWNER PCA 1.Tspi_TPM_CollateIdentityRequest( idaik,paraik,pkpca) 4.encpkpca(K),encK (resp) TSS 解析TPM命令 1.收集cred:背书证书、平台证书、一致性证书 2.resp=(pkaik,idaik ,Saik,cred) 2.TPM_CollateIdentityRequest( paraik,hash(pkpca,idaik)) 3.AIK,Saik 1.验证paraik合法性 2.根据paraik生产AIK密钥对 3.生产签名值Saik = signaik(hash(pkpca,idaik)) TPM

(2)申请AIK证书 OWNER PCA TSS TPM 6.resppca,encK (certaik) 10.certaik 1.pca私钥解密验证cred和Saik 2.签发AIK证书 3.生成对称密钥K 4.resppca=encpkEK(K,hash(pkaik)) 1.K 会话密钥; 2.PkEK EK的公钥; 3.PKaik aik公钥; 4.cred 背包、平台、一致性证书; 5.certaik aik证书; 6.Saik = signaik (hash(pkpca , idaik)) 6.resppca,encK (certaik) OWNER PCA 7.Tspi_TPM_ActiveIdentity( AIK,resppca,encK(certaik)) 10.certaik 用K解密encK(certaik) TSS 解析TPM命令 8. TPM_ActiveIdentity( AIK,resppca) 9.K 1.用EK私钥解密resppca 2.验证hash(pkaik) 3.若2成立返回K TPM (2)申请AIK证书

(3)验证pcr签名 OWNER Server TSS PCA TPM 16.pcrindex,random,certaik,Saik 1.random Server挑战的随机值;2.index Server需要pcr的索引; 3.pcrindex index对应的pcr值; 4. AIK aik密钥对象; 5.certaik aik证书; 6.Signaik 用aik私钥签名; 1.向PCA请求验证certaik合法性 2.若1成立,验证签名值Saik正确性 3.根据pcr值判断终端的状态,来确定是否提供服务 (3)验证pcr签名 16.pcrindex,random,certaik,Saik OWNER Server 11.random , index 12.Tspi_TPM_Quote ( AIK,pcrindex,random) 17.certaik验证请求 15.certaik,random,Saik 验证结果 TSS 解析TPM命令 PCA 13. TPM_Quote( AIK,pcrindex,random) 14.random,Saik TPM Saik = signaik(pcrindex,random)

(4)远程证明流程 可信平台所有者生成AIK密钥和证书签发请求 可信平台所有者向隐私CA发送证书签发请求 私有CA签发AIK证书 可信平台向挑战者发送验证平台状态数据 挑战者验证平台状态请求 可信平台接收挑战者反馈数据,并进行相应的操作

8.1 远程证明 远程证明 可信平台使用AIK对当前存储了平台配置信息的PCR值进行签名,报告给远程挑战者以证明其平台状态的可信性 TPM使用EK生成AIK,并通过隐私CA签发的AIK证书来完成身份认证

身份平台创建AIK证书处理流程

生成AIK密钥和证书签发请求 Tspi_Context_Create创建一个新的TSS上下文对象 Tspi_Context_Connect函数来连接到刚创建的TSS上下文 Tspi_Context_GetTpmObject函数来获取TPM对象 Tspi_Context_LoadKeyByUUID函数来加载根密钥以获得授权 Tspi_GetPolicyObject函数来获取SRK的策略对象 Tspi_Policy_SetSecret函数来设置SRK的口令 Tspi_Context_CreateObject函数创建AIK对象

生成AIK密钥和身份证书 调用OpenSSL库来获取隐私CA的密钥 将该OpenSSL的CA密钥转换成TSS密钥对象 get_tss_key_size函数来获取RSA密钥的比特长度 Tspi_Context_CreateObject函数来创建一个TSS密钥对象 获取OpenSSL的CA密钥的公用模数 Tspi_SetAttribData函数来初始化隐私CA密钥对象 设置公钥数据,密钥算法,密钥的素数个数和密钥的加密机制

生成AIK密钥和身份证书 Tspi_TPM_CollateIdentityRequest函数来创建一个新的AIK密钥及证书签名请求包 生成随机数作为会话密钥,对证书请求数据采用3DES(本例中采用该加密算法)进行加密 会话密钥则采用CA的公钥加密以保证其机密性

发送证书签发请求 根据之前产生的证书,可信平台向私有CA发送证书签发请求,请求私有CA签发AIK证书

私有CA签发AIK证书

私有CA签发AIK证书 UnloadBlob_IDENTITY_REQ函数将收到的证书签发请求包转换成TCPA_IDENTITY_REQ数据块 用私有CA的私钥对证书请求进行解密 UnloadBlob_SYMMETRIC_KEY函数从解密后的证书请求中取出会话密钥 根据会话密钥的算法类型,对证书请求进行解密 UnloadBlob_IDENTITY_PROOF函数取出证书请求

私有CA签发AIK证书 TPM产生身份验证证书的过程是将身份标签信息和私有CA的公钥进行连接,然后采用SHA-1进行散列,再用AIK的私钥进行签名。即Sign_AIK(SHA1(aikLabel || TCPA_PUBKEY(CAPubKey))) 私有CA验证身份证书的流程

私有CA签发AIK证书 Tspi_Context_CreateObject函数来创建一个类型为SHA-1的散列对象 Tspi_GetAttribData函数来取出私有CA的密钥 UnloadBlob_TSS_KEY函数将其转化为TCPA_KEY结构的数据 LoadBlob函数加载身份标签信息 LoadBlob_KEY_PARMS函数加载CA密钥的算法参数 LoadBlob_STORE_PUBKEY函数加载CA的公钥 Tspi_Hash_UpdateHashValue函数对变量credBlob存储空间进行散列 Tspi_Hash_GetHashValue函数获取散列后的散列值并存储

私有CA签发AIK证书 Tspi_TPM_GetCapability函数来获取TPM的版本号 LoadBlob函数加载TPM版本信息 LoadBlob_UINT32函数加载TPM验证标签 LoadBlob函数加载散列值 LoadBlob_PUBKEY函数加载AIK公钥 Tspi_Hash_UpdateHashValue函数对变量credBlob进行散列 Tspi_Hash_VerifySignature函数来验证身份证书签名

私有CA签发AIK证书 验证身份证书签名通过后,创建经过私有CA签名的证书

私有CA签发AIK证书 Tspi_TPM_GetPubEndorsementKey函数来获取背书密钥的公钥 设置会话密钥参数 Tspi_TPM_GetRandom函数生成随机数,将其作为会话密钥 Tspi_GetAttribData函数来获取AIK公钥 UnloadBlob_TSS_KEY函数将AIK公钥信息转换为TCPA_KEY结构 调用LoadBlob_KEY_PARMS函数加载AIK密钥的算法参数 LoadBlob_STORE_PUBKEY函数加载AIK的公钥 Tspi_Hash_UpdateHashValue函数对credBlob存储空间采用SHA-1方式进行散列

私有CA签发AIK证书 Tspi_Hash_GetHashValue函数存入散列值 填充TCPA_SYM_CA_ATTESTATION结构 LoadBlob_UINT32函数加载证书大小信息 LoadBlob_KEY_PARMS函数加载证书加密算法信息 LoadBlob函数加载证书内容 OpenSSL库函数设置AES加密密钥,然后使用该密钥加密credBlob存储空间

私有CA签发AIK证书 设置签发证书中对称密钥加密的数据块信息 LoadBlob_SYMMETRIC_KEY函数加载密钥信息 Tspi_GetAttribData函数来获取背书密钥的模数 Trspi_RSA_Encrypt函数来用背书密钥的公钥加密credBlob 设置签发证书中非对称密钥加密的数据块信息

接受并激活AIK证书 私有CA将签名的AIK证书返回给可信平台所有者 可信平台所有者激活AIK证书 Tspi_Key_LoadKey函数来加载身份密钥进入TPM Tspi_TPM_ActivateIdentity函数来激活AIK证书

保存AIK及其证书 Tspi_Context_RegisterKey函数将AIK密钥注册到永久存储区 可以将AIK证书保存在本地磁盘

向挑战者发送验证平台状态数据 Tspi_Context_CreateObject函数来创建一个PCR类型对象 Tspi_PcrComposite_SelectPcrIndex函数来将PCR 15的值放入新创建的PCR Tspi_TPM_GetRandom函数产生一个随机数 Tspi_TPM_Quote函数来生成平台状态信息 将该状态信息和AIK证书发送给挑战者

挑战者验证平台状态请求 挑战者处理验证数据流程图

挑战者验证平台状态请求 创建TSS上下文并连接该TSS上下文,装载根密钥并设置其口令 Tspi_Context_CreateObject函数来创建类型为SHA-1的散列对象 Tspi_Hash_UpdateHashValue函数对组成员发送过来的vData结构体中的rgbData进行散列 Tspi_Hash_VerifySignature函数来验证对rgbData进行散列的散列值是否与vData结构体中的rgbValidationData数据相同 挑战者发送验证结果数据给可信平台并做相应的操作 等待其他的被挑战者来进行挑战

可信平台接收挑战者反馈数据 在旅馆式办公中,被挑战者通过验证后可以下载挑战者上的用户自己的系统镜像 释放相关空间并关闭TSS上下文