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