先定義裝置身分,而不是先選憑證服務
一套可維運的憑證架構,起點是回答「哪一個實體正在連線」。裝置身分應對應不可重複的資產識別碼、硬體型號、製造批次、租戶、部署環境與目前擁有者,而不是只靠 MQTT Client ID、MAC 位址或人工命名。後三者可能被複製或修改,也很難支撐後續移轉、停用與稽核。憑證主體可以保持精簡,完整的業務屬性則放在裝置登錄系統,透過憑證序號或裝置 ID 建立關聯。
工程上要把憑證視為有期限的身分載具,而非裝置永久身分。裝置、金鑰與憑證應是三個可分別追蹤的物件:同一裝置會歷經多把金鑰與多張憑證;同一張憑證只能綁定明確用途,例如連接生產 MQTT broker,不應同時被拿來簽署韌體或登入管理介面。這種分離能縮小權限,也能在憑證異常時保留裝置生命週期紀錄。
佈署方式取決於供應鏈與硬體信任能力
常見做法包括在工廠寫入每台裝置的獨立憑證、使用一次性啟用碼取得正式憑證,或以受限的 claim certificate 完成首次註冊。工廠寫入適合供應鏈受控、產量穩定的產品,但必須安全傳遞序號與公鑰資料。現場註冊較有彈性,卻需要防止啟用碼外洩、重放與未授權批次註冊。共用 bootstrap 憑證最容易導入,但一旦被擷取,影響範圍可能涵蓋整批產品,因此只能授予註冊用途,並應盡快換成裝置專屬憑證。
私鑰最好在裝置內產生,並由 secure element、TPM 或 MCU 的受保護儲存區保管;後端只接收憑證簽署要求,不接觸私鑰。如果硬體無法防止私鑰匯出,就要承認其限制,透過短效憑證、每台唯一金鑰、後端行為監控與較小權限降低風險。不要為了簡化製造,把同一個私鑰燒錄到多台裝置。
- 工廠注入:適合封閉供應鏈,但金鑰站、燒錄設備與交付檔案都必須納入安全範圍。
- 現場註冊:適合多通路或客戶自行安裝,需設計一次性、限時且可追蹤的啟用流程。
- 零接觸佈署:適合大量遠端設備,但必須有可信硬體識別、註冊政策與失敗隔離機制。
- 閘道代管:可支援能力有限的感測器,但閘道會成為高價值節點,不能讓所有下游裝置共用同一身分。
輪替流程必須允許重疊、失敗與回復
輪替不應是「刪除舊憑證,再下載新憑證」。安全流程是先在裝置產生新金鑰,取得新憑證,驗證新連線成功,再於短暫重疊期後停用舊憑證。這種先建立、後切換的順序,可避免斷電、封包遺失或後端延遲把裝置鎖死。憑證與金鑰寫入儲存區時也要具備原子性,至少保留上一組可用憑證,直到新憑證通過實際連線測試。
輪替時機應由有效期限、風險與裝置連線模式共同決定。長期在線的閘道可定期主動更新;電池裝置或間歇連線設備則應在喚醒時檢查剩餘有效期,並預留多次失敗重試的時間。加入隨機抖動可避免大量裝置同時向 CA 與 broker 發出請求。裝置時鐘不可靠時,不要只依賴本地時間判斷;可由受信任伺服器提供時間,或讓後端在裝置連線時指示是否需要更新。
CA 信任鏈的更新要與裝置憑證輪替分開規劃。若要更換根憑證或中繼 CA,裝置必須先取得並信任新舊兩條鏈,後端再切換簽發與服務端憑證,最後才移除舊信任錨。直接替換單一根憑證,對長時間離線或無法遠端更新的裝置尤其危險。
撤銷要配合離線現實與服務端授權
憑證撤銷清單與 OCSP 在一般企業網路很常見,但資源有限或經常離線的 IoT 裝置未必能即時查詢。更重要的是,真正執行驗證的通常是 MQTT broker、API gateway 或裝置管理平台,因此撤銷資訊應優先快速傳到這些入口。可在連線建立時檢查憑證狀態,並對長連線設計重新驗證、強制斷線或工作階段最長存活時間,否則憑證撤銷後,既有連線仍可能繼續運作。
短效憑證可以縮短失竊憑證的可用時間,也能降低龐大撤銷清單的依賴,但代價是裝置必須更頻繁、可靠地更新。對可能離線數月的設備,過短效期反而容易造成大規模失聯。實務上通常會依裝置類型分級:穩定在線的閘道使用較短期限;低功耗或偏遠設備使用較長期限,但搭配 broker 端封鎖清單、裝置狀態檢查與有限權限。
撤銷原因也要區分。裝置報廢、客戶移轉、疑似私鑰外洩、CA 事件與操作誤發,後續動作並不相同。私鑰疑似外洩時,除了撤銷憑證,還應封鎖裝置身分、終止既有工作階段、保存近期連線與指令紀錄,並要求以新的信任來源重新註冊。若攻擊者已取得 bootstrap 憑證,只換正式憑證並不能解除風險。
把生命週期做成可觀測的狀態機
後端至少要能辨識待註冊、啟用、輪替中、暫停、撤銷與退役等狀態,並記錄誰在何時因何原因變更狀態。監控不只看憑證即將到期,還要看註冊失敗、輪替重試、同一憑證從異常位置連線、裝置大量重新註冊,以及撤銷後仍存在的工作階段。這些訊號應能連結到資產管理、告警與事件處理流程。
- 為每台裝置建立唯一身分與獨立私鑰。
- 限制 bootstrap 憑證的用途、期限與可註冊數量。
- 輪替時保留新舊憑證重疊期與可測試的回復路徑。
- 同時驗證裝置憑證狀態與後端業務授權,不把 TLS 驗證當成完整授權。
- 為根憑證、中繼 CA 與 broker 憑證設計不同的更新程序。
- 定期演練私鑰外洩、CA 切換、長期離線裝置回歸與安全退役。
真正可靠的設計會把製造、韌體、PKI、雲端入口與資產系統放在同一張生命週期圖上。若這些環節由不同團隊或供應商負責,整合團隊的價值在於先釐清信任邊界與失敗責任,再把流程落成可測試、可稽核的介面。