Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
TEEとIntel SGX入門 日本IBM株式会社 櫻井 碧 2020/6/25 blockchain.tokyo Online #4
Slide 2
Slide 2 text
目次 • 自己紹介 • データセキュリティとTEE • Intel SGX • SGXの基本 • シーリング • Remote Attestation
Slide 3
Slide 3 text
自己紹介 • 名前:櫻井 碧 (tw:@dd_cliffford) • 経歴: • 2019年度 未踏スーパークリエータ • 2020年3月 早稲田大学大学院 卒業 • 2020年4月 日本IBM株式会社 入社 • 趣味:ゲーム、ドライブ、蒙古タンメン中本
Slide 4
Slide 4 text
Trusted Execution Environment (TEE)
Slide 5
Slide 5 text
「人間を信用してはいけない」 • この世には、明らかに信用ならないのに世間に 受け入れられてしまっているシステムが 多数存在する • この事実は、特に機密性の高いデータを扱う場合 に大きな問題となる • 医療情報 • 生体情報 • 機微な個人情報 • クレジットカード番号 • etc.
Slide 6
Slide 6 text
ケース①:クラウドサービス • 現在普及しているクラウドサービスは、クラウド プロバイダを信用する事が出来ない • FW等で外界との境界にて防御はしている • 境界の内側のセキュリティは「ブラックボックス」 • 「大企業だから安心」は根拠のない神話 ユーザ 悪性のマシンやプロバイダが ユーザに送信された情報を 盗まない保証はない クラウド
Slide 7
Slide 7 text
ケース②:著作物配信 • ビデオや音楽のストリーミング配信等では、 デジタル著作権保護(DRM)によって コンテンツを保護する必要がある • いわゆる”割れ厨”ユーザ対策 • しかし、執念深いユーザはDRMをバラバラに して解析し、鍵を取り出して暗号を解き、 コンテンツを抽出してしまう • 根本的に無意味
Slide 8
Slide 8 text
データセキュリティに必要な根本的な思想 • 大原則は、「人間の善意や人間自体の信頼性には 頼らず、暗号学的・数理的に絶対的な安全性を 保証する事」 • データが保護されていなければならない全ての フェーズで、絶対的にデータが保護された状態で 処理を進めれば良い
Slide 9
Slide 9 text
準同型暗号を使う? • 従来手法でこの要件を満たす技術として 有名なのは「準同型暗号」 • 暗号文の状態で足し算や掛け算が出来る種類の 暗号 1 + 4 = (5) 復号 5 暗号化 暗号化 1 4
Slide 10
Slide 10 text
準同型暗号の現実 • 結論から述べると、現代のコンピュータは準同型 暗号に追いついていない • 必然的に準同型暗号は現実的ではない メリット デメリット ハードウェアを 信頼しなくて良い 極めて遅い 厳密な意味での 完全な保護 莫大なメモリを 食い潰す 耐量子性を持つ 精度に難がある
Slide 11
Slide 11 text
TEE(信頼可能な実行環境) • TEEの思想:コンピュータリソースを、信頼可能 な領域と信頼できない領域に分ける • 信頼可能領域でデータを扱う事で、データを 保護しながらのプログラム実行を可能とする • 信頼可能な領域:信頼可能なハードウェア及び それによりメモリ上に生成された保護領域 • 信頼できない領域:それ以外のすべて • 脅威モデル次第では、OSやVMMすら非信頼領域 として扱う
Slide 12
Slide 12 text
TEE(信頼可能な実行環境) • より具体的な実例に落とし込むと、信頼可能領域 はCPU内、CPUによって生成されたRAM上の 保護領域及びその間の通信路がTEEとなる 非信頼可能領域 (Untrusted) 保護領域 (Trusted) RAM CPU 信頼可能ハードウェア TEE(Trusted) REE(Untrusted) Trusted Channel 秘密にしたいデータを 保護しながら使用し、 プログラムを実行できる
Slide 13
Slide 13 text
メジャーなTEE技術 Intel SGX ARM TrustZone RISC-V Keystone AMD SEV コンピュータ(非モバイル) 向けTEE技術の中では最有力
Slide 14
Slide 14 text
Intel SGX
Slide 15
Slide 15 text
Intel SGX(Software Guard eXtension) • SGX:データを外部攻撃者だけでなくOSや VMMからすら秘匿してプログラムを実行 できるテクノロジ Intel CPU ハードウェア 非信頼可能 領域 OS RAM Enclave (信頼可能領域) Enclave 生成 秘密データ 演算 CPU内は保護されて おり、内部での演算は 平文であるため高速 保護チャネル/エリア 非保護チャネル/エリア EnclaveをCPU内のメモリ 暗号化エンジンで作成
Slide 16
Slide 16 text
MEE(メモリ暗号化エンジン) • MEE:Intel製CPU内のUncore部分に組み 込まれているユニット • MEEは、以下の技術の組み合わせにより Enclaveを実現する: • “Tweaked” 128bit AES/CTR • マークル木の複雑な組み合わせ • Carter-Wegman式メッセージ認証符号 • AES暗号ベースである為、実行速度が 極めて高速
Slide 17
Slide 17 text
Enclave • Enclave:MEEによってRAM上に生成される、 AES暗号ベースの保護領域 • 実際にデータを格納するEPC(Enclave Page Cache)と、その他13の構造体によって構成 される • VA, TCS, SSA, EPCM, etc. • EPCのサイズ上限は原則96MB
Slide 18
Slide 18 text
SGX専用のCPU命令 • Enclaveの操作やアクセス等には、必ずIntel CPUによる専用のCPU命令を介さねばならない • スーパーバイザ用命令:Enclaveの生成や、EPCの ページ操作など • ユーザ用命令:Enclaveへの進入・脱出など • これらを介さない不正なアクセスの試みを検知 すると、MEEは即座にマシンの電源を落とす
Slide 19
Slide 19 text
Intel SGXが対策できる脅威モデル • 別プロセスによる攻撃、OSやVMMによる攻撃、 オフチップハードウェアへの攻撃に対応 • サイドチャネル攻撃への対策が別途必要 RAM Enclave 別プロセス による攻撃 OS・VMM OSに よる攻撃 オフチップ ハードウェア攻撃 オフチップ ハードウェア メモリ破壊、 ROP攻撃等 ルートキット等 コールドブート攻撃等
Slide 20
Slide 20 text
シーリング/アンシーリング • シーリング: Enclave内のデータを、以下の2つの 内いずれかから導かれる鍵を用いた128bit AES/GCMで暗号化し、不揮発性メモリに 書き出す処理 • MRENCLAVE: Enclave自体に固有なハッシュ値 • MRSIGNER: Enclave署名者に固有なハッシュ値 • アンシーリング: シーリングしたデータを Enclaveにロードし復号
Slide 21
Slide 21 text
Architectural Enclave(AE) • AE:SGXが内部で使用する、いわば「システム 用Enclave」 • PvE:SGX初使用時にマシンをアクティベートし、 EPIDメンバ秘密鍵をシーリングしてストア • QE:PvEのストアした鍵に唯一アクセス権を持つ Enclave(PvEは初回以降起動しない) • LE:Deprecated • PSE:SGXSDK v2.8以降アクセス方法が不明 • ユーザがこれらに直接アクセスする方法はない
Slide 22
Slide 22 text
遠隔のSGXマシンを利用したい場合 • クラウドモデルのSGXアプリケーションなど、 遠隔のSGXマシン上のEnclaveを使用したい ケースが存在する • この場合、Enclave自体の正当性に加え、遠隔 マシン自体のCPUの正当性も検証しなければ ならない Remote Attestationという機能を利用する
Slide 23
Slide 23 text
Remote Attestation (RA) •RAは実装は非常に面倒臭いが、その根源的な 目的自体は単純である: [ISV・SP] RA後のTLS通信用のセッション鍵を 交換する [SP] ISVのCPUとEnclaveの完全性を検証する ※ISV:SGXマシン、SP:非SGXマシン
Slide 24
Slide 24 text
Remote Attestation (RA) •RAは基本的には楕円曲線ディフィー・ ヘルマン鍵共有プロトコル (EC-DHKE)に 基づいている • 楕円曲線暗号という公開鍵暗号の性質を利用し、 共通鍵を2者で共有出来るようにするプロトコル • NIST P-256曲線を使用 •EC-DHKEに加え、RAはISVのEnclaveとCPU の検証を実行する • Quote構造体と署名拒絶リスト(SigRL)を使用
Slide 25
Slide 25 text
楕円曲線離散対数問題 (EC-DLP) (1/2) •楕円曲線上の加算を次のように定義: Q R -(Q+R) Q+R Q -2Q 2Q G G ↑EC-DLPではこれを使用する
Slide 26
Slide 26 text
楕円曲線暗号のパラメータ • 次の通りパラメータを定義: : 使用する楕円曲線 : ベースポイント (楕円曲線上の加算を適用 する基準点) : に楕円曲線上の加算を適用する回数 :
Slide 27
Slide 27 text
楕円曲線離散対数問題 (EC-DLP) (2/2) •この例では… nQ/2 -nQ nQ G • 楕円曲線: ベースポイント: 加算回数: : • を , , から導出する のは容易 • を , , から導出する のは非常に困難 (NP困難)
Slide 28
Slide 28 text
EC-DHKE (1/2) • RAのベースであるEC-DHKEはEC-DLPを 安全性の根拠としている • 前提条件: , (楕円曲線, ベースポイント) • 公開鍵: (=) • 秘密鍵: (加算回数)
Slide 29
Slide 29 text
EC-DHKE (2/2) •前提条件: 楕円曲線, ベースポイント SP ISV ( , ) ①上で = なるキーペア ( , )を生成 ②ISVの公開鍵 を送信 ③SPの公開鍵 を送信 ④SPは , ISVは を生成 但し = = ( , )
Slide 30
Slide 30 text
RAのプロトコル概観 SP ISV ⑥ , を生成 ⑦共有秘密 を生成 ③公開鍵 とCPU情報を送信 ⑧公開鍵 とSigRL及び その他を送信 ② , を生成 IAS ①RA開始要求 ④ISVのCPU情報を 転送 ⑤SigRLをリターン ⑨SigRLを検証 ⑩共有秘密 を導出 ⑪quoteを送信 ⑫quoteを転送 ⑬アテステーション ステータスを返信 ⑭RAの受理・拒絶 の判定結果を送信
Slide 31
Slide 31 text
まとめ • 現代のコンピュータリソースで、データを保護 しながらの実用的なプログラム実行を可能に する技術として、TEEが有望 • TEEの中でも最も実用的な技術がIntel SGX • SGXは高い特権の実体からもデータを保護 できるだけでなく、補助記憶装置への暗号化 してのストアや遠隔認証も可能
Slide 32
Slide 32 text
免責事項 本発表・スライドにおいて述べた内容や意見は 全て個人によるものであり、所属会社の見解や 意見その他を代表するものではございません。
Slide 33
Slide 33 text
参考リンク [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)