我個人一直認為,在整個網絡技術體系最頂端的位置,必定是屬于網絡安全技術。要想真正搞通網絡安全,那非得從硬體到軟體、從裝置到系統、從理論到實踐……,無所不會,無所不能,非真正技術超一流的大牛所不能為。網絡安全是一個複雜的體系,即便隻是參加如軟考網工之類的考試,網絡安全方面的相關知識也是大多數考生最頭疼的内容。
我個人離技術大牛還差得很遠,下面隻能結合即将講到的證書伺服器,對網絡安全技術的一些基礎知識做下介紹,也希望對準備參加網工考試的朋友能有所幫助。
網絡安全技術雖然非常複雜,但是單就資料通信傳輸這個方面而言,歸納起來,無法也就是為了解決以下三個方面的問題:
資料的機密性。即如何令我們發送的資料,即使被其他無關人員截獲,他們也無法獲知資料的含義。
資料的一緻性。即保證資料在傳送過程中沒有被篡改,接收方收到的資料與發送方發送的資料完全一緻。
資料的有效性。指資料不能被否認,一方面我們需要确認收到的資料是由某個确定的使用者發出的,另一方面發送方不能對自己發出的資料進行抵賴。
對于這三個問題,分别有相應的解決方法:
資料機密性,通過對資料進行加密實作。
資料一緻性,通過消息摘要算法實作。
資料有效性,通過數字簽名實作。
以上三點可說是網絡通信方面安全技術的總綱,那些名目繁多的協定和算法無非是為了實作這三個解決方法而采用的不同手段而已。以下的博文也就将從這三個方面分别展開,在這篇博文裡主要談一下資料加密。
資料加密是為了實作資料的機密性,這也是網絡安全技術中最基礎和最重要的一個部分。這裡面有一些基本概念要先搞明白:
明文,加密之前的資料。
密文,加密之後的資料。
算法,把資料從明文轉換成密文的方法。
密鑰,在加密算法中所使用的函數。
為了更好地了解這些概念,下面用一種非常古老的加密算法——“凱撒加密”作為範例進行說明。
凱撒加密的算法很簡單:将明文中的所有字母後移k位,就得到了密文,而k就是密鑰。具體如下圖所示。
<a target="_blank" href="http://blog.51cto.com/attachment/201304/085056673.jpg"></a>
在這個例子中,加密和解密都是使用相同的密鑰,像這類加密算法就稱為對稱式加密,也稱為共享密鑰加密。任何人隻要知道了密鑰,就可以将資料解密。
當然,凱撒加密算法非常簡單,即使不知道密鑰,也很容易将之暴力破解。在實際應用中使用較多的對稱式加密算法是DES。
DES,Data Encryption Standard資料加密标準,是由IBM公司研制的一種加密算法。它的基本原理是采用分組加密,将需要加密的資料分成64KB大小的分組,然後再将每個分組等分為32KB大小的兩部分,然後用一個56位數的密鑰對每部分進行加密,最後再将經過加密後的兩部分資料組合成一個分組,此稱之為“1輪”運算。然後将分組再拆分,再加密,再組合,此稱之為“2輪”運算,前後共需經過16輪運算,才可得到最終的加密後的資料。
雖然DES算法非常複雜,但随着計算機運算速度的不斷發展,DES加密已經能夠被暴力破解,是以後來IBM又推出了更新版本——3DES,它要執行3次正常的DES加密,而且密鑰長度也增加了1倍,擴充到了112位。
除了DES和3DES之外,對稱式加密算法還有AES、IDEA、RC系列等,這些對稱加密算法的優點是加密效率比較高,适合對大資料塊的加密。但它們也都存在一個緻命的缺點——密鑰管理困難,密鑰一旦被洩露,再複雜的加密算法也無濟于事。
那麼究竟該如何有效地去管理和配置設定密鑰呢?大家可以做一道軟考網規考試的試題:
很多通信使用對稱密鑰加密方法,其中共享密鑰的分發過程是保證安全的重要環節之一,可用于在使用者甲和乙之間分發共享密鑰的方案是 。
A.甲選取密鑰并通過郵件方式告訴乙
B.甲選取密鑰并通過電話告訴乙
C.甲選取密鑰後通過雙方事先已有的共享密鑰加密後通過網絡傳送給乙
D.第三方選取密鑰後通過網絡傳送給甲、乙
這道題目中的4個選項哪個算是比較靠譜呢?在實際應用中是采用的這種方案嗎?且聽下文分解。
本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1186150