揭秘TPM安全芯片技术及加密应用
揭秘TPM安全芯片技术及加密应用
首发:http://safe.it168.com/a2012/0912/1396/000001396884.shtml
从2003年开始,重要数据丢失已经成为严重的信息安全问题。尽管企业、机构和个人均不同程度地部署了保密措施,但泄密案例还是层出不穷。从近年来国内外公开发布的失泄密案件资料中,我们选择了以下几个经典案例。
2010年阿桑奇和他的“维基解密”几乎成为所有政府和企业的梦魇。各种“爆料”犹如一个个重磅炸弹,以致于整个世界引起轩然大波,美国的安全防范级别几乎是世界范围内密集程度和技术含量最高的,但阿桑奇却用实际行动证明其并非见不可破!由此可见,数据泄密是没有真空领域的。
650) this.width=650;" alt="揭秘TPM安全芯片技术及加密应用" src="http://image20.it168.com/201209_0x0/1189/a8d228f73b4d1990.jpg" border="1" />
2011年12月21日上午,黑客在网上公开CSDN网站的用户数据库,导致600余万个注册账号泄露,之后网上曝出人人网、天涯、开心网、多玩、世纪佳缘、珍爱网、美空网、百合网等知名网站的用户称密码遭网上公开泄露。最新监测数据发现,目前网上公开暴露的网络账户密码超过1亿个。因此,“泄密门”为我们敲响网络安全警钟。
一、安全芯片发展现状
随着安全形势的越来越严峻,目前国内外越来越重视安全芯片的研制,主要分为国外的TPM和国内的TCM两大阵营,TPM(TrustedPlatformModule)标准的芯片从要求上首先必须具有产生加、解密密钥功能,还必须能够进行高速的资料加、解密。在我国为避免影响国家战略安全的核心技术控制在某些国家手中,我国也在同步进行可信计算平台的研究和部署工作。其中,部署可信计算体系中,密码技术是最重要的核心技术。
二、TPM安全芯片
传统的系统中,密钥和授权信息等存储在磁盘中,这样非常不安全,而在带TPM安全芯片的系统中,难度加大了很多,这时攻击者只有攻破TPM才有可能攻破系统的防护。这样,这样以来TPM成为系统可信的最低层次,它提供了整个系统可信的基础。
那么TPM就安全吗?TPM的可信基础来源于可信根,可信根(Rootoftrust)是无条件被信任的,系统并不检测可信根的行为,因此可信根是否真正值得信任,是系统可信的关键。TPM是一个含有密码运算部件和存储部件的小型系统,也可以作为另一个芯片的一部分出现,比如以太网接口。
650) this.width=650;" alt="典型安全事件" src="http://image20.it168.com/201209_0x0/1189/8c592fcd14d3ce0.jpg" border="1" />
如下图所示,TPM安全芯片包含了分别实现RSA、SHA等算法硬件处理引擎,它既是密钥生成器,又是密钥管理器件。TPM通过提供密钥管理和配置管理等特性,与配套的应用软件一起,主要用于完成计算平台的可靠性认证、防止未经授权的软件修改、用户身份认证、数字签名以及全面加密硬盘和可擦写等功能。TPM安装在输入/输出控制器,即连接外部设备与内存的总线中,让TPM可以监视每一个从外存装载入内存的软件。由于TPM处于硬件层,所以只要用户选择了打开TCG功能,任何行为都无法逃避监视。
TPM如何工作的呢?
TPM安全芯片首先验证当前底层固件的完整性,如正确则完成正常的系统初始化,然后由底层固件依次验证BIOS和操作系统完整性,如正确则正常运行操作系统,否则停止运行。之后,利用TPM安全芯片内置的加密模块生成系统中的各种密钥,对应用模块进行加密和解密,向上提供安全通信接口,以保证上层应用模块的安全。
TPM会按照整个系统及应用软件栈的装载顺序来监视装载到计算平台上的系统软件及所有应用软件,TPM采用哈希扩展算法,以哈希值特征的形式来存储所有能够被平台装载的全部软件。例如,在X86平台运行过程中,从机器加电启动开始,TPM将按照如下的顺序监视软硬件系统及应用软件栈的装载过程:BIOS、MBR、OS装载器、OS、用户应用程序1-n.TPM将计算平台上的整个软件链的哈希值进行记录,之后就能够把该平台上的软件加载状况向管理中心报告。TPM可以对每个报告进行数字签名,确保报告的真实性。
650) this.width=650;" alt="TPM安全芯片" src="http://image20.it168.com/201209_500x375/1189/aff4ae0cea55ebdc.jpg" border="1" />
经过TPM加密数据为硬盘存储数据提供了强大的保护,已防止硬盘被窃取的数据安全。
三、笔记本中的TPM安全芯片
ThinkPad笔记本中的TPM安全芯片可以与指纹识别模块一起使用,普通笔记本中的指纹识别技术一般是把指纹验证信息储存在硬盘中,而ThinkPad中的TPM安全芯片则是直接将指纹识别信息置于安全芯片中。一旦遭到暴力破解,安全芯片就启动自毀功能,这样保证了您的个人信息资料不会泄密。安全芯片通过LPC总线下的系统管理总线来与处理器进行通信,安全芯片的密码数据只能输入而不能输出。即关键的密码加密与解密的运算将在安全芯片内完成,而只将结果输出到上层。TPM安全芯片和笔记本上的指纹识别模块搭配能达到最高的安全级别,即便是在无尘实验室对磁盘进行暴力拆解,也无法获得有效信息。
四、TPM应用
安全领域多年的研究已经证明,在网络接入层构建安全的接入模式是形成一体化深度防御的基础,要经过长期的努力。但是在关键行业,如政府机关、企业的内部体系中,政府部门每天都要面对众处理日常事务,对象相对复杂,增加了流失和泄露机密文件的概率,所以部署TPM安全平台;型企业内部网络结构复杂,应用众多,需要进行大量的跨部门信息传递。因此,它对可信计算技术的需求最为强烈,以解决底层安全、身份认证、数据加密、集成管理等一系列问题。
如目前国外有很多公司在研究TPM芯片,例如Infineon英费凌、STMicro(意法微电子)、Atmel(爱特梅)他们都有成熟的产品。笔记本中Thinkpad的X、R、T、W系列都带有TPM安全芯片,由于国内起步较晚也有商用的产品主要由联想、兆日等少数公司在开发TPM芯片,接下来我将以ThinkpadT系列机型为例给大家介绍如何启用TPM功能并加密磁盘。
650) this.width=650;" alt="笔记本中的TPM安全芯片" src="http://image20.it168.com/201209_0x0/1189/4ff7c91f3cd870c0.jpg" border="1" />
1、设置TPM芯片保存密码
1、在开机时按F1,进入Security安全栏选中SecurityChip,使得在启动状态,如下图所示:
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/e5e910a42650a60.jpg" border="1" />
当你在BIOS中设置好启动安全芯片时,这时系统提示“是否立即激活安全设备”,选中是以后,系统会提示需要重启。
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/4946acd62db64dc0.jpg" border="1" />
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/2957449ad8edf7e0.jpg" border="1" />
2、当再次启动时,首先系统会提示配置TPM平台,只需要按F10即可激活TPM。
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/9f0197f181637e90.jpg" border="1" />
这时进入Windows系统就会看到安全设备已激活的信息。点击确定以设置ClientSecuritySolution:
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/e13d273af0eb8270.jpg" border="1" />
首次进入CSS会有几秒钟时间系统初始化设置。
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/3e2db19669604510.jpg" border="1" />
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/151c00302f111600.jpg" border="1" />
▲ClientSecuritySolution启动界面
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_0x0/1189/84691c35fd901e60.jpg" border="1" />
▲主程序界面
650) this.width=650;" alt="设置TPM芯片保存密码" src="http://image20.it168.com/201209_500x375/1189/db9f04313181bed0.jpg" border="1" />
TPM安全芯片除了能进行传统的开机加密以及对硬盘进行加密外,还能对系统登录、应用软件登录进行加密。比如目前咱们常用的ADSL上网帐号、MSN、QQ、网游以及网上银行的登录信息和密码,都可以通过TPM加密后再进行传输,这样就不用担心信息和密码被人窃取。
2、BitLocker加密磁盘
利用一些系统启动光盘或是U盘就能进入一个特殊的WindowsPE环境,从而编辑系统注册表修改用户帐号甚至是获取NTFS访问权限,杜绝这种脱机攻击的方法只能不让攻击者无法接触到PC。不过好在Windows7企业版或旗舰版中的BitLocker功能可以保护整个磁盘不被脱机攻击,不会被windows外的其他任何系统所访问。因为他将密钥已加密形式保存在TPM芯片中,这样一来要启动windows或读取系统里的文件就必须提供TPM里的密钥。
保存在接下来我们就要用到bitlocker给磁盘加密,在ThinkpadT系列笔记本中都具有受信任的平台模块(TPM),版本是1.2,这是可以搭配windows7系统提供的BitLocker加密功能他会会将其密钥存储在TPM芯片中使破解密码更加困难增强了安全性。BitLocker使用128位密钥的高级加密标准(AES)算法。要获得更好的保护,可使用“组策略”或BitLockerWindowsManagementInstrumentation(WMI)提供程序将密钥增至256位。
我们在windows7系统里的控制面板里或右击驱动器都可以设置bitlocker加密:
650) this.width=650;" alt="BitLocker加密磁盘" src="http://image20.it168.com/201209_500x375/1189/30424f3f5d30a80.jpg" border="1" />
包括系统分区在内所有分区都可以这是加密,选取待加密的分区,启用BitLocker,经过一段时间验证并进行初始化驱动器。如下图所示:
650) this.width=650;" alt="BitLocker加密磁盘" src="http://image20.it168.com/201209_500x375/1189/f87d31919d3cbdf0.jpg" border="1" />
当输入解锁密码是其统启动ThinkVantagePassswordManager来存储加密密码:
650) this.width=650;" alt="BitLocker加密磁盘" src="http://image20.it168.com/201209_0x0/1189/87152d3cd1e8e260.jpg" border="1" />
650) this.width=650;" alt="BitLocker加密磁盘" src="http://image20.it168.com/201209_0x0/1189/34fdee3fbc7685c0.jpg" border="1" />
输入条目名称,之后就开始正式加密驱动器的进程了。需要说明的是这个过程会比较长,如果你在驱动器内有很多文件,那么这将是一个非常漫长的过程(中途不得以外中断,笔记本一定要接电源)。
650) this.width=650;" alt="BitLocker加密磁盘" src="http://image20.it168.com/201209_0x0/1189/fc158c33b2a437f0.jpg" border="1" />
在整个驱动器加密完成后就可以正常使用了,不过性能会比原来降低不少,建议不要将平凡读取的分区加密,介绍到这里大家清楚了在一台Thinkpad笔记本上如果利用TPM和BitLocker技术给你的电脑加密的过程,如果在配上指纹识别和BIOS里加开机安全口令,那么你的电脑将固若金汤。
本文出自 “李晨光原创技术博客” 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/990197
揭秘TPM安全芯片技术及加密应用的更多相关文章
- fir.im Weekly - 揭秘直播移动 APP 技术实现
2016年直播似乎无处不在,作为一个开发者也许需要补充下关于直播技术点.本期 fir.im Weekly 整理了一些开发者对于直播实践项目中的技术经验与直播技术架构分析等内容,还有一些关于 iOS . ...
- ASP.NET常用技术之加密解密
在开发项目中有许多数据需要我们进行加密解密操作,这里介绍几个加密解密的方法. 一:MD5加密 MD5加密是一种单向的加密算法,它只能加密,加密后不能进行逆向解密操作,常用于数字签名和加密用户密码. 下 ...
- .NET技术webconfig加密操作
webconfig 加密 aspnet_regiis.exe -pef secion physical_directory -prov provider section表示要加密的配置节 phy ...
- NXP恩智浦P89V52X2单片机破解P89C52X2BA芯片解密技术分享!
NXP恩智浦P89V52X2单片机破解P89C52X2BA芯片解密 P89V52X2是一款带有8kB Flash.256B数据RAM和192B数据EEPROM的80C51微控制器.这个器件可以在完全替 ...
- android apk 自我保护技术-加密apk
经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blo ...
- 【高德地图API】汇润做爱地图技术大揭秘
原文:[高德地图API]汇润做爱地图技术大揭秘 昨日收到了高德地图微信公众号的消息推送,说有[一大波免费情趣用品正在袭来],点进去看了一眼,说一个电商公司(估计是卖情趣用品的)用高德云图制作了一张可以 ...
- 技术分析 | 新型勒索病毒Petya如何对你的文件进行加密
6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球. 媒体报道,欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场都不同程度的受到了影响. 阿里云安全团队第一时间拿到病毒样本,并进行了 ...
- 非对称加密技术里面,最近出现了一种奇葩的密钥生成技术,iFace人脸密钥技术
要说到非对称加密技术啊,得先说说对称加密技术 什么是对称加密技术 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密. 也就是密钥也可以用作解密密钥,这种方法在密码学中叫做对称 ...
- Android逆向之旅---基于对so中的section加密技术实现so加固
一.前言 好长时间没有更新文章了,主要还是工作上的事,连续加班一个月,没有时间研究了,只有周末有时间,来看一下,不过我还是延续之前的文章,继续我们的逆向之旅,今天我们要来看一下如何通过对so加密,在介 ...
随机推荐
- Hadoop学习2--Linux准备及环境准备
1.环境安装: 虚拟机:VMware Player 系统:Ubuntu12 注意事项:注意位数,包括系统,java,Hadoop 2.切换账号 当前登录账号是自己的账号,如果想切换到root,且是第一 ...
- 黄聪:HtmlAgilityPack教程案例
HtmlAgilityPack中的HtmlNode类与XmlNode类差不多,提供的功能也大同小异.下面来看看该类提供功能. 一.静态属性 public static Dictionary<st ...
- Freescle cortex-A9(完善中...)
关键词:cortex-A9 , udoo ,mars board ; (内容参考,飞思卡尔官方网站,如有问题请联系本人) i.MX 6系列处理器推出了业界首个具有真正扩展性的多核平台,包括基于ARM® ...
- 在指定路径下查找并打印mdb类型文件
1 #encoding:utf8 import os fpath = 'D:\Download\LP传奇-麒麟传说\Date' rfile = '' files = [] mdbFiles = [] ...
- javascript世界一等公民—函数
简介 在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传给另一个函数,或是赋值给一个本地变量,又或是作 ...
- Segment fault及LINUX core dump详解 (zz)
C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界. (2)修改了只读内存. (3)scanf("%d&q ...
- IREP_SOA Integration程序注释语法Annotations(概念)
20150506 Created By BaoXinjian
- [复变函数]第11堂课 3.3 Cauchy 积分定理及其推论
0. 引言 (1) Cauchy 积分定理: 设 $D$ 为 $(n+1)$ 连通区域, $f$ 在 $D$ 内解析且连续到边界 $C$, 则 $\dps{\int_C f(\zeta)\rd \ze ...
- Java NIO使用及原理分析 (一)
http://blog.csdn.net/wuxianglong/article/details/6604817
- JAVA 下拉列表和滚动条
//下拉列表和滚动条 import java.awt.*; import javax.swing.*; public class Jiemian7 extends JFrame{ JPanel mb1 ...