IPSEC

在互聯網上的持續不斷的不安全推動了IETF組織去開發統一的安全架構,能夠符合國家關於加密通信的使用的法律。本文是對IP安全架構的規範和相關草案的一個簡介。

  
  一、前言
  
  因特網技術的興起,互連技術的成長,使得大家愈來愈仰賴Internet這個應用廣泛的公衆網絡。因此如何讓使用者透過因特網通訊,而不用擔心傳送的信息封包被截取、假冒,就顯得相當重要。因爲這些封包內容可能有你的ID,信用卡號碼等重要的個人數據。
  
  事實上,這幾年來因特網上的安全標準有很多。例如:RFC1508和1509所規定的GSSAPI(Generic Security Service Application Program Interface),Telnet,FTP和HTTP都可以使用;因特網工程小組(Internet Engineering Task Force; IETF)的PSRG小組所訂定的PEM標準可以達到E-mail的安全性,而網絡最著名的E-mail安全軟件則是P. Zimmermann的PGP(Pretty Good Privacy);其它如EIT的S-HTTP(Secure HTTP),Netscape的SSL(Secure Sockets Layer),Microsoft的PCT以及上面提及的GSSAPI均可建立HTTP的安全機制,Visa的SET(Secure Electronic Transfer)則能達到安全的電子商務(Electric Commerce)。這些不論是對話層(Session Layer)或應用層(Application Layer)上的安全機制,使用者必須使用專屬的通訊協議,或特定廠商的產品。
  
  所以會有這樣的問題,可以說都是TCP/IP惹的禍,IP標頭中有來源(Source),目的(Destination)地址,裝載數據(Payload),而TCP只負責將信息切割成封包,若遺失封包TCP再重送,所以TCP/IP根本沒有安全性可言,使用一般Sniffing軟件工具,即可一目瞭然地看到這些信息。
  
  爲了確保在任何IP網絡上擁有安全的私密通信,也爲了整合不同標準及不同廠商產品, IETF着手訂定了一套開放標準網絡安全協議IPSec (IP Security)。將密碼技術應用在網絡層,以提供傳送、接收端做數據的認證(Authentication)、完整性(Integrity)、存取控制(Access Control)、以及機密性(Confidentiality)等安全服務。高層的應用協也可以直接或間接地使用這些安全服務。
  
  IPSec是設計來達到網絡層中端對端安全通訊的第三層協議,它主要的架構是IP認證標頭(Authentication Header; AH)以及IP封裝安全裝載(Encapsulating Security Payload; ESP)。IP AH提供數據的完整性和認證,但不包括機密性,而IP ESP原則上只提供機密性,但也可在ESPHeader中訂定適當的算法及模式來確保數據的完整性並認證,IP AH和IP ESP可以分開使用或一起使用。完整的IPSec還應包括IP AH和ESP中所使用金鑰的交換和管理,也就是安全羣組(Security Assocication; SA)和密鑰管理IKE(Internet Key Exchange), IPSec架構圖,其中DOI(Domain of interpretation)是爲了讓其它協議可以使用ISAKMP而訂定的Framework,讓我們很清楚知道IPSec和IKE所扮演的角色。
  
  本文的第二部份將介紹IP AH,第三部份的內容是IP ESP,第四部份敘述安全羣組SA的觀念,第五部份則是以一個實際的例子來說明IP AH和IP ESP實際運作的情形,第六部份介紹SKIP及ISAKMP/Qakley兩個IETF所參考的金鑰管理協議。ISAKMP/Oakley較有彈性且能支持較多的協議,已被選爲IPv6的IPSec金鑰管理協議。最後一部份則是以ISPec的角度來看它在***上的應用,並整理列出目前***符合IPSec標準的商用產品。
  
  雖然針對IP層的安全機制尚有其它的IP Tunneling技術,例如基植於PPP而發展的PPIP(Point-to-Point Tunneling Protocol),這是由Microsoft和Ascend所共同提出,可支持IP/IPX/NetBEUI,支持的廠商則有Nortel,3COM。另外L2TP(Layer 2 Tunneling Protocol)則是融合了PPTP和Cisco的L2F(Layer 2 Forwarding),主要的廠商有Nortel和IBM。
  
  本文主要介紹IFTF所制定的開放標準IPSec,因爲它能整合不同的***系統而達到安全地網絡互連目的。
  
  二、IP AH格式
  
  IP AH提供認證及裝載數據的完整性,但不含機密性。由於它不提供機密性,所以不受密碼組件有對外輸出的官方限制,故能橫跨不同的國家的因特網使用。
  
  IP AH使用需要128位金鑰的MD5(Message Digest 5)計算出整個數據的雜湊函數值(注:此單向雜湊數也可使用SHA- 1(Secure Hash Algorithm-1)),使得接收端(知道密鑰的人)也可以驗證、計算是否使用相同的密鑰以檢查數據是否正確完整,若檢查不符則將此封包丟棄。依據IPSec規定,IPv6每部主機均應能提供密鑰長度128位的MD5,而所有IPv4也應宣告能支持此項AH功能。
  
  IP AH的格式,其中每項字段的意義分別敘述如下:Next Header長度8個位,這個標頭是定義AH後面數據的類型;數據長度字段也是8個位,它決定認證數據域位的長度,另外還有16個保留位做未來之用。安全參數索引(Security Parameter Index;SPI)是長度32個位的虛擬隨機數,決定安全羣組SA的內容,例如"0"是表示沒有SA,而1~255則是保留值。在SPI後面的是順序號碼字段(Sequence Number Field),加入這個號碼可防止重送***(Replay Attack)。最後一個字段是認證數據長度是可變的(32位的倍數)。顯示了使用信息摘要函數MD5,它產生 128位的雜湊函數值。從圖中也可看出對IPv4或IPv6而言。IP AH是在IP標頭和TCP(或UDP)之間。
  
  在IPSec中不管是IP AH或IP ESP,均有兩種不同的操作模式,隧道模式(Tunneling Mode)及傳送模式 (Transport Mode)。還沒介紹IPAH兩種模式前,我們先來解釋最常使用的技術 "隧道模式"的觀念,整個IP datagram被包在新的datagram中。分別爲原始的IP datagram,AH傳送模式及AH隧道模式,對於 AH隧道模式而言,最後它只是一個新的IP datagram而已。
  
  三、IP ESP格式
  
  IP ESP標準描述如何加密IP的裝載數據(Payload) ,加密的範圍可以是整個IPDatagram或者只是上層TCP,UDP,或ICMP數據(完全決定在使用隧道模式或傳送模式)。IP ESP所使用的保密技術是數據保密標準(Data Encryption Standard; DES)或是Triple-DES,模式則是加密區塊鏈(Cipher Block Chain ;CBC)。除了加密以外,IP ESP也能應用在認證,完整性,以及防止重送***。
  
  IP ESP的隧道模式及傳送模式各有其優點。隧道模式可以在兩個Security Gateway間建立一個安全"隧道",經由這兩個Gateway Proxy的傳送均在這個隧道中進行。反觀傳送模式加密的部份較少,沒有額外的IP標頭,故工作效率較佳。
  
  這兩種模式的操作詳細說明如下:
  
  1.傳送模式:
  
  IP ESP的傳送模式,ESP標頭直接加在欲傳送的數據前,這種模式可節省頻寬。因爲IP標頭不需加密,所以不像隧道模式,一個封包中有兩個IP標頭。
  
  首先將IP裝載數據使用ESP封裝起來(ESP Header和ESP Trailer)。傳送端利用使用者ID和目的端地址以得到SA環境 (下一節會加以介紹),然後用加密算法(DES或Triple-DES)加密傳送的數據。接收端收到ESP封裝的封包時直接處理IP標題(因爲沒有加密),然後從ESP Header拿取SPI值以得到相對的SA,再利用SA的安全環境所訂的解密函數解出所加密的資料。
  
  對傳送模式而言,解密的人就是目的地址端的使用者。但是針對Firewall, Gateway Proxy而言,使用隧道模式則較爲合適,因爲他們並不是原始的送,收端。
  
  2.隧道模式
  
  隧道模式可以簡單地用一句話來說明"IP-in-IP"。首先使用SA的相關訊息將IP的封包加密(含IP標頭),接下來在前面加上ESP  Header。然後Prepend新的IP標頭。接收端收到ESP封包後,使用ESP Header內容中的SPI值決定SA,然後解出ESP  Header後的裝載數據,就可以取回原始的IP標頭與封包,可以繼續地往下傳。
  
  ESP Header及ESP Trailer的內容,ESP Header包含了SPI值,啓始化向量IV,及順序號碼字段等,其中順序號碼可防止重送***。
  
  3.IP AH與IP ESP混合使用
  
  IP AH與IP ESP可以獨立或分開使用。是先加密再認證,數據認證之前作加密。則是先認證再加密,它的好處是對認證數據也有加密,因此沒有人可以更動認證數據。
  
  在介紹完下一節安全羣組SA的觀念之後,我們將會以一個實際的例子來說明IPSec中IP Header ,IP AH, IP ESP, SPI等的操作情形。
  
  第一代的IPSec版本於1995年提出(rfc 1825, rfc 1826, rfc 1827),它對金鑰的交換和管理並未定義,所強調的內容是封包轉換的格式。但網絡安全規格近年來改革頻繁,目前最新的IPSec版本已於1998年提出(rfc 2401, rfc 2402, rfc 2406),增加自動金鑰交換且更新了封包轉換的格式,使得IPSec架構愈趨完整。
  
  四、安全羣組SA
  
  在IPSec標準中最重要的項目就是SA,它定義了一個安全的"環境",這個環境的內容包含了IP封包加密,解密,和認證的相關訊息,敘述如下:
  
  ·密碼功能:提供加密或認證或兩者同時。
  
  ·密碼算法:例如加/解密使用DES(或 Triple-DES)認證使用MD5 (或SHA-1)。
  
  ·密碼算法中所使用的金鑰,金鑰的生命週期等。
  
  ·是否有啓始化向量。
  
  ·SA的生命週期
  
  SA可以使用安全參數索引 SPI(32位)來描述,也就是一個SPI值決定一個特定的SA,而主機的IP地址與SPI則定義了唯一的SA。例如主機A可以通知主機B SPI值爲1000,它所相對的SA環境,密碼功能爲有隻加密,用DES,金鑰爲0x1234567890abcdef(長度64位,其中8個位爲同位)。所以主機A就可以藉由SPI 1000的值來加密它的數據,然後傳送到主機B。當B收到封包後利用主機A和SPI的值就可以決定出SA而解密取回原始數據。

 
在瞭解IPSec協議的工作原理後,我們來看它不同的用場合,值得注意的是在網絡層提供安全機制,對應用層而言是完全透通的(trarsparent)。IPSec可以裝設在gateway或主機上,或是兩者同時,若IPSec裝在gateway上,則可在不安全的Internet上提供一個安全的信道,若是裝在主機,則能提供主機端對端的安全性。分別是gateway對gateway,主機對gateway,主機對主機三種可能的應用狀況。
  
  IPSec的優點
  
  IPSec在傳輸層之下,對於應用程序來說是透明的。當在路由器或防火牆上安裝IPSec時,無需更改用戶或服務器系統中的軟件設置。即使在終端系統中執行IPSec,應用程序一類的上層軟件也不會被影響。
  
  IPSec對終端用戶來說是透明的,因此不必對用戶進行安全機制的培訓。
  
  如果需要的話,IPSec可以爲個體用戶提供安全保障,這樣做就可以保護企業內部的敏感信息。
  
  IPSec正向Internet靠攏。已經有一些機構部分或全部執行了IPSec。IAB的前任總裁Christian Huitema認爲,關於如何保證Internet安全的討論是他所見過的最激烈的討論之一。討論的話題之一就是安全是否在恰當的協議層上被使用。想要提供IP級的安全,IPSec必須成爲配置在所有相關平臺(包括Windows NT,Unix和Macintosh系統)的網絡代碼中的一部分。
  
  實際上,現在發行的許多Internet應用軟件中已包含了安全特徵。例如,Netscape Navigator和Microsoft Internet Explorer支持保護互聯網通信的安全套層協議(SSL),還有一部分產品支持保護Internet上信用卡交易的安全電子交易協議(SET)。然而,***需要的是網絡級的功能,這也正是IPSec所提供的。
  
  ***工作原理
  
  IPSec提供三種不同的形式來保護通過公有或私有IP網絡來傳送的私有數據:
  
  ·認證:可以確定所接受的數據與所發送的數據是一致的,同時可以確定申請發送者在實際上是真實發送者,而不是僞裝的。
  
  ·數據完整:保證數據從原發地到目的地的傳送過程中沒有任何不可檢測的數據丟失與改變。
  
  ·機密性:使相應的接收者能獲取發送的真正內容,而無意獲取數據的接收者無法獲知數據的真正內容。
  
  在IPSec由三個基本要素來提供以上三種保護形式:認證協議頭(AH)、安全加載封裝(ESP)和互聯網密鑰管理協議(IKMP)。認證協議頭和安全加載封裝可以通過分開或組合使用來達到所希望的保護等級。
  
  對於***來說,認證和加密都是必需的,因爲只有雙重安全措施才能確保未經授權的用戶不能進入***,同時,Internet上的竊聽者無法讀取***上傳輸的信息。大部分的應用實例中都採用了ESP而不是AH。密鑰交換功能允許手工或自動交換密鑰。
  
  當前的IPSec支持數據加密標準(DES),但也可以使用其它多種加密算法。因爲人們對DES的安全性有所懷疑,所以用戶會選擇使用Triple-DES(即三次DES加密)。至於認證技術,將會推出一個叫作HMAC(MAC 即信息認證代碼Message Authentication Code)的新概念。
  
  認證協議頭(AH)是在所有數據包頭加入一個密碼。正如整個名稱所示,AH通過一個只有密鑰持有人才知道的"數字簽名"來對用戶進行認證。這個簽名是數據包通過特別的算法得出的獨特結果;AH還能維持數據的完整性,因爲在傳輸過程中無論多小的變化被加載,數據包頭的數字簽名都能把它檢測出來。不過由於AH不能加密數據包所加載的內容,因而它不保證任何的機密性。兩個最普遍的AH標準是MD5和SHA-1,MD5使用最高到128位的密匙,而SHA-1通過最高到160位密匙提供更強的保護。
  
  安全加載封裝(ESP)通過對數據包的全部數據和加載內容進行全加密來嚴格保證傳輸信息的機密性,這樣可以避免其他用戶通過監聽來打開信息交換的內容,因爲只有受信任的用戶擁有密匙打開內容。ESP也能提供認證和維持數據的完整性。最主要的ESP標準是數據加密標準(DES),DES最高支持56位的密匙,而Triple-DES使用三套密匙加密,那就相當於使用最高到168位的密匙。由於ESP實際上加密所有的數據,因而它比AH需要更多的處理時間,從而導致性能下降。
  
  密鑰管理包括密鑰確定和密鑰分發兩個方面,最多需要四個密鑰:AH和ESP各兩個發送和接收密鑰。密鑰本身是一個二進制字符串,通常用十六進制表示,例如,一個56位的密鑰可以表示爲5F39DA752E0C25B4。注意全部長度總共是64位,包括了8位的奇偶校驗。56位的密鑰(DES)足夠滿足大多數商業應用了。密鑰管理包括手工和自動兩種方式。
  
  人工手動管理方式是指管理員使用自己的密鑰及其它系統的密鑰手工設置每個系統。這種方法在小型網絡環境中使用比較實際。手工管理系統在有限的安全需要可以工作得很好。使用手工管理系統,密鑰由管理站點確定然後分發到所有的遠程用戶。真實的密鑰可以用隨機數字生成器或簡單的任意拼湊計算出來,每一個密鑰可以根據集團的安全政策進行修改。
  
  自動管理系統能滿足其他所有的應用要求。使用自動管理系統,可以動態地確定和分發密鑰,顯然和名稱一樣,是自動的。自動管理系統具有一箇中央控制點,集中的密鑰管理者可以令自己更加安全,最大限度的發揮IPSec的效用。 另一方面,自動管理系統可以隨時建立新的SA密鑰,並可以對較大的分佈式系統上使用密鑰進行定期的更新。自動管理模式是很有彈性的,但需要花費更多的時間及精力去設置,同時,還需要使用更多的軟件。
  
  IPSec的自動管理密鑰協議的默認名字是ISAKMP/Oakley。互聯網安全組織及密鑰管理協議(Internet Security Association and Key Management Protocol ISAKMP)對互聯網密鑰管理的架構以及特定的協議提供支持。Oakley 密鑰使用的協議基於Diffle-Hellman 算法,但它也提供額外的安全功能。特別是Oakley包括認證用戶的機制。
  
  IPSec的實現方式
  
  IPSec的一個最基本的優點是它可以在共享網絡訪問設備,甚至是所有的主機和服務器上完全實現,這很大程度避免了升級任何網絡相關資源的需要。在客戶端,IPSec架構允許使用在遠程訪問介入路由器或基於純軟件方式使用普通MODEM的PC機和工作站。通過兩種模式在應用上提供更多的彈性:傳送模式和隧道模式。
  
 
 
  IPSec數據包可以在壓縮原始IP地址和數據的隧道模式使用。
  
  傳輸模式通常當ESP在一臺主機(客戶機或服務器)上實現時使用,傳輸模式使用原始明文IP頭,並且只加密數據,包括它的TCP和UDP頭。
  
  隧道模式通常當ESP在關聯到多臺主機的網絡訪問介入裝置實現時使用,隧道模式處理整個IP數據包:包括全部TCP/IP或UDP/IP頭和數據,它用自己的地址做爲源地址加入到新的IP頭。當隧道模式用在用戶終端設置時,它可以提供更多的便利來隱藏內部服務器主機和客戶機的地址。
  
  ESP支持傳輸模式,這種方式保護了高層協議。傳輸模式也保護了IP包的內容,特別是用於兩個主機之間的端對端通訊(例如,客戶與服務器,或是兩臺工作站)。傳輸模式中的ESP加密及有時候會認證IP包內容,但不認證IP的包頭。這種配置對於裝有IPSec的小型網絡特別有用。
  
  但是,要全面實施***,使用隧道模式會更有效。ESP也支持隧道模式,保護了整個IP包。爲此,IP包在添加了ESP字段後,整個包以及包的安全字段被認爲是新的IP包外層內容,附有新的IP外層包頭。原來的(及內層)包通過"隧道"從一個IP網絡起點傳輸到另一個IP網點,中途的路由器可以檢查IP的內層包頭。因爲原來的包已被打包,新的包可能有不同的源地址及目的地址,以達到安全的目的。
  
  隧道模式被用在兩端或是一端是安全網關的架構中,例如裝有IPSec的路由器或防火牆。使用了隧道模式,防火牆內很多主機不需要安裝IPSec 也能安全地通信。這些主機所生成的未加保護的網包,經過外網,使用隧道模式的安全組織規定(即SA,發送者與接收者之間的單向關係,定義裝在本地網絡邊緣的安全路由器或防火牆中的IPSec軟件IP交換所規定的參數)傳輸。
  
  以下是隧道模式的IPSec運作的例子。某網絡的主機甲生成一個IP包,目的地址是另一個網中的主機乙。這個包從起始主機被髮送到主機甲的網絡邊緣的安全路由器或防火牆。防火牆把所有出去的包過濾,看看有哪些包需要進行IPSec的處理。如果這個從甲到乙的包需要使用IPSec,防火牆就進行IPSec的處理,並把網包打包,添加外層IP包頭。 這個外層包頭的源地址是防火牆,而目的地址可能是主機乙的網絡邊緣的防火牆。現在這個包被傳送到主機乙的防火牆,中途的路由器只檢查外層的IP包頭。主機乙網絡的防火牆會把外層IP包頭除掉,把IP內層發送到主機乙去。
  
  IPSec 及***
  
  由於企業及政府用戶需要把它們的專用WAN/LAN 架構與互聯網連接,以便訪問互聯網的服務,所以他們非常熱衷於部署安全的IP。用戶需要把它們的網絡與互聯網分隔,但同時要在網上發送及接收網包。安全的IP就可以提供網上的認證及隱私機制。
  
  因爲IP安全機制是獨立定義,其用途與現在的IP或IPv6不同,IP安全機制不需要依靠IPv6部署。我們可以看到安全IP的功能會首先被廣泛使用,它會比IPv6先流行起來,因爲對IP層的安全需求遠比增加IPv6功能的需求多很多。
  
  有了IPSec,管理人員就有了實施***的安全標準。此外,所有在IPSec中使用的加密及認證算法已經過仔細的研究和幾年的驗證,所以用戶大可放心地將安全問題交付給IPSec。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章