版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、TPM芯片SSX35的BIOS模塊化開發(fā)摘要:在當(dāng)今信息化時代,信息平安的重要性是不言而喻的。該文介紹的是一種常用標(biāo)準(zhǔn)化可信平臺模塊,全稱Trusted Platform Module,簡稱TPM。TPM可以獨(dú)立進(jìn)展密鑰生成、加解密的芯片,其重要作用是加強(qiáng)了對密鑰的管理,芯片以硬件來生成、存儲和管理密鑰。TPM需要硬件和軟件的支持,不僅需要硬件設(shè)計將TPM芯片通過LPCLow Pin Count系統(tǒng)總線與硬件主板相連,并且需要BIOSBasic Input/Output System的底層軟件支持,依靠BIOS實現(xiàn)TPM硬件與用戶的人機(jī)交互操作,并且依靠BIOS進(jìn)展TPM的初始化動作。該文通過
2、理論驗證,實現(xiàn)對兆日科技的TPM產(chǎn)品SSX35的BIOS底層支持,并且將SSX35芯片所需的BIOS底層支持開發(fā)成一個成熟的功能模塊,使之能方便快速地移植到其他計算機(jī)電腦的系統(tǒng)開發(fā)中去。關(guān)鍵詞:TPM; SSX35;模塊化中圖分類號:TP338文獻(xiàn)標(biāo)識碼: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巨頭結(jié)合發(fā)起成立可信賴運(yùn)算平臺聯(lián)盟Trusted Computing Platform Alliance,TCPA,初期參加者有康柏 、HP 、IBM、Intel、微軟等,該聯(lián)盟致力于促成新一代平安且可信賴的硬件運(yùn)算平臺。2003年3月,TCPA增加了諾基亞 、索尼等成員,并改組為可信賴計算組織Trusted Computing Group,TCG,希望從跨平臺和操作環(huán)境的硬件和軟件兩方面,制定可信賴電腦的相關(guān)標(biāo)準(zhǔn)和
7、標(biāo)準(zhǔn)。并在并提出了TPM標(biāo)準(zhǔn),目前最新版本為1.2??尚庞嬎愕母灸康氖窍蛴脩籼峁┩旰玫目尚牌桨步鉀Q方案,其研究內(nèi)容包括:系統(tǒng)平安芯片(TPM),平安主板,平安BIOS,平安操作系統(tǒng),平安數(shù)據(jù)庫,平安應(yīng)用,平安可信網(wǎng)絡(luò)接入,其中系統(tǒng)平安芯片(TPM)作為提供可信計算的核心部件。TPM對于存儲密鑰的保護(hù)管理,是一個樹構(gòu)造,下層密鑰由上層的密鑰加密保護(hù)。這個保護(hù)存儲密鑰層次的根是SRK(storage Root key存儲根密鑰),這是一對非對稱密鑰對,其公鑰用于保護(hù)加密下級的SK(storage key存儲密鑰),其私鑰始終保護(hù)在TPM芯片內(nèi)部。攻擊者無法獲得SRK的私鑰也就無法破解由SRK所保
8、護(hù)的SK,同樣也無法破解由SK保護(hù)的下級密鑰。詳細(xì)請見圖1所示。2 SSX35模塊化要求要求按照兆日科技提供的技術(shù)文檔和開發(fā)樣品,進(jìn)展SSX35芯片的導(dǎo)入工作,主要是保證SSX35在BIOS下按照要求完成各種初始化和資源分配動作,并保證其在操作系統(tǒng)下正常工作。由于SSX35的BIOS底層實現(xiàn)需要諸多的動作,有些是需要按照TPM標(biāo)準(zhǔn)進(jìn)展標(biāo)準(zhǔn)性的初始化和資源分配,以及SSX35與用戶的人機(jī)交互,為簡化SSX35在新工程的導(dǎo)入工作,加快新工程的開發(fā)進(jìn)度,可以將SSX35開發(fā)成一個標(biāo)準(zhǔn)的功能模塊。將SSX35模塊化的目的在于降低新工程的移植難度和復(fù)雜度,減少重復(fù)勞動,進(jìn)步工作效率。3 SSX35芯片B
9、IOS模塊化開發(fā)的實現(xiàn)3.1 SSX35 BIOS初始化流程通過翻閱SSX35 Datasheet,總結(jié)出SSX35的BIOS初始化流程應(yīng)該如圖2所示進(jìn)展。3.2 SSX35 BIOS Init流程分解在SSX35的初始化過程中,主要有四大判斷步驟,分別是對應(yīng)于圖1的:硬件偵測、用戶是否進(jìn)入BIOS Setup、BIOS Setup是否需要Reset、SSX35狀態(tài)是否正確。詳細(xì)的初始化工作包括:硬件初始化、獲取狀態(tài)、BIOS Setup的界面顯示及人機(jī)交互設(shè)置、將控制權(quán)轉(zhuǎn)交給操作系統(tǒng)前的鎖定工作。詳細(xì)步驟如下:1) 硬件偵測。因為SSX35是通過LPC總線Low Pin Count Bus:
10、一種系統(tǒng)總線與系統(tǒng)連接,SSX35的硬件偵測通過讀取SSX35的LPC總線地址的值來進(jìn)展判斷,SSX35的LPC總線地址為:0FED40000h,假設(shè)讀取值非零,那么表示SSX35存在,否那么不存在。詳細(xì)的匯編代碼如下: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存在狀態(tài)xor ax, axclcjmp TPMMP_Action_DoneNo_sinosun_TPM_Exist:mov ax, 01hWRITENV cmosDetectTPMStatus ;寫SSX35不存在狀態(tài)mov ax, 0A0hstcjmp TPMMP_Action_Done2) SSX35硬件初始化。對SSX35開始進(jìn)展初始化的BIOS節(jié)點,一定要是在對內(nèi)存和LPC的初始化完成之后,在用戶選擇是否BIOS Setup的節(jié)點之間進(jìn)展!在SSX35的硬件初始化中,先讀取硬件狀態(tài)保存位,假設(shè)硬件存在,那么進(jìn)展以下四個命令的初始化:注意:向SSX35下命令,是通過向TPM MP
12、Driver來執(zhí)行的,所謂的TPM MP Driver,是一個內(nèi)建到BIOS里的二進(jìn)制文件,由BIOS初始化時,在物理內(nèi)存初始化完成之后,將TPM MP Driver復(fù)制到內(nèi)存中,并記下其在內(nèi)存中的位置。在調(diào)用SSX35 MP Driver時,需要先將出入?yún)?shù)設(shè)置好,將CPU切入到保護(hù)形式,然后執(zhí)行一個跳轉(zhuǎn),以這樣的方式向SSX35下命令,同樣會有執(zhí)行結(jié)果返回到EAX存放器。 調(diào)用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命令,進(jìn)展SSX35的狀態(tài)清理,代碼如下:;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命令,進(jìn)展SSX35的繼續(xù)測試,代碼如下: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、進(jìn)展SSX35的物理狀態(tài)使能,代碼如下: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、命令,進(jìn)展SSX35的物理狀態(tài)設(shè)置,代碼如下:;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階段的主要工作是,報告設(shè)備接收數(shù)據(jù)或者發(fā)送數(shù)據(jù)的狀態(tài)。3.3 讀取SSX35狀態(tài)通過SSX35 MP Driver Function 4讀取SSX35的'disable'、'deactived'、 'owner'這3個狀態(tài),并保存到BIOS CMOS中,詳細(xì)代碼如下:;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的信息顯示及人機(jī)交互處理在BIOS Setup中,總共需要以下條目顯示或設(shè)置SSX35,如表1所示。其中序號1條目負(fù)責(zé)顯示SSX35硬件是否存在的狀態(tài),并且決定后續(xù)的序號條目是否顯示:假設(shè)SSX35硬件不存在,那么所有相關(guān)SSX35的BIOS選項全部消失。關(guān)于SSX35的用戶設(shè)置,有2個開關(guān)設(shè)置項,分別是序號2和序號5。并且,因為TPM是可信技術(shù)的根底,關(guān)于這兩個選項的設(shè)置,必須加以保護(hù)。通常,序號2TPM禁用/啟用由BIOS Setup中User Password保護(hù),序號5TPM去除所有者通常由Supervisor Password保護(hù),假設(shè)這個兩個BIOS S
25、etup的密碼沒有設(shè)置,那么TPM的這兩個設(shè)置項無法選擇灰色顯示,需要設(shè)置過BIOS Setup的User和Supervisor密碼方可使用。并且,在BIOS法相CMOS掉電或其他情況導(dǎo)致需要重新載入BIOS Setup默認(rèn)值時,關(guān)于TPM的狀態(tài)和設(shè)置不會發(fā)生變化。3.5 檢查SSX35狀態(tài)是否正確為保證SSX35的狀態(tài)和設(shè)置一致,需要參加一個雙重檢測的步驟,這個步驟的BIOS節(jié)點安排,必須放在盡量靠近BIOS Setup完畢之后的BIOS自檢過程中。該步驟主要對TPM使能和TPM當(dāng)前所有者狀態(tài)對應(yīng)的序號3和序號6這兩個狀態(tài)進(jìn)展硬件和BIOS Setup顯示狀態(tài)的比照,假設(shè)發(fā)現(xiàn)硬件狀態(tài)和BIO
26、S Setup的顯示狀態(tài)不一致,那么系統(tǒng)需要進(jìn)展重啟,以保證硬件和客戶設(shè)置一致。3.6 鎖定SSX35在進(jìn)入操作系統(tǒng)之前,為防止其他非法的SSX35訪問、調(diào)用硬件,甚至篡改SSX35的設(shè)置,需要進(jìn)展一個鎖定動作。SSX35的鎖定動作,一般放在BIOS將控制權(quán)轉(zhuǎn)交給操作系統(tǒng)之前的BIOS節(jié)點,一般是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 兩種需要系統(tǒng)重啟的情況因SSX35相關(guān)的需要強(qiáng)迫系統(tǒng)重新啟動的情況有以下兩種:1) 用戶在BIOS Setup中設(shè)置或者更改了SSX35,在BIOS對SSX35硬件做了相應(yīng)動作之后,需要重新啟
30、動后才能生效;2) 在BIOS檢測到SSX35硬件狀態(tài)和CMOS的狀態(tài)不一致時,表示BIOS對SSX35的初始化動作有問題,需要重新啟動系統(tǒng)。4 SSX35 BIOS測試向?qū)М?dāng)系統(tǒng)BIOS更新為支持SSX35的BIOS之后,我們可以看到在BIOS Setup菜單的Security中多了幾個關(guān)于SSX35的選項。如圖3所示,下面我們就對這幾個選項作一下說明。4.1 SSX35狀態(tài)項4.1.1 TPM H/W Status顯示TPM芯片是否存在的信息。當(dāng)筆記本電腦中安裝有TPM的芯片時,這一項顯示信息為Exist。當(dāng)筆記本電腦中沒有安裝TPM的芯片時,這一項顯示信息為No Exist,而且其他關(guān)于
31、TPM的五個選項將被隱藏,不顯示。4.1.2 TPM Current Status顯示TPM當(dāng)前的狀態(tài)是Enable或者Disable.4.1.3 TPM Activation Status顯示TPM Active的狀態(tài)是Active或者Deactive。4.1.4 TPM Owner Current Status顯示TPM Owner當(dāng)前是否存在的狀態(tài),Owner或者NOT Owner.4.2 SSX35控制項4.2.1 TPM En/Disable: Enable/Disable這是供用戶對TPM功能進(jìn)展啟用或禁用的選項。中選擇Enable保存退出后,用戶可以在操作系統(tǒng)中對TPM功能進(jìn)展相
32、關(guān)操作。重新進(jìn)入SETUP后,TPM Current Status為Enable,TPM Activation Status為Active。中選擇Disable保存退出后, 用戶無法在操作系統(tǒng)中對TPM進(jìn)展任何操作。重新進(jìn)入SETUP后,TPM Current Status為Disable,TPM Activation Status為Deactive。當(dāng)用戶load setup default value時,這一項的值不會被改變,保持用戶上一次的選擇。當(dāng)cmos 放電后,這個選項會恢復(fù)成disable。4.2.2 TPM Clear Owner: No Change/Clear當(dāng)TPM Current Status為Disable、沒有設(shè)置supervisor password或者TPM Owner Curr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語言演變與語義場動態(tài)變化研究-洞察分析
- 遺傳變異與結(jié)腸癌關(guān)聯(lián)-洞察分析
- 《電泳涂裝基礎(chǔ)知識》課件
- 2024年柳州市民族中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 養(yǎng)殖購買飼料合同(2篇)
- 2024年浙教新版選修3化學(xué)下冊階段測試試卷含答案
- 2024年朝陽市第二醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年華東師大版九年級地理下冊階段測試試卷
- 2024年滬教新版高二數(shù)學(xué)上冊階段測試試卷含答案
- 2025年人民版選修4地理下冊階段測試試卷
- DS12C887電子時鐘(附程序)
- 新產(chǎn)品試制流程管理辦法
- 王牌電話交換機(jī)說明書
- 列管式換熱器-換熱面積計算
- 10個地基基礎(chǔ)工程質(zhì)量通病及防治措施
- 25m預(yù)應(yīng)力混凝土簡支T梁橋設(shè)計(共30頁)
- 籃球校本課程教案
- 高一學(xué)生文理分班意向表
- 高等傳熱學(xué)部分答案
- 地球物理學(xué)進(jìn)展投稿須知
- 機(jī)床精度檢驗標(biāo)準(zhǔn) VDI3441 a ISO230-2
評論
0/150
提交評論