|
眾所周知,不同主機(jī)之間的網(wǎng)絡(luò)數(shù)據(jù)傳輸主要是通過TCP/IP網(wǎng)絡(luò)協(xié)議來完成的。無論是企業(yè)局域網(wǎng)數(shù)據(jù)傳輸,還是互聯(lián)網(wǎng)上的數(shù)據(jù)傳輸,都是如此。但是,令人想不通的是,在當(dāng)初TCP/IP協(xié)議的設(shè)計(jì)過程中,并沒有提供任何安全性。也就是說,光憑TCP/IP協(xié)議,并不能過保障數(shù)據(jù)在網(wǎng)絡(luò)中的安全與穩(wěn)定的傳輸。為此,數(shù)據(jù)在網(wǎng)絡(luò)中的安全性要依賴于高層的應(yīng)用程序;ヂ(lián)網(wǎng)技術(shù)發(fā)展到現(xiàn)在,已經(jīng)有不少提高網(wǎng)絡(luò)運(yùn)輸穩(wěn)定與安全的解決方案。今天談?wù)勅绾瓮ㄟ^SSL來實(shí)現(xiàn)這個(gè)需求。
SSL中文名字叫做安全套接層協(xié)議,他使用TCP/IP為高層協(xié)議建立安全連接。它運(yùn)行在TCP/IP和高層協(xié)議之上,提供數(shù)據(jù)傳輸?shù)陌踩。SSL協(xié)議其包括兩個(gè)分支,分別為SSL紀(jì)錄協(xié)議與SSL握手協(xié)議。
一、三步完成SSL紀(jì)錄協(xié)議
SSL紀(jì)錄協(xié)議相對來說,比較簡單。它定義了數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)母袷剑Υ瞬扇〖用芴幚。同時(shí)還提供了一些驗(yàn)證手段,防止在傳輸過程中數(shù)據(jù)被人為的破壞,從而影響數(shù)據(jù)傳輸?shù)姆(wěn)定性。要實(shí)現(xiàn)這些目的,只需要簡單的三步即可。
第一步:分塊。當(dāng)上層的數(shù)據(jù)被轉(zhuǎn)移到SSL協(xié)議所在的層之后,數(shù)據(jù)將會被分塊。從上層傳遞下來的數(shù)據(jù)往往是以明文形式傳送的。通常情況下,分塊過后的數(shù)據(jù)不會超過214字節(jié)。分塊的時(shí)候,一般不會考慮數(shù)據(jù)的內(nèi)容形式,而只考慮大小。即具有同樣類型的不同紀(jì)錄消息會被組合為一個(gè)紀(jì)錄;而如果一個(gè)紀(jì)錄容量比較大的話,也會被分割為多個(gè)塊。
第二步:壓縮并加密。分塊之后,SSL協(xié)議就會對要傳輸?shù)臄?shù)據(jù)使用壓縮算法進(jìn)行壓縮,并且在壓縮過程中同時(shí)進(jìn)行加密處理。壓縮算法必須保證數(shù)據(jù)在壓縮后不會被丟失。當(dāng)另外一端接收到數(shù)據(jù)之后,就會采用對應(yīng)的解壓算法對數(shù)據(jù)進(jìn)行解壓縮,同時(shí)完成數(shù)據(jù)的解密過程。
第三步:紀(jì)錄有效載荷的保護(hù)。在數(shù)據(jù)傳輸過程中,另外一個(gè)需要關(guān)注的問題,就是傳輸數(shù)據(jù)的穩(wěn)定性。也就是說,傳輸?shù)臄?shù)據(jù)有沒有被意外的更改等等。SSL協(xié)議也提供這方面的保護(hù)。當(dāng)完成對數(shù)據(jù)壓縮與加密之后,SSL紀(jì)錄協(xié)議會計(jì)算出完整的校驗(yàn)值,也就是所謂的消息鑒別碼。在傳輸數(shù)據(jù)的時(shí)候,這個(gè)消息鑒別碼會隨同上面的塊一同被加密傳送。在接收端,數(shù)據(jù)被解密、解壓縮;然后也會重新計(jì)算著消息鑒別碼,以驗(yàn)證數(shù)據(jù)是否在傳輸過程中被意外修改。
二、SSL握手協(xié)議
SSL紀(jì)錄協(xié)議只是在單機(jī)上對信息進(jìn)行重新分塊并進(jìn)行壓縮與加密,而沒有涉及到網(wǎng)絡(luò)連接。SSL握手協(xié)議則主要用來解決主機(jī)之間的連接問題。SSL握手協(xié)議使用SSL紀(jì)錄協(xié)議,在兩臺支持SSL的設(shè)備之間通過交換一系列信息,以建立SSL連接。SSL握手協(xié)議在建立連接的過程中,主要完成對服務(wù)器與客戶之間的相互鑒別、確定所要采用的加密算法、通過使用公開密鑰加密技術(shù)產(chǎn)生共享的加密信息、建立加密的SSL連接等等。
建立一個(gè)SSL會話要比SSL紀(jì)錄協(xié)議復(fù)雜的多,往往需要通過多個(gè)步驟才能夠完成。這里出于篇幅的限制,也就不再展開了。大家若有需要可以去參考相關(guān)的書籍。這里主要對幾個(gè)容易搞混的地方做一些說明,以便于大家應(yīng)用SSL協(xié)議。
一是加密方法的選擇。在SSL建立會話傳遞數(shù)據(jù)的過程中,要確保其路過的每一個(gè)網(wǎng)絡(luò)設(shè)備都支持SSL協(xié)議。否則的話,就會出現(xiàn)數(shù)據(jù)傳輸上的問題。而現(xiàn)在的網(wǎng)絡(luò)設(shè)備,大部分已經(jīng)都支持SSL協(xié)議。但是,SSL協(xié)議所采用的加密方法有上十種。雖然現(xiàn)在的網(wǎng)絡(luò)設(shè)備基本都支持SSL協(xié)議,可是不一定會支持所有的加密算法。為此,SSL協(xié)議會在建立會話的過程中,選擇大家都支持的一種加密算法。在對于一些安全性級別要求比較高的場合中,網(wǎng)絡(luò)管理員要對其具體采用的加密算法進(jìn)行監(jiān)控。若無法滿足企業(yè)的安全性需求,則要及時(shí)的更換設(shè)備或者對設(shè)備進(jìn)行升級,以滿足比較高的加密算法以及安全性需求。
二是要注意加密并不等于不能夠破解。SSL的連接是加密的。在客戶機(jī)、服務(wù)器之間的所有傳送數(shù)據(jù)通過SSL協(xié)議處理之后,都是加密的,這為數(shù)據(jù)傳輸提供了很高的機(jī)密性。SSL協(xié)議在確定了所使用的加密算法之后,一個(gè)初始化的握手過程會產(chǎn)生密鑰,加密算法就會采用這個(gè)密鑰。但是,要值得注意的就是,并不是說加密之后的數(shù)據(jù)就不能夠被破解。而只是說,增加了這個(gè)破譯的難度。而這個(gè)難度系數(shù)到底達(dá)到多少,又是由這個(gè)加密算法說決定的。雖然說在SSL會話過程中,SSL協(xié)議會自主選擇一個(gè)大家都支持的加密算法。 |
【收藏】【打印】【進(jìn)入論壇】 |
|
|
|
|
|
|
|