亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于AOP的Web應(yīng)用程序的安全會話管理

        2018-10-24 09:10:48葉志鵬何成萬張崢峰
        武漢工程大學學報 2018年5期
        關(guān)鍵詞:用戶方法

        葉志鵬,何成萬,張崢峰

        武漢工程大學計算機科學與工程學院,湖北 武漢 430205

        伴隨“互聯(lián)網(wǎng)+”時代的到來,互聯(lián)網(wǎng)、網(wǎng)站與網(wǎng)絡(luò)應(yīng)用程序受歡迎程度日漸增高,在人們的日常生活中扮演了越來越重要的角色。Web應(yīng)用程序[1]涉獵領(lǐng)域廣泛,如商業(yè)合同、財務(wù)通知、醫(yī)療信息、教育或個人目的。身份驗證是任何應(yīng)用程序中關(guān)鍵及重要組成部分,但即使是可靠的身份驗證機制也會被錯誤的管理功能所破壞,包括密碼重置、忘記密碼、記住密碼、帳戶更新和其他相關(guān)功能。Web應(yīng)用程序中失效的身份驗證和會話管理包括處理用戶認證和管理活動會話的所有特性。

        模塊化編程[2]和面向方面編程是軟件工程中用于幫助應(yīng)用程序設(shè)計的兩種方法[3],其中面向方面編程(Aspect Oriented Programming,AOP)[4]作為一種改進軟件系統(tǒng)中關(guān)注點分離問題的方法在1997年首次提出,AOP提供了特定語言機制,能夠在不改變業(yè)務(wù)邏輯的情況下,通過在編譯或運行期間向復雜軟件系統(tǒng)增加橫切關(guān)注點(crosscut?ting)功能,使得以模塊化方式解決諸如代碼分散與纏繞之類的問題成為可能。安全性問題通常分散于各業(yè)務(wù)邏輯模塊,是Web應(yīng)用程序中重要的橫切關(guān)注點。面向方面編程語言如AspectJ,提供了新的機制和可能性,將系統(tǒng)分解為模塊并將模塊重新組合至系統(tǒng),從而充分利用了新型軟件開發(fā)方法的優(yōu)勢,使得軟件系統(tǒng)中安全問題得以解決。文獻[5]通過實驗驗證了運行時改變安全策略的優(yōu)點。本文基于AOP實現(xiàn)了Web應(yīng)用程序安全會話機制的應(yīng)用程序接口(API),并采用AspectJ作為安全方面的實現(xiàn)語言用于開發(fā)原型系統(tǒng)以驗證實驗結(jié)果。在無須修改程序業(yè)務(wù)邏輯代碼前提下,通過提供安全方面API指導Web應(yīng)用程序開發(fā)人員保護其新的或遺產(chǎn)應(yīng)用系統(tǒng),使其免受來自針對失效身份驗證與會話管理[6]的攻擊。

        1 會話管理脆弱性

        Web應(yīng)用程序體系結(jié)構(gòu)[7]中主要包含三大部分:運行Web應(yīng)用程序的服務(wù)器、后端數(shù)據(jù)庫服務(wù)器及客戶端應(yīng)用程序。用戶通常使用瀏覽器在Web應(yīng)用服務(wù)器中獲取信息,Web應(yīng)用程序服務(wù)器充當中介負責客戶端與數(shù)據(jù)庫服務(wù)器間交互。HTTP[5]作為一種無狀態(tài)協(xié)議,這意味著其沒有為Web服務(wù)器提供一種維護用戶后續(xù)請求狀態(tài)的完整方式。為解決該問題,Web服務(wù)器或應(yīng)用程序自身通過實現(xiàn)各類會話管理技術(shù),從而為用戶提供友好的環(huán)境。其基本思想是:服務(wù)器在終端用戶使用瀏覽器第一次發(fā)起訪問請求(或認證)時由偽隨機數(shù)函數(shù)生成唯一的會話標識符(session ID),并在服務(wù)器端使用包括本地內(nèi)存、平面文件(flat files)和數(shù)據(jù)庫等多項技術(shù)存儲會話ID和與其關(guān)聯(lián)的會話數(shù)據(jù)(如用戶名、賬戶ID等)。通過Cookie和Session機制,允許客戶端與服務(wù)器間通過超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)報文來交換狀態(tài)信息,瀏覽器將確保后續(xù)訪問請求攜帶特定會話ID字段。因此,會話ID成為了服務(wù)器標識用戶會話信息并維護會話數(shù)據(jù)的用戶身份標記。

        目前Web應(yīng)用程序中有三種廣泛采用的維持會話方式:URL 參數(shù),隱藏表單字段和 Cookie[6]。其中Cookie包含五個可選屬性字段:domain和path指定Cookie范圍;expires指定過期時間;se?cure指定只能在HTTPS加密信道上傳輸;HTTPon?ly防止客戶端腳本讀取Cookie值。Cookie自身有兩種非常不尋常的行為:其一,Cookie的存儲和讀取間存在嚴重不對稱性,Cookie被設(shè)置和存儲為name/domain/path與屬性值間的映射,但是僅有name-value鍵值對被傳遞給JavaScript和Web服務(wù)器,這種不對稱性允許具有相同名稱但不同域和路徑范圍的Cookie被寫入瀏覽器,而隨后的讀取器可以一并讀取所有名稱相同的Cookie,卻無法做出有效區(qū)分,因為在讀取過程中不存在諸如路徑之類的其他屬性;其二,開發(fā)者可以為路徑屬性指定任意值,并且不受瀏覽器URL上下文的任何限制。雖然上述三種維持會話機制都有其缺陷,但Cookie已被證明為是其中最方便且安全性較高的一種方式。從安全角度出發(fā),大多數(shù)針對Cook?ie會話管理機制的已知攻擊,也可以用于針對URL或隱藏表單字段的方案。而反之不行,這使得Web應(yīng)用程序廣泛采用Cookie作為瀏覽器端協(xié)助狀態(tài)管理的機制,并成為安全的最佳選擇。但在目前常見的Web應(yīng)用系統(tǒng)中會話ID不僅作為身份標識,同時也是身份驗證器。這意味著登錄時,用戶將根據(jù)其憑據(jù)(例如,用戶名/密碼或數(shù)字證書)進行身份驗證過程,服務(wù)器端分配的會話ID將作為有效訪問會話的臨時靜態(tài)密碼,這對于攻擊者而言是極具吸引力的目標。

        在復雜網(wǎng)絡(luò)空間環(huán)境下,任何類似于HTTP這類通過在通信雙方間傳遞密鑰方式來維護狀態(tài)的協(xié)議[8]通常都存在脆弱性,很容易遭受中間人攻擊(Man-In-The-Middle,MITM)[9]。不懷好意的第三方攻擊者通常在不引起用戶任何懷疑的前提下攔截明文傳輸信道,并模擬所在信道中任意節(jié)點向其余節(jié)點注入偽造信息。成功竊取有效用戶會話ID的攻擊者無需得知合法用戶名和密碼,即可冒充任意用戶身份發(fā)送偽造請求,進而直接進入該用戶會話中以獲取特權(quán)信息或增刪改查數(shù)據(jù),若竊取的是持久型會話,那么這類偽裝則會持續(xù)相當長一段時間。這類通過竊取有效計算機會話(有時也稱為會話密鑰)以獲得對計算機系統(tǒng)中數(shù)據(jù)或服務(wù)的未授權(quán)訪問方式稱為會話劫持(Ses?sion hijacking)[7,10]。目前針對 Web 會話安全性問題,主要集中在阻止攻擊者獲?。〝r截、預測和暴力破解)由目標服務(wù)器發(fā)送至用戶瀏覽器的會話ID。然而上述三種方法忽略了一種可能性:即攻擊者可能向用戶瀏覽器“發(fā)布”會話ID,從而迫使瀏覽器登錄至攻擊者會話中。文獻[11]將這種類型稱為“會話固定”攻擊,因為用戶的會話ID在登錄前就已被攻擊者預先固定,而不是由服務(wù)器端偽隨機數(shù)函數(shù)根據(jù)訪問請求動態(tài)生成。綜上所述,這類針對終端用戶憑據(jù)的安全問題統(tǒng)稱為失效的身份驗證與會話管理[12-15]。

        2 系統(tǒng)實現(xiàn)

        目前,絕大部分Web應(yīng)用程序系統(tǒng)通常使用憑據(jù)對用戶進行身份驗證,并授權(quán)合法用戶通過Web頁面訪問符合其身份的數(shù)據(jù)。當用戶登錄過程中所提交的用戶名和密碼信息與后端數(shù)據(jù)庫相匹配時,則成功完成身份驗證過程,Web服務(wù)器將通過分配會話ID方式以標識不同用戶身份。在會話生命周期過程中,Web服務(wù)器將通過檢查HTTP請求頭字段中攜帶的會話ID信息,來辨識發(fā)送連接請求的用戶,并利用可用的請求數(shù)據(jù)進行適當?shù)捻憫?yīng)。但這種弱類型驗證方式無法有效應(yīng)對當前復雜網(wǎng)絡(luò)環(huán)境中各類攻擊行為,終端用戶的信息安全無法得到有效保障。

        圖1 安全方面編織圖Fig.1 Security aspect weave diagram

        針對上述問題本節(jié)提出一種應(yīng)對失效身份驗證與會話管理的通用模型如圖1所示,其中安全會話管理主要由SessionMap類、切點(pointcut)及通知(advice)三部分構(gòu)成,其具體實現(xiàn)過程依賴于應(yīng)用程序編程接口的支持。SessionMap類采用哈希表數(shù)據(jù)結(jié)構(gòu),以鍵值對形式存儲會話ID(鍵)與遠程IP地址(值)間的映射關(guān)系,并定義了三類哈希表操作方法:

        安全方面應(yīng)用程序接口包括創(chuàng)建SessionMap、GET請求切點、POST請求切點及移除SessionMap四部分,安全方面在捕獲Servlet應(yīng)用程序成功執(zhí)行init()方法調(diào)用后將首先創(chuàng)建SessionMap類的實例對象用于記錄用戶常用登陸IP信息。如下安全方面代碼中,針對兩類HTTP請求方式分別定義了Get及Post切點方法,通過捕獲HttpServletRe?quest對象中g(shù)etHeader()方法分別獲取用于記錄客戶端首次連接請求及完成表單驗證過程的遠程用戶IP地址。

        針對不同Web應(yīng)用程序的會話管理機制而言,需選取恰當?shù)那悬c方法,并構(gòu)建封裝安全檢測規(guī)范的通知,經(jīng)AOP編織器在與切點相匹配的連接點處織入通知代碼,引入會話映射(Session map)管理機制的Web應(yīng)用程序認證模型如圖2所示。

        HttpSession對象在用戶首次訪問網(wǎng)站時自動創(chuàng)建,切點可通過匹配HttpServletRequest的get?Session()方法調(diào)用獲取該對象。原Web應(yīng)用程序采用基于賬戶密碼的用戶憑據(jù)信息對用戶身份進行驗證:

        若通過表單提交的用戶名與密碼和后端數(shù)據(jù)庫中存儲信息不一致,則表明登錄失敗是一次無效會話請求。

        若用戶成功登錄,安全方面將通過上文切點中所捕獲的request對象getHeader()方法獲取遠程IP地址,并調(diào)用SessionMap類中g(shù)et方法檢索已存儲的用戶有效IP。通過斷言的方式判斷IP地址一致性,若斷言結(jié)果為真,則該請求來自真實客戶端,應(yīng)用程序?qū)⒆裱I(yè)務(wù)邏輯流程;反之,安全方面將使用around通知調(diào)用HttpServletRe?sponse類中setStatus()方法返回403狀態(tài)碼,并使用proceed()函數(shù)改變原應(yīng)用程序響應(yīng)流程,從而終止該惡意連接請求。

        用戶完成操作后在前端界面中點擊退出按鈕,安全方面使用后置通知捕獲HttpSession類中invalidate()方法,該方法強制會話過期,并清空其保存的對象。若該方法成功執(zhí)行,則調(diào)用Session?Map類中remove()方法,移除此次連接點上綁定的會話信息。

        圖2 編織后應(yīng)用程序模型Fig.2 Application model after weaving

        綜上所述,本文完成了如下工作:通過關(guān)聯(lián)遠程IP地址與特定會話ID的方式對Web應(yīng)用程序執(zhí)行安全檢查,防止破壞身份驗證與會話管理機制;通過增加用戶請求的信任條件以識別真實用戶,從而確保響應(yīng)數(shù)據(jù)不被非法竊?。划敺?wù)器接收來自被盜會話ID用戶訪問請求時,能有效禁止該請求檢索數(shù)據(jù)或執(zhí)行任意操作,并且能夠不影響真正用戶的訪問請求;使用AOP方法只需在集中化的方面通知及切點上進行迭代過程,這有助于提升安全維護效率;安全方面API能夠在不需修改當前應(yīng)用程序業(yè)務(wù)邏輯代碼前提下,提升遺產(chǎn)Web應(yīng)用程序會話管理安全性。

        3 結(jié) 語

        通過安全方面API實現(xiàn)了IP地址與用戶身份間的綁定功能,既滿足了合法用戶的正常訪問請求,同時又防止攻擊者通過會話劫持及會話固定兩種方式對用戶憑據(jù)的竊取,一定程度上解決了Web應(yīng)用程序中失效的身份驗證與會話管理問題。后續(xù)工作中需要研究高效的用戶身份鑒別算法,進一步完善基于AOP的Web應(yīng)用程序安全會話機制,進而提升依賴Cookie及Session的會話管理機制安全性。

        猜你喜歡
        用戶方法
        學習方法
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        可能是方法不對
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        捕魚
        Camera360:拍出5億用戶
        精品国产亚洲av麻豆尤物| 777精品出轨人妻国产| 亚洲av一二三四区四色婷婷| 国产精品熟女视频一区二区| 国产乱人伦偷精品视频| 日韩欧美第一页| 久久久久久久久高潮无码| 中文字幕人妻乱码在线| 自拍成人免费在线视频| 在厨房拨开内裤进入毛片| 国产精品嫩草99av在线| 久热综合在线亚洲精品| 国产精品亚洲欧美天海翼| 国产日韩久久久久69影院| 亚洲一区有码在线观看| 亚洲av熟女中文字幕| 亚洲av无码乱码精品国产| 国产尤物av尤物在线观看 | 亚洲成av人片在www鸭子| 日本午夜精品一区二区三区电影| 国外亚洲成av人片在线观看| 激情五月婷婷综合| 欧美性受xxxx狂喷水| 国产自拍视频一区在线| 丰满女人猛烈进入视频免费网站 | 中文字幕亚洲欧美日韩2019| 国产91精选在线观看麻豆| 久久久调教亚洲| 暴露的熟女好爽好爽好爽| 丰满女人猛烈进入视频免费网站 | 男人靠女人免费视频网站| 日韩毛片在线| 亚洲国产剧情一区在线观看| 成人影院视频在线播放| 97人妻人人揉人人躁九色 | 亚洲人成人77777网站| 啪啪视频一区二区三区入囗| 黑人一区二区三区啪啪网站| 日韩人妻久久中文字幕| 中文字幕精品一区二区精品| a级毛片内射免费视频|