TEEとIntel SGX入門

TEEとIntel SGX入門

TEEとその実例であるIntel SGXについての簡単な解説を行います。

876877f6b969869dabecde31f925c2ad?s=128

hello31337

June 25, 2020
Tweet

Transcript

  1. TEEとIntel SGX入門 日本IBM株式会社 櫻井 碧 2020/6/25 blockchain.tokyo Online #4

  2. 目次 • 自己紹介 • データセキュリティとTEE • Intel SGX • SGXの基本

    • シーリング • Remote Attestation
  3. 自己紹介 • 名前:櫻井 碧 (tw:@dd_cliffford) • 経歴: • 2019年度 未踏スーパークリエータ

    • 2020年3月 早稲田大学大学院 卒業 • 2020年4月 日本IBM株式会社 入社 • 趣味:ゲーム、ドライブ、蒙古タンメン中本
  4. Trusted Execution Environment (TEE)

  5. 「人間を信用してはいけない」 • この世には、明らかに信用ならないのに世間に 受け入れられてしまっているシステムが 多数存在する • この事実は、特に機密性の高いデータを扱う場合 に大きな問題となる • 医療情報

    • 生体情報 • 機微な個人情報 • クレジットカード番号 • etc.
  6. ケース①:クラウドサービス • 現在普及しているクラウドサービスは、クラウド プロバイダを信用する事が出来ない • FW等で外界との境界にて防御はしている • 境界の内側のセキュリティは「ブラックボックス」 • 「大企業だから安心」は根拠のない神話

    ユーザ 悪性のマシンやプロバイダが ユーザに送信された情報を 盗まない保証はない クラウド
  7. ケース②:著作物配信 • ビデオや音楽のストリーミング配信等では、 デジタル著作権保護(DRM)によって コンテンツを保護する必要がある • いわゆる”割れ厨”ユーザ対策 • しかし、執念深いユーザはDRMをバラバラに して解析し、鍵を取り出して暗号を解き、

    コンテンツを抽出してしまう • 根本的に無意味
  8. データセキュリティに必要な根本的な思想 • 大原則は、「人間の善意や人間自体の信頼性には 頼らず、暗号学的・数理的に絶対的な安全性を 保証する事」 • データが保護されていなければならない全ての フェーズで、絶対的にデータが保護された状態で 処理を進めれば良い

  9. 準同型暗号を使う? • 従来手法でこの要件を満たす技術として 有名なのは「準同型暗号」 • 暗号文の状態で足し算や掛け算が出来る種類の 暗号 1 + 4

    = (5) 復号 5 暗号化 暗号化 1 4
  10. 準同型暗号の現実 • 結論から述べると、現代のコンピュータは準同型 暗号に追いついていない • 必然的に準同型暗号は現実的ではない メリット デメリット ハードウェアを 信頼しなくて良い

    極めて遅い 厳密な意味での 完全な保護 莫大なメモリを 食い潰す 耐量子性を持つ 精度に難がある
  11. TEE(信頼可能な実行環境) • TEEの思想:コンピュータリソースを、信頼可能 な領域と信頼できない領域に分ける • 信頼可能領域でデータを扱う事で、データを 保護しながらのプログラム実行を可能とする • 信頼可能な領域:信頼可能なハードウェア及び それによりメモリ上に生成された保護領域

    • 信頼できない領域:それ以外のすべて • 脅威モデル次第では、OSやVMMすら非信頼領域 として扱う
  12. TEE(信頼可能な実行環境) • より具体的な実例に落とし込むと、信頼可能領域 はCPU内、CPUによって生成されたRAM上の 保護領域及びその間の通信路がTEEとなる 非信頼可能領域 (Untrusted) 保護領域 (Trusted) RAM

    CPU 信頼可能ハードウェア TEE(Trusted) REE(Untrusted) Trusted Channel 秘密にしたいデータを 保護しながら使用し、 プログラムを実行できる
  13. メジャーなTEE技術 Intel SGX ARM TrustZone RISC-V Keystone AMD SEV コンピュータ(非モバイル)

    向けTEE技術の中では最有力
  14. Intel SGX

  15. Intel SGX(Software Guard eXtension) • SGX:データを外部攻撃者だけでなくOSや VMMからすら秘匿してプログラムを実行 できるテクノロジ Intel CPU

    ハードウェア 非信頼可能 領域 OS RAM Enclave (信頼可能領域) Enclave 生成 秘密データ 演算 CPU内は保護されて おり、内部での演算は 平文であるため高速 保護チャネル/エリア 非保護チャネル/エリア EnclaveをCPU内のメモリ 暗号化エンジンで作成
  16. MEE(メモリ暗号化エンジン) • MEE:Intel製CPU内のUncore部分に組み 込まれているユニット • MEEは、以下の技術の組み合わせにより Enclaveを実現する: • “Tweaked” 128bit

    AES/CTR • マークル木の複雑な組み合わせ • Carter-Wegman式メッセージ認証符号 • AES暗号ベースである為、実行速度が 極めて高速
  17. Enclave • Enclave:MEEによってRAM上に生成される、 AES暗号ベースの保護領域 • 実際にデータを格納するEPC(Enclave Page Cache)と、その他13の構造体によって構成 される •

    VA, TCS, SSA, EPCM, etc. • EPCのサイズ上限は原則96MB
  18. SGX専用のCPU命令 • Enclaveの操作やアクセス等には、必ずIntel CPUによる専用のCPU命令を介さねばならない • スーパーバイザ用命令:Enclaveの生成や、EPCの ページ操作など • ユーザ用命令:Enclaveへの進入・脱出など •

    これらを介さない不正なアクセスの試みを検知 すると、MEEは即座にマシンの電源を落とす
  19. Intel SGXが対策できる脅威モデル • 別プロセスによる攻撃、OSやVMMによる攻撃、 オフチップハードウェアへの攻撃に対応 • サイドチャネル攻撃への対策が別途必要 RAM Enclave 別プロセス

    による攻撃 OS・VMM OSに よる攻撃 オフチップ ハードウェア攻撃 オフチップ ハードウェア メモリ破壊、 ROP攻撃等 ルートキット等 コールドブート攻撃等
  20. シーリング/アンシーリング • シーリング: Enclave内のデータを、以下の2つの 内いずれかから導かれる鍵を用いた128bit AES/GCMで暗号化し、不揮発性メモリに 書き出す処理 • MRENCLAVE: Enclave自体に固有なハッシュ値

    • MRSIGNER: Enclave署名者に固有なハッシュ値 • アンシーリング: シーリングしたデータを Enclaveにロードし復号
  21. Architectural Enclave(AE) • AE:SGXが内部で使用する、いわば「システム 用Enclave」 • PvE:SGX初使用時にマシンをアクティベートし、 EPIDメンバ秘密鍵をシーリングしてストア • QE:PvEのストアした鍵に唯一アクセス権を持つ

    Enclave(PvEは初回以降起動しない) • LE:Deprecated • PSE:SGXSDK v2.8以降アクセス方法が不明 • ユーザがこれらに直接アクセスする方法はない
  22. 遠隔のSGXマシンを利用したい場合 • クラウドモデルのSGXアプリケーションなど、 遠隔のSGXマシン上のEnclaveを使用したい ケースが存在する • この場合、Enclave自体の正当性に加え、遠隔 マシン自体のCPUの正当性も検証しなければ ならない Remote

    Attestationという機能を利用する
  23. Remote Attestation (RA) •RAは実装は非常に面倒臭いが、その根源的な 目的自体は単純である: [ISV・SP] RA後のTLS通信用のセッション鍵を 交換する [SP] ISVのCPUとEnclaveの完全性を検証する

    ※ISV:SGXマシン、SP:非SGXマシン
  24. Remote Attestation (RA) •RAは基本的には楕円曲線ディフィー・ ヘルマン鍵共有プロトコル (EC-DHKE)に 基づいている • 楕円曲線暗号という公開鍵暗号の性質を利用し、 共通鍵を2者で共有出来るようにするプロトコル

    • NIST P-256曲線を使用 •EC-DHKEに加え、RAはISVのEnclaveとCPU の検証を実行する • Quote構造体と署名拒絶リスト(SigRL)を使用
  25. 楕円曲線離散対数問題 (EC-DLP) (1/2) •楕円曲線上の加算を次のように定義: Q R -(Q+R) Q+R Q -2Q

    2Q G G ↑EC-DLPではこれを使用する
  26. 楕円曲線暗号のパラメータ • 次の通りパラメータを定義: : 使用する楕円曲線 : ベースポイント (楕円曲線上の加算を適用 する基準点) :

    に楕円曲線上の加算を適用する回数 :
  27. 楕円曲線離散対数問題 (EC-DLP) (2/2) •この例では… nQ/2 -nQ nQ G • 楕円曲線:

    ベースポイント: 加算回数: : • を , , から導出する のは容易 • を , , から導出する のは非常に困難 (NP困難)
  28. EC-DHKE (1/2) • RAのベースであるEC-DHKEはEC-DLPを 安全性の根拠としている • 前提条件: , (楕円曲線, ベースポイント)

    • 公開鍵: (=) • 秘密鍵: (加算回数)
  29. EC-DHKE (2/2) •前提条件: 楕円曲線, ベースポイント SP ISV ( , )

    ①上で = なるキーペア ( , )を生成 ②ISVの公開鍵 を送信 ③SPの公開鍵 を送信 ④SPは , ISVは を生成 但し = = ( , )
  30. RAのプロトコル概観 SP ISV ⑥ , を生成 ⑦共有秘密 を生成 ③公開鍵 とCPU情報を送信

    ⑧公開鍵 とSigRL及び その他を送信 ② , を生成 IAS ①RA開始要求 ④ISVのCPU情報を 転送 ⑤SigRLをリターン ⑨SigRLを検証 ⑩共有秘密 を導出 ⑪quoteを送信 ⑫quoteを転送 ⑬アテステーション ステータスを返信 ⑭RAの受理・拒絶 の判定結果を送信
  31. まとめ • 現代のコンピュータリソースで、データを保護 しながらの実用的なプログラム実行を可能に する技術として、TEEが有望 • TEEの中でも最も実用的な技術がIntel SGX • SGXは高い特権の実体からもデータを保護

    できるだけでなく、補助記憶装置への暗号化 してのストアや遠隔認証も可能
  32. 免責事項 本発表・スライドにおいて述べた内容や意見は 全て個人によるものであり、所属会社の見解や 意見その他を代表するものではございません。

  33. 参考リンク [1] Intel SGX入門 - SGX基礎知識編 (https://qiita.com/Cliffford/items/2f155f40 a1c3eec288cf) [2] Intel

    SGX入門 - SGXプログラミング編 (https://qiita.com/Cliffford/items/c6c0c696 d4cc6d60d515) [3] BI-SGX : Bioinformatic Interpreter on SGX-based Secure Computing Cloud (https://bi-sgx.net)