s390 (IBM Z) 受保護虛擬機器引導/IPL¶
總結¶
受保護虛擬機器 (PVM) 的記憶體無法被 I/O 或 Hypervisor 訪問。在 Hypervisor 需要訪問 PVM 記憶體的情況下,該記憶體必須變為可訪問。對 Hypervisor 可訪問的記憶體將被加密。詳情請參閱 s390 (IBM Z) Ultravisor 和受保護虛擬機器。
在 IPL (引導) 時,會啟動一個小型明文引導載入程式,它向 KVM 提供有關加密元件和必要的元資料,以便解密受保護虛擬機器。
基於此資料,KVM 會讓 Ultravisor (UV) 識別受保護虛擬機器,並指示其保護 PVM 的記憶體,解密元件並驗證資料和地址列表雜湊值,以確保完整性。此後,KVM 可以透過 SIE 指令執行 PVM,UV 將攔截該指令並代表 KVM 執行。
由於客戶機映象就像一個不透明的核心映象,它自己完成向 PV 模式的切換,使用者可以透過所有可用方法(網路、dasd、scsi、直接核心等)載入加密的客戶機可執行檔案和資料,而無需更改引導過程。
Diag308¶
該診斷指令是處理虛擬機器 IPL 和相關操作的基本機制。虛擬機器可以設定和檢索 IPL 資訊塊,這些資訊塊指定 IPL 方法/裝置並請求虛擬機器記憶體和子系統復位,以及 IPL 操作。
對於 PVM,此概念已透過新的子程式碼進行了擴充套件
子程式碼 8:設定型別 5 的 IPL 資訊塊(PVM 資訊塊) 子程式碼 9:將儲存的塊儲存在客戶機記憶體中 子程式碼 10:進入受保護虛擬化模式
新的 PV 載入裝置特定引數欄位指定了進入 PV 模式所需的所有資料。
PV 頭起始地址
PV 頭長度
- 元件列表,由以下組成
AES-XTS 調整字首
起始地址
大小
PV 頭包含金鑰和雜湊值,UV 將使用這些金鑰和雜湊值來解密和驗證 PV,以及控制標誌和一個起始 PSW。
這些元件例如加密核心、核心引數和 initrd。這些元件由 UV 解密。
在加密資料初始匯入後,所有已定義的頁面將包含客戶機內容。所有未指定的頁面在首次訪問時將以零頁面開始。
在受保護虛擬化模式下執行時,某些子程式碼將導致異常或返回錯誤程式碼。
子程式碼 4 和 7,它們指定不清除客戶機記憶體的操作,將導致規範異常。這是因為當安全虛擬機器被移除時,UV 將清除所有記憶體,因此不允許非清除性 IPL 子程式碼。
子程式碼 8、9、10 將導致規範異常。重新 IPL 進入保護模式只能透過繞道進入非保護模式來實現。
金鑰¶
每個 CEC 都將有一個唯一的公鑰,以支援工具構建加密映象。有關工具,請參閱 s390-tools。