Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TEEとIntel SGX入門

TEEとIntel SGX入門

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

hello31337

June 25, 2020
Tweet

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

  3. 自己紹介
    • 名前:櫻井 碧 (tw:@dd_cliffford)
    • 経歴:
    • 2019年度 未踏スーパークリエータ
    • 2020年3月 早稲田大学大学院 卒業
    • 2020年4月 日本IBM株式会社 入社
    • 趣味:ゲーム、ドライブ、蒙古タンメン中本

    View full-size slide

  4. Trusted Execution Environment (TEE)

    View full-size slide

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

    View full-size slide

  6. ケース①:クラウドサービス
    • 現在普及しているクラウドサービスは、クラウド
    プロバイダを信用する事が出来ない
    • FW等で外界との境界にて防御はしている
    • 境界の内側のセキュリティは「ブラックボックス」
    • 「大企業だから安心」は根拠のない神話
    ユーザ
    悪性のマシンやプロバイダが
    ユーザに送信された情報を
    盗まない保証はない
    クラウド

    View full-size slide

  7. ケース②:著作物配信
    • ビデオや音楽のストリーミング配信等では、
    デジタル著作権保護(DRM)によって
    コンテンツを保護する必要がある
    • いわゆる”割れ厨”ユーザ対策
    • しかし、執念深いユーザはDRMをバラバラに
    して解析し、鍵を取り出して暗号を解き、
    コンテンツを抽出してしまう
    • 根本的に無意味

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. 準同型暗号の現実
    • 結論から述べると、現代のコンピュータは準同型
    暗号に追いついていない
    • 必然的に準同型暗号は現実的ではない
    メリット デメリット
    ハードウェアを
    信頼しなくて良い
    極めて遅い
    厳密な意味での
    完全な保護
    莫大なメモリを
    食い潰す
    耐量子性を持つ 精度に難がある

    View full-size slide

  11. TEE(信頼可能な実行環境)
    • TEEの思想:コンピュータリソースを、信頼可能
    な領域と信頼できない領域に分ける
    • 信頼可能領域でデータを扱う事で、データを
    保護しながらのプログラム実行を可能とする
    • 信頼可能な領域:信頼可能なハードウェア及び
    それによりメモリ上に生成された保護領域
    • 信頼できない領域:それ以外のすべて
    • 脅威モデル次第では、OSやVMMすら非信頼領域
    として扱う

    View full-size slide

  12. TEE(信頼可能な実行環境)
    • より具体的な実例に落とし込むと、信頼可能領域
    はCPU内、CPUによって生成されたRAM上の
    保護領域及びその間の通信路がTEEとなる
    非信頼可能領域
    (Untrusted)
    保護領域 (Trusted)
    RAM
    CPU 信頼可能ハードウェア
    TEE(Trusted)
    REE(Untrusted)
    Trusted Channel
    秘密にしたいデータを
    保護しながら使用し、
    プログラムを実行できる

    View full-size slide

  13. メジャーなTEE技術
    Intel SGX ARM TrustZone
    RISC-V Keystone AMD SEV
    コンピュータ(非モバイル)
    向けTEE技術の中では最有力

    View full-size slide

  14. Intel SGX(Software Guard eXtension)
    • SGX:データを外部攻撃者だけでなくOSや
    VMMからすら秘匿してプログラムを実行
    できるテクノロジ
    Intel CPU
    ハードウェア
    非信頼可能
    領域
    OS
    RAM
    Enclave
    (信頼可能領域)
    Enclave
    生成
    秘密データ
    演算
    CPU内は保護されて
    おり、内部での演算は
    平文であるため高速
    保護チャネル/エリア
    非保護チャネル/エリア
    EnclaveをCPU内のメモリ
    暗号化エンジンで作成

    View full-size slide

  15. MEE(メモリ暗号化エンジン)
    • MEE:Intel製CPU内のUncore部分に組み
    込まれているユニット
    • MEEは、以下の技術の組み合わせにより
    Enclaveを実現する:
    • “Tweaked” 128bit AES/CTR
    • マークル木の複雑な組み合わせ
    • Carter-Wegman式メッセージ認証符号
    • AES暗号ベースである為、実行速度が
    極めて高速

    View full-size slide

  16. Enclave
    • Enclave:MEEによってRAM上に生成される、
    AES暗号ベースの保護領域
    • 実際にデータを格納するEPC(Enclave Page
    Cache)と、その他13の構造体によって構成
    される
    • VA, TCS, SSA, EPCM, etc.
    • EPCのサイズ上限は原則96MB

    View full-size slide

  17. SGX専用のCPU命令
    • Enclaveの操作やアクセス等には、必ずIntel
    CPUによる専用のCPU命令を介さねばならない
    • スーパーバイザ用命令:Enclaveの生成や、EPCの
    ページ操作など
    • ユーザ用命令:Enclaveへの進入・脱出など
    • これらを介さない不正なアクセスの試みを検知
    すると、MEEは即座にマシンの電源を落とす

    View full-size slide

  18. Intel SGXが対策できる脅威モデル
    • 別プロセスによる攻撃、OSやVMMによる攻撃、
    オフチップハードウェアへの攻撃に対応
    • サイドチャネル攻撃への対策が別途必要
    RAM
    Enclave
    別プロセス
    による攻撃
    OS・VMM
    OSに
    よる攻撃
    オフチップ
    ハードウェア攻撃
    オフチップ
    ハードウェア
    メモリ破壊、
    ROP攻撃等
    ルートキット等
    コールドブート攻撃等

    View full-size slide

  19. シーリング/アンシーリング
    • シーリング: Enclave内のデータを、以下の2つの
    内いずれかから導かれる鍵を用いた128bit
    AES/GCMで暗号化し、不揮発性メモリに
    書き出す処理
    • MRENCLAVE: Enclave自体に固有なハッシュ値
    • MRSIGNER: Enclave署名者に固有なハッシュ値
    • アンシーリング: シーリングしたデータを
    Enclaveにロードし復号

    View full-size slide

  20. Architectural Enclave(AE)
    • AE:SGXが内部で使用する、いわば「システム
    用Enclave」
    • PvE:SGX初使用時にマシンをアクティベートし、
    EPIDメンバ秘密鍵をシーリングしてストア
    • QE:PvEのストアした鍵に唯一アクセス権を持つ
    Enclave(PvEは初回以降起動しない)
    • LE:Deprecated
    • PSE:SGXSDK v2.8以降アクセス方法が不明
    • ユーザがこれらに直接アクセスする方法はない

    View full-size slide

  21. 遠隔のSGXマシンを利用したい場合
    • クラウドモデルのSGXアプリケーションなど、
    遠隔のSGXマシン上のEnclaveを使用したい
    ケースが存在する
    • この場合、Enclave自体の正当性に加え、遠隔
    マシン自体のCPUの正当性も検証しなければ
    ならない
    Remote Attestationという機能を利用する

    View full-size slide

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

    View full-size slide

  23. Remote Attestation (RA)
    •RAは基本的には楕円曲線ディフィー・
    ヘルマン鍵共有プロトコル (EC-DHKE)に
    基づいている
    • 楕円曲線暗号という公開鍵暗号の性質を利用し、
    共通鍵を2者で共有出来るようにするプロトコル
    • NIST P-256曲線を使用
    •EC-DHKEに加え、RAはISVのEnclaveとCPU
    の検証を実行する
    • Quote構造体と署名拒絶リスト(SigRL)を使用

    View full-size slide

  24. 楕円曲線離散対数問題 (EC-DLP) (1/2)
    •楕円曲線上の加算を次のように定義:
    Q
    R
    -(Q+R)
    Q+R
    Q -2Q
    2Q
    G G
    ↑EC-DLPではこれを使用する

    View full-size slide

  25. 楕円曲線暗号のパラメータ
    • 次の通りパラメータを定義:
    : 使用する楕円曲線
    : ベースポイント (楕円曲線上の加算を適用
    する基準点)
    : に楕円曲線上の加算を適用する回数
    :

    View full-size slide

  26. 楕円曲線離散対数問題 (EC-DLP) (2/2)
    •この例では…
    nQ/2
    -nQ
    nQ
    G
    • 楕円曲線:
    ベースポイント:
    加算回数:
    :
    • を , , から導出する
    のは容易
    • を , , から導出する
    のは非常に困難
    (NP困難)

    View full-size slide

  27. EC-DHKE (1/2)
    • RAのベースであるEC-DHKEはEC-DLPを
    安全性の根拠としている
    • 前提条件: , (楕円曲線, ベースポイント)
    • 公開鍵: (=)
    • 秘密鍵: (加算回数)

    View full-size slide

  28. EC-DHKE (2/2)
    •前提条件: 楕円曲線, ベースポイント
    SP ISV
    (
    ,
    )


    ①上で
    =
    なるキーペア
    (
    ,
    )を生成
    ②ISVの公開鍵
    を送信
    ③SPの公開鍵
    を送信


    ④SPは

    , ISVは

    を生成
    但し

    =

    =

    (
    ,
    )

    View full-size slide

  29. RAのプロトコル概観
    SP ISV

    ,
    を生成
    ⑦共有秘密

    を生成
    ③公開鍵
    とCPU情報を送信
    ⑧公開鍵
    とSigRL及び
    その他を送信

    ,
    を生成
    IAS
    ①RA開始要求
    ④ISVのCPU情報を
    転送
    ⑤SigRLをリターン
    ⑨SigRLを検証
    ⑩共有秘密

    を導出
    ⑪quoteを送信
    ⑫quoteを転送
    ⑬アテステーション
    ステータスを返信
    ⑭RAの受理・拒絶
    の判定結果を送信

    View full-size slide

  30. まとめ
    • 現代のコンピュータリソースで、データを保護
    しながらの実用的なプログラム実行を可能に
    する技術として、TEEが有望
    • TEEの中でも最も実用的な技術がIntel SGX
    • SGXは高い特権の実体からもデータを保護
    できるだけでなく、補助記憶装置への暗号化
    してのストアや遠隔認証も可能

    View full-size slide

  31. 免責事項
    本発表・スライドにおいて述べた内容や意見は
    全て個人によるものであり、所属会社の見解や
    意見その他を代表するものではございません。

    View full-size slide

  32. 参考リンク
    [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)

    View full-size slide