本发明涉及信息统计安全技术领域,尤其涉及一种可信计算机平台软件栈功能架构的构建方法。
背景技术:
可信计算是针对目前计算系统不能从根本上解决安全问题而提出的,通过在计算系统中集成专用硬件模块建立信任源点,利用密码机制建立信任链,构建可信赖的计算环境,为计算机平台系统提供安全基础。
可信计算平台是构建在计算系统中并用来实现可信计算功能的支撑系统,是信任链的源头,只有解决源头的安全问题,才能建立起信任链,从而保证整体的安全可信。可信平台模块是可信计算平台的重要组成部分,可信平台模块包括密码算法、密钥管理、证书管理、密码协议、密码服务等内容,为实现上层平台的自身的完整性度量、平台身份证明和数据安全存储提供密码支持,可信计算组织提出了可信软件栈,并规定了它的功能需求、层次结构以及各层次之间的函数接口。tss是tpm的支撑软件,tpm芯片是一个提供可信计算基本功能的安全硬件模块,但由于芯片资源有限,它仅仅对外提供了基本功能的接口,所以要使用tss作为tpm芯片的扩充和支撑系统,实现面向上层实际应用程序的功能,提供访问tpm功能的函数接口;tss是tpm与上层应用之间的桥梁,不仅使tpm提供的功能得到充分的应用,而且使上层应用能够方便、安全地使用tpm的功能。
tss由四个模块构成,它们由上至下分别是:tss服务提供者(tsp),tss核心服务(tcs),tcg设备驱动库(tddl),tpm设备驱动(tdd)。其中在体系最上层的tsp是向用户的应用程序提供接口的,它把来自应用程序的参数打包传给tcs模块,由tcs模块来提供具体的功能函数(例如密钥管理),tcs模块把来自tsp模块的参数进行分析和操作以后写成一个tpm可以识别的字节流,通过tddl传到tpm里面去,tpm接收到字节流以后进行相应的操作,把结果以字节流的形式通过tddl返回到tcs里去,对字节流分析以后,把结果传给tsp,由tsp把正式的结果返回给应用程序。tdd是内核模式的组件,它接收来自于tddl的字节流,并把它们发向tpm,最后返回对tddl的响应。
通过调用可信软件栈中服务提供者所提供的接口函数,上层应用程序可以使用的功能,由此可以将可信计算应用于各种领域之中。这些领域包括安全风险管理、电子商务、数字版权管理、网络认证授权、虚拟专用网、网络入侵检测、恶意代码检测与防范等。
技术实现要素:
发明目的:为克服现有技术不足,本发明旨于提供一种可信计算机平台软件栈功能架构的构建方法。
技术方案:为解决上述技术问题,本发明提供如下技术方案:
一种可信计算机平台软件栈功能架构的构建方法,可信计算机平台软件栈功能架构的构建方法包括:
(1)密钥管理:用户通过调用可信计算平台的硬件模块tcm_createwrapkey命令,tcm产生对称加密密钥或ecc密钥对,并用上一级密钥加密存储;创建密钥时设置使用密码和迁移密码,使用密码用于加密和解密操作的使用授权,但不允许发现实际密码值的迁移密码对用户在一个特定的公钥下迁移密钥进行授权;当用户需要使用该密钥时,调用tcm_loadwrapkey命令,tcm用父密钥解密并将它载入到一个空闲的区域,返回keyhandle,供用户使用;
(2)密码学服务:可信计算机平台中配备的密码算法包括随机数生成算法、杂凑算法、消息验证码算法、对称密码算法和非对称密码算法;
(3)安全存储:tcm提供对于密钥和其它敏感数据的安全存储功能,保证存储在其中的密钥和敏感信息不会被破坏、更改和泄漏,以及未授权使用;
(4)完整性验证:可信计算机平台完整性验证包括完整性度量、存储与报告三方面;完整性度量是指计算度量值,记录该事件到事件日志,并把度量值记入相应的平台配置寄存器pcr中;完整性报告是指tcm向验证者提供其保护区域中平台或部分部件的完整性的度量值、日志中的度量事件和相关的证书,验证者可以通过完整性报告判断平台的状态;验证者可通过分析完整性度量事件日志信息判断该pcr值是否来自正确的度量过程;可信计算机平台向外部实体提供完整性度量值报告的功能,所报告的度量值作为判断平台可信性的依据;
(5)授权协议:任何实体可提交tcm命令,实体和tcm平台之间形成一条安全的交流通道,通过这条交流通道提交tcm命令并且返回结果;交流通道为完成面向session的信息交换遵循请求-响应语义学,协议实现外部实体与tcm之间的授权认证、信息的完整性验证和敏感数据的机密性保护;
(6)证书管理:数字证书采用公开密钥体制,即利用一对互相匹配的密钥进行加密、解密;每个用户自己设定一把特定的、仅为本人所知的专有密钥私钥,用它进行解密和签名同时设定一把公共密钥公钥并由本人公开,用于加密和验证签名。
上述可信计算平台的硬件模块tcm为可信计算平台提供密码运算功能,具有受保护的存储空间;
上述平台配置寄存器pcr位于tpm内部,仅仅用来装载对模块的度量值,大小为160比特;
上述完整性度量是为保证可信计算平台的可信性引入,是指任何想要获得平台控制权的实体,在获得控制权之前都要被度量;
上述数字证书又叫“数字身份证”、“数字id”,是由认证中心发放并经认证中心数字签名的,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,用来证明数字证书持有者的真实身份;
上述实体为进程、线程或者控制器。
进一步的,所述(1)密钥管理,通过引入对称算法和“用户实体”概念减少密钥管理层级,简化密钥存储保护,并采用三级密钥管理模式:
a、密码模块密钥、存储主密钥、平台所有者的授权数据直接存放在可信密码模块内部,通过可信密码模块的物理安全措施保护;
b、实体加密密钥、实体认证密钥、实体权限数据等信息构成实体身份数据块,由存储根密钥加密保护,存放在tcm外部;实体拥有的各种应用密钥、p仪等由实体加密密钥加密保护,存放在tcm外部,平台通过设置实体的权限数据来控制用户对密钥的访问;
c、tcm的功能之一就是创建smi对称密钥和ecc非对称密钥对,这些密钥的详细信息在创建后将保存在tcm中,但由于tcm的空间有限,必要时将他们以加密的形式放到外部的存储区中,当要使用这个密钥的时候,如上节中的加载步骤将其加载到tcm内再进行使用。
进一步的,所述(1)密钥管理中,迁移密钥必须在受控的环境中发生,保证密钥只从一个硬件受保护的环境转移到另一个硬件受保护的环境中。
数据的移动性是密钥管理中的一个重要话题,当存储在一个平台上的数据需要备份到另一个平台上,与该数据相关的密钥也必须迁移,才能使这些数据可用。
进一步的,所述(2)密码学服务中随机数生成算法为单向散列函数将一个不可预测的输入变成犯字节长度的随机数;
对称密码算法为引入对称加密算法,使用对称加密算法生成加密密钥,以及进行tcm内部的加解密操作;
非对称密码算法包括公钥密码和密钥密码,公钥密码算法为ecc密码算法,密钥位长为m,ecc密码算法包括密钥对生成、签名/验证算法、加解密算法和密钥协商等方面,密钥对生成为ecc的密钥对,包括私钥d和公钥q,其中d为小于n-1的一个随机的正整数,q为椭圆曲线e上的一个非无穷远点且满足q=dg,g为曲线中的一个基点;
杂凑算法为smz,对于给定的长度为k的消息,杂凑算法经过填充、迭代压缩和选裁,生成杂凑值,经预处理过的消息分组长度为比特,杂凑值长度为比特,杂凑函数将消息压缩为独特的数字信息,保证原有消息的合法性和安全性,smz是单向加密函数,并且对于任意长度的消息经处理后都将生成同样长度的杂凑值,使得比较原始消息更为方便,对于机密信息仅需保存其杂凑值,一方面,存储的杂凑值不能被破译使原始信息充分得到了保护,即使在传输过程中也不用担心杂凑值被恶意截取,另一方面,比对信息更为方便安全;
消息验证码算法hmac需要一个加密用散列函数和一个密钥。
经过杂凑算法的处理,原始信息即使只更动一个字母,对应的压缩信息也会变得截然不同,这就保证了经过处理的信息的唯一性;同时smz不是加密,它不可能把杂凑值解密回原始消息。
上述签名与验证算法:计算数字签名需要用到杂凑算法对待签名消息进行压缩,签名算法的输入消息是待签名消息经过杂凑算法压缩后的比特长度的摘要,验证数字签名需要用到杂凑算法对待签名消息进行压缩,验证算法的输入消息是待签名消息经过杂凑算法压缩后的m比特长度的摘要。
上述加解密算法:平台中的ecc加密算法用于加密对称密钥和随机数等敏感信息,ecc加密的明文信息字节长度可变。解密算法输出明文信息。当加密信息无效时,解密算法不输出任何明文信息。
上述密钥协商:设密钥协商双方为a、b,其密钥对分别为(da,qa)和(db,qb),双方需要获得的密钥数据的比特长度为klen。密钥协商算法分为两个阶段;
第一阶段:产生临时密钥对,用户a调用密钥对产生算法产生一对临时密钥对(ra,ra),将ra发送给b,用户b调用密钥对产生算法产生一对临时密钥对(rb,rb),将rb发送给b;
第二阶段:计算共享的密钥数据。
上述消息验证码算法hmac的安全性分析:
消息验证码算法hmac更像是一种加密算法,它引入了密钥,其安全性已经不完全依赖于所使用的hash算法,安全性主要有以下几点保证:
a、使用的密钥是双方事先约定的,第三方不可能知道,作为非法截获信息的第三方,能够得到的信息只有作为“挑战”的随机数和作为“响应”的结果,无法根据这两个数据推算出密钥,由于不知道密钥,所以无法仿造一致的响应;
b、消息验证码算法hmac与一般的加密重要的区别在于它具有“瞬时”性,即认证只在当时有效,而加密算法被破解后,以前的加密结果就可能被解密。
进一步的,所述(3)安全存储中安全存储包括以下几种方式:
a、绑定:使用公钥对一个消息进行加密,接收者使用私钥解密,是一种传统的加密方式,如果一个密钥是不可迁移的密钥,则和某一个特定的绑定,在tcm中不可迁移密钥主要用于签名;
b、签名加助:使用私钥产生一个签名,用于保护一个消息的完整性;签名密钥由tcm产生和管理,用于对信息进行签名,通过它和一定的签名算法可以得到含有平台标识的密文,通常是不可迁移的;其中一些密钥被定义为签名密钥,则该密钥只能进行签名,而不能用来加密操作;
c、密封:在加密消息的时候加入平台状态信息,即某些的pcr值。在接收方对消息进行解密时,需先判断解密方的平台状态与加密时的pcr值相同,否则就不能进行解密。
d、密封签名:签名时和某些pcr的值联系起来,以说明签名时平台达到了某种状态需求。
进一步的,所述(5)授权协议还包括:
a、授权数据:平台内部的密钥、敏感数据及其它需要存储保护的数据称为对象,每个对象必须具有相应的授权数据,一个授权数据可以对应多个对象,必须通过授权数据的验证才能访问对象。对象的授权数据,由用户从平台上输入,经杂凑算法进行长度归一化处理后存储;tcm拥有者的smk的认证码是由tcm本身持有的,而每一个实体的认证码是由实体本身持有的,tcm将认证码作为能够验证实体身份的完全证据。不再需要其他的核对,知道对象的authorizationdata就表示有权使用该tcm对象,请求者的任何实体在它保存授权数据的地方还需要有额外的保护和请求,而tcm不需要;
b、授权会话:任何实体都可能与tcm进行对话,为给实体与tcm平台之间的对话提供一条安全的通道,通过这条通道可以保证交互数据以及结果的安全传输,由于这种需求的存在,引入了认证会话,session建立的目的在于确保对tcm对象的访问是经过认证的,它使用轮番随机数的协议机制,可以防止重放攻击;
c、协议流程:授权协议和机制的目的在于向tcm证明请求者有权利执行命令和使用一些对象。
上述请求者是指希望在tcm上执行命令或者使用特殊实体。
进一步的,所述协议流程的协议满足如下要求:
1)ap会话以tcm_ap_create命令发起,以tcm_ap_terminate结束;
2)协议提供认证机制以authdata为共享秘密生成会话密钥,并基于该会话密钥生成校验值,用以判断调用者是否拥有对某一实体的权限;
3)协议提供完整性保护机制。以双方共享的会话密钥对功能调用阶段的数据包进行完整性保护;
4)tcmapcreate命令中计算为可选项;
5)协议提供可选的机密性保护机制,根据需要以双方共享的会话密钥对功能调用阶段的数据包进行加密保护,ifencrypted为是否对通信数据包进行加密的标志,在特殊情况下通信数据本身己经加密,如密钥迁移,可以选择对通信数据不加密,表中所描述的为数据包被加密的情况;
6)协议提供抗重播机制seqnonce为抗重播序列号,由tcm生成并在外部调用者和tcm之间共享,双方各自维护序列号,每发送一个数据包序列号自增1,用以防止重播攻击。
进一步的,所述(6)证书管理中,当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地;通过使用数字证书,使用者可以得到如下保证:信息除发送方和接收方外不被其它人窃取信息在传输过程中不被篡改发送方能够通过数字证书来确认接收方的身份发送方对于自己的信息不能抵赖信息自数字签名后到收到为止,未曾作过任何修改,签发的文件是真实文件。
进一步的,数字证书采用公钥机制,证书颁发机构提供的程序为用户产生一对密钥,一把是公开的公钥,它将在用户的数字证书中公布并寄存于数字证书认证中心,另一把是私人的私钥,它将存放在用户的计算机上。
进一步的,所述数字证书要进行鉴别通信和保密通信,鉴别通信为发送方使用自己的私钥对明文进行加密,接收方使用发送方的公钥对密文进行解密;保密通信为发送方使用接收方的公钥对明文进行加密,接受方使用自己的私钥对密文进行解密。
上述鉴别通信中接收方使用发送方的公钥进行解密,可以确信信息是由发送方加密的,也就可以鉴别了发送方的身份;保密通信中由于只有接收方才能对由自己的公钥加密的信息解密,因此可以实现保密通信。
有益效果:本发明可信软件栈功能架构的构建方法,所构建的基于安全芯片的电力业务终端多级安全模型,在软件层建立可信软件栈,为系统提供度量应用程序的工具,系统可以通过可信软件栈调用可信芯片,实现对应用程序的度量;可信软件栈实现支持应用可信平台模块功能的单个入口点、提供对可信平台模块的同步访问功能、给上层应用程序提供合适的接口来隐藏可信平台模块的指令流和管理可信平台模块资源。
附图说明
图1为本发明可信计算机平台软件栈功能架构图;
图2为本发明可信计算机平台软件栈中平台完整性验证流程图;
图3为本发明密钥的产生和加载过程图。
具体实施方式
实施例1
如图1-3所示,一种可信计算机平台软件栈功能架构的构建方法,可信计算机平台软件栈功能架构的构建方法包括:
(1)密钥管理:用户通过调用可信计算平台的硬件模块tcm_createwrapkey命令,tcm产生对称加密密钥或ecc密钥对,并用上一级密钥加密存储;创建密钥时设置使用密码和迁移密码,使用密码用于加密和解密操作的使用授权,但不允许发现实际密码值的迁移密码对用户在一个特定的公钥下迁移密钥进行授权;当用户需要使用该密钥时,调用tcm_loadwrapkey命令,tcm用父密钥解密并将它载入到一个空闲的区域,返回keyhandle,供用户使用;通过引入对称算法和“用户实体”概念减少密钥管理层级,简化密钥存储保护,并采用三级密钥管理模式:
a、密码模块密钥、存储主密钥、平台所有者的授权数据直接存放在可信密码模块内部,通过可信密码模块的物理安全措施保护;
b、实体加密密钥、实体认证密钥、实体权限数据等信息构成实体身份数据块,由存储根密钥加密保护,存放在tcm外部;实体拥有的各种应用密钥、p仪等由实体加密密钥加密保护,存放在tcm外部,平台通过设置实体的权限数据来控制用户对密钥的访问;
c、tcm的功能之一就是创建smi对称密钥和ecc非对称密钥对,这些密钥的详细信息在创建后将保存在tcm中,但由于tcm的空间有限,必要时将他们以加密的形式放到外部的存储区中,当要使用这个密钥的时候,如上节中的加载步骤将其加载到tcm内再进行使用;
数据的移动性是密钥管理中的一个重要话题,当存储在一个平台上的数据需要备份到另一个平台上,与该数据相关的密钥也必须迁移,才能使这些数据可用;迁移密钥必须在受控的环境中发生,保证密钥只从一个硬件受保护的环境转移到另一个硬件受保护的环境中。
(2)密码学服务:可信计算机平台中配备的密码算法包括随机数生成算法、杂凑算法、消息验证码算法、对称密码算法和非对称密码算法;
a、随机数生成算法:单向散列函数将一个不可预测的输入变成犯字节长度的随机数;
b、对称密码算法:引入对称加密算法,使用对称加密算法生成加密密钥,以及进行tcm内部的加解密操作;
c、非对称密码算法:公钥密码算法为ecc密码算法,密钥位长为m,ecc密码算法包括密钥对生成、签名/验证算法、加解密算法和密钥协商等方面,
密钥对生成:ecc的密钥对包括私钥d和公钥q,其中d为小于n-1的一个随机的正整数,q为椭圆曲线e上的一个非无穷远点且满足q=dg,g为曲线中的一个基点;
签名与验证算法:计算数字签名需要用到杂凑算法对待签名消息进行压缩,签名算法的输入消息是待签名消息经过杂凑算法压缩后的比特长度的摘要,验证数字签名需要用到杂凑算法对待签名消息进行压缩,验证算法的输入消息是待签名消息经过杂凑算法压缩后的m比特长度的摘要;
加解密算法:平台中的ecc加密算法用于加密对称密钥和随机数等敏感信息,ecc加密的明文信息字节长度可变。解密算法输出明文信息。当加密信息无效时,解密算法不输出任何明文信息;
密钥协商:设密钥协商双方为a、b,其密钥对分别为(da,qa)和(db,qb),双方需要获得的密钥数据的比特长度为klen。密钥协商算法分为两个阶段;
第一阶段:产生临时密钥对,用户a调用密钥对产生算法产生一对临时密钥对(ra,ra),将ra发送给b,用户b调用密钥对产生算法产生一对临时密钥对(rb,rb),将rb发送给b;
第二阶段:计算共享的密钥数据;
d、杂凑算法:杂凑算法为smz,对于给定的长度为k的消息,杂凑算法经过填充、迭代压缩和选裁,生成杂凑值,经预处理过的消息分组长度为比特,杂凑值长度为比特,杂凑函数将消息压缩为独特的数字信息,保证原有消息的合法性和安全性,经过杂凑算法的处理,原始信息即使只更动一个字母,对应的压缩信息也会变得截然不同,这就保证了经过处理的信息的唯一性;同时smz不是加密,它不可能把杂凑值解密回原始消息;smz是单向加密函数,并且对于任意长度的消息经处理后都将生成同样长度的杂凑值,使得比较原始消息更为方便,对于机密信息仅需保存其杂凑值,一方面,存储的杂凑值不能被破译使原始信息充分得到了保护,即使在传输过程中也不用担心杂凑值被恶意截取,另一方面,比对信息更为方便安全;
e、消息验证码算法:消息验证码算法hmac需要一个加密用散列函数和一个密钥。
消息验证码算法hmac的安全性分析:
消息验证码算法hmac更像是一种加密算法,它引入了密钥,其安全性已经不完全依赖于所使用的hash算法,安全性主要有以下几点保证:
a、使用的密钥是双方事先约定的,第三方不可能知道,作为非法截获信息的第三方,能够得到的信息只有作为“挑战”的随机数和作为“响应”的结果,无法根据这两个数据推算出密钥,由于不知道密钥,所以无法仿造一致的响应;
b、消息验证码算法hmac与一般的加密重要的区别在于它具有“瞬时”性,即认证只在当时有效,而加密算法被破解后,以前的加密结果就可能被解密。
(3)安全存储:tcm提供对于密钥和其它敏感数据的安全存储功能,保证存储在其中的密钥和敏感信息不会被破坏、更改和泄漏,以及未授权使用;安全存储中安全存储包括以下几种方式:
a、绑定:使用公钥对一个消息进行加密,接收者使用私钥解密,是一种传统的加密方式,如果一个密钥是不可迁移的密钥,则和某一个特定的绑定,在tcm中不可迁移密钥主要用于签名;
b、签名加助:使用私钥产生一个签名,用于保护一个消息的完整性;签名密钥由tcm产生和管理,用于对信息进行签名,通过它和一定的签名算法可以得到含有平台标识的密文,通常是不可迁移的;其中一些密钥被定义为签名密钥,则该密钥只能进行签名,而不能用来加密操作;
c、密封:在加密消息的时候加入平台状态信息,即某些的pcr值。在接收方对消息进行解密时,需先判断解密方的平台状态与加密时的pcr值相同,否则就不能进行解密。
d、密封签名:签名时和某些pcr的值联系起来,以说明签名时平台达到了某种状态需求。
(4)完整性验证:可信计算机平台完整性验证包括完整性度量、存储与报告三方面;完整性度量是指计算度量值,记录该事件到事件日志,并把度量值记入相应的平台配置寄存器pcr中;完整性度量是为保证可信计算平台的可信性引入,是指任何想要获得平台控制权的实体,在获得控制权之前都要被度量;完整性报告是指tcm向验证者提供其保护区域中平台或部分部件的完整性的度量值、日志中的度量事件和相关的证书,验证者可以通过完整性报告判断平台的状态;验证者可通过分析完整性度量事件日志信息判断该pcr值是否来自正确的度量过程;可信计算机平台向外部实体提供完整性度量值报告的功能,所报告的度量值作为判断平台可信性的依据。
(5)授权协议:任何实体(进程、线程或者控制器)可提交tcm命令,实体和tcm平台之间形成一条安全的交流通道,通过这条交流通道提交tcm命令并且返回结果;交流通道为完成面向session的信息交换遵循请求-响应语义学,协议实现外部实体与tcm之间的授权认证、信息的完整性验证和敏感数据的机密性保护:
a、授权数据:平台内部的密钥、敏感数据及其它需要存储保护的数据称为对象,每个对象必须具有相应的授权数据,一个授权数据可以对应多个对象,必须通过授权数据的验证才能访问对象。对象的授权数据,由用户从平台上输入,经杂凑算法进行长度归一化处理后存储;tcm拥有者的smk的认证码是由tcm本身持有的,而每一个实体的认证码是由实体本身持有的,tcm将认证码作为能够验证实体身份的完全证据。不再需要其他的核对,知道对象的authorizationdata就表示有权使用该tcm对象,请求者(希望在tcm上执行命令或者使用特殊实体)的任何实体在它保存授权数据的地方还需要有额外的保护和请求,而tcm不需要;
b、授权会话:任何实体都可能与tcm进行对话,为给实体与tcm平台之间的对话提供一条安全的通道,通过这条通道可以保证交互数据以及结果的安全传输,由于这种需求的存在,引入了认证会话,session建立的目的在于确保对tcm对象的访问是经过认证的,它使用轮番随机数的协议机制,可以防止重放攻击;
c、协议流程:授权协议和机制的目的在于向tcm证明请求者有权利执行命令和使用一些对象,协议满足如下要求:
1)ap会话以tcm_ap_create命令发起,以tcm_ap_terminate结束;
2)协议提供认证机制以authdata为共享秘密生成会话密钥,并基于该会话密钥生成校验值,用以判断调用者是否拥有对某一实体的权限;
3)协议提供完整性保护机制。以双方共享的会话密钥对功能调用阶段的数据包进行完整性保护;
4)tcmapcreate命令中计算为可选项;
5)协议提供可选的机密性保护机制,根据需要以双方共享的会话密钥对功能调用阶段的数据包进行加密保护,ifencrypted为是否对通信数据包进行加密的标志,在特殊情况下通信数据本身己经加密,如密钥迁移,可以选择对通信数据不加密,表中所描述的为数据包被加密的情况;
6)协议提供抗重播机制seqnonce为抗重播序列号,由tcm生成并在外部调用者和tcm之间共享,双方各自维护序列号,每发送一个数据包序列号自增1,用以防止重播攻击。
(6)证书管理:数字证书又叫“数字身份证”、“数字id”,是由认证中心发放并经认证中心数字签名的,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,用来证明数字证书持有者的真实身份;数字证书采用公开密钥体制,即利用一对互相匹配的密钥进行加密、解密;每个用户自己设定一把特定的、仅为本人所知的专有密钥私钥,用它进行解密和签名同时设定一把公共密钥公钥并由本人公开,用于加密和验证签名;当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地;通过使用数字证书,使用者可以得到如下保证:信息除发送方和接收方外不被其它人窃取信息在传输过程中不被篡改发送方能够通过数字证书来确认接收方的身份发送方对于自己的信息不能抵赖信息自数字签名后到收到为止,未曾作过任何修改,签发的文件是真实文件。
数字证书采用公钥机制,证书颁发机构提供的程序为用户产生一对密钥,一把是公开的公钥,它将在用户的数字证书中公布并寄存于数字证书认证中心,另一把是私人的私钥,它将存放在用户的计算机上。
数字证书要进行鉴别通信和保密通信,鉴别通信为发送方使用自己的私钥对明文进行加密,接收方使用发送方的公钥对密文进行解密,可以确信信息是由发送方加密的,也就可以鉴别了发送方的身份;保密通信为发送方使用接收方的公钥对明文进行加密,接受方使用自己的私钥对密文进行解密;由于只有接收方才能对由自己的公钥加密的信息解密,因此可以实现保密通信。
可信计算机平台将提供至少以下三种基本属性功能:
(1)保护存储
它是一个可以对受保护区域进行排外访问的指令集。受保护区域是可以安全的对敏感数据进行操作的区域,tpm使用保护存储和平台完整性测量报告来实现保护能力。保护存储是以一种可信的方法来执行计算和保护存储数据。tpm提供对于密钥和其它敏感数据的安全存储功能,保证存储在其中的密钥和敏感信息不会被破坏、更改和泄漏,以及未授权使用,保护存储的实现。
(2)平台的完整性测量、存储、报告
主要用于对平台配置信息的可信描述。它是一个获取影响平台完整性的平台指标,存储这些指标并把这些指标的摘要信息存放平台配置寄存器中的过程。测量的开始点被称为用于测量的可信根。一个静态的测量可信根是来自于一个启动状态例如加电的自检。一个测量的动态可信根是来自于一个不可信状态向可信状态的转换。处于完整性测量和完整性报告之间的是完整性存储。完整性存储将完整性指标存储在日志文件中同时将这些指标的摘要信息存储在平台配置寄存器中。完整性报告是一个证明完整性存储内容的过程。对于完整性测量、存储、报告的方法要求平台可以进入任何可能的状态包括不期望的和不安全的状态,但是不允许平台对它所处状态进行欺骗性的报告。
(3)身份证明
证明是保证信息准确性的一个过程,是一个平台对影响平台完整性的平台属性的证明。所有形式的证明都需要待证明实体的可信赖的证据。实质上,这意味着一个可信平台应该可以保护攻击,有能力证明它的平台代码和数据的完整性,对代码的执行实现保护,维护敏感信息的机密性。为了确保可信,一个可信平台可以可靠的测量有关它自身的任何属性指标并且证明它。一些有用的属性指标包括平台装载的软件和任意的硬件设备。用户将必须审核这些属性指标是否与单独获得的可信值相一致以决定这个平台是否是值得信赖的。
所以一个可信计算软件栈必须包括密码算法、密钥管理、证书管理、密码协议、密码服务等内容,为平台自身的完整性、身份可信性和数据安全性提供密码支持。
平台完整性验证包括完整性度量、存储与报告三方面。完整性度量是指计算度量值,记录该事件到事件日志,并把度量值记入相应的pcr中。完整性度量是为保证可信计算平台的可信性引入,它是指任何想要获得平台控制权的实体,在获得控制权之前都要被度量。完整性报告是指tcm向验证者提供其保护区域中平台或部分部件的完整性的度量值、日志中的度量事件和相关的证书,验证者可以通过完整性报告判断平台的状态。验证者可通过分析完整性度量事件日志信息判断该pcr值是否来自正确的度量过程。平台向外部实体提供完整性度量值报告的功能,所报告的度量值作为判断平台可信性的依据。具体过程如下:
①想要获得平台控制权的外部实体,请求平台发送完整性度量报告;
②基于自主密码的可信计算平台接收实体发送的请求;
③可信平台中的可信密码模块收集pcr值;
④pik(签名密钥)对pcr值进行签名返回给外部实体;
⑤外部实体验证pik证书和pcr签名;
⑥外部实体比对pcr值与平台完整性基准值,判断当前平台状态可不可信。
用户通过调用tcm_create_wrapkey命令,tcm产生对称加密密钥或密钥对,并用上一级密钥加密存储。创建密钥时可以设置两个密码使用密码和迁移密码。使用密码用于加密和解密操作的使用授权,但不允许发现实际的密码值迁移密码对用户在一个特定的公钥下迁移一个密钥进行授权。
当用户需要使用该密钥时,调用tcm_loadkey命令,用父密钥解密并将它载入到一个空闲的区域,返回keyhandle,供用户使用。
本发明未提及的技术均为现有技术。