MACsec是什麼?它能為你的網路環境帶來什麼改變?

2023.10.05

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執行同樣的配置。