Matter安全實現

Matter分析與安全驗證
上一篇文章簡單的介紹了Matter的架構、實現、以及部分安全驗證過程;這里繼續補充一下Matter的其他安全驗證流程,以更好的實現Matter安全。

Matter提供的安全實現流程大概總結起來是這個流程

硬件信任根→安全啟動→動態證書→加密通信→ACL權限控制→DCL全局驗證

上一篇介紹了前面的部分,這里再根據這個流程來匯總一下;

Matter安全實現流程

🔒 1. 硬件信任根(Hardware Root of Trust)

  • 實現機制
    • 安全芯片固化密鑰:設備出廠時在安全芯片(如Silicon Labs的Secure Vault)中預燒唯一密鑰對和廠商證書(DAC),私鑰不可讀取僅用于簽名運算。
    • 物理防篡改設計:采用防物理探測的存儲區域(Secure Enclave),確保密鑰不被提取(如Nordic nRF54系列芯片)。
  • 作用:為后續安全啟動和證書鏈提供不可篡改的信任起點,防止設備克隆和固件偽造。

🚀 2. 安全啟動(Secure Boot)

  • 啟動驗證流程
    1. Bootloader使用硬件信任根的公鑰驗證首層固件簽名(ECDSA算法)。
    2. 逐級驗證:每個固件模塊驗證下一級簽名,形成信任鏈(Chain of Trust)。
    3. 失敗處理:簽名無效則終止啟動或回滾至安全版本(雙鏡像設計)。
  • 關鍵配置:芯片OTP存儲器鎖定啟動策略(如禁用調試接口、強制加密OTA)。
  • 防攻擊設計
    • 前面兩部分需要硬件安全支持,在安全芯片的支持下實現,但是大部分低成本的芯片都不具有安全能力,但是我們給方案的時候也需要考慮類似的方案,硬件信任根還是需要落地,但是沒有了安全芯片的支持,就需要放到不可讀取區域來防止復制和偽造。

📜 3. 動態證書(Dynamic Certificates)

  • 證書體系結構
    • DAC(設備認證證書):出廠預置,包含設備唯一ID(VID/PID)和公鑰,用于身份證明。
    • NOC(節點操作證書):配網時由控制器動態簽發,綁定設備與特定Fabric網絡。
  • 證書生命周期
    • 簽發:配網階段控制器通過CSR請求生成設備唯一NOC,私鑰在設備安全區域生成。
    • 吊銷:控制器可推送證書吊銷列表(CRL),阻斷惡意設備。
  • 防攻擊設計
    • 設備配網認證階段使用,這里的DAC證書的頒發者是產品認證中間證書,一般是設備廠商持有,所以設備認證階段要通過DAC進行,而不是跟常規的設備認證通過某個設備序列號或者MAC信息來判斷設備身份;那么這里就要防止設備唯一NOC偽造的情況出現,防止客戶端自簽NOC證書的設計出現,要讓設備廠商來簽發NOC證書,并做好身份驗證以及權限控制。

📡 4. 加密通信(Encrypted Communication)

  • 分層加密協議
    • PASE(配網階段):基于配網密碼(QR碼/PIN)生成臨時會話密鑰(AES-128),保護初始配置數據傳輸。
    • CASE(運行階段):基于NOC證書交換,通過ECDH協商長期會話密鑰,所有通信使用AES-128-CCM加密并附加消息認證碼(MAC)。
  • 防攻擊設計
    • 消息計數器:每個報文攜帶遞增計數器,防重放攻擊。
    • 密鑰輪換:會話密鑰定期更新(默認24小時),降低密鑰泄露風險。

🛡? 5. ACL權限控制(Access Control Lists)

  • 規則實現
    • 動態策略:ACL規則以JSON格式存儲于控制器,定義設備/用戶的操作權限(如Operate開關權限、Manage規則修改權限)。
    • 執行邏輯:設備處理命令前,通過安全會話向控制器請求授權,驗證節點ID和操作權限。
  • 示例場景:門鎖設備僅允許管理員角色執行Unlock命令,傳感器僅可Read狀態。
  • 詳細分析見后文

🌐 6. DCL全局驗證(Distributed Compliance Ledger)

  • 驗證流程
    1. 設備入網時向控制器提交DAC證書鏈(DAC→PAI→PAA)。
      1. 設備認證證書 (DAC)
      2. 產品認證中間證書 (PAI)
      3. 產品認證根證書 (PAA)
    2. 控制器訪問DCL節點,驗證:
      • 證書有效性:PAA根證書是否在DCL信任列表。
      • 設備合規性:VID/PID是否通過CSA認證,固件哈希是否匹配。
      • 吊銷狀態:查詢DCL中的證書吊銷列表(CRL)。
    3. 動態攔截:若DCL返回未認證或已吊銷,控制器拒絕設備入網。
  • 去中心化優勢:DCL由CSA成員節點共識維護,防單點篡改(如偽造證書需攻破多數節點)

看完整個Matter的安全實現流程,可以看出對于安全驗證這塊基本上都設計的非常的全面,但是開發者按照Matter的設計文檔來實現時,卻是會漏洞百出,為什么會出現這種情況呢?這里列舉幾種可能性,以及對應的坑點;

  1. 成本
    1. 拿硬件信任根和安全啟動來說,這里是需要硬件成本的,在芯片選型這塊就需要決策,如果一開始因為成本原因采用不具有安全能力的芯片的話就無從談起;
    2. 有些情況是選擇了具有安全能力的芯片,但是開發者卻沒有使用安全芯片的能力去設計實現,調用相關安全能力也是挺無奈的,當然這塊是偷懶行為;
    3. 當然了,還有一種是芯片廠商的鍋,對外宣傳具有安全能力,宣發文檔寫的該有都有,實際對接的接口文檔卻沒有辦法使用;
  2. 開發者理解錯誤
    1. 這塊屬于常見問題,類似于云端驗證和實現的部分放到客戶端去實現了;比如說動態證書部分NOC證書的生成,如果放到客戶端生成,那么攻擊者就可以自己偽造自簽NOC證書;
  3. 業務實現設計錯誤(偷懶)
    1. 當開發者已經按照所有的驗證流程來完成Matter的安全實現了,包括前面的安全芯片、設備認證、加密通信以及Matter的證書鏈;但是ACL權限卻是懶得去配置,或者說依舊是客戶端自己維護默認的,這種情況就會導致設備權限混亂的問題;
    2. 那么ACL規則要如何配置?

ACL規則參數解析

1. ACL 核心參數詳解

(1) Subject(主體)

  • 含義:被授權操作的設備標識,即執行操作的設備 Node ID。

  • 配置選項

    • 單一設備:0x123(16 進制 Node ID)
    • 設備組:Group:LightSwitches(需提前定義設備組)
    • 生態域(Fabric)內所有設備:Fabric:All
  • 案例模板

    Subject:Type: SingleDevice# 單一設備Value: 0x123# 開關的 Node ID
    

(2) Target(目標)

  • 含義:被操作的資源,支持三級粒度控制。

  • 配置選項

    類型示例作用范圍
    EndpointEndpoint: 1指定設備的單個端點(如燈泡)
    ClusterCluster: OnOffServer端點內的功能模塊(如開關控制)
    DeviceTypeDeviceType: DimmableLight同一類型的所有設備(如所有調光燈)
  • 案例模板

    Target:Type: Cluster# 目標類型為 ClusterValue: OnOffServer# 操作 OnOff 功能Scope: Endpoint:1# 限制在端點 1 生效
    

(3) Permission(權限)

  • 含義:定義操作級別,分三級權限。

  • 配置選項

    權限操作范圍示例
    View讀取屬性(如狀態查詢)讀取燈泡開關狀態
    Operate觸發命令(如開關控制)發送 Toggle 命令
    Manage管理 ACL(如增刪規則)允許添加新控制設備
  • 案例模板

    Permission: Operate# 允許觸發命令(如開關燈泡)
    

(4) AuthMode(認證模式)

  • 含義:設備間通信的安全認證方式。

  • 配置選項

    模式適用場景安全性
    PASE配網階段臨時認證(如掃碼配對)中低
    CASE運行時長期認證(如設備間控制)
  • 案例模板

    AuthMode: CASE# 高安全場景(如門鎖控制)
    

2. 特殊配置注意事項

(1) 橋接設備配置

非 Matter 設備(如 Zigbee 傳感器)需通過橋接接入:

  • 橋接端點映射:將 Zigbee 設備映射為 Matter 端點和 Cluster。

  • 案例片段效果:Zigbee 傳感器可觸發 Matter 燈泡 。

    Bridge:Endpoint: 2DescriptorCluster:DeviceType: MotionSensor# 映射為運動傳感器ServerList: OccupancySensing# 支持占用感知 Cluster
    

(2) 權限沖突解決

當多條規則沖突時,精確匹配優先

# 規則 1:允許所有設備查看燈泡狀態ACE1:Subject: Fabric:AllTarget: Endpoint:1Permission: View# 規則 2:禁止特定開關操作燈泡ACE2:Subject: 0x999# 優先級高于 ACE1Target: Endpoint:1Permission: Deny# 顯式拒絕

3. 調試技巧

  • ACL 驗證工具:使用 chip-tool 發送測試命令:

    ./chip-tool onoff toggle 0x123 1 --paakeyt 123456
    
  • 日志分析:檢查設備日志中的 Access Control 模塊,確認規則匹配結果 。

chip-tool是Matter測試條件中的一個工具,另一篇文章中介紹該工具的具體使用。

Matter 測試套件chip-tool


4. 安全實現

Matter ACL 通過 主體-目標-權限-認證 四元組實現精細控制,開發者需注意:

  1. 最小權限原則:避免濫用 Manage 權限。
  2. 認證分級:門鎖等設備強制使用 CASE
  3. 橋接兼容:非 Matter 設備需完整映射端點和 Cluster

在實際開發場景中,業務和開發為了偷懶會直接所有設備端點都設置為"endpoint": 0,也就是控制網絡中所有設備都是根端點,就會導致所有設備都是管理員權限;

下面給一個完整Matter網絡ACL權限控制列表:

{"acl": {// ACL元數據"version": "Matter-1.3",  // 遵循的規范版本"fabric": "0xABCD1234",   // 所屬生態域標識符"description": "智能家居設備控制策略","accessControlEntries": [{// 規則1:手機App管理員權限"label": "Admin-FullAccess","subject": "0x789",     // 管理員設備Node ID"target": {"endpoint": 0,        // 設備根端點"cluster": "ACLServer" // 管理ACL的集群},"permission": "Manage", // 允許修改ACL規則"authMode": "CASE"      // 強制證書認證[1](@ref)},{// 規則2:運動傳感器聯動所有調光燈"label": "Sensor-LightControl","subject": "0x456",     // 傳感器Node ID"target": {"deviceType": "DimmableLight", // 目標設備類型"cluster": "LevelControlServer" // 亮度控制集群},"permission": "Operate", // 允許調整亮度"authMode": "CASE"       // 高安全認證[2](@ref)},{// 規則3:開關控制特定燈泡"label": "Switch-Bulb1","subject": "0x123",     // 開關Node ID"target": {"endpoint": 1,        // 燈泡端點"cluster": "OnOffServer" // 開關集群},"permission": "Operate", // 允許開關命令"authMode": "CASE"       // 標準認證[1](@ref)},{// 規則4:橋接Zigbee傳感器只讀權限"label": "Bridge-Sensor-Read","subject": "0x555",     // 橋接設備Node ID"target": {"endpoint": 2,        // 映射端點"cluster": "OccupancySensing" // 占用感知集群},"permission": "View",    // 僅允許讀取狀態"authMode": "PASE"       // 配網階段臨時認證[1](@ref)},{// 規則5:顯式拒絕未知設備"label": "Deny-Unknown","subject": "Fabric:All", // 所有設備"target": {"deviceType": "DoorLock" // 門鎖設備},"permission": "Deny",    // 顯式拒絕訪問"authMode": "CASE"       // 強制生效}],// 特殊配置區"securityParameters": {"certificateMode": "PAA-TRUST", // 使用根證書信任鏈[1](@ref)"groupKeyRotation": 3600        // 組密鑰輪換周期(秒)}
}

參考

IOT知識-通信協議之Matter(1)

matter的Commissioning(入網過程)整體流程、加密方式、通信信息結構_wx618b454ed38ca的技術博客_51CTO博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98143.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從基礎到實踐:Web核心概念與Nginx入門全解析

從基礎到實踐:Web核心概念與Nginx入門全解析 文章目錄從基礎到實踐:Web核心概念與Nginx入門全解析一、Web是什么?從基本概念到核心架構1.1 Web的本質:一個超文本信息系統1.2 B/S架構:Web的“前端-后端”分工模式二、一…

【完整源碼+數據集+部署教程】加工操作安全手套與手部檢測系統源碼和數據集:改進yolo11-cls

背景意義 研究背景與意義 隨著工業自動化和智能制造的迅速發展,工人安全問題日益受到重視。特別是在涉及重型機械和危險操作的工作環境中,工人手部的安全保護顯得尤為重要。傳統的安全手套雖然在一定程度上能夠保護工人的手部,但在復雜的加工…

代碼隨想錄算法訓練營第一天 || (雙指針)27.移除元素 26.刪除有序數組中的重復項 283.移動零 977.有序數組的平方

代碼隨想錄算法訓練營第一天 || (雙指針)27.移除元素 26.刪除有序數組中的重復項 283.移動零 27.移除元素 暴力方法 同向雙指針雙指針 自己AC的解答 卡哥的講解 26.刪除有序數組中的重復項 同向雙指針 283.移動零 自己解答 靈神做法(同向雙指針+交換) 977.有序數組的平方 暴…

Java全棧開發工程師面試實錄:從基礎到實戰的深度探討

Java全棧開發工程師面試實錄:從基礎到實戰的深度探討 一、初識與自我介紹 面試官(李工): 你好,歡迎來到我們公司。我是負責技術面試的李工,今天我們將進行一場關于Java全棧開發的深入交流。你可以先簡單介紹…

Kafka:Java開發的消息神器,你真的懂了嗎?

Kafka:Java開發的消息神器,你真的懂了嗎? 一、Kafka 是什么鬼? 想象一下,你在網上瘋狂剁手后,滿心期待著快遞包裹的到來。這時候,快遞站就像是 Kafka,而你的包裹就是消息。快遞站接…

深度學習之第八課遷移學習(殘差網絡ResNet)

目錄 簡介 一、遷移學習 1.什么是遷移學習 2. 遷移學習的步驟 二、殘差網絡ResNet 1.了解ResNet 2.ResNet網絡---殘差結構 三、代碼分析 1. 導入必要的庫 2. 模型準備(遷移學習) 3. 數據預處理 4. 自定義數據集類 5. 數據加載器 6. 設備配置…

Pinia 兩種寫法全解析:Options Store vs Setup Store(含實踐與場景對比)

目標:把 Pinia 的兩種寫法講透,寫明“怎么寫、怎么用、怎么選、各自優缺點與典型場景”。全文配完整代碼與注意事項,可直接當團隊規范參考。一、背景與準備 適用版本:Vue 3 Pinia 2.x安裝與初始化: # 安裝 npm i pini…

setup函數相關【3】

目錄1.setup函數:1.概述:2.案例分析:2.setup函數的優化:(setup語法糖)優化1:優化2:安裝插件:安裝指令:只對當前項目安裝配置vite.config.ts:代碼編…

如何通過AI進行數據資產梳理

最終產出 數據資產清單 包含所有數據資產的詳細目錄,列出數據集名稱、描述、所有者、格式、存儲位置和元數據。 用途:幫助政府部門清晰了解數據資產分布和狀態。 數據質量報告 數據質量評估結果,記錄準確性、完整性、一致性等問題及改進建議,基于政府認可的數據質量框架(如…

【傳奇開心果系列】Flet框架結合pillow實現的英文文字倒映特效自定義模板特色和實現原理深度解析

Flet框架結合pillow實現的英文文字倒映特效自定義模板特色和實現原理深度解析 一、效果展示截圖 二、使用場景 三、特色說明 四、概括說明 五、依賴文件列表 六、安裝依賴命令 七、 項目結構建議 八、注意事項 九、Flet 文字倒影效果實現原理分析 (一)組件結構與功能 1. 圖像…

2025最新深度學習面試必問100題--理論+框架+原理+實踐 (下篇)

2025最新深度學習面試必問100題–理論框架原理實踐 (下篇) 在上篇中,我們已經深入探討了機器學習基礎、CNN、RNN及其變體,以及模型優化的核心技巧。 在下篇中,我們將把目光投向更遠方,聚焦于當今AI領域最炙手可熱的前沿。我們將深…

原子工程用AC6編譯不過問題

…\Output\atk_h750.axf: Error: L6636E: Pre-processor step failed for ‘…\User\SCRIPT\qspi_code.scf.scf’修改前: #! armcc -E ;#! armclang -E --targetarm-arm-none-eabi -mcpucortex-m7 -xc /* 使用說明 ! armclang -E --targetarm-arm-none-eabi -mcpuco…

Python有哪些經典的常用庫?(第一期)

目錄 1、NumPy (數值計算基礎庫) 核心特點: 應用場景: 代碼示例: 2、Pandas (數據分析處理庫) 應用場景: 代碼示例: 3、Scikit-learn (機器學習庫) 核心特點: 應用場景: 代碼示例&am…

現代 C++ 高性能程序驅動器架構

🧠 現代 C 高性能程序驅動器架構M/PA(多進程)是隔離的“孤島”,M/TA(多線程)是共享的“戰場”,EDSM(事件驅動)是高效的“反應堆”,MDSM(消息驅動&…

投資儲能項目能賺多少錢?小程序幫你測算

為解決電網負荷平衡、提升新能源消納等問題,儲能項目的投資開發越來越多。那么,投資儲能項目到底能賺多少錢?適不適合投資?用“綠蟲零碳助手”3秒鐘精準測算。操作只需四步,簡單易懂:1.快速登錄&#xff1a…

Mac 能夠連Wife,但是不能上網問題解決

請按照以下步驟從最簡單、最可能的原因開始嘗試: 第一步:基礎快速排查 這些步驟能解決大部分臨時性的小故障。 重啟設備:關閉您的 Mac 和路由器,等待一分鐘后再重新打開。這是解決網絡問題最有效的“萬能藥”。檢查其他設備&am…

基于SpringBoot的旅游管理系統的設計與實現(代碼+數據庫+LW)

摘要 本文闡述了一款基于SpringBoot框架的旅游管理系統設計與實現。該系統整合了用戶信息管理、旅游資源展示、訂單處理流程及安全保障機制等核心功能,專為提升旅游行業的服務質量和運營效率而設計。 系統采用前后端分離架構,前端界面設計注重跨設備兼…

Springboot樂家流浪貓管理系統16lxw(程序+源碼+數據庫+調試部署+開發環境)帶論文文檔1萬字以上,文末可獲取,系統界面在最后面。

系統程序文件列表項目功能:領養人,流浪貓,領養申請開題報告內容基于Spring Boot的樂家流浪貓管理系統開題報告一、研究背景與意義隨著城市化進程加速和人口增長,流浪貓問題已成為全球性社會挑戰。據統計,全球每年約有1.5億只無家可歸的寵物&a…

函數定義跳轉之代碼跳轉

相信大家在開發的過程中都有用到函數定義跳轉的功能,在 IDE 中,如果在函數調用的地方停留光標,可能會提示對應的函數定義,在 GitHub 中也是如此,對于一些倉庫來說,我們可以直接查看對應的函數定義了&#x…

探討Xsens在人形機器人研發中的四個核心應用

探索Xsens動作捕捉如何改變人形機器人研發——使機器人能夠從人類運動中學習、更直觀地協作并彌合模擬與現實世界之間的差距。人形機器人技術是當今世界最令人興奮且最復雜的前沿領域之一。研究人員不僅致力于開發能夠像人類一樣行走和行動的機器人,還致力于開發能夠…