Academy Central
----
Weather

實現真正的端到端 (End-to-End) 安全更新,系統必須滿足以下四個條件:

  1. 機密性 (Confidentiality): 韌體內容在網路上傳輸時不能被看光(防竊聽)。

  2. 完整性 (Integrity): 韌體在傳輸過程中,連一個位元都不能被竄改。

  3. 真實性 (Authenticity): 設備必須確認這個更新包真的是來自官方伺服器,而不是偽造的伺服器。

  4. 抗降級防護 (Anti-Rollback): 駭客可能會故意發送一個「帶有已知漏洞的舊版官方韌體」讓設備降級。系統必須拒絕安裝比當前版本更舊的韌體。

建立基於 PUF 的 OTA 信任鏈:運作流程

透過端到端的加密協定,雲端伺服器發送的更新包必須被加密且簽章,SoC 收到後利用源自 PUF 的金鑰進行解密與驗證,確保更新過程不會被植入惡意木馬 。具體流程如下:

階段一:雲端伺服器打包 (Packaging)

  1. 雜湊與簽章: 官方伺服器首先計算新韌體的雜湊值 (Hash),然後用官方的「私鑰」對這個雜湊值進行數位簽章。這確保了真實性完整性

  2. 加密: 伺服器使用對稱式加密演算法(如 AES)將韌體與簽章一起加密,確保機密性

階段二:設備端接收與驗證 (Verification)

當 SoC 接收到這個加密的更新包後,便會啟動基於 PUF 的安全防護網:

  1. 密鑰衍生: 設備內部的硬體安全模組會喚醒 PUF,萃取出絕對安全的根金鑰,並衍生出用於解密的會話金鑰。

  2. 解密載荷: 利用衍生出的金鑰將更新包解密。

  3. 驗證簽章: 系統使用預先燒錄(或透過憑證取得)的官方「公鑰」,來驗證韌體上的數位簽章。如果簽章不符,代表韌體被竄改,系統會立即丟棄該更新包。

  4. 版本檢查 (Anti-Rollback): 系統讀取更新包的版號,並與設備內部硬體計數器(如 eFuse 記錄的防降級計數器)進行比對。如果新版號小於或等於當前版號,更新將被強制終止。

階段三:安裝與重啟 (Installation & Reboot)

只有當上述所有驗證都完美通過後,韌體才會被寫入快閃記憶體中。接著設備重啟,再次交給 Secure Boot 進行開機驗證,完成完美的信任閉環。


當設備要連上雲端平台(例如 AWS IoT 或 Azure)時,必須向伺服器證明自己的合法身分 。傳統的單向認證通常只有客戶端去驗證伺服器(就像你上網確認銀行網站是真的一樣),但在高安全性的 IoT 系統中,伺服器也必須嚴格驗證設備,這就是雙向身分認證 (Mutual Authentication, mTLS)

結合 PUF 後,這套機制將變得堅不可摧。以下為你詳細拆解 PUF 是如何結合 TLS / DTLS 協定來運作的:

PUF 結合 TLS 的運作機制

我們不採用傳統將密鑰寫死在容易被竊取的快閃記憶體 (EEPROM) 中的作法 。相反地,我們利用 PUF 的特性,實現「密鑰不落地」的安全認證。

  1. 雲端發出挑戰 (Challenge): 當設備嘗試與雲端建立 TLS 連線時,伺服器會發送一個隨機生成的數值(稱為 Challenge)給設備,要求設備進行加密簽章來證明身分 。

  2. PUF 動態喚醒 (On-the-fly Generation): 收到 Challenge 後,設備內部的系統會喚醒 PUF。利用半導體微觀的物理變異指紋,PUF 會在極短的時間內「動態計算」出專屬的私鑰 。

  3. 數位簽章與回傳 (Response): 設備利用這把剛剛生成的私鑰,對伺服器發來的 Challenge 進行數位簽章 (Response),並將結果回傳給雲端伺服器 。

  4. 密鑰隨風而逝 (Zero-Footprint): 這是最關鍵的一步。一旦簽章完成,這把私鑰就會立刻從記憶體中被抹除。當設備斷電或完成運算後,密鑰即刻消失 。

  5. 伺服器驗證與放行: 雲端伺服器使用對應的公鑰來驗證這個簽章。如果驗證成功,代表該設備擁有真正的硬體指紋,伺服器便會放行,建立安全的加密通訊通道,有效防止偽造設備惡意連入網路 。

傳統 mTLS 與 PUF mTLS 的關鍵差異

比較項目傳統 TLS 雙向認證基於 PUF 的 TLS 雙向認證
私鑰儲存位置靜態儲存於非揮發性記憶體 (如 EEPROM 或 eFlash)不儲存。需要時由硬體指紋動態產生
物理攻擊抵抗力較弱。駭客可透過侵入式探針讀取記憶體內容竊取密鑰極高。探測行為會破壞微觀結構導致密鑰失效 (防篡改)
密鑰生命週期長期存在於硬體中,增加了外洩的風險閱後即焚,斷電後密鑰即消失