◆宋芹芹 袁 泉
?
PKI/CA系統(tǒng)異地統(tǒng)一身份認(rèn)證研究與實現(xiàn)
◆宋芹芹 袁 泉
(中國直升機設(shè)計研究所 天津 300300)
企業(yè)跨區(qū)域發(fā)展的趨勢對信息化提出新的課題,實現(xiàn)兩地統(tǒng)一用戶身份認(rèn)證和管理的需求更為迫切。采用分布式PKI/CA架構(gòu),通過數(shù)字證書對兩地操作系統(tǒng)、應(yīng)用系統(tǒng)提供統(tǒng)一的安全支撐,形成面向業(yè)務(wù)應(yīng)用和數(shù)據(jù)管理的統(tǒng)一身份、統(tǒng)一認(rèn)證的信任體系,實現(xiàn)異地信息資源的整合利用和業(yè)務(wù)協(xié)同。
PKI/CA;異地;統(tǒng)一身份驗證
企業(yè)跨區(qū)域發(fā)展的趨勢對信息化提出更高的要求,其中兩地統(tǒng)一用戶身份認(rèn)證和管理的研究最為迫切。以某企業(yè)有A、B兩個工作園區(qū)為例,在A園區(qū)中搭建PKI/CA系統(tǒng),用戶通過安全認(rèn)證網(wǎng)關(guān)進(jìn)行應(yīng)用系統(tǒng)業(yè)務(wù)安全訪問。在B園區(qū)采用分布式部署,通過數(shù)字證書為操作系統(tǒng)、應(yīng)用系統(tǒng)提供統(tǒng)一的安全支撐,實現(xiàn)兩地統(tǒng)一的用戶身份管理,形成面向業(yè)務(wù)應(yīng)用和數(shù)據(jù)的統(tǒng)一身份、統(tǒng)一認(rèn)證的信任體系,從而實現(xiàn)兩地信息資源的整合利用和業(yè)務(wù)協(xié)同。
每個用戶持有兩個指紋器,分屬A、B區(qū)域,每個指紋器中分別有兩張證書,為加密證書和簽名證書。每個證書擁有一個密鑰對,主證書為加密證書,輔證書為簽名證書。其中,主證書密鑰對相同,輔證書加密密鑰相同,從而保證兩地身份驗證無縫連接。為實現(xiàn)不同區(qū)域用戶登錄到唯一的應(yīng)用ID,需要保證兩個區(qū)域中的用戶證書屬性信息保持相同。通過讀取證書CN號,即可完成用戶安全登錄到應(yīng)用系統(tǒng)。
PKI是公鑰基礎(chǔ)設(shè)施的簡稱,是以數(shù)字證書為核心,對網(wǎng)上傳輸?shù)男畔⑦M(jìn)行加解密、數(shù)字簽名和簽名驗證,保證了信息的完整性、機密性和不可否認(rèn)性。PKI體系通過使用公開密鑰技術(shù)和數(shù)字證書來確保系統(tǒng)信息安全并負(fù)責(zé)驗證數(shù)字證書持有者的身份,是目前較為成熟的保護信息安全的一套體系[1]。
PKI體系組件包括證書認(rèn)證系統(tǒng)(CA)、證書注冊系統(tǒng)(RA),密鑰管理系統(tǒng)(KM)以及目錄服務(wù)系統(tǒng)(LDAP)。
證書管理中心系統(tǒng)(CA)負(fù)責(zé)簽發(fā)管理證書,執(zhí)行根認(rèn)證中心制定的策略;為個人、服務(wù)器以及其他設(shè)備簽發(fā)證書,通過向下簽發(fā)下級管理中心證書,進(jìn)行認(rèn)證體系的縱向擴充。
證書注冊審核中心系統(tǒng)(RA)是認(rèn)證系統(tǒng)為用戶服務(wù)的對外窗口,為用戶進(jìn)行用戶身份信息的審核,確保其真實性,管理和維護本區(qū)域用戶身份信息,注冊和凍結(jié)用戶、發(fā)放和管理數(shù)字證書。
密鑰管理中心系統(tǒng)(KMC)主要負(fù)責(zé)密鑰的管理,包括密鑰的產(chǎn)生、分發(fā)、更新、銷毀全生命周期的管理,為管理中心提供密鑰托管服務(wù)。
證書目錄服務(wù)系統(tǒng)(LDAP)分主、從目錄服務(wù)系統(tǒng)。其中,主目錄服務(wù)器接收證書管理系統(tǒng)的數(shù)據(jù)更新,并將更新的數(shù)據(jù)實時同步到從目錄服務(wù)系統(tǒng)中;從目錄服務(wù)系統(tǒng)負(fù)責(zé)對外進(jìn)行信息發(fā)布,為業(yè)務(wù)應(yīng)用系統(tǒng)提供證書信息查詢服務(wù)。LDAP是CA中心對外服務(wù)的關(guān)鍵組件,負(fù)責(zé)證書的存儲、發(fā)布、查詢。
數(shù)字證書是將實體屬性等標(biāo)識信息和相應(yīng)公開密鑰綁定在一起的數(shù)據(jù)文件,數(shù)字證書是采用公鑰體制,即利用一組相互匹配的密鑰進(jìn)行加密和解密。是由第三方信任機構(gòu)—認(rèn)證中心CA進(jìn)行數(shù)字簽名并公開發(fā)布。
2.1 PKI/CA系統(tǒng)基礎(chǔ)架構(gòu)
企業(yè)在園區(qū)A建設(shè)二級CA中心,作為上級網(wǎng)絡(luò)中心PKI/CA體系的二級結(jié)構(gòu)。結(jié)合數(shù)字證書與windows域管理機制,實現(xiàn)指紋器登錄操作系統(tǒng),完成用戶開機登錄強身份認(rèn)證與退出鎖定保護。通過安全認(rèn)證網(wǎng)關(guān),實現(xiàn)基于數(shù)字證書的身份認(rèn)證,達(dá)到強身份認(rèn)證的效果。通過簽名驗證系統(tǒng)與OA系統(tǒng)的結(jié)合,實現(xiàn)基于數(shù)字證書的責(zé)任認(rèn)定,對實際業(yè)務(wù)過程中的重要流程做簽名驗證。
該身份認(rèn)證系統(tǒng)主要由證書管理中心系統(tǒng)(CA)、證書注冊審核中心系統(tǒng)(RA)、密鑰管理中心系統(tǒng)(KMC)、證書目錄服務(wù)系統(tǒng)(LDAP)、安全認(rèn)證網(wǎng)關(guān)等組成。
證書認(rèn)證網(wǎng)關(guān)部署在應(yīng)用客戶端與應(yīng)用服務(wù)端之間,與應(yīng)用采用串聯(lián)部署,即客戶端與服務(wù)端之間的所有流量都經(jīng)過認(rèn)證網(wǎng)關(guān),認(rèn)證網(wǎng)關(guān)負(fù)責(zé)完成對客戶端的完整證書認(rèn)證過程以及數(shù)據(jù)的傳輸加密,客戶端只有通過了認(rèn)證網(wǎng)關(guān)的驗證,請求才能到達(dá)真正的應(yīng)用服務(wù)器。安全認(rèn)證網(wǎng)關(guān)為網(wǎng)絡(luò)應(yīng)用提供基于數(shù)字證書的高強度身份認(rèn)證服務(wù),高強度數(shù)據(jù)鏈路加密服務(wù),可以有效保護網(wǎng)絡(luò)資源的安全訪問[2]。
2.2分布式PKI/CA系統(tǒng)架構(gòu)設(shè)計
在B區(qū)域建設(shè)一套身份認(rèn)證系統(tǒng),其建設(shè)模式與A區(qū)模式相同,兩地身份認(rèn)證體系技術(shù)標(biāo)準(zhǔn)兼容。為滿足人員在A區(qū)與B區(qū)流動辦公,進(jìn)去不同區(qū)域后,需要實現(xiàn)可以使用對應(yīng)區(qū)域中的數(shù)字證書進(jìn)行相同的業(yè)務(wù)操作,即異地登錄。首先A區(qū)與B區(qū)兩地身份認(rèn)證系統(tǒng)需要做到兩個同步:(1)兩地密鑰復(fù)制與同步;(2)CA用戶信息復(fù)制與同步。分布式PKI/CA系統(tǒng)架構(gòu)如圖1。

圖1 分布式PKI/CA系統(tǒng)架構(gòu)圖
2.3用戶登錄操作系統(tǒng)
兩地辦公過程中,進(jìn)入不同區(qū)域后,需要使用對應(yīng)區(qū)域中的數(shù)字證書登錄操作系統(tǒng)。每個用戶擁有兩個指紋設(shè)備,分屬A、B區(qū)域,分別擁有兩張證書,為加密證書和簽名證書。每個證書都有一個密鑰對,主證書為加密證書,輔證書為簽名證書,主證書密鑰對相同,而輔證書加密密鑰相同,從而保證兩地身份驗證無縫連接。
首先需要用戶計算機加入到Windows域,用戶啟動計算機之后,系統(tǒng)提示用戶將指紋KEY插入客戶端計算機的USB接口。用戶登錄系統(tǒng)身份認(rèn)證過程如圖2所示。
(1)用戶輸入指紋信息;
(2)指紋信息輸入正確將解開數(shù)字證書,通過數(shù)字信封解開綁定的域賬號名和口令;
(3)客戶端計算機將用戶證書及用戶簽名從用戶的指紋KEY發(fā)送至 Microsoft 密鑰發(fā)行中心 (KDC), 該中心對客戶進(jìn)行身份驗證;
(4)KDC 將證書中的 UPN(用戶主要名稱)與 Active Directory 中的 UPN 進(jìn)行比較。KDC 還驗證證書上的簽名以確保其是由 Active Directory林中的受信任的 CA 發(fā)出。
KDC 首先驗證用戶的證書,若證書有效,KDC 會驗證預(yù)授權(quán)數(shù)據(jù)字段中的簽名數(shù)據(jù)(該數(shù)據(jù)由用戶在用戶證書中使用公鑰的初始請求中發(fā)送的)。然后 KDC 使用隨機產(chǎn)生的對稱密鑰加密授權(quán)票證 (TGT),之后再用證書的公鑰將其作為來自 KDC 響應(yīng)預(yù)授權(quán)字段的一部分進(jìn)行加密。這就確保了僅具備正確私鑰的客戶才可解密登錄會話密鑰。系統(tǒng)將密鑰傳輸至客戶端計算機。客戶端計算機通過收到的密鑰來對遠(yuǎn)程訪問服務(wù)器進(jìn)行身份驗證。雙方因此而進(jìn)行了相互的身份驗證[3]。用戶退出登錄時只需將KEY拔出,系統(tǒng)即可進(jìn)入鎖定狀態(tài),從而限制了他人對計算機的物理訪問。

圖2 用戶登錄系統(tǒng)身份認(rèn)證過程
2.4 異地訪問應(yīng)用系統(tǒng)
用戶異地訪問應(yīng)用系統(tǒng),需要解決如下兩方面的問題。
第一,用戶身份鑒別。用戶使用本園區(qū)身份認(rèn)證體系簽發(fā)數(shù)字證書進(jìn)行業(yè)務(wù)系統(tǒng)訪問,通過對兩個區(qū)域中的數(shù)字證書信任鏈進(jìn)行相應(yīng)信任配置,配置后不同園區(qū)用戶將可以持本園區(qū)數(shù)字證書通過安全認(rèn)證網(wǎng)關(guān)系統(tǒng)身份鑒別。
第二,用戶數(shù)字證書信息交互。為實現(xiàn)用戶異地登錄到唯一的應(yīng)用系統(tǒng)ID,需要保證兩個區(qū)域中的用戶證書屬性信息保持相同,包括OU、主題備用名等。現(xiàn)有應(yīng)用系統(tǒng)是通過讀取證書屬性信息中的CN第來確定用戶ID,即可完成用戶安全登錄到應(yīng)用系統(tǒng)。
B區(qū)客戶端訪問兩地應(yīng)用系統(tǒng)業(yè)務(wù)流程如下:
(1)用戶向安全認(rèn)證代理發(fā)出訪問門戶請求;
(2)安全認(rèn)證代理將該訪問請求發(fā)送至B區(qū)安全認(rèn)證網(wǎng)關(guān),安全認(rèn)證網(wǎng)關(guān)要求用戶提交能夠標(biāo)識其身份信息的數(shù)字證書;
(3)用戶輸入指紋信息調(diào)出數(shù)字證書;
(4)安全認(rèn)證代理將用戶證書信息提交至B區(qū)安全認(rèn)證網(wǎng)關(guān),安全認(rèn)證網(wǎng)關(guān)完成身份驗證并同時建立安全加密傳輸通道;
(5)用戶正常訪問A區(qū)門戶系統(tǒng),同時通過門戶系統(tǒng)實現(xiàn)后臺兩地業(yè)務(wù)系統(tǒng)的安全登錄。
PKI/CA技術(shù)的發(fā)展日趨成熟,廣泛被使用,但遠(yuǎn)程協(xié)同辦公對其提出了更高的要求。本文中分布式PKI/CA系統(tǒng)架構(gòu)保證了兩地身份驗證無縫連接,滿足了異地用戶在使用異地數(shù)字證書訪問應(yīng)用系統(tǒng)的身份鑒別需求,對此類技術(shù)的研究和實現(xiàn)起到了一定的指導(dǎo)意義。
[1]趙穎.一種基于證書的登錄控制實現(xiàn)[J].信息安全與通信保密,2006.
[2]于華,曹海濱,劉良旭.基于LDAP和PKI的Intranet統(tǒng)一身份認(rèn)證系統(tǒng)的研究[J].計算機工程與設(shè)計,2006.
[3]李彥,王柯柯.基于PKI技術(shù)的認(rèn)證中心的研究[J].計算機科學(xué),2006.