IPSEC是一套比較完整成體系的VPN技術,它規定了一系列的協議標準。
但是很多同學在學習的時候還是有很多困難的,因此我根據雛鷹部落論壇上資料特意整理了一下,希望能夠對正在學習的同學有所幫助。
我們對於IPSEC大致按照以下幾個方面理解。
步驟/方法
為什麼要匯入IPSEC協議
匯入IPSEC協議,原因有2個,一個是原來的TCP/IP體系中間,沒有包括基於安全的設計,任何人,只要能夠搭入線路,即可分析所有的通訊資料。IPSEC引進了完整的安全機制,包括加密、認證和資料防篡改功能。
另外一個原因,是因為Internet迅速發展,接入越來越方便,很多客戶希望能夠利用這種上網的頻寬,實現異地網路的的互連通。IPSEC協議通過包封裝技術,能夠利用Internet可路由的地址,封裝內部網路的IP地址,實現異地網路的互通。
包封裝協議
引進這種包封裝協議,實在是有點不得已。理想的組網方式,當然是全路由方式。任意節點之間可達(就像理想的現實通訊方式是任何人之間都可以直接寫信互通一樣)。
Internet協議最初設計的時候,IP地址是32位,當時是很足夠了,沒有人能夠預料到將來Internet能夠發展到現在的規模(相同的例子發生在電信短訊息上面,由於160位元組的限制,很大地制約了短訊息的發展)。按照2的32次方計算,理論上最多能夠容納40億個左右IP地址。這些IP地址的利用是很不充分的,另外大約有70%左右的IP地址被美國分配掉了(誰讓人家發明並且管理Internet呢?)所以對於中國來說,可供分配的IP地址資源非常有限。
既然IP地址有限,又要實現異地lan-lan通訊,包封包,自然是最好的方式了。
安全協議(加密)
IPSEC協議的加密技術和這個方式是一樣的,既然能夠把資料封裝,自然也可以把資料變換,只要到達目的地的時候,能夠把資料恢復成原來的樣子就可以了。這個加密工作在Internet出口的VPN閘道器上完成。
安全協議(資料認證)
把資料加密,對應這個模型中間,是把信件的文字用暗號表示。
好事之徒無法破解信件,但是可以偽造一封信,或者胡亂把信件改一通。這樣,信件到達目的地以後,內容就面目全非了,而且收信一方不知道這封信是被修改過的。
為了防止這種結果,就要引入資料防篡改機制。萬一資料被非法修改,能夠很快識別出來。這在現實通訊中間可以採用類似這樣的演算法,計算信件特徵(比如統計這封信件的筆劃、有多少字),然後把這些特徵用暗號標識在信件後面。
收信人會檢驗這個信件特徵,由於信件改變,特徵也會變。所以,如果修改人沒有暗號,改了以後,資料特徵值就不匹配了。收信人可以看出來。
實際的IPSEC通訊的資料認證也是這樣的,使用md5演算法計算包文特徵,報文還原以後,就會檢查這個特徵碼,看看是否匹配。證明資料傳輸過程是否被篡改。
安全協議(身份認證)
常見的VPN身份認證可以包括預共享金鑰,通訊雙方實現約定加密解密的密碼,直接通訊就可以了。能夠通訊就是朋友,不能通訊就是壞人,區分很簡單。
其他複雜的身份認證機制包括證書(電子證書比如x509之類的),比較羅裡羅嗦,這裡就不具體展開了,怕有兄弟看了打瞌睡。如果需要,可以找我要更具體的技術白皮書以及相關的身份認證文件。如果有身份認證機制,金鑰的經常更換就成為了可能。
其他
解決了上述的幾個問題,基本可以保證VPN通訊模型能夠建立起來了。
但是並不完美,這是最簡單的VPN。即通過對端兩個靜態的IP地址,實現異地網路的互聯。美國的很多VPN裝置就作到這一級,因為美國IP地址充裕,分配靜態IP地址沒有問題。苦的是我等中國客戶,2端都需要靜態IP地址,相當於2根Internet專線接入。
注意事項
以上內容純屬個人愚見,如有任何不到位的地方,歡迎指出。