基于SW-TPM的便攜式身份認(rèn)證
移動(dòng)設(shè)備、普適計(jì)算的推廣使得用戶越來(lái)越依賴于使用移動(dòng)終端與其他的應(yīng)用環(huán)境中所提供的服務(wù)進(jìn)行通訊,大大增加了敏感信息以及個(gè)人數(shù)據(jù)泄露的可能,同時(shí)使用網(wǎng)絡(luò)服務(wù)的用戶也希望通過(guò)使用可信賴的設(shè)備所提供的安全服務(wù)以減少隱私泄露。
用戶身份認(rèn)證、授權(quán)以及審計(jì)是進(jìn)行信息系統(tǒng)安全設(shè)計(jì)的關(guān)鍵因素。其中,身份認(rèn)證作為授權(quán)和審計(jì)的基礎(chǔ),是保障信息系統(tǒng)能以安全有效的方式被訪問(wèn)的前提,在系統(tǒng)安全中占有重要地位。
但是很多情況下終端設(shè)備的所有權(quán)和使用權(quán)分屬不同實(shí)體,這給信息安全與管理帶來(lái)了很多隱患。例如,用戶可能正在使用網(wǎng)吧里的機(jī)器將文件下載到他所持有的移動(dòng)設(shè)備上,這時(shí)機(jī)器的安全維護(hù)是由網(wǎng)吧負(fù)責(zé),但用戶并不能確定機(jī)器此時(shí)是否存在安全隱患,事實(shí)上很可能不像用戶所想象的那樣安全。特別是惡意攻擊者在一定條件下可以完全獲得用戶所使用的平臺(tái)的控制權(quán),甚至還有可能接觸到用戶實(shí)際使用的設(shè)備。因此,在大多數(shù)場(chǎng)合中用戶并不能夠確定所使用的設(shè)備的安全性,也不能確定某個(gè)具體時(shí)間間隔內(nèi)應(yīng)用環(huán)境的安全性是否會(huì)有所改變。
針對(duì)以上問(wèn)題,本文結(jié)合可信計(jì)算技術(shù)提出一種便攜式的遠(yuǎn)程認(rèn)證方案,把相關(guān)認(rèn)證移植到終端設(shè)備中來(lái)解決遠(yuǎn)程認(rèn)證問(wèn)題,并且引入U(xiǎn)SB Token在通用平臺(tái)環(huán)境下實(shí)現(xiàn)可信認(rèn)證。這種方法不僅能夠重用現(xiàn)有的缺少認(rèn)證機(jī)制的設(shè)備和應(yīng)用程序,而且有效地避免了中間人的攻擊,保證了通訊安全。
1 USB Token體系架構(gòu)
傳統(tǒng)意義上的信任鏈的建立都是基于固化在主板之上的安全芯片TPM,這就使沒(méi)有該安全芯片的主機(jī)無(wú)法獲得面向終端安全的“可信計(jì)算”。現(xiàn)有替代方案[1]大都采用智能卡配以廠商提供的接口庫(kù)替換TPM體系中的安全芯片和TSS部分,但這樣不能很好地提供對(duì)可信計(jì)算的支持,不利于將來(lái)設(shè)備的升級(jí)改造。在實(shí)踐中,智能卡及其讀寫設(shè)備、智能卡的接口庫(kù)都由廠商提供,安全性、保密性存在很大隱患,總體上很難達(dá)到可信平臺(tái)的標(biāo)準(zhǔn)。
Najwa Aaraj[2]等人通過(guò)測(cè)試基于軟件實(shí)現(xiàn)的仿真TPM運(yùn)行時(shí)執(zhí)行效率與開銷,發(fā)現(xiàn)大多數(shù)TPM指令引起的開銷主要集中在RSA算法上,如果用TCG標(biāo)準(zhǔn)中規(guī)定的ECC算法代替RSA算法則可顯著降低開銷。因此,在資源受限的系統(tǒng)中可以通過(guò)使用SW-TPM來(lái)加強(qiáng)可信認(rèn)證,所增加的系統(tǒng)開銷也是可以接受的。
1.1 方案原理
基于TPM的可信平臺(tái)主要考慮的是用戶、平臺(tái)、應(yīng)用程序以及平臺(tái)之間的可信度,在可信架構(gòu)中提到的可信用戶也并不完全從用戶角度考慮,而是平臺(tái)安全中重要安全模型的一部分。便攜式認(rèn)證方案與可信計(jì)算中的TPM方案最大的區(qū)別在于密鑰的綁定:TPM綁定在主機(jī)上;便攜式則綁定在USB Token 上。因?yàn)門PM芯片作為可信根比較適合與機(jī)器相關(guān)的密鑰保護(hù),如存儲(chǔ)服務(wù)器端HTTPs或SSH協(xié)議中的密鑰等,在這種情況下密鑰與機(jī)器綁定,但是必須對(duì)主機(jī)平臺(tái)進(jìn)行改造。而便攜式認(rèn)證較適合私人密鑰保護(hù),如客戶端HTTPs證書或客戶端SSH密鑰,這樣密鑰可以在不同機(jī)器間移動(dòng)而且無(wú)需改動(dòng)系統(tǒng)平臺(tái)。便攜式認(rèn)證的關(guān)鍵就在于Token中隱藏的主密鑰,不允許持有者直接讀取該密鑰,但允許通過(guò)協(xié)議對(duì)Token進(jìn)行挑戰(zhàn)應(yīng)答。
1.2 基于SW-TPM的可信身份認(rèn)證體系
SW-TPM實(shí)際上是一個(gè)含有密碼運(yùn)算功能和存儲(chǔ)功能的軟件仿真,由于其中包含的各個(gè)部分在硬件實(shí)現(xiàn)上有其本身的復(fù)雜性,SW-TPM可以將其中的各個(gè)部分模塊化,再將各個(gè)模塊整合成整體,實(shí)現(xiàn)較為簡(jiǎn)單,如圖1所示。本文通過(guò)把SW-TPM移植到USB Token中在沒(méi)有TPM芯片的通用平臺(tái)下實(shí)現(xiàn)了終端用戶的遠(yuǎn)程認(rèn)證,分離了平臺(tái)與用戶間的身份綁定。該USB Token以SW-TPM為軟件可信根,通過(guò)挑戰(zhàn)應(yīng)答協(xié)議提供安全性更強(qiáng)的遠(yuǎn)程驗(yàn)證。
在新的平臺(tái)中,可信身份驗(yàn)證由主機(jī)識(shí)別Token開始:主機(jī)可以檢測(cè)到當(dāng)前用戶的USB Token是否存在,如果存在就會(huì)測(cè)量其中SW-TPM的Hash值并驗(yàn)證它是否可信,因?yàn)镾W-TPM是已知的并且可以確定它的Hash值。確認(rèn)之后再由SW-TPM進(jìn)行完整性測(cè)量以保證所發(fā)放的EK是否可信,只有通過(guò)以上雙向驗(yàn)證后才能真正建立起Token與主機(jī)間的USB通道,隨后才能進(jìn)行相關(guān)事務(wù)處理。[!--empirenews.page--]
1.3 USB Token的分發(fā)及使用
為了保證系統(tǒng)的安全,用戶和系統(tǒng)被分為兩類:一類是具有管理權(quán)限的用戶,另一類是普通用戶。所有的USB Token都要由管理員通過(guò)Sever端的初始化操作進(jìn)行授權(quán)。初始化后每個(gè)USB Token擁有一個(gè)特征碼(例如:CPUID),支持一定的認(rèn)證方法(由Admin設(shè)置的文件和應(yīng)用保護(hù)策略)。圖2描述了USB Token的分發(fā)與管理。
SW-TPM完整性測(cè)量是保證USB Token未被篡改的關(guān)鍵,當(dāng)發(fā)現(xiàn)完整性遭到破壞時(shí),它可以恢復(fù)到初始狀態(tài)。不同的用戶會(huì)有不同的安全需求,應(yīng)該用配置文件記錄下用戶的各種需求,使用戶可以通過(guò)授權(quán)修改配置文件來(lái)定義自己的保護(hù)策略。
1.4 使用USB Token進(jìn)行可信身份認(rèn)證的過(guò)程
考慮到USB Token中數(shù)據(jù)通信量很小,不需要考慮通信時(shí)間,可采用中斷傳輸方式。整個(gè)過(guò)程如下:
(1)Sever端等待數(shù)據(jù)傳輸請(qǐng)求中斷的到來(lái),從而進(jìn)入數(shù)據(jù)傳輸模塊,讀/寫數(shù)據(jù)緩沖區(qū)。
(2)向USB Token中讀/寫數(shù)據(jù),由USB模塊收發(fā)數(shù)據(jù)。
(3)當(dāng)USB Token不需要傳輸數(shù)據(jù)時(shí)就掛起。
(4)在得到Proxy端喚醒后啟動(dòng),繼續(xù)工作。
為了提高身份認(rèn)證的安全性,Sever端在監(jiān)聽(tīng)到會(huì)話請(qǐng)求(即USB Token發(fā)起的connect( )連接請(qǐng)求)時(shí)會(huì)對(duì)用戶身份進(jìn)行認(rèn)證。其過(guò)程如下:
(1)首先會(huì)話請(qǐng)求方(USB Token)發(fā)送它支持的認(rèn)證方法。
(2)然后由Proxy端檢查認(rèn)證策略,選擇認(rèn)證方法,并將所選擇的認(rèn)證方法通知會(huì)話請(qǐng)求方。
(3)最后會(huì)話請(qǐng)求方和Proxy間按所協(xié)商的認(rèn)證方法對(duì)發(fā)起會(huì)話請(qǐng)求的用戶身份進(jìn)行認(rèn)證。
(4)若身份認(rèn)證通過(guò),則將會(huì)話請(qǐng)求轉(zhuǎn)發(fā)至Sever端;
反之,則拒絕。
2 密鑰的安全管理
在TPM規(guī)范中規(guī)定TPM主要有兩種密鑰[3]:(1)背書密鑰EK(Endorsement Key)。它是一個(gè)模長(zhǎng)為2 048 bit的RSA密鑰對(duì);(2)身份證明密鑰AIK(Attestation Identity Key)。用來(lái)向服務(wù)提供者提供平臺(tái)的身份證明。EK的主要功能是生成身份證明密鑰(AIK)和建立TPM Owner,由TPM的Owner來(lái)生成存儲(chǔ)根密鑰SRK(Stored Root Key),使用SRK來(lái)加密、存儲(chǔ)其他的密鑰。
2.1 證書的生成
AIK是一個(gè)簽名密鑰,TPM使用AIK來(lái)證明自己的身份,凡是經(jīng)過(guò)AIK簽名的實(shí)體,都表明已經(jīng)經(jīng)過(guò)了TPM的處理。AIK的生成雖然使用了EK,但是生成的AIK中卻不包含任何有關(guān)平臺(tái)或EK的隱私信息。這就使得AIK可以證明TPM的身份但不會(huì)泄露任何隱私信息,提高了系統(tǒng)的安全性。因此,AIK證書的產(chǎn)生過(guò)程是平臺(tái)認(rèn)證的關(guān)鍵。
對(duì)于SW-TPM,規(guī)定由Sever端的管理員為USB Token頒發(fā)EK,而在USB Token端生成AIK。在TPM命令規(guī)范中提供了與AIK證書生成有關(guān)的兩個(gè)命令: TPM_MakeIdentity命令和TPM_activateIdentity命令。TPM_MakeIdentity命令產(chǎn)生身份認(rèn)證密鑰AIK,用于USB身份認(rèn)證。TPM_activateIdentity命令能夠?qū)A傳來(lái)的TPM_SYM_CA_ATTESTATION結(jié)構(gòu)體中的證書進(jìn)行認(rèn)證,并且能夠獲得加密TPM_MENTITY_CREDENTIAL結(jié)構(gòu)體的會(huì)話密鑰,只有平臺(tái)所有者才能夠執(zhí)行此命令。
2.2 密鑰可信鏈[!--empirenews.page--]
利用USB Token內(nèi)置的SW-TPM作為可信根的可信鏈的建立:平臺(tái)信任鏈的建立是以可信度量根為起點(diǎn),對(duì)于任何的USB外設(shè),當(dāng)被連接到一個(gè)主機(jī)系統(tǒng)中時(shí),都會(huì)在主機(jī)和外設(shè)的協(xié)議層之間首先建立一個(gè)控制信道,用于外設(shè)的配置、對(duì)外設(shè)所處狀態(tài)的度量及控制命令的傳送等。在外設(shè)初次連接時(shí)對(duì)器件進(jìn)行配置,并完成對(duì)外設(shè)狀態(tài)的實(shí)時(shí)度量以及控制命令的傳送;在器件配置完成后, USB Token中的通信映像軟件也在此模式下完成身份的識(shí)別及控制,再對(duì)USB Token的其他部件進(jìn)行完整性度量,并將度量值存儲(chǔ)于Sever端中,按照選擇的判斷機(jī)制判斷USB Token的完整性。若USB Token完整性未被破壞,則運(yùn)行USB Token,這時(shí)會(huì)啟動(dòng)SW-TPM并由它度量USB Token文件系統(tǒng)與修復(fù)部件的完整性,若該部件完整性未被破壞,則由該部件度量USB Token文件系統(tǒng)的完整性,若文件系統(tǒng)未被篡改,則運(yùn)行USB Token文件系統(tǒng)。USB Token文件系統(tǒng)基于同樣機(jī)制檢測(cè)身份認(rèn)證服務(wù)完整性,通過(guò)信任關(guān)系傳遞,可以確保所有身份認(rèn)證系統(tǒng)是可信的。若上述過(guò)程中,發(fā)現(xiàn)某一部件的完整性受到破壞,則報(bào)告問(wèn)題并按照指定策略執(zhí)行相關(guān)操作。
2.3 身份認(rèn)證
一般用戶希望在使用個(gè)人隱私來(lái)證明身份時(shí),要盡可能少地暴露自己的身份信息,這與身份認(rèn)證的要求相互矛盾。在TCG組織的體系里,這個(gè)隱私就是EK,但不能使用EK來(lái)進(jìn)行身份認(rèn)證。所以,在TCG組織體系中,身份認(rèn)證一般是使用AIK作為EK的別名。這種方法類似傳統(tǒng)的解決方案:首先需要生成一個(gè)AIK即所有者使用RSA密鑰生成模塊生成一對(duì)AIK密鑰,然后將公鑰和簽注證書、平臺(tái)證書和驗(yàn)證證書打包在一起,發(fā)送一個(gè)AIK的請(qǐng)求給認(rèn)證代理Proxy;Sever端通過(guò)驗(yàn)證證書的有效性來(lái)驗(yàn)證AIK請(qǐng)求的有效性,并使用自己的簽名密鑰對(duì)AIK證書簽名;將簽名后的AIK證書返回給SW-TPM,然后,就可以使用AIK和AIK證書來(lái)證明自己的身份完成通信時(shí)的身份認(rèn)證,而且因?yàn)榧尤肓藢?duì)環(huán)境配置的評(píng)估,能夠確認(rèn)通信雙方的狀態(tài),增強(qiáng)對(duì)各種惡意軟件的抵御能力。身份認(rèn)證如圖3所示。
3 設(shè)計(jì)分析
在實(shí)際應(yīng)用場(chǎng)景中一般用戶會(huì)有許多數(shù)據(jù)文件,如系統(tǒng)文件、重要的用戶數(shù)據(jù)等,在本平臺(tái)中,用戶可以把重要的數(shù)據(jù)加密后存儲(chǔ)在USB Token中,利用SW-TPM管理密鑰與證書。由于TCG組織已經(jīng)出臺(tái)的TPM規(guī)范不能完全滿足我國(guó)所有的安全需求,考慮到我國(guó)的信息安全和完全自主的知識(shí)產(chǎn)權(quán),我國(guó)也在致力于可信計(jì)算的規(guī)范的制定而且已經(jīng)公布了可信計(jì)算密碼支撐平臺(tái)功能與接口規(guī)范[3]。所以基于SW-TPM的應(yīng)用有利于基于可信計(jì)算平臺(tái)應(yīng)用的開發(fā)??墒刮覈?guó)在制定的標(biāo)準(zhǔn)上盡快開發(fā)出不僅符合我國(guó)的安全需求、同時(shí)也為國(guó)際規(guī)范接軌的可信系統(tǒng)創(chuàng)造了有利條件。
如前所述,由于AIK證書與具體的可信平臺(tái)綁定,因此,用戶身份也與可信平臺(tái)綁定在一起,這會(huì)存在一定的安全問(wèn)題并給用戶帶來(lái)不便。首先,從用戶證書的移動(dòng)性、便利性上考慮,平臺(tái)證書應(yīng)該與具體的平臺(tái)相關(guān),存放在平臺(tái)上,用戶證書的使用應(yīng)該不受平臺(tái)邊界的限制,用戶可以在多個(gè)計(jì)算環(huán)境下進(jìn)行同一工作,例如用戶可以使用同一證書,從公司、家里或Internet網(wǎng)吧的不同計(jì)算機(jī)上發(fā)送商業(yè)電子郵件。很明顯,將用戶的證書存放在固定的設(shè)備,如平臺(tái)TPM上,不符合人們的日常操作。當(dāng)平臺(tái)正在維護(hù)或修復(fù)中時(shí),用戶的證書被鎖定在TPM中,不能在另外的可用平臺(tái)上使用,會(huì)給用戶證書的使用帶來(lái)不便。其次,從安全性上考慮,若把用戶證書放在TPM上,當(dāng)平臺(tái)處于維護(hù)時(shí),用戶證書存在一定的泄漏可能。雖然當(dāng)用戶證書受到安全威脅時(shí),可以采取證書撤銷的方法,但較為敏感的用戶證書一旦受到威脅,則需要將存放證書的設(shè)備摧毀。若將證書存放在移動(dòng)設(shè)備上,則不會(huì)出現(xiàn)這種問(wèn)題。最后,從TPM的管理上考慮,根據(jù)公司的策略,用戶證書與平臺(tái)證書可由不同的職權(quán)部門管理。由于TPM的存儲(chǔ)空間有限,若將用戶證書和平臺(tái)證書都由TPM存儲(chǔ),會(huì)有一定的限制。[!--empirenews.page--]
而采用本文方案后,能很好地解決身份可信認(rèn)證的安全問(wèn)題,而且本案中的安全控制模塊功能易于擴(kuò)展,可增添度量及數(shù)字證書管理,真正實(shí)現(xiàn)整個(gè)身份認(rèn)證的可信理念。
4 應(yīng)用前景
遠(yuǎn)程醫(yī)療是目前國(guó)際上一門發(fā)展十分迅速的跨學(xué)科的高新技術(shù),可以大幅度降低醫(yī)療費(fèi)用。我國(guó)幅員遼闊,醫(yī)療資源分布很不均勻,遠(yuǎn)程醫(yī)療作為計(jì)算機(jī)應(yīng)用技術(shù)、通信技術(shù)與醫(yī)學(xué)相結(jié)合的新興領(lǐng)域,有助于醫(yī)療資源分布的均勻化,使醫(yī)療資源落后地區(qū)的居民獲得及時(shí)而高質(zhì)量的醫(yī)療服務(wù)逐漸成為現(xiàn)實(shí)。其主要的內(nèi)容有遠(yuǎn)程診斷學(xué)、遠(yuǎn)程重癥監(jiān)護(hù)、遠(yuǎn)程家庭醫(yī)療和醫(yī)療信息服務(wù)等。使偏遠(yuǎn)地區(qū)也能享受到高水平的醫(yī)療服務(wù),實(shí)現(xiàn)醫(yī)學(xué)信息共享,在不遠(yuǎn)的將來(lái),遠(yuǎn)程手術(shù)也將會(huì)成為現(xiàn)實(shí)。我國(guó)在遠(yuǎn)程醫(yī)療方面的起步較晚,目前的許多工作只是在建立計(jì)算機(jī)網(wǎng)絡(luò)的基礎(chǔ)上開展一些簡(jiǎn)單信息交流項(xiàng)目。作為一個(gè)分布式醫(yī)療系統(tǒng),高分辨率圖像、聲音、實(shí)時(shí)視頻和病例等電子數(shù)據(jù)在開放式網(wǎng)絡(luò)上傳輸,必然存在安全隱患,而患者病情隱私的保護(hù)也是一個(gè)很重要的問(wèn)題。醫(yī)療信息安全包括:醫(yī)療信息保密性、醫(yī)療信息完整性、醫(yī)生和患者身份認(rèn)證與授權(quán)以及信息交流的不可否認(rèn)性等。USB Token作為一種便攜式身份認(rèn)證設(shè)備,易于分發(fā),造價(jià)低廉,能夠滿足醫(yī)療系統(tǒng)中隱私保密的要求。
目前通用平臺(tái)對(duì)可信計(jì)算提供的支持是有限的,一般只有TPM設(shè)備驅(qū)動(dòng)、TCG軟件協(xié)議??赡芘溆蠺PM-aware引導(dǎo)程序,但這不足以獲得對(duì)遠(yuǎn)程用戶的身份認(rèn)證。本課題充分利用TPM軟件仿真,借助USB外設(shè)提供了一種便攜式身份認(rèn)證方案,解決了“用戶身份真實(shí)性”的問(wèn)題,為建立可信計(jì)算應(yīng)用環(huán)境提供參考。下一步將著重研究在Linux平臺(tái)下TPM軟件協(xié)議棧的基礎(chǔ)上進(jìn)行相關(guān)應(yīng)用程序的設(shè)計(jì)與開發(fā),以及如何應(yīng)用于醫(yī)療系統(tǒng)、生命日志(Life Log)等相關(guān)隱私保護(hù)中。