1. 程式人生 > >網路與資訊安全面試複習(四)

網路與資訊安全面試複習(四)

4.1  IPSec安全協議概述

      安全協議是以密碼學為基礎的協議。它可在網路系統中提供各種安全服務。如:認證實體的身份、在實體間分配金鑰,實現機密性、完整性、抗否認性等。

      IPSec是IETF(www.ietf.org)公佈的一組安全IP協議集,是在IP級為IP業務提供保護的安全協議標準,即IPSec是引入了安全機制的IP安全協議。

      通過現代密碼學方法支援機密性和認證服務,使使用者能有選擇的使用,並得到所期望的安全服務。

            IPSec(IP Security Protocol)在IP層(網路層)提供:訪問控制、資料完整性驗證、資料來源驗證、防報文重放、資料機密性等安全服務。

     4.1.1 IPSec組成與功能

    為保證IP網路的安全,Internet工程任務組(IETF)提出一系列IP安全協議,總稱為“IPSec協議簇”(IP Security Protocol)。

      IPSec作為一組標準及協議集合,它包括:加密技術、Hash演算法、認證頭AH(Authentication Header)協議、封裝安全載荷ESP(Encapsulating Security Payload)協議、Internet金鑰交換IKE(Internet Key Exchange)協議等。

     IPSec是基於OSI第三層網路層的隧道協議,用資料包作為資料交換單位,將IP包封裝附加的IP包頭後,通過IP網路傳送。

      IPSec提供了一種標準的、健壯的機制,可為IP協議及上層協議提供以下幾種安全服務:

     1)資料來源驗證,確保收到的資料的傳送者為實際的傳送者;

     2)資料完整性,確保資料在傳輸過程中未被非法篡改;

    3)抗重放攻擊保護,防止資料被假冒者複製儲存並重復發送;

     4)資訊機密性,確保資料在傳輸過程中不被竊取。

IPSec的不足之處:

    IPSec也存在一些缺點:IPSec需要已知或固定範圍的IP地址,所以在動態分配地址時不適合IPSec;除了TCP/IP協議以外,IPSec不支援其它協議;除了包過濾處,它沒有指定其它訪問控制方法,對於採用NAT方式訪問公共網路的情況難以處理。

IPSec的規範文件:

        在1998年11月釋出RFC2401、2402、2406和2408。

       RFC2401:安全體系結構的概述。

       RFC2402:IP擴充套件的包認證描述(IPv4和IPv6)。

       RFC2406:IP擴充套件的包加密描述(IPv4和IPv6)。

       RFC2408:金鑰管理效能規範。

    AH 協議負責定義認證方法,提供資料來源驗證和完整性保證;

    ESP協議負責定義加密和可選認證方法,提供資料可靠性保證;

    IKE協議負責提供自動協商交換金鑰、建立和維護安全聯盟等服務。

    IPSec協議彌補了IPv4在安全性方面的不足,它是IPv6的一個組成部分。

   主要功能:

       1、能保證資料的機密性

    IPSec協議通過加密演算法,使只有接收方獲取真正的資料,而他人無法獲知真實資料。

     2、能保證資料來源的可靠性

    在通訊之前,雙方先用IKE認證對方身份並協商金鑰,協商成功之後才進行通訊。由於第三方不知道驗證加密演算法和金鑰,因此,不能冒充發送方。

    3、能保證資料的完整性

    IPSec協議通過驗證演算法,確保資料從傳送方到接收方的傳送中,任何資料的篡改能被檢測到。

   4、確保認證報文沒有重複  

          即使攻擊者不能傳送偽裝的報文,也不能篡改報文,但他仍可重發截獲的報文,導致複製報文的上層應用發生混亂(稱為“報文重放攻擊”)。IPSec協議能檢測出重複報文並丟棄,具有防重放攻擊功能。  

   5、能實現VPN通訊

          IPSec協議作為OSI第三層的隧道協議,能在IP層上建立一個安全的VPN隧道,實現在外網上訪問遠端的私有內網。

   4.1.2 IPSec安全體系

          IPSec協議組提供認證和加密兩種安全機制,認證機制能夠確認資料傳送方的真實身份,並判斷資料在傳輸過程中是否遭到篡改;加密機制保證資料的機密性。

         IPSec安全體系由報文頭驗證AH協議、封裝安全載荷ESP協議、金鑰交換IKE協議、解釋域、加密和認證演算法組成。

         其中,AH協議提供資料來源驗證、資料完整性校驗和防報文重放功能;然而,它並不加密報文。由ESP協議提供對IP報文的加密。

         IKE協議負責定義加密生成技術和協商共享策略。解釋域負責定義IKE所沒有定義的協商內容,併為使用IKE協商安全的協議,統一分配識別符號。

4.1.3  IPSec執行模式

       IPSec協議有兩種工作模式:傳輸模式和隧道模式。

   1.傳輸模式

         這種模式對IP分組應用IPSec協議,對IP報頭不做任何修改,負責保護兩個主機之間的通訊,提供點對點的安全性,是IPSec的預設模式。

   2.隧道模式

         這種模式將原IP分組封裝成帶有新IP報頭的新的IPSec分組,通過“隧道”進行封裝、傳送和拆封,隱藏原有的IP分組,該模式常用在裝有IPSec的路由器或防火牆中。

IPSec工作原理

    IPSec包含4類元件:

    (1)IPSec程序本身:驗證頭協議(AH)或封裝安全載荷協議(ESP);

    (2)Internet金鑰交換協議(IKE,Internet Key Exchange):進行安全引數協商;

    (3)SADB(SA Database):用於儲存安全關聯(SA,Security Association)等安全相關引數;

    (4)SPD(Security Policy Database,安全策略資料庫):用於儲存安全策略。

      IPSec的工作原理類似於包過濾防火牆。IPSec通過查詢安全策略資料庫SPD,決定對接收到的IP包的處理方式,但不同於包過濾防火牆的是,IPSec對IP資料包的處理方法除了丟棄、直接轉發(繞過IPSec)外,還有進行IPSec的處理。

      所謂“進行IPSec處理”即是對IP資料包進行加密和認證,保證在外部網路傳輸的資料包的機密性、真實性、完整性,使其通過Internet進行安全的通訊。

    在IETF的標準化下,IPSec的處理流程受到了規範。

4.2  IPSec安全協議—AH

4.2.1 AH概述

     AH協議又稱“報文頭驗證協議“,不提供資料加密服務,適合傳輸非機密資料。

     AH通過雜湊函式(Hash函式)實現認證,當需要身份驗證而不要求保密時,可選用AH協議。

     AH的工作原理:在每個IP資料包上增加一個身份驗證報頭,該報頭含有一個帶金鑰的Hash雜湊,該Hash雜湊在整個資料包中計算,當資料更改時雜湊值將會變化,從而提供完整性驗證。

   AH報頭欄位: 

     1) 下一個報頭:識別下一個使用IP協議號的報頭,如:下一個報頭值等於“6”,表示其後是TCP報頭。    

      2) AH報頭長度。   

    3)SPI (Security Parameters Index)是為資料包識別安全關聯的32位偽隨機值,若SPI 值為0,則表明沒有安全關聯存在。           4) 序列號:從1開始的32位單增序列號,唯一標識每一個傳送資料包。               

        5)驗證資料:接收端接收資料包後,會先執行Hash計算,然後與傳送端同樣計算的該欄位值進行比較。

  4.2.3 AH執行模式與完整性檢查

     如果該包在傳輸過程中,經過NAT(Network Address Translation,網路地址轉換)閘道器,則其源/目的IP地址有可能被改變,將造成到達目的地後,完整性驗證失敗。故在傳輸模式下AH與NAT有衝突,兩者不能同時使用。

  2) 隧道模式

     在該模式下,AH頭插入到原始IP頭部之前,AH頭之前再增加一個新的IP頭部。隧道模式下,AH驗證的範圍也是整個IP包,因此,上面所說的AH和NAT的衝突在隧道模式下也存在。

     AH頭的主要功能是:校驗IP源地址和IP目的地址,看它們是否在路由過程中被改變過。如果校驗沒通過,分組將會被拋棄。

   2、資料完整性檢查  

        從上面的傳輸模式和隧道模式可見,AH協議驗證的範圍包括整個IP包。

     驗證過程概括如下:在傳送方,整個IP包和驗證金鑰作為輸入,經過MD演算法計算後,得到的結果被填充到AH頭部的“驗證資料”欄位中;在接收方,整個IP包和驗證演算法所用的金鑰也被作為輸入,經過MD演算法計算的結果和AH頭部的“驗證資料”欄位進行比較,如果一致,說明該IP包資料沒有被篡改。否則丟棄。

4.3  IPSec安全協議—ESP

    4.3.1 ESP概述

           ESP(Encapsulating Security Payload ,封裝安全載荷)協議是一種提供混合安全服務的協議,它可實現IP資料包的保密、完整和資料來源認證,可與AH協議一起使用。它是插入IP資料包內的一個協議頭(ESP報頭)。

           ESP採用對稱金鑰加密技術,即使用相同的金鑰對資料進行加解密。它支援DES、三重DES和AES演算法對明文的加密。

      ESP只保護資料,而不保護IP報頭。ESP在IP報頭和傳輸協議報頭(如:TCP或UDP)之間,增加一個ESP報頭提供安全性,IP和ESP報頭封裝了源端和目的端間的資料包。

     1、傳輸模式

        在ESP的傳輸模式中,其頭部直接加在準備傳輸的資料前,一個封裝包中只有一個IP頭部,且該IP頭部與ESP頭部均無需加密,因此,這種模式可節省頻寬,如下圖。 

      傳輸時先把IP裝載資料用ESP封裝起來(ESP頭部和ESP尾部),傳送端通過使用者ID和目的地址得到SA環境,然後用加密演算法(DES)加密傳輸的資料,接收端接收到ESP封裝的資料包後,直接處理IP頭部(因沒有加密),從ESP頭部取出SPI值,得到相應的SA,再用SA中的解密函式解出加密的資料。

      ESP傳輸模式的驗證要比AH傳輸模式弱一些。如果需要更強的驗證服務,可用AH驗證或同時使用AH驗證和ESP驗證。

  2、隧道模式

         在隧道模式中,ESP首先將IP封裝包加密(含IP頭部),再在前面加上ESP頭部並插入新的IP頭部。接收端用ESP頭部內容中的SPI值決定SA,解出ESP頭部後的裝載資料,取回原始的IP頭部與封裝包,繼續往後傳輸ESP頭部及ESP尾部的內容。

      ESP在隧道模式下,對整個原始IP包進行驗證和加密,而在傳輸模式下,由於源、目的IP地址不被加密,不能提供流加密服務。因此,ESP隧道模式比ESP傳輸模式更安全。但隧道模式增加了一個額外的IP頭部,將佔用更多的頻寬。

4.4 安全聯盟SA

     安全關聯SA(Security Association)是兩個IPSec實體(主機、閘道器)之間經過協商建立起來的一種協定。

     4.4.1 安全聯盟概述

        SA是構成IPSec的基礎,也是IPSec的本質,它決定保護什麼、如何保護以及誰來保護的問題。AH和ESP兩個協議都使用SA保護通訊,而IKE則是在通訊雙方中協商出SA。

     SA由三元組(SPI,IP目的地址,IPSec協議)唯一標識。

    1) SPI(安全引數索引):是32位的安全引數索引,用於標識具有相同IP地址和相同安全協議的不同的SA,它通常被標識在AH或ESP頭中 。

       2)IP目的地址:IP目的地址,它是SA的終端地址。

         3)IPSec協議:採用AH或ESP。

    SA是策略和金鑰的結合,它定義了保護端對端通訊的常規安全服務、機制以及金鑰。

    當一臺計算機與多臺計算機同時進行安全通訊時,可能存在多種關聯。

    接收端計算機使用SPI,決定將用哪種SA處理傳入的資料包。SPI是一個分配給每個SA的字串,用於區分多個存在於接收端計算機上的安全關聯。每個SA可以使用不同的安全協議。

4.5 金鑰管理協議—IKE

   4.5.1  IKE概述

          IKE(Internet Key Exchange,Internet金鑰交換)是IPSec體系中的一種主要協議,它屬於一種混合型協議,包括:Internet安全關聯、金鑰管理協議(ISAKMP)、兩種金鑰交換協議Oakley與SKEME。

          IKE為IPSec協議—AH和ESP提供自動協商交換金鑰、建立SA等服務,能簡化IPSec的使用、管理、配置和維護。

           注意:IKE不是在網路上直接傳輸金鑰,而是通過一系列資料的交換,最終計算出雙方共享的金鑰,即使第三者截獲了雙方的所有交換資料也不足以計算出真正的金鑰。

   IKE的身份認證方式:

   1)基於數字簽名,利用數字證書表示身份,用數字簽名演算法計算出一個簽名來驗證身份。

   2)基於公開金鑰,利用公鑰加密身份,通過檢驗對方發來的該HASH值進行認證。

   3)基於修正的公開金鑰,對上述方式進行修正。

   請求IKE的方式:

     IKE是一個使用者級的程序。啟動後,作為後臺守護程序執行。在需要服務前,它處於不活動狀態,在實際中通過兩種方式請求IKE服務。

   1)當核心的安全策略模組要求建立SA時,核心觸發IKE。

   2)當遠端IKE實體需要協商SA時,觸發IKE。

 IKE在IPSec中的作用:

1)IKE是UDP之上的一個應用層協議;

2)IKE為IPSec協商建立SA,並把建立的引數及生成的金鑰交給IPSec;通過IKE,IPSec很多引數(如:金鑰)可自動建立,降低手工配置的複雜度。

3)IPSec用IKE建立的SA,對IP報文加密或認證處理。

3)IKE協議保證每個SA所使用的金鑰互不相關。

4)IPSec用AH或ESP報文頭中的序列號防止重放。該序列號溢位後,SA需重新建立,這時需要IKE協議的配合,以防止重放。

  4.6  SSL—安全套接層協議

  4.6.1 SSL協議簡介

      在網際網路上訪問某些網站時,你會發現在瀏覽器視窗的下方會顯示一個鎖的小圖示,表示該網頁被SSL協議保護著。

     SSL協議(Secure Sockets Layer Protocol,安全套接層)是一個用於網際網路上保密通訊的安全協議,它位於TCP層和應用層之間,對應用層透明。

     SSL協議的設計初衷是支援各種應用層協議的,如:HTTP,FTP,Telnet等,但目前SSL協議主要是應用於HTTP協議。

      SSL協議具有兩層結構,其低層是SSL記錄協議層(SSL Record Protocol Layer),其高層是SSL握手協議層(SSL Handshake Protocol Layer)。

      握手層允許通訊實體在應用SSL協議傳送資料之前,相互驗證身份、協商加密演算法、生成金鑰等。記錄層封裝各種高層協議,具體實施壓縮與解壓縮、加解密、計算與驗證MAC(雜湊值)等與安全有關的操作。

  1.SSL協議的特點

    1)SSL協議的優勢是它與應用層協議無關。高層的應用層協議(如:HTTP、FTP)在SSL協議之上。SSL協議在應用層協議通訊之前,就已經完成加密演算法、通訊金鑰的協商以及伺服器認證工作,之後應用層協議所傳送的資料都會被加密,從而保證通訊的機密性。

    2)SSL協議支援各種加密演算法。在“握手”過程中,使用的是RSA公鑰系統。金鑰交換後,使用一系列密碼演算法,如:DES及MD5等。

    3)SSL協議可被大多數瀏覽器和Web伺服器所內建,應用於電子交易中。國際著名的Cyber(1ash信用卡支付系統)就支援這種加密模式,IBM等公司也提供這種加密模式的支付系統。

    2.SSL協議存在的問題

   1)SSL提供的保密連線有漏洞。SSL除了傳輸過程以外不能提供任何安全保證,SSL並不能使客戶確信此公司接收信用卡支付是得到授權的。

    2)網上商店在收到客戶的信用卡號碼後,需設法保證其安全性,否則信用卡號可能被黑客通過商家伺服器竊取。

   3)SSL是一個面向連線的協議,只能提供交易中客戶與伺服器間的雙方認證,在涉及多方的電子交易中,SSL協議並不能保證各方間的安全傳輸和信任關係。

  4.6.2  SSL記錄協議

    SSL記錄協議的功能:根據會話狀態指定的壓縮演算法、加密演算法、MAC演算法、金鑰長度、雜湊長度、IV長度等,以及連線狀態中指定的客戶和伺服器的隨機數、加密金鑰、序列號等引數,對當前連線中要傳送的高層資料進行壓縮與解壓縮、加解密、計算與檢驗MAC等操作。

     在SSL協議中,所有的傳輸資料都被封裝在記錄中,記錄由記錄頭和長度不為0的記錄資料組成。

     SSL記錄協議包括:對記錄頭和記錄資料格式的規定以及為SSL連線提供的服務,如:機密性服務和資料完整性服務。

4.6.3  SSL握手協議

     SSL握手協議讓伺服器和客戶機相互驗證,協商加密和MAC演算法以及保密金鑰,以保護在SSL記錄中傳送的資料,握手協議在應用程式的資料傳輸之前使用。

      握手協議的功能:驗證實體身份,協商金鑰交換演算法、壓縮演算法和加密演算法,完成金鑰生成及金鑰交換等。

      握手協議由一系列客戶機與伺服器的交換訊息組成,所有訊息都具有規定的格式並分為兩個階段建立連線:

          1)建立私密性通道;      2)進入客戶認證。

   Kerberos簡介

1、Kerberos特點

    Kerberos是美國麻省理工學院(MIT)研製的認證協議,是一種實用的網路認證系統。Kerberos協議通過網路通訊的實體相互證明彼此的身份,抵抗旁聽和重放等攻擊,保證通訊資料的完整性和保密性。

    Kerberos基於非對稱金鑰加密技術,採用可信任第三方的認證方案,加入了“時間戳記”和“報文序號”機制,抵抗重發(Replay)攻擊。

    Kerberos認證技術在分散式環境中提供強大的認證,而且使用的範圍廣,目前已經成為事實上的工業標準。

     Kerberos認證的實現不依賴於主機作業系統,不基於對主機作業系統的信任,不要求網路中全部主機的物理安全性。Kerberos

     Kerberos採用認證伺服器儲存主體及其金鑰的資料庫,程式碼庫提供加密並實現Kerberos協議。

      採用Kerberos協議使用者只需輸入一次身份驗證資訊就可憑藉此驗證獲得的票據(ticket)訪問多個服務。由於在每個Client和Service之間建立了共享金鑰,使得該協議具有較好的安全性。

     在一個分散式的client/server體系機構中採用一個或多個Kerberos伺服器提供一個認證服務。