关于可信计算的几个基本概念,整合了网络上几篇文章的内容,具体引用已标注,尊重版权,感谢作者。

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

TCM、TPM、TPCM相关推荐

  1. raw_count、tpm、fpkm、rpkm如何选择

    转录组测序中常见的数据类型有:raw_count.tpm.fpkm.rpkm.本文进行简单辨析: 一.概念 1 raw_count RNA-seq数据中,raw_count一般是指mapped到基因外 ...

  2. 理解:RPM、RPKM、FPKM、TPM、DESeq、TMM、SCnorm、GeTMM、ComBat-Seq

    文章目录 前言 为什么有不同的标准化表达单位(Expression Units) 理解Expression Units 和计算Calculation RPM or CPM 例子:RPM or CPM ...

  3. Jmeter中一些概念的理解——90%响应时间、事务、并发

    一.90%响应时间(参考虫师博客) 90%Line  一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 . 用在性能测试的响应时间,也就是90%请求 ...

  4. 看见“信任”,可信计算平台的由来解读(TPM、TCM、TPCM、等保2.0解读)。

    可信计算平台由来解读 一.关键名词 二.什么是可信计算 TPM.TCM.TPCM由来 三.等保2.0关于可信要求的解读 四.阿里云可信计算实践 五.结语 一.关键名词 TPM(Trusted Plat ...

  5. TPM、TCM分别是什么?

    IT业界从1999年开始,就有一个由Intel.IBM.HP.Microsoft.Compaq发起的TCPA(Trusted Computing Platform Alliance)组织在推动构建一个 ...

  6. 转录组表达量计RPKM、FPKM、TPM说明

    在转录组测序(RNA-Seq)中,基因的表达量是我们关注的重点.基因表达量的衡量指标有:RPKM.FPKM.TPM. RPKM:Reads Per Kilobase Million:说实话,这个英文说 ...

  7. RPKM、FPKM、TPM

    RPKM.FPKM.TPM RPKM(Reads Per Kilobase per Million) 每千个碱基的转录每百万映射读取的reads数 FPKM(Fragments Per Kilobas ...

  8. R语言---生信分析---count转换成TPM、FPKM

    R语言---生信分析---count转换成TPM.FPKM 背景介绍 代码 0. 设置工作目录,加载需要的包 1. 读取 reads count 的数据 2. 下载基因长度的数据,并读取 3. cou ...

  9. 重磅!中国电信研究院、浦发银行、冲量在线和中国信通院联合发布-隐私计算之TEE技术实践分析

    隐私计算之TEE技术和应用实践分析 大数据时代,数据流通.安全等问题接踵而至. 据IDC预测,全球数据总量预计2020年达到44ZB,我国数据量将达到8060EB,占全球数据总量的18%.2025年全 ...

最新文章

  1. Linux 引导和系统启动
  2. 十二种特征工程相关技术简介
  3. LaTeX单栏和双栏设置
  4. 记事本java代码_java实现Windows记事本(示例代码)
  5. js/css 检测移动设备方向的变化 判断横竖屏幕
  6. SpringBoot2 整合 AXIS 服务端和客户端
  7. 问题 D: Search Problem
  8. iOS开发之Runloop(转)
  9. 随机过程第二章part2
  10. 安装phpDocumentor
  11. cad统计面积长度插件vlx_cad计算面积插件免费版
  12. 计算机指法基础知识,电脑打字基础知识及打字指法
  13. 计算机二级考试报名如何上传照片?
  14. ruby on rails_如何将刺激添加到Ruby on Rails应用程序
  15. iOS UITextView 纯英文排版换行出错的解决方案
  16. ios Block底层详解、框架结构:捕获、对象类型、__block、__forwarding、循环引用
  17. 在javascript中使用java_在JavaScript中使用Java
  18. 羽毛球常见运动损伤及如何预防
  19. JavaScript学习笔记-B站动力节点
  20. 【ClickHouse】-01.万字带你快速入门使用CK

热门文章

  1. python 绘制世界地图,添加海岸线、陆地、投影
  2. 关于TransE表示学习的一点点心得 (1)
  3. 2016年值得推荐的oracle书籍77本
  4. SD卡的读写和加解密
  5. python批量修改图片分辨率
  6. scala 模式匹配 match
  7. 当代年轻人的生活仪式感有哪些。
  8. Linux Crontab定时执行脚本出错,但手动执行脚本正常原因及解决方案
  9. 手机为什么不直接运行linux,怎么才能不打开手机又可以操作手机?
  10. python两个循环同时运行,如何同时运行两个Python循环?