• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Kerberos協(xié)議的單點登錄研究與設(shè)計

      2011-09-07 10:16:40杜中軍
      計算機工程與設(shè)計 2011年7期
      關(guān)鍵詞:用戶名單點解密

      沈 陽, 杜中軍

      (四川大學計算機學院,四川成都610065)

      0 引 言

      目前,越來越多的軟件應(yīng)用正在從傳統(tǒng)的C/S結(jié)構(gòu)向B/S結(jié)構(gòu)轉(zhuǎn)變,一個組織中多個基于Web的業(yè)務(wù)應(yīng)用系統(tǒng)共存的情況十分普遍。這些系統(tǒng)往往是在不同的時期內(nèi),由不同的軟件開發(fā)人員采取不同的技術(shù)開發(fā)而來的。由于每個系統(tǒng)相互獨立,都有各自的用戶認證方式,所以用戶登錄時,不得不分別登錄各個所需使用的系統(tǒng),給用戶帶來極大不便。記住各個登錄密碼給用戶提出了挑戰(zhàn),另一方面,對于系統(tǒng)管理員來說,維護和管理用戶密碼也變得困難。基于效率和安全的因素,改變傳統(tǒng)的認證方式,設(shè)計出一種更為高效、安全的網(wǎng)絡(luò)認證機制顯得非常迫切,單點登錄的概念由此產(chǎn)生。單點登錄是一種可以登錄多個相互關(guān)聯(lián)但彼此獨立的軟件系統(tǒng)的一種方法,它只需用戶登錄其中的一個系統(tǒng)從而獲得其它所有系統(tǒng)的登錄許可而不用重復登錄各個系統(tǒng)[1]。目前廣泛使用的單點登錄主要有:Kerberos[2],CAS[3],基于SAML的單點登錄系統(tǒng)[4-6],微軟的.NET Passport[7]。

      1 相關(guān)研究工作

      對于小型組織或單位,考慮到費用以及他們對單點登錄的性能、安全性要求不高,可以采用基于一次性密碼的認證機制[1]或基于代理的機制[8]來實現(xiàn)單點登錄技術(shù)。但對于大型企業(yè)或單位,對于性能、安全性要求較高的應(yīng)用系統(tǒng)而言,如電子商務(wù)、電子政務(wù)等系統(tǒng),這兩種實現(xiàn)機制顯得捉襟見肘。對于此類的系統(tǒng)要求,公鑰基礎(chǔ)設(shè)施(publickeyinfrastructure,PKI)、Kerberos技術(shù)便應(yīng)運而生?;赑KI認證的單點登錄[3,9]采用著名的非對稱加密算法,安全性是目前公認為最高的,但它占用了大量的Server端計算資源,防御Dos、Ddos攻擊的能力差。傳統(tǒng)的基于Kerberos的單點登錄[10]系統(tǒng)采用對稱加密算法,計算資源的消耗低,單位時間響應(yīng)認證請求能力強,但存在重放攻擊以及密文傳輸安全性問題。PKI認證技術(shù)中,公開密鑰系統(tǒng)需要一個值得信賴而且獨立的第三方機構(gòu)充當認證中心(certification authority,CA),以確認公鑰擁有者的真正身份,相對于Kerberos技術(shù)代價較高。本文設(shè)計了一種改進的基于Kerberos的單點登錄系統(tǒng),它在密文傳輸安全性和抗重放攻擊方面都進行了較大程度的改進,而且它便于推廣實施和應(yīng)用。

      2 單點登錄設(shè)計

      2.1 符號定義

      在設(shè)計單點登錄系統(tǒng)時會用到一些縮寫詞、與密碼處理相關(guān)符號以及通信領(lǐng)域的概念,在本文中將他們定義如下[11]:

      PS:Password,用戶密碼

      TS:Time Stamp,時間戳

      ID:User Identity,用戶名

      C:Client,客戶方

      S:resource Servers,資源服務(wù)器

      KDC:Key Distribution Center,密鑰分發(fā)中心

      AS:Authentication Server,認證服務(wù)器

      TGS:Ticket Granting Server,憑據(jù)分發(fā)服務(wù)器

      H(M):使用SHA、MD5等單向散列算法對消息M進行Hash處理

      K(key){M}:使用密鑰key對消息M加密,采用DES、IDEA等對稱密碼算法

      Long-termKey:長期保持不變(比如用戶密碼)以及由此派生出來的密鑰(比如H(PS))

      2.2 傳統(tǒng)的Kerberos單點登錄設(shè)計

      在傳統(tǒng)設(shè)計中,主要有3個模塊:密鑰分發(fā)中心、資源服務(wù)器、客戶方,其中密鑰分發(fā)中心又由憑據(jù)分發(fā)服務(wù)器和認證服務(wù)器組成。整個Kerberos認證過程通過3個階段完成,分別為:AS Exchange、TGS Exchange和 C/S Exchange。這里我們假設(shè):①資源服務(wù)器完全信賴密鑰分發(fā)中心,②密鑰分發(fā)中心和資源服務(wù)器能識別并認證每一個合法的用戶,③僅有一個密鑰分發(fā)中心和多個資源服務(wù)器。傳統(tǒng)的Kerberos單點登錄設(shè)計見圖1。

      圖1 傳統(tǒng)Kerberos單點登錄流程

      (1)C→ AS:K(H(PS)){TS||ID}||ID

      (2)AS→C:K(H(PS)){SKDC-Client},K(K-KDC){SKDC-Client||ID||ET}

      (3)C→TGS:K(SKDC-Client){ID||TS||Sname},K(K-KDC){SKDCClient||ID||ET}

      (4)TGS→C:K(SKDC-Client){SServer-Client},K(K-Server){SServer-Client||ID||ET}

      (5)C→S:K(SServer-Client){ID||TS},K(K-Server){SServer-Client||ID||ET}

      (6)S→C:K(SServer-Client){Data}

      AS Exchange由步驟1和步驟2組成。首先,用戶輸入自己的用戶名和密碼以登錄認證服務(wù)器。時間戳和用戶名經(jīng)過用戶密碼的hash值H(PS)加密并與明文形式的用戶名一起發(fā)送到認證服務(wù)器。然后,認證服務(wù)器根據(jù)用戶名從數(shù)據(jù)庫獲取該用戶密碼的hash值,并用它對加密的文件包解密,如果得到的是一個合法的時間戳并且解密獲得的用戶名與明文傳送的用戶名相等,則認證成功。密鑰分發(fā)中心產(chǎn)生一個它與用戶之間的會話密鑰,即SKDC-Client。認證服務(wù)器將同時發(fā)送兩份加密包給客戶方,分別為用H(PS)加密的SKDC-Client和用密鑰分發(fā)中心自己的密鑰K-KDC加密的SKDC-Client、用戶名以及該包的到期時間,這個包稱為TGT。

      TGS Exchange由步驟3和步驟4組成??蛻舴绞盏缴弦浑A段的加密包后,使用H(PS)解密第一份加密包獲得SKDCClient。接著,客戶方用該會話密鑰加密用戶名、此時獲得的時間戳以及要訪問的資源服務(wù)器名稱,該包稱為Authenticator,并且將它與從認證服務(wù)器獲得的TGT一并發(fā)送給憑據(jù)分發(fā)服務(wù)器。憑據(jù)分發(fā)服務(wù)器獲得加密包后先用K-KDC解密TGT獲得會話密鑰SKDC-Client,然后用該會話密鑰解密Authenticator,如果是一個合法的時間戳并且得到的兩個用戶名相同則通過驗證。密鑰分發(fā)中心產(chǎn)生一個客戶方和資源服務(wù)器之間的會話密鑰,即SServer-Client。憑據(jù)分發(fā)服務(wù)器同時發(fā)送兩份加密包給客戶方,分別為用SKDC-Client加密的SServer-Client和用資源服務(wù)器自己的密鑰加密的SServer-Client、用戶名和該包到期時間,這個包稱為ST。

      C/S Exchange由步驟5和步驟6組成??蛻舴绞盏缴弦浑A段的加密包后,使用SKDC-Client解密第一份加密包獲得SServer-Client。然后,使用SServer-Client加密用戶名和當前獲得的時間戳,該包也稱為Authenticator,并且和上一階段獲得的ST一起發(fā)送給資源服務(wù)器。資源服務(wù)器獲得加密包后,首先使用自己的密鑰對 ST進行解密獲得 SServer-Client。接下來,使用SServer-Client對Authenticator解密,如果獲得的是一個合法的時間戳并且解密獲得的兩個用戶名相同,則該用戶獲得資源服務(wù)器的訪問許可,就可以使用會話密鑰 SServer-Client進行彼此間的通信。

      在整個過程中,ST是基于某個具體的資源服務(wù)器的,而TGT則是和具體的資源服務(wù)器無關(guān),客戶方可以使用一個TGT從密鑰分發(fā)中心獲得基于不同資源服務(wù)器的ST,從而實現(xiàn)單點登錄。具體來說就是,在步驟3中,客戶方一旦獲得TGT后,在該TGT的存活期內(nèi),就可以根據(jù)訪問需要任意反復地指定資源服務(wù)器名稱,加密后隨TGT一并發(fā)送給憑據(jù)分發(fā)服務(wù)器,驗證通過后獲得該資源服務(wù)器的ST,從而得到該資源的訪問許可。

      為了防止重放攻擊,在步驟1、步驟3和步驟5中使用了時間戳。用戶只需登錄一次,就可以根據(jù)需要訪問多個資源服務(wù)器,因為每個用戶只有一個密碼,從而避免了用戶記住多個密碼的麻煩。整個系統(tǒng)中只有一個用戶認證信息的數(shù)據(jù)庫,極大方便了管理員對用戶密碼的管理。使用對稱加密算法對網(wǎng)絡(luò)中傳送的數(shù)據(jù)進行加密,性能明顯優(yōu)于使用非對稱加密算法的PKI認證。

      盡管如此,在一個開放的網(wǎng)絡(luò)環(huán)境中,該系統(tǒng)仍然存在如下一些安全隱患:

      (1)在網(wǎng)絡(luò)安全領(lǐng)域中有這樣的原則:被Long-termKey加密的數(shù)據(jù)最好不要該在網(wǎng)絡(luò)上傳輸。在步驟4和步驟5中,使用了資源服務(wù)器的密鑰對數(shù)據(jù)進行加密傳送,降低了資源服務(wù)器的安全系數(shù)。

      (2)雖然時間戳在一定程度上可以防止重放攻擊,但在Kerberos中一般將它設(shè)置為5分鐘,這樣就留給攻擊者時間,遺留下進行重放攻擊的隱患。

      (3)資源服務(wù)器和客戶方并未進行雙向認證。資源服務(wù)器對客戶方進行了驗證,但客戶方并未對資源服務(wù)器進行驗證,存在服務(wù)器欺騙的可能。

      2.3 改進單點登錄設(shè)計

      考慮到傳統(tǒng)Kerberos單點登錄的以上問題,本文提出了一種改進的單點登錄設(shè)計方案,本設(shè)計中添加了客戶方向資源服務(wù)器申請密鑰分發(fā)中心與資源服務(wù)器之間的會話密鑰的階段,這里把它稱為SKDC-ServerRequest。假設(shè)密鑰分發(fā)中心只負責產(chǎn)生它與資源服務(wù)器之間的會話密鑰但并不保存它,并且每個資源服務(wù)器與密鑰分發(fā)中心之間的會話密鑰都不一樣,其它條件和傳統(tǒng)Kerberos的假設(shè)條件相同。改進的單點登錄設(shè)計見圖2。

      圖2 改進單點登錄流程

      (1)C→AS:K(H(PS)){TS||ID}||ID

      (2)AS→C:K(H(PS)){SKDC-Client},K(K-KDC){SKDC-Client||ID||ET}

      (3)C→S:ID||Sname

      (4)S→C:K(K-KDC){SKDC-Server||ID||Sname||ET}

      (5)C→TGS:K(SKDC-Client){ID||TS||Sname||H(MAC)},K(K-KDC){SKDC-Client||ID||ET},K(K-KDC){SKDC-Server||ID||Sname||ET}

      (6)TGS→C:K(SKDC-Client){SServer-Client},K(SKDC-Server){SServer-Client||ID||ET}

      (7)C→S:K(SServer-Client){ID||TS||Flag||H(MAC)},K(SKDC-Server){SServer-Client||ID||ET}

      (8)S→C:K(SServer-Client){TS}

      ASExchange由步驟1和步驟2組成??蛻舴酵ㄟ^此過程獲得屬于自己的TGT,通過此憑據(jù),客戶方可以向密鑰分發(fā)中心申請用于訪問某個資源服務(wù)器的ST。該階段與傳統(tǒng)Kerberos單點登錄的AS Exchange過程相同。

      SKDC-Server Request由步驟3和步驟4組成。客戶方將自己的 ID和所要訪問資源服務(wù)器的名稱以明文的形式發(fā)送給該資源服務(wù)器,以申請該資源服務(wù)器已從密鑰分發(fā)中心獲得的它與密鑰分發(fā)中心之間的會話密鑰。資源服務(wù)器收到申請后,如果在它的緩存中存在這個會話密鑰,則將之加密發(fā)送給客戶方。反之,如果緩存中沒有該會話密鑰,則資源服務(wù)器通過向RS認證服務(wù)器RSAS發(fā)送申請,申請內(nèi)容為該用戶的用戶名和資源服務(wù)器名稱,這個過程非常類似于客戶方向密鑰分發(fā)中心申請它們之間的會話密鑰,見圖2中的虛線部分。RSAS收到資源服務(wù)器的申請后,密鑰分發(fā)中心將產(chǎn)生一個它與資源服務(wù)器之間的會話密鑰SKDC-Server,然后用自己的密鑰將SKDC-Server、用戶名、資源服務(wù)器名稱和該包的到期時間加密發(fā)送給資源服務(wù)器,該包記為SKTGT。資源服務(wù)器收到該加密包后,將之存入緩存以待申請。

      TGS Exchange由步驟5和步驟6組成。客戶方收到 AS Exchange階段的加密包后,使用H(PS)解密第一份加密包獲得SKDC-Client。接著,客戶方用該會話密鑰加密用戶名、此時獲得的時間戳、要訪問的資源服務(wù)器名稱和自己MAC地址的hash值,該包稱為Authenticator,并且將它與從認證服務(wù)器獲得的TGT、從資源服務(wù)器獲得的SKTGT一并發(fā)送給憑據(jù)分發(fā)服務(wù)器。憑據(jù)分發(fā)服務(wù)器獲得加密包后先用K-KDC解密TGT獲得會話密鑰SKDC-Client,然后用SKDC-Client解密Authenticator,如果是一個合法的時間戳、解密得到的H(MAC)與從IP包中提出的MAC地址的hash值相等并且得到的兩個用戶名相同則通過驗證。之后,密鑰分發(fā)中心再用自己的密鑰對SKTGT解密,獲得密鑰分發(fā)中心與資源服務(wù)器的會話密鑰SKDC-Server。密鑰分發(fā)中心產(chǎn)生一個客戶方和資源服務(wù)器之間的會話密鑰,即SServer-Client。憑據(jù)分發(fā)服務(wù)器同時發(fā)送兩份加密包給客戶方,分別為用SKDC-Client加密的SServer-Client和用SServer-Client加密的SServer-Client、用戶名以及該包到期時間,這個包稱為ST。

      C/S Exchange由步驟7和步驟8組成??蛻舴绞盏缴弦浑A段的加密包后,使用SKDC-Client解密第一份加密包獲得SServer-Client。然后,使用該會話密鑰加密用戶名、當前獲得的時間戳、用于雙向驗證的Flag標記和客戶端硬件地址的hash值,該包也稱為Authenticator,并且和從上一階段獲得的ST一起發(fā)送給資源服務(wù)器。資源服務(wù)器獲得加密包后,首先使用SKDC-Server對ST進行解密獲得SServer-Client。接下來,使用該SServer-Client對Authenticator解密,如果獲得的是一個合法的時間戳、解密得到的H(MAC)與從IP包中提出的MAC地址的hash值相等并且獲得的兩個用戶名相同,則該用戶獲得資源服務(wù)器的訪問許可。資源服務(wù)器將解密獲得的時間戳提取出來,并使用SServer-Client會話密鑰加密發(fā)送給客戶方。當客戶方接收到該包并使用SServer-Client解密之后,如果確認時間戳和原來的完全一致,那么它可以認定該資源服務(wù)器正是它要訪問的資源服務(wù)器。接著就可以使用會話密鑰SServer-Client進行彼此間的通信。

      本設(shè)計在繼承了傳統(tǒng)Kerberos單點登錄的所有優(yōu)點的基礎(chǔ)上,在極大程度上降低了傳統(tǒng)Kerberos單點登錄存在的安全隱患:

      (1)KDC與資源服務(wù)器之間的數(shù)據(jù)加密不再使用資源服務(wù)器自己的密鑰,而是使用它們之間的會話密鑰,給惡意攻擊者帶來極大攻擊難度。

      (2)不再單一使用時間戳來避免重放攻擊,而是配合MAC地址的驗證來實現(xiàn)雙重保障,讓重放攻擊幾乎難以實現(xiàn)。

      (3)通過設(shè)置標記位實現(xiàn)客戶端與資源服務(wù)器端的雙向驗證,使得客戶端也可以對資源服務(wù)器進行驗證,只有驗證通過后才可以正式發(fā)起會話。

      3 實驗與結(jié)果分析

      為了進一步驗證本設(shè)計方案的有效性,我使用Java語言開發(fā)了軟件系統(tǒng)的原型。由于系統(tǒng)需在開放的網(wǎng)絡(luò)環(huán)境中進行實驗,但實驗室環(huán)境無法完全真實地開放在一個網(wǎng)絡(luò)環(huán)境中,所以,我在實驗室內(nèi)部搭建了一個局域網(wǎng),以達到模擬開放網(wǎng)絡(luò)的實驗環(huán)境。實驗中使用sniffer抓包工具對網(wǎng)絡(luò)中傳輸?shù)募用馨M行捕獲,并實施重放攻擊,通過實驗對兩種單點登錄系統(tǒng)進行了比較,得出表1的比較結(jié)果。

      表1 兩種單點登錄的實驗結(jié)果定性比較

      4 結(jié)束語

      改進的單點登錄較傳統(tǒng)的Kerberos單點登錄系統(tǒng)不僅在系統(tǒng)安全性,抗重放攻擊方面有了很大程度的提高,而且實現(xiàn)了客戶端與資源服務(wù)器端的雙向驗證,并且便于推廣和應(yīng)用。但相比與基于PKI的單點登錄系統(tǒng)仍然存在一些有待解決的問題。首先,能否將兩種單點登錄的優(yōu)勢結(jié)合起來,實現(xiàn)一種更為安全和高效的單點登錄系統(tǒng)。其次,本系統(tǒng)中多處使用了會話密鑰,但會話密鑰存在生命期。如果太長,攻擊者將會有足夠的時間進行攻擊;太短,客戶端不得不頻繁地進行重新認證。所以,在未來的工作中,這兩方面的問題將是繼續(xù)研究的工作。

      [1]Tiwari P B,Joshi S R.Single sign-on with one time password[C].IEEE First Asian Himalayas International Conference on Internet,2009:1-4.

      [2]丁立新,趙曦濱,顧明.基于Kerberos的Web單點登錄研究[J].計算機工程與應(yīng)用,2005,41(14):124-126.

      [3]Song peng,Yu jinshan.CAS single sign-on technology for integration of enterprise's application system[J].Journal of Huaqiao University(Natural Science),2009,30(3):351-353.

      [4]Takaaki Komura,Yasuhiro Nagai,Shoichi Hashimoto,et al.Proposal of delegation using electronic certificates on single sign-on system with SAML-protocol[J].Ninth Annual International Symposium on Applications and the Internet,2009:235-238.

      [5]陳科,佘堃,黃迪明.基于安全斷言標記語言輔件技術(shù)的單點登錄系統(tǒng)分析[J].計算機應(yīng)用,2005,25(11):2574-2576.

      [6]Wu kaixing,Yu xiaolin.A model of unite-authentication single sign-on based on SAML underlying Web[C].Second International Conference on Information and Computing Science,2009:211-213.

      [7]http://www.passport.com[OL].

      [8]Sahana K Bhosale.Architecture of a single sign on(SSO)for internet banking[C].IET International Conference on Wireless,Mobile and Multimedia Networks,2008:103-105.

      [9]Zhao Gang,Zheng Dong,Chen Kefei.Design of single sign-on[C].Proceedingof the IEEEInternationalConference on E-Commerce Technology for Dynamic E-Business,2004:253-256.

      [10]邱航,權(quán)勇.基于Kerberos的單點登錄系統(tǒng)研究與設(shè)計[J].計算機應(yīng)用,2003,23(7):142-144.

      [11]季旻,林中.單點登錄方案的研究與設(shè)計[J].計算機工程與設(shè)計,2009,30(12):2862-2864.

      猜你喜歡
      用戶名單點解密
      解密“熱脹冷縮”
      《護士進修雜志》投稿程序
      解密“一包三改”
      少先隊活動(2020年9期)2020-12-17 06:17:31
      歷元間載波相位差分的GPS/BDS精密單點測速算法
      炫詞解密
      超薄異型坯連鑄機非平衡單點澆鑄實踐與分析
      山東冶金(2019年5期)2019-11-16 09:09:10
      機智的快遞員
      故事會(2017年17期)2017-09-04 17:36:42
      數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點發(fā)射的效果比較
      16噸單點懸掛平衡軸的優(yōu)化設(shè)計
      解密“大調(diào)解”
      邵阳市| 集安市| 鹰潭市| 正镶白旗| 元阳县| 仁化县| 洛南县| 温宿县| 甘洛县| 永城市| 青浦区| 凤城市| 松原市| 丰城市| 丁青县| 绵竹市| 习水县| 大兴区| 金平| 西充县| 遂溪县| 加查县| 县级市| 潞城市| 松滋市| 庆云县| 华宁县| 景宁| 咸丰县| 汕尾市| 广昌县| 禄丰县| 无为县| 沅江市| 吴桥县| 浠水县| 安乡县| 庆阳市| 集安市| 化德县| 万州区|