Internet上使用的安全協議
網絡安全是分層實現的,從應用層安全到數據鏈路層安全。
一、運輸層安全協議:安全套接字SSL
1.1.簡介
- SSL 是安全套接層 (Secure Socket Layer),可對萬維網客戶與服務器之間傳送的數據進行加密和鑒別。
- SSL 在雙方的聯絡階段協商將使用的加密算法和密鑰,以及客戶與服務器之間的鑒別。
- 在聯絡階段完成之后,所有傳送的數據都使用在聯絡階段商定的會話密鑰。
- SSL 不僅被所有常用的瀏覽器和萬維網服務器所支持,而且也是運輸層安全協議 TLS (Transport Layer Security)的基礎。
1.2.SSL 的位置
-
在發送方,SSL 接收應用層的數據(如 HTTP 或 IMAP 報文),對數據進行加密,然后把加了密的數據送往運輸層 TCP 套接字。
-
在接收方,SSL 從 TCP 套接字讀取數據,解密后把數據交給應用層。(發送方和接收方都有SSL層)
1.3.使用SSL技術的例子
當我們訪問網站時,一般不涉及輸入賬號密碼等操作的網頁使用的都是 "HTTP" 協議(使用80端口),即網站域名開頭為:http://;當涉及賬號密碼等敏感信息的操作時,網站一般都會使用 "HTTPS"協議(使用443端口),"S"表示的即是SSL (Secure Socket Layer),即網站域名開頭為:https://。
例如,我們訪問中國工商銀行的官網:
在主頁處的域名欄中可以發現瀏覽器提醒的 "不安全" 字樣,實際上該主頁使用的就是HTTP協議,即不加密信息,明文傳輸。由於這是谷歌瀏覽器,沒有顯示 "http://" 的域名前綴。
當點擊登錄時,跳轉到另外一個網頁:
從網站域名開頭的 "https://" 可以看出,涉及到賬號密碼等敏感信息的登錄頁面使用的是HTTPS協議,說明網頁使用了SSL技術。
補充
HTTP協議使用了安全套接字(SSL)變成了HTTPS協議,使用的端口由80變為443,其他應用層的協議也可以使用安全套接字:
- IMAPS:TCP-993;
- POP3S:TCP-995;
- SMTPS:TCP-465;
1.4.安全套接字實現的過程:https
https既采用了對稱加密的效率,也采用了非對稱加密的安全。
通信前Web服務器先把證書中的公鑰交給IE瀏覽器(客戶),IE瀏覽器根據收到的公鑰生成一個對稱密鑰,然后使用公鑰加密對稱密鑰並發送給Web服務器。
Web服務器使用私鑰解密收到的加密后的對稱密鑰,隨后使用對稱密鑰加密需要傳輸的數據。在之后的通信中都采用該對稱密鑰對數據加密和解密。
在傳輸對稱密鑰的過程中使用非對稱加密,在傳輸數據過程中使用對稱加密。這樣既保證了數據傳輸的安全,也提高了效率。
所以,在使用https通信的時候一開始都不會太快,因為要協商對稱密鑰,協商好之后才會快起來。
查看使用https網站的證書
例如:百度。
點擊 "鎖" 圖標。
點擊 "證書" 即可查看到該網站使用的證書。
1.5.SSL 實現的三個功能
- SSL 服務器鑒別 :允許用戶證實服務器的身份。具有 SSL 功能的瀏覽器維持一個表,上面有一些可信賴的認證中心 CA (Certificate Authority)和它們的公鑰。
- 加密的 SSL 會話 :客戶和服務器交互的所有數據都在發送方加密,在接收方解密。
- SSL 客戶鑒別 :允許服務器證實客戶的身份。
上圖為頒發給百度首頁的證書,可以看到SSL除了可以加密會話信息之外,還可以鑒別服務器和客戶身份。
二、網絡層安全協議:IPSec
網絡安全是分層實現的。
-
應用層安全:比如微軟的 "Outlook" 郵箱,可以通過在應用程序中的某些設置實現數據傳輸的安全。應用層安全的特點為需要應用程序的支持。
-
傳輸層安全:傳輸安全是通過夾在應用層和傳輸層中間的SSL層實現的,發送方的SSL可以將應用層的數據加密后給傳輸層,接收方的SSL傳輸層收到的數據解密后給應用層。SSL安全的特點為需要配置相應證書。
-
網絡層安全:屬於底層安全,不需要應用程序支持,也不需要配置證書,對用戶來說是透明的,即用戶並不知道數據在該層進行了加密。
比如,未加密的數據經過發送方的網卡實現了加密,接收方的網卡實現數據解密,整個過程用戶是不知道的,是透明的,即使數據在傳輸過程中被截獲了,第三方也不能破解其中內容;或者數據被篡改了,接收方也能發現,這便是網絡層安全。
2.1.IPsec與安全關聯 SA
網絡層保密是指所有在 IP 數據報中的數據都是加密的。
**IPsec 中最主要的兩個部分 **
- 鑒別首部 AH (Authentication Header): AH鑒別源點和檢查數據完整性,但不能保密。類似於數字簽名,用於確保數據的來源並判斷數據是否被更改。
- 封裝安全有效載荷 ESP (Encapsulation Security Payload):ESP 比 AH 復雜得多,它鑒別源點、檢查數據完整性和提供保密。 類似於既使用數字簽名,又使用共享密鑰對數據進行加密。
**安全關聯 SA(Security Association) **
-
在使用 AH 或 ESP 之前,先要從源主機到目的主機建立一條網絡層的邏輯連接。此邏輯連接叫做安全關聯 SA
-
IPsec 就把傳統的因特網無連接的網絡層轉換為具有邏輯連接的層。
-
SA(安全關聯)是構成IPSec的基礎,是兩個通信實體經協商(利用IKE協議)建立起來的一種協定,它決定了用來保護數據分組安全的安全協議(AH協議或者ESP協議)、轉碼方式、密鑰及密鑰的有效存在時間等。
2.2.安全關聯的特點
-
安全關聯是一個單向連接。它由一個三元組唯一地確定,包括:
(1) 安全協議(使用 AH 或 ESP)的標識符;
(2) 此單向連接的源 IP 地址;
(3) 一個 32 位的連接標識符,稱為安全參數索引 SPI (Security Parameter Index);
-
對於一個給定的安全關聯 SA,每一個 IPsec 數據報都有一個存放 SPI 的字段。通過此 SA 的所有數據報都使用同樣的 SPI 值。
2.3.查看安全關聯
- 在Windows系統開始頁面輸入命令mmc打開 "Microsoft 管理控制台",打開 "文件" 選擇 "添加/刪除管理單元"。
- 找到並添加 "IP安全監視器"。
- 回到控制台界面,可在IP安全監視器中找到 "安全關聯" 選項,選中后可查看已建立的安全關聯。
2.4.鑒別首部協議 AH
- 在使用鑒別首部協議 AH 時,把 AH 首部插在原數據報數據部分的前面,同時把 IP 首部中的協議字段置為 51。
- 在傳輸過程中,中間的路由器都不查看 AH 首部。當數據報到達終點時,目的主機才處理 AH 字段,以鑒別源點和檢查數據報的完整性。
AH首部
(1) 下一個首部(8 位)。標志緊接着本首部的下一個首部的類型(如 TCP 或 UDP)。
(2) 有效載荷長度(8 位),即鑒別數據字段的長度,以 32 位字為單位。
(3) 安全參數索引 SPI (32 位)。標志安全關聯,兩個計算機進行通訊時的SPI值是固定的。
(4) 序號(32 位)。鑒別數據字段的長度,以32 位字為單位。
(5) 保留(16 位)。為今后用。
(6) 鑒別數據(可變)。為 32 位字的整數倍,它包含了經數字簽名的報文摘要。因此可用來鑒別源主機和檢查 IP 數據報的完整性。
2.5.封裝安全有效載荷 ESP
使用 ESP 時,IP 數據報首部的協議字段置為 50。當 IP 首部檢查到協議字段是 50 時,就知道在 IP 首部后面緊接着的是 ESP 首部,同時在原 IP 數據報后面增加了兩個字段,即 ESP 尾部和 ESP 數據。
- ESP 首部:里面有標識一個安全關聯的安全參數索引 SPI (32 位),和序號(32 位)。
- ESP 尾部:里面有下一個首部(8 位,作用和 AH 首部的一樣)。ESP 尾部和原來數據報的數據部分一起進行加密,因此攻擊者無法得知所使用的運輸層協議。
- ESP 鑒別:和 AH 中的鑒別數據是一樣的。因此,用 ESP 封裝的數據報既有鑒別源站和檢查數據報完整性的功能,又能提供保密。
2.6.設置本地計算機的IP安全策略
- 在計算機的 "開始" 界面搜索 "本地安全策略"。
- 右鍵 "IP安全策略" 打開菜單,選擇 "創建 IP 安全策略"。
- 進入 "IP安全策略向導" ,創建一個自定義的 IP安全策略,隨后一直 "下一步" 結束向導。
這里的 "激活默認規則" 指的是,當沒有指定規則時,使用默認的規則。
- 進入自定義IP安全策略的屬性界面,去掉默認勾選的 "使用添加向導" 這樣可以看到更多的細節,然后點擊 "添加",添加新的IP安全規則。
進入 "新規則 屬性" 界面,在 "IP篩選器列表" 選項中可選擇和添加 IP篩選器列表,它的作用是:指定受此新規則影響的網絡流量。比如所有的 IP 通訊、所有的 ICMP 通訊等,即設置允許接收從哪里來或到哪里去的數據。
- 點擊 "添加" 進入 "IP 篩選器列表"界面,自定義IP 篩選器列表。
- 去掉默認勾選的 "使用添加向導" 選項,繼續點擊 "添加" ,進入 "IP 篩選器 屬性" 界面。該界面可以設置 IP篩選器 的地址、協議和描述信息。
- 在 "地址" 選項卡的 "源地址" 選項中可以設置 與本計算機通信的流量數據中的源地址。
- 同樣也可以設置目標地址。
- 在 "協議" 選項卡中,可以設置通信的協議類型和相應的端口。
- 在 "描述" 選項卡可給自定義的IP篩選器添加描述。
- 編輯完 IP 篩選器屬性后,回到 "IP篩選器列表" 可看到剛才添加的IP篩選器。
- 點擊 "確認" ,回到 "新規則 屬性" 界面,可在 "IP 篩選器列表" 中看到剛才自定義的IP篩選器列表。
在 "篩選器操作" 選項卡中,可以指定如何保障新建的IP篩選器列表的網絡流量的安全,即指定在 "IP 篩選器列表" 中設置的允許通行的流量使用的安全方法(AH或ESP等)。同樣不使用向導,點擊 "添加",添加篩選器的操作。
- 在進入的 "新篩選器操作 屬性" 界面中,可以設置對應的安全方法,比如可以無條件阻止或許可之前選定的 IP 篩選列表中的通信流量,也可以在協商安全的情況下進行通信。我們選中 "協商安全" 選項,然后點擊 "添加" ,添加對應的安全方法。
- 進入 "新增安全方法" 界面,可以看到有兩種安全方法,一種為 "完整性和加密",相當於既使用數字簽名也使用共享密鑰加密;另一種為 "僅保持完整性",相當於數字簽名。這便是IPSec中的AH協議和ESP協議這兩種協議。
- 選擇 "自定義" 選項,再點擊 "設置" ,進入 "自定義安全方法設置" 界面。在該界面中可以選擇使用的安全協議AH或者ESP及相應的算法,也可以設置會話密鑰生成的間隔(密鑰生成時間):每傳輸多少數據或每經過多長時間生成新密鑰。
- 設置完相應的安全方法后回到 "新篩選器操作 屬性" 界面, 可以看到剛才自定義的安全方法及相應設置。在界面下方的三個選項中,前兩項設置如字面意思,第三項設置意思為新密鑰生成之后,以后加密數據都不會再使用舊密鑰。隨后點擊 "應用" 和 "確認" 回到 "新規則 屬性" 界面。
在 "身份驗證方法" 選項卡中,可以指定通信雙方建立信任關系的方法,即驗證通信雙方的身份。點擊 "添加" 進入 "新身份驗證方法 屬性" 界面。
- 在該界面中,可以指定身份驗證方法。例如通過設置共享密鑰,來實現身份驗證。
- 設置完成后點擊 "確認" 可回到 "新規則 屬性" 界面,可看到新增的身份驗證方法。
"新規則 屬性" 界面的 "隧道設置" 選項卡可設置IPSec隧道相關屬性。
"新規則 屬性" 界面的 "連接類型" 選項卡可指定使用新規則的連接類型。
- 這樣便完成了新規則的屬性設置,回到自定義IP安全策略的屬性界面,可以看到添加的自定義列表。
- 點擊 "確定",回到 "本地安全策略" 界面,可看到新增的 "toServer" 安全策略,此時該安全策略還未生效。右鍵選擇 "分配" 可指派該策略,使計算機使用該安全策略進行通信。
2.7.仿真練習
把本地計算機當作Web服務器,按圖中要求設置Web服務器到三台計算機的安全策略,其中計算機XP1的IP地址為192.168.80.101,XP2為192.168.80.102,XP3為192.168.80.103 。
-
設置Web服務器到計算機XP1的安全策略:
在 "新規則 屬性" 界面的 "IP篩選器列表" 中添加新列表,指定通信的目標地址為XP1的IP地址:192.168.80.101 。
在 "IP篩選器列表" 中選中 "toXP1" 的情況下,在 "篩選器操作" 中添加安全方法名稱為改為AH。
在 "IP篩選器列表" 中選中 "toXP1" 和 "篩選器操作" 中選中 "AH"的情況下,在 "身份驗證方法" 中添加Web服務器到XP1的身份驗證方法:使用共享密鑰aaa。
"隧道設置" 和 "連接類型" 兩項該例中不用設置,由此完成從Web服務器到XP1安全策略的設置。
-
設置Web服務器到計算機XP2和XP3的安全策略與到XP1的設置同理。最后,Web服務器把到XP1~XP3的安全策略都按要求添加了。
- 回到 "本地安全策略" 界面,選中新增的 "toXPS" 安全策略,右鍵 "分配" ,該安全策略生效,即按要求完成了Web服務器的安全策略設置。
設置完之后,當Web服務器與XP1和XP2通信時,使用裝包工具抓到的數據包只能看到加密后的數據;當Web服務器與XP3通信時,由於沒有加密,所以抓包工具抓到的數據包能看到傳輸的明文。可在虛擬機中模擬四台計算機進行驗證,這里就不展開了。
2.8.關於IP安全規則沖突問題
如下圖所示,在IP安全規則中勾選的 "所有 IP 通訊量" 是否與其他勾選的安全規則沖突呢?是不沖突的,選擇IP安全規則時采用的是最佳匹配原則。比如:老師說中午12點下課,班干部11:30開完會后可以離開,張三11點就能走,雖然時間不同,但是每個學生都清楚自己幾點可以走,這就是最佳匹配。通信時,如果是與XP2通信,那么計算機就采用 "toXP2" 安全規則;與XP3通信,則采用 "toXP3" 安全規則;如果都不是,才采用 "所有 IP 通訊量" 安全規則。