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
進入接口視圖:
interface interface-type interface-number [ .subinterface-number ]
配置靜態CKN和CAK:
mka cak-mode static ckn ckn cak { simple cak-simple | cipher cak-cipher }
2.配置MACsec加密模式
當接口發送的數據報文通過MACsec進行加密時,可選擇配置接口的加密模式,
- normal:既進行完整性校驗又進行數據加密。
- integrity-only:只進行完整性校驗不進行數據加密。
進入系統視圖1:
system-view
進入接口視圖:
interface interface-type interface-number [ .subinterface-number ]
配置MACsec的加密模式:
macsec mode { normal | integrity-only }
3.配置MACsec加密算法
進入系統視圖:
system-view
進入接口視圖:
interface interface-type interface-number [ .subinterface-number ]
配置MACsec的加密算法:
macsec cipher-suite { gcm-aes-128 | gcm-aes-xpn-128 | gcm-aes-256 | gcm-aes-xpn-256 }
4.查看配置結果
查看經過MACsec保護的數據報文的統計信息。
display macsec statistics interface { interface-name | interface-type interface-number}
查看MKA會話信息:
display mka interface { interface-name | interface-type interface-number }
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
接口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
接口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
DeviceB執行同樣的配置。