基于SW-TPM的便攜式身份認證
1.3 USB Token的分發(fā)及使用
為了保證系統(tǒng)的安全,用戶和系統(tǒng)被分為兩類:一類是具有管理權限的用戶,另一類是普通用戶。所有的USB Token都要由管理員通過Sever端的初始化操作進行授權。初始化后每個USB Token擁有一個特征碼(例如:CPUID),支持一定的認證方法(由Admin設置的文件和應用保護策略)。圖2描述了USB Token的分發(fā)與管理。
本文引用地址:http://www.ex-cimer.com/article/202693.htm
SW-TPM完整性測量是保證USB Token未被篡改的關鍵,當發(fā)現(xiàn)完整性遭到破壞時,它可以恢復到初始狀態(tài)。不同的用戶會有不同的安全需求,應該用配置文件記錄下用戶的各種需求,使用戶可以通過授權修改配置文件來定義自己的保護策略。
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)若身份認證通過,則將會話請求轉發(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命令能夠對CA傳來的TPM_SYM_CA_ATTESTATION結構體中的證書進行認證,并且能夠獲得加密TPM_MENTITY_CREDENTIAL結構體的會話密鑰,只有平臺所有者才能夠執(zhí)行此命令。
2.2 密鑰可信鏈
評論