Titan 硬體晶片

本文上次更新於 2025 年 1 月,內容反映截至撰文時的情況。我們會持續改善客戶保護措施,因此 Google 的安全性政策和系統未來可能會改變。

Titan 晶片是專為資料中心平台建立硬體信任根的晶片。 Google Cloud Titan 晶片是低功耗微控制器,部署於伺服器、網路基礎架構和其他資料中心周邊裝置等平台。

Titan 晶片是 Titanium 硬體安全架構的重要元件,可提供基礎安全層,協助防範實體攻擊和使用者資料威脅。Google 可透過 Titan 晶片安全地識別及評估平台韌體和設定。這項功能旨在保護裝置免於特權軟體攻擊和 Rootkit 侵害,從機器啟動程序開始防護。

本文說明 Titan 安全性晶片的晶片架構和安全優勢。Titan 安全性晶片支援最低限度的可信賴運算基礎 (TCB),因此具備下列優點:

  • 硬體信任根,可為機器建立強大的身分
  • 在啟動和更新時驗證平台韌體完整性
  • 遠端憑證密封流程,這是 Google 機器憑證管理系統的基礎

Titan 晶片系列

最早的 Titan 晶片設計於 2014 年,後續幾代產品則納入反覆製造、整合和部署程序中獲得的經驗。如要進一步瞭解 Google 如何將 Titan 晶片的相關知識貢獻給開放原始碼硬體安全社群,請參閱 opentitan.org

Titan 晶片包含下列元件:

  • 安全處理器
  • AES 和 SHA 加密協同處理器
  • 硬體隨機數產生器
  • 精密的金鑰階層
  • 內嵌靜態隨機存取記憶體 (SRAM)、快閃記憶體和唯讀記憶體 (ROM)

Titan 製造身分

在 Titan 晶片的製造過程中,晶片會移至外包半導體組裝與測試 (OSAT) 設施的安全室,以便佈建身分。這個會議室符合 ISO 和通用標準。這間房間有四部備援攝影機 (位於所有角落),以及只能在緊急情況下開啟的感應器讀取門。晶片佈建時,房內沒有任何人員,整個程序完全自動化。

裝置會從一側牆壁的封閉空間進入,並插入自動處理器。每個處理常式都配備稱為「Scribe」的 Titan 晶片。Scribe 包含佈建韌體,並具有序列周邊介面 (SPI)、重設和通用異步收發器 (UART) 連線,可連線至受測裝置 (DUT),也就是正在製造的 Titan 晶片。Scribe 表面覆蓋環氧樹脂,並有獨特的防拆封標記。自動處理常式會將 DUT 放入針床,並啟動電源。Scribe 會從重設狀態釋放 DUT、提供執行韌體,並執行佈建程序。

在佈建過程中,DUT 會使用內嵌在遮罩 ROM 中的公開金鑰,驗證佈建韌體。韌體會使用晶片的真隨機數產生器 (TRNG) 產生內部裝置密碼,並燒錄至晶片熔絲。這個密鑰是晶片日後執行所有金鑰衍生作業的根源。Scribe 不知道這個祕密。DUT 會產生個人化資訊清單,其中包含從內部裝置密碼衍生的專屬公開金鑰。個人化資訊清單會由嵌入 DUT 暫存器轉移層 (RTL) 的類別金鑰進行驗證。Scribe 會透過 SPI 收集個人化資訊清單,然後使用該 Scribe 專屬的金鑰簽署。接著,個人化資訊清單會上傳並儲存在 Google 登錄資料庫中。

Scribe 投入服務時,每把 Scribe 簽署金鑰都會在實體儀式中註冊。此外,Scribe 只會在揮發性記憶體中保留簽署私密金鑰,確保 Scribe 從安全設施中移除時,會因斷電而遺失簽署金鑰。每次啟動時,每個 Scribe 都必須從 Google 服務擷取簽署金鑰的專屬包裝副本。特定 Scribe 簽署金鑰的包裝副本,是在 Scribe 最初由 k-of-n 仲裁離線註冊時建立,且只能由該 Scribe 解包。

當啟用 Titan 的平台整合至 Google 生產網路時,後端系統會根據收集到的個人化資訊清單資料庫驗證 Titan 的專屬公開金鑰,確認這些平台搭載正版 Titan 晶片。如要進一步瞭解服務如何使用 Titan 身分識別系統,請參閱「憑證密封程序」。

Titan 晶片會使用裝置專屬的金鑰配對來驗證韌體,方式與裝置 ID 組成引擎 (DICE) 類似。由於原始 Titan 晶片是在相關產業標準推出前製造,因此是使用 Google 自訂設計通過認證。Google 在製造和部署安全硬體方面的經驗,促使我們積極參與標準程序,而 DICE、可信平台模組 (TPM) 和安全通訊協定與資料模式 (SPDM) 等新標準,都納入了反映我們經驗的變更。

整合 Titan

將 Titan 晶片整合到平台後,即可為應用程式處理器 (AP) 提供安全防護。舉例來說,Titan 可能會與執行工作負載的 CPU、基板管理控制器 (BMC),或機器學習等工作負載的加速器配對。

Titan 會透過 SPI 匯流排與 AP 通訊。Titan 會介於 AP 和 AP 的開機韌體快閃晶片之間,確保 Titan 可以在開機時執行韌體之前,讀取並測量該韌體的每個位元組。

啟用 Titan 的平台開機時,會發生下列步驟:

  1. Titan 會將 CPU 保持在重設模式,同時 Titan 的內部應用程式處理器會從內建唯讀記憶體執行不可變更的程式碼 (開機 ROM)。
  2. Titan 會執行內建的自我測試,確認所有記憶體 (包括 ROM) 都未遭竄改。
  3. Titan 的開機 ROM 會使用公開金鑰密碼編譯機制驗證 Titan 的韌體,並將已驗證韌體的 ID 混入 Titan 的金鑰階層。
  4. Titan 的開機 ROM 會載入 Titan 的驗證韌體。
  5. Titan 韌體會使用公開金鑰密碼編譯機制,驗證 AP 開機韌體快閃記憶體的內容。在驗證程序順利完成前,Titan 會封鎖 AP 對啟動韌體快閃的存取權。
  6. 驗證完成後,Titan 晶片會從重設狀態釋放 AP,讓 AP 啟動。
  7. AP 韌體會執行其他設定,可能包括啟動其他開機映像檔。AP 可以擷取這些開機映像檔的測量結果,並將結果傳送至 Titan,以進行安全監控。

這些步驟可確保第一道指令的完整性,因為 Google 可以從啟動週期執行的第一道指令,識別機器啟動的開機韌體和作業系統。對於 CPU 接受微碼更新的 AP,啟動程序也會讓 Google 知道啟動韌體的第一個指令之前擷取的微碼修補程式。詳情請參閱「測量啟動程序」。

這個流程與配備 TPM 的平台執行的啟動程序類似。不過,Titan 晶片包含標準 TPM 一般不提供的功能,例如 Titan 的內部韌體自我認證或 AP 韌體升級安全性,詳情請參閱下列章節。

標準 TPM 整合方式可能會受到實體插斷攻擊。Google 較新的 Titan 整合功能會使用整合式信任根,防範這類攻擊。詳情請參閱「TPM Transport Security: Defeating Active Interposers with DICE (YouTube)」。

安全升級 Titan 韌體

Titan 晶片的韌體是由離線 HSM 保存的金鑰簽署,並受到多數決控制項保護。晶片啟動時,Titan 的開機 ROM 會驗證 Titan 韌體的簽章。

Titan 韌體會使用安全版本號碼 (SVN) 簽署,藉此傳達映像檔的安全狀態。如果韌體映像檔包含安全漏洞修正程式,映像檔的 SVN 就會遞增。即使舊版韌體可能存在安全漏洞,Titan 硬體仍可讓生產網路強烈認證 Titan 韌體的 SVN。升級程序可讓我們大規模修復這些安全漏洞,即使這些漏洞會影響 Titan 的韌體也一樣。詳情請參閱「從信任根韌體中的安全漏洞復原」。

Google 參與了最新版 TPM 程式庫規格的制定,其中包含的功能可讓其他 TPM 提供類似的自我認證保證。詳情請參閱 TPM 架構規格 1.83 版的「TPM Firmware-Limited and SVN-Limited Objects」(TPM 韌體限制和 SVN 限制物件) 一節 (PDF)。這些 TPM 功能已在最新的 Titan 晶片上實作及部署。

安全地升級 AP 韌體

除了 Titan 的韌體外,我們也會以加密編譯方式簽署 AP 上執行的韌體。Titan 會在平台啟動程序中驗證這個簽章。此外,每當 AP 韌體更新時,系統也會驗證這個簽章,確保只有正版 AP 韌體映像檔可以寫入 AP 的開機韌體快閃晶片。這項驗證程序可防範攻擊,避免攻擊者安裝永久後門或導致平台無法開機。如果 CPU 的微碼驗證機制存在安全漏洞,簽章驗證也能為 Google 平台提供縱深防禦。

後續步驟

進一步瞭解我們的開機完整性程序