摘 要
身份認證技術是依靠軟件進行身份認證,具有無法抵御旁路攻擊、容易被木馬/病毒攻擊、無權限的客戶端非法接入的問題。可綜合利用UEFI技術和可信計算技術,在用戶客戶端進入操作系統前,實現用戶客戶端可信身份認證和安全接入控制,提高網絡的安全性。
0
引言
身份認證技術作為信息安全防護的常用技術手段,已廣泛應用于各類信息系統,確保接入用戶的數字與物理身份相符合,防止非法接入。隨著新技術的發展,各種攻擊手段呈現多元化,對于身份認證技術也帶來新的挑戰。
1
傳統身份認證技術的缺陷
傳統身份認證技術大多基于操作系統在軟件層面實現,通過身份認證軟件和數字證書,實現用戶的身份認證。由于其依賴操作系統的特點,傳統身份認證技術存在以下局限和缺點:
(1)傳統的身份認證技術缺乏在用戶客戶端平臺硬件啟動階段對客戶端進行身份認證,存在非授權客戶端平臺接入網絡的現象,為用戶網絡帶來潛在威脅。
(2)傳統的身份認證技術依賴于操作系統,采用數字證書的軟件認證方式,容易受到病毒、木馬、身份仿冒等惡意攻擊,且存在被旁路繞過的風險。
針對上述問題,將客戶端平臺身份認證進一步前置,在客戶端硬件平臺上電啟動伊始,通過網絡對其進行可信身份認證,只有身份合法的用戶平臺可以接入網絡,實現客戶端的安全準入控制,從而提高網絡的安全性。
2
UEFI與可信技術的結合應用分析
UEFI技術是一種基于標準接口的計算機固件技術,具有跨平臺、功能擴展方便的特點。同時,UEFI BIOS內置了完善的網絡協議棧,支持UDP、TCP、FTP等網絡協議,可以在啟動階段提供完善的網絡應用。除此之外,UEFI BIOS還支持啟動階段從硬盤等存儲器件中獲取相關文件資源,這就為身份認證在底層實現和在啟動階段實現提供了基礎。同時,利用可信計算的可信密碼模塊(Trusted Cryptography Module,TCM),能夠為平臺提供加密和認證功能。
綜上所述,結合運用UEFI技術和可信技術,能夠在啟動階段,利用UEFI BIOS和操作系統之間的隔離性,在系統啟動操作系統前,與認證服務器相互配合,實現設備的遠程入網身份認證,同時利用TCM的加密功能,確保認證數據的傳輸安全。因此,研究基于UEFI的網絡可信身份認證,能有效確保客戶端平臺的入網可控,同時擺脫認證過程對操作系統的依賴,避免木馬、病毒等惡意軟件的攻擊。
3
系統組成
基于UEFI的遠程可信身份認證方案系統架構如圖1所示。
圖1 基于UEFI的遠程可信身份認證方案系統架構
系統由用戶客戶端平臺和服務器端平臺構成。客戶端平臺在啟動過程中,由UEFI固件收集平臺信息,通過TCM模塊,結合加密、認證功能,請求進行身份認證。服務器端平臺對認證數據進行合法性判別,并將身份認證結果反饋給客戶端,在啟動階段完成遠程身份認證、入網控制。
客戶端平臺UEFI可信增強設計包括四個部分。
(1)認證發起。
當客戶端平臺開機啟動時,UEFI主動向認證服務器發出請求,包含證書和認證兩部分,將用戶身份、設備身份等認證信息發送給認證服務器進行認證。
(2)TCM調用。
調用TCM密碼模塊,進行對稱密碼運算和非對稱密碼運算,實現簽名、驗簽、數據加密等密碼功能。
(3)信息幀處理。
實現數字信封的封裝和解封裝。數字信封使用的數字簽名驗簽算法由TCM模塊提供。
(4)證書管理。
對認證服務器頒發的身份安全證書進行加密存儲和本地管理,其中TCM模塊完成加密存儲。
服務器端平臺對客戶端平臺進行遠程注冊、認證,為各客戶端平臺生成對應的身份安全證書并頒發給對應客戶端。服務器端平臺將針對身份認證數據開展合法性比對,并對客戶端平臺進行遠程身份認證。服務器端平臺包括五個部分。
(1)網絡通信協議棧。
通過網絡接收認證請求,與客戶端平臺通信。
(2)信息幀處理。
實現數字信封的封裝和解封裝。數字信封使用的數字簽名驗簽算法可以由軟件算法實現也可以由專門的密碼卡實現。
(3)身份安全證書生成。
對客戶端平臺進行注冊審核,為通過審核的客戶端平臺生成安全的身份證書,并對身份證書中的隨機數進行更新,確保安全、可靠。同時實現身份證書的存儲與銷毀操作。
(4)身份認證模塊。
對客戶端進行身份認證,將接收數字信封形式的身份認證信息通過解封裝解密恢復出的原始數據,并與存儲的客戶端身份認證數據進行比對,完成用戶身份合法性校驗,將認證結果回復給用戶。
(5)用戶數據管理。
對客戶端的信息進行存儲和管理,支持增減、修改、查詢身份信息。
4
遠程身份認證流程
身份認證流程包括了身份信息注冊和身份認證兩個步驟。
在身份注冊步驟,客戶端平臺利用數字簽名保護身份信息,確保信息正確及完整。客戶端的平臺身份密鑰(Platform identity key,PIK)由TCM模塊生成,其本質是一個公鑰密鑰算法密鑰組合,客戶端的身份信息可通過PIK私鑰完成數字簽名,將簽名、身份信息發送給認證服務器。認證服務器存儲有客戶端平臺相應的PIK證書(及用戶PIK公鑰),服務器端利用PIK公鑰驗證客戶端發送的數字簽名信息,核準平臺身份并頒發身份安全證書(安全證書中包含服務器公鑰信息)。
身份信息注冊階段流程如下:
(1)客戶端平臺發送設備注冊信息,客戶端平臺對設備信息使用自身的PIK私鑰進行數字簽名,通過網絡將數字簽名、設備信息的組合數據發送給認證服務器。
(2)認證服務器接收注冊信息后,將客戶端設備信息、數字簽名解析出來后,使用數據庫中匹配的客戶端設備PIK公鑰,完成數字簽名驗簽,通過校驗設備信息完成驗證。若客戶端平臺合法,則通過驗證,給出合法客戶的身份安全證書,并將其數據信息存儲在數據庫中。
(3)認證服務器頒發證書,將身份安全證書通過客戶端平臺PIK公鑰進行加密,發送給客戶端。
(4)客戶端平臺通過PIK私鑰對收到的身份安全證書進行解密。通過身份安全證書中攜帶的認證服務器公鑰,驗證證書簽名合法性,并獲取證書中的隨機數。
身份信息注冊階段流程如圖2所示。
圖2 身份信息注冊階段流程
在身份認證階段,由于客戶端平臺和認證服務器相互獲取了對方的公鑰,在客戶端和服務器端利用數字信封的方式對傳輸的信息進行加密,提高認證的安全性。身份認證的流程如下:
(1)客戶端平臺上電開機,可信UEFI固件程序啟動,在進入操作系統之前,UEFI固件通過證書管理模塊對身份安全證書中的認證隨機數和身份安全證書公鑰信息進行查詢。
(2)客戶端平臺發送身份認證請求給認證服務器,通過身份安全證書公鑰以及隨機數加密得到密文信息,生成數字信封并發送至認證服務器。
(3)認證服務器端開展身份認證,并對身份安全證書進行更新。首先,認證服務器對客戶端平臺數字信封進行解封裝,使用相應客戶端的PIK公鑰來進行簽名驗證,然后使用身份安全證書私鑰進行解密運算,恢復數字信封中的認證隨機數。比對解密得到的認證隨機數和數據庫中存儲的隨機數,判斷身份是否合法。如身份合法,認證服務器對身份安全證書中的隨機數進行更新,并記錄至數據庫中,供下一次身份驗證使用;如果身份非法,則禁止客戶端平臺入網,從而保護網絡安全。
(4)認證服務器端對新證書中的認證隨機進行封裝,通過身份安全證書的私鑰進行數字簽名,發送給客戶端平臺。
(5)客戶端平臺收到數字信封數據,進行解密,得到數字信封中更新的認證隨機數,供下一次認證使用。
身份信息認證流程如圖3所示。
圖3 身份信息認證流程
5
安全性分析
基于UEFI的遠程可信身份認證能夠有效防護常見的惡意攻擊。
(1)針對重放攻擊,采用身份安全證書更新機制,每次認證均會進行更新,攻擊者無法利用以往的數據對認證服務器進行欺騙,可有效提高安全性。
(2)針對中間人攻擊,采用了TCM對認證數據進行加密,身份安全證書數據被中間人獲取,但證書數據無法被攻擊者破譯,認證服務器不會被欺騙,可有效避免中間人攻擊。
(3)針對旁路攻擊,TCM對密碼運算和身份認證數據進行加密存儲,可有效抵御旁路攻擊。
6
結語
基于UEFI固件的可信身份認證,能在固件層實現載入操作系統前對接入終端平臺進行身份認證,通過UEFI BIOS與操作系統具有隔離性,確保身份認證過程安全性,抵抗操作系統中的惡意代碼攻擊。同時,利用TCM等技術提高安全性,保證認證數據的安全性。