999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AOP的Web應用程序的安全會話管理

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

葉志鵬,何成萬,張崢峰

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

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

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

1 會話管理脆弱性

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

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

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

2 系統實現

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

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

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

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

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

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

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

若用戶成功登錄,安全方面將通過上文切點中所捕獲的request對象getHeader()方法獲取遠程IP地址,并調用SessionMap類中get方法檢索已存儲的用戶有效IP。通過斷言的方式判斷IP地址一致性,若斷言結果為真,則該請求來自真實客戶端,應用程序將遵循正常業務邏輯流程;反之,安全方面將使用around通知調用HttpServletRe?sponse類中setStatus()方法返回403狀態碼,并使用proceed()函數改變原應用程序響應流程,從而終止該惡意連接請求。

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

圖2 編織后應用程序模型Fig.2 Application model after weaving

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

3 結 語

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

猜你喜歡
用戶方法
學習方法
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(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億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 精品夜恋影院亚洲欧洲| 欧美午夜在线视频| 国产精品开放后亚洲| 免费国产小视频在线观看| 伊人91在线| 国产亚洲成AⅤ人片在线观看| 在线免费a视频| 九月婷婷亚洲综合在线| 伊人久久大香线蕉影院| 亚洲人成人无码www| 国产午夜福利片在线观看 | 天天摸天天操免费播放小视频| 91精品啪在线观看国产91九色| 色综合中文字幕| 欧美亚洲香蕉| 精品99在线观看| 激情六月丁香婷婷| 毛片网站观看| 无码专区第一页| 国产欧美视频在线| 超清无码一区二区三区| 人妻精品全国免费视频| 国产成人精品视频一区二区电影| 欧美日韩国产在线播放| 狼友视频一区二区三区| 欧美在线视频a| 成人精品在线观看| 欧美午夜在线观看| 久久综合丝袜长腿丝袜| 欧美伦理一区| 久久精品国产亚洲麻豆| 亚洲中文无码h在线观看| 人妻丰满熟妇av五码区| 97在线视频免费观看| 亚洲人成日本在线观看| 日韩小视频在线播放| 毛片基地视频| 国产精品综合久久久| 中文字幕免费播放| 久久中文字幕2021精品| 亚洲伊人电影| 亚洲精选无码久久久| 欲色天天综合网| 一级全免费视频播放| 免费国产黄线在线观看| 色综合中文| 国产区精品高清在线观看| 国产永久免费视频m3u8| 2020精品极品国产色在线观看| 又黄又湿又爽的视频| 亚洲日韩精品无码专区| 午夜福利视频一区| 色老二精品视频在线观看| 午夜视频在线观看区二区| 毛片在线播放a| a级毛片网| 国产白浆在线观看| 日韩经典精品无码一区二区| a欧美在线| 99国产精品免费观看视频| 六月婷婷激情综合| 亚洲无码A视频在线| 国产清纯在线一区二区WWW| 亚洲成a人在线播放www| 国产自在线播放| 免费一级毛片在线观看| 免费欧美一级| 成人年鲁鲁在线观看视频| 丰满人妻一区二区三区视频| 欲色天天综合网| 热久久这里是精品6免费观看| 99在线视频精品| 91成人在线免费观看| 亚洲国产91人成在线| 国产国产人免费视频成18| 久久香蕉国产线看观看精品蕉| 国产中文一区a级毛片视频| 欧美一级黄片一区2区| 日韩欧美亚洲国产成人综合| 亚洲欧美国产视频| 波多野结衣的av一区二区三区| 国产你懂得|