国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Cookie和Session的身份認證機制的研究與實現(xiàn)

2014-04-15 01:31:32姜晗任翠池王磊
中國教育技術(shù)裝備 2014年4期

姜晗 任翠池 王磊

摘 要 Cookie是解決HTTP協(xié)議無狀態(tài)性的主要方法,是實現(xiàn)Web認證的主要手段。通過系統(tǒng)分析Cookie的工作原理和應用特點,指出該認證機制容易遭受安全的威脅,提出并實現(xiàn)一種安全性較高的基于Cookie和Session相結(jié)合的身份認證的機制。

關(guān)鍵詞 Cookie安全;Session;時間隨機碼;RSA公鑰加密算法

中圖分類號:TP393 文獻標識碼:B

文章編號:1671-489X(2014)04-0036-02

以Web技術(shù)為代表的Internet網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,促使人類社會正逐漸進入一個以Internet為中心的信息時代。應用層協(xié)議HTTP是Web應用的實現(xiàn)基礎(chǔ),而HTTP協(xié)議本身是一種無狀態(tài)的協(xié)議,不能記錄客戶端的狀態(tài)信息。然而Web應用系統(tǒng)中很多情況下都需要維持這種狀態(tài)信息,HTTP協(xié)議的這種無狀態(tài)、面向非連接的缺陷很不利于Web應用的發(fā)展。為了解決這個問題,由Netscape公司推出了一項HTTP的狀態(tài)管理機制——Cookie。Cookie的出現(xiàn)彌補了HTTP協(xié)議無狀態(tài)、面向無連接的缺陷,為應用系統(tǒng)記錄客戶端的狀態(tài)信息以及對訪問者進行身份認證等操作程序的開發(fā)帶來很大方便。然而,由于Cookie信息在存儲和傳送過程中都是以明文形式進行的,當Cookie被作為一項便利的工具在Web中大量使用時,其安全性不得不引起用戶的注意。

本文主要分析Cookie的工作原理及應用特點,找出運用Cookie存在的安全隱患。針對這些安全隱患,提出并實現(xiàn)基于Cookie和Session相結(jié)合的身份認證機制,并且利用RSA公鑰加密算法對Cookie信息進行加密,提高身份認證機制的安全性。

1 Cookie的工作原理及應用分析

根據(jù)Netscape公司的官方文檔中的定義,Cookie是指在HTTP協(xié)議下,服務(wù)器或腳本可以維護客戶端計算機上信息的一種方式[1]。Cookie是借助于HTTP報文頭Set-Cookie來傳送和交換信息的。Cookie定義了兩種HTTP的報文頭:Set-Cookie報文頭和Cookie報文頭。Set-Cookie報文頭包含于Web服務(wù)器的響應頭(Response Header)中,Cookie報文頭包含在瀏覽器客戶端請求頭(Request Header)中。當用戶通過Web瀏覽器首次打開某一站點時,Web服務(wù)器將客戶端的信息寫進HTTP響應報文的Set-Cookie中,與HTTP響應一起發(fā)往Web瀏覽器。當用戶通過Web瀏覽器發(fā)送后續(xù)的請求時,Web瀏覽器要根據(jù)Web站點的URL從客戶端取出Cookie,并添加到HTTP請求報文中發(fā)送給Web服務(wù)器。

2 Session機制的應用分析

Session在RFC2109中的定義是:允許客戶端和服務(wù)器端通過使用HTTP的請求與響應頭中的數(shù)據(jù)來交換狀態(tài)信息的技術(shù)。實際上Session就是客戶端和服務(wù)器通過Cookie建立的一種對應關(guān)系,這種對應關(guān)系在RFC2109(HTTP State Management Mechanism)中被定義為術(shù)語“Session”。 每一個Session都是有始有終的,在用戶登錄時建立,在用戶退出時刪除。

通過Cookie來建立Session是RFC2109中規(guī)定的標準方法。服務(wù)器在HTTP響應頭的Set-cookie中設(shè)置Cookie值,與HTTP響應報文一起發(fā)往客戶端;客戶端在后續(xù)的訪問中必須將Cookie值附加在HTTP請求報文的頭部一起發(fā)往服務(wù)器。在服務(wù)器設(shè)置Set-cookie的同時也將Cookie的內(nèi)容寫入Session。為了讓客戶端的每一個Session都有唯一的一個Cookie與它對應,在Cookie中選擇一個能夠區(qū)分每一個Cookie的值作為Session的標識。

這樣,Cookie和Session之間通過這個值就建立了對應關(guān)系,根據(jù)Cookie就可以找到相應的Session了。在用戶退出系統(tǒng)時,服務(wù)器會將與該用戶相對應的Session刪除。

3 基于Cookie和Session的身份認證機制的實現(xiàn)

根據(jù)上面介紹的基本原理,本文通過編寫cgi程序在Linux平臺上實現(xiàn)了基于Cookie和Session相結(jié)合的身份認證機制。本實現(xiàn)來源于網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)項目中的一個模塊,為了保證系統(tǒng)的安全性,用戶登錄系統(tǒng)后的所有操作都需要再次進行身份認證。為了方便用戶的使用,后續(xù)的身份認證不再需要用戶輸入用戶名和密碼,而是通過Cookie和Session自動進行身份認證。

基于Cookie和Session的身份認證的原理及過程分析 基于Cookie和Session的身份認證機制的實現(xiàn)原理是:比較Cookie中綁定的IP地址和系統(tǒng)自動生成的隨機碼與保存在Session中的IP地址和隨機碼是否一致,若一致則能夠通過身份認證,否則不能夠通過身份認證。該認證機制涉及兩類應用界面:一個是用于輸入用戶名、密碼的登錄界面index.html,它是基于用戶名、密碼的初始身份認證,是合法用戶進入系統(tǒng)的唯一通道;另一類是用戶成功進入系統(tǒng)后的操作界面,統(tǒng)記為operating.cgi,它是用戶完成各種操作的平臺。用戶憑借合法的用戶名、密碼進入系統(tǒng)后,看到的只是他理論上能夠操作的菜單,是否能夠操作取決于再次進行身份認證的成功與否。此次身份認證就是基于Cookie和Session的認證。

通過用戶名、密碼初始認證與后續(xù)的請求認證過程如圖1、圖2所示。

該身份認證過程描述及主要實現(xiàn)代碼如下。

1)用戶在登錄界面index.html上提交用戶名、密碼,發(fā)出HTTP請求。

2)服務(wù)器接收到HTTP請求,驗證用戶提交的信息是否合法。若合法,則服務(wù)器將用戶的用戶名、IP地址以及系統(tǒng)自動生成的隨機碼等信息經(jīng)過RSA算法加密后寫進HTTP的響應頭的Set-Cookie,同時將這些信息也存入服務(wù)器端的Session,然后返回HTTP響應;若不合法,則返回驗證失敗的信息。

3)客戶端收到服務(wù)器端的HTTP響應后,提取HTTP響應頭Set-Cookie中的信息并存儲在客戶端的Cookie中,等再次向該服務(wù)器發(fā)出后續(xù)請求時連同存儲在客戶端中的Cookie一起發(fā)往服務(wù)器。

4)服務(wù)器接收到客戶端的HTTP請求后,提取并使用RSA算法解密Cookie中的信息,然后將解密后的Cookie信息中的用戶IP地址和系統(tǒng)自動生成隨機碼與服務(wù)器端Session中的IP地址和隨機碼相比較,若一致則返回客戶端請求的HTTP響應,否則返回出錯信息。

基于Cookie和Session的身份認證機制的安全性分析 通過上述的實現(xiàn)過程可知,用戶只有通過合法的用戶名、密碼的初始認證后,服務(wù)器才能為該用戶生成相應的Cookie和Session信息。因此,即使攻擊者通過惡意程序等手段截獲了Cookie信息,假冒合法用戶的身份進行攻擊也是困難重重。首先,在服務(wù)器端與客戶端之間傳送的Cookie信息是經(jīng)過RSA加密處理之后的,根據(jù)RSA加密算法的特點,攻擊者想要破解密文是相當困難的;其次,即使攻擊者破解了Cookie密文,由于Cookie中含有系統(tǒng)自動生成的隨機碼,只要Cookie中的隨機碼和Session中的隨機碼不一致,攻擊者依舊不能訪問系統(tǒng)資源。

因此,在應用系統(tǒng)中使用基于Cookie和Session相結(jié)合的身份認證機制,增加了攻擊者利用Cookie的捕獲/重放、Session定置以及跨站請求偽造等手段進行攻擊的難度,在一定程度上提高了系統(tǒng)的安全性。

4 結(jié)束語

Cookie是實現(xiàn)身份認證的主要手段。鑒于Cookie機制的不安全性,本文提出并實現(xiàn)了使用Cookie和Session相結(jié)合的方法,并使用RSA加密算法對Cookie進行加密的身份認證機制,該機制提高了利用Cookie進行身份認證的安全性,具有一定實用性。

參考文獻

[1]李馥娟.基于Cookies的Web應用分析及其安全研究[J].網(wǎng)絡(luò)安全技術(shù)與應用,2009(8):88-91.

[2]胡忠望,劉衛(wèi)東.Cookie應用與個人信息安全研究[J].計算機應用于軟件,2007,24(3):50-53.

[3]劉嘯.基于Cookie欺騙的Session滲透入侵分析及其安全模型研究[D].杭州:浙江大學:10-12.

阿鲁科尔沁旗| 金溪县| 邢台县| 托克托县| 霍山县| 元朗区| 新密市| 山阴县| 新宁县| 嘉定区| 鄯善县| 通化市| 绿春县| 军事| 怀远县| 荥经县| 温宿县| 土默特左旗| 乐山市| 蒲城县| 建湖县| 葫芦岛市| 湖州市| 昌图县| 营口市| 通辽市| 鄂伦春自治旗| 宁化县| 阜平县| 民和| 柳州市| 丰城市| 张家川| 虞城县| 邯郸市| 郓城县| 江华| 静安区| 响水县| 临海市| 东明县|