搜尋此網誌

2012年9月19日 星期三

UEFI安全啟動(Secure Boot)的鑑定變數

1.2 UEFI安全啟動(Secure Boot)的鑑定變數
1.2.1 [鑑定變數的概要]
UEFI鑑定變數服務被定義成一個增強UEFI變數服務。它提供一個方法去確保詳細指明變數的完整性,藉由在前面加上身份證明資料,如EFI_VARIABLE_AUTHENTICATION在下圖所示。這身份證明資料被定義在UEFI 2.3.1A規格書的第3章。
如果一個變數的EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS位元被設定,當這SetVariable被呼叫,運算本身與資料的完整性兩者將被生效,在這變數被寫入到儲存裝置。
既然不是以機密為設計目標,沒有資料的認證,那隨後的讀取使用GetVariable函式。
因此任何人能夠讀取鑑定變數,但只有持有正確密鑰的這些人,他們可以寫或更新鑑定變數。

鑑定變數資料的區塊圖顯示如下:

1.2.2 [鑑定變數的型態]

UEFI 2.3.1A規格書的7.2章節定義鑑定變數的兩個型態:計數器型態與時間型態。
為了預防重演攻擊,計數器型變數包含一個單調的數在EFI_VARIABLE_AUTHENTICATION區段中,而時間型的變數包含一個時間郵戳用於此目的。
各個方法用於不同的情境去部署對應的安全開機策略。儘管如此,當UEFI規格書說明,那時間型的方法是比較好的;計數器型部署的方案是不被描述在這文件中。

1.2.3 [安全開機的鑑定變數]
描述
UEFI安全開機的影像檔與認證策略被控制經由UEFI鑑定變數,它被定義在UEFI 2.3.1A規格書的3.2章節:
  • Platform Key (PK) - 平台密鑰建立一個信賴關係在平台擁有者與平台韌體之間。平台擁有者記下公開二分之一的祕鑰 (PKpub)進入平台韌體。平台擁有者能晚一點使用私有的祕鑰 (PKpriv)去改變平台關係,或記下一個鑰匙兌換的祕鑰。在UEFI 2.3.1方面,它建議平台密鑰的格式是RSA-2048。
  • Key Exchange Key (KEK) -  鑰匙兌換的祕鑰建立一個信賴關係在做鑰系統與平台韌體之間。密鑰的公開部分被記錄到平台韌體。各作業系統(與潛在地,各個第三方的應用,它們需要通訊與平台韌體)能晚一點使用私有的二分之一的祕鑰 ( KEKpriv )去 與韌體通訊在一個信賴的方式。 在UEFI 2.3.1方面,它建議平台鑰匙兌換的祕鑰的格式是RSA-2048。KEK也能包含授權的簽署認證。
  • Authorized Signature Database (DB) - 這資料庫包含授權的簽署認證與數位簽章。一個影像檔簽署一個認證已記錄在DB(或KEK)或它們被授權的數位簽章被記錄在 DB去執行。DB是白表(可信的資料庫)。
  • Forbidden Signature Database (DBX) -  這資料庫包含禁用的認證與數位簽章。 一個影像檔簽署一個認證已記錄在DBX或它們的數位簽章被記錄在DBX,是從不被永許去執行。DBX是黑表(禁用的資料庫)。
  • Setup Mode - 當設定模式是無效的,沒有平台密鑰被記錄與平台被聲明是運行在設定模式。而在設定模式中,平台韌體不鑑定影像檔與安全開機策略能被配置經由寫入PK、KEK、DB,還有DBX變數。當設定模式不是無效,一個平台密鑰被記錄與平台運行在使用者模式中。使用者模式要求全部可執行先被鑑定,在它們允許執行如果它們被載入從位置(硬碟、隨身碟或Option ROM)致能經由安全開機策略PCD敘述下。
  • SecureBoot - 當設定(1),平台是運行在安全開機模式與平台影像檔驗證取決於資料被儲存在DB與DBX,還有安全開機策略PCD敘述下。

2 則留言:

  1. Authorized Signature Database (DB) - 這資料庫包含禁用的認證與數位簽章 這部份的描述和DBX寫反了?

    回覆刪除