• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于跨域單點(diǎn)登錄令牌的設(shè)計(jì)與實(shí)現(xiàn)

    2014-04-29 00:00:00李鑫李俊

    摘 要:本文研究了跨域條件下多個(gè)Web應(yīng)用系統(tǒng)之間單點(diǎn)登錄令牌的設(shè)計(jì),從安全應(yīng)用的角度設(shè)計(jì)了令牌內(nèi)容的構(gòu)成。利用已有的安全加/解密算法,實(shí)現(xiàn)了跨域跨系統(tǒng)間令牌的生成和解析,通過實(shí)際集成應(yīng)用檢驗(yàn)了登錄令牌的可用性和便利性。

    關(guān)鍵詞:單點(diǎn)登錄;令牌;算法;跨域

    中圖分類號:TP393.08

    單點(diǎn)登錄(Single-Sign-On,SSO),是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng),SSO是解決異域信息管理系統(tǒng)之間系統(tǒng)集成的一種快捷、有效的應(yīng)用手段,使數(shù)據(jù)整合和權(quán)限管理更為便捷,能夠較好的改善用戶使用應(yīng)用系統(tǒng)的體驗(yàn)。

    目前已實(shí)現(xiàn)單點(diǎn)登錄的典型模型有經(jīng)紀(jì)人模型、代理模型、代理和經(jīng)紀(jì)人模型、網(wǎng)管模型和令牌模型[1][11]等,比較成熟的解決方案有微軟的Passport、IBM的WebSphere Portal Server、CAS,這些產(chǎn)品雖能較好的實(shí)現(xiàn)單點(diǎn)登錄,但存在系統(tǒng)復(fù)雜、使用成本和學(xué)習(xí)曲線高、不能滿足小型應(yīng)用系統(tǒng)集成等缺點(diǎn)[1]。

    文獻(xiàn)[2]針對明文Cookie安全性不強(qiáng)的特點(diǎn),提出了一種基于冗余技術(shù)的跨域Cookie共享解決方案,使用固定密鑰對Cookie進(jìn)行加密,能夠提高Cookie的應(yīng)用安全;文獻(xiàn)[3][4]提出了Web環(huán)境下基于跨域Cookie共享的解決方案,但由于Cookie保存在客戶端且是明文,容易被篡改;文獻(xiàn)[5]提出一種基于URL重定向的解決方案,將信息參數(shù)以明文附加在URL的后面,實(shí)現(xiàn)不同應(yīng)用程序之間的信息共享。

    本文針對Cookie存在的安全性[6]和跨域使用的問題,著重從安全應(yīng)用的角度對SSO令牌的設(shè)計(jì)展開深入研究,探索一種安全的、可擴(kuò)展的、易于集成的、能跨域的Cookie[7]-[10],具備應(yīng)用快速、成本低廉并應(yīng)用安全等特點(diǎn)。通過借鑒文獻(xiàn)[11]中介紹的單點(diǎn)登錄模型,結(jié)合本文的應(yīng)用,設(shè)計(jì)并實(shí)現(xiàn)了一種跨域的單點(diǎn)登錄令牌。

    1 系統(tǒng)應(yīng)用結(jié)構(gòu)及構(gòu)成

    本文的應(yīng)用環(huán)境中,有兩個(gè)Web應(yīng)用系統(tǒng),一個(gè)是信息管理系統(tǒng),此系統(tǒng)為主系統(tǒng),.NET開發(fā)(應(yīng)用環(huán)境:.NET Framework 1.1,SQLServer 2000,記為系統(tǒng)A);另一個(gè)是內(nèi)容管理系統(tǒng),JAVA開發(fā)(應(yīng)用環(huán)境:JDK1.6,Tomcat6.0,MySQL 5.6,記為系統(tǒng)B)。系統(tǒng)B從屬于系統(tǒng)A,用戶從系統(tǒng)A登錄成功后,可從系統(tǒng)A跳轉(zhuǎn)到系統(tǒng)B而無需在系統(tǒng)B中再次登錄。系統(tǒng)A按照一個(gè)規(guī)則生成令牌,并將此令牌通過URL重定向到系統(tǒng)B,系統(tǒng)B解析接收到令牌并完成校驗(yàn),準(zhǔn)確無誤后登錄到系統(tǒng)B。系統(tǒng)應(yīng)用結(jié)構(gòu)如圖1。

    2 令牌內(nèi)容的構(gòu)成

    令牌內(nèi)容的第一、二、三、五部分內(nèi)容長度是固定的,第四部分內(nèi)容可根據(jù)應(yīng)用的實(shí)際需要進(jìn)行擴(kuò)充,除了存儲用戶信息之外,還可以存儲其他與應(yīng)用相關(guān)的信息,具有較強(qiáng)的可擴(kuò)充性,避免了因固定長度帶來令牌可擴(kuò)充性的限制。

    3 令牌內(nèi)容的加密和解密

    為了保證令牌在傳遞過程中的安全,必須對原始令牌的內(nèi)容進(jìn)行加密,本文對令牌中的校驗(yàn)信息使用不可逆加密算法,防止校驗(yàn)令牌在傳輸過程中被截取并篡改;用戶信息使用對稱加密算法,以便其他系統(tǒng)的解密。目前采用了AES、SHA-1、Base64等三種加/解密算法,通過這三種加/解密算法保證數(shù)據(jù)的安全。

    AES加密算法用于加密用戶信息及生成的令牌;SHA-1算法用于計(jì)算用戶密碼和令牌的校驗(yàn)和;Base64將AES加密后的令牌編/解碼。

    3.1 加密流程

    令牌加密流程首先按令牌內(nèi)容結(jié)構(gòu)填充內(nèi)容,計(jì)算內(nèi)容的校驗(yàn)和后填充到校驗(yàn)和內(nèi)容區(qū)。加密流程圖如圖2。

    (1)將版本號、當(dāng)前用戶登錄時(shí)間、會話失效時(shí)間和用戶登錄信息按照令牌各部分所屬位置進(jìn)行填充。(2)系統(tǒng)A中的用戶密碼在注冊時(shí)已經(jīng)將用戶登錄密碼使用MD5加密,就不再使用AES加密算法對用戶登錄密碼加密,直接使用SHA-1計(jì)算出用戶登錄密碼的校驗(yàn)和(記為D1),填充到令牌數(shù)組的最后20位里。(3)由于直接將密碼的校驗(yàn)和發(fā)送給客戶端將帶來安全性的問題,本應(yīng)用中將使用SHA-1再次計(jì)算整個(gè)令牌數(shù)組的校驗(yàn)和(記為D2),得到一個(gè)新的20位數(shù)組,并填充到原令牌數(shù)組里的最后20位里,用校驗(yàn)和D2驗(yàn)證令牌在傳遞過程中是否被篡改,如同電子指紋的作用。(4)使用AES加密算法對令牌數(shù)組進(jìn)行加密,再使用Base64算法進(jìn)行編碼得到令牌,在系統(tǒng)之間傳輸?shù)募词谴肆钆啤?/p>

    3.2 解密流程

    令牌解密流程較加密流程復(fù)雜一些,過程與令牌加密流程相反,增加了令牌內(nèi)容校驗(yàn)和與接收的校驗(yàn)和比較,以比較結(jié)果作為令牌是否被篡改的依據(jù)。解密流程圖如圖3。

    (1)使用Base64算法解碼,再使用AES解密算法對解碼后的數(shù)組進(jìn)行解密。(2)取出解密令牌數(shù)組的最后20位(記為D1)。同時(shí)獲取系統(tǒng)B中存儲的經(jīng)MD5加密的用戶密碼,使用SHA-1計(jì)算校驗(yàn)和,填充到解密令牌數(shù)組的最后20位里,再次使用SHA-1計(jì)算整個(gè)令牌數(shù)組的校驗(yàn)和(記為D2)。(3)比較D1和D2是否一致,如果不一致則說明令牌在傳遞過程中被篡改,跳轉(zhuǎn)到系統(tǒng)B的登錄頁面重新登錄;如果一致則完成后續(xù)的登錄校驗(yàn),跳轉(zhuǎn)到系統(tǒng)B的應(yīng)用界面。

    4 令牌的集成應(yīng)用

    用戶首先從系統(tǒng)A登錄,后臺驗(yàn)證無誤后按照加密流程生成當(dāng)前用戶的SSO令牌。用戶從系統(tǒng)A切換到系統(tǒng)B時(shí),提交到系統(tǒng)B的登錄模塊中的信息中包含由系統(tǒng)A生成的SSO令牌,系統(tǒng)B按照解密流程對SSO令牌解密,驗(yàn)證無誤后由系統(tǒng)B完成登錄并跳轉(zhuǎn)到系統(tǒng)B的應(yīng)用界面。

    5 結(jié)束語

    本文提出了一種基于跨域單點(diǎn)登錄令牌的設(shè)計(jì)與實(shí)現(xiàn)方案,脫離了目前較為成熟單點(diǎn)登錄產(chǎn)品的束縛,易于實(shí)現(xiàn)系統(tǒng)之間跨平臺、跨域的快速集成,從而減少和降低用戶使用各應(yīng)用系統(tǒng)的壓力,提高開發(fā)和管理效率,降低系統(tǒng)運(yùn)行成本。通過該解決方案可快速實(shí)現(xiàn)多個(gè)Web應(yīng)用系統(tǒng)之間單點(diǎn)登錄的集成應(yīng)用。

    目前,該解決方案已成功運(yùn)用到某科技型中小企業(yè)認(rèn)定系統(tǒng)中,用戶首先登錄到認(rèn)定系統(tǒng),如果用戶需要發(fā)布本企業(yè)的動(dòng)態(tài)信息,通過此方法可從認(rèn)定系統(tǒng)中安全跳轉(zhuǎn)到附屬于認(rèn)定系統(tǒng)的內(nèi)容管理系統(tǒng),從而快速的管理本企業(yè)發(fā)布的信息。

    該解決方案作為一個(gè)拋磚引玉的解決方法,可簡單快速地實(shí)現(xiàn)應(yīng)用系統(tǒng)之間的單向單點(diǎn)登錄。要實(shí)現(xiàn)應(yīng)用系統(tǒng)之間的雙向單點(diǎn)登錄,可通過建立統(tǒng)一權(quán)限管理系統(tǒng),由各個(gè)應(yīng)用系統(tǒng)提供統(tǒng)一用戶服務(wù)接口供統(tǒng)一權(quán)限管理系統(tǒng)調(diào)用完成應(yīng)用系統(tǒng)之間的用戶映射,亦可在應(yīng)用系統(tǒng)之間實(shí)現(xiàn)雙向單點(diǎn)登錄。

    參考文獻(xiàn):

    [1]張挺,耿繼.Web環(huán)境下的SSO實(shí)現(xiàn)模式的研究[J].計(jì)算機(jī)仿真,2005(08):128-131.

    [2]馮偉華,劉亞麗.基于Cookie的統(tǒng)一認(rèn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010(23):4971-4974.

    [3]廖禮萍,鮑有文.基于跨域Cookie的單點(diǎn)登錄系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].北京聯(lián)合大學(xué)學(xué)報(bào)(自然科學(xué)版),2008(04):30-33.

    [4]文德民,門愛東,文愛平.基于Cookie的跨域單點(diǎn)登錄系統(tǒng)的設(shè)計(jì)[J].電腦知識與技術(shù),2009(33):9146-9148.

    [5]牛曉菲.基于SOA的跨域單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2009:26-29.

    [6]胡忠望,劉衛(wèi)東.Cookie應(yīng)用與個(gè)人信息安全研究[J].計(jì)算機(jī)應(yīng)用與軟件,2007(03):5O-53.

    [7]付永貴,馬尚才.一種改進(jìn)的對稱密鑰動(dòng)態(tài)生成算法及應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011(06):170.

    [8]王國偉,薛曼君.基于可變Cookie的跨域單點(diǎn)登錄[J].計(jì)算機(jī)工程與設(shè)計(jì),2012(08):2931-2935.

    [9]于光許.基于Cookie技術(shù)的統(tǒng)一認(rèn)證方案的研究[J].焦作大學(xué)學(xué)報(bào),2012(03):77-78.

    [10]于洪淳,曹作良.基于Cookie的Web服務(wù)統(tǒng)一認(rèn)證系統(tǒng)[D].天津理工大學(xué),2008(04):42-44.

    [11]孟凡榮,程潔,史會余.單點(diǎn)登錄模型的研究與應(yīng)用[J].微計(jì)算機(jī)信息,2008(21):164-165,181.

    作者簡介:李鑫(1979.09-),男,云南景洪人,副主任,工程師,工程碩士,研究方向:計(jì)算機(jī)技術(shù);李?。?981.10-),男,云南昆明人,工程師,工學(xué)學(xué)士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)管理與軟件開發(fā)。

    作者單位:云南省科學(xué)技術(shù)情報(bào)研究院,昆明 650051

    呼图壁县| 普兰县| 广河县| 黔西县| 平遥县| 扎鲁特旗| 石首市| 内乡县| 白城市| 东莞市| 富蕴县| 阿尔山市| 新沂市| 雷山县| 师宗县| 桃园市| 永靖县| 上林县| 巍山| 大关县| 安仁县| 体育| 弥勒县| 罗源县| 东丰县| 白河县| 色达县| 长沙市| 丁青县| 东台市| 望都县| 牟定县| 乌拉特前旗| 固安县| 黔西县| 大城县| 黑水县| 五寨县| 永寿县| 樟树市| 兰州市|