第12章 IP網絡控制技術_第1頁
第12章 IP網絡控制技術_第2頁
第12章 IP網絡控制技術_第3頁
第12章 IP網絡控制技術_第4頁
第12章 IP網絡控制技術_第5頁
已閱讀5頁,還剩236頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第12章IP網絡控制技術本章提綱12.1差錯控制12.1.1檢錯編碼12.1.2IP的差錯控制12.2通信量控制12.2.1流量控制12.2.2擁塞控制12.3IP安全體系結構和安全算法12.3.1網絡信息安全概念12.3.2IPSec12.3.2IPSec使用的安全算法續(xù)12.4QOS技術和體系結構12.4.1什么是QoS技術12.4.2集成服務12.4.3區(qū)分服務12.4.4子網帶寬管理SBM12.4.5MPLS的QoS12.4.6QoS體系結構本章提要本書討論的控制技術包括差錯控制、通信量控制、安全技術和服務質量技術。嚴格來講,前面章節(jié)介紹的域名解析、路由選擇、地址解析、邏輯連接管理等內容也可以看作是有關控制的技術,但是由于它們與數據傳輸關系緊密,不便于獨立介紹,因此在前面結合著數據傳輸先行介紹了。IP網絡的控制技術內容非常豐富。由于本書篇幅和目的所限,我們不展開討論,而只是介紹問題的由來、解決問題的方法以及技術的發(fā)展趨勢等基本內容,使讀者對上述技術有個基本的認識。12.1差錯控制編碼信號在傳輸過程中受到干擾時,就有可能使某個或某幾個“1”變成“0”,或使“0”變成“1”,這時就發(fā)生了差錯。顯然,接收方在接受數據之前,必須判斷數據是否有差錯。判斷是否存在差錯叫檢錯。檢糾錯方法當接收方檢測出差錯以后,為了得到正確的數據,它可以采取2種作法以得到正確的數據,即:(1)通知發(fā)送方重發(fā)數據:把錯誤數據的特征信息(例如數據幀編號)反饋給發(fā)送方,要求發(fā)送方重新發(fā)送該數據,直至接收到無差錯的數據為止。這種方式的典型方法是自動請求重發(fā)ARQ(AutomaticRepeatreQuest)。(2)自己糾正數據中的差錯(糾錯):通過一定的算法確定差錯的具體位置(檢錯不能做到這點),并自動加以糾正。這種方式的典型方法是FEC(ForwardErrorCorrection)。當差錯超出糾錯范圍時,FEC就無能為力了。12.1.1檢錯編碼為了能對數據檢糾錯,需要對數據進行編碼。編碼的作法是把k比特的原始數據轉換為n比特的編碼數據(n>k)。新增加的n-k比特稱為監(jiān)督位。編碼的關鍵是如何產生監(jiān)督位。監(jiān)督位必須滿足的條件(1)n比特數據與k比特數據要一一對應。(2)編碼數據之間的差異要盡可能的大。漢明距離n-k比特的監(jiān)督位與k比特的數據在n比特的編碼數據中一起發(fā)送給接收方。漢明距離是指一種編碼的全部碼字兩兩之間距離的最小值,2個碼字之間的距離是指對應位置上二進制值不同數字的個數。例如,碼字10010110001和11001010101的第2,4,5,6和9位(從左至右)的值不同,因此,它們之間的距離是5。如圖12-1所示。圖12-1漢明距離常用的檢錯碼(1)恒比碼:在n比特的恒比碼中,恒定有k比特的值為“1”,另外有n-k比特值為“0”。當接收方收到不符合此規(guī)則的編碼時,就判斷有差錯。我國采用的恒比碼中n=5,組成代表0~9十個數字的編碼,如表12-1所示。表12-1恒比碼數字電碼數字電碼012340110101011110011011011010567890011110101111000111010011(2)垂直水平奇偶校驗碼垂直水平奇偶校驗碼也稱縱橫奇偶校驗或方陣碼。在這種校驗碼中,每一字符占據一列,低位比特在上,高位比特在下。每個字符的第8位比特(b8)作為垂直奇偶校驗位。若干字符縱向排列形成一個方陣,各字符的同一行比特形成水平奇偶校驗位,放在在每一行的最右邊一位。一個字符中1的個數是奇數時垂直校驗位=1,否則為0;一行中1的個數是奇數時水平校驗位=1,否則為0。表12-2所示為垂直水平奇偶

校驗碼結構b110101010101010b201100110011001

b300011110000111b400000001111111

b500000000000000

b610100110010010

b7010110011011011111000b8001011001101000(3)循環(huán)冗余校驗碼在n比特的循環(huán)冗余校驗碼(CyclicRedundancyCheck,CRC)中,有k比特的信息比特和n-k比特的監(jiān)督比特。監(jiān)督比特由信息比特按照一定的算法產生。這種編碼的碼字循環(huán)移位后得到碼字也是CRC編碼的一個碼字,換句話說,如果用Ci表示碼字的第i比特,則Cn-1Cn-2…C1C0、Cn-2Cn-3…C0Cn-1、…、C0Cn-1…C2C1都是CRC碼字,這就是循環(huán)的含義。監(jiān)督比特由以下算法計算把k比特信息比特表示成M(x)=Mk-1xk-1+Mk-2xk-2+…+M1x+M0

其中Mi(i=0,…,k-1)就是k比特的值(0或1)。例如,如果信息比特是10011,則對應的M(x)=x4+x+1。稱M(x)為報文多項式。常用的G(x)有以下3個G(x)=x12+x11+x3+x2+x+1(CRC-12)G(x)=x16+x15+x2+1(CRC-16)G(x)=x16+x12+x5+1(CRC-CCITT)還有一種檢錯能力更強的G(x),即:

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1CRC定義設M(x)的編碼對應的多項式為T(x),則CRC定義為:

T(x)=Xn-kM(x)-C(x)

其中C(x)是Xn-kM(x)除以G(x)的余式。顯然T(x)能被G(x)除盡。檢錯原則發(fā)送方發(fā)送的是T(x)系數對應的比特序列Tn-1Tn-2…To。接收方收到n比特編碼后,用它們對應的多項式除以G(x),如果能除盡,則認為接收的比特沒有錯,否則,認為有錯誤。讀者可能會問在T(x)的比特序列Tn-1Tn-2…To中哪些比特是M(x)的呢?換句話說,接收方判定沒有差錯之后,如何從T(x)中分離出M(x)呢?實際上,存在以下對應關系:Tn-1=MK-1,Tn-2=MK-2,…,Tn-k=M0。因此,接收方提取Tn-1Tn-2…To的左邊k比特即可。為什么存在上述對應關系呢?原因在于G(x)是經過精心定義的特殊多項式,它具有使上述關系成立的特性。CRC應用在802.3以太網MAC幀中的FCS字段放入的就是32比特的CRC監(jiān)督比特值。HDLC幀中FCS字段值是由CRC-CCITT生成多項式計算的監(jiān)督比特值。在IP頭部的檢驗和字段沒有使用CRC編碼,原因是該檢驗字段只控制頭部的差錯,沒有包括數據字段,因而沒有使用功能強,但計算量大的CRC編碼。IP頭部檢驗和的計算方法將IP頭部看作以16比特為單位的比特段序列,先將檢驗和字段值置零,然后將所有的16比特段相加,再求和的二進制反碼作為檢驗和的值。接收方收到IP分組后,將頭部的所有16比特相加(包括檢驗和),如果頭部沒有發(fā)生錯誤,則和必全為1。否則即認為出錯,并將IP分組丟棄。12.1.2IP的差錯控制首先我們先回顧一下IP協(xié)議的特點。IP協(xié)議是一個無連接的協(xié)議,它在發(fā)送IP分組之前并不建立到接收方的連接,它只是通過路由選擇知道下一跳路由器,然后把IP分組發(fā)送給它。另外,源IP協(xié)議不知道它發(fā)送出去的IP分組在去往目的主機的路上會出現哪些問題,以及網絡工作的一些細節(jié),甚至不知道IP分組是否被目的主機接收??傊?,IP協(xié)議缺乏差錯控制、流量控制、管理查詢功能以及完善的輔助機制,導致IP分組傳輸的可靠性不高。為了彌補IP協(xié)議存在的上述問題,在不改動IP協(xié)議的前提下,定義了ICMP。1.ICMP的差錯報告IP分組在傳輸過程中會出現以下異常情況,它們的出現會觸發(fā)ICMP報文的發(fā)送。這些異常情況包括:(1)目的站不可達:當路由器不能通過路由選擇為IP分組找到下一跳路由器或目的主機時,稱這種情況是目的站不可達。此時,路由器會發(fā)送ICMP目的站不可達報文給主機,通知造成目的站不可達的原因,例如是網絡不可達、主機不可達、協(xié)議不可達、端口不可達,還是其他管理上的原因(如人為設置的過濾器)。(2)擁塞當路由器或目的主機接收到過多的IP分組而來不及轉發(fā)或處理時,稱這種情況是擁塞。此時,路由器或目的主機會發(fā)送ICMP源站抑制報文給源站,通知擁塞的發(fā)生。源站收到源站抑制報文之后會降低發(fā)送速率直至不再收到源站抑制報文。(3)超時當IP分組的TTL字段值等于0時,或者當一個報文的分片沒有在一定時間內到達目的主機時,稱這種情況是超時。此時,路由器或目的主機會向源站發(fā)送ICMP超時報文通知發(fā)生超時。(4)參數出錯當IP分組頭部的參數出現二義性或某個字段中缺少某個值時,稱這種情況是參數問題。此時,路由器或目的主機會向源站發(fā)送ICMP參數問題報文通知參數出錯。(5)路由過時因為主機是不參與路由更新的,因此,主機上的路由表會過時,為了保證主機路由表的時效性,主機的默認路由器會發(fā)送ICMP改變路由報文給主機,通知最新的路由信息。讀者可能會問IP分組被丟棄了,相應的數據如何再得到呢?這就需要IP分組重傳。重傳IP分組所需要的必要信息由ICMP差錯報文反饋給源主機。ICMP差錯報文與被丟棄IP分組的關系如圖12-2所示。圖12-2ICMP差錯報文的數據由被丟棄的IP分組而來ICMP差錯報告報文的一般格式如圖12-3所示。圖12-3ICMP報文字端含義(1)類型:占8比特,指明差錯的種類。(2)代碼:占8比特,指明引起錯誤的原因。(3)校驗和:占16比特,其值的計算與IP分組中校驗和的計算一致。校驗的范圍包括整個報文。(4)頭部的其余部分與類型字段有關,當類型是目的站不可達、源站抑制、超時時,該字段值為0。當類型是參數問題報文時,該字段由2部分組成,如圖9-10所示。其中指針指向有問題的字節(jié)(代碼=0時。當代碼=1時,指針=0)。當類型是改變路由報文時,該字段是目標路由器的IP地址,即IP分組的下一跳路由器地址。2.ICMP查詢除了報告IP分組在轉發(fā)和處理上存在的問題之外,ICMP還具有診斷和查詢功能,用于了解掌握網絡的運行情況。這項功能通過ICMP查詢報文(圖12-4)實現。圖12-4ICMP查詢報文ICMP報文封裝的過程如圖12-5所示。圖12-5ICMP的封裝12.2通信量控制在計算機網絡中有一種普遍存在的問題,即接收方因不能及時處理到來的數據而不得不把部分數據丟棄,嚴重時甚至導致接收方不能正常工作。例如,當發(fā)送方在一個相對較快或負載較輕而接收方在一個相對較慢或負載較重的機器上運行時,就會出現上述問題。我們稱這個問題為通信量控制問題。本節(jié)要介紹的就是解決這個問題的方法。讀者可能會問發(fā)送方和接收方是指主機/路由器嗎?我們說,發(fā)送方和接收方準確的含義是參考模型中的層實體,例如層協(xié)議軟件。換句話說,當源機器中的第n層實體是發(fā)送方時,目的機器的對等層就是接收方。當然,用戶關心的是應用層數據是否能夠被全部接收,也就是說,源主機應用程序的數據能否被目的主機接收。例如一個WWW服務器的頁面是否完整地被下載到瀏覽器窗口中。原因但是,源主機應用層數據不能被目的主機應用層接收的原因不一定只存在于應用層實體(例如服務器軟件或瀏覽器故障),也有可能是運輸層、網絡層、數據鏈路層,甚至是物理層引起的。例如:(1)目的主機運輸層TCP端口的緩沖區(qū)溢出,造成TCP報文段被丟棄。(2)路由器CPU速度較慢,使得IP層來不及完成路由表刷新、路由選擇、IP分組的分片封裝以及轉發(fā)工作,導致IP分組積壓(3)相鄰WAN交換機的數據鏈路層之間由于一方發(fā)送幀的數量超過了對方的處理能力,造成幀被丟棄。結論可見,造成通信量控制問題的原因有主機的,有路由器的,有WAN交換機的。主機的原因主要在于運輸層,路由器的原因主要在于網際層,WAN交換機的原因主要在于數據鏈路層。流量控制的含義由于運輸層和數據鏈路層在發(fā)送數據之前一般先要建立數據通路,然后數據以流的形式在其上傳播。因此,這2層的通信量控制被稱為流量控制。擁塞的含義網際層以存儲轉發(fā)方式發(fā)送數據,數據以分組形式獨立被路由(第三層交換除外)。當過量的分組在路由器積壓時,稱為擁塞。因此,網際層的通信量控制被稱為擁塞控制。通信量控制方法(1)滑動窗口法:它是主要的流量控制方法。TCP使用了該方法。數據鏈路層也使用該方法。有意思的是,TCP也用它控制擁塞。(2)擁塞預警法:IP層ICMP使用的就是該方法。另外,幀中繼也使用類似的方法。(3)通信量整形法:ATM的擁塞控制使用該方法。常用的通信量整形法包括漏桶法和令牌桶法。(4)加權公平隊列法:它用于增強擁塞預警法的效力。IP路由器使用該方法。12.2.1流量控制流量控制(flowcontrol)又可以稱為流控制,因為這種通信量控制的對象是數據流而不是單個數據(例如分組)。數據流是在一個連接上發(fā)送的數據,如第2層點到點數據鏈路上的幀序列,或是第4層TCP連接上的TCP報文段串的字節(jié)流。流量控制的基本思想根據接收方的可用緩存空間大小和處理數據能力來發(fā)送數據。其典型的方法就是滑動窗口法。TCP就采用這種方法。1.滑動窗口窗口是指運輸層軟件使用的緩存的一部分,而且這部分空間是空閑的。當緩存中有數據進入或被應用程序取走時,空閑空間的位置在緩存中會變動。因此,稱之為滑動窗口。發(fā)送方和接收方在一個連接上定義一個滑動窗口,它是接收方空閑緩存的全部或部分。在連接建立過程中,接收方把滑動窗口的大小告訴給發(fā)送方。發(fā)送方按照接收方窗口的大小發(fā)送數據。顯然,這樣的發(fā)送不會導致接收方緩存溢出。2.TCP滑動窗口圖12-6TCP滑動窗口的一個例子。圖12-6TCP滑動窗口窗口的大小窗口大小可增可減,如圖12-7所示。圖12-7窗口增減3.糊涂窗口綜合癥當發(fā)送方應用程序產生數據(向TCP提交)或者接收方應用程序從TCP提取數據的速率很慢時,滑動窗口中的字節(jié)數量會很少,比如只有1個字節(jié)。顯然,為發(fā)送1個字節(jié)而發(fā)送1個TCP報文段(頭部就占20個字節(jié))是不合算的。這個問題稱為糊涂窗口綜合癥。解決糊涂窗口綜合癥的方法對滑動窗口方法進行改進。在發(fā)送方,改進的基本思路是強迫TCP收集數據,當窗口中的字節(jié)數達到一定數量時再一起發(fā)送。Nagle算法它的步驟包括:

第1步:發(fā)送方TCP發(fā)送窗口中的第1塊字節(jié),哪怕只有1個。

第2步:然后在輸出緩存中積累數據并等待。當收到接收端的TCP確認或者數據可以裝成一個最大報文段時,發(fā)送數據。

第3步:重復第2步。接收端改進滑動窗口的作法(1)Clark法:只要有數據到達就發(fā)送確認,但宣布窗口大小為0,直至緩沖空間可以放入最大長度報文段,或者緩存的一半空閑。(2)延遲確認:當一個報文段到達時并不立即發(fā)送確認,直到輸入緩存有足夠的空閑空間為止。延遲確認法比Clark法好在減少了確認報文,但延遲時間過長會導致發(fā)送方的重傳。為此,目前規(guī)定延遲時間不能超過500毫秒。12.2.2擁塞控制當主機發(fā)送給網絡的分組在其傳輸容量范圍內時,分組會全部被轉發(fā)到目的地(除因其他問題的少數分組之外),而且被成功轉發(fā)的數目與主機發(fā)送的數量成正比。當網絡被“注入”的分組數量迅速增加時,會使大量的分組在網絡中積聚,進而導致網絡傳輸能力的進一步下降。這時網絡就發(fā)生了擁塞(congestion)。路由器由于不堪重負開始丟棄分組,使被成功轉發(fā)的分組數量急劇下降。擁塞對網絡性能的影響如圖12-8所示。圖12-8當通信量太大時,會發(fā)生擁塞,網絡性能顯著下降造成網絡擁塞的原因(1)存儲空間不足:當n個分組從幾個方向到達路由器并都從一個方向輸出時,若輸出緩沖區(qū)的空間只能存儲n-1個分組,那么就會有一個分組被丟棄。(2)處理器速度慢:如果路由器CPU的處理速度太慢,即使到來的分組數量不太大,也可能導致存儲空間溢出。(3)鏈路帶寬低:盡管存儲空間和CPU的指標很高,但如果輸出鏈路的帶寬相對過低,也會導致部分分組不能被及時轉發(fā)。值得指出的是增加存儲空間可以避免分組在該路由器被丟棄,但可能導致分組因排隊時間過長而超時(但仍被該路由器轉發(fā))。超時會引起該分組的重發(fā),從而使網絡的通信量額外地增加。1.擁塞預警法為了避免被大量到來的分組淹沒,路由器可以建立一種擁塞預警機制,當輕度擁塞發(fā)生時,通知源主機減少發(fā)送分組的數量,這樣會減輕擁塞加劇。發(fā)現擁塞發(fā)生的途徑(1)輸出線路利用率。如果利用率過高,則認為擁塞發(fā)生。(2)輸出隊列長度。如果隊列長度接近滿員,則認為擁塞發(fā)生。(3)分組丟棄率。如果被丟棄的分組占接收分組的比率達到一定的門限值,則認為擁塞發(fā)生。抑制分組當路由器發(fā)生擁塞時,它發(fā)送一種特殊的分組(稱為抑制分組,chockpacket)給所有的源主機。源主機收到抑制分組后按一定的比率減少發(fā)送給特定目的地的通信量。經過一定的時間,如果再收到抑制分組,主機再減少通信量。當一定時間后,主機再沒收到抑制分組時,認為擁塞解除,再逐步恢復發(fā)送速率。問題是主機收到抑制分組后是否降低其速率是自愿的,而且降低速率的主機可能對擁塞不負主要責任。為了克服上述問題,需要使真正造成擁塞的源主機降低發(fā)送速率。下面,我們介紹這樣一種方法——加權公平隊列法(WeightedFairQueuing,WFQ)。該方法已經廣泛地應用于ATM交換機和IP路由器中。做法如圖12-9所示。路由器的每條輸出線路有多個隊列,每個源主機對應一個。每當線路空閑時,路由器便循環(huán)掃描各隊列。掃描是按字節(jié)進行的,即先掃描第1個隊列的第1個字節(jié),再掃描第2個隊列的第1個字節(jié)。直至每個隊列的分組都掃描完(如(a)所示)。同時記錄下每個隊列掃描用時,如圖(b)所示。然后按照隊列掃描用時少在前、多在后的順序發(fā)送分組。這樣做就鼓勵源主機降低發(fā)送通信量。圖12-9(a)5個隊列中5個分組;(b)發(fā)送順序和掃描用時2.通信量整形所謂通信量整形是指把主機向網絡輸出分組的速率調整到一個固定的平均速率,以使路由器能夠以現有資源平穩(wěn)地處理它。漏桶法(leakybucketalgorithm)其原理如圖12-10所示。圖12-10漏桶算法算法主機每隔一個時鐘節(jié)拍向網絡發(fā)送一個分組(這可以通過接口卡或操作系統(tǒng)強制做到),這樣主機中用戶進程的變速的分組流以均速向網絡發(fā)送,從而使突發(fā)的數據流變得“平滑”。令牌桶算法如圖12-11所示每ΔT秒生成一個令牌,主機每發(fā)送一個分組就消耗一個令牌。當沒有令牌時(令牌桶為空),不能發(fā)送分組。在圖12-11(b)中,由于令牌桶中沒有令牌,剩下的2個分組只有等待新令牌才能發(fā)送。圖12-11令牌桶算法令牌桶算法對漏桶算法改進(1)令牌桶沒有限定分組的發(fā)送頻率,它規(guī)定的是令牌的生成速率,因而主機可以選擇發(fā)送分組的時機:是每隔一定時間發(fā)一個,還是一下子把令牌都用完。因此,令牌桶算法支持突發(fā)通信。(2)漏桶法會丟失分組,而令牌桶法不會。當桶滿時,溢出的是令牌而不是分組。算法的綜合應用上述通信量整形的算法不但適用于主機到網絡的通信整形,也同樣可用于路由器之間的通信量整形。另外,2個算法也可以結合使用,即在令牌桶的下面加上一個漏桶(漏桶的速率要比令牌桶的大,但比網絡的最高速率小),如圖12-12所示,這樣既可以支持突發(fā)通信,又可以降低擁塞發(fā)生的概率。圖12-12令牌桶+漏桶算法TCP對擁塞控制的貢獻TCP是如何控制擁塞呢?要回答這個問題就要分析一下TCP與擁塞的關系。我們知道,TCP報文段是封裝到IP分組中發(fā)送的,TCP向IP發(fā)送數據的速率越快,IP產生的分組就越多,主機發(fā)送到網絡中的分組就越多。因此,TCP的發(fā)送速率會影響擁塞的發(fā)生?;瑒哟翱谟糜趽砣刂频?/p>

窗口大小窗口大?。絤in(接收端通知的窗口大小,擁塞窗口大小)說明擁塞窗口大小由網絡擁塞程度決定。顯然,新窗口的定義同時滿足了流量控制和擁塞控制的需要。問題是擁塞窗口的大小如何獲得。由于網絡中存在多個路由器,擁塞可能發(fā)生在部分路由器上,因此,不能由網絡提供擁塞窗口的大小。實際上,擁塞窗口的大小由發(fā)送方TCP確定。下面,我們分析具體的作法。做法首先,TCP通過TCP報文段丟失現象(在記時內沒有收到確認)判斷發(fā)生了擁塞。在沒有擁塞時,擁塞窗口的大小設為最大報文段長度MSS。其后每收到一個確認,擁塞窗口大小就增加一個最大報文段長度,直到某個允許門限值。這個過程稱為慢啟動(其實窗口大小的增長一點也不慢,因為窗口大小是MSS×2n,n是確認報文數)。當擁塞發(fā)生時,令擁塞窗口大小等于一個MSS,而門限值為上次發(fā)送時的擁塞窗口的一半。12.3IP安全體系結構和

安全算法12.3.1網絡信息安全概念破譯(interception)。當Alice通過網絡與Bob通信時,Jack采取辦法了解他們通信的內容。中斷(interruption)。Alice與Bob的通信被Jack中斷。篡改(modification)。Alice給Bob發(fā)信說:“給John加薪”。信經過Jack時,他把信改成:請給Jack加薪。假冒(personation)。Jack告訴Bob:“我是Alice”。然后,Jack偽造信息發(fā)給Bob;或者要求Bob給他發(fā)信。攻擊分類攻擊分為被動攻擊和主動攻擊。在被動攻擊中,攻擊者(也稱為入侵者)只是觀察某個協(xié)議數據單元PDU(第2層的幀、第3層的分組或是第4層的TCP報文段、第5層的HTTP報文)而不破壞它們,這些PDU還能正常被處理。例如,攻擊者通過觀察PDU的頭部控制信息了解正在通信的協(xié)議實體的地址和身份,研究PDU的長度和傳輸的頻度,以便了解所變換的數據的性質(這種被動攻擊又稱為通信量分析)。主動攻擊攻擊者要對PDU進行更深入的分析,以獲得PDU中數據的真實含義,或者有選擇地更改、刪除、延遲這些PDU,或者把PDU復制下來,稍后再發(fā)到原來的數據通道上去(重放攻擊的作法),甚至偽造一些PDU。Jack的上述行為都屬于主動攻擊。加密與解密加密是指將明文變換成密文的過程。解密是指從密文還原明文的過程。加密過程使用的方法稱為加密算法,解密過程使用的算法稱為解密算法。有時,加密和解密使用同一個算法。加密用于隱藏數據的真實含義。密鑰是一個隨機生成的數據,與加密算法一起對明文進行加密,或與解密算法一起對密文進行解密。身份認證它是一種用來鑒別通信參與者是否真的是他所聲稱的身份的方法。身份認證用于發(fā)現那些假冒的入侵者。完整性校驗它是一種用來檢查數據在通信過程中是否被修改過的方法。完整性校驗可以檢查出被篡改過的數據,或者發(fā)生了通信錯誤的數據。不可否認性確認它是一種證明發(fā)送者的確發(fā)送過某個信息的方法。該方法可以防止發(fā)送者的抵賴行為。12.3.2IPSec從總體來看,當前IP網絡的安全主要由一種稱為IPSec的功能集提供。它是IETF的IPSec工作組為Internet制訂的安全體系結構。由于TCP/IP是Internet的通信協(xié)議,因此Internet的許多安全問題都與IP協(xié)議有關。TCP/IP協(xié)議在制定之初沒有充分考慮網絡將會面臨的安全威脅,因此,協(xié)議中缺乏完善的安全機制(有些協(xié)議甚至一點也沒有)。為此制定了IP網絡的安全體系結構IPSec以加強IP網絡的安全性。IPSec安全體系組成部分(1)IP認證頭部(AuthenticationHeader,AH):AH提供數據源身份認證、數據完整性和重放攻擊保護等功能。(2)IP封裝安全負荷(EncapsulatingSecurityPayload,ESP):ESP提供數據保密、數據源身份認證、數據完整性和重放攻擊保護等功能。(3)因特網密鑰交換(InternetKeyExchange,IKE):IKE負責安全關聯(lián)管理和密鑰管理。IKE由Internet安全關聯(lián)和密鑰管理協(xié)議(InternetSecurityAssociationandKeyManagementProtocol,ISAKMP)和Oakley協(xié)議等協(xié)議實現。

IPSec為IP網絡提供的安全功能(1)數據源身份認證:證實數據是所聲稱的發(fā)送者發(fā)送的。(2)數據完整性:證實數據的內容在傳輸過程中沒被修改過,無論是出于人為故意的原因還是隨機的傳輸錯誤。(3)數據保密:通過加密隱藏數據的的真實含義。(4)重放攻擊保護:防止攻擊者獲得數據,過一段時間后再把該數據放回信道。(5)密鑰管理和安全關聯(lián)管理:保證只需少量或根本不需要手工配置來管理密鑰和安全關聯(lián)。安全關聯(lián)SASA是2個IPSec系統(tǒng)之間的單工邏輯連接,它由一個三元組結構<SPI,目的IP地址,安全協(xié)議>定義。SPI(SecurityParameterIndex)是一個32比特數,用于區(qū)別具有相同目的IP地址和安全協(xié)議的安全關聯(lián)。SPI在SA建立過程中由目的系統(tǒng)選擇(0~255除外)。目的IP地址是建立安全關聯(lián)發(fā)起方的響應方的IP地址。安全協(xié)議指AH或ESP。安全關聯(lián)數據庫SADSAD包括每一個SA的參數信息,例如AH或ESP加密算法/密鑰、順序號、協(xié)議模式以及SA生命周期SAD決定了一個給定的分組究竟使用哪一個SA。安全策略數據庫SPD它包括一個排序的策略列表,針對流入數據和流出數據有不同的數據項。這些數據項指定某些數據流必須繞過IPSec處理,而某些數據流必須被丟棄,其余的則必須經過IPSec模塊的處理。1.認證頭部AHAH的作用是為IP分組提供完整性校驗和身份認證。AH通過對IP分組頭部中的不變字段實施保護來實現完整性校驗(可變字段包括服務類型TOS、標志位、段偏移、生存期TTL、頭部校驗和)。AH只處理沒被分段的IP分組,AH通過丟棄被分段分組防止假冒,提供身份認證。AH頭部在IP分組的位置及其包含的字段如圖12-13所示。圖12-13AH頭部格式字段含義(1)下一頭部:8比特。用于標識認證頭部后面數據是哪個協(xié)議的,其值是Internet編號管理機構IANA(InternetAssignedNumbersAuthority)發(fā)布的“數字分配RFC”中定義的IP協(xié)議號。(2)長度:8比特。認證數據的長度,單位是字節(jié)。(3)保留字段:16比特。當前默認值為0。(4)安全參數索引SPI:32比特。用于標識具有相同IP地址和相同安全協(xié)議的不同安全關聯(lián)。SPI=0作為本地特殊使用,1~255由IANA保留。續(xù)(5)序列號:32比特。它是個單向遞增的計數器。發(fā)送方在分組中加入該字段。在一個SA建立時,序列號初始值為0,在該SA上每發(fā)送一個分組,序列號就加1。由于序列號不允許重復,因此能夠防止重放攻擊。(6)認證數據:變長,但其長度要是32比特的整數倍。認證數據用于驗證所收到的分組是完整的,它由SA初始化時指定的認證算法計算。AH傳輸模式在傳模模式中,AH頭部被插入到IP分組頭部的后面,如圖12-14所示。圖12-14AH傳輸模式AH隧道模式需要保護的IP分組被封裝在新的IP分組中(原來的IP分組作為新IP分組的負荷),然后對新IP分組按傳輸模式處理。如圖12-15所示。圖12-15AH隧道模式注當安全關聯(lián)的一方是網關時,就要使用隧道模式。如果安全關聯(lián)的兩端都是防火墻,那么就必須使用隧道模式。在隧道模式下,外層頭部中的IP地址可以與內部頭部中的IP地址不一樣,例如,內層頭部中的地址是主機地址,外層地址是網關地址,這樣兩個網關可以通過AH隧道保護它們所連接的網絡主機之間的全部通信。隧道模式的主要優(yōu)點可以對被封裝的分組提供完全的保護(所有字段都被保護),同時使私有地址的使用成為可能(只需將它們放在內層頭部中)。缺點是增加了額外的開銷(多了一層IP頭部)。2.負荷安全封裝ESP負荷安全封裝ESP的功能是給IP分組提供以下安全服務:

(1)完整性校驗

(2)身份認證

(3)加密

(4)重放攻擊保護(可選)上述安全服務在安全關聯(lián)SA建立時,按照以下規(guī)則約定:(1)完整性校驗與身份認證必須同時使用。(2)要使用重放攻擊保護功能時必須同時使用完整性校驗和身份認證。(3)重放攻擊保護功能只能由接收方選擇。ESP報文格式如圖12-16所示。圖12-16ESP報文格式ESP報文組成部分(1)ESP頭部:包括安全參數索引和序列號。(2)ESP尾部:包括填充、填充長度和下一頭部等字段。其中下一頭部字段給出原始IP分組數據區(qū)中的數據是哪個協(xié)議的。(3)負荷數據:經過加密的IP分組數據。加密算法由SA建立過程協(xié)商選擇,如DES(DataEncryptionStandard)(4)認證數據:該字段包含由前面ESP頭部、負荷數據和ESP尾部計算出的ICV值。只有當SA初始化選擇了完整性校驗和身份認證時,報文中才會有該字段。ESP要求支持至少2種算法,如MD5(MessageDigest5)和SHA-1。ESP的認證范圍包括ESP頭部、負荷數據和ESP尾部。ESP的加密范圍是整個原始IP分組。ESP傳輸模式ESP頭部被插入到IP頭部后面,如圖12-17所示。圖12-17ESP傳輸模式特點分析傳輸模式下的ESP不為IP頭部提供身份認證和加密,誤傳的IP分組也會被交給ESP處理。這是ESP的一個缺點,ESP的優(yōu)點是開銷較小。和AH一樣,傳輸模式下的ESP通常由主機使用。網關甚至可以不支持傳輸模式。ESP隧道模式ESP首先創(chuàng)建一個新的IP分組,將原始的IP分組封裝在其中,然后對新IP分組按ESP傳輸模式處理。如圖12-18所示。圖12-18ESP隧道模式注只要安全關聯(lián)的一個端點是網關,就要使用隧道模式,而2個防火墻之間通常要使隧道模式。雖然網關可以只支持隧道模式,但它們也經常工作在傳輸模式下,此時,網關以普通主機身份參與通信。在隧道模式下,外層頭部中的IP地址可以跟內層頭部中的IP地址不一樣,這一點與AH是一致的。隧道模式的優(yōu)缺點可以對被封裝的分組提供完全的保護,同時提供了使用私有地址的可能其缺點是增加了額外的開銷。讀者可能會問為什么AH和ESP會同時存在呢?原因有以下方面:(1)ESP要求使用高強度的加密算法,而無論實際上是否需要。由于高強度加密算法被許多國家嚴格管制,因此,在實施ESP時會有很多意外的限制,而AH可以在全球自由使用。(2)很多情況下只需要認證服務即可,而此時AH比ESP的效率高,因為它格式簡單,額外開銷小。(3)另外,AH與ESP的同時存在使安全方案更加靈活,尤其在同時使用AH與ESP時,利用二者的優(yōu)點會增加安全方案的針對性和適用性。3.IPSec在VPN中的應用虛擬專用網(VirtualPrivateNetwork,VPN)是一種在公共網絡或共享網絡(如公司網、Intranet、Extranet)上通過隧道等技術為私有數據建立一個受保護通道,用戶可以通過它傳輸自己的數據,通道對其他人來說是保密的。VPN示意圖如圖12-19所示。圖12-19VPN示意圖VPN應用分支機構網絡與公司內部網互聯(lián)第3方網絡與公司內部網互聯(lián)遠程訪問用戶訪問公司內部網等場合。IPSec的AH和ESP可以用于形成VPN中的通道。AH隧道模式+ESP傳輸模式VPN如圖12-20所示。圖12-20AH傳輸+ESP隧道

構建VPNAH與ESP對IP分組的保護過程(1)當主機H1要向H2發(fā)送一個IP分組時,主機H1先創(chuàng)建IP分組,對其做ESP處理,然后將IP分組發(fā)給網關G1,IP分組中的目的地址是H2。(2)網關G1經過識別發(fā)現該IP分組應當先發(fā)給G2。經過對IPSec數據庫(SPD和SAD)的查詢,G1進一步得知轉發(fā)IP分組之前先要使用隧道模式對IP分組做AH處理。然后G1對IP分組做必要的封裝,外層的IP分組的目的地址是網關G2,真正的目的地址H2此時已經被封裝了。續(xù)(3)網關G2接收到AH隧道封裝的IP分組后,對IP分組做身份認證,然后將外部包頭去掉,于是G2發(fā)現IP分組的真正目的地址是H2,然后將該IP分組轉發(fā)給給H2。(4)H2收到了H1發(fā)出的IP分組,H2對IP分組做傳輸模式的ESP處理,即去掉ESP頭部、ESP尾部和ESP認證數據,取出負荷。上述過程中IP分組的格式變化情形如圖12-21所示。圖12-21AH傳輸+ESP隧道

中的IP分組3.因特網密鑰交換協(xié)議從前面的介紹中讀者可以看到,安全關聯(lián)是AH和ESP實施的基礎,AH和ESP都是在某個安全關聯(lián)連接上進行的。安全關聯(lián)定義了AH和ESP使用的加密算法、密鑰和認證算法以及其他安全參數。安全關聯(lián)是為安全通信而動態(tài)建立的,因此它存在一個協(xié)商、修改和刪除的管理問題。

由于加密算法是國際通用,換句話說,是公開的。因此,加密數據的保密性就取決于加密算法使用的密鑰的保密性。在IPSec使用的加密算法中,有的算法(如DES)的密鑰是私有的,只能供發(fā)送方(加密者)和接收者(真實的)使用,因此,還存在一個密鑰的產生、分發(fā)、銷毀等管理問題。ISAKMP和Oakley密鑰交換的

2個階段第1階段,雙方協(xié)商創(chuàng)建一個主密鑰,以后用于保護用戶數據流的所有密鑰都根據主密鑰產生。該階段主要工作是建立對ISAKMP報文自身的保護措施,它并不創(chuàng)建用于保護用戶數據的安全關聯(lián)或密鑰。該階段用于協(xié)商主密鑰而創(chuàng)建的安全關聯(lián)稱為ISAKMP安全關聯(lián)。續(xù)第2階段雙方協(xié)商用于加密用戶數據的密鑰。該階段的ISAKMP報文仍在第1階段建立的ISAKMP安全關聯(lián)上交換。第2階段協(xié)商密鑰的頻率要比第1階段的高。ISAKMP安全關聯(lián)創(chuàng)建的

基本過程假設主機A是發(fā)起方,而主機B是響應方。在ISAKMP安全關聯(lián)創(chuàng)建的過程中,雙方要交換以下6個ISAKMP報文:(1)報文1和報文2用于協(xié)商安全關聯(lián)的特征。它們以明文方式傳輸,且沒有身份認證。(2)報文3和報文4用于交換一個隨機數nonce。同時使用Diffie-Hellman算法創(chuàng)建一個主密鑰(SKEYID)。它們也以明文方式傳輸,不做身份認證。(3)報文5和報文6用于交換通信雙方相互認證所需的信息。這2個報文由前4個報文建立的加密算法和密鑰保護。續(xù)主機A在初始化時,創(chuàng)建報文1(如圖12-22所示)。在該報文中A向B提出n個建議供B選擇。報文1被封裝在UDP報文中(端口號=500,ISAKMP專用)經IP層發(fā)送。IP頭部的源地址是A的地址,目的地址是B的地址。圖12-22為創(chuàng)建ISAKMP關聯(lián)而發(fā)送的報文1字段含義ISAKMP頭部中交換類型是主模式(在創(chuàng)建ISAKMP關聯(lián)過程總是這樣的)。報文標識符是0。響應方式Cookie字段設為0,發(fā)起方Cookie字段添入一個隨機選擇的數。安全關聯(lián)字段用于標識在安全關聯(lián)上傳輸的數把是哪個協(xié)議的。此處值是IP。建議字段值為PROTO-ISAKMP。變換字段值為KEY-OAKLEY。當變換字段值為KEY-OAKLEY時,主機A必須指定相關的屬性,即使用身份認證方法、偽隨機函數和加密算法。續(xù)主機B收到發(fā)來的報文1后,如果支持報文1中的某些建議,則向A發(fā)送報文2,告訴它所選擇的建議。此時,A與B的第1次協(xié)商成功結束。續(xù)在報文2中,B要選擇一個隨機數作為它的Cookie字段值,該值與A在報文1中使用的隨機數構成<Cookie-A,Cookie-B>數對作為ISAKMP安全關聯(lián)的SPI。第1次協(xié)商的結果是雙方確定了SPI、認證方法、加密方法。但是雙方還沒有進行相互認證。第2次協(xié)商雙方交換報文3和報文4。協(xié)商的結果雙方得到了用于保護ISAKMP報文的認證密鑰和加密密鑰,還得到了用于產生(保護用戶數據的)密鑰的(與具體算法有關的)數據。不過此時通信雙方還沒有相互認證。續(xù)為了進行身份認證,雙方在第3次協(xié)商時交換報文5和報文6,用于攜帶標識、鑒名和證書(可選),其結構如圖12-23所示。圖12-23第3次協(xié)商中報文結構注意在ISAKMPSA建立過程中,沒有使用IPSec的ESP或AH。ISAKMP報文交換由高層,如運輸層和應用層安全機制來保護。例如,在運輸層有一個稱為安全套接字層(SecuritySocketLayer,SSL)的安全機制提供運輸層的保護。在應用層除了各種專用的安全系統(tǒng)外,有一個用于WWW服務安全的S-HTTP(SecureHTTP)協(xié)議提供基于瀏覽器應用的安全保護。它們與IPSec的關系如圖12-24所示。圖12-24網絡信息的安全要由多層安全機制共同保證建立安全關聯(lián)建立了ISAKMPSA之后,接下來就要建立用于傳輸IP分組的安全關聯(lián)(在IETF草案中,這種安全關聯(lián)稱為非ISAKMPSA)。非ISAKMPSA建立的機制與ISAKMP建立的機制相似,由于篇幅所限,本書不再介紹。12.3.2IPSec使用的安全算法從AH和ESP以及ISAKMP/Oakley的介紹中讀者可以看到,IPSec的核心操作是圍繞加密和認證算法的協(xié)商以及應用展開的。AH和ESP可以看成是一種綜合應用。安全算法比IPSec具有更基礎性的作用,它們不僅在IPSec安全框架中,而且還在網絡的各個層次中都有應用。因此,本小節(jié)再簡要對它們進行介紹。1.IPSec的加密算法IPSec在ESP中使用的加密算法是DES,用于給IP分組加密。另外,三重DES和IBM的CDMF(CommercialDataMaskingFacility)也有所使用。盡管協(xié)議也支持IDEA(InternationalDataEncryptionAlgorithm)和其他一些算法,但實際應用較少。DES算法背景DES由IBM提出,并于1977年1月被美國定為聯(lián)邦信息標準。DES算法概述加密前,先對整個明文進行分組(因此,DES屬于分組密碼算法)。每個分組長64比特。然后,對每個64比特二進制數據進行加密處理,產生一個64比特的密文分組。最后將各密文分組串接起來,就得到了整個明文的密文。64比特密文分組生成的過程如圖12-25所示。圖12-25DES加密過程函數f運算過程(1)根據一個固定的變位和復制規(guī)則把32比特的Ri-1擴展成48比特的數,記為E(Ri-1)。(2)把E(Ri-1)與ki進行異或運算(#),把結果分為8組,每組6比特,記為B1,B2,…B8。即E(Ri-1)#ki=B1B2…B8。(3)把Bi經過特定的變換(稱為S變換)得到4比特的一組數據,記為Si(Bi)。每個Bi經過的變換過程不一樣,因此要使用8個不同的S函數。續(xù)(4)將8個Si(Bi)按Bi的順序排好,再進行一次變序(稱為P變換)得到f(Ri-1,ki)。P變換的作用是改變數據的輸出順序,其原理如圖12-26(a)所示。該P變換把01234567的輸入變序成36071245。一個3對3的S變換如圖12-26(b)所示。3比特的輸入使第1個方框的某根輸出線置1(輸出線的順序等于輸入的值),其他線上的值為0。圖12-26P變換和S變換DES解密過程和加密相似,但16個密鑰的使用順序正好相反。每次迭代使用密鑰ki都不同。ki的實際長度是48比特,它是從原始64比特密鑰變換后的56比特中抽取的。電子密碼本模式ECM明文的各個分組經加密后仍按原分組所在位置發(fā)送電子密碼本DES算法實質上只起到了替換的作用,即用一個密文塊替換了一個明文塊,由于當DES的輸入相同時,其輸出也相同,因此,ECM模式安全程度不高。密碼分組鏈接CBC模式可以解決ECM存在的密文被替換問題,提高DES的安全性。CBC的原理每個明文分組在加密之前先與一個密文分組進行異或運算,第1個密文分組與一個初始向量(InitializationVetor,IV)進行異或。為了保證解密正確,該IV要與密文一起發(fā)送。CBC的原理如圖12-27所示。圖12-27CBC原理三重DES三重DES是為了增加DES的安全性,盡管在1979年尚沒有DES被破譯的報道,IBM就制定了三重DES方法,其原理很簡單,如圖12-28所示。圖12-28三重DES國際數據加密算法IDEA它是DES之后最著名的密鑰密碼算法。IDEA由瑞士的LaiX.和MasseyJ.于1990年設計。IDEA的基本運算流程如圖12-29所示。圖12-29IDEA算法概述IDEA與DES相似,也是先將明文分塊成一個個64比特長的分組,每個分組經過8次迭代和一次變換,得出64比特的密文。對于每一次迭代,每個輸出比特都與每個輸入比特有關。每一次迭代的具體運算如圖12-30(b)所示。64比特的分組被分成4個16比特的塊參與運算,運算過程使用6個子密鑰,這6個密鑰是16比特長。在最后的變換運算中使用4個子密鑰。這52個子密鑰是由IDEA128比特的密鑰生成的。2.共享密鑰產生算法下面,我們分析在DES中使用的密鑰是如何產生和交換的。讀者從對DES算法的介紹中可以看到,DES加密和解密使用相同的密鑰(這種算法稱為對稱密鑰算法),這就需要做2個工作:第一,加密者要和解密者互通密鑰信息;第二,密鑰要保密。顯然,第1個工作增加了第2個工作的難度,密鑰在通信雙方之間交換時容易被竊取。這是對稱密鑰算法不可克服的缺點。Diffie-Hellman算法DES中使用的共享秘密密鑰就由Diffie-Hellman密鑰交換算法產生。算法的基本步驟(1)Alice和Bob事先約定2個共同使用的數:g和n,其中n是一個非常大的質數,并且(n-1)/2和(g-1)/2都是質數。(2)Alice隨機挑選一個很大的數x,然后計算:

a=gxmodn(3)Bob隨機挑選一個很大的數y,然后計算:

b=gymodn

(4)Alice把a發(fā)送給Bob。

(5)Bob收到a后做計算:

k1=aymodn

(6)Bob將b發(fā)送給Alice。

(7)Alice收到b后做計算:

k2=bxmodn上述過程如圖12-30所示。圖12-30Diffie-Hellman

密鑰交換3.IPSec的認證算法IPSec使用RSA算法進行身份認證。RSA算法是由美國MIT的Rivest、Shamir和Adleman于1976年提出。RSA算法是應用最廣泛的公開密鑰算法。RSA算法的步驟(1)秘密地選擇2個很大的質數p和q(典型地應大于10100)。

(2)計算p和q的積n。

(3)選擇一個數e,e<n且要求e與(p-1)(q-1)互質(也就是說,e與(p-1)(q-1)的最大公因子是1)。

(4)計算d,要求ed=1mod(p-1)(q-1)。

e稱為公開指數,d稱為私有指數。舉例說明如何使用e和d進行

安全通信(1)假設Alice要給Bob發(fā)送信息m,她使用RSA算法加密m,得到密文c=memodn。此處,Alice使用的e和n是Bob事先告訴她的,<e,n>稱為公開密鑰。因為Bob無需使用秘密的通道傳遞e和n,它們可以公開地被想給Bob發(fā)信的人得到。(2)Alice把c發(fā)給Bob。(3)Bob用如下方式解密:m=cdmodn。d是Bob私有的,<d,n>稱為私有密鑰。RSA加密通信模型如圖12-31所示。圖12-31RSA加密通信RSA與DES比較RSA與DES的一個顯著不同之處是RSA使用2個不同的密鑰,其中一個用于加密(公開密鑰),另一個用于解密(私有密鑰)。而DES加密和解密都使用同一個密鑰,因此要保管好密鑰,而且要保證密鑰從產生處安全地交給使用者。兩個密鑰不一樣的算法稱為非對稱算法。如果使用的密鑰部分是公開的,則算法稱為公開密鑰算法。讀者可能問了RSA如何進行身份認證呢?我們仍然通過一個例子來說明。舉例(1)假定Bob要求給他發(fā)信的人要簽上發(fā)信人的名字。(2)為此,Alice用自己的私有密鑰<d,n>對明文m加密,得:

s=mdmodn

s稱為Alice對m的數字簽名。因為s中包含了Alice不能抵賴的私有信息d和n。(3)Alice將s和m一起發(fā)給Bob。(4)Bob在接受m之前,先要確認m是Alice發(fā)給他的。換句話說,他要驗證s的確是Alice對m的簽名。為此,他用Alice的公鑰對s解密,得:

m*=semodn(5)Bob比較m*是否與m一致。如果一致,則認為m是Alice發(fā)的,否則,認為m和s不是Alice發(fā)送的。上述身份認證的過程如圖12-32所示。圖12-32RSA產生數字簽名用于身份認證既要保密又要簽名的算法(1)假定Bob要求以密文給他發(fā)信,且要發(fā)信的人簽上自己的名字。(2)Alice用自己的私有密鑰<dA,nA>對明文m進行簽名,得:

s=mdAmodnA(3)Alice使用Bob的公開密鑰eB和nB對s進行加密,得密文:

c=seBmodnB(4)Alice把c發(fā)送給Bob。(5)Bob用私有密鑰對收到的密文解密,得:

s=cdBmodnB(6)然后,Bob用Alice的公開密鑰對s解密:

m=seAmodnA

得到明文m。上述過程如圖12-33所示。圖12-33RSA簽名+加密通信4.IPSec的證書證書是由以下部分組成的數字文件:

(1)證書持有者的身份標識:它可以是IP地址、IP地址范圍、子網地址、域名、文本字符串。換句話說,證書可以證明這些信息是合法的。以這些信息為標識的通信實體是合法的。

(2)簽發(fā)證書的認證權威(CertificationAuthority,CA)機構的公鑰:該公鑰用于驗證證書的合法性。

(3)簽發(fā)證書的日期。

(4)證書的有效期。

(5)證書的其他信息,如序列號。證書的實質內容是它聲明的通信實體以及該通信實體使用的公開密鑰。它對通信實體的證明是通過對其公開的密鑰的驗證實現的。證書的作用在Alice和Bob通信時,Jack插了進來。他把自己的公鑰發(fā)給Bob,慌稱是Alice的,再把自己的公鑰發(fā)給Alice,慌稱是Bob的。這樣,Jack用自己的私鑰就可以輕易地解密Alice和Bob之間的通信。而且還可以進一步實施更多的攻擊,例如偽造(栽贓)。顯然,如果Bob和Alice能夠在發(fā)信前驗證一下對方公鑰的真實性,就會避免上述攻擊的發(fā)生。證書就是對通信方及其公鑰的認證方式。如何產生證書首先,我們來看一看證書產生的一般過程:

(1)申請證書:用戶A生成一對密鑰,然后把公開密鑰(連同該用戶A的標識)等信息提交給CA。

(2)受理申請:如果用戶A的申請符合CA的規(guī)定,則CA從申請中提取公開密鑰,然后用Hash函數制作公開密鑰的MAC(摘要)。再用CA的私鑰加密MAC,得到用戶A公開密鑰的CA簽名SCA。最后,把用戶A的公開密鑰(以及用戶A的標識等信息)和SCA組合在一起做成證書。

(3)發(fā)放證書:CA把生成的證書發(fā)給申請者。證書的產生過程如圖12-34所示。圖12-34CA產生證書的過程如何驗證證書當用戶A和B之間需要確認對方身份時,一方把對方出示的證書中的CA簽名用CA的公鑰解密,應該得到對方公鑰的摘要,然后用CA使用的Hash函數制作對方公鑰的摘要。把2個摘要進行比較。如果一致,則認為對方身份真實,否則拒絕對方。上述證書驗證過程需要用戶知道2個事實:

(1)CA的公鑰:用于得到摘要。

(2)CA的Hash算法:用于計算簽名。另外,也可以采用向CA查詢的辦法來驗證證書。其原理如圖12-35所示。圖12-35證書查詢DSA算法的步驟(1)選擇一個質數p,一般512<p<1024。(2)找出一個p-1的質因子q。(3)計算:

g=h(p-1)/qmodp

其中h是一個小于p-1的數,且h(p-1)/q>1。(4)另選一個數x,要求x<q,將x作為發(fā)送者的私鑰。(5)計算:

y=gxmodp

將y作為發(fā)送者的公鑰。(x,y)稱為長期密鑰對。續(xù)(6)發(fā)送者按如下方式對消息做簽名:

·產生一個比q小的隨機數k。

·計算:

r=(gkmodp)modq

s=(k-1(SHA(m)+xr))modq

(k,r)稱為會話密鑰對。(r,s)稱為m的簽名。(7)發(fā)送者發(fā)送(m,r,s)。續(xù)(8)接收者用如下方式做身份認證計算:

w=s-1modq

u1=(SHA(m)*w)modq

u2=(rw)modq

v=(gu1yu2modp)modq如果v等于r,則認為身份合法。其他產生證書的方法另外,除了DSA算法外,IPSec還使用RSA加密和RSA簽名2個方法產生證書。Hash函數具有以下特征:

(1)Hash函數必須能以任意長度的數據作為輸入,而輸出是定長的。

(2)對任何給定的報文m,計算其Hash函數值是很容易的。

(3)對任何給定的Hash函數值h,要找出m,使h=Hash(m)在計算上是不可行的。

(4)對任意給定的m,要找到m*≠m且Hash(m)=Hash(m*)在計算上是不可行的。Hash函數產生MAC的方式如圖12-36所示。圖12-36Hash函數產生MACMD5MD5是Rivest提出的MD算法的第5個版本(RFC1321,1992年)。此算法以任意長的報文作為輸入,然后輸出128比特的MAC。該MAC稱為摘要。MD5算法的大致過程(1)Alice計算m的余數:r=mmod264,然后把r加在m的后面。(2)在m和r之間填充1~512比特,使填充后的總長度是512比特的整數倍。填充比特的第1位是1,后面都是0。記新報文為M。(3)把M分割成長度為512比特的數據塊,然后進行如圖12-37所示的MAC計算。圖12-37MDMAC的生成SHA由美國NSA(NationalSecurityAgency)開發(fā)并得到美國NIST(NationalInstituteofStandardsTechnology)支持。SHA-1是其新版本,作為美國政府標準。SHA的思想與MD5類似,以變長的數據作為輸入,經復雜的計算后得到160比特的MAC。SHA-1比MD5更安全,但計算MAC的速度慢。

IPSec使用MD5和SHA-1作為Hash函數計算MAC的用法(1)加密MD5。(2)加密SHA-1。(3)HMAC-MD5-96。(4)HMAC-SHA-1-96加密MD5用于AH認證的作法如圖12-38所示。圖12-38加密MD5在AH的應用HMAC-MD5-96IBM公司提出的一種更強大的方法,HMAC(HashMAC)-MD5-96的作法如圖12-39所示。圖12-39HMAC-MD5-9612.4QOS技術和體系結構12.4.1什么是QoS技術1.服務的含義

計算機網絡服務是指通信網絡對主機間數據傳輸所需的效率和可靠性所提供的保證機制。通信網絡提供的服務分為2大類:面向連接服務(connect-orientedservice)和無連接服務(connectlessservice)。面向連接服務在面向連接的通信中,每一次完整的數據傳輸都必須經過建立連接、使用連接、釋放連接三個過程。在數據傳輸過程中,各分組不攜帶信宿地址,而使用連接號(connectId)。服務類型中的連接類似一個管道,發(fā)送者在一端放入數據,接收者從另一端取出數據。面向連接的特點是:收發(fā)數據不但順序一致,而且內容相同,所以其可靠性好,但效率不高。電話系統(tǒng)服務提供的就是面向連接的服務。無連接服務在無連接的通信中,每個分組都攜帶完整的信宿地址,各分組在系統(tǒng)中獨立傳送。無連接服務的特點是不能保證分組的先后順序(由于先后發(fā)送的分組可能經歷不同路徑去往信宿,所以先發(fā)的不一定先到)。另外,無連接服務也不能保證丟失分組的恢復或重傳,換言之,分組不能保證一定被收到或一定能正確接收。無連接服務的可靠性不好,但因其省去了許多保證機制,使其獲得了較高的效率。郵政系統(tǒng)提供的就是無連接的服務。提示效率和可靠性是統(tǒng)一在服務中的一對矛盾,對二者不同的要求,決定了服務類型的不同。正是它們的對立統(tǒng)一,推動了計算機網絡技術的發(fā)展。盡力而為服務IP協(xié)議轉發(fā)數據的服務被稱為盡力而為(besteffort)的服務,它所做的工作就是把IP分組按照路由表的指示轉發(fā)到下一跳路由器,不做任何與保證數據的服務質量(如防止分組丟失)有關的網絡資源控制工作。傳統(tǒng)IP網絡的服務質量主要是通過TCP的確認和重傳機制保證的。2.服務質量的含義服務質量是通信網絡傳輸用戶數據的質量。當用戶數據總能能被及時傳給接收者時,我們說網絡的服務質量好,反之就說網絡的服務質量不好。說到服務質量QoS,往往給人的感覺是物理地增加帶寬,增加存儲空間等網絡資源。實質上,QoS保證是指采取某種策略,在現有資源基礎上,提高資源利用率,從而改善服務質量。3.QoS技術含義QoS技術是Internet迅速發(fā)展的產物。QoS技術通過資源預留、預測、分類、優(yōu)先級區(qū)分等綜合控制手段,提高網絡基礎設施資源的利用率,保證數據以某種服務級別在網絡中一致地傳輸,提供主機間端到端的服務質量。4.QoS技術類型-分類一(1)以資源預留協(xié)議RSVP為代表的集成服務(IntegratedServices,IntServ):在這類QoS技術中,網絡資源根據網絡用戶的請求而分配。IntServ在BobBraden和DaveClark于1994年6月提交的RFC1633中規(guī)范。(2)以優(yōu)先級技術為代表的區(qū)分服務(DifferentiatedServices,DiffServ):在這類QoS技術中,網絡元素依據網絡帶寬管理策略準則對網絡通信量(traffic)進行優(yōu)先級分類并為之指定資源。DiffServ在StevenBlake和DavidL.Black于1998年12月提交的RFC2475中規(guī)范。這2類技術的含義如圖12-42所示。圖12-40IntServ和DiffServ的

含義QoS技術類型-分類二(1)按每個流(perflow)處理:流是兩個應用之間一個獨立的、方向單一的數據包序列。流用以下5指標唯一標識:

·傳輸協(xié)議

·源地址

·源端口號

·目的地址

·目的端口號(2)按每個聚合處理每個聚合由2個或多個流組成。聚合中的流一般具有相同的標識信息,如地址、端口、標簽、優(yōu)先級或某些認證信息。集成服務和區(qū)分服務技術可以根據用戶QoS需求的不同而采用數據流或聚合處理方法。RSVP通過控制信令支持網絡資源預留,RSVP通常被視為按每個流的QoS技術,同時也支持按每個聚合處理。區(qū)分服務可以對流和聚合提供分類和區(qū)分優(yōu)先級。其他技術除了IntServ和DiffServ方法外,目前,提供QoS保證的重要技術還包括以下2個:(1)MPLS流量工程:MPLS通過實施流量工程提供QoS保證。(2)子網帶寬管理SBM:SBM(SubnetBandwidthManagement)在共享式和交換式的IEEE802網絡的第2層支持分類和優(yōu)先級區(qū)分。上述QoS技術提供的服務級別以及實現的位置如表12-3所示。表12-3QoS服務級別及其實現的位置QoS級別實現的位置服務最高

最低網絡和應用RSVP服務(給應用提供反饋)網絡和應用RSVP加載服務(loadservice)(給應用提供反饋)網絡MPLS網絡和應用區(qū)分服務DiffServ在網絡核心的入口為數據流(flow)實施,與RSVP預留服務級別相對應。優(yōu)先級使用LAN的SBM。網絡和應用基于源應用流的DiffServ或SBM網絡網絡核心入口的DiffServ

盡力而為(besteffort)服務12.4.2集成服務RSVP是一個信令協(xié)議。它提供資源預留的建立與控制機制。RSVP在IP網絡上提供集成服務。在QoS技術中,RSVP是最復雜的,同時,RSVP提供了最高級別的服務質量保證。1.IntServ實現參考框架IntServ集成模型標準RFC1633提出了實現集成服務的參考框架。該框架由以下幾部分組成。(1)Setup協(xié)議:Setup協(xié)議用于主機或路由器動態(tài)地分配和保留資源,以滿足特殊數據流的服務需求。RSVP就是一個Setup協(xié)議(2)流說明:說明流所具有的QoS指標參數。續(xù)(3)流量控制:它由以下3個組件實現:·分組調度器(scheduler):其基本功能是對輸出隊列重排序,它處于典型操作系統(tǒng)的輸出驅動器級別,并與數據鏈路層協(xié)議保持一致。具體的調度算法根據輸出媒體訪問控制和網絡接口技術而定。例如,經典IP網絡的FIFO(先進先出)就是一種盡力而為服務模型的調度算法?!し诸惼?classifier):以分組頭部中特定字段的內容為依據鑒別或把數據進行分類。為了進行流量控制,每個輸入的分組必須劃分成某些類,屬于同一類的所有分組得到分組調度器的相同對待。分類工作由分組分類器負責。類是一種由路由器定義的本地屬性,換句話說,同一分組可以被不同的路由器分成不同的類。續(xù)·接納控制(admissioncontrol):確定一個機器(主機、路由器或交換機)是否能夠支持某特定數據流所需的QoS。它產生一個本地的接受或拒絕決定。IntServe服務實現參考框架的組成如圖12-41所示。圖12-41IntServ服務實現

參考框架2.IntServ的服務類型通信的雙方要約定需要服務的類型。集成服務類型包括以下2種:(1)保證服務(guaranteedservice):該類型的服務為數據提供專用的帶寬和限定的端到端延時。保證服務是為具有極嚴格的延時和帶寬要求的應用設計的,如高保真電話會議。(2)受控負荷服務(controlled-loadservice):該類型應用于延時和帶寬要求不是很嚴格的場合。它的延時上限可以不必限定。在沒有負荷的條件下,這種類型等效于盡力而為(besteffort)服務。它比盡力而為服務要好,但不能象保證類型那樣提供嚴格的有界的服務(boundedservice)。當網絡發(fā)生擁塞時,受控負荷服務的性能只是輕微下降,它能保證數據流的延時和丟失率在一個可控的范圍內。3.RSVP資源預留原理資源預留建立的大致過程包括以下4步:

(1)源主機定義通信量帶寬、延遲和抖動等參數的范圍,然后發(fā)送RSVPPATH報文,該報文包含通信量聲明信息(TrafficSpecification,TSpec)。PATH報文被封裝在IP分組或UDP數據報中轉發(fā)。在轉發(fā)過程中,中間路由器把必要的信息(稱為通路狀態(tài))填入PATH報文。這樣,PATH到達目的主機時,PATH就記錄了從源到目的主機的完整的通路信息,如路由器的地址和路由器QoS特性。續(xù)(2)目的主機產生RSVPRESV報文。與TSpec對應,RESV報文包含請求聲明(RequestSpecification,RSpec),它指明需要的集成服務類型。RESV報文還包含過濾聲明(FilterSpecification,FilterSpec),它指明需要預留資源的數據的運輸協(xié)議及端口號。RSpec和FilterSpec構成了流描述符(flow-descriptor),它與數據流一一對應,路由器可以用它來標識預留資源。該描述符被傳遞給通路上每個支持RSVP的路由器的流量控制組件。接納控制和策略控制功能判斷該QoS請求能否被支持,如果可以,則分類器和調度器被刷新。續(xù)(3)當RESV報文到達PATH報文經過的路由器時,路由器檢查RSpec的請求是否能被滿足,如果可以,則路由器記錄RESV的消息,分配資源,并把RESV向源主機轉發(fā)。如果請求被拒絕,則路由器返回一個錯誤消息。(4)當RESV沿著PATH報文經過的通路返回源主機時,一條由源到目的主機的具有資源保證的通路就建立起來。上述過程如圖12-42所示。圖12-42RSVPQoS原理:RSVPPATH和RESV報文12.4.3區(qū)分服務從RSVP集成服務原理的介紹中讀者可以看到,RSVP要在源主機和目的主機之間通過PATH和RESV報文的交換,在數據流要經過的路由的沿途節(jié)點為每個數據流預留資源。同時,在所有節(jié)點要維護相應的數據流說明、分類、接納和調度的規(guī)則。因此,RSVP資源預留可以提供端到端的QoS保證(主機-主機間的,需要全部中間節(jié)點支持RSVP)。與區(qū)分服務相比,集成服務的成本要高,實現比較復雜。區(qū)分服務特點(1)區(qū)分服務通過優(yōu)先處理QoS需求高的數據實現QoS保證,而不是在路由沿途預留資源。(2)區(qū)分服務也對數據進行分類,但分類的目的是定義數據的優(yōu)先級,而不僅僅是歸類。(3)數據分類和處理所依據的標識在網絡的邊緣被定義,網絡的核心路由器(第3層設備)根據標識的屬性對分組進行處理。標識的定義可以借助現有協(xié)議PDU中的某個字段,這樣,對數據的區(qū)分處理和現有的協(xié)議機制可以結合在一起,而不象集成服務那樣,由Setup協(xié)議去預留資源,再由TCP/IP運輸數據。續(xù)(4)區(qū)分服務可以看成是每跳行為(Per-HopBehavior,PHB),每個數據流或用戶轉發(fā)狀態(tài)不必在網絡內核保存,只需在服務提供的流量聚集處保存。而集成服務的作用范圍是源主機到目的主機的路由上的所有節(jié)點。1.區(qū)分服務的分類(1)加速轉發(fā)(ExpeditedForwarding,EF):EF服務具有一個單一的區(qū)分服務編碼(DiffServCodePiont,DSCP。RFC2474)。EF將延遲和抖動最小化,提供了聚合的最高級別的服務質量。任何超過通信量約定(profile)的通信量會被丟棄。通信量約定由本地策略制定。(2)保證轉發(fā)(AssuredForwarding,AF):AF服務包含4個類別(class)每個類別有3個優(yōu)先級,因此共有4×3個服務級別。2.服務編碼區(qū)分服務使用DS字段定義服務編碼。iffServ使用IPv4頭部的TOS(TypeofService)字段作為DS字段(IPv6中的TC字段被作為DS字段),因為TOS字段在公用IP實現中并沒有使用(盡管它用來標識優(yōu)先級和支持TOS路由)。DS字段的結構如圖12-43所示。圖12-43IPv4TOS字段用于

定義區(qū)分服務編碼3.DiffServ模型的實現機制

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論