IPSEC
發表于:2007-05-26來源:作者:點擊數:
標簽:
加密和身份驗證算法 由于對安全性的攻擊方法多種多樣,設計者很難預計到所有的攻擊方法,因此設計安全性算法和 協議 非常困難。普遍為人接受的關于安全性方法的觀點是,一個好的加密算法或身份驗證算法即使被攻擊者了解,該算法也是安全的。這一點對于Intern
加密和身份驗證算法
由于對安全性的攻擊方法多種多樣,設計者很難預計到所有的攻擊方法,因此設計安全性算法和
協議非常困難。普遍為人接受的關于安全性方法的觀點是,一個好的加密算法或身份驗證算法即使被攻擊者了解,該算法也是安全的。這一點對于Internet安全性尤其重要。在Internet中,使用嗅探器的攻擊者通過偵聽系統與其連接協商,經常能夠確切了解系統使用的是哪一種算法。
與Internet安全性相關的重要的密碼功能大致有5類,包括對稱加密、公共密鑰加密、密鑰交換、安全散列和數字簽名。
1. 對稱加密
大多數人都熟知對稱加密這一加密方法。在這種方法中,每一方都使用相同的密鑰來加密或解密。只要掌握了密鑰,就可以破解使用此法加密的所有數據。這種方法有時也稱作秘密密鑰加密。通常對稱加密效率很高,它是
網絡傳送大量數據中最常用的一類加密方法。
常用的對稱加密算法包括:
• 數據加密標準( DES )。DES首先由IBM公司在7 0年代提出,已成為國際標準。它有5 6位密鑰。三重DES算法對DES略作變化,它使用DES算法三次加密數據,從而改進了安全性。
• RC2 、RC4和RC5。這些密碼算法提供了可變長度密鑰加密方法,由一家安全性動態公司,RSA數據安全公司授權使用。目前網景公司的Navigator瀏覽器及其他很多Internet客戶端和
服務器端產品使用了這些密碼。
• 其他算法。包括在加拿大
開發的用于Nortel公司Entrust產品的CAST、國際數據加密算法( IDEA )、傳聞由前蘇聯安全局開發的GOST算法、由Bruce Schneier開發并在公共域發表的Blowfish算法及由美國國家安全局開發并用于Clipper芯片的契約密鑰系統的Skipjack 算法。
安全加密方法要求使用足夠長的密鑰。短密鑰很容易為窮舉攻擊所破解。在窮舉攻擊中,攻擊者使用計算機來對所有可能的密鑰組合進行
測試,很容易找到密鑰。例如,長度為4 0位的密鑰就不夠安全,因為使用相對而言并不算昂貴的計算機來進行窮舉攻擊,在很短的時間內就可以破獲密鑰。同樣,單DES算法已經被破解。一般而言,對于窮舉攻擊,在可預測的將來,1 2 8位還可能是安全的。
對于其他類型的攻擊,對稱加密算法也比較脆弱。大多數使用對稱加密算法的應用往往使用會話密鑰,即一個密鑰只用于一個會話的數據傳送,或在一次會話中使用幾個密鑰。這樣,如果會話密鑰丟失,則只有在此會話中傳送的數據受損,不會影響到較長時期內交換的大量數據。
2. 公共密鑰加密
公共密鑰加密算法使用一對密鑰。公共密鑰與秘密密鑰相關聯,公共密鑰是公開的。以公共密鑰加密的數據只能以秘密密鑰來解密,同樣可以用公共密鑰來解密以秘密密鑰加密的數據。這樣只要實體的秘密密鑰不泄露,其他實體就可以確信以公共密鑰加密的數據只能由相應秘密密鑰的持有者來解密。盡管公共密鑰加密算法的效率不高,但它和數字簽名均是最常用的對網絡傳送的會話密鑰進行加密的算法。
最常用的一類公共密鑰加密算法是RSA算法,該算法由Ron Rivest 、Adi Shamir 和LenAdleman開發,由RSA數據安全公司授權使用。RSA定義了用于選擇和生成公共/秘密密鑰對的機制,以及目前用于加密的數學函數。
3. 密鑰交換
開放信道這種通信媒體上傳送的數據可能被第三者竊聽。在Internet這樣的開放信道上要實現秘密共享難度很大。但是很有必要實現對共享秘密的處理,因為兩個實體之間需要共享用于加密的密鑰。關于如何在公共信道上安全地處理共享密鑰這一問題,有一些重要的加密算法,是以對除預定接受者之外的任何人都保密的方式來實現的。
Diffie-Hellman密鑰交換算法允許實體間交換足夠的信息以產生會話加密密鑰。按照慣例,假設一個密碼
協議的兩個參與者實體分別是Alice和Bob,Alice使用Bob的公開值和自己的秘密值來計算出一個值;Bob也計算出自己的值并發給Alice,然后雙方使用自己的秘密值來計算他們的共享密鑰。其中的數學計算相對比較簡單,而且不屬于本書討論的范圍。算法的概要是Bob和Alice能夠互相發送足夠的信息給對方以計算出他們的共享密鑰,但是這些信息卻不足以讓攻擊者計算出密鑰。
Diffie-Hellman算法通常稱為公共密鑰算法,但它并不是一種公共密鑰加密算法。該算法可用于計算密鑰,但密鑰必須和某種其他加密算法一起使用。但是,Diffie-Hellman算法可用于身份驗證。Network Associates公司的P G P公共密鑰軟件中就使用了此算法。
密鑰交換是構成任何完整的Internet安全性體系都必備的。此外,IPsec安全性體系結構還包括Internet密鑰交換( I K E )及Internet安全性關聯和密鑰管理
協議( ISAKMP )。
4. 安全散列
散列是一定量數據的數據摘要的一種排序。檢查數字是簡單的散列類型,而安全散列則產生較長的結果,經常是1 2 8位。對于良好的安全散列,攻擊者很難顛倒設計或以其他方式毀滅。安全散列可以與密鑰一起使用,也可以單獨使用。其目的是提供報文的數字摘要,用來驗證已經收到的數據是否與發送者所發送的相同。發送者計算散列并將其值包含在數據中,接收者對收到的數據進行散列計算,如果結果值與數據中所攜帶的散列值匹配,接收者就可以確認數據的完整性。
常用的散列方法由RSA數據安全公司提出,包括MD2、MD4和MD5報文摘要函數。安全散列算法( SHA )是由美國國家標準和技術協會( NIST )所開發的標準摘要函數。散列可以單獨使用,也可以和數字簽名一起使用。
5. 數字簽名
前面提到的公共密鑰加密依賴于密鑰對,而數字簽名則依靠公共密鑰加密的特性,即允許數據以實體密鑰對中的秘密密鑰來加密,以公共密鑰來解密。發送者首先對于要簽名的數據進行安全散列計算,然后對結果使用秘密密鑰加密。而接收者首先進行相同的散列計算,然后對發送者所附加的加密值進行解密。如果兩次計算的值能夠匹配,接收者就可以確信公共密鑰的主人就是對報文簽名的實體,且報文在傳送中并沒有被修改。
RSA公共密鑰加密算法可以用于數字簽名。簽名實體為待簽名的數據建立散列,然后以自己的密鑰對散列加密;證實實體則對接收到的數據進行相同的散列計算,使用簽名實體的公共密鑰對簽名解密,并且比較所得的兩個值。如果散列與解密的簽名相同,則數據就得到證實。
數字簽名有如下幾種含義:
• 如果簽名得到證實,說明所接收到的報文在從簽名到接收的一段時間內未經任何改動。
• 如果不能證實簽名,則說明或者是報文在傳送過程中受到了破壞或篡改,或者是簽名計算錯誤,又或者是簽名在傳送過程中被破壞或篡改。在上述任何情況下,未得到證實的簽名并不一定是壞事,但是要求對報文重新簽名并重傳,以便最終能為接收者所接受。
• 如果簽名得到證實,意味著與公共密鑰相關聯的實體是對報文簽名的唯一實體。換言之,與公共密鑰關聯的實體不能否認自己的簽名,這是數據簽名的重要特性,稱為不可抵賴。
還有其他機制可以實現數據簽名,而RSA是其中應用最廣泛的,并且已在大多數Internet產品中實現。
安全性關聯安全性關聯是( SA ) IPsec的基本概念。安全性關聯包含能夠唯一標識一個安全性連接的數據組合。連接是單方向的,每個S A由目的地址和安全性參數索引( SPI )來定義。其中SPI是對RFC1825修改后的Internet草案中所要求的標識符,它說明使用SA的IP頭類型,如AH或ESP。SPI為32位,用于對S A進行標識及區分同一個目的地址所鏈接的多個SA。進行安全通信的兩個系統有兩個不同的SA,每個目的地址對應一個。
每個S A還包括與連接協商的安全性類型相關的多個信息。這意味著系統必須了解其S A、與S A目的主機所協商的加密或身份驗證算法的類型、密鑰長度和密鑰生存期。
密鑰管理如何管理密鑰是Internet安全性專業人士面臨的最復雜的問題之一。密鑰管理不僅包括使用密鑰
協議來分發密鑰,還包括在通信系統之間對密鑰的長度、生存期和密鑰算法進行協商。Internet工作組和研究團體對此已進行了大量工作,但是由于尚未達成一致,目前還沒有發表任何R F C。
Internet安全性關聯密鑰管理
協議( ISAKMP ) 為密鑰的安全交換定義了整個基本構架。ISAKMP實際上是一個應用
協議,
協議中定義了用于系統之間協商密鑰交換的不同類型報文,它在傳輸層使用UDP。
但是ISAKMP只是特定機制所使用的框架,而沒有定義實際完成交換的機制和算法。這些年來在不同的建議中定義了大量的交換機制,通常以Diffie-Hellman密鑰交換為基礎。主要的提案包括:
• Photuris 。此提案基于Diffie-Hellman 算法,但增加了要求,即要求節點首先發送一個cookie (一個隨機數),然后服務器給予應答,這樣減少了否認服務攻擊的威脅(否認服務攻擊是由攻擊者偽造源地址而導致的)。Photuris也要求通信各方都必須對協商好的密鑰簽名,以減少中間者攻擊的危害(所謂中間者攻擊,是指某個攻擊者對系統的Alice冒充自己是Bob,又對另一個系統的Bob冒充自己是Alice )。
• Sun 公司的Internet
協議的簡單密鑰管理( SKIP )。SKIP也是以Diffie-Hellman密鑰交換為基礎,但是它并不要求通信各方使用隨機數來計算其密鑰,而是要求使用靜態的密碼表。各方查找密碼表中的秘密值,然后基于查到的秘密值來計算,并傳送所算出的值。
• OAKLEY 。此機制與Photuris有某些相似特性,但在不考慮否認服務攻擊的情形下,它提供不同的密鑰交換模式。1998年秋,基于OAKLEY和SKEME ( Internet的安全密鑰交換機制),Internet密鑰交換最終在Internet密鑰交換規范中得以定義。
讀者應該注意到,人工密鑰管理也是一個重要選項,而且在很多情況下是唯一的選項。人工方法要求個人單獨交付密鑰,并使用密鑰來配置網絡設備。即使在開放標準已經充分確定并且實現之后,人工
密鑰管理仍將繼續是一個重要選擇,對于商業產品尤其如此。
實現IPsec IP層安全性用于保護IP數據報。它不一定要涉及用戶或應用。這意味著用戶可以愉快地使用應用程序,而無需注意所有的數據報在發送到Internet之前,需要進行加密或身份驗證,當然在這種情形下所有的加密數據報都要由另一端的主機正確地解密。
這樣就引入了如何實現IPsec的問題,有如下三種可能方法:
• 將IPsec作為IPV4?;騃PV6棧的一部分來實現。這種方法將IP安全性支持引入IP網絡棧,并且作為任何IP實現的一個必備部分。但是,這種方法也要求對整個實體棧進行更新以反映上述改變。
• 將IPsec作為“棧中的一塊”( BITS )來實現。這種方法將特殊的IPsec代碼插入到網絡棧中,在現有IP網絡軟件之下、本地鏈路軟件之上。換言之,這種方法通過一段軟件來實現安全性,該軟件截獲從現有IP棧向本地鏈路層接口傳送的數據報,對這些數據報進行必要的安全性處理,然后再交給鏈路層。這種方法可用于將現有系統升級為支持IPsec 的系統,且不要求重寫原有的IP棧軟件。
• 將IPsec作為“線路的一塊”( BITW )來實現。這種方法使用外部加密硬件來執行安全性處理功能。該硬件設備通常是作為一種路由器使用的IP設備,或者更確切一些,是安全性網關,此網關為位于它后面的所有系統發送的IP數據報服務。如果這樣的設備只用于一個主機,其工作情況與BITS方法類似,但如果一個BITW設備為多個系統服務,實現相對要復雜得多。
上述各種方法的差別不在于字面上,而在于它們的適用情況不同。要求高級別安全性的應用最好使用硬件方法實現;而如果系統不具備與新的IPsec兼容的網絡棧,應用最好選擇BITS方法。
隧道模式與透明模式下圖兩個系統建立了S A,以便在Internet上安全地通信。其中一個系統產生網絡業務流,經過加密或者簽名,然后發送給目的系統。而在接收方,首先對收到的數據報進行解密或者身份驗證,把凈荷向上傳送給接收系統的網絡棧,由使用數據的應用進行最后的處理。兩個主機之間的通信如同沒有安全性頭一樣簡單,而且數據報實際的IP頭必須要暴露出來以便在Internet選路,因此這種方法稱為使用S A的透明模式。

一對主機使用IPsec進行透明通信S A也可以用來將安全IP以隧道方式通過互聯網絡。見下圖,來自系統A的所有IP包首先轉發到安全性網關X,由X建立一條跨越Internet、目的地為安全性網關Y的隧道,由Y對經隧道方式傳來的數據拆包并轉發。安全性網關Y可能將包轉發給本地互聯網絡內的任一主機B、C或D,也可能轉發給外部主機,如M。這取決于源主機如何為這些包定向。如果S A目的節點是安全性網關,則稱為隧道關聯。即,隧道傳送既可以在兩個安全性網關之間進行(下圖), 也可以在正規節點和安全性網關之間進行。因此,圖中的主機M可以與安全性網關X或Y建立隧道連接,M所發送的數據報首先傳送給安全性網關,然后經過網關解密或身份驗證之后,再進行正確地轉發,由此可見這是一種隧道方式。

IP安全性隧道
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|