MACsec是什么?它能為你的網(wǎng)絡(luò)環(huán)境帶來什么改變?
背景
一般情況下,絕大部分數(shù)據(jù)在局域網(wǎng)鏈路中都是以明文形式傳輸?shù)模@樣就會存在許多安全隱患,比如:銀行帳戶的信息被竊取、篡改,遭受惡意網(wǎng)絡(luò)攻擊等。網(wǎng)絡(luò)中部署MACsec后,可對傳輸?shù)囊蕴W(wǎng)數(shù)據(jù)幀進行保護,降低信息泄漏和遭受惡意網(wǎng)絡(luò)攻擊的風險。
MACsec概述
MACsec(Media Access Control Security)是基于802.1AE和802.1X協(xié)議的局域網(wǎng)上的安全通信方法。通過身份認證、數(shù)據(jù)加密、完整性校驗、重播保護等功能保證以太網(wǎng)數(shù)據(jù)幀的安全性,防止設(shè)備處理有安全威脅的報文。MACsec從以下幾個方面保障了用戶業(yè)務數(shù)據(jù)在局域網(wǎng)中的安全傳輸:
- 數(shù)據(jù)幀完整性檢查
- 用戶數(shù)據(jù)加密
- 數(shù)據(jù)源真實性校驗
- 重放保護
典型應用場景
- 在交換機之間部署MACsec保護數(shù)據(jù)安全,例如在接入交換機與上聯(lián)的匯聚或核心交換機之間部署。
- 當交換機之間存在傳輸設(shè)備時可部署MACsec保護數(shù)據(jù)安全。
1.點到點傳輸數(shù)據(jù)
SwitchA和SwitchB之間傳輸重要數(shù)據(jù),通過部署點到點的MACsec對數(shù)據(jù)進行安全保護。
2.間含透傳設(shè)備的點到點傳輸數(shù)據(jù)
SwitchA和SwitchB之間存在透傳交換機SwitchC、SwitchD和SwitchE,SwitchA和SwitchB之間部署點到點的MACsec對數(shù)據(jù)進行安全保護。為保證SwitchA和SwitchB能夠進行MACsec會話協(xié)商,需要透傳交換機支持二層協(xié)議透明傳輸功能。
MACsec工作機制
MACsec安全通道的建立和管理以及MACsec所使用密鑰的協(xié)商由MKA(MACsec Key Agreement)協(xié)議負責。下面介紹MKA協(xié)議工作過程中涉及的基本概念:
- CA(Secure Connectivity Association)是由密鑰協(xié)商協(xié)議負責建立和維護的安全關(guān)聯(lián),是局域網(wǎng)上支持MACsec的兩個或兩個以上使用相同密鑰和密鑰算法套件的成員的集合。CA成員使用的密鑰稱為CAK(Secure Connectivity Association Key)。MACsec主要應用在點對點組網(wǎng)的環(huán)境中,即從一臺設(shè)備的接口到另一臺設(shè)備的接口的組網(wǎng),所以主要使用成對CAK。兩個相連的設(shè)備組成一個CA,它們使用相同的CAK。
- SA(Secure Association)是保證CA成員之間數(shù)據(jù)幀安全傳輸?shù)陌踩P(guān)系。每個SA都有一個或一組加密數(shù)據(jù)幀的密鑰,稱為SAK(Secure Association Key)。SAK由算法根據(jù)CAK生成,用于數(shù)據(jù)報文的加密和解密。
1.運行機制
點到點的MACsec交互過程主要分為三個階段:會話協(xié)商、安全通信和會話保活。
MACsec交互過程示意圖
點到點的MACsec交互過程:
(1) 會話協(xié)商
- 兩端設(shè)備的接口開啟MACsec功能后,根據(jù)優(yōu)先級選舉出密鑰服務器(Key Server)。用戶可以配置接口的優(yōu)先級數(shù)值,數(shù)值越小優(yōu)先級越高,優(yōu)先級高的設(shè)備接口將被選舉為密鑰服務器。當雙方優(yōu)先級相同時,則比較接口的SCI(Secure Channel Identifier)值,SCI由接口MAC地址和接口索引(Interface Index)的最后兩個字節(jié)組成,SCI值小的接口將被選舉為密鑰服務器。
- 兩端設(shè)備靜態(tài)配置相同的CAK,密鑰服務器根據(jù)靜態(tài)配置的CAK生成用于加密數(shù)據(jù)報文的SAK,分發(fā)給對端設(shè)備。
(2) 安全通信
發(fā)送方使用SAK加密數(shù)據(jù)報文,接收方使用SAK解密數(shù)據(jù)報文。兩端設(shè)備既可以作為發(fā)送方,也可以作為接收方,通信過程都受到MACsec保護。用戶還可以配置SAK的超時時間,當SAK的使用時間達到超時時間或SAK加密報文達到一定數(shù)量,則更換SAK,確保密鑰的安全性。
(3) 會話保活
MKA協(xié)議定義了一個MKA會話保活定時器,用來規(guī)定MKA會話的超時時間。MKA會話協(xié)商成功后,兩端設(shè)備會通過交互MKA協(xié)議報文確認連接的存在。設(shè)備收到對端MKA協(xié)議報文后,啟動定時器。
- 如果在該超時時間內(nèi)收到對端的MKA協(xié)議報文,則重啟定時器。
- 如果在該超時時間內(nèi)未收到對端的MKA協(xié)議報文,則認為該連接已不安全,刪除對端設(shè)備,重新進行MKA協(xié)商。
- CAK(Secure Connectivity Association Key,安全連接關(guān)聯(lián)密鑰)不直接用于數(shù)據(jù)報文的加密,由它和其他參數(shù)派生出數(shù)據(jù)報文的加密密鑰。CAK可以在802.1X認證過程中下發(fā),也可以由用戶直接靜態(tài)配置。
- MKA(MACsec Key Agreement protocol)用于MACsec 數(shù)據(jù)加密密鑰的協(xié)商協(xié)議。
- SAK(Secure Association Key,安全關(guān)聯(lián)密鑰)由CAK根據(jù)算法推導產(chǎn)生,用于加密安全通道間傳輸?shù)臄?shù)據(jù)。MKA對每一個SAK可加密的報文數(shù)目有所限制,當使用某SAK加密的PN耗盡,該SAK會被刷新。例如,在10Gbps 的鏈路上,SAK最快4.8分鐘刷新一次。
- Key Server決定加密方案和進行密鑰分發(fā)的MKA實體。
配置命令介紹
1.配置靜態(tài)CKN和CAK
進入系統(tǒng)視圖:
system-view
進入接口視圖:
interface interface-type interface-number [ .subinterface-number ]
配置靜態(tài)CKN和CAK:
mka cak-mode static ckn ckn cak { simple cak-simple | cipher cak-cipher }
2.配置MACsec加密模式
當接口發(fā)送的數(shù)據(jù)報文通過MACsec進行加密時,可選擇配置接口的加密模式,
- normal:既進行完整性校驗又進行數(shù)據(jù)加密。
- integrity-only:只進行完整性校驗不進行數(shù)據(jù)加密。
進入系統(tǒng)視圖1:
system-view
進入接口視圖:
interface interface-type interface-number [ .subinterface-number ]
配置MACsec的加密模式:
macsec mode { normal | integrity-only }
3.配置MACsec加密算法
進入系統(tǒng)視圖:
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.查看配置結(jié)果
查看經(jīng)過MACsec保護的數(shù)據(jù)報文的統(tǒng)計信息。
display macsec statistics interface { interface-name | interface-type interface-number}
查看MKA會話信息:
display mka interface { interface-name | interface-type interface-number }
MACsec配置舉例
1.配置點到點的MACsec
點到點的MACsec配置組網(wǎng)圖
路由器DeviceA與路由器DeviceB直連,在DeviceA和DeviceB的接口GE1/0/0上對MACsec數(shù)據(jù)報文進行加解密。
2.配置思路
采用如下思路配置點到點的MACsec:在DeviceA、DeviceB設(shè)備GE1/0/0接口上配置相同的靜態(tài)CKN和CAK;
3.數(shù)據(jù)準備
為完成該配置例,需要準備如下數(shù)據(jù):
- 接口的CKN和CAK值
- DeviceA接口發(fā)送的數(shù)據(jù)通過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執(zhí)行同樣的配置。