TPM芯片SSX35的BIOS模块化开发

来源:网络(转载) 作者:林聪发 发表于:2011-08-17 14:31  点击:
【关健词】TPM; SSX35;模块化
在当今信息化时代,信息安全的重要性是不言而喻的。该文介绍的是一种常用标准化可信平台模块,全称Trusted Platform Module,简称TPM。TPM能够独立进行密钥生成、加解密的芯片,其重要作用是加强了对密钥的管理,芯片以硬件来生成、存储和管理密钥。TPM需要硬件和软件的

The BIOS Modular Development of TPM Chip SSX35
  LIN Cong-fa
  (China Greatwall Computer Shenzhen Co., Ltd, Shenzhen 518057, China)
  Abstract: In present 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 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 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 development.
  Key words: TPM; SSX35; modular
  1 TPM简介
  TPM是Trusted Platform Module的简写。1999年10月,多家IT巨头联合发起成立可信赖运算平台联盟(Trusted Computing Platform Alliance,TCPA),初期加入者有康柏 、HP 、IBM、Intel、微软等,该联盟致力于促成新一代安全且可信赖的硬件运算平台。2003年3月,TCPA增加了诺基亚 、索尼等成员,并改组为可信赖计算组织(Trusted Computing Group,TCG),希望从跨平台和操作环境的硬件和软件两方面,制定可信赖电脑的相关标准和规范。并在并提出了TPM规范,目前最新版本为1.2。
  可信计算的根本目标是向用户提供完整的可信安全解决方案,其研究内容包括:系统安全芯片(TPM),安全主板,安全BIOS,安全操作系统,安全数据库,安全应用,安全可信网络接入,其中系统安全芯片(TPM)作为提供可信计算的核心部件。
  TPM对于存储密钥的保护管理,是一个树结构,下层密钥由上层的密钥加密保护。这个保护存储密钥层次的根是SRK(storage Root key存储根密钥),这是一对非对称密钥对,其公钥用于保护加密下级的SK(storage key存储密钥),其私钥始终保护在TPM芯片内部。攻击者无法获得SRK的私钥也就无法破解由SRK所保护的SK,同样也无法破解由SK保护的下级密钥。详细请见图1所示。
  2 SSX35模块化要求
  要求按照兆日科技提供的技术文档和开发样品,进行SSX35芯片的导入工作,主要是保证SSX35在BIOS下按照要求完成各种初始化和资源分配动作,并保证其在操作系统下正常工作。由于SSX35的BIOS底层实现需要诸多的动作,有些是需要按照TPM标准进行规范性的初始化和资源分配,以及SSX35与用户的人机交互,为简化SSX35在新项目的导入工作,加快新项目的开发进度,可以将SSX35开发成一个标准的功能模块。
  将SSX35模块化的目的在于降低新项目的移植难度和复杂度,减少重复劳动,提高工作效率。
  3 SSX35芯片BIOS模块化开发的实现
  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:一种系统总线)与系统连接,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:[edx]
  cmp al,0ffh
  je No_sinosun_TPM_Exist ;no found, jump
mov ax, 0
  WRITENV cmosDetectTPMStatus ;写SSX35存在状态
  xor ax, ax
  clc
  jmp TPMMP_Action_Done
  No_sinosun_TPM_Exist:
  mov ax, 01h
  WRITENV cmosDetectTPMStatus ;写SSX35不存在状态
  mov ax, 0A0h
  stc
  jmp TPMMP_Action_Done
  2) SSX35硬件初始化。
  对SSX35开始进行初始化的BIOS节点,一定要是在对内存和LPC的初始化完成之后,在用户选择是否BIOS Setup的节点之间进行!
  在SSX35的硬件初始化中,先读取硬件状态保存位,如果硬件存在,则进行以下四个命令的初始化:
  (注意:向SSX35下命令,是通过向TPM MP 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 1
  mov ax, 0001h
  mov word ptr cs:[Transmit_TO_32bitCall], ax
  call TPM_PM32_Handler
  mov al, byte ptr cs:[TPMMP_Call_Return]
  cmp al, 0
  mov ax, 0A1h
  jne Sinosun_TPM_MP_Fail
  ② 向SSX35 MP Driver下startup ST_CLEAR命令,进行SSX35的状态清理,代码如下: (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)

顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.