一、網(wǎng)絡(luò)安全問題概述
1.計(jì)算機(jī)網(wǎng)絡(luò)面臨的安全性威脅
Ⅰ、主動(dòng)攻擊與被動(dòng)攻擊
有被動(dòng)攻擊和主動(dòng)攻擊,截獲信息的稱為被動(dòng)信息,中斷、篡改、偽造信息的攻擊叫作主動(dòng)攻擊。
在被動(dòng)攻擊中,攻擊者只是觀察和分析某一個(gè)協(xié)議數(shù)據(jù)單元PDU而不干擾信息流。即使這些數(shù)據(jù)對(duì)攻擊者來(lái)說(shuō)是不易理解的,他也可通過觀察PDU的協(xié)議控制信息部分,了解正在通信的協(xié)議實(shí)體的地址和身份,研究PDU的長(zhǎng)度和傳輸?shù)念l度,以便了解所交換的數(shù)據(jù)的某種性質(zhì)。這種被動(dòng)攻擊又稱為流量分析。
主動(dòng)攻擊是指攻擊者對(duì)連接中通過的PDU進(jìn)行各種處理。如有選擇地更改、刪除、延遲這些PDU(當(dāng)然也包括記錄和復(fù)制它們),還可在稍后的時(shí)間將以前錄下的PDU插入這個(gè)連接(即重放攻擊)。甚至還可將合成的或偽造的PDU送入到一個(gè)連接中去。
所有主動(dòng)攻擊都是上述幾種方法的組合,但從類型上看,可分為:
(1)更改報(bào)文流
包括對(duì)通過連接的PDU的真實(shí)性、完整性和有序性的攻擊
(2)拒絕服務(wù)
指攻擊者向因特網(wǎng)上的服務(wù)器不停地發(fā)送大量分組,使因特網(wǎng)或服務(wù)器無(wú)法提供正常服務(wù)。
(3)偽造連接初始化
攻擊者重放以前已被記錄的合法連接初始化序列,或者偽造身份而企圖建立連接。
Ⅱ、攻擊的預(yù)防
對(duì)于主動(dòng)攻擊,可以采取適當(dāng)措施加以檢測(cè)。但對(duì)于被動(dòng)攻擊,通常卻是檢測(cè)不出來(lái)的。根據(jù)這些特點(diǎn),可得出計(jì)算機(jī)網(wǎng)絡(luò)通信安全的五個(gè)目標(biāo)如下:
防止析出報(bào)文內(nèi)容、防止流量分析、檢測(cè)更改報(bào)文流、檢測(cè)拒絕報(bào)文服務(wù)、檢測(cè)偽造初始化連接。
對(duì)付被動(dòng)攻擊可采用各種數(shù)據(jù)加密技術(shù),而對(duì)付主動(dòng)攻擊,則需將加密技術(shù)與適當(dāng)?shù)蔫b別技術(shù)相結(jié)合。
Ⅲ、惡意程序
特殊的主動(dòng)攻擊。對(duì)網(wǎng)絡(luò)威脅較大的惡意程序有一下幾種:
①計(jì)算機(jī)病毒
會(huì)“傳染”其他程序的程序,是通過修改其他程序來(lái)把自身或其變種復(fù)制進(jìn)去完成的。
②計(jì)算機(jī)蠕蟲
一種通過網(wǎng)絡(luò)的通信功能將自身從一個(gè)結(jié)點(diǎn)發(fā)送到另一個(gè)結(jié)點(diǎn)并自動(dòng)啟動(dòng)運(yùn)行的程序。
③特洛伊木馬
一種程序。它執(zhí)行的功能并非所聲稱的功能而是某種惡意的功能。如一個(gè)編譯程序除了執(zhí)行編譯任務(wù)以外,還把用戶的源程序偷偷地拷貝下來(lái),則這種編譯程序就是一種特洛伊木馬。計(jì)算機(jī)病毒有時(shí)也以特洛伊木馬的形式出現(xiàn)。
④邏輯炸彈
一種當(dāng)運(yùn)行環(huán)境滿足某種特定條件時(shí)執(zhí)行其他特殊功能的程序。如一個(gè)編輯程序,平時(shí)運(yùn)行得很好,但在某一天刪去系統(tǒng)中所有的文件。這種程序就是一種邏輯炸彈。
2.計(jì)算機(jī)網(wǎng)絡(luò)安全的內(nèi)容
①保密性
如訪問控制中登錄口令的設(shè)計(jì)、安全通信協(xié)議的設(shè)計(jì)以及數(shù)字簽名的設(shè)計(jì)等
②安全協(xié)議的設(shè)計(jì)
如何保證設(shè)計(jì)出的協(xié)議是安全的,有兩種方法,一種是用形式化方法來(lái)證明,另一種是用經(jīng)驗(yàn)來(lái)分析協(xié)議的安全性。
形式化證明是人們希望的,但一般意義上的協(xié)議安全性也是不可判定的,只能針對(duì)某種特定類型的攻擊來(lái)討論其安全性。對(duì)復(fù)雜的通信協(xié)議的安全性,形式化證明比較困難,所以只要采用人工分析的方法來(lái)找漏洞。對(duì)于簡(jiǎn)單的協(xié)議,可通過限制敵手的操作(假定敵手不會(huì)進(jìn)行某種攻擊)來(lái)對(duì)一些特定情況進(jìn)行形式化的證明。當(dāng)然,這種方法有很大的局限性。
③訪問控制
也叫存取控制或接入控制。必須對(duì)接入網(wǎng)絡(luò)的權(quán)限加以控制,并規(guī)定每個(gè)用戶的接入權(quán)限。
3.一般的數(shù)據(jù)加密模型

加密密鑰與解密密鑰可一樣也可不一樣(不一樣時(shí)有相關(guān)性)。密鑰通常是由密鑰中心提供,當(dāng)密鑰需要向遠(yuǎn)地傳送時(shí),一定要通過另一個(gè)安全信道。
密碼編碼學(xué)是密碼體制的設(shè)計(jì)學(xué),而密碼分析學(xué)則是在未知密鑰情況下從密文推測(cè)出明文或密鑰的技術(shù)。兩者合起來(lái)即為密碼學(xué)。
1949年,信息論的創(chuàng)始人香農(nóng)論證了一般經(jīng)典加密方法得到的密文幾乎都是可破的。但20世紀(jì)60年代起,隨著電子技術(shù)、計(jì)算技術(shù)的迅速發(fā)展以及結(jié)構(gòu)代數(shù)、可計(jì)算性和計(jì)算復(fù)雜性理論等學(xué)科的研究,密碼學(xué)又進(jìn)入了一個(gè)新的發(fā)展時(shí)期。
二、兩類密碼機(jī)制
1.對(duì)稱密鑰密碼體制
即加密密鑰與解密密鑰是相同的密碼體制。
數(shù)據(jù)加密標(biāo)準(zhǔn)DES屬于對(duì)稱密鑰體制。它的保密性取決于對(duì)密鑰的保密,而算法是公開的。
2.公鑰密碼體制
Ⅰ、產(chǎn)生背景
公鑰密碼體制使用不同的加密密鑰與解密密鑰。產(chǎn)生原因:①對(duì)稱密鑰密碼體制的密鑰分配問題;②對(duì)數(shù)字簽名的需求。
在對(duì)稱密鑰密碼體制中,加解密的雙方使用的是相同的密鑰,如何做到:一種是事先約定,一種是用信使來(lái)傳送。在高度自動(dòng)化的大型計(jì)算機(jī)網(wǎng)絡(luò)中,用信使來(lái)傳送密鑰顯然是不合適的。如果是用信使,就會(huì)給密鑰的管理和更換都帶來(lái)了極大的不便。若使用高度安全的密鑰分配中心KDC,也會(huì)使得網(wǎng)絡(luò)成本增加。
對(duì)數(shù)字簽名的強(qiáng)烈需要也是一個(gè)原因。
Ⅱ、公鑰密碼體制
著名的有RSA體制。
在公鑰密碼體制中,加密密鑰PK(public key,即公鑰)是向公眾公開的,而解密密鑰SK(secret key,即私鑰或秘鑰)則是需要保密的。加密算法E和解密算法D也是公開的。
公鑰密碼體制的加密和解密過程有如下特點(diǎn):

任何加密方法的安全性取決于密鑰的長(zhǎng)度,以及攻破密文所需的計(jì)算量。而不是簡(jiǎn)單地取決于加密的體制。

3.數(shù)字簽名

數(shù)字簽名需實(shí)現(xiàn)三種功能:
(1)接收者能夠核實(shí)發(fā)送者對(duì)報(bào)文的簽名——報(bào)文鑒別
除A外沒有人持有A的私鑰SKa,所以除A外沒有人能產(chǎn)生密文X。這樣,B就相信X是A簽名發(fā)送的。
(2)接收者確信所收到的數(shù)據(jù)和發(fā)送者發(fā)送的完全一樣而沒有被篡改過——報(bào)文的完整性
B對(duì)篡改過的報(bào)文解密后,將會(huì)得出不可讀的明文,就知道被篡改過。
(3)發(fā)送者事后不能抵賴對(duì)報(bào)文的簽名——不可否認(rèn)
若A抵賴,B可把X和密文X出示給公證的第三者,第三者容易用PKa去證實(shí)A確實(shí)發(fā)送X給B,這不可否認(rèn)。
看上圖,D運(yùn)算只是得到了某種不可讀的密文,并不是解密運(yùn)算,因?yàn)檫€沒有加密。D運(yùn)算和E運(yùn)算都不是為了加密和解密,而是為了進(jìn)行簽名和核實(shí)簽名。

四、鑒別
鑒別和加密不同。鑒別是要驗(yàn)證通信雙方的確是自己所要通信的對(duì)象,而不是其他的冒充者。
鑒別與授權(quán)也不同。授權(quán)是:所進(jìn)行的過程是否被允許(如是否可以對(duì)某文件進(jìn)行讀或?qū)懀?/p>
1.報(bào)文鑒別
許多報(bào)文并不需要加密但卻需要數(shù)字簽名,以便讓報(bào)文的接收者能夠鑒別報(bào)文的真?zhèn)危欢鴮?duì)很長(zhǎng)的報(bào)文進(jìn)行數(shù)字簽名會(huì)使計(jì)算機(jī)增加很大的負(fù)擔(dān)(需要長(zhǎng)時(shí)間運(yùn)算)。因此,當(dāng)我們傳送不需要加密的報(bào)文時(shí),應(yīng)當(dāng)使接收者能用很簡(jiǎn)單的方法來(lái)鑒別報(bào)文的真?zhèn)巍?/p>
報(bào)文摘要MD(message digest)是進(jìn)行報(bào)文鑒別的簡(jiǎn)單方法。方法如下圖。

報(bào)文摘要算法是單向函數(shù),即我們很容易計(jì)算出一個(gè)長(zhǎng)報(bào)文X的報(bào)文摘要H,可是要想從報(bào)文摘要反過來(lái)找到原始報(bào)文X,實(shí)際上是不可能的。此外,若想找到任意兩個(gè)報(bào)文,使它們具有相同的報(bào)文摘要,實(shí)際上也是不可能的。
兩種標(biāo)準(zhǔn):報(bào)文摘要算法MD5與安全三列算法SHA。
2.實(shí)體鑒別
和報(bào)文鑒別不同。報(bào)文鑒別是對(duì)每一個(gè)收到的報(bào)文都要鑒別報(bào)文的發(fā)送者,而實(shí)體鑒別是在系統(tǒng)接入的全部持續(xù)時(shí)間內(nèi)和自己通信的對(duì)方實(shí)體只需驗(yàn)證一次。
最簡(jiǎn)單的實(shí)體鑒別過程如圖7-7,在圖中的A向遠(yuǎn)端的B發(fā)送有自己的身份A和口令的報(bào)文,并且使用雙方約定好的共享對(duì)稱密鑰Kab進(jìn)行加密。B收到此報(bào)文后,用共享對(duì)稱密鑰Kab進(jìn)行解密,因而鑒別了實(shí)體A的身份。

然而這樣有漏洞,會(huì)導(dǎo)致重放攻擊。就是,入侵者C可以從網(wǎng)絡(luò)上截獲A發(fā)給B的報(bào)文,C不需要破譯這個(gè)報(bào)文(因?yàn)樵捄芏鄷r(shí)間)而可以直接把這個(gè)由A加密的報(bào)文發(fā)送給B,使B誤認(rèn)為C就是A。然后B就向偽裝是A的C發(fā)送許多本來(lái)應(yīng)當(dāng)發(fā)給A的報(bào)文。這就叫作重放攻擊。C甚至可以截獲A的IP地址,然后把A的IP地址冒充為自己的IP地址,使B更加容易受騙。
為了對(duì)付重放攻擊,可以使用不重?cái)?shù)。不重?cái)?shù)就是不重復(fù)使用的大隨機(jī)數(shù),即“一次一數(shù)”。在鑒別過程中不重?cái)?shù)可以使B能夠把重復(fù)的鑒別請(qǐng)求和新的鑒別請(qǐng)求區(qū)分開。下圖給出了這個(gè)過程。

在使用公鑰密碼體制時(shí),可以對(duì)不重?cái)?shù)進(jìn)行簽名鑒別??瓷蠄D,B用其私鑰對(duì)不重?cái)?shù)Ra進(jìn)行簽名后發(fā)回給A,A用B的公鑰核實(shí)簽名,如能得出自己原來(lái)發(fā)送的不重?cái)?shù)Ra,就核實(shí)了和自己通信的雙方的確是B。同樣,A也用自己的私鑰對(duì)不重?cái)?shù)Rb進(jìn)行簽名后發(fā)送給B。B用A的公鑰核心簽名,鑒別了A的身份。
公鑰密碼體制雖然不必在互相通信的用戶之間秘密地分配共享密鑰,但仍有收到攻擊的可能。看下圖。

五、密鑰分配
密鑰管理包括:密鑰產(chǎn)生、分配、注入、驗(yàn)證和使用。
密鑰必須通過最安全的通路進(jìn)行分配。例如,可以派非??煽康男攀箶y帶密鑰分配給互相通信的各用戶。這種方法稱為網(wǎng)外分配方式。但隨著用戶的增多和網(wǎng)絡(luò)流量的增大,密鑰更換頻繁(密鑰必須定期更換才能做到可靠),派信使的方法已不再使用,而應(yīng)采用網(wǎng)內(nèi)分配方式,即對(duì)密鑰自動(dòng)分配。
1.對(duì)稱密鑰的分配
對(duì)稱密鑰分配的問題:①如果n個(gè)人要相互通信,需要n(n-1)/2個(gè)密鑰。如果n很大,需要的密鑰數(shù)量非常大。②通信雙方怎樣才能安全地得到共享的密鑰呢?正是因?yàn)榫W(wǎng)絡(luò)不安全,所以才需要使用加密技術(shù)。但密鑰要怎樣傳送呢?
Ⅰ、KDC對(duì)會(huì)話密鑰的分配
目前常用的密鑰分配方式是設(shè)立密鑰分配中心KDC(key distribution center),它給需要進(jìn)行秘密通信的用戶臨時(shí)分配一個(gè)會(huì)話密鑰(僅使用一次)。圖,A和B在登記時(shí)就在KDC的服務(wù)器上安裝了各自和KDC進(jìn)行通信的主密鑰Ka和Kb。

Ⅱ、更先進(jìn)的加密標(biāo)準(zhǔn)ACS——Kerberos V4

Kerberos使用兩個(gè)服務(wù)器:鑒別服務(wù)器AS、票據(jù)授予服務(wù)器TGS。只用于客戶與服務(wù)器之間的鑒別,而不使用人對(duì)人的鑒別。
①A向AS表明身份,AS驗(yàn)證后允許A和TGS聯(lián)系;
②報(bào)文包括Ks和AS要發(fā)送給TGS的票據(jù)(票據(jù)用TGS的對(duì)稱密鑰Ktg加密)。A不保存密鑰Ka,但這個(gè)報(bào)文到達(dá)A時(shí),A就鍵入口令,若口令正確,則口令和適當(dāng)算法一起就能生成密鑰Ka。這個(gè)口令隨即銷毀。于是提取出Ks和轉(zhuǎn)發(fā)給TGS的票據(jù)。
③A向TGS發(fā)送三個(gè)項(xiàng)目:
轉(zhuǎn)發(fā)AS發(fā)來(lái)的票據(jù);
服務(wù)器B的名字,這表明A請(qǐng)求B的服務(wù)。請(qǐng)注意,現(xiàn)在A向TGS證明自己的身份并非通過鍵入口令(因?yàn)槿肭终吣軌驈木W(wǎng)上截獲明文口令),而是通過轉(zhuǎn)發(fā)AS發(fā)出的票據(jù)(只有A才能提取出)。票據(jù)是加密的,入侵者偽造不了;
用Ks加密的時(shí)間戳T,它用來(lái)防止入侵者的重放攻擊。
④TGS發(fā)送兩個(gè)票據(jù),每一個(gè)都包含A和B通信的會(huì)話密鑰Kab。給A的票據(jù)用Ks加密,給B的票據(jù)用B的密鑰Kb加密。請(qǐng)注意,現(xiàn)在入侵者不能提取Kab,因?yàn)椴恢繩a和Kb。入侵者也不能重放步驟③,因?yàn)槿肭终卟荒馨褧r(shí)間戳更換為一個(gè)新的(因?yàn)椴恢繩s)。如果入侵者在時(shí)間戳到期之前,非常迅速地發(fā)送步驟③的報(bào)文,那么對(duì)TGS發(fā)來(lái)的兩個(gè)票據(jù)仍然不能解密。
⑤A向B轉(zhuǎn)發(fā)TGS發(fā)來(lái)的票據(jù),同時(shí)發(fā)送用Kab加密的時(shí)間戳T。
⑥B把時(shí)間戳T加1來(lái)證實(shí)收到了票據(jù),B向A發(fā)送的報(bào)文用密鑰Kab加密。
時(shí)間戳要求所有主機(jī)的時(shí)鐘誤差不要太大,這是為了防止重放攻擊。時(shí)間太長(zhǎng)就要廢。
2.公鑰的分配
問題提出——設(shè)想A向欺騙B,就向B發(fā)送一份偽造是C發(fā)送的報(bào)文,A用自己的秘密密鑰進(jìn)行數(shù)字簽名,并附上A自己的公鑰,謊稱這公鑰是C的。B怎么知道這不是C的呢?
認(rèn)證中心CA(certification authority)將公鑰與對(duì)應(yīng)的實(shí)體進(jìn)行綁定(binding)。
六、因特網(wǎng)使用的安全協(xié)議
1.網(wǎng)絡(luò)層安全協(xié)議
Ⅰ、IPsec與安全關(guān)聯(lián)SA
網(wǎng)絡(luò)層保密是指所有在IP數(shù)據(jù)報(bào)中的數(shù)據(jù)都是加密的。在IPsec(IP安全協(xié)議的縮寫)中有兩個(gè)主要協(xié)議:鑒別首部AH(提供源點(diǎn)鑒別、數(shù)據(jù)完整性,不提供保密)和封裝安全有效載荷ESP(提供源點(diǎn)鑒別、數(shù)據(jù)完整性、保密)。
在使用AH和ESP前,要從源主機(jī)到目的主機(jī)建立一條網(wǎng)絡(luò)層的邏輯連接。此邏輯連接叫作安全關(guān)聯(lián)SA。這樣,IPsec就把傳統(tǒng)的因特網(wǎng)無(wú)連接的網(wǎng)絡(luò)層轉(zhuǎn)換為具有邏輯連接的層。
安全關(guān)聯(lián)是單向連接。它由三元組唯一確定:①安全協(xié)議(使用AH或ESP協(xié)議)的標(biāo)識(shí)符;②此單向連接的目的IP地址;③一個(gè)32位的連接標(biāo)識(shí)符,稱為安全參數(shù)索引SPI。
對(duì)于給定的安全關(guān)聯(lián)SA,每一個(gè)IPsec數(shù)據(jù)報(bào)都有一個(gè)存放SPI的字段。通過此SA的所有數(shù)據(jù)報(bào)都使用同樣的SPI值。
Ⅱ、鑒別首部協(xié)議AH
協(xié)議設(shè)為51,是為讓目的主機(jī)知道在IP首部后面緊接著的是AH首部。在傳輸過程中,中間的路由器不查看AH首部。數(shù)據(jù)到達(dá)終點(diǎn)時(shí),目的主機(jī)才處理AH字段,以鑒別源點(diǎn)和檢查數(shù)據(jù)報(bào)的完整性。

AH首部具有如下一些字段:
(1)下一個(gè)首部(8位),標(biāo)志緊接著本首部的下一個(gè)首部的類型(如TCP或UDP)
(2)有效載荷長(zhǎng)度(8位),即鑒別數(shù)據(jù)字段的長(zhǎng)度,以32位字為單位
(3)安全參數(shù)索引SPI(32位),標(biāo)志一個(gè)安全關(guān)聯(lián)
(4)序號(hào)(32位),鑒別數(shù)據(jù)字段的長(zhǎng)度,以32位字位單位
(5)保留(16位),今后用
(6)鑒別數(shù)據(jù)(可變)。為32位字的整數(shù)倍,包含了經(jīng)數(shù)字簽名的報(bào)文摘要(對(duì)原來(lái)的數(shù)據(jù)報(bào)進(jìn)行報(bào)文摘要運(yùn)算),因此可用來(lái)鑒別源主機(jī)和檢查IP數(shù)據(jù)報(bào)的完整性。
Ⅲ、封裝安全有效載荷協(xié)議ESP

協(xié)議設(shè)為50。IP首部后面是ESP首部、TCP/UDP報(bào)文段、ESP尾部、ESP數(shù)據(jù)。
在ESP首部中,有標(biāo)志一個(gè)安全關(guān)聯(lián)的安全參數(shù)索引SPI(32位)和序號(hào)(32位)。在ESP尾部中有下一個(gè)尾部(作用和AH首部的一樣)。
加密后攻擊者無(wú)法得知所使用的運(yùn)輸層協(xié)議(它在IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分)。ESP的鑒別數(shù)據(jù)和AH中的鑒別數(shù)據(jù)的作用是一樣的。
2.運(yùn)輸層安全協(xié)議
用戶在網(wǎng)購(gòu)時(shí)需要安全協(xié)議。
Ⅰ、安全套接層SSL
SSL可對(duì)萬(wàn)維網(wǎng)客戶與服務(wù)器之間傳送的數(shù)據(jù)進(jìn)行加密和鑒別。它在雙方的聯(lián)絡(luò)階段(也就是握手階段)對(duì)將要使用的加密算法(如用DES或RSA)和雙方共享的會(huì)話密鑰進(jìn)行協(xié)商,完成客戶與服務(wù)器之間的鑒別。在聯(lián)絡(luò)完成后,所有傳送的數(shù)據(jù)都使用在聯(lián)絡(luò)階段商定的會(huì)話密鑰。SSL不僅被所常用的瀏覽器和萬(wàn)維網(wǎng)服務(wù)器所支持,而且是運(yùn)輸層安全協(xié)議TLS的基礎(chǔ)。
SSL還可用于IMAP郵件存取的鑒別和數(shù)據(jù)加密。SSL的位置在應(yīng)用層和運(yùn)輸層(TCP)之間。在發(fā)送方,SSL接收應(yīng)用層的數(shù)據(jù)(如HTTP或IMAP報(bào)文),對(duì)數(shù)據(jù)進(jìn)行加密,然后把加了密的數(shù)據(jù)送往TCP套接字。在接收方,SSL從TCP套接字讀取數(shù)據(jù),解密后把數(shù)據(jù)交給應(yīng)用層。
SSL提供一下三種功能:SSL服務(wù)器鑒別、加密的SSL會(huì)話、SSL客戶鑒別。
SSL的工作原理:
假定A有一個(gè)使用SSL的安全網(wǎng)頁(yè),B上網(wǎng)時(shí)用鼠標(biāo)點(diǎn)擊到這個(gè)安全網(wǎng)頁(yè)的鏈接(URL協(xié)議部分是https)。接著服務(wù)器和瀏覽器就進(jìn)行握手協(xié)議:
(1)瀏覽器向服務(wù)器發(fā)送瀏覽器的SSL版本號(hào)和密碼編碼的參數(shù)選擇(因?yàn)闉g覽器和服務(wù)器要協(xié)商使用哪一種對(duì)稱密鑰算法);
(2)服務(wù)器向?yàn)g覽器發(fā)送服務(wù)器的SSL版本號(hào)、密碼編碼的參數(shù)選擇及服務(wù)器的證書。證書包括服務(wù)器的RSA公鑰,此證書是由某個(gè)認(rèn)證中心用自己的密鑰加密,然后發(fā)送給該服務(wù)器。
(3)瀏覽器有一個(gè)可信的CA表,表中有每一個(gè)CA的公鑰。當(dāng)瀏覽器收到服務(wù)器發(fā)來(lái)的證書時(shí),就檢查此證書的發(fā)行者是否在CA表中,若不在,則后面的加密和鑒別連接就不能繼續(xù)。如在,瀏覽器就使用CA相應(yīng)的公鑰對(duì)證書進(jìn)行解密,這樣就得到了服務(wù)器的公鑰。
(4)瀏覽器隨機(jī)產(chǎn)生一個(gè)對(duì)稱會(huì)話密鑰,并用服務(wù)器的公鑰加密,然后將加密的會(huì)話密鑰發(fā)送給服務(wù)器。
(5)瀏覽器向服務(wù)器發(fā)送一個(gè)報(bào)文,說(shuō)明以后瀏覽器將使用此會(huì)話密鑰進(jìn)行加密,然后瀏覽器再向服務(wù)器發(fā)送一個(gè)單獨(dú)的加密報(bào)文,指出瀏覽器端的握手過程完成。
(6)服務(wù)器也向?yàn)g覽器發(fā)送一個(gè)報(bào)文,說(shuō)明以后服務(wù)器將使用此會(huì)話密鑰進(jìn)行加密,然后服務(wù)器再向?yàn)g覽器發(fā)送一個(gè)單獨(dú)的加密報(bào)文,指出服務(wù)器端的握手過程已經(jīng)完成。
(7)SSL的握手過程至此完成,下面就可開始SSL的會(huì)話過程。瀏覽器和服務(wù)器都使用這個(gè)會(huì)話密鑰對(duì)所發(fā)送的報(bào)文進(jìn)行加密。
評(píng)價(jià):缺少一些措施來(lái)防止在因特網(wǎng)商務(wù)中出現(xiàn)的各種可能的欺騙行為。
Ⅱ、安全電子交易SET
專為在因特網(wǎng)上進(jìn)行安全信用卡交易的協(xié)議。主要特點(diǎn):
①專為與支付有關(guān)的報(bào)文進(jìn)行加密,不能像SSL那樣對(duì)任意的數(shù)據(jù)進(jìn)行加密。
②涉及到三方,即客戶、商家、商業(yè)銀行,所有在這三方之間交互的敏感信息都被加密。
③要求這三方都有證書。在SET交易中,商家看不見客戶傳送給商業(yè)銀行的信用卡號(hào)碼。
由于SET交易中客戶端要使用專門軟件,商家要支付比SSL更高的費(fèi)用,因此SET在市場(chǎng)的競(jìng)爭(zhēng)中失敗了。
3.應(yīng)用層安全協(xié)議
簡(jiǎn)單。下面介紹兩種用于電子郵件的安全協(xié)議。
1、PGP協(xié)議
是一個(gè)完整的電子郵件安全軟件包,包括加密、鑒別、電子簽名和壓縮等技術(shù)。是把現(xiàn)有的加密算法(如RSA公鑰加密算法或MD5報(bào)文摘要算法)綜合在一起。提供電子郵件的安全性、發(fā)送方鑒別和報(bào)文完整性。
工作原理——
假定A向B發(fā)送電子郵件明文X,現(xiàn)在用PGP進(jìn)行加密。A有三個(gè)密鑰:自己的私鑰、B的公鑰和自己生成的一次性密鑰。B有兩個(gè)密鑰:自己的私鑰和A的公鑰。
A需要做以下幾件事:
(1)對(duì)明文X進(jìn)行MD5報(bào)文摘要運(yùn)算,得出報(bào)文摘要H,用自己的私鑰對(duì)H進(jìn)行數(shù)字簽名,得出簽了名的報(bào)文摘要D(H),把它拼接在明文X后面,得到報(bào)文(X+D(H))。
(2)使用自己生成的一次性密鑰對(duì)報(bào)文(X+D(H))進(jìn)行加密
(3)用B的公鑰對(duì)自己生成的一次性密鑰進(jìn)行加密
(4)把加了密的一次性密鑰和加了密的報(bào)文(X+D(H))發(fā)送給B
B收到加密的報(bào)文后要做以下幾件事:
(1)把被加密的一次性密鑰和被加密的報(bào)文(X+D(H))分離開
(2)用自己的私鑰解出A的一次性密鑰
(3)用接出的一次性密鑰對(duì)報(bào)文(X+D(H))進(jìn)行解密,然后分理出明文X和D(H)
(4)用A的公鑰對(duì)D(H)進(jìn)行簽名核實(shí),得出報(bào)文摘要H
(5)對(duì)X進(jìn)行報(bào)文摘要運(yùn)算,得出報(bào)文摘要,看是否和H一樣。如一樣,則電子郵件的發(fā)送方鑒別就通過了,報(bào)文的完整性也得到肯定。
Ⅱ、PEM協(xié)議
privacy enhanced mail。有比PGP更完善的密鑰管理機(jī)制。
七、鏈路加密與端到端加密
從網(wǎng)絡(luò)傳輸角度看,有這兩種不同的加密策略。
1.鏈路加密

E是加密,D是解密。由于協(xié)議數(shù)據(jù)單元PDU中的協(xié)議控制信息和數(shù)據(jù)都被加密,這就掩蓋了源點(diǎn)和終點(diǎn)的地址。若在結(jié)點(diǎn)間保持連續(xù)的密文序列,則PDU的頻度和長(zhǎng)度也就得到掩蓋。這就防止了流量分析。由于不需要傳送額外的數(shù)據(jù),因此不會(huì)減少網(wǎng)絡(luò)的有效帶寬。
缺點(diǎn)在于在中間結(jié)點(diǎn)暴露了信息的內(nèi)容。在網(wǎng)絡(luò)互連的情況下,僅采用鏈路加密是不能實(shí)現(xiàn)通信安全的。
2.端到端加密
是在源點(diǎn)和終點(diǎn)中對(duì)傳送的PDU進(jìn)行加密和解密。報(bào)文的安全性不會(huì)因中間結(jié)點(diǎn)的不可靠而受到影響。

端到端加密應(yīng)在運(yùn)輸層或應(yīng)用層來(lái)實(shí)現(xiàn)。若選擇在運(yùn)輸層加密,可以使安全措施對(duì)用戶來(lái)說(shuō)是透明的,這樣可不必為每一個(gè)用戶提供單獨(dú)的安全保護(hù),但容易遭受運(yùn)輸層以上的攻擊。當(dāng)選擇在應(yīng)用層加密時(shí),用戶可根據(jù)自己的特殊要求來(lái)選擇不同的加密算法,而不會(huì)影響其他用戶。這樣,端到端更容易適合不同用戶的要求。
在端到端加密的情況下,PDU的控制信息部分(如源點(diǎn)地址、終點(diǎn)地址、路由信息等)不能被加密,否則中間結(jié)點(diǎn)就不能正確選擇路由。這就使得這種方法易于受到流量分析的攻擊。雖然也可以通過發(fā)送一些假的PDU來(lái)掩蓋有意義的報(bào)文流動(dòng)(報(bào)文填充),但這要以降低網(wǎng)絡(luò)性能為代價(jià)。若各結(jié)點(diǎn)都使用對(duì)稱密鑰體制,則各結(jié)點(diǎn)必須持有與其他結(jié)點(diǎn)相同的密鑰,這就需要在全網(wǎng)范圍內(nèi)進(jìn)行密鑰管理和分配。
為了獲得更好的安全性,可將鏈路加密與端到端加密結(jié)合在一起使用。鏈路加密用來(lái)對(duì)PDU的目的地址進(jìn)行加密,而端到端加密則提供了對(duì)端到端的數(shù)據(jù)進(jìn)行保護(hù)。
八、防火墻
是一種特殊編程的路由器,安裝在一個(gè)網(wǎng)點(diǎn)和網(wǎng)絡(luò)的其余部分之間。目前是實(shí)施訪問控制策略。這個(gè)訪問控制策略是由使用防火墻的單位自行制定的。
防火墻的功能有兩個(gè),一個(gè)是阻止,一個(gè)是允許。阻止是阻止某種類型的流量通過防火墻(從外部網(wǎng)絡(luò)到內(nèi)部網(wǎng)絡(luò))。
防火墻技術(shù)有兩類:
①網(wǎng)絡(luò)級(jí)防火墻
用來(lái)防止整個(gè)網(wǎng)絡(luò)出現(xiàn)外來(lái)非法的入侵。屬于這類的有分組過濾和授權(quán)服務(wù)器。前者檢查所有流入本網(wǎng)絡(luò)的信息,后者拒絕不符合事先制定好的一套準(zhǔn)則數(shù)據(jù),而后者則是檢查用戶的登錄是否合法。
②應(yīng)用級(jí)防火墻
從應(yīng)用程序來(lái)進(jìn)行訪問控制,通常使用應(yīng)用網(wǎng)關(guān)或代理服務(wù)器來(lái)區(qū)分各種應(yīng)用。
使用兩個(gè)局域網(wǎng)的原因:使穿過防火墻的各種分組必須通過分組過濾路由器和應(yīng)用網(wǎng)關(guān)的檢查,而沒有任何其他的路徑。

分組過濾是靠系統(tǒng)管理員所設(shè)置的表格來(lái)實(shí)現(xiàn)的。表格列出了可接受的、必須阻攔的目的站和源站。
TCP的端口號(hào)指出了在TCP上面的應(yīng)用程序,所以如果在因特網(wǎng)進(jìn)入防火墻的分組過濾器中將所有目的端口號(hào)為xx的入分組進(jìn)行阻攔。但阻攔出分組要麻煩,因?yàn)樗鼈冇袝r(shí)不使用標(biāo)準(zhǔn)的端口號(hào),有的是動(dòng)態(tài)分配端口號(hào)。
應(yīng)用網(wǎng)關(guān)是從應(yīng)用層的角度來(lái)檢查每一個(gè)分組。例如,一個(gè)郵件網(wǎng)關(guān)在檢查每一個(gè)郵件時(shí),要根據(jù)郵件的首部或報(bào)文的大小,甚至是報(bào)文的內(nèi)容(例如有沒有涉及敏感詞)來(lái)確定該郵件能否通過防火墻。