MACsec是什麼?它能為你的網路環境帶來什麼改變?
MACsec是什麼?它能為你的網路環境帶來什麼改變?
背景
一般情況下,絕大部分資料在區域網路鏈路中都是以明文形式傳輸的,這樣就會存在許多安全隱患,例如:銀行帳戶的資訊被竊取、篡改,遭受惡意網路攻擊等。網路中部署MACsec後,可對傳輸的乙太網路資料幀進行保護,降低資訊外洩和遭受惡意網路攻擊的風險。
MACsec概述
MACsec(Media Access Control Security)是基於802.1AE和802.1X協定的區域網路上的安全通訊方法。透過身分認證、資料加密、完整性校驗、重播保護等功能確保乙太網路資料幀的安全性,防止裝置處理有安全威脅的封包。MACsec從以下幾個方面保障了用戶業務資料在區域網路中的安全傳輸:
- 資料幀完整性檢查
- 用戶資料加密
- 資料來源真實性校驗
- 重播保護
典型應用場景
- 在交換器之間部署MACsec保護資料安全,例如在存取交換器與上聯的匯聚或核心交換器之間部署。
- 當交換器之間存在傳輸設備時可部署MACsec保護資料安全。
1.點到點傳輸數據
SwitchA和SwitchB之間傳輸重要數據,透過部署點到點的MACsec對資料進行安全保護。
2.間含透傳設備的點到點傳輸數據
SwitchA和SwitchB之間存在著透傳交換器SwitchC、SwitchD和SwitchE,SwitchA和SwitchB之間部署點到點的MACsec對資料進行安全保護。為確保SwitchA和SwitchB能夠進行MACsec會話協商,需要透傳交換器支援二層協定透明傳輸功能。
MACsec工作機制
MACsec安全通道的建立與管理以及MACsec所使用金鑰的協商由MKA(MACsec Key Agreement)協定負責。以下介紹MKA協議工作過程中涉及的基本概念:
- CA(Secure Connectivity Association)是由金鑰協商協定負責建立和維護的安全關聯,是區域網路上支援MACsec的兩個或兩個以上使用相同金鑰和金鑰演算法套件的成員的集合。CA成員使用的金鑰稱為CAK(Secure Connectivity Association Key)。MACsec主要應用在點對點組網的環境中,也就是從一台設備的介面到另一台設備的介面的組網,所以主要使用成對CAK。兩個相連的設備組成一個CA,它們使用相同的CAK。
- SA(Secure Association)是確保CA成員之間資料幀安全傳輸的安全關係。每個SA都有一個或一組加密資料幀的金鑰,稱為SAK(Secure Association Key)。SAK由演算法根據CAK生成,用於資料封包的加密和解密。
1.運作機制
點到點的MACsec互動過程主要分為三個階段:會話協商、安全通訊、會話保活。
MACsec互動過程示意圖
點到點的MACsec互動過程:
(1) 會話協商
- 兩端設備的介面開啟MACsec功能後,依優先權選出金鑰伺服器(Key Server)。使用者可以配置介面的優先權數值,數值越小優先權越高,優先權高的設備介面將被選出為金鑰伺服器。當雙方優先權相同時,則比較介面的SCI(Secure Channel Identifier)值,SCI由介面MAC位址和介面索引(Interface Index)的最後兩個位元組組成,SCI值小的介面將被選為金鑰伺服器.
- 兩端設備靜態配置相同的CAK,金鑰伺服器根據靜態配置的CAK產生用於加密資料封包的SAK,分發給對端設備。
(2) 安全通信
發送方使用SAK加密資料報文,接收方使用SAK解密資料封包。兩端設備既可以作為發送方,也可以作為接收方,通訊過程都受到MACsec保護。使用者還可以設定SAK的逾時時間,當SAK的使用時間達到逾時時間或SAK加密封包達到一定數量,則更換SAK,確保金鑰的安全性。
(3) 會話保活
MKA協定定義了一個MKA會話保活定時器,用來規定MKA會話的逾時時間。MKA會話協商成功後,兩端設備會透過交互MKA協定封包確認連線的存在。設備收到對端MKA協定訊息後,啟動定時器。
- 如果在該超時時間內收到對端的MKA協定報文,則重新啟動定時器。
- 如果在該逾時時間內未收到對端的MKA協定訊息,則認為該連線已不安全,刪除對端設備,重新進行MKA協商。
- CAK(Secure Connectivity Association Key,安全連線關聯金鑰)不直接用於資料封包的加密,由它和其他參數衍生出資料封包的加密金鑰。CAK可以在802.1X認證過程中下發,也可以由使用者直接靜態配置。
- MKA(MACsec Key Agreement protocol)用於MACsec 資料加密金鑰的協商協定。
- SAK(Secure Association Key,安全關聯金鑰)由CAK根據演算法推導產生,用於加密安全通道間傳輸的資料。MKA對每一個SAK可加密的報文數目有所限制,當使用某SAK加密的PN耗盡,該SAK會被刷新。例如,在10Gbps 的鏈路上,SAK最快4.8分鐘刷新一次。
- Key Server決定加密方案和進行金鑰分發的MKA實體。
設定命令介紹
1.配置靜態CKN和CAK
進入系統視圖:
system-view
- 1.
進入介面視圖:
interface interface-type interface-number [ .subinterface-number ]
- 1.
配置靜態CKN和CAK:
mka cak-mode static ckn ckn cak { simple cak-simple | cipher cak-cipher }
- 1.
2.設定MACsec加密模式
當介面傳送的資料封包透過MACsec進行加密時,可選擇設定介面的加密模式,
- normal:既進行完整性校驗又進行資料加密。
- integrity-only:只進行完整性校驗不進行資料加密。
進入系統視圖1:
system-view
- 1.
進入介面視圖:
interface interface-type interface-number [ .subinterface-number ]
- 1.
配置MACsec的加密模式:
macsec mode { normal | integrity-only }
- 1.
3.設定MACsec加密演算法
進入系統視圖:
system-view
- 1.
進入介面視圖:
interface interface-type interface-number [ .subinterface-number ]
- 1.
配置MACsec的加密演算法:
macsec cipher-suite { gcm-aes-128 | gcm-aes-xpn-128 | gcm-aes-256 | gcm-aes-xpn-256 }
- 1.
4.查看配置結果
查看經過MACsec保護的資料封包的統計資料。
display macsec statistics interface { interface-name | interface-type interface-number}
- 1.
查看MKA會話資訊:
display mka interface { interface-name | interface-type interface-number }
- 1.
MACsec設定舉例
1.設定點到點的MACsec
點到點的MACsec設定網路圖
路由器DeviceA與路由器DeviceB直連,在DeviceA和DeviceB的介面GE1/0/0上對MACsec資料封包進行加解密。
2.配置思路
採用以下思路配置點到點的MACsec:在DeviceA、DeviceB設備GE1/0/0介面上配置相同的靜態CKN和CAK;
3.資料準備
為完成該配置例,需要準備以下資料:
- 介面的CKN和CAK值
- DeviceA介面發送的資料透過gcm-aes-xpn-128進行加密
4.操作步驟
介面GE1/0/0配置密文CKN、CAK。
<DeviceA> system-view
[~DeviceA] interface gigabitethernet1/0/0
[~DeviceA-GigabitEthernet1/0/0] mka cak-mode static ckn a1 cak cipher b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1
[*DeviceA-GigabitEthernet1/0/0] commit
- 1.
- 2.
- 3.
- 4.
介面GE1/0/0配置MACsec的加密模式。(可選配置):
<DeviceA> system-view
[~DeviceA] interface gigabitethernet1/0/0
[~DeviceA-GigabitEthernet1/0/0] macsec mode integrity-only
[*DeviceA-GigabitEthernet1/0/0] commit
- 1.
- 2.
- 3.
- 4.
介面GE1/0/0配置MACsec的加密演算法。(可選配置)
<DeviceA> system-view
[~DeviceA] interface gigabitethernet1/0/0
[~DeviceA-GigabitEthernet1/0/0] macsec cipher-suite gcm-aes-xpn-128
[*DeviceA-GigabitEthernet1/0/0] commit
- 1.
- 2.
- 3.
- 4.
DeviceB執行同樣的配置。