摘要:本章首先介紹了網(wǎng)絡(luò)安全的基礎(chǔ)技術(shù)密碼學(xué)相關(guān)的知識(shí),然后沿著協(xié)議棧從上至下的介紹了各層能提供的網(wǎng)絡(luò)安全服務(wù),以及防火墻。
關(guān)鍵詞:密碼學(xué);PGP;SSL;IPsec;防火墻
目錄:
??1.密碼學(xué)基礎(chǔ)
????1.1 報(bào)文完整性
????1.2 端點(diǎn)鑒別
??2. 應(yīng)用層安全:PGP
??3. 傳輸層安全:SSL
??4. 網(wǎng)絡(luò)層安全:IPsec
??5. 防火墻
1.密碼學(xué)基礎(chǔ)
對(duì)數(shù)據(jù)進(jìn)行加密有兩種加密系統(tǒng),對(duì)稱密鑰加密和公開密鑰加密。你可能會(huì)好奇密鑰是什么,顧名思義就是解開密文的鑰匙,你拿他到它,就可以解開加密的密文。那么具體來講它是什么呢?就是數(shù)據(jù)。只是這個(gè)數(shù)據(jù)可能有不同的意義,它可能是加密函數(shù)的參數(shù),可能是一個(gè)序列,可以解密時(shí)候需要的幾個(gè)數(shù),不同的加密算法不一樣。所以不用糾結(jié)它具體是什么,只要知道,它可以解密你的密文。
對(duì)稱密鑰加密:也就是通信雙方使用相同的密鑰,也就是兩人用的解密的鑰匙是一樣的。
公開密鑰加密:通信雙方的密鑰不同,其一個(gè)是公開的,一個(gè)是私密的。公開的意味著任何人都可以獲得公鑰的一個(gè)副本。
對(duì)稱密鑰加密速度快,而非對(duì)稱的速度慢。如果你們之間用對(duì)稱密鑰加密,雙方的鑰匙必須保管好,但凡有一方鑰匙泄露出去了,雙方的對(duì)話就全部被解密了。使用非對(duì)稱加密時(shí)候,持有私鑰的一方是不能發(fā)送密文的,因?yàn)槿魏稳硕伎梢杂霉€解密,因此這種情況只能一方加密,另一方解密,不是雙向的。
做到網(wǎng)絡(luò)安全的四個(gè)要素就是:報(bào)文要有機(jī)密性;報(bào)文要有完整性;端點(diǎn)必須真實(shí);運(yùn)行必須安全。報(bào)文機(jī)密性通過密碼學(xué)的加密算法即可,比如公鑰加密算法中的RSA加密算法。下面主要介紹報(bào)文的完整性和端點(diǎn)的真是性。在最后一節(jié)討論通過防火墻保證運(yùn)行的安全性。
1.1報(bào)文完整性
報(bào)文完整性就是要保證,報(bào)文在是沒有被中間人篡改。就是我每次發(fā)送數(shù)據(jù)都在數(shù)據(jù)報(bào)中添加一個(gè)雙方都知道的比特串,然后呢將整個(gè)報(bào)文做一個(gè)映射,得到新的報(bào)文,對(duì)這個(gè)新的報(bào)文進(jìn)行加密,接收方在解密之后,做逆映射得到的那個(gè)字符串如果和自己持有的字符串是一樣的,那么說明沒有被篡改。這個(gè)映射叫做密碼散列函數(shù),那個(gè)比特串叫做報(bào)文鑒別碼。
為什么要做個(gè)映射之后再加密,而不是直接加密呢?主要在于映射之后可以將一個(gè)長文本變?yōu)橐粋€(gè)短文本,減低加密的計(jì)算成本。
1.2 端點(diǎn)鑒別
端點(diǎn)鑒別就是要證明你是你。他需要兩個(gè)技術(shù)手段來完成。一個(gè)是數(shù)字簽名,另一個(gè)是不重?cái)?shù)。
為了證明你是你,你使用你的私鑰加密你的名字。然后其他人用你提供的公鑰解密。如果解密得到的名字確實(shí)是你名字,說明你就是你。否則,你就是冒充的。你的名字就是證書。你提供的公鑰由公鑰認(rèn)證中心認(rèn)證,也就是證明你的公鑰是你的。這個(gè)過程就是數(shù)字簽名。
光有數(shù)字簽名就可以進(jìn)行端點(diǎn)鑒別了嗎?不可以。別人復(fù)制你的報(bào)文,下次發(fā)送一個(gè)一模一樣的給接收者,接收者以為又是你發(fā)了之前的請(qǐng)求。這種叫做重放攻擊。怎么解決呢,就是給每個(gè)報(bào)文加一個(gè)不重?cái)?shù),這個(gè)數(shù)只會(huì)出現(xiàn)一次,如果別人重放你的報(bào)文,接收端會(huì)發(fā)現(xiàn)里面的不重?cái)?shù)已經(jīng)出現(xiàn)過了,從而判斷對(duì)方不可信。
接下來,我們將看到,不同的協(xié)議層,他們之間是如何進(jìn)行網(wǎng)絡(luò)安全傳輸?shù)摹?/p>
2. 應(yīng)用層安全:PGP
應(yīng)用層安全以一個(gè)安全電子郵件的加密方案PGP為例。該方案使用對(duì)稱密碼密鑰、公開密鑰密碼、散列函數(shù)和數(shù)字簽名來提供安全性、發(fā)送方鑒別和報(bào)文完整性。
3. 傳輸層安全:SSL
SSL 是安全套接字層,實(shí)際上SSL在應(yīng)用上應(yīng)該歸于應(yīng)用層。https就是http在ssl的基礎(chǔ)上實(shí)現(xiàn)的。ssl先通過公開密鑰加密的方式來進(jìn)行端點(diǎn)鑒別和報(bào)文完整性鑒別,并傳送對(duì)稱密鑰,此后在真正傳輸數(shù)據(jù)的時(shí)候就用對(duì)稱密鑰加密數(shù)據(jù)。具體的細(xì)節(jié)已經(jīng)在第二章中介紹過了。
4. 網(wǎng)絡(luò)層安全:IPsec
網(wǎng)絡(luò)層安全就是對(duì)網(wǎng)絡(luò)層及其以上層協(xié)議的所有數(shù)據(jù)都加密。當(dāng)你發(fā)送一個(gè)普通的ip數(shù)據(jù)報(bào)文時(shí),路由器將整個(gè)數(shù)據(jù)包裝起來了,加上新的IP首部,發(fā)到互聯(lián)網(wǎng)中,然后接收端去掉ip首部,之后得到真正的由Ipsec首部和加密的密文。就如通大隧道一樣。這樣就在普通的互聯(lián)網(wǎng)中虛擬出了一條專用網(wǎng):VPN。由于去掉IP首部之后就是加密的數(shù)據(jù),因此這個(gè)網(wǎng)絡(luò)層的安全需要支持IPsec的路由器,同時(shí)客戶需要一個(gè)應(yīng)用程序來進(jìn)行IPsec幀的加密和解密。
你應(yīng)該想,有了傳輸層和應(yīng)用層安全不就可以了。為什么還需要網(wǎng)絡(luò)層安全,而且很多機(jī)構(gòu)和公司都由內(nèi)網(wǎng),外網(wǎng)要訪問內(nèi)網(wǎng)就必須向機(jī)構(gòu)或者公司申請(qǐng)一個(gè)VNP。
5. 防火墻
防火墻就是在流量流入路由器或者電腦的過濾器。不僅你的電腦有防火墻,路由器也有。他規(guī)定了什么類型的流量可以流入。防火墻是由一系列的規(guī)則定義的,這些規(guī)則之間取并集,比如開放了80端口,但是不準(zhǔn)http協(xié)議的報(bào)文流入,即使開放了80端口也沒有用。
防火墻是手動(dòng)配置的,關(guān)閉一些危險(xiǎn)的端口,可以使你的計(jì)算機(jī)免受一些惡意的攻擊。