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

SW-TPM完整性測量是保證USB Token未被篡改的關鍵,當發現完整性遭到破壞時,它可以恢復到初始狀態。不同的用戶會有不同的安全需求,應該用配置文件記錄下用戶的各種需求,使用戶可以通過授權修改配置文件來定義自己的保護策略。
1.4 使用USB Token進行可信身份認證的過程
考慮到USB Token中數據通信量很小,不需要考慮通信時間,可采用中斷傳輸方式。整個過程如下:
(1)Sever端等待數據傳輸請求中斷的到來,從而進入數據傳輸模塊,讀/寫數據緩沖區。
(2)向USB Token中讀/寫數據,由USB模塊收發數據。
(3)當USB Token不需要傳輸數據時就掛起。
(4)在得到Proxy端喚醒后啟動,繼續工作。
為了提高身份認證的安全性,Sever端在監聽到會話請求(即USB Token發起的connect( )連接請求)時會對用戶身份進行認證。其過程如下:
(1)首先會話請求方(USB Token)發送它支持的認證方法。
(2)然后由Proxy端檢查認證策略,選擇認證方法,并將所選擇的認證方法通知會話請求方。
(3)最后會話請求方和Proxy間按所協商的認證方法對發起會話請求的用戶身份進行認證。
(4)若身份認證通過,則將會話請求轉發至Sever端;
反之,則拒絕。
2 密鑰的安全管理
在TPM規范中規定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來證明自己的身份,凡是經過AIK簽名的實體,都表明已經經過了TPM的處理。AIK的生成雖然使用了EK,但是生成的AIK中卻不包含任何有關平臺或EK的隱私信息。這就使得AIK可以證明TPM的身份但不會泄露任何隱私信息,提高了系統的安全性。因此,AIK證書的產生過程是平臺認證的關鍵。
對于SW-TPM,規定由Sever端的管理員為USB Token頒發EK,而在USB Token端生成AIK。在TPM命令規范中提供了與AIK證書生成有關的兩個命令: TPM_MakeIdentity命令和TPM_activateIdentity命令。TPM_MakeIdentity命令產生身份認證密鑰AIK,用于USB身份認證。TPM_activateIdentity命令能夠對CA傳來的TPM_SYM_CA_ATTESTATION結構體中的證書進行認證,并且能夠獲得加密TPM_MENTITY_CREDENTIAL結構體的會話密鑰,只有平臺所有者才能夠執行此命令。
2.2 密鑰可信鏈
評論