




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TPM芯片SSX35的BIOS模块化开发摘要:在当今信息化时代,信息平安的重要性是不言而喻的。该文介绍的是一种常用标准化可信平台模块,全称Trusted Platform Module,简称TPM。TPM可以独立进展密钥生成、加解密的芯片,其重要作用是加强了对密钥的管理,芯片以硬件来生成、存储和管理密钥。TPM需要硬件和软件的支持,不仅需要硬件设计将TPM芯片通过LPCLow Pin Count系统总线与硬件主板相连,并且需要BIOSBasic Input/Output System的底层软件支持,依靠BIOS实现TPM硬件与用户的人机交互操作,并且依靠BIOS进展TPM的初始化动作。该文通过
2、理论验证,实现对兆日科技的TPM产品SSX35的BIOS底层支持,并且将SSX35芯片所需的BIOS底层支持开发成一个成熟的功能模块,使之能方便快速地移植到其他计算机电脑的系统开发中去。关键词:TPM; SSX35;模块化中图分类号:TP338文献标识码:A文章编号:1009-3044(2011)20-4975-06The BIOS Modular Development of TPM Chip SSX35LIN Cong-fa(China Greatwall Computer Shenzhen Co., Ltd, Shenzhen 518057, China)Abstract: In pre
3、sent information era, importance of information security is self-evident. This article will introduce a commonly used standard Trusted Platform Module, referred to as TPM. TPM is chip able to independently carry out key generation, encryption and decryption, with strengthening the management of keys
4、 as its important role, using hardware to generate, store and manage keys. TPM requires both hardware and software support, hardware design to connect TPM chip with hardware motherboard through LPC (Low Pin Count) system bus, BIOS (Basic Input / Output System) underlying software support to realize
5、interactive operation between TPM hardware and users and to the initialize TPM.This paper proves practical achievement of BIOS underlying support of SSX35 TPM of Sinosun Technology Co., Ltd. , which is developed into a mature functional module for convenient transplantingto other computer system dev
6、elopment.Key words: TPM; SSX35; modular1 TPM简介TPM是Trusted Platform Module的简写。1999年10月,多家IT巨头结合发起成立可信赖运算平台联盟Trusted Computing Platform Alliance,TCPA,初期参加者有康柏 、HP 、IBM、Intel、微软等,该联盟致力于促成新一代平安且可信赖的硬件运算平台。2003年3月,TCPA增加了诺基亚 、索尼等成员,并改组为可信赖计算组织Trusted Computing Group,TCG,希望从跨平台和操作环境的硬件和软件两方面,制定可信赖电脑的相关标准和
7、标准。并在并提出了TPM标准,目前最新版本为1.2。可信计算的根本目的是向用户提供完好的可信平安解决方案,其研究内容包括:系统平安芯片(TPM),平安主板,平安BIOS,平安操作系统,平安数据库,平安应用,平安可信网络接入,其中系统平安芯片(TPM)作为提供可信计算的核心部件。TPM对于存储密钥的保护管理,是一个树构造,下层密钥由上层的密钥加密保护。这个保护存储密钥层次的根是SRK(storage Root key存储根密钥),这是一对非对称密钥对,其公钥用于保护加密下级的SK(storage key存储密钥),其私钥始终保护在TPM芯片内部。攻击者无法获得SRK的私钥也就无法破解由SRK所保
8、护的SK,同样也无法破解由SK保护的下级密钥。详细请见图1所示。2 SSX35模块化要求要求按照兆日科技提供的技术文档和开发样品,进展SSX35芯片的导入工作,主要是保证SSX35在BIOS下按照要求完成各种初始化和资源分配动作,并保证其在操作系统下正常工作。由于SSX35的BIOS底层实现需要诸多的动作,有些是需要按照TPM标准进展标准性的初始化和资源分配,以及SSX35与用户的人机交互,为简化SSX35在新工程的导入工作,加快新工程的开发进度,可以将SSX35开发成一个标准的功能模块。将SSX35模块化的目的在于降低新工程的移植难度和复杂度,减少重复劳动,进步工作效率。3 SSX35芯片B
9、IOS模块化开发的实现3.1 SSX35 BIOS初始化流程通过翻阅SSX35 Datasheet,总结出SSX35的BIOS初始化流程应该如图2所示进展。3.2 SSX35 BIOS Init流程分解在SSX35的初始化过程中,主要有四大判断步骤,分别是对应于图1的:硬件侦测、用户是否进入BIOS Setup、BIOS Setup是否需要Reset、SSX35状态是否正确。详细的初始化工作包括:硬件初始化、获取状态、BIOS Setup的界面显示及人机交互设置、将控制权转交给操作系统前的锁定工作。详细步骤如下:1) 硬件侦测。因为SSX35是通过LPC总线Low Pin Count Bus:
10、一种系统总线与系统连接,SSX35的硬件侦测通过读取SSX35的LPC总线地址的值来进展判断,SSX35的LPC总线地址为:0FED40000h,假设读取值非零,那么表示SSX35存在,否那么不存在。详细的汇编代码如下:TPM_SMM32_Action0:;detect TPM module whether exist?mov edx, TPM_LPC_Addr ;SSX35的LPC地址mov al,ds:edxcmp al,0ffhje No_sinosun_TPM_Exist ;no found, jumpmov ax, 0WRITENV cmosDetectTPMStatus ;写SSX
11、35存在状态xor ax, axclcjmp TPMMP_Action_DoneNo_sinosun_TPM_Exist:mov ax, 01hWRITENV cmosDetectTPMStatus ;写SSX35不存在状态mov ax, 0A0hstcjmp TPMMP_Action_Done2) SSX35硬件初始化。对SSX35开始进展初始化的BIOS节点,一定要是在对内存和LPC的初始化完成之后,在用户选择是否BIOS Setup的节点之间进展!在SSX35的硬件初始化中,先读取硬件状态保存位,假设硬件存在,那么进展以下四个命令的初始化:注意:向SSX35下命令,是通过向TPM MP
12、Driver来执行的,所谓的TPM MP Driver,是一个内建到BIOS里的二进制文件,由BIOS初始化时,在物理内存初始化完成之后,将TPM MP Driver复制到内存中,并记下其在内存中的位置。在调用SSX35 MP Driver时,需要先将出入参数设置好,将CPU切入到保护形式,然后执行一个跳转,以这样的方式向SSX35下命令,同样会有执行结果返回到EAX存放器。 调用SSX35 MP Driver,通知其以下命令采用MP Driver Function1,程序代码如下:;call TPM MP driver function 1mov ax, 0001hmov word ptr
13、cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A1hjne Sinosun_TPM_MP_Fail 向SSX35 MP Driver下startup ST_CLEAR命令,进展SSX35的状态清理,代码如下:;call TPM MP driver function 4 for startup ST_CLEAR cmdmov ax, 0104hmov word ptr cs:Transmit_TO_32bitCall, axcall T
14、PM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A1hjne Sinosun_TPM_MP_Fail;get return codesout 0ebh,al ;io delaymov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000h ;TPM initiates passje tpm_test_continuecmp eax,26000000h ;TPM has been initiatedje tpm_test_c
15、ontinuecmp eax,02080000h ;? retry?je startup_begin;/todo error in here;出错处理 向SSX35 MP Driver下continue test命令,进展SSX35的继续测试,代码如下:tpm_test_continue:;call TPM MP driver function 4 for continue test cmdmov eax, 0204hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_C
16、all_Returncmp al, 0mov ax, 0A1hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000hje TPM_contest_OK; cmp eax,02080000h; je tpm_test_continue; mov ah, 0FEh; jmp Sinosun_TPM_MP_FailTPM_contest_OK: 向SSX35 MP Driver下PhysicalPresence_CommandEnable命令,
17、进展SSX35的物理状态使能,代码如下:WaitingForContinueTestOK:;call TPM MP driver function 4 for TSC_PhysicalPresence with PhysicalPresence_CommandEnablemov eax, 0304hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A1hjne Sinosun_TPM_MP_Failout 0eb
18、h,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax, 02080000h ;detect continue test return code in here for tpm new firmware 1.2.0.9, it is fault in this firmwareje WaitingForContinueTestOKcmp eax,00000000hmov ax, 0A1hjne Sinosun_TPM_MP_Fail 向SSX35 MP Driver下PhysicalPresence_Presence
19、命令,进展SSX35的物理状态设置,代码如下:;call TPM MP driver function 4 for TSC_PhysicalPresence with PhysicalPresence_Presencemov eax, 0404hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A1hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup
20、.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000hmov ax, 0A1hjne Sinosun_TPM_MP_Fail3) STATUS阶段的主要工作是,报告设备接收数据或者发送数据的状态。3.3 读取SSX35状态通过SSX35 MP Driver Function 4读取SSX35的'disable'、'deactived'、 'owner'这3个状态,并保存到BIOS CMOS中,详细代码如下:;call TPM MP driver function 4 for TPM_GetCapabil
21、ity;Get the 'disable','deactived' flag (permanent)mov eax, 0504hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A2hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,000
22、00000hmov ax, 0A2hjne Sinosun_TPM_MP_Failadd edx, 10 ;get return byte 19xor ax, axmov al, byte ptr ds:edxWRITENV cmosTPMActiveStatusadd edx, 2 ;get return byte 17xor ax, axmov al, byte ptr ds:edxWRITENV cmosTPMCtrlStatus;Get the 'owner' flagmov eax, 0604hmov word ptr cs:Transmit_TO_32bitCall
23、, axcall TPM_PM32_Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A2hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx, 6mov eax,ds:edxcmp eax,00000000hmov ax, 0A2hjne Sinosun_TPM_MP_Failadd edx, 8xor ax, axmov al, byte ptr ds:edxWRITENV cmosTPMOwnerStatus3.4 SS
24、X35 BIOS Setup的信息显示及人机交互处理在BIOS Setup中,总共需要以下条目显示或设置SSX35,如表1所示。其中序号1条目负责显示SSX35硬件是否存在的状态,并且决定后续的序号条目是否显示:假设SSX35硬件不存在,那么所有相关SSX35的BIOS选项全部消失。关于SSX35的用户设置,有2个开关设置项,分别是序号2和序号5。并且,因为TPM是可信技术的根底,关于这两个选项的设置,必须加以保护。通常,序号2TPM禁用/启用由BIOS Setup中User Password保护,序号5TPM去除所有者通常由Supervisor Password保护,假设这个两个BIOS S
25、etup的密码没有设置,那么TPM的这两个设置项无法选择灰色显示,需要设置过BIOS Setup的User和Supervisor密码方可使用。并且,在BIOS法相CMOS掉电或其他情况导致需要重新载入BIOS Setup默认值时,关于TPM的状态和设置不会发生变化。3.5 检查SSX35状态是否正确为保证SSX35的状态和设置一致,需要参加一个双重检测的步骤,这个步骤的BIOS节点安排,必须放在尽量靠近BIOS Setup完毕之后的BIOS自检过程中。该步骤主要对TPM使能和TPM当前所有者状态对应的序号3和序号6这两个状态进展硬件和BIOS Setup显示状态的比照,假设发现硬件状态和BIO
26、S Setup的显示状态不一致,那么系统需要进展重启,以保证硬件和客户设置一致。3.6 锁定SSX35在进入操作系统之前,为防止其他非法的SSX35访问、调用硬件,甚至篡改SSX35的设置,需要进展一个锁定动作。SSX35的锁定动作,一般放在BIOS将控制权转交给操作系统之前的BIOS节点,一般是TP_INT19,代码如下:;TPM MP driver fun4 commands completed, lock it;1, TPM_PhyPre_NotPremov eax, 0c04hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_
27、Handlermov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A4hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000hmov ax, 0A4hjne Sinosun_TPM_MP_Fail;2, TPM_PhyPre_Lockmov eax, 0d04hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handle
28、rmov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A4hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000hmov ax, 0A4hjne Sinosun_TPM_MP_Fail;3, TPM_PhyPre_CmdDisablemov eax, 0e04hmov word ptr cs:Transmit_TO_32bitCall, axcall TPM_PM32_Handle
29、rmov al, byte ptr cs:TPMMP_Call_Returncmp al, 0mov ax, 0A4hjne Sinosun_TPM_MP_Failout 0ebh,almov edx,TPM_ORD_Startup.pbOutBufadd edx,6mov eax,ds:edxcmp eax,00000000hmov ax, 0A4hjne Sinosun_TPM_MP_Fail3.7 两种需要系统重启的情况因SSX35相关的需要强迫系统重新启动的情况有以下两种:1) 用户在BIOS Setup中设置或者更改了SSX35,在BIOS对SSX35硬件做了相应动作之后,需要重新启
30、动后才能生效;2) 在BIOS检测到SSX35硬件状态和CMOS的状态不一致时,表示BIOS对SSX35的初始化动作有问题,需要重新启动系统。4 SSX35 BIOS测试向导当系统BIOS更新为支持SSX35的BIOS之后,我们可以看到在BIOS Setup菜单的Security中多了几个关于SSX35的选项。如图3所示,下面我们就对这几个选项作一下说明。4.1 SSX35状态项4.1.1 TPM H/W Status显示TPM芯片是否存在的信息。当笔记本电脑中安装有TPM的芯片时,这一项显示信息为Exist。当笔记本电脑中没有安装TPM的芯片时,这一项显示信息为No Exist,而且其他关于
31、TPM的五个选项将被隐藏,不显示。4.1.2 TPM Current Status显示TPM当前的状态是Enable或者Disable.4.1.3 TPM Activation Status显示TPM Active的状态是Active或者Deactive。4.1.4 TPM Owner Current Status显示TPM Owner当前是否存在的状态,Owner或者NOT Owner.4.2 SSX35控制项4.2.1 TPM En/Disable: Enable/Disable这是供用户对TPM功能进展启用或禁用的选项。中选择Enable保存退出后,用户可以在操作系统中对TPM功能进展相
32、关操作。重新进入SETUP后,TPM Current Status为Enable,TPM Activation Status为Active。中选择Disable保存退出后, 用户无法在操作系统中对TPM进展任何操作。重新进入SETUP后,TPM Current Status为Disable,TPM Activation Status为Deactive。当用户load setup default value时,这一项的值不会被改变,保持用户上一次的选择。当cmos 放电后,这个选项会恢复成disable。4.2.2 TPM Clear Owner: No Change/Clear当TPM Current Status为Disable、没有设置supervisor password或者TPM Owner Curr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车市场调研服务委托协议
- 车辆销售与市场推广服务合同
- 研发中心场地租赁与知识产权保护及成果转化合同
- 车辆抵押借款合同保险条款规范
- 常州商务区写字楼租赁合同模板
- 企业办公场地代租与装修合同
- 运动场所场专员劳动合同模板
- 小学二年级学生心理发展计划
- 体育场馆建设施工方案及质量保证措施
- 小学语文期末复习资料整合计划
- 2023年四川省水电投资经营集团普格电力有限公司招聘笔试题库含答案解析
- (完整版)高级法学英语课文翻译
- 无人机项目融资商业计划书
- 食品营养学(暨南大学)智慧树知到答案章节测试2023年
- GA 1810-2022城镇燃气系统反恐怖防范要求
- GB/T 2518-2008连续热镀锌钢板及钢带
- 商户撤场退铺验收单
- 部编版小学道德与法治三年级下册期末质量检测试卷【含答案】5套
- 断亲协议书范本
- 五年级语文下册第八单元【教材解读】课件
- 外科围手术期患者心理问题原因分析及护理干预
评论
0/150
提交评论