Confidential Computing for OpenPOWER
タイトル: Confidential Computing for OpenPOWER
著者: Guerney D. H. Hunt, Ramachandra Pai, Michael V. Le, Hani Jamjoom, Sukadev Bhattiprolu, Rick Boivie, Laurent Dufour†, Brad Frey, Mohit Kapur, Kenneth A. Goldman, Ryan Grimm, Janani Janakirman, John M. Ludden†, Paul Mackerras†, Cathy May, Elaine R. Palmer, Bharata Bhasker Rao, Lawrence Roy, William A. Starke, Jeff Stuecheli,Enriquillo Valdez, Wendel Voigt
EuroSys ’21, April 26–28, 2021, Online, United Kingdom
TL;DR
Power ISA上のConfidential Computingを実現するためのPOWER9から導入されたPEFの紹介
PEFはセキュアな仮想マシン(SVM)が利用可能にし、Ultravisorを用いてセキュリティ上の重要な機能を排他的に制御することでTEEを実現
また、PEFとUltravisor、既存のセキュリティコンポーネントを組み合わせることでConfidential Computingも実現可能
本文
背景
Confidential Computingはクラウド上で処理されるデータをリアルタイムで暗号化することで機密性を保護する技術で、データ処理過程で安全なコンピューティング空間を提供し、データを外部からの攻撃や漏洩などの潜在的な脅威から保護する。具体的にはConfidential ComputingはOSやHypervisorが管理する領域とは別の新たな特権領域(TEE)を作り、クラウド利用者がアプリケーションやデータを基盤となるインフラストラクチャの管理者に公開することなく重要なアプリケーションを実行できるようにする。このような仕組みで規制されている産業(金融やヘルスケア)におけるクラウドコンピューティングの導入を妨げる重大な問題を解決する。TEEにはIntel Secure Guard Extensions(SGX)、AMD Secure Encrypted Virtualization(SEV)、ARM TrustZone、IBM Z Secure Executionなどいくつかの種類があるが、既存のTEEにはいくつか課題がある。
サーバクラスのプロセッサにおける分離と機密性のバランス
分離と機密性を両立させているためTEEの使用はコストのかかる作業になる可能性がある
全てのTEEは暗号アルゴリズムを再利用しており、TEEの実装は多くの新しいセキュリティコンポーネントの導入に依存
TEEはクラウド展開において仮想マシンとプロセスの両方のライフサイクル管理をしないといけない
nrryuya.icon > とは
PEF
Protected Execution Facility
POWER9から導入された仮想マシン(SVM)を有効にしてくれる機能
cipepser.icon IBM ZシリーズとかもPOWER9なのかな?:chimpan:
jkcomment.icon 違うみたいです:chimpan:
SVMをHypervisor、特権ユーザー、システム内の他のVMから保護
許可されたマシンでのみ実行可能
この機能を有効にするとUltravisorと呼ばれるハードウェアによるアクセス制御と管理が可能なモードが使用可能になる。
Ultravisorは、SVMとHypervisor間のコールをフィルタリングし、情報漏洩を防止
Hypervisorより多くの権限をもち、セキュリティ上の重要な機能を排他的に制御することで従来の仮想化環境よりも小さな(TCB)を作成できる
https://gyazo.com/a35adda83d27273e4d53ce6bf5be648b
Ultravisor状態でアクセス制御を行うことでhypervisorと全てのNVMをSVMから保護するだけでなく、各SVMを他のSVM、NVM、hypervisorから保護することができる
cipepser.icon NVMはSecureじゃないVM?
jkcomment.icon ですです(通常の仮想マシン)
Hypervisorは、その直下で実行される全てのプロセスと、PEFを利用しない全てのVMとともNormal Memoryの1つのセキュリティドメインに入る。一方、SVMの場合、それぞれSecure Memory内の独自のセキュリティドメインに入る。つまり、通常の状態で実行されているコードがセキュアなメモリにアクセスできないすることでアクセス制御を実現
https://gyazo.com/e59d1664d3652eb74905d861b70d52f9
NVMはNormal Memoryを、SVMはSecure Memoryを使う
NVMとSVMが共存していて、各VMとやりとりするには異なるレイヤーからの実行が必要
NVM内のデータやNormal Memoryにアクセスする際はHypervisor経由でHypercallを実行
SVM内のデータやSecure Memoryにアクセスする際は必ずUltravisor経由でUltracallを実行
NVMからSVMのデータが必要な時は、UltracallでSVMからデータを取得
jkcomment.icon SGXにおけるECall/Ocallみたいな感じだなー
割り込みの際に状態が漏れることによるサイドチャネルを防止するために、UltravisorはHypercallのためにSVMの状態を全て保存
SVM
Secure Virtual Machines
PEFが有効な場合のみ利用可能
Secure Memoryを利用
Ultraviorのみアクセス可能
SVMはNVMから昇格する形
NVMに関連する全てのメモリがSecure Memoryにコピー -> NVM検証
remote attestationはない(local attestationのみ)
Guestカーネルとhyperviorの間で発生しうるside channel攻撃を防ぐために一部バウンスバッファーを導入
デザイン
プロセスとOSのIFよりもVMとHyperviorのIFの方が安全性を確保しやすいという研究結果が多く、VMとHypervisorでTEEを実現することでTEEのコストが下がり、さらに仮想マシンとプロセスの両方のライフサイクル管理が簡素化になる
PEF、Protected Execution Ultravisor(Ultravisor)、TPM(Trusted Platform Module)、Secure boot、HSM(Hardware Security Module)などを組み合わせることでConfidetial Computingを実現
既存のセキュリティコンポーネントを最大限に利用
すべてのTEEは、分離性、機密性および完全性の保護を提供しており、PEFもハードウェアで強化されたアクセス制御により分離性を実施し、暗号技術により機密性と完全性を確保する
PEFはハードウェアとファームウェアの間でTEEを分割することで既存のセキュリティコンポーネントを最大限に活用し、またローカル認証を行うことでSVMのライフサイクル管理を簡素化する
FirmwareとSVMの整合性検証
SVMを安全に起動するためには対象となるプラットフォーム、SVMがそのプラットフォーム上で起動されることが承認されていること、SVMの安全性が検証されていることが必要
jkcomment.icon プラットフォームは何を指すんだろう?OS? Confidential Computing?
TPMとESM operandを用いてプラットフォーム、Local Attestation、ハードウェアの検証を行う
https://gyazo.com/7e14b94ee18e17133b506d9c22dad9e0
プラットフォーム検証(Confidential Computing)
Lock boxへのアクセス可能か
Lock boxは許可されたマシンの公開鍵で暗号化されたものをラップしたもの
Symmetric seedは対称鍵とHMAC鍵を生成するためのもの
システム上にLock Boxが存在しない場合、SVMはそのシステムでの実行不可
ハードウェアまたはファームウェアが正しい状態であるか
TPMを用いてLock BoxからSymmetric seedを抽出
抽出できない場合、ハードウェアまたはファームウェアの構成に問題あり
ハードウェアの状態はTPM platform configuration register(PCR)6の値によって確認可能
Local Attestation
(UltravisorがSymmetric seedにアクセス可能な場合)HMAC鍵と対称鍵を生成 -> HMAC鍵を用いてPayload blockの整合性をチェック -> 対称鍵を用いて整合性情報を抽出し、カーネル、カーネルコマンドライン、Initramfs、RTASの整合性を検証 -> NVMはSVMとして実行
SVMを作成するツールにはTPMストレージキーの公開鍵、ポリシー、PCR 6が必要
PCR 6は、セキュアブート検証コード、ハードウェアキーハッシュ、セキュアブートの有効化、PEF有効化
ハードウェア状態の検証
システム上のファームウェアが有効であるか
Secure Bootを用いてハードウェアキーハッシュを検証
ハードウェアキーハッシュ is ファームウェアの署名に使用される公開鍵のハッシュ
システムのファームウェアが署名されていることを保証
検証結果が正しい場合、ハードウェアキーハッシュをPCR 6に入れる
https://gyazo.com/56106b145a0e36eabc50e83fd5901f91
SB verification codeはロードされたファームウェアの署名検証に利用
Symmetric seedとPCR6の値が一致しないとTPMはAnsealできず、秘密鍵が使用できない
デプロイ
TEEに関連する必要なものや鍵管理はHSM(Hardware Security Module)を利用
https://gyazo.com/d4383c517c9c5f08fd6aec22cd4dde2b
(S0) SVMの実行を要求
(S1) オーケストレータがターゲットマシンを選択
(S2) オーケストレータがHSMにターゲットの検証を依頼
(S3) HSMがターゲットシステムに情報(プラットフォーム証明書、ストレージキー構造、HWキーハッシュ)を要求、(S3a) HSMがベンダーにマシンを検証
(S4) HSMがオーケストレータにLock Boxを送信
(S5) オーケストレータが選択されたSVMを取得してロックボックスを挿入
(S6) オーケストレータがターゲットシステムにSVMをディスパッチ
osuke.icon >https://gyazo.com/0901e5f91ea12db8821c739d07c66e2c
評価
環境
CPU: IBM POWER9(2 sockets)
1socketあたり20個の物理コア
1coreあたり4個のハードウェアスレッド
Memory: 128GB(Numa Architecture)
Numa、メモリ共有するとき暗号化されてない?暗号化してるならパフォーマンス的に厳しい気がするが...
When PEF is enabled, 64GB of RAM is reserved for secure memory.
jkcomment.icon ん?
OS: Fedora32
CPU・メモリ性能評価(SPEC CPU2017ベンチマーク)
https://gyazo.com/ff7b356b38e012ed74410af6fbe80f6a
大きな性能差はない
SVMがメモリ内のデータを保護するための暗号化を行なっていない
このような形式の暗号化はメモリアクセスがシーケンシャルでない場合、性能低下を引き起こすため
ネットワークパフォーマンス評価
https://gyazo.com/a66b97e719c3406e4c701b55ea48e176
メッセージサイズが小さい場合は性能低下
SVMのIOパスで使用されるバウンスバッファのオーバーヘッド
SVMとホストかんのコンテキストスイチングのコスト
メッセージサイズが大きくなるにれて徐々に性能が向上
コンテキストスイッチ数の減少
起動時間
https://gyazo.com/78fee30c1db14b369b6bda5f08f60f2f
サイズが大きくなるほど機能時間が長くなる
NVMからSVMへの切り替え時にブートブロセスの初期に行われるメモリコピーが原因
Secure Pageを予約するためにホストカーネル内でメタデータを作成する際に余分な作業が発生
作業量はVMのメモリサイズに比例
jkcomment.icon 余分な作業とは
Appendix
Confidential Computing
クラウド上で処理されるデータをリアルタイムで暗号化することで機密性を保護する技術。データ処理過程で安全なコンピューティング空間を提供し、データを外部からの攻撃や漏洩などの潜在的な脅威から保護する。
POWER ISA
IBM POWER instruction set architecture
IBMによって開発された命令セットアーキテクチャ
最近オープンソース化になった
POWER9チップ
ハイエンドサーバや組み込みデバイスで主に使用されている
OpenPOWER Foundation
Linux Foundationの一部
ESM
External Security Manager
TPM
Trusted Platofrm Module
TPM API
アプリケーションと信頼されていないパスを通してTPMと通信することを可能にするセキュアチャネルをサポート
セキュアチャネル is ?
パラメータの暗号化
コマンドとresponseの両方に対する整合性MAC、および再生防止機能をサポート
Lock box
SVM所有者はTPMストレージキーを認証する必要がある。
PCR6
TPM Platform Configuration Register6
バウンスバッファー
参考