Intel TDXにおけるEPT
from Intel TDXに関連して調べたこと
参考: TDX基礎知識編② - TDXの基盤技術と仮想化
Intel VT-xの機構を使用する一般的なHVでは、ゲスト物理ページとホスト物理ページのアドレス変換をEPT (Extended Page Table)を使用して行う
Intel TDXにおけるEPTは、「TDのGPA→HPA」の変換に使用される
ここでHVのEPTは信頼できないため使用できない
信頼できないパターンとして、マッピング次第で他のTDのメモリが見えるとかが、意図的でもミスでも起こり得るため
そのためTDXではSEPT (Secure EPT)と共有EPTの2つが使用される
SEPT
ページはTDのメモリ暗号化鍵によって保護される
使用するにはTDCS (Trust Domain Control Structure)にあるSEPTルートページを参照する
そのSEPTルートページがSEPT本体への参照を持っている
共有EPT
HVが管理するページテーブルを使う
GPAのSharedビットを1にすることで共有メモリの扱いになる
I/Oを行う際のようにHVを介する必要がある場合にSharedにする
SEPTと共有EPTの分岐はどこで起こるか?
仮説だとGPA→HPAのときにMMUがSharedビットが立っているか見て使用するページテーブルを決めているのかなと考えた
ChatGPT.icon 「TDCS の SEPT root を毎回見て分岐する」のではなく、VCPU 初期化時に VMCS に入った EPTPを使用する
この話からすると実行時に使っているのはTD Transfer VMCSに入っているEPTP (Extended Page Table Pointer) を見ているということになるが確認が必要nonica.icon
#hypervisor
#TEE