


摘 要: Kerberos協議是近年來廣泛應用的身份認證協議之一,但是Kerberos協議的研究主要集中在身份認證部分,并未提供授權管理。這里在對Kerberos協議的基本原理及安全性進行分析的基礎上,提出一種基于EAP和XACML授權框架的Kerberos認證授權模型,最后對此模型的認證授權能力進行分析。
關鍵詞: Kerberos協議; XACML框架; 安全認證; EAP
中圖分類號: TN911?34; TP309 文獻標識碼: A 文章編號: 1004?373X(2015)04?0035?04
隨著基于網絡的應用的迅速發展,網絡信息安全問題越來越突出,其中身份認證及訪問授權問題顯得尤為重要。Kerberos是近年來應用廣泛的安全認證協議之一,由于Kerberos協議中身份認證服務和票據授權服務是集中式管理的,容易形成瓶頸,系統的性能和安全性也過分依賴于服務的性能和安全。當前對Kerberos協議的研究主要集中在身份認證部分,而對訪問授權問題僅提供了基本擴展方式,并未提供具體訪問授權策略。
本文將基于XACML授權模型的與Kerberos協議集成,為Kerberos協議增加訪問授權管理。在此基礎上,使用SAML安全斷言機制進行消息的傳送,并且增加基于EAP?Md5的身份預驗證機制,力求加強Kerberos協議的安全性。
1 協議概述
1.1 Kerberos
Kerberos作為一個分布式的認證服務系統,是目前互聯網上一個重要的身份認證協議。Kerberos協議主要用于網絡身份認證服務(Authentication),它的特點是用戶只要輸入一次身份認證信息,通過驗證后即可獲得可用于訪問多個服務的票據[1],即SSO(Single Sign On)。
Kerberos模型涉及以下術語:
(1) Client,用戶。可以是正在運行的進程,也可以是普通的用戶。
(2) Server,應用服務器。向用戶提供所請求服務的實體。
(3) TGS(Ticket?Granting Server),票據發放服務器。為用戶發放票據的服務器,用戶使用該票據向應用服務器表明自己的身份。
(4) AS(Authentication Server),身份認證服務器。為用戶發放票據,用戶可以使用該票據向TGS表明自己的身份。
(5) KDC(Key Distribution Center)。TGS與AS統稱為KDC,即密鑰分配中心。
(6) Ticket,票據。是一種有TGS發放的一種數據結構,在Kerberos協議中用來記錄信息、密鑰等,Clien向Server出示票據以證明身份,票據中包括了Client的身份標識、時間戳、會話密鑰等信息。
(7) TGT(Ticket?Granting Ticket),票據授權票據。Client用TGT向TGS證明自己的身份。由AS發放。
(8) ST(service ticket),服務票據。Client用ST向Server證明自己的身份,由TGS發放。
Kerberos協議的執行過程如圖1所示:
Kerberos協議執行過程包括6個過程:
(1) C_AS_REQ:Client向AS申請票據TGT,消息中包括自己的主體標識,TGS的主體標識及產生隨機數串;
(2) C_AS_REP:AS向Client發送票據TGT以及Client與TGS的會話密鑰;
(3) C_TGS_REQ:Client向TGS申請訪問應用服務器Server的票據ST,發送的消息包括票據TGT,Server的標識和隨機數;
(4) C_TGS_REP:TGS接受到消息(3)后,首先驗證票據TGT,如果驗證通過,則驗證CLient的身份,通過驗證后,生成一個CLient與Server共享的密鑰和一個服務票據ST給Client;
(5) C_S_REQ:Client用收到的ST向應用服務器認證;
(6) 應用服務器接收到消息(5)后,解密得到ST,驗證有效性后,完成應用服務器對用戶的認證過程。
1.2 EAP?MD5可擴展身份認證協議
EAP協議是由點對點協議 PPP(Peer?Peer Protocol)擴展而來,可以在EAP協議的基礎上擴展多種認證機制,是一種建立在挑戰/響應通信模型上的通信協議。認證服務器通過EAP機制向客戶端提問,所有的認證都由后臺服務器完成。
EAP?MD5認證協議流程如圖2所示:
無論何時Server發出EAP?Failure消息,都表示認證過程從此終止。
1.3 SAML/XACML
SAML即安全斷言標記語言,英文全稱是Security Assertion Markup Language。SAML標準中定義了兩種身份,即身份提供者(identity provider)和服務提供者(Service Provider),SAML用于在這兩種身份之間交換認證和授權數據。
SAML規范由聲明、請求/響應協議、綁定和配置文件由四個部分組成:
(1) 聲明(Assertions)。它是SAML的基本數據對象,描述了主體的身份、屬性、權限信息。其分為認證聲明(Authentication Assertion),屬性聲明(Attribute Assertion),授權決議聲明(Authorization Decision Assertion)。
(2) 請求、響應協議(Request/Response)。該協議規定了SAML數據在兩點間共享時的消息格式和種類。SAML給出兩種消息格式:請求消息(Request)和響應消息(Response)。Request中可以分為三種查詢類型(Query),分別是主體查詢(SubjectQuery)、認證查詢(AuthenticationQuery)、屬性查詢(AttributeQuery)和授權決策查詢(AuthorizationtQuery),這三種查詢對應三種聲明格式。
(3) 綁定(Bindings)。綁定定義了如何通過標準的傳輸協議和消息收發協議交換SAML消息。
(4) 配置文件(Profiles)。配置文件是SAML規范定義的一組規則,描述了聲明是在底層消息協議中是如何嵌入、提取和集成的。
XACML(Extensible Access Control Markup Language)是一種用于決定請求/響應的通用訪問控制策略語言和執行授權策略的框架,它被廣泛用于訪問控制策略的執行。在典型的訪問控制框架中,主要有策略執行點PEP(Policy Enforcement Point)和策略決定點PDP(Policy Decision Point)組成。
PEP用于對PDP提出申請和執行PDP返回的訪問控制決策,它將資源申請信息發給策略決策點(PDP),PDP將依據已有的安全訪問控制策略,對申請進行評估并作出授權決定,最后將決定返回給PEP。
2 一種新的Kerberos認證授權模型
2.1 總體框架
本文提出一種增加EAP?MD5預驗證和XACML?SAML訪問控制模型的新的Kerberos構架,Kerberos協議在對Client提供TGT之前對其進行EAP預認證,并在向TGS申請ST時,利用XACML框架進行授權管理,認證和授權的具體過程在下文中詳述。
這種新的Kerberos總體構架如圖3所示。
2.2 總體構架組成部分
(1) KDC。本體系結構的主要成分。由票據發放服務器TGS和認證服務器AS組成。AS除了作為Kerberos協議中的身份認證服務器,在基于EAP協議的預身份驗證中,AS扮演了Server的角色,與用戶交換EAPREQ/RESP包。它還通過AAA基礎設施對EAP報文轉發。關于授權過程中,TGS服務將負責用戶屬性檢索和訪問控制的要求,充當了XACML訪問控制模型PEP(策略實施點)的角色,分別與IDP和PDP進行交互,根據PDP決策結果,確定ST是否必須頒發給客戶端。
(2) AAA服務器。它是負責通過EAP的認證用戶的實體。因此,具有EAP服務器的功能。AAA服務器與IDP交互,請求要求認證和授權信息。
(3) idp統一認證中心(identity provider)。idp用于解碼SAML請求和生成SAML響應,提供對用戶的身份認證,idp可能會要求提供有效登錄憑據或檢查有效會話 Cookie 以驗證用戶身份,驗證成功后,idp會生成帶有驗證過的用戶信息的SAML響應。
(4) 策略決策點(PDP)。它是KDC放置訪問控制策略的實體。PDP從PEP(由KDC扮演PEP的角色)處接受請求,評估適用于該請求的策略,并將授權決定返回給PEP(KDC)。
(5) 服務Service。提供的特定服務(例如,Web,SSH, FTP等)的實體。
2.3 基本操作
Client需要得到Kerberos票據ST才能得到Service服務器提供具體服務,為了從TGS處獲得ST,必須先從AS處得到TGT,在這之前用戶必須通過AAA服務器執行基于EAP的預身份驗證。AAA服務器和idp成功驗證Client身份后,向KDC發送認證聲明指出已經成功認證Client端,KDC向用戶發送TGT,其中包括AAA服務器發回的類似認證壽命的信息。用戶得到TGT后向AS申請ST,KDC開始執行授權管理,KDC通過SAML斷言向idp發送Client的身份信息,KDC作為XACML框架中的PEP向PDP請求授權決定,(PDP提供整體的訪問控制策略)。PDP查詢訪問控制策略并做出授權決定,并將授權決定返回發送給KDC,KDC根據授權決定頒發ST給Client。
2.4 認證授權過程
本文提出的新Kerberos協議的認證授權過程如圖4所示。
具體的認證、授權操作協和如下:
(1) C_AS_REQ、EAP?Start,從Client向AS發送TGT請求,也相當于向EAP協議的服務器發送EAP?Start報文,開始EAP接入。
(2) C_AS_REP、EAP?REQ(id),AS向Client返回響應,發送了EAP?REQ(id)報文,要求Client提供身份信息。
(3) C_AS_REQ、EAP?RESP(id),Client回應服務器,發送身份信息。
(4) AAA_REQ、EAP?RESP(id),AS將受到的EAP?RESP(id)報文封裝,發送給AAA服務器。
(5) AAA_REP、EAP?REQ/MD5?Challenge,AAA服務器產生一個Challenge,通過AS將報文發送給客戶端。
(6) C_AS_REP、EAP?REQ/MD5?Challenge,AS將收到的報文發送給Client,要求客戶端進行認證。
(7) C_AS_REQ、EAP?RESP/MD5?Challenge(password),客戶端收到EAP?REQ/MD5?Challenge報文后,將密碼和Challenge做MD5算法后的password發送給AS。
(8) AAA_REQ、EAP?RESP/MD5?Challenge(password),AS將收到的報文發給AAA服務器進行驗證。
(9) AAA_idp_REQ(SAMLAuthenticationQuery),AAA服務器根據用戶信息做MD5算法后判斷是否合法后,向idp發送SAML認證請求,要求idp對Client認證。
(10) AAA_idp_RESP,idp對接收到的認證請求作出響應,對Client進行認證,如果成功,給Client進行授權,如果認證失敗,則結束。
(11) AAA_REP、EAP?Success(或者EAP?FAilure),AAA向發送AS認證結果。
(12) C_AS_REP、EAP?Success,AS向Client發送認證結果,頒發TGT。認證過程結束。
(13) C_TGS_REQ(TGT),Client向TGS發送TGT,申請ST票據。
(14) TGS_idp_REQ、SAMLAttributeQuery,TGS向idp發送屬性查詢的消息,獲得Client相關屬性信息。
(15) TGS_idp_RESP,idp對接受的屬性查詢申請作出響應,返回Client相關屬性信息。
(16)TGS_PDP_REQ、SAMLAuthorizationtQuery,TGS將Client的身份信息、屬性信息發送給PDP,發送授權決策查詢,請求PDP進行決策。
(17) TGS_PDP_RESP,PDP做出決策,并將決策結果返回給TGS。
(18) C_TGS_REP(ST),TGS根據PDP發回的決策,決定是否頒發ST給Client。授權過程結束。
3 優越性分析
本文在Kerberos協議的基礎上,增加了基于EAP?MD5協議的預認證服務和基于XACML框架的授權管理。通過EAP?MD5協議,提供了使用AAA服務器對Client端進行認證的可能,與之前Kerberos傳統的認證方式相比,使用AAA服務器更好地實現了對Client的身份管理,也可以在此基礎進行授權和計費的擴展,并且在Client需要跨域訪問服務的時候,本地KDC與AAA服務器進行通信,避免了跨域時多個KDC之間的協作時的安全性問題。
基于SAML技術和XACML技術的授權管理技術已經成熟,而傳統的Kerberos協議并未將授權管理納入考慮。本文將這兩種技術與Kerberos協議相結合,為Kerberos提供授權管理。其中,用戶的屬性有idp管理,PEP的角色由KDC扮演,增加了相應的策略決策點,PDP將負責處理訪問控請要求,檢查策略和回復由KDC的強制執行的決定。在這個意義上,授權管理對服務是透明的。
4 結 語
本文提出一種新的方法,Client為了訪問基于Kerberos的服務,要先進行EAP?MD5協議的預認證,提高了認證的安全性。使用AAA服務器不僅能夠管理認證和密鑰分配,還具有授權和計費的功能,方便未來進行擴展。另一方面,利用現有的SAML配置文件,PEP/PDP的結構也符合XACML框架,利用SAML與XACML框架進行授權管理,系統可以在通過控制授權判定條件等使得授權管理更加靈活。
注:本文通訊作者為李文娟。
參考文獻
[1] 文鐵華,谷士文.增強Kerberos協議安全性的改進方案[J].通信學報,2004,25(6):76?79.
[2] KOHL J, NEUMAN C. RFC1510: the Kerberos network authentication service(V5)[M]. [S.l.]: ISI, 1993.
[3] 韓偉,范植華.基于SAML的單點登錄技術在Web服務中的應用研究[J].計算機工程與設計,2005,26(3):634?636.
[4] 羅昌行,歐陽晉,章衛國.基于SAML標準的信任與授權服務平臺設計[J].計算機工程,2005,31(13):118?120.
[5] 王曼珠,周亮.基于RADIUS/EAP的WLAN認證及其安全性分析[J].電子科技大學學報,2005,34(2):168?171.
[6] 陳家琪,馮俊,郝妍.無證書密鑰協商協議對跨域Kerberos的改進[J].計算機工程,2010,36(20):150?152.
[7] 劉克龍,卿斯漢,蒙楊.一種利用公鑰體制改進kerberos協議的方法[J].軟件學報,2001(12):874?877.
[8] 李曉峰,馮登國,徐震.基于擴展XACML的策略管理[J].通信學報,2007,28(1):103?110.
[9] ZRELLI Saber, SHINODA Yoichi. Specifying Kerberos over EAP: Towards an integrated network access and Kerberos single sign?on process [C]// 21st International Conference on Advanced Networking and Applications. Niagara Falls, Ontario, Canada: IEEE, 2007: 490?497.
[10] EMAN E I, KOUTB E, KELASH M, et al. An optimized kerberos authentication protocol [C]// International Conference on Computer Engineering Systems. Cairo: [s.n.], 2009: 508?513.