利用SSL保障企業(yè)網(wǎng)絡運輸穩(wěn)定與安全
眾所周知,不同主機之間的網(wǎng)絡數(shù)據(jù)傳輸主要是通過TCP/IP網(wǎng)絡協(xié)議來完成的。無論是企業(yè)局域網(wǎng)數(shù)據(jù)傳輸,還是互聯(lián)網(wǎng)上的數(shù)據(jù)傳輸,都是如此。但是,令人想不通的是,在當初TCP/IP協(xié)議的設計過程中,并沒有提供任何安全性。也就是說,光憑TCP/IP協(xié)議,并不能過保障數(shù)據(jù)在網(wǎng)絡中的安全與穩(wěn)定的傳輸。為此,數(shù)據(jù)在網(wǎng)絡中的安全性要依賴于高層的應用程序?;ヂ?lián)網(wǎng)技術發(fā)展到現(xiàn)在,已經(jīng)有不少提高網(wǎng)絡運輸穩(wěn)定與安全的解決方案。筆者今天結合Cisco技術談談如何通過SSL來實現(xiàn)這個需求。
SSL中文名字叫做安全套接層協(xié)議,他使用TCP/IP為高層協(xié)議建立安全連接。它運行在TCP/IP和高層協(xié)議之上,提供數(shù)據(jù)傳輸?shù)陌踩浴SL協(xié)議其包括兩個分支,分別為SSL紀錄協(xié)議與SSL握手協(xié)議。
一、三步完成SSL紀錄協(xié)議
SSL紀錄協(xié)議相對來說,比較簡單。它定義了數(shù)據(jù)在網(wǎng)絡中傳輸?shù)母袷?,并對此采取加密處理。同時還提供了一些驗證手段,防止在傳輸過程中數(shù)據(jù)被人為的破壞,從而影響數(shù)據(jù)傳輸?shù)姆€(wěn)定性。要實現(xiàn)這些目的,只需要簡單的三步即可。
第一步:分塊。當上層的數(shù)據(jù)被轉移到SSL協(xié)議所在的層之后,數(shù)據(jù)將會被分塊。從上層傳遞下來的數(shù)據(jù)往往是以明文形式傳送的。通常情況下,分塊過后的數(shù)據(jù)不會超過214字節(jié)。分塊的時候,一般不會考慮數(shù)據(jù)的內(nèi)容形式,而只考慮大小。即具有同樣類型的不同紀錄消息會被組合為一個紀錄;而如果一個紀錄容量比較大的話,也會被分割為多個塊。
第二步:壓縮并加密。分塊之后,SSL協(xié)議就會對要傳輸?shù)臄?shù)據(jù)使用壓縮算法進行壓縮,并且在壓縮過程中同時進行加密處理。壓縮算法必須保證數(shù)據(jù)在壓縮后不會被丟失。當另外一端接收到數(shù)據(jù)之后,就會采用對應的解壓算法對數(shù)據(jù)進行解壓縮,同時完成數(shù)據(jù)的解密過程。
第三步:紀錄有效載荷的保護。在數(shù)據(jù)傳輸過程中,另外一個需要關注的問題,就是傳輸數(shù)據(jù)的穩(wěn)定性。也就是說,傳輸?shù)臄?shù)據(jù)有沒有被意外的更改等等。SSL協(xié)議也提供這方面的保護。當完成對數(shù)據(jù)壓縮與加密之后,SSL紀錄協(xié)議會計算出完整的校驗值,也就是所謂的消息鑒別碼。在傳輸數(shù)據(jù)的時候,這個消息鑒別碼會隨同上面的塊一同被加密傳送。在接收端,數(shù)據(jù)被解密、解壓縮;然后也會重新計算著消息鑒別碼,以驗證數(shù)據(jù)是否在傳輸過程中被意外修改。
二、SSL握手協(xié)議
SSL紀錄協(xié)議只是在單機上對信息進行重新分塊并進行壓縮與加密,而沒有涉及到網(wǎng)絡連接。SSL握手協(xié)議則主要用來解決主機之間的連接問題。SSL握手協(xié)議使用SSL紀錄協(xié)議,在兩臺支持SSL的設備之間通過交換一系列信息,以建立SSL連接。SSL握手協(xié)議在建立連接的過程中,主要完成對服務器與客戶之間的相互鑒別、確定所要采用的加密算法、通過使用公開密鑰加密技術產(chǎn)生共享的加密信息、建立加密的SSL連接等等。
建立一個SSL會話要比SSL紀錄協(xié)議復雜的多,往往需要通過多個步驟才能夠完成。這里出于篇幅的限制,也就不再展開了。大家若有需要可以去參考相關的書籍。筆者這里主要對幾個容易搞混的地方做一些說明,以便于大家應用SSL協(xié)議。
一是加密方法的選擇。在SSL建立會話傳遞數(shù)據(jù)的過程中,要確保其路過的每一個網(wǎng)絡設備都支持SSL協(xié)議。否則的話,就會出現(xiàn)數(shù)據(jù)傳輸上的問題。而現(xiàn)在包括思科在內(nèi)的網(wǎng)絡設備,大部分已經(jīng)都支持SSL協(xié)議。但是,SSL協(xié)議所采用的加密方法有上十種。雖然現(xiàn)在的網(wǎng)絡設備基本都支持SSL協(xié)議,可是不一定會支持所有的加密算法。為此,SSL協(xié)議會在建立會話的過程中,選擇大家都支持的一種加密算法。在對于一些安全性級別要求比較高的場合中,網(wǎng)絡管理員要對其具體采用的加密算法進行監(jiān)控。若無法滿足企業(yè)的安全性需求,則要及時的更換設備或者對設備進行升級,以滿足比較高的加密算法以及安全性需求。#p#
二是要注意加密并不等于不能夠破解。SSL的連接是加密的。在客戶機、服務器之間的所有傳送數(shù)據(jù)通過SSL協(xié)議處理之后,都是加密的,這為數(shù)據(jù)傳輸提供了很高的機密性。SSL協(xié)議在確定了所使用的加密算法之后,一個初始化的握手過程會產(chǎn)生密鑰,加密算法就會采用這個密鑰。但是,要值得注意的就是,并不是說加密之后的數(shù)據(jù)就不能夠被破解。而只是說,增加了這個破譯的難度。而這個難度系數(shù)到底達到多少,又是由這個加密算法說決定的。雖然說在SSL會話過程中,SSL協(xié)議會自主選擇一個大家都支持的加密算法。
但是,出于某些特殊性安全的需要,有時候網(wǎng)絡管理員要對這個進行干預。如網(wǎng)絡管理員可以禁用某些網(wǎng)絡設備上的級別低的加密方法。從而在數(shù)據(jù)傳輸中,要么不傳,要傳就要用一些高級加密方法處理。這雖然不利于網(wǎng)絡傳輸?shù)姆€(wěn)定性,但是可以滿足一些對于數(shù)據(jù)安全有特殊需要的客戶。
三是可以通過配置SSL協(xié)議為其他不安全的服務提供身份驗證等功能。如在實際工作中,采用Telnet協(xié)議遠程管理服務器或者網(wǎng)絡設備,不怎么安全。這主要是因為Telnet協(xié)議在數(shù)據(jù)傳輸過程中,無論是用戶名口令,還是執(zhí)行命令,都是明文傳輸?shù)?。很顯然,這會給入侵者一個可乘之機。另外,諸如TFTP(簡單文本傳輸協(xié)議)也是不安全的,因為其沒有提供身份驗證機制。在這種情況下,網(wǎng)絡管理員就可以把SSL協(xié)議與這些不安全的協(xié)議結合起來,在享受它們便利的同時,又保障他們的安全性。
另外,IPSec技術也可以起到類似的作用。簡單的原理就是把路由器等關鍵設備當作服務器,而把用戶的主機當作客戶端。在服務期上可以設置安全策略,必須要采用加密技術。如此的話,在客戶端跟服務器端進行協(xié)商的時候,服務起就會告訴客戶端,你如果想跟我通信,必須要采用我指定的加密技術,否則的話,休想跟我通話。通過這種措施,就可以在客戶機與服務器之間強制建立起一個安全通道。
如此,即使HTTP等協(xié)議采用明文形式傳輸數(shù)據(jù),也不用擔心。因為雖然HTTP協(xié)議沒有采取安全策略,但是當HTTP報文在網(wǎng)絡中傳輸?shù)臅r候,諸如SSL或者Ipsec等安全技術為其保駕護航,通過加密等技術保障其傳輸過程中的安全性。
四是在VPN技術上與SSL協(xié)議集成,提高遠程訪問的安全性。雖然傳統(tǒng)的VPN技術也提供了一些安全身份認證機制,但是普遍認為其自帶的安全解決方案是不安全的。傳統(tǒng)的VPN技術下,黑客入侵、身份欺詐等攻擊行為時有發(fā)生,而且得逞的案例也不在少數(shù)。而如果在VPN技術上實現(xiàn)SSL協(xié)議,則其遠程訪問的安全性會發(fā)生根本的改變。也許會有人說,采用IPSec技術同樣可以取得類似的效果。
確實如此,但是如果企業(yè)采用IPSec技術來保障VPN安全的話,則必須要滿足一個前提條件,即企業(yè)的網(wǎng)絡架構不能夠經(jīng)常變化。也就是說,IPSec技術確實在安全性方面具有杰出的表現(xiàn),但是其靈活性就不如SSL那么高了。若企業(yè)的網(wǎng)絡還是處于變革中,那么筆者建議網(wǎng)絡管理員還是利用SSL協(xié)議來武裝VPN,來實現(xiàn)一個相對安全的遠程訪問。
五是在WEB服務上集成SSL協(xié)議,以實現(xiàn)安全性。我們都知道,WEB服務一向被認為是一種不安全的網(wǎng)絡訪問行為。但是,若果在WEB服務器上能夠實現(xiàn)SSL協(xié)議,那么,其就可以變得很安全。如現(xiàn)在有不少的電子商務網(wǎng)站,其在訪問時需要使用HTTPS來進行訪問,而不是傳統(tǒng)的HTTP。他們就是采用了SSL協(xié)議。
如果需要WEB服務器支持SSL通信,就必須要為WEB服務器設置SSL證書。如在微軟的服務器架構中,WEB服務器可以向證書頒發(fā)機構申請證書。安裝證書之后,網(wǎng)絡管理員就可以通過Internet服務管理器,將WEB服務器下面的虛擬目錄配置為要求采用SSL訪問。注意,此時可以制定一些特定的文件、目錄或者虛擬目錄采用SSL協(xié)議,而不需要所有的目錄。如此配置后,當客戶要訪問這些WEB服務器中的內(nèi)容時,服務器就會告訴用戶要利用SSL協(xié)議進行通信。如果客戶的主機不支持SSL協(xié)議(如已經(jīng)被認為的禁用掉),則服務器會拒絕與其進行通信。從而爆炸功能WEB服務器資源的安全性。
【編輯推薦】