关于可信计算的几个基本概念,整合了网络上几篇文章的内容,具体引用已标注,尊重版权,感谢作者。
1、概述
1.1 背景
IT业界从1999年开始,就有一个由Intel、IBM、HP、Microsoft、Compaq发起的TCPA(Trusted Computing Platform Alliance)组织在推动构建一个可信赖的计算环境,这个组织的成果是定义了一个平台设备认证的架构,以及嵌入在主板上的安全芯片(TPM:Trusted Platform Module)和上层软件中间件TSS(Trusted Software Stack)的第一个规范,到2003年初,IBM已经推出了将近1000万台带有安全芯片的电脑;2003年TCPA重新组成了一个更加具有商业性质的组织TCG(Trusted Computing Group),加大了产业推广力度,至今为止,已经有Intel、AMD、Microsoft、IBM、HP、Sony、Sun 7个发起成员.Intel和微软这两大行业巨头在TCG组织中发挥了越来越重要的作用,并且投入了很大的资源推动了整个产业链(包括安全芯片、主板、BIOS、芯片组、CPU、OS、软件中间件、单机上层应用系统、电子商务应用系统、CA系统、安全认证)的形成,因此TCG组织对IT产业的影响将非常巨大。
TCG要求的关键部件TPM1.2安全芯片是嵌入密码型计算机的核心部件,通过LPC总线接口放置在主板上,芯片内部是一个完整的安全计算环境,内部结构包括:
1、低功耗的32位RISC CPU;
2、CPU访问片内外围模块的通道;
3、中断控制器(Interrupt Controller);
4、时钟发生器(Clock Generator);
5、对外IO端口;
6、RAM;
7、ROM;
8、Flash;
9、SHA/HMAC模块;
10、RSA协处理器模块;
11、真随机数产生模块。
TPM1.2安全芯片提供了平台完整性度量、提供平台唯一身份标识、提供硬件级的密钥保护等基本安全功能,为可信计算提供基础硬件支撑。
国际TPM1.2产品的日益成熟,为什么我们国内还要自己做TCM呢?两者又有什么差别呢?
计算机系统安全是信息和网络安全的基础,而信息和网络安全已成为国家安全的一个重要组成部分。1997年我国出台的《商用密码管理条例》明确规定:国家任何商用密码的研制、生产和销售都必须接受专控管理。任何国外生产的商用密码产品未经许可都不允许中国市场上销售。《商用密码管理条例》的出台也表明信息安全类产品不能依赖别人,也不可能依赖别人,必须立足于国内自主开发。国际TCG组织也同样认识到这一点,在TPM标准中对其核心算法的替换已经提上议事日程。
同时,考虑到中国安全芯片标准发展时间比较短,参考国际规范可以避免我们走很多弯路;同时对于以后将中国标准让国际规范兼容和采纳,有很大的帮助。因此TCM与TPM1.2有很多的相同点,TCM是借鉴了TPM1.2的架构,替换了其核心算法后的产品。同时TCM中也按照我国的相关证书、密码等政策提供了符合我国管理政策的安全接口。
可信计算的理念是从根本上完善了PC结构,从硬件到软件,提供完善的体系来防范日益猖獗的病毒、木马,希望这一天尽快来到。让所有人都不用为了安全问题而担忧,可以尽情地享受互联网和高科技带来的便利和乐趣。
1.2 名词
TPM(Trusted Platform Module)可信平台模块;是一种植于计算机内部为计算机提供可信根的芯片。该芯片的规格由可信计算组(Trusted Computing Group)来制定。
TCM(trusted cryptography module)可信密码模块; 是可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间,是我国国内研究,与TPM对应。
TPCM(Trusted Platform Control Module)可信平台控制模块;让可信平台模块具有对平台资源进行控制的功能。
TSS(TCG Software Stack):可信软件栈,是可信计算平台上TPM的支撑软件。TSS的主要作用是为操作系统和应用软件提供使用TPM的接口。
TNC(Trusted Network Connect):可信网络连接技术,用来实现平台到网络的可信扩展,以确保网络的可信。
2、原理
2.1 TPM 原理
各部件功能:
I/O部件完成总线协议的编码和译码,并实现TPM与外部的信息交换
密码协处理器用来实现加密、解密、签名和验证签名的硬件加速
HMAC引擎是实现基于SHA-1的Hash函数消息认证码HMAC的硬件引擎,其计算根据RFC2014规范
SHA-1引擎是Hash函数SHA-1的硬件执行
密钥生成部件用于产生RSA密钥对
随机数发生器是TPM内置的随机源,用于产生随机数
电源检测部件管理TPM的电源状态
执行引擎包含CPU和相应的嵌入式软件,通过软件的执行来完成TPM的任务
非易失性存储器主要用于存储嵌入式操作系统及其文件系统,存储密钥、证书、标识等重要数据
优点和不足
优点:TPM体现了TCG以硬件芯片增强计算平台安全的基本思想,为可信计算平台提供了信任根。TPM以密码技术支撑TCG的可信度量、存储、报告机制,为用户提供确保平台系统资源完整性、数据安全存储和平台远程证明等可信服务
不足:
TPM被设计成一种被动部件,缺少对平台安全的主动控制技术
缺少芯片本身物理安全方面的设计
可信度量根RTM是一个软件模块,它存储在TPM之外,容易受到恶意攻击
采用LPC总线与PC平台连接,不适合大数据量的通信
TPM的设计主要是面向PC平台的,对于服务器和移动计算平台并不完全适合
TPM在密码配置和密钥管理方面也存在较多不足
2.2、TSS:基本架构、原理
基本架构:可信软件栈具有多层次的体系结构,可分为TSS服务提供层TSP、TSS核心服务层TCS、TSS设备驱动层TDDL,每个层次都定义了规范化的数据接口。TSP主要作为本地和远程应用的可信代理,TCS用于提供公共服务的集合,TDDL负责和TPM的交互
原理:最上层的TSP是向用户的应用程序提供接口,它把来自应用程序的参数打包传给TCS模块,由TCS模块来提供具体的功能函数;TCS模块把来自TSP模块的参数进行分析和操作以后写成一个TPM可以识别的字节流,通过TDDL传到TPM里面去,TPM接收到字节流以后进行相应的操作,把结果以字节流的形式通过TDDL返回到TCS,TCS对字节流分析以后把结果传给TSP,最后由TSP把正式的结果返回给应用程序。
3、可信链
信任链
信任链基本定义:信任链是信任度量模型的实施技术方案。信任链技术是可信计算的关键技术之一。可信计算平台通过信任链技术,把信任关系从信任根扩展到整个计算机系统,以确保可信计算平台的可信。
TCG给出的信任链定义如下:CRTM->BIOS->OSLoader->OS->Applications
模型:
信任链交互模型
信任链复合模型
结构
具有数据恢复的星星信任结构
将可信度量根RTM、可信存储根RTS和可信报告根RTR集为一体,都集成在TPM芯片中
对所有被度量的软件(BIOS,OS Loader,OS,Applications) 都进行数据备份
在信任度量过程中,当发现某个被度量软件的完整性被破坏时,进行备份恢复
不足
尚未有研究机构对信任链的本质进行有效刻画和理论描述
通过信任链技术,可信计算着力于保护代码和数据的完整性,却没有设计平台秘密信息、用户私有数据的机密性,只有完整性机制,而缺少机密性机制,这对于终端安全来说是不完善的
基本应用(计算机安全启动)
4、可信计算
可信计算基本思想,利用远程证明数字版权保证安全性
可信计算基本思想:在计算机系统中,首先构建一个信任根,再建立一条信任链,从信任根开始到硬件平台、到操作系统、再到应用,一级度量一级,一级信任一级,把这种信任扩展到整个计算机系统,从而确保整个计算机系统的可信
5、开源项目
了解了可信计算的思想和原理,如果不从实际上体验一把可信计算的功能也是很痛苦的。而现在在国内使用TPM的芯片很困难,TCM芯片在很多方面可能与国际主流用法不一致。因此,为了实际使用可信计算功能,这里推荐一些开源项目。
(1)TPM Emulator
开源地址:https://github.com/PeterHuewe/tpm-emulator
不需要实际TPM芯片就可以通过软件提供可信平台模块的功能,可以在Windows和Linux上进行编译后使用,建议和可信软件栈TROUSERS一起使用。
(2)可信软件栈TROUSERS
开源地址:http://sourceforge.net/projects/trousers
IBM实现的一套开源软件栈,是Linux下进行可信计算应用开发的主要接口。
(3)IBM Software TPM
开源地址:http://ibmswtpm.sourceforge.net/
提供了一全套实践可信计算的软件工具:包含软件TPM模拟器、libtpm库(类似可信软件栈TSS)、实例命令(用C语言写,可以直接访问TPM命令接口,测试可信计算的功能),而且通过提供的TPM Proxy代理可以去实际TPM芯片、以及其他软件模拟的TPM Emulator进行通信。
(4)OpenTC项目
开源网址:www.opentc.net
是欧盟赞助的一个可信计算项目,目标是开发一套完整的可信操作系统,出了很多成果,包含Trusted XEN Virtualisation OS,Trusted Linux以及Trusted Microkernel for small and embedded systems等。
(5)Trusted JAVA项目
开源网址:http://trustedjava.sourceforge.net/
是OpenTC项目的一部分,显示了如何使用Java来使用TPM和TSS的功能,由IAIK开发,可以支持跨平台的使用可信计算功能。
(6)TPM4JAVA
开源网址:http://tpm4java.datenzone.de/trac
另一个可信Java工程,不过主要由Technical University of Darmstadt大学主持。
(7)内核完整性度量IMA
开源网址:http://sourceforge.net/p/linux-ima/wiki/Home/
结合TPM安全芯片,在Linux内核实现了可信计算的完整性度量体系,对所有可执行程序进行了度量。
(8)EMSCB项目
开源网址:http://www.emscb.com/content/pages/49241.htm
由德国政府赞助,基于对TPM的使用开发一些典型的安全应用(如加密等)。可以基于它们的代码理解可信应用开发的思路,以及嵌入到其它应用开发中。
6、参考资料
①、可信平台模块TPM(Trusted Platform Module)介绍及tpm-tools安装使用
https://blog.csdn.net/u012386311/article/details/105643473?utm_medium=distribute.pc_relevant_download.none-task-blog-blogcommendfrombaidu-3.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-blogcommendfrombaidu-3.nonecas
②、TPM、TCM分别是什么?
http://blog.sina.com.cn/s/blog_5ac906b50100ajul.html
③、TPM工作原理
https://blog.csdn.net/zhangnn5/article/details/6857397
④、信息安全导论复习
https://blog.csdn.net/rectsuly/article/details/72826014
⑤、可信计算复习
https://blog.csdn.net/lcl_xiaowugui/article/details/80821297
————————————————
版权声明:本文为CSDN博主「加糖小馒头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoju14/article/details/109717146
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。