IceClave: A Trusted Execution Environment for In-Storage Computing
タイトル: IceClave: A Trusted Execution Environment for In-Storage Computing
著者: Luyi Kang, Yuqi Xue, Weiwei Jia, Xiaohao Wang, Jongryool Kim, Changhwan Youn, Myeong Joon Kang, Hyung Jin Lim, Bruce Jacob, Jian Huang
TL;DR
IceClaveは、In-Storage Computingを採用しているSSDのフラッシュアドレス変換、データアクセス制御、ガベージコレクションなどのフラッシュ管理機能と、In-Storageプログラムとの間のセキュリティ分離をTrustZoneの拡張機能により実現し、様々な攻撃に対するセキュリティを担保
セキュリティ分離を提供しながら、従来のホストベース・コンピューティングより高性能で、最先端のIn-Storage Computing手法と比較してもわずか7.6%の性能オーバーヘッドしかない
本文
In-Storage Computingとは
データ集約型アプリケーションや大規模なデータ処理・分析を高速化するための技術の一つ
フラッシュベースのソリッドステートドライブ(SSD)のようなストレージデバイスに保存されたデータに関する一部の処理をストレージ内部のアクセラレータに任せることでストレージ・演算ユニット間データ転送を減らし,システム全体での性能向上を図る
背景
最新のSSDは、I/Oのボトルネックを解消するためにIn-storage Computingという技術を利用しており、コントローラに複数の汎用組み込みプロセッサと大容量のDRAMを採用しているため、In-Storage Computingを実現することが現実的に可能になっている。また、In-Storage Computing技術を促進するために多くのフレームワークが提案されている。しかし、これらのフレームワークは、性能とプログラマビリティに焦点を当てており、設計と実装においてセキュリティを第一に考えているものはほとんどない。セキュリティ向上のためにTEEの導入が考えられるが、多くのSSDコントローラではTEEがサポートされていない
SSDコントローラにTEEを導入することで様々な攻撃からデータを保護することは可能になるが、SSDはホストからハードウェア的に分離されており、計算機ではなく純粋にストレージとして使用されることを前提に設計されているため、SGXのようなソリューションはホストマシン用の汎用フレームワークとして開発されたため、ストレージ内プログラムに最適な性能を実現することは困難(または、In-Storage Computing用のOSやハイパーバイザーを開発も難しい)
IceClave
最新のSSDコントローラの大半にARMプロセッサが搭載されていることに着目し、TrustZoneの拡張機能によってフラッシュアドレス変換、データアクセス制御、ガベージコレクションなどのフラッシュ管理機能と、In-Storageプログラムとの間のセキュリティ分離を実現
https://gyazo.com/b1018194a01e1818193c59a3f330361e
① 格納プログラムとFTLとの間のセキュリティ分離
② ストレージ内プログラム間のセキュリティ分離
フラッシュの特性とストレージ内のワークロードの特性を考慮して、最新のSSDコントローラとストレージ内プログラム用に設計されている
フラッシュのアドレス変換で発生するコンテキストスイッチのオーバーヘッドを低減する新しいメモリ保護スキーム
ほとんどのストレージ内アプリケーションが読み取り集中型であることを利用して、ストレージ内プログラム用にストレージ内DRAMを保護するための最適化技術
ストレージプロセッサとフラッシュチップ間のデータ転送を保護するための、性能オーバーヘッドとエネルギー消費が少ないストリーム暗号エンジン
ストレージ内TEEのライフサイクルを管理するランタイムシステム
In-Storage Computing能力を変化させても、セキュリティ分離を提供しながら、従来のホストベース・コンピューティングを大幅に上回る
低い性能オーバーヘッドで複数のストレージ内プログラムの同時実行が可能
アーキテクチャ
典型的なFlashベースSSDのアーキテクチャ図
https://gyazo.com/a1c891b89a5aad1df8b6f41bec336d38
IceClaveアーキテクチャ図
https://gyazo.com/bb06c37be5eaaa0c14db6381d3af2125
Protecting Flash Translation Layer
FTLはフラッシュブロックを管理し、ユーザーデータが各フラッシュページにどのようにマッピングされるかを制御を行う。悪意のあるストレージ内プログラムがFTLを制御できないようにIceClave Runtimeが各ストレージ内アプリケーションがSSD内でどのように初期化されるかを管理し、ストレージ内プログラムのアイデンティティなどのメタデータを維持
FTLとIceClaveのランタイムを悪意のあるストレージ内プログラムから保護するためには、SSD内のさまざまなエンティティのメモリ保護を保証する必要がある。それを実現するためにTrustZoneを使用してSecure Worldにこれらを配置してしまうと、インストレージ・アプリケーションのパフォーマンスに大きなオーバーヘッドが発生する。これを解決するために、物理的なメインメモリ空間全体を、通常のメモリ領域、保護されたメモリ領域、TrustZoneを拡張したセキュアなメモリ領域の3つに分割
https://gyazo.com/aa28d81e412c31ff76061aa14a98501b
Access Control for In-Storage Programs
悪意のあるストレージ内プログラムが他のストレージ内プログラムに属するデータのアドレス変換を管理しているマッピングテーブルのエントリを(例えばブルートフォースで)調べることができないようにするためにFTLのアドレスマッピングテーブルを拡張し、各エントリのIDビット(1エントリあたり8バイト)を使用して、各ストレージ内TEEの識別を追跡してストレージ内TEEがマッピングテーブルのエントリにアクセスする許可を持っているかどうかを検証
Securing In-Storage DRAM
SSDのDRAMとフラッシュ・コントローラの間でデータを転送する際、生データ、中間データ、生成結果を含むユーザー・データは実行時に漏洩する可能性があるため、メモリ暗号化と整合性検証を実現
Memory Encryption
最先端の研究では、スプリットカウンタ暗号を使用するケースが多い
Hybrid-Counter Scheme
読み取り専用ページにはメジャーカウンタのみを使用し、書き込み可能なページにはスプリットカウンタ方式を適用
Memory Integrity Verification
各メモリブロックのデータと暗号化カウンタをハッシュ化してMACを生成
メモリにアクセスするたびに、データと暗号化カウンターを使ってMACが再計算され、保存されているMACと比較されるため、データやカウンターに変更があった場合にはそれを検出することが可能
https://gyazo.com/0482d4d2a4ce6b5ea45fdd7c304fe185
IceClave Runtime
TEEのセットアップ、TEEのライフサイクルとメタデータの管理、Secure Worldとの相互作用など、ストレージ内TEEを管理するための必須機能を提供
ホストマシンに展開されたIceClaveライブラリとも相互作用
https://gyazo.com/d4b7cbccd6e9c7978ef8ac4bfc4038fd
ワークフロー
https://gyazo.com/72dd07a681c94a4cc29ecfe8d8529aa7
1. OffloadCode APIを実行し、プログラムをオフロードする
2. IceClave RuntimeはCreateTEE APIを実行し、オフロードされたプログラム用の新しいTEEを作成し、新しく作成したTEEのLPA(論理ページアドレス)のアドレスマッピングテーブルにアクセス許可を設定
3. TEEは、保護されたメモリ領域内のマッピングテーブルから情報を取得
4~6. アクセスされたLPAのマッピング・エントリがSSD DRAMにキャッシュされていない場合、TEEは一時停止してセキュア・ワールドに切り替えられ、FTLが不足しているマッピング・テーブル・ページをロードし、保護されたメモリ領域にキャッシュされたマッピング・テーブルを更新してPPA(物理ページアドレス)をTEEに返す
7. データをホストメモリに返す
8. TEEを終了。TEEを終了させる前に、結果がTEEのメタデータ領域にコピーされ、使用されたリソースが再利用される
性能評価
Performance
Host: SSDからホスト・メモリにデータをロードし、ホスト・プロセッサを使ってデータ・クエリを実行
Host+SGX: SSDからデータをロードした後、Intel SGX内でデータ・クエリを実行
In-Storage Computing (ISC): SSDの高い内部帯域幅を利用できるようにSSDコントローラ内のARMプロセッサでデータクエリを実行
https://gyazo.com/02a08bfa923c5e2cadc0f4726aa08f81
IceClaveはHostとHost+SGXをそれぞれ平均で2.31×、2.38×上回っている
ISC(Security Isolation Enable)を使用しないIn-Storage Computingと比較すると、IceClaveはインストレージTEEで使用されているセキュリティ技術により、7.6%の性能オーバーヘッドが発生
Impact of SSD Bandwidth
フラッシュ・チャネルの数を 4 から 32 に変更することで,SSD の内部帯域幅を変化させた
SSD のパラメータを変更したときの IceClave の性能感度評価。集約された内部 I/O 帯域幅は直線的に増加するが,外部帯域幅は PCIe 帯域幅によって制限される
https://gyazo.com/a17b38b2b2fac2dcd86d908eb219e52f
IceClaveはHostに比べて1.7~5.0倍高速
TPC-Cのような複雑なデータクエリでは、チャネル数を増やすことで、IceClaveの追加オーバーヘッドがわずかに増加(メモリの暗号化と整合性検証のオーバーヘッドが増加するため)
Impact of Data Access Latency
https://gyazo.com/58db9b869d9bed803b8e25c98152071b
外部のPCIe帯域幅がボトルネックとなるホス トベースのコンピューティング手法と比較。IceClave は,アクセスレイテンシが異なるさまざまなSSDデバイスに対してパフォーマンス上のメリット(1.8 ~ 3.2 倍)を提供
参考
PCI-e
「Peripheral Component Interconnect-Express」を略した名称で、高速データ通信がおこなえるシリアル転送方式の拡張インターフェース規格のこと
オフロード
あるシステムの負荷を他の機器などが肩代わりして軽減する仕組み
FTL
https://gyazo.com/d4945d297b4a393225793e3b38bf4ec8
https://gyazo.com/7c119349b310c7e80b896fdc15c29c13