基于SW-TPM的便攜式身份認證
1.3 USB Token的分發(fā)及使用
為了保證系統的安全,用戶(hù)和系統被分為兩類(lèi):一類(lèi)是具有管理權限的用戶(hù),另一類(lèi)是普通用戶(hù)。所有的USB Token都要由管理員通過(guò)Sever端的初始化操作進(jìn)行授權。初始化后每個(gè)USB Token擁有一個(gè)特征碼(例如:CPUID),支持一定的認證方法(由Admin設置的文件和應用保護策略)。圖2描述了USB Token的分發(fā)與管理。

SW-TPM完整性測量是保證USB Token未被篡改的關(guān)鍵,當發(fā)現完整性遭到破壞時(shí),它可以恢復到初始狀態(tài)。不同的用戶(hù)會(huì )有不同的安全需求,應該用配置文件記錄下用戶(hù)的各種需求,使用戶(hù)可以通過(guò)授權修改配置文件來(lái)定義自己的保護策略。
1.4 使用USB Token進(jìn)行可信身份認證的過(guò)程
考慮到USB Token中數據通信量很小,不需要考慮通信時(shí)間,可采用中斷傳輸方式。整個(gè)過(guò)程如下:
(1)Sever端等待數據傳輸請求中斷的到來(lái),從而進(jìn)入數據傳輸模塊,讀/寫(xiě)數據緩沖區。
(2)向USB Token中讀/寫(xiě)數據,由USB模塊收發(fā)數據。
(3)當USB Token不需要傳輸數據時(shí)就掛起。
(4)在得到Proxy端喚醒后啟動(dòng),繼續工作。
為了提高身份認證的安全性,Sever端在監聽(tīng)到會(huì )話(huà)請求(即USB Token發(fā)起的connect( )連接請求)時(shí)會(huì )對用戶(hù)身份進(jìn)行認證。其過(guò)程如下:
(1)首先會(huì )話(huà)請求方(USB Token)發(fā)送它支持的認證方法。
(2)然后由Proxy端檢查認證策略,選擇認證方法,并將所選擇的認證方法通知會(huì )話(huà)請求方。
(3)最后會(huì )話(huà)請求方和Proxy間按所協(xié)商的認證方法對發(fā)起會(huì )話(huà)請求的用戶(hù)身份進(jìn)行認證。
(4)若身份認證通過(guò),則將會(huì )話(huà)請求轉發(fā)至Sever端;
反之,則拒絕。
2 密鑰的安全管理
在TPM規范中規定TPM主要有兩種密鑰[3]:(1)背書(shū)密鑰EK(Endorsement Key)。它是一個(gè)模長(cháng)為2 048 bit的RSA密鑰對;(2)身份證明密鑰AIK(Attestation Identity Key)。用來(lái)向服務(wù)提供者提供平臺的身份證明。EK的主要功能是生成身份證明密鑰(AIK)和建立TPM Owner,由TPM的Owner來(lái)生成存儲根密鑰SRK(Stored Root Key),使用SRK來(lái)加密、存儲其他的密鑰。
2.1 證書(shū)的生成
AIK是一個(gè)簽名密鑰,TPM使用AIK來(lái)證明自己的身份,凡是經(jīng)過(guò)AIK簽名的實(shí)體,都表明已經(jīng)經(jīng)過(guò)了TPM的處理。AIK的生成雖然使用了EK,但是生成的AIK中卻不包含任何有關(guān)平臺或EK的隱私信息。這就使得AIK可以證明TPM的身份但不會(huì )泄露任何隱私信息,提高了系統的安全性。因此,AIK證書(shū)的產(chǎn)生過(guò)程是平臺認證的關(guān)鍵。
對于SW-TPM,規定由Sever端的管理員為USB Token頒發(fā)EK,而在USB Token端生成AIK。在TPM命令規范中提供了與AIK證書(shū)生成有關(guān)的兩個(gè)命令: TPM_MakeIdentity命令和TPM_activateIdentity命令。TPM_MakeIdentity命令產(chǎn)生身份認證密鑰AIK,用于USB身份認證。TPM_activateIdentity命令能夠對CA傳來(lái)的TPM_SYM_CA_ATTESTATION結構體中的證書(shū)進(jìn)行認證,并且能夠獲得加密TPM_MENTITY_CREDENTIAL結構體的會(huì )話(huà)密鑰,只有平臺所有者才能夠執行此命令。
2.2 密鑰可信鏈
評論