作者:Tangerine
本文為作者投稿,Seebug Paper 期待你的分享,凡經采用即有禮品相送! 投稿郵箱:paper@seebug.org

引言與架構:

自動駕駛即來,移動設備、視頻流量、云服務的不斷擴展,帶寬需求也隨之快速增長,網絡環境也變得復雜,數據安全和隱私問題非常重要,其中對數據安全和隱私要求高的機構不能忽視局域網數據安全。

交換機作為構建局域網最基本的設備,企業交換機的部署需要更合適的安全協議,可以更有效的規避數據風險,保護企業的局域網安全,MACsec 是致力于下一代高速加密的企業、政府或服務提供商新的選擇,如果有這樣的需求,MACsec 安全協議數據鏈路層為企業提供更安全的選擇,這篇文章來簡單分析二者的聯系。

image-20230330200904222

1.MACsec協議是什么?

MACsec,英文全稱Media Access Control security,中文為媒體訪問控制安全協議 ,是基于802.1AE和802.1X協議的局域網上的安全通信方法,它擁有身份認證、數據加密、完整性校驗、重播保護等功能保證以太網數據幀的安全,從更底層防止設備處理有安全威脅的報文,MACsec加密比任何其他更高層加密方法(如IPsec和SSL)的優先級更高。

因為在很多情況下,絕大部分的數據不像廣域網中使用多種加密算法,在局域網鏈路中傳輸形式是明文傳輸的,由此引發許多安全隱患,在諸如銀行金融領域,軍事單位中帳戶的信息被竊取、篡改,遭受惡意網絡攻擊后會引發嚴重的網絡安全事件。

MACsec可以保護所有以太網鏈路中流量(注意不是所有互聯網流量,而是強調協議之間的互操作性互補性),包括拒絕服務、入侵、中間人、偽裝、被動竊聽和重放攻擊,可以將 MACsec 與其他安全協議(如 IP 安全 (IPsec) 和安全套接字層 (SSL) 結合使用,以提供端到端網絡安全。

網絡中部署MACsec后,可對傳輸的以太網數據幀進行保護,降低信息泄露和遭受惡意網絡攻擊的風險。數據和報文僅在PC和交換機之間的鏈路上加密(點對點加密)。 交換機收到的數據包將解密并通過未加密的上行鏈路發送,為了加密交換機之間的傳輸,建議使用交換機 — 交換機加密。

1.1 MACsec的數據控制和數據處理:

控制部分遵從的是IEEE802.1x(802.10,802.11...WIFI也屬于這個協議),只有認證的雙方能夠建立鏈接,數據部分遵從的是IEEE802.AE,對以太網報文基于AES-GCM進行加密。

  1. 當MACsec被使用時,只有認證雙方可以連接網絡
  2. 所有期望“欺騙”交換機/路由將網絡數據重定向到攻擊者機器的行為都不能成功
  3. MACsec是WiFi中WPA2的有線等效
  4. 應用不會感知MACsec的存在

1.2 MACsec應用場景一:交換機點對點

image-20230330202721857

交換機之間部署雙向的MACsec對數據進行安全保護,實現通信安全。

1.3 MACsec應用場景二:含中間交換機

image-20230330203307314

當中間包含多個交換機時,可以使用數據鏈路層的二層協議透明傳輸功能,實現通信安全。

2.如何應用MACsec在互聯網安全中?

在兩臺設備之間實現MACsec時,MACsec協議的工作過程可以分為四個主要階段,包括身份認證、會話協商安全通信會話終止

image-20230331015055918

  • 身份認證階段

在客戶端和接入設備之間建立安全會話前,客戶端首先需要在接入設備的端口上進行802.1X認證。客戶端通過認證后,RADIUS服務器會把生成的CAK分發給客戶端和接入設備。

image-20230331015147037

  • 會話協商階段

使用配置的預共享密鑰 (PSK) 作為 CAK(連接關聯密鑰),通過 EAPOL-MKA(LAN-MACsec協議上的可擴展身份驗證協議)消息在設備之間協商會話。設備間優先級高的端口會被選舉為Key Server,負責生成和分發SAKs(安全關聯密鑰),設備之間相互通知自己的能力和建立會話所需的各種參數(如優先級,是否需要加密會話等)通過 MKA 協議。

CAK作用:生成用于MACsec的所有其他密鑰的長期主密鑰。

SAK作用:是路由器/終端設備用于加密給定會話流量的密鑰。

image-20230331015351981

  • 安全通信階段

會話協商完成后,客戶端和接入設備有了可用的SAK,并使用SAK加密數據報文,開始加密通信。

image-20230331015907814

  • 會話終止階段

當接入設備收到802.1X客戶端的下線請求消息后,立即清除該用戶對應的安全會話,避免一個未認證的客戶端使用端口上前一個已認證客戶端建立的安全會話接入網絡。

此外,MKA協議里定義了一個會話保活定時器,如果在超時時間內(6秒),本端沒有收到對端的MKA協議報文,則在定時器超時后,本端將清除建立的安全會話。

  • 名詞解釋:
縮寫 名稱 指代對象
MKA MACsec密鑰協議 在IEEE 802.1X REV-2010中定義為用于發現MACsec對等體和協商密鑰的關鍵協議協議
CAK 連接關聯密鑰 用于生成用于MACsec的所有其他密鑰的長期主密鑰。 LAN實施從MSK派生此信息(在EAP交換期間生成)
PMK 成對主密鑰 用于派生用于加密流量的會話密鑰的組件之一。手動配置或從802.1X派生
CKN CAK密鑰名稱 用于配置密鑰值或CAK。僅允許偶數個十六進制字符(最多64個字符)。
SAK 安全關聯密鑰 由從CAK選出的密鑰服務器派生,是路由器/終端設備用于加密給定會話流量的密鑰。
ICV 完整性檢查值鍵 從CAK派生,并在每個數據/控制幀中標記,以證明該幀來自授權對等體。8-16個字節,具體取決于密碼套件
KEK 密鑰加密密鑰 派生自CAK(預共享密鑰),用于保護MacSec密鑰
SCI 安全通道標識符 每個虛擬端口接收一個唯一的安全通道標識符(SCI),該標識符基于與16位端口ID連接的物理接口的MAC地址

3.MACsec協議的格式

image-20230331013222576

控制幀(EAPOL-MKA)協議格式:

  • EAPOL目標MAC = 01:80:C2:00:00:03將數據包組播到多個目標
  • EAPOL以太網類型= 0x888E

image-20230331014520281

數據幀 協議格式:

MACSec會在數據幀上插入兩個額外標簽,最大開銷為32字節(最少16字節)。

  • SecTag = 8到16字節(8字節SCI是可選的)
  • ICV = 8到16個字節,基于密碼套件(AES128/256)

數據包編號和重放保護: 在每個安全關聯中,可以通過對照本堆存儲的分組號檢查SecTAG報頭的分組號字段來執行重放保護。每個MCsC分組具有唯一的順序分組號,并且每 個分組號在給定的安全關聯中只能使用一次。

4.自動駕駛汽車的汽車網絡和系統架構攻擊

無論是數據交換和數據通信,又或者是家庭網絡安全和企業園區網絡安全,涉及兩個遠距離數據中心網絡之間使用光纖互聯,光纖穿越的地方屬于公共區域,該區域 內的數據暴露風險較大。為了防止數據在中間傳輸過程中被竊取或修改,可在兩個網絡邊緣設備出 端口上采用 MACsec 對數據傳輸進行安全保護。

image-20230331165738464

4.1 以太網鏈路竊聽攻擊實現:

在通常的以太網連接中,沒有在數據鏈路層部署MACsec協議,也沒有入侵者進行攻擊,獲取新數據,接下來查看兩種情況,分別是遭受圖像監控和數據破壞攻擊在沒有部署和部署MACsec協議的協議執行流程。

image-20230331021346401

黑客可以通過私密加裝中間設備,以偷取數據,監控屏幕,終端無法得知系統是否處于危險狀態,也無法得知是否有人竊聽網絡。

image-20230331021739744

啟用MACsec協議,保密傳輸幀時,成功阻止入侵者獲取信息,保證數據的正常顯示。

處理數據和控制流量: 所有流量都在一個活動的MACsec端口上進行控制,在該端口上,數據被加密,或其完整性受到保護。如果MACsec會話無法得到保護,所有數據和控制流量都會被丟棄,當MACsecseC在某個端口上處于活動狀態時,該端口會阻止數據流量的流動,在MACsecsec會話安全之前,端口不會轉發數據流量。

如果正在進行的會話被打斷,端口上的流量將再次被傳輸,直到建立新的安全會話。

image-20230331021956288

4.2 以太網鏈路DoS攻擊實現:

入侵者可以在中間數據鏈路層中破壞數據流的傳輸,導致Camera無法起作用,但并不是Camera出現問題,難以準確定位問題所在。

image-20230331152904968

當部署MACsec協議后,檢測入侵者的接收設備并沒有得到認證(如RADIUS),所以為了保護正常顯示,會在交換設備出阻止入侵連接,進入正常用戶數據幀接收處,導致防護成功。

數據控制:

在MACsec會話得到保護之前,活動MACsec端口不會傳輸控制流量(如STP、LACP)。建立會話時,只有8O2.1X協議數據包從端口傳輸。建立安全會話后,控制流量會正常通過端口。

image-20230331152959281

汽車企業和制造商可可以使用MACsec在最大程度上保護汽車,以免暴露在外界特別容易受到以太網鏈路攻擊,MACsec可以比作汽車安全工具箱中的性價比很高的安全工具,并且MACsec支持系統工程師將其與其他安全措施結合使用(IPSec和TLS)這樣的工具。

5.路由器Cisco安全MACsec協議配置過程和相關驗證

步驟1.驗證鏈路兩端的配置

顯示當前設備的運行配置信息,并只顯示與密鑰鏈相關的配置信息,方便管理員查看和管理設備上的密鑰鏈配置。

C9500#sh run | sec key chain
key chain KEY macsec
 key 01
 cryptographic-algorithm aes-256-cmac
 key-string 7
101C0B1A0343475954532E2E767B3233214105150555030A0004500B514B175F5B05515153005E0E5E505C5256400702
5859040C27181B5141521317595F052C28
 lifetime local 00:00:00 Aug 21 2019 infinite <-- use NTP to sync the time for key chains
mka policy MKA
key-server priority 200
macsec-cipher-suite gcm-aes-256
confidentiality-offset 0 

顯示交換機接口te1/1/3的運行配置信息,包括地理位置、組態信息和特定的協議配置等,可以通過這個命令查看和修改交換機接口的配置信息。

C9300#sh run interface te1/1/3
interface te1/1/3
macsec network-link
mka policy MKA
mka pre-shared-key key-chain KEY

步驟 2 驗證MACsec已啟用,且所有參數/計數器都正確

顯示MACsec加密的摘要信息

  • Interface:交換機的接口名稱。
  • Transmit SC:此接口上MACsec加密所用的下行(即傳輸數據)Secure Channel ID(SC)計數器的值。
  • Receive SC:此接口上MACsec加密所用的上行(即接收數據)Secure Channel ID(SC)計數器的值。

FortyGigabitEthernet1/0/1 接口使用的MACsec加密。"Transmit SC"和 "Receive SC" 列都有值1。

C9500#sh macsec summary
Interface Transmit SC Receive SC
FortyGigabitEthernet1/0/1 1 1

查看指定接口的MACsec加密的具體配置信息,包括其狀態、操作模式、加密策略。

C9500#sh macsec interface fortyGigabitEthernet 1/0/1
MACsec is enabled
Replay protect : enabled
Replay window : 0
Include SCI : yes
Use ES Enable : no
Use SCB Enable : no
Admin Pt2Pt MAC : forceTrue(1)
Pt2Pt MAC Operational : no
Cipher : GCM-AES-256
Confidentiality Offset : 0

網絡設備的功能列表或能力列表,包括硬件和軟件上的功能。

    Capabilities
ICV length : 16
Data length change supported: yes
Max. Rx SA : 16
Max. Tx SA : 16
Max. Rx SC : 8
Max. Tx SC : 8
Validate Frames : strict
PN threshold notification support : Yes
Ciphers supported : GCM-AES-128
GCM-AES-256
GCM-AES-XPN-128
GCM-AES-XPN-256

"Transmit Secure Channels"是指在使用MACsec加密的網絡連接中,發送(即傳輸數據)數據流的安全通道(Secure Channel)的數量,每個接口可以有多個Transmit Secure Channels,以提供更多的安全通道、更好的容錯能力和更高的性能。

Transmit Secure Channels
SCI : 0CD0F8DCDC010008
SC state : notInUse(2)
Elapsed time : 00:24:38
Start time : 7w0d
Current AN: 0
Previous AN: -
Next PN: 2514
SA State: notInUse(2)
Confidentiality : yes
SAK Unchanged : yes
SA Create time : 1d01h
SA Start time : 7w0d

SC Statistics用于加密網絡連接中,記錄和統計安全通道(Secure Channel)的數據傳輸情況、錯誤情況以及其他相關統計數據的功能。在數據流向安全通道傳輸時,設備會記錄各種數據,并提供與安全通道相關的統計信息。

SC Statistics
Auth-only Pkts : 0
Auth-only Bytes : 0
Encrypt Pkts : 3156 <-- should increment with Tx traffic
Encrypt Bytes : 0

SA是兩個設備之間的一個安全協議,它包含了用于保護數據通信的密鑰及算法等信息。在SA傳輸數據時,設備會對SA的傳輸進行數據記錄,包括傳輸的正確性、協議支持情況等。

SA Statistics
Auth-only Pkts : 0
Encrypt Pkts : 402 <-- should increment with Tx traffic

Receive Secure Channels是指在使用MACsec加密的網絡連接中,接收(即接收數據)數據流的安全通道(Secure Channel)的數量。在接收數據時,接收器會使用一組Secure Channel ID計數器的值來標識和保護數據流。MACsec使用這個值來保護數據流的完整性,以防止未經授權的訪問和數據篡改。

Receive Secure Channels
SCI : A0F8490EA91F0026
SC state : notInUse(2)
Elapsed time : 00:24:38
Start time : 7w0d
Current AN: 0
Previous AN: -
Next PN: 94
RX SA Count: 0
SA State: notInUse(2)
SAK Unchanged : yes
SA Create time : 1d01h
SA Start time : 7w0d
SC Statistics
Notvalid pkts 0
Invalid pkts 0
Valid pkts 0
Valid bytes 0
Late pkts 0
Uncheck pkts 0
Delay pkts 0
UnusedSA pkts 0
NousingSA pkts 0
Decrypt bytes 0
SA Statistics
Notvalid pkts 0
Invalid pkts 0
Valid pkts 93
UnusedSA pkts 0
NousingSA pkts 0
!
Port Statistics
Ingress untag pkts 0
Ingress notag pkts 748
Ingress badtag pkts 0
Ingress unknownSCI pkts 0
Ingress noSCI pkts 0
Ingress overrun pkts 0

顯示指定接口fortyGigabitEthernet 1/0/1上的MKA(MACsec Key Agreement 密鑰協商協議)會話信息。

C9500#sh mka sessions interface fortyGigabitEthernet 1/0/1
Summary of All Currently Active MKA Sessions on Interface FortyGigabitEthernet1/0/1...
================================================================================================
====
Interface Local-TxSCI Policy-Name Inherited Key-Server
Port-ID Peer-RxSCI MACsec-Peers Status CKN
================================================================================================
====
Fo1/0/1 0cd0.f8dc.dc01/0008 MKA NO YES
8 a0f8.490e.a91f/0026 1 Secured01 <--- CKN number must match on both
0cd0.f8dc.dc01 <-- MAC of local interface
a0f8.490e.a91f <-- MAC of remote neighbor
8 <-- indicates IIF_ID of respective local port (here IF_ID is 8 for local port fo1/0/1)

查找特定端口(如/0/1端口)的接口號(interface number)為"Fo1/0/1

  • iif-id:接口標識符。
  • gid:分組標識符。
  • slot/unit:接口的槽號和單元號。
  • slun:接口的SLUN(Switch Logic Unit Number)值。
  • HWIDB-Ptr:指向關鍵硬件接口的指針。
  • status:接口的狀態。
  • status2:接口的第二種狀態。
  • state:接口的當前狀態。
  • snmp-if-index:SNMP(Simple Network Management Protocol)接口索引號。
C9500#sh platform pm interface-numbers | in iif|1/0/1
interface iif-id gid slot unit slun HWIDB-Ptr status status2 state snmp-if-index
Fo1/0/1 8 1 1 1 1 0x7EFF3F442778 0x10040 0x20001B 0x4 8

查看 FortyGigabitEthernet 1/0/1 接口的 MACsec Key Agreement (MKA) 會話的詳細信息,MACsec 保護參數、密鑰、會話 ID 等信息。

C9500#sh mka sessions interface fortyGigabitEthernet 1/0/1 detail
MKA Detailed Status for MKA Session
===================================
Status: SECURED - Secured MKA Session with MACsec
Local Tx-SCI............. 0cd0.f8dc.dc01/0008
Interface MAC Address.... 0cd0.f8dc.dc01
MKA Port Identifier...... 8
Interface Name........... FortyGigabitEthernet1/0/1
Audit Session ID.........
CAK Name (CKN)........... 01
Member Identifier (MI)... DFDC62E026E0712F0F096392
Message Number (MN)...... 536 <-- should increment as message numbers increment
EAP Role................. NA
Key Server............... YES
MKA Cipher Suite......... AES-256-CMAC
Latest SAK Status........ Rx & Tx
Latest SAK AN............ 0
Latest SAK KI (KN)....... DFDC62E026E0712F0F09639200000001 (1)
Old SAK Status........... FIRST-SAK
Old SAK AN............... 0
Old SAK KI (KN).......... FIRST-SAK (0)
SAK Transmit Wait Time... 0s (Not waiting for any peers to respond)
SAK Retire Time.......... 0s (No Old SAK to retire)
SAK Rekey Time........... 0s (SAK Rekey interval not applicable)
MKA Policy Name.......... MKA
Key Server Priority...... 200
Delay Protection......... NO
Delay Protection Timer.......... 0s (Not enabled)
Confidentiality Offset... 0
Algorithm Agility........ 80C201
SAK Rekey On Live Peer Loss........ NO
Send Secure Announcement.. DISABLED
SAK Cipher Suite......... 0080C20001000002 (GCM-AES-256)
MACsec Capability........ 3 (MACsec Integrity, Confidentiality, & Offset)
MACsec Desired........... YES

查看 MACsec Key Agreement (MKA) 策略配置的詳細信息,包括 MKA 策略名稱、密鑰交換協議和密鑰服務器配置。

C9500#sh mka policy MKA
MKA Policy defaults :
Send-Secure-Announcements: DISABLED
!
MKA Policy Summary...
!
Codes : CO - Confidentiality Offset, ICVIND - Include ICV-Indicator,
SAKR OLPL - SAK-Rekey On-Live-Peer-Loss,
DP - Delay Protect, KS Prio - Key Server Priority
Policy KS DP CO SAKR ICVIND Cipher Interfaces
Name Prio OLPL Suite(s) Applied
===============================================================================
MKA 200 FALSE 0 FALSE TRUE GCM-AES-256 Fo1/0/1 <-- Applied to Fo1/0/1

查看已發送和已接收的 MACsec PDU (協議數據單元) 數量的統計信息。

C9500#sh mka statistics | sec PDU
MKPDU Statistics
MKPDUs Validated & Rx...... 2342 <-- should increment
"Distributed SAK"..... 0
"Distributed CAK"..... 0
MKPDUs Transmitted......... 4552 <-- should increment

步驟3.檢查鏈路啟動時的軟件調試

這一步非常重要,需要我們識別關鍵信息。

  • debug cts sap events: 顯示 CTS (Cisco TrustSec) 和 SAP (Security Association Protocol) 事件的調試信息,包括已建立的安全關聯和激活的安全服務等。
  • debug cts sap packets: 顯示 CTS 和 SAP 數據包的調試信息,包括已發送和已接收的數據包、數據包的標頭、負載和加密狀態等。
  • debug mka event: 顯示 MKA (MACsec Key Agreement) 事件的調試信息,包括MKA 會話狀態的變化,啟用和禁用 MKA 功能等。
  • debug mka errors: 顯示 MKA 運行時可能出現的錯誤和故障的調試信息,包括 MACsec 錯誤、密鑰交換故障、MKA 配置錯誤等。
  • debug mka packets: 顯示 MKA 數據包的調試信息,八廓已發送和已接收的 MKA 控制報文 (MKA control packets)、保護參數提案 (SA proposal)、密鑰交換報文 (KEK Packets)、生命信號報文 (Keep-Alive Packets) 等。
  • debug mka ka errors: 顯示 MKA 存活 (Keep-Alive) 相關錯誤和故障的調試信息,包括保活超時、保活錯誤、無法發送或接收保活報文等。
### Verify CTS and SAP events ###
debug cts sap events
debug cts sap packets
### Troubleshoot MKA session bring up issues ###
debug mka event
debug mka errors
debug mka packets
### Troubleshoot MKA keep-alive issues ###
debug mka linksec-interface
debug mka macsec
debug macsec
*May 8 00:48:04.843: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/1, changed state to down
*May 8 00:48:05.324: Macsec interface GigabitEthernet1/0/1 is UP
*May 8 00:48:05.324: CTS SAP ev (Gi1/0/1): Session started (new).
*May 8 00:48:05.324: cts_sap_session_start CTS SAP ev (Gi1/0/1) peer:0000.0000.0000
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CTS SAP ev (Gi1/0/1): Old state: [waiting to restart],
event: [restart timer expired], action: [send message #0] succeeded.
New state: [waiting to receive message #1].
*May 8 00:48:05.449: CTS SAP ev (Gi1/0/1): EAPOL-Key message from D0C7.8970.C381 <-- MAC of
peer switch/router
*May 8 00:48:05.449: CTS SAP ev (Gi1/0/1): EAPOL-Key message #0 parsed and validated.
*May 8 00:48:05.449: CTS SAP ev (Gi1/0/1): Our MAC = 682C.7B9A.4D01 <-- MAC of
local interface
peer's MAC = D0C7.8970.C381.
CTS SAP ev (Gi1/0/1): Old state: [waiting to receive message #1],
event: [received message #0], action: [break tie] succeeded.
New state: [determining role].
*May 8 00:48:05.449: cts_sap_generate_pmkid_and_sci CTS SAP ev (Gi1/0/1) auth:682c.7b9a.4d01
supp:d0c7.8970.c381, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
CTS SAP ev (Gi1/0/1): Old state: [determining role],
event: [change to authenticator], action: [send message #1] succeeded.
New state: [waiting to receive message #2].
*May 8 00:48:05.457: CTS SAP ev (Gi1/0/1): EAPOL-Key message from D0C7.8970.C381.
CTS SAP ev (Gi1/0/1): New keys derived:
KCK = 700BEF1D 7A8E10F7 1243A168 883C74FB,
KEK = C207177C B6091790 F3C5B4B1 D51B75B8,
TK = 1B0E17CD 420D12AE 7DE06941 B679ED22,

步驟4.在鏈路啟動時查看平臺級跟蹤

顯示第一個交換機的MACsec接口和其對應物理接口之間的映射關系。

9300_stack#sh platform software fed switch 1 ifm mappings
Interface IF_ID Inst Asic Core Port SubPort Mac Cntx LPN GPN Type Active
GigabitEthernet1/0/1 0x8 1 0 1 0 0 26 6 1 1 NIF Y
Note the IF_ID for respective intf
- You will see this respective IF_ID in MACSEC FED traces below.
  • set platform software trace fed switch 1 cts_aci verbose: 開啟第一個交換機上的CTS-ACI跟蹤,并設置為詳細模式。
  • set platform software trace fed switch 1 macsec verbose: 開啟第一個交換機上的MACsec跟蹤,并設置為詳細模式。
  • request platform software trace rotate all: 將所有跟蹤文件循環重寫,以釋放存儲空間并確保跟蹤一直處于運行狀態。
9300_stack#set platform software trace fed switch 1 cts_aci verbose
9300_stack#set platform software trace fed switch 1 macsec verbose <-- switch number with
MACsec port
9300_stack#request platform software trace rotate all

顯示第一個交換機軟件平臺跟蹤的消息。

9300_stack#show platform software trace message fed switch 1
2019/05/08 01:08:50.688 {fed_F0-0}{1}: [macsec] [16837]: UUID: 0, ra: 0, TID: 0 (info): FED sent
macsec_sa_sc_res_msg successfully
2019/05/08 01:08:50.688 {fed_F0-0}{1}: [macsec] [16837]: UUID: 0, ra: 0, TID: 0 (info): FED
sending macsec_sa_sc_res_msg
2019/05/08 01:08:50.688 {fed_F0-0}{1}: [macsec] [16837]: UUID: 0, ra: 0, TID: 0 (debug): Running
Install RxSA job for SCI: 15044144197663784960 AN:0 if_id: 0x8 lpn: 1

步驟5.驗證硬件中MACsec接口的狀態

顯示包含所有可用于性能測量(performance measurement)的接口及其相應的編號。

9300_stack#sh platform pm interface-numbers
interface iif-id gid slot unit slun HWIDB-Ptr status status2 state snmp-if-index
------------------------------------------------------------------------------------------------
-------
Gi1/0/1 8 1 1 1 1 0x7F2C90D7C600 0x10040 0x20001B 0x4 8
  • sh pl software fed switch 1 ifm if-id 8: 顯示第一個交換機上關于特定接口映射的信息,這里的接口ID為8。
  • iif-id 8 maps to gig1/0/1: FED上的接口ID 8 映射到 GigabitEthernet 1/0/1 物理接口。
9300_stack#sh pl software fed switch 1 ifm if-id 8 <-- iif-id 8 maps to gig1/0/1
Interface IF_ID : 0x0000000000000008
Interface Name : GigabitEthernet1/0/1
Interface Block Pointer : 0x7f4a6c66b1b8
Interface Block State : READY
Interface State : Enabled
Interface Status : ADD, UPD
Interface Ref-Cnt : 8
Interface Type : ETHER
Port Type : SWITCH PORT
Port Location : LOCAL
Slot : 1
Unit : 0
Slot Unit : 1
SNMP IF Index : 8
GPN : 1
EC Channel : 0
EC Index : 0
Port Handle : 0x4e00004c

顯示給定資源句柄( 0x7f4a6c676bc8)在第一個交換機的硬件前端(FED)中的映射情況,并根據需要指定相應的ASIC塊,顯示MACsec詳細配置信息。

9300_stack# sh pl hard fed switch 1 fwd-asic abstraction print-resource-handle 0x7f4a6c676bc8 1
<< port_LE handle
Handle:0x7f4a6c676bc8 Res-Type:ASIC_RSC_PORT_LE Res-Switch-Num:0 Asic-Num:1 Feature-
ID:AL_FID_IFM Lkp-ftr-id:LKP_FEAT_INGRESS_PRECLASS1_IPV4 ref_count:1
priv_ri/priv_si Handle: (nil)Hardware Indices/Handles: index1:0x0 mtu_index/l3u_ri_index1:0x2 sm
handle [ASIC 1]: 0x7f4a6c682a08
Detailed Resource Information (ASIC# 1)
**snip**
LEAD_PORT_ALLOW_CTS value 0 Pass
LEAD_PORT_ALLOW_NON_CTS value 0 Pass
LEAD_PORT_CTS_ENABLED value 1 Pass <-- Flag = 1 (CTS enabled)
LEAD_PORT_MACSEC_ENCRYPTED value 1 Pass <-- Flag = 1 (MACsec encrypt enabled)
LEAD_PORT_PHY_MAC_SEC_SUB_PORT_ENABLED value 0 Pass
LEAD_PORT_SGT_ALLOWED value 0 Pass
LEAD_PORT_EGRESS_MAC_SEC_ENABLE_WITH_SCI value 1 Pass <-- Flag = 1 (MACsec with SCI enabled)
LEAD_PORT_EGRESS_MAC_SEC_ENABLE_WITHOUT_SCI value 0 Pass
LEAD_PORT_EGRESS_MAC_SEC_SUB_PORT value 0 Pass
LEAD_PORT_EGRESS_MACSEC_ENCRYPTED value 0 Pass
**snip**

6.如何應用在車載通信安全中?

用密鑰加密數據(對稱加密),防止被未經授權的第三方竊聽,而協議所在的通信等級是選擇協議時的一個主要考慮因素,MACsec (IEEE 802.1AE) 在OSI第2層工作,因此始終僅直接用于兩個相鄰以太網節點之間。

image-20230331165110309

在車載通信安全中,存在極端情況是拒絕服務攻擊,反復發送消息,其目標是導致信息過載。這會極大影響系統的正常通信,這些防御機制可以恢復被攻擊者攻破的安全架構防護層。根據應用情況 ,決定是否要繼續無阻礙運行,或者由自動化汽車的駕駛員再次接管方向盤。

上圖多級安全架構對于保護通過車載以太網進行的通信來說具有重要的作用,而網絡安全領域和IT領域的交換機配置、VLAN虛擬局域網等多種方式應用廣泛,可以對汽車安全形成一定的試驗區,增強安全車載和智能駕駛。

7.MACsec的兩種安全學習模式

7.1 靜態 CAK 模式:

步驟1:

先使用靜態 CAK 模式啟用 MACsec 時,兩個安全密鑰(連接關聯密鑰 (CAK)和隨機生成安全關聯密鑰 (SAK) 將用于保護鏈路安全。在點對點以太網鏈路的每一端,兩臺設備之間都會定期交換這兩個密鑰,以確保鏈路安全。

  • 連接關聯是一組 MACsec 屬性,用于對接口創建兩個安全通道,一個用于入站流量,一個用于出站流量。安全通道負責在 MACsec 安全鏈路上發送和接收數據。

步驟2:

然后使用靜態 CAK 安全模式啟用 MACsec ,使用預共享密鑰首次建立 MACsec 安全鏈路。預共享密鑰包括連接關聯名稱 (CKN) 及其自己的 CAK。CKN 和 CAK 由連接關聯中的用戶配置,且必須在鏈路的兩端匹配,才能首次啟用 MACsec。

步驟3:

最后成功交換匹配的預共享密鑰后,將啟用 MACsec 密鑰協議 (MKA) 協議。MKA 協議負責維護鏈路上的 MACsec,并決定點對點鏈路上的哪個交換機成為關鍵服務器。然后,密鑰服務器會創建一個僅與交換機在點對點鏈路另一端共享的 SAK,該 SAK 用于保護遍歷該鏈路的所有數據流量。只要啟用了 MACsec,密鑰服務器將繼續在點對點鏈路上定期創建并共享隨機創建的 SAK。

7.2 動態 CAK 模式:

步驟1:

先在MACsec 鏈路上的對等節點會作為 802.1X 身份驗證過程的一部分動態生成安全密鑰。對等節點在身份驗證期間從 RADIUS 服務器接收 MACsec 密鑰屬性,并使用這些屬性動態生成 CAK 和 CKN。然后,他們交換密鑰以創建一個 MACsec 安全連接。

步驟2:

然后因為動態 CAK 模式比靜態 CAK 模式的管理更容易,所以不需要手動配置密鑰。可以用 RADIUS 服務器集中管理密鑰。

步驟3:

最后在交換機到主機鏈路上,交換機是 802.1X 驗證方,主機是請求方。在鏈路連接交換機或路由器上,這些設備必須同時充當驗證方和請求方,以便相互驗證。

動態 CAK 模式依賴于使用可擴展身份驗證協議傳輸層安全 (EAP-TLS) 的基于證書的驗證。RADIUS 服務器和交換設備必須使用 EAP-TLS 和公共密鑰基礎架構,才能在動態 CAK 模式下支持 MACsec,這也說明了協議的嚴謹性和安全性。

8.MACsec安全協議:

因此需要注意的是:并不是所有的交換機都支持MACsec安全協議,在終端一個無限制的數目可能需要驗證到單個交換機端口,不支持MACsec安全協議,屬于多驗證模式,。也不是所有的汽車都存在MACsec保護。新興的造車企業(如比亞迪、Telsa)及傳統車企投入的一些未來車型的研發則有陸續采用更先進的整車電子電氣架構,智能駕駛域控制器,內嵌MACsec安全協議,為智能化控制和車載安全提供基礎,防范黑客攻擊。

參考鏈接:

1.汽車E/E電子架構的進化和改革簡介 - 知乎 (zhihu.com)

2.車載網絡安全——MACsec/IPsec/SSL簡介 - 知乎 (zhihu.com)

3.用于自動駕駛的安全車載以太網——多級安全架構簡介 - 知乎 (zhihu.com)


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/2060/