摘要:網(wǎng)頁服務(wù)是萬維網(wǎng)上至為重要的應(yīng)用之一。在WEB服務(wù)器傳輸通道上,HTTP協(xié)議和HTTPS協(xié)議都存在著某種程度的安全隱患,可通過梯次解決的辦法,用https提升http的安全,再加上JS加密,使用ACTIVEX加密等,進一步提升數(shù)據(jù)傳輸?shù)陌踩?/p>
關(guān)鍵詞:WEB服務(wù);HTTP/HTTPS;數(shù)據(jù)傳輸;通道;安全性
中圖分類號:TP393.08 文獻標識碼:A 文章編號:1007-9599 (2012) 17-0000-02
網(wǎng)頁服務(wù)是萬維網(wǎng)上至為重要的應(yīng)用之一。在網(wǎng)頁設(shè)計中,http協(xié)議作為網(wǎng)頁服務(wù)數(shù)據(jù)的傳遞通道,也成為網(wǎng)上最為重要的最常見的應(yīng)用協(xié)議。由于網(wǎng)絡(luò)的廣泛普及和應(yīng)用,有關(guān)的安全問題也越來越突出,在網(wǎng)絡(luò)上,WEB站點經(jīng)常成為黑客攻擊的主要對象,這是由于網(wǎng)頁開放性特征和易用型特征所導(dǎo)致的難以避免的結(jié)果。一些攻擊者千方百計地進行表單篡改、命令插入等,王冶安全漏洞很多。研究報告指出,網(wǎng)頁應(yīng)用已經(jīng)成為網(wǎng)絡(luò)技術(shù)最大的安全焦點之一。因此,WEB應(yīng)用的安全問題,已經(jīng)成為網(wǎng)絡(luò)技術(shù)安全的核心問題所在。當今社會,網(wǎng)絡(luò)技術(shù)飛速發(fā)展,同時,隨著網(wǎng)絡(luò)技術(shù)的普及,網(wǎng)絡(luò)電子商務(wù)、網(wǎng)絡(luò)銀行等方興未艾,這些應(yīng)用大幅度地拓展了網(wǎng)頁應(yīng)用的領(lǐng)域,因此,WEB服務(wù)的安全問題,也就更為突出。與此相關(guān),作為傳輸通道的http協(xié)議,它的安全性要求,也就更為嚴格。我們設(shè)想,通過系統(tǒng)分析網(wǎng)頁服務(wù)的安全問題,在介紹了HTTP協(xié)議的模型的基礎(chǔ)上,針對HTTP協(xié)議存在的缺陷提出了改進HTTP協(xié)議的基本措施,為如何提高基于WEB服務(wù)數(shù)據(jù)傳輸通道的安全性提供可靠的理論依據(jù)。
1 WEB服務(wù)器存在的安全問題
1.1 服務(wù)器遭受入侵。網(wǎng)絡(luò)黑客或其他攻擊者往往直接通過網(wǎng)頁漏洞或者一些人為的疏忽,進行攻擊,比如遠程溢出,SQL INJECTION,以及基于社會工程學(xué)等的手段,不擇手段地入侵到WEB服務(wù)器內(nèi)部。入侵的結(jié)果是WEB服務(wù)器不再安全,并孿生出許多問題,這種入侵性的攻擊危害性最大,突出在于入侵者取得了大量用戶的保密信息。
1.2 加密不具安全性。在網(wǎng)絡(luò)上,很多WEB應(yīng)用程序愛將敏感的保密性的信息,存儲到網(wǎng)絡(luò)數(shù)據(jù)庫或者文件系統(tǒng)中,然后借助一般的加密技術(shù)來予以保護,諸不知這樣的保密,安全性并不高。網(wǎng)絡(luò)上常見的存儲操作大體有如:關(guān)鍵數(shù)據(jù)不加密,證書、密碼等存儲不安全,秘密信息放在內(nèi)存中。此外,還有算法選擇不好,加密過程有疏漏等。甚至一些信用卡密碼等,也放在內(nèi)存中。
1.3 截取傳輸信息。網(wǎng)絡(luò)攻擊者常常在客戶終端的支路、服務(wù)器的旁路等,通過一些特殊手段,如DNS SPOOF或者ARP SPOOF等,配合SNIFF過程,在中途截取或者篡秘密改客戶端和服務(wù)器端之間的通信。這種攻擊危險性也很大,如果讓他們截取倒管理員登陸情況,就會私自登陸,進入服務(wù)器,直接入侵服務(wù)器,其后果相當嚴重。
1.4 針對客戶端的攻擊。一些黑客直接攻擊客戶端,采取的做法是,借助XSS漏洞來引起。在服務(wù)器把用戶輸入的數(shù)據(jù)沒有做出嚴格的html標簽過濾,就把它們直接保存到數(shù)據(jù)庫,然后直接回顯,這最容易熬出長久的XSS攻擊。其結(jié)果也很嚴重,有可能直接導(dǎo)致客戶端被重定向到惡意的網(wǎng)站去,或者被釣魚,或者被植入木馬等。
1.5 不接受服務(wù)。在網(wǎng)頁應(yīng)用中,一般比較難于分辨哪些是攻擊行為,哪些是普通的訪問,這主要是IP地址是共用的,這IP地址無法成為請求來源的判斷的依據(jù),也就是說,服務(wù)器無法判斷出一個http的請求是從哪里來的,是善意的還是惡意的,也就無法過濾惡意訪問行為。這樣,服務(wù)器也就容易受到拒絕服務(wù)的攻擊。這種服務(wù)器拒絕服務(wù)型的攻擊,讓W(xué)EB應(yīng)用無法分辨哪是攻擊行為,哪是多個用戶的訪問。攻擊者通過大量的發(fā)送文字,或者直接發(fā)送嚴重消耗服務(wù)端的CPU資源的請求,如服務(wù)請求等,使得服務(wù)器力不勝支,最后服務(wù)端停止響應(yīng),這就讓黑客達到了攻擊的目的。
2 基于HTTP協(xié)議的工作模型及其缺陷
2.1 http協(xié)議的模型。一般地,WEB的服務(wù)是基于客戶機/服務(wù)器模式的。WEB文檔存放在服務(wù)器上,用戶通過客戶終端,借助瀏覽器對站點網(wǎng)頁進行瀏覽。服務(wù)器和客戶機的連接是依靠80端口連接的,當服務(wù)器和客戶端連接之后,客戶器和服務(wù)器就借助http協(xié)議來進行訴求和應(yīng)答。HTTP協(xié)議的工作模式見圖1:
圖1 WEB應(yīng)用工作模型顯示了WEB應(yīng)用服務(wù)的工作過程
2.2 HTTP協(xié)議存在的缺陷。應(yīng)用極為廣泛的http協(xié)議,還存在著不少的安全漏洞。主要是缺乏安全性檢測,無法對數(shù)據(jù)傳送和信息完整性進行檢測。在網(wǎng)絡(luò)技術(shù)應(yīng)用中,數(shù)據(jù)的明文傳送和信息完整性,特別成為網(wǎng)絡(luò)技術(shù)應(yīng)用所關(guān)注,例如電子商務(wù)、網(wǎng)絡(luò)交易、在線支付等,就極需要明文傳送數(shù)據(jù),信息要完整等等。攻擊者澤試圖在數(shù)據(jù)傳輸過程中,分析和發(fā)行敏感的數(shù)據(jù),例如管理員的登陸、支付密碼的使用等,從而偷取密碼,獲得網(wǎng)站管理權(quán)限等。即使無法得到后臺登陸信息數(shù)據(jù),黑客也能從網(wǎng)頁數(shù)據(jù)傳輸過程中,得到一般用戶的隱私信息,包括手機號碼、信用卡資料、工作證件號碼、身份證號等,這就容易導(dǎo)致嚴重的安全事故。一些攻擊行為,只要使用網(wǎng)絡(luò)發(fā)布的任意的抓包工具,即使是新手,也都可能竊取大型網(wǎng)站的秘密信息。
特別是,http協(xié)議往往對內(nèi)容是否被篡改,不做出確認,它只是在報文前部給出傳輸數(shù)據(jù)的長度而已,中央它在傳輸客戶端的信息、請求和服務(wù)器響應(yīng)的時候,就可以讓攻擊者輕易地得到重要數(shù)據(jù)。例如管理員的登陸過程、客戶使用密碼、網(wǎng)頁交易支付等等。攻擊者可以竊取管理權(quán)限,修改客戶端的數(shù)據(jù),甚至在傳輸數(shù)據(jù)中插入惡意代碼,或植入木馬等等,客戶將遭受嚴重損失。而這些問題,http協(xié)議卻感覺不出來,這最是讓人難受的了。
這些缺陷,都是http協(xié)議在設(shè)計的時候,安全性被忽略所導(dǎo)致,也是因為設(shè)計上的問題,就使得這些漏洞無法從根本上解決。后來,NETSCAPE提出了HTTPS協(xié)議,使得數(shù)據(jù)傳輸獲得進一步的安全保障。
3 借助HTTPS協(xié)議改進HTTP
http協(xié)議所存在的安全漏洞,必須解決,否則客戶所受的攻擊,防不勝防。Https之所以具有安全保障性,主要是https在TCP層和HTTP層之間,增加了一個SSL,這就在一定程度上加強了安全性。服務(wù)器在傳輸數(shù)據(jù)的時候,SSL進行加密和解密的工作,這就保證了數(shù)據(jù)的安全。https的做法是:
3.1 對身份認證從客戶端和服務(wù)段雙向進行。就是說,客戶端和服務(wù)段都進行身份認證,在數(shù)據(jù)傳輸之前,通過X509證書認證雙方身份。具體步驟是:
從客戶端發(fā)起SSL結(jié)合的信息,請求服務(wù)端給以連接——服務(wù)端給客戶端發(fā)送證書——客戶端檢查服務(wù)段證書并確認,如果不是由自己信任的證書機構(gòu)簽發(fā)的,就提醒客戶,由客戶決定選擇是否繼續(xù)通信,如果檢查沒有問題,或用戶選擇繼續(xù),則服務(wù)端的身份被客戶端認可——客戶端應(yīng)要求向服務(wù)器發(fā)送證書,并檢查是否通過。如果不通過,則關(guān)閉連接,通過澤獲得客戶端的公鑰。
在身份認證過程中,服務(wù)端和客戶端都對對方進行驗證,這就保證了安全。
3.2 對數(shù)據(jù)傳輸過程予以加密。使用加密算法,在開始傳輸數(shù)據(jù)的時候,客戶端和服務(wù)段協(xié)商,使用哪類算法。當客戶端發(fā)送協(xié)商,請求服務(wù)端時,給服務(wù)端一自己支持的非對稱的密鑰交換算法(RSA),還有數(shù)據(jù)簽名摘要算法(SHA或MDS等),加密傳輸數(shù)據(jù)的對稱加密算法(DES),還包括加密密鑰的長度。服務(wù)端在接收到這些信息之后,則選擇自己認可的安全性最高的算法,然后反送給客戶端自己所選中的算法,這樣就完成了初期的協(xié)商。
接下來,客戶端再生成隨機的字符,通過協(xié)商好的加密算法,使用服務(wù)端的公鑰,對這串字符進行加密,再發(fā)送給服務(wù)器。服務(wù)器接收到加密的字符串之后,再用自己的私鑰來解密這些字符串。這一雙邊進行加密和解密的過程,就保證了數(shù)據(jù)的安全。爾后,在傳輸數(shù)據(jù)時,就使用這一加密的字符串作為密鑰進行對稱加密。
3.3 檢驗數(shù)據(jù)完整性。Https操作過程中,借助SSL,使用一種信息驗證碼,例如MD5,或者SHA-1算法等,以之來對所傳輸?shù)臄?shù)據(jù)進行簽名,一般地,把驗證碼放在數(shù)據(jù)包的后部,并且把驗證碼和數(shù)據(jù)一起加密,這樣在數(shù)據(jù)被篡改時,會由于HASH值的改變而被發(fā)現(xiàn),進而有效處理。
3.4 防止重放攻擊數(shù)據(jù)包。為了防止數(shù)據(jù)包被重放攻擊,SSL使用序列號來保護通信方,這個序列號也要加密,并作為數(shù)據(jù)包的負載。在使用SSL來叩應(yīng)對方時,那個唯一的隨機字符作出標記,這就防止了黑客對客戶登陸過程的窺探,以及在得到加密數(shù)據(jù)之后,不解密而直接重傳登陸數(shù)據(jù)包來進行攻擊。
經(jīng)過這些作為,https已經(jīng)大大提高了網(wǎng)絡(luò)數(shù)據(jù)的安全性,其創(chuàng)造性在于,使用了非對稱的加密算法,經(jīng)過協(xié)商傳遞,保持了非對稱加密的安全性和對稱加密的快速度。
4 進一步加強https的安全性
基于http協(xié)議之上的https協(xié)議,使用了非對稱加密的方式,傳輸對稱加密使用的密鑰,但是,如果SSL發(fā)起攻擊并取得密鑰,那么,整個數(shù)據(jù)傳輸?shù)募用?,也就沒有什么意義。因此,必須在SSL之前,通過對稱加密,提高所要傳輸?shù)臄?shù)據(jù)的安全性。同時,不傳輸這次先行加密的密鑰,而只是保存到兩端。這樣,即使SSL的對稱加密密鑰被竊取,攻擊者也無法截獲明文信息。但這又有一個新的問題,即客戶端如何部署,才能方便地在客戶端實施這一傳輸前的數(shù)據(jù)加密工作。方法是,在客戶端使用JS持續(xù)。JS代碼存在于服務(wù)端,如果在客戶端執(zhí)行這一代碼,就可以保證數(shù)據(jù)在SSL傳輸之前,進行自定義的加密。當然,JS代碼容易被攻擊者直接察看,故只能哦那個在安全需求不高的場合。而對于電子商務(wù)、網(wǎng)上交易、網(wǎng)銀付款等,還得另找辦法。實踐證明,較好的選擇是使用ACTIVEX或APPLET??赏ㄟ^客戶端控件,在數(shù)據(jù)輸入之后,馬上進行加密,然后借助https協(xié)議來傳輸數(shù)據(jù)信息/這樣,即使中間人劫持了數(shù)據(jù),解開了SSL加密層??吹降囊仓皇菬o關(guān)緊要的數(shù)據(jù),而重要的機密的數(shù)據(jù)則另置于ACTIVEX的加密保護下,這樣就達到了保護機密數(shù)據(jù)的目的。
參考文獻
[1]楊波,朱秋萍.WEB安全技術(shù)綜述[J].計算機應(yīng)用研究,2002.10:1-4.
[2]高鵬.構(gòu)建安全的WEB站點[M].清華大學(xué)出版社,1999.
[作者簡介]
唐清安,裝備學(xué)院信息管理中心,高級工程師。主要從事計算機網(wǎng)絡(luò)管理與應(yīng)用、教育技術(shù)應(yīng)用與管理等領(lǐng)域的研究。陳廣旭,裝備學(xué)院信息管理中心,講師。主要從事計算機網(wǎng)絡(luò)管理與應(yīng)用、教育技術(shù)應(yīng)用與管理等領(lǐng)域的研究。韓平,裝備學(xué)院信息管理中心,高級工程師。主要從事計算機網(wǎng)絡(luò)管理與應(yīng)用、教育技術(shù)應(yīng)用與管理等領(lǐng)域的研究。