不得不懂的加密技術與IPsec實例應用(一)

當不同的遠程網絡通過Internet連接時,網絡之間直接通過私有地址進行互訪只是需求之一,除此之外,還有個非常重要的需求,那就是數據安全。因為作為公共環境的Internet,相當於是沒有任何秩序和管理的“公海區域”,如果是重要的數據直接往Internet傳送,那麼被截獲甚至是篡改的概率就相當之大了。基於上述原因,為了保證數據的安全,以及數據來源的合法性,目前網絡中在傳輸數據的時候幾乎都會對數據進行加密和驗證。數據加密的作用是保證數據的機密性,即使被他人非法獲取,也無法讀取數據的內容;數據的驗證,則是保證數據的完整性,也就是說數據在傳輸過程中沒有被人篡改。這些技術是怎麼實現的呢?本文就來為大家聊聊這個話題。

本文核心知識點:

1、對稱加密算法和非對稱加密算法;

2、如何進行數據的校驗;

3、從理論上認識IPsec;

4、Cisco L2L VPDN經典實驗。

加密技術

1.1 數據被截獲了


想當年,我們的女主角紫竹還剛上大一。她這邊結束了高考,倒是可以得到一點“解放”,但是她的大堂妹紫雲卻在這一年上了高三,準備高考了;而小堂妹紫苑呢,又是在當年要準備中考,可以說倆妹妹都要參加重要的升學考試,一時間,紫竹的二叔家裡面是人人精神緊繃……


小堂妹紫苑是個乖乖女,文文靜靜的,而且學習還算刻苦認真,所以二叔和二嬸倒是不太擔心她。但是紫雲有點讓父母不省心,看起來她的學習成績也還不錯,但是壞就懷在她居然在這個時候情竇初開,和學校一個不同班且有學渣屬性的男生關係搞得不錯。


本來嘛,林二叔和二嬸也不知道這個事情,可就是有一天紫雲上學之前把手機放在早餐桌子上,然後那個男生給紫雲發了短信,讓林二嬸給看見了……


好嘛!林二嬸立刻急得團團轉,紫雲在高三這個關鍵時刻居然掉了鏈子,而且還和全班考試倒數的王安然談起了“疑似戀愛”……這裡面的結果就不用多說了,紫雲肯定和老媽大吵了一架,同時也不得不接受起老媽的“每日審查”!

不得不懂的加密技術與IPsec實例應用(一)


以上這個小故事,就是模擬了數據在網絡中傳輸被人截獲的情形。在這個故事中,我們可以理出如下模型:

不得不懂的加密技術與IPsec實例應用(一)

數據是由王安然發出,預期目標是發送給紫雲。但是卻被紫雲的母親林二嬸給發現了,並且還讀懂了這個信息,於是紫雲母女之間避免不了要爆發一次青春期與更年期之間的“戰爭”。不過換句話來說,林二嬸這種“截獲”,說不定也能給紫雲提一個醒,也不一定是壞事。


1.2、何為“對稱加密”


接上回開始說,自從林二嬸發現了紫雲的手機短信以後,於是林二嬸開始對紫雲實施了“行為約束”。每天晚上都要讓紫雲把短信拿給她看。這下子,王安然的消息肯定是不敢再發過來了。但是無奈這倆人也實在是心癢癢啊,那麼如何打消林二嬸的疑慮呢?


於是,倆人就悄悄約定了一堆“暗號!”


比如,家長愛聽的話,無非就是:一起上晚自習啊,一起去找老師開小灶之類的嘛。於是,紫雲和王安然就約定好了如下暗號。


比如,所學習的6個科目就代表成都市的六個區:“語文”代表“錦江區”,“數學”代表“青羊區”……;

再有,吃飯就是補課,看電影就是讀書會,考試就是演唱會;


於是,王安然和紫雲的短信聊天,就變成了這樣:

不得不懂的加密技術與IPsec實例應用(一)

既然是人家主動喊去補習功課,語言又說得那麼懇切,那不讓紫雲去也不太好。畢竟嘛,自己做母親的也不能做人做得太過分,直接去警告人家王安然顯得我家的人太不近人情。好嘛,紫雲和王安然就用這些千奇百怪的“暗號”,從高三一開始到高考結束,“成功”地一起吃了7次火鍋,看了6場電影,3場演唱會……


不過這事情嘛,在高考的時候還是“漏了陷”,紫雲的成績還是受到了影響。她本來是想和紫竹上一個大學的,但是無奈還是差了那麼幾分,最後去了重慶。而王安然嘛,勉強上了個本地的二本,和紫雲的關係也就那麼斷了。直到一年以後,紫雲才給林二嬸說了當年她和王安然的“暗號”。林二嬸當即覺得又好笑又鬱悶,這麼“拙劣”的“騙術” ,她當時怎麼就沒識別出來呢?


這個故事呢,就說了一個“對稱加密”的模型。其實就是把想要表達的意思,換一種方式來表達,以達到“迷惑”截獲者的作用。就像紫雲和王安然,把一起約著去吃喝玩樂,用一起去“努力學習”來表達,讓林二嬸還就信以為真了。


在這裡呢,我們也就說一個知識點。所謂“加密”,就是把明文的數據轉換成密文,而解密,則是加密的逆運算。在計算機系統中,加密和解密都有自己特定的算法和密碼(或者說密鑰)。在剛才那個故事中,算法就是“替換”,密鑰就是“科目換地名,學習換玩樂”。


我們也可以再來看一個例子,那就是吳雄飛給紫竹發送了一條短信“noλ ə∧ol I”,看起來是一堆亂碼對吧,但只要把手機倒過來,就看見是“I love you”。這裡的算法就是“字符顛倒”,密鑰就是:“倒轉”。

不得不懂的加密技術與IPsec實例應用(一)

1.3、何為“非對稱加密”


有個週末,紫竹想去春熙路逛逛,買幾件衣服,但是那天吳雄飛要寫標書,她就只能自己去。正當她在吸著飲料,興致勃勃地逛街的時候,突然面前闖來一個冒冒失失的男的,在走得快的同時把錢包掉在了紫竹的腳下。


“喂,前面那位帥哥,你的錢包掉了!”紫竹撿起錢包,追上那個男的,把錢包遞給了他。

如果說,那個男的是單身的帥哥,紫竹也單身,這件事情可以帶出一段美麗的愛情故事;可惜,那個男生並不帥,紫竹也並不是單身。但問題是,紫竹是那種讓人看了一眼就難忘的妹子……


那個男的,接過錢包以後,看著紫竹的臉蛋,眼睛都直了。他說道:“小美女,謝謝你啊!為了對你表示感謝,我要請你去前面的冷飲店坐坐,喝一杯奶茶你看如何?”


“不了!謝謝!”紫竹帶著禮貌的微笑拒絕了他,然後轉身就往前走。

“等一下!”那個男的一下子閃在紫竹面前,攔住了她:“你都沒和我說幾句話就拒絕我?要不,你給我一個你的聯繫方式我再放你走!”


把手機號直接給這個陌生人肯定不行,所以,紫竹給了這個男的一張紙條,上面寫著一行數字:242667270058402773198。紫竹說:“這串數字就是用我的手機號碼乘其他數字乘出來的,只要你算得出來我的手機號,晚上我請你去人民公園對面吃蹄花!”說完,丟下那個人自己就走了。


手機號碼是一個11位數,你可以用242667270058402773198逐一去嘗試,從10000000000除以到19999999999。你先別說逐一嘗試這種事情是不是能完成,就是完成了,也能得到很多個11位數的結果,你總不可能一個一個地打騷擾電話去確認誰是紫竹吧。


這其實就是一個“非對稱加密”的模型。這個模型的算法其實就是簡單的“算術乘除”,但是加密的過程是把兩個數字相乘,得到乘積。


我們換一個小一點的數字來說吧,比如25169×29663=746588047,兩個數字是25169和29663,乘積是746588047,這是個加密過程。但是如果直接把746588047數字給你,讓你解出它是由哪兩個數字相乘得出來的,這就費勁了。


設有A×B=Z,A和B就是這個算法中的兩個不同的密鑰,兩個密鑰成對生成;用A加密的要用B解密,B加密的要用A解密,這就是非對稱加密。

不得不懂的加密技術與IPsec實例應用(一)

1.4、兩種加密算法的特點


對稱加密算法,加密和解密用的都是同一密鑰,所以如果非法用戶截獲了這個密鑰,那麼它也可以解密這些內容。如果要對網絡中傳送的數據使用對稱加密算法的話,這個密鑰也必須共享給對方,在這個過程中卻正好是容易被非法用戶連內容帶密鑰一同截獲的時候。

不得不懂的加密技術與IPsec實例應用(一)


如果是非對稱加密算法呢?加密和解密用的就不是相同的密鑰了。此時,共享的密鑰只是大家都知道的“公鑰”,而“私鑰”則始終不會在網絡中傳送,等於是沒有被截獲的可能。並且,公鑰和私鑰都是成對生成,用B的公鑰加密的數據,只能用B的私鑰解密。

不得不懂的加密技術與IPsec實例應用(一)

不得不懂的加密技術與IPsec實例應用(一)


可能看到這裡,有人就會覺得,既然非對稱加密中,私鑰始終不會在網絡中傳輸,並且每個用戶的私鑰都不一樣,是不是非對稱加密算法就可以完全取代對稱加密算法了呢?實際上也不是這樣。首先,對稱加密算法中的3DES、AES算法已經被數學證明過是安全的;而非對稱加密算法的思路無非就是:量巨大就算安全(就比如1.3小節裡面那個故事裡面說的那樣,你逐一嘗試吧)。而且,對稱加密也有它的優勢,非對稱加密也有它的劣勢。


對稱加密的最大優點在於計算效率高,而且數據被加密後,佔用空間的大小隻會發生細微變化(也就是緊湊性好)。所以,對稱加密算法適合較大數據的加密。而非對稱加密算法呢,計算複雜且效率低,而且,1KB的數據被加密後可能達到10M甚至100M,緊湊性太差,所以非對稱加密算法只適合數據極小的時候。

不得不懂的加密技術與IPsec實例應用(一)


常用的對稱加密算法有:3DES、AES;非對稱加密算法有:RSA、DSA等。這些加密算法是基於什麼工作原理,我覺得還是留給感興趣的讀者去自行收集資料吧。

數據完整性校驗


數據經過加密,只能保證數據的機密性,仍然無法防止數據被人篡改。換句話說,數據完整性的保證,需要用另外一種方式進行保證。下面就說一下數據完整性校驗算法。


2.1、數據完整性校驗方式


有個梅老闆,做著給海外供煤炭的生意,這次他準備把5000t煤渣運往海外。但是煤炭裝箱以後,他又怕船長偷。這個船長拍著胸脯對梅老闆說:“老闆,我要是偷煤,你就罰我喂鯊魚。你放心,到了目的地以後,我負責出錢請人幫你過磅!”


因為這趟煤要運到新西蘭,沒有幾個月可運不到。而且,秦皇島和新西蘭奧克蘭的地心引力不一樣,直接過稱的誤差很大,所以光靠過磅沒辦法有效防止船員偷煤。所以,船長才敢下如此毒誓。不過呢,梅老闆好像一副胸有成竹的樣子:“沒事船長,我敢保證這批煤你偷不走!”


煤箱子進了船艙,梅老闆親自指揮員工把帆布幔子蓋上並鎖上了。這一趟船走了兩個月才到終點。於是,梅老闆親自去驗貨。剛一打開帆布幔子,梅老闆就嬉笑著說:“船長先生,乖乖把偷走的煤交出來吧!”


船長一看,幾大集裝箱的煤上面長滿了青苗,但是幾乎每個箱子裡面都有幾塊地方缺了苗。梅老闆笑道:“我早就在這些煤的面上撒了種子,如果哪些地方沒有青苗,就說明哪些地方的煤被偷了。”


船長此時啞口無言,只能是減免了這趟船的運費當做賠償。


這個故事,其實就可以簡單說明了在計算機系統裡面對數據做完整性校驗的一個思路。那就是對數據執行一個Hash算法,得到一個摘要值(等於是在煤渣表面撒一層種子,等待種子發芽長苗,預期就是煤渣表面長滿青苗)。


待數據發送到接收者手裡以後,接收者用同樣的Hash算法,得到一個數字簽名,然後用這個數字簽名和摘要值進行比對。如果,數字簽名和摘要值出現偏差,則說明數據在傳輸過程中已經被人篡改了。就像這個故事裡面,煤渣遇到目的地,結果發現有些箱子裡面的煤渣表面沒有青苗,說明這個地方的煤渣被人偷走了。


這個過程如下圖所示:

不得不懂的加密技術與IPsec實例應用(一)

不得不懂的加密技術與IPsec實例應用(一)

2.2、Hash算法的特點


Hash算法具有以下特點:


(1)固定長度,比如用MD5值計算的Hash值總是128字節,SHA-1計算的Hash值總是160字節。

(2)單向計算,只能通過原始數據得到數字簽名,無法逆運算。這過程類似餘數算法,就是一個簡單的不可逆算法,10除以3餘數為1,但除以3餘數為1的未必只有10,可以有無數種可能性,所以即使你知道除數3和餘數1,也無法反推到答案10。

(3)雪崩效應,只要你在10G數據裡面哪怕篡改1b,計算出來的Hash值也有天差地別。


常用的Hash算法是:MD5和SHA。


SHA比MD5更加安全,但中國某大學著名教授已經證明了這兩種算法都存在一定的虛假性,目前正在研發的SHA-2具有更長的簽名長度,但還未投入使用。

不得不懂的加密技術與IPsec實例應用(一)

不得不懂的加密技術與IPsec實例應用(一)

未完待續預告

不得不懂的加密技術與IPsec實例應用(一)

IP Sec 經典實例

不得不懂的加密技術與IPsec實例應用(一)


分享到:


相關文章: