于浩,于溯,康一丁
(1.長春理工大學,長春 130022;2.工業(yè)和信息化部電信研究院,北京 100191;3.空軍航空大學,長春 130022)
LDAP協(xié)議采用樹狀邏輯結(jié)構(gòu)組織數(shù)據(jù),能夠清晰地反映組織結(jié)構(gòu)關(guān)系,并可以存儲用戶認證信息,協(xié)議提供方便的查詢和認證接口,能夠為網(wǎng)絡認證服務,在網(wǎng)絡認證中得到了廣泛的應用。隨著認證安全性要求的不斷提高,復雜認證框架協(xié)議RADIUS、EAP及多種復雜認證協(xié)議的出現(xiàn),LDAP在認證過程中,如何與這些協(xié)議配合使用以提高認證安全性與效率,成為一個重要問題。
LDAP目錄服務在網(wǎng)絡認證活動中,一般不直接面向用戶,而是作為認證系統(tǒng)的認證信息數(shù)據(jù)庫,這里將識別用戶身份的系統(tǒng)稱為認證系統(tǒng),它在實際使用環(huán)境中可能是應用系統(tǒng)、網(wǎng)絡接入系統(tǒng)(NAS)等需要識別用戶身份的系統(tǒng)。
LDAP目錄服務在目前網(wǎng)絡認證中,主要作為認證數(shù)據(jù)庫,認證服務器作為 LDAP服務的客戶端,具有LDAP相應的權(quán)限,利用LDAP協(xié)議提供認證和查詢操作的特性,分別有兩種使用方式。
(1)BIND方式,主要利用LDAP的BIND認證操作。用戶向認證系統(tǒng)輸入認證信息(一般是用戶名和口令),應用系統(tǒng)或認證系統(tǒng)首先向 LDAP服務器查詢用戶是否存在,如果用戶存在,LDAP服務器會返回用戶的 DN,應用系統(tǒng)嘗試通過 BIND操作使用口令或其他認證信息向LDAP服務器認證DN,如果BIND操作成功,則用戶認證成功。
(2)查詢方式,主要利用LDAP的SEARCH查詢操作。認證系統(tǒng)利用擁有的LDAP較高權(quán)限,將LDAP中的認證信息(大多數(shù)情況下是用戶名、口令),定期同步到自己的數(shù)據(jù)庫中,再利用同步的認證信息進行認證活動。
LDAP在網(wǎng)絡認證中,主要應用在傳統(tǒng)的認證信息為用戶名和口令的認證過程中,隨著認證方式復雜性的不斷提高,其在使用中遇到了一些問題,主要表現(xiàn)在兩個方面。
首先是兼容性問題,表現(xiàn)在 BIND方式中。LDAP的BIND操作支持兩種認證方式,明文口令方式和 SASL(Simple Authentication and Security Layer)方式,EAP、Radius協(xié)議中的許多認證方式是不支持明文口令的;同時,SASL雖然擴展了認證方式,但是支持的方式有限,且并未得到廣泛的支持。
數(shù)據(jù)實效問題和效率問題,表現(xiàn)在查詢方式。認證服務器通過查詢操作,將LDAP的認證信息同步到本身的數(shù)據(jù)庫中,可以解決兼容性問題,但認證信息只能定期同步,因同步不及時造成認證失敗的可能性較大;同步操作,會反復讀取大量未被改動的數(shù)據(jù),增加系統(tǒng)復雜性和網(wǎng)絡流量,也不利于系統(tǒng)穩(wěn)定運行和認證信息安全。
由于存在上述問題,LDAP未來在網(wǎng)絡認證中的應用將可能受到限制,因此,需要考慮如何解決這些問題。從保證認證安全性和系統(tǒng)穩(wěn)定性出發(fā),應該著力解決兼容性問題。解決兼容性問題主要從兩個方面考慮,即擴展認證框架協(xié)議和LDAP協(xié)議的認證方式。
EAP和RADIUS協(xié)議,作為認證框架協(xié)議,支持多種認證方式,可以在其認證方式中增加專門針對LDAP為認證信息數(shù)據(jù)庫的認證方式,其中還應包含口令和SASL兩種選項。認證過程中,認證服務器向用戶端提出認證請求,認證服務器與用戶協(xié)商認證方式,當認證服務器使用LDAP服務中的認證信息時,則與用戶協(xié)商使用LDAP的認證方式及選項(口令或SASL),協(xié)商成功后,認證服務器利用獲取的用戶身份信息,查詢用戶在LDAP中對應的DN,如用戶存在,進行下一步操作;認證服務器,認證協(xié)議將從認證協(xié)議獲取認證信息轉(zhuǎn)換成LDAP的BIND請求包,BIND的對象是用戶對應的DN;LDAP會反饋BIND應答包,認證服務器將BIND應答中數(shù)據(jù)封裝到認證協(xié)議中。這樣,用戶端通過認證服務器與LDAP進行BIND操作,認證成功,則認證服務器向用戶反饋認證成功消息,如 BIND操作失敗,則認證服務器向用戶反饋認證失敗消息,結(jié)束認證過程。如認證成功,認證服務器應在適當時間,進行UNBIND操作。
這種方式,認證服務器和用戶端的修改較大,如LDAP服務采用簡單口令方式進行BIND操作,實現(xiàn)難道較小,如LDAP服務器使用SASL,則實現(xiàn)難度較大。因而,這種方式擴展性不好,不易支持復雜的認證方式。
LDAP的BIND目前支持口令認證和SASL擴展認證,LDAP在設(shè)計中為將來支持其他協(xié)議保留了擴展空間。在LDAP的BIND包中,認證方式字段只使用0和3,分別代表了口令認證和 SASL認證,1和2保留給其他認證方式。而EAP是一種與底層協(xié)議無關(guān)的認證框架協(xié)議,目前又被廣泛支持,因此,LDAP可以擴展BIND操作的認證方式,使用EAP作為一種新的認證方式。LDAP的Bind-Request數(shù)據(jù)包重新定義如下,其中增加了可選認證方式eap,eap認證數(shù)據(jù)定義為字節(jié)串eappacket,封裝eap協(xié)議;LDAPResult數(shù)據(jù)包的resultCode應增加 eapBindInProgress的值對應代碼為22,BindResponse數(shù)據(jù)包的LDAPResult值在不是success時,增加了 eapBindInProgress,在使用 eap時包含eappacket,認證過程中發(fā)送eap數(shù)據(jù),不使用eap時,則不包含eappacket。

圖1 LDAP擴展BIND操作Fig.1 LDAP extented BIND operation
擴展后認證過程,實際是用戶通過認證服務器與LDAP進行BIND操作,認證服務器進行EAP與LDAP數(shù)據(jù)的轉(zhuǎn)換。首先,認證服務器向用戶端提出認證請求,用戶反饋身份信息;認證服務器提取用戶身份信息,查詢用戶在LDAP中是否存在,如果存在,則認證服務器會獲取 DN;認證服務器獲取對應的用戶DN后,開始與LDAP的BIND操作,向LDAP進行BIND請求,BIND包中DN填寫用戶對應的DN,認證方式為eap,eappacket字段為用戶端的EAP應答其中identity變?yōu)橛脩鬌N;LDAP服務器收到認證服務器請求后,確認使用EAP認證,并反饋BIND應答,開始認證過程,應答中認證結(jié)果為eapBindInProgress,eappacket字段中為EAP請求,其中包含認證方式;認證服務器收到LDAP的反饋后,將BIND反饋中的eap字段反饋給用戶端;用戶端收到反饋后,如果能夠支持這種認證協(xié)議則開始下面的認證過程;之后認證過程中,認證服務器進行協(xié)議轉(zhuǎn)發(fā),遵循EAP協(xié)議中對Path-throng服務器的要求和 LDAP對客戶端的要求,須注意用戶名和用戶DN的轉(zhuǎn)換,LDAP服務器則調(diào)用 EAP認證過程,應答中結(jié)果均是 eapBindInProgress,將 EAP數(shù)據(jù)填入 BIND包中的eappacket字段。如果認證完成,LDAP應答中反饋success或invalidCredentials,可將EAP的Success或Failure消息作為eappacket字段內(nèi)容,認證服務器收到后,轉(zhuǎn)換從EAP消息,反饋給用戶端。具體的認證過程如2圖所示。
在網(wǎng)絡認證中,認證服務器主要關(guān)注EAP是否成功,認證成功或失敗主要取決于EAP信息最后提示的結(jié)果,LDAP的BIND不必一定提示綁定是否成功,為了保障將來的擴展性應盡量與EAP保持一致,但認證服務器應在每次認證成功后都應及時進行UNBIND操作,以關(guān)閉LDAP會話防止LDAP維持大量未結(jié)束的BIND過程。
LDAP擴展方式,從保持認證的安全、效率、兼容性來看,更具有發(fā)展前景,大量的客戶端不用修改,EAP傳遞密鑰等重要過程不必重新設(shè)計。

圖2 LDAP擴展EAP認證過程Fig.2 LDAP extended EAP certification process
LDAP在網(wǎng)絡認證中已經(jīng)廣泛應用,大量應用系統(tǒng)、認證與依靠其運行。在今后認證方法的研究中,應加強對LDAP擴展的研究,盡早提出實際可用的系統(tǒng)和解決方案,以提高認證系統(tǒng)的可靠性和高效率。
[1]Lightweight Directory Access Protocol(V3).RFC2251.M.Wahl,T.Howes,S.Kille.1997.12.http://www.ietf.org.cn.[S].
[2]Simple Authentication and Security Layer(SASL).RFC2222.J.Myers.1997.10.http://www.ietf.org[S].
[3]Extensible Authentication Protocol(EAP).RFC3748.B.Aboda,L.Blunk,J.Vollbrecht,J.Carlson,H.Levkowetz.2004.6.http://www.ietf.org[S].
[4]Remote Authentication Dial In User Service(RADIUS).RFC2138.C.Rigney,A.Rubens,W.Simpson,S.Wilens.1997.4.http://www.ietf.org[S].
[5]龐英智,顏輝.網(wǎng)絡環(huán)境下學生自主學習評價系統(tǒng)的實現(xiàn)[J].長春理工大學學報:自然科學版,2010(3):156-158.
[6]王素紅,常悅.基于P2P網(wǎng)絡的即時通信系統(tǒng)研究[J].長春理工大學學報:自然科學版,2009,32(4):657-659.