Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
TEEとIntel SGX入門
Search
hello31337
June 25, 2020
Technology
3
3.1k
TEEとIntel SGX入門
TEEとその実例であるIntel SGXについての簡単な解説を行います。
hello31337
June 25, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
LLMの開発と社会実装の今と未来 / AI Builders' Community (ABC) vol.2
pfn
PRO
2
160
Part1 GitHubってなんだろう?その2
tomokusaba
2
790
DynamoDB のデータを QuickSight で可視化する際につまづいたこと/stumbling-blocks-when-visualising-dynamodb-with-quicksight
emiki
0
160
Docker Compose で手軽に手元環境を実現する / Simplifying Local Environments with Docker Compose #CinemaDeLT
nabeo
0
200
使えるデータ基盤を作る技術選定の秘訣 / selecting-the-right-data-technology
pei0804
9
1.4k
dbtとリバースETLでデータ連携の複雑さに立ち向かう
morookacube
0
890
大規模サーバーレスプロジェクトのリアルな零れ話
maimyyym
3
230
2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda INIT phase billing changes
quiver
1
1.1k
Cursorを全エンジニアに配布 その先に見据えるAI駆動開発の未来 / 2025-05-13-forkwell-ai-study-1-cursor-at-loglass
itohiro73
2
610
LINE 購物幕後推手
line_developers_tw
PRO
0
560
VitePress & MCPでアプリ仕様のオープン化に挑戦する
hal_spidernight
0
120
SaaS公式MCPサーバーをリリースして得た学び
kawamataryo
5
1.3k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.6k
A designer walks into a library…
pauljervisheath
205
24k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.4k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
How STYLIGHT went responsive
nonsquared
100
5.5k
Building Adaptive Systems
keathley
41
2.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
610
Transcript
TEEとIntel SGX入門 日本IBM株式会社 櫻井 碧 2020/6/25 blockchain.tokyo Online #4
目次 • 自己紹介 • データセキュリティとTEE • Intel SGX • SGXの基本
• シーリング • Remote Attestation
自己紹介 • 名前:櫻井 碧 (tw:@dd_cliffford) • 経歴: • 2019年度 未踏スーパークリエータ
• 2020年3月 早稲田大学大学院 卒業 • 2020年4月 日本IBM株式会社 入社 • 趣味:ゲーム、ドライブ、蒙古タンメン中本
Trusted Execution Environment (TEE)
「人間を信用してはいけない」 • この世には、明らかに信用ならないのに世間に 受け入れられてしまっているシステムが 多数存在する • この事実は、特に機密性の高いデータを扱う場合 に大きな問題となる • 医療情報
• 生体情報 • 機微な個人情報 • クレジットカード番号 • etc.
ケース①:クラウドサービス • 現在普及しているクラウドサービスは、クラウド プロバイダを信用する事が出来ない • FW等で外界との境界にて防御はしている • 境界の内側のセキュリティは「ブラックボックス」 • 「大企業だから安心」は根拠のない神話
ユーザ 悪性のマシンやプロバイダが ユーザに送信された情報を 盗まない保証はない クラウド
ケース②:著作物配信 • ビデオや音楽のストリーミング配信等では、 デジタル著作権保護(DRM)によって コンテンツを保護する必要がある • いわゆる”割れ厨”ユーザ対策 • しかし、執念深いユーザはDRMをバラバラに して解析し、鍵を取り出して暗号を解き、
コンテンツを抽出してしまう • 根本的に無意味
データセキュリティに必要な根本的な思想 • 大原則は、「人間の善意や人間自体の信頼性には 頼らず、暗号学的・数理的に絶対的な安全性を 保証する事」 • データが保護されていなければならない全ての フェーズで、絶対的にデータが保護された状態で 処理を進めれば良い
準同型暗号を使う? • 従来手法でこの要件を満たす技術として 有名なのは「準同型暗号」 • 暗号文の状態で足し算や掛け算が出来る種類の 暗号 1 + 4
= (5) 復号 5 暗号化 暗号化 1 4
準同型暗号の現実 • 結論から述べると、現代のコンピュータは準同型 暗号に追いついていない • 必然的に準同型暗号は現実的ではない メリット デメリット ハードウェアを 信頼しなくて良い
極めて遅い 厳密な意味での 完全な保護 莫大なメモリを 食い潰す 耐量子性を持つ 精度に難がある
TEE(信頼可能な実行環境) • TEEの思想:コンピュータリソースを、信頼可能 な領域と信頼できない領域に分ける • 信頼可能領域でデータを扱う事で、データを 保護しながらのプログラム実行を可能とする • 信頼可能な領域:信頼可能なハードウェア及び それによりメモリ上に生成された保護領域
• 信頼できない領域:それ以外のすべて • 脅威モデル次第では、OSやVMMすら非信頼領域 として扱う
TEE(信頼可能な実行環境) • より具体的な実例に落とし込むと、信頼可能領域 はCPU内、CPUによって生成されたRAM上の 保護領域及びその間の通信路がTEEとなる 非信頼可能領域 (Untrusted) 保護領域 (Trusted) RAM
CPU 信頼可能ハードウェア TEE(Trusted) REE(Untrusted) Trusted Channel 秘密にしたいデータを 保護しながら使用し、 プログラムを実行できる
メジャーなTEE技術 Intel SGX ARM TrustZone RISC-V Keystone AMD SEV コンピュータ(非モバイル)
向けTEE技術の中では最有力
Intel SGX
Intel SGX(Software Guard eXtension) • SGX:データを外部攻撃者だけでなくOSや VMMからすら秘匿してプログラムを実行 できるテクノロジ Intel CPU
ハードウェア 非信頼可能 領域 OS RAM Enclave (信頼可能領域) Enclave 生成 秘密データ 演算 CPU内は保護されて おり、内部での演算は 平文であるため高速 保護チャネル/エリア 非保護チャネル/エリア EnclaveをCPU内のメモリ 暗号化エンジンで作成
MEE(メモリ暗号化エンジン) • MEE:Intel製CPU内のUncore部分に組み 込まれているユニット • MEEは、以下の技術の組み合わせにより Enclaveを実現する: • “Tweaked” 128bit
AES/CTR • マークル木の複雑な組み合わせ • Carter-Wegman式メッセージ認証符号 • AES暗号ベースである為、実行速度が 極めて高速
Enclave • Enclave:MEEによってRAM上に生成される、 AES暗号ベースの保護領域 • 実際にデータを格納するEPC(Enclave Page Cache)と、その他13の構造体によって構成 される •
VA, TCS, SSA, EPCM, etc. • EPCのサイズ上限は原則96MB
SGX専用のCPU命令 • Enclaveの操作やアクセス等には、必ずIntel CPUによる専用のCPU命令を介さねばならない • スーパーバイザ用命令:Enclaveの生成や、EPCの ページ操作など • ユーザ用命令:Enclaveへの進入・脱出など •
これらを介さない不正なアクセスの試みを検知 すると、MEEは即座にマシンの電源を落とす
Intel SGXが対策できる脅威モデル • 別プロセスによる攻撃、OSやVMMによる攻撃、 オフチップハードウェアへの攻撃に対応 • サイドチャネル攻撃への対策が別途必要 RAM Enclave 別プロセス
による攻撃 OS・VMM OSに よる攻撃 オフチップ ハードウェア攻撃 オフチップ ハードウェア メモリ破壊、 ROP攻撃等 ルートキット等 コールドブート攻撃等
シーリング/アンシーリング • シーリング: Enclave内のデータを、以下の2つの 内いずれかから導かれる鍵を用いた128bit AES/GCMで暗号化し、不揮発性メモリに 書き出す処理 • MRENCLAVE: Enclave自体に固有なハッシュ値
• MRSIGNER: Enclave署名者に固有なハッシュ値 • アンシーリング: シーリングしたデータを Enclaveにロードし復号
Architectural Enclave(AE) • AE:SGXが内部で使用する、いわば「システム 用Enclave」 • PvE:SGX初使用時にマシンをアクティベートし、 EPIDメンバ秘密鍵をシーリングしてストア • QE:PvEのストアした鍵に唯一アクセス権を持つ
Enclave(PvEは初回以降起動しない) • LE:Deprecated • PSE:SGXSDK v2.8以降アクセス方法が不明 • ユーザがこれらに直接アクセスする方法はない
遠隔のSGXマシンを利用したい場合 • クラウドモデルのSGXアプリケーションなど、 遠隔のSGXマシン上のEnclaveを使用したい ケースが存在する • この場合、Enclave自体の正当性に加え、遠隔 マシン自体のCPUの正当性も検証しなければ ならない Remote
Attestationという機能を利用する
Remote Attestation (RA) •RAは実装は非常に面倒臭いが、その根源的な 目的自体は単純である: [ISV・SP] RA後のTLS通信用のセッション鍵を 交換する [SP] ISVのCPUとEnclaveの完全性を検証する
※ISV:SGXマシン、SP:非SGXマシン
Remote Attestation (RA) •RAは基本的には楕円曲線ディフィー・ ヘルマン鍵共有プロトコル (EC-DHKE)に 基づいている • 楕円曲線暗号という公開鍵暗号の性質を利用し、 共通鍵を2者で共有出来るようにするプロトコル
• NIST P-256曲線を使用 •EC-DHKEに加え、RAはISVのEnclaveとCPU の検証を実行する • Quote構造体と署名拒絶リスト(SigRL)を使用
楕円曲線離散対数問題 (EC-DLP) (1/2) •楕円曲線上の加算を次のように定義: Q R -(Q+R) Q+R Q -2Q
2Q G G ↑EC-DLPではこれを使用する
楕円曲線暗号のパラメータ • 次の通りパラメータを定義: : 使用する楕円曲線 : ベースポイント (楕円曲線上の加算を適用 する基準点) :
に楕円曲線上の加算を適用する回数 :
楕円曲線離散対数問題 (EC-DLP) (2/2) •この例では… nQ/2 -nQ nQ G • 楕円曲線:
ベースポイント: 加算回数: : • を , , から導出する のは容易 • を , , から導出する のは非常に困難 (NP困難)
EC-DHKE (1/2) • RAのベースであるEC-DHKEはEC-DLPを 安全性の根拠としている • 前提条件: , (楕円曲線, ベースポイント)
• 公開鍵: (=) • 秘密鍵: (加算回数)
EC-DHKE (2/2) •前提条件: 楕円曲線, ベースポイント SP ISV ( , )
①上で = なるキーペア ( , )を生成 ②ISVの公開鍵 を送信 ③SPの公開鍵 を送信 ④SPは , ISVは を生成 但し = = ( , )
RAのプロトコル概観 SP ISV ⑥ , を生成 ⑦共有秘密 を生成 ③公開鍵 とCPU情報を送信
⑧公開鍵 とSigRL及び その他を送信 ② , を生成 IAS ①RA開始要求 ④ISVのCPU情報を 転送 ⑤SigRLをリターン ⑨SigRLを検証 ⑩共有秘密 を導出 ⑪quoteを送信 ⑫quoteを転送 ⑬アテステーション ステータスを返信 ⑭RAの受理・拒絶 の判定結果を送信
まとめ • 現代のコンピュータリソースで、データを保護 しながらの実用的なプログラム実行を可能に する技術として、TEEが有望 • TEEの中でも最も実用的な技術がIntel SGX • SGXは高い特権の実体からもデータを保護
できるだけでなく、補助記憶装置への暗号化 してのストアや遠隔認証も可能
免責事項 本発表・スライドにおいて述べた内容や意見は 全て個人によるものであり、所属会社の見解や 意見その他を代表するものではございません。
参考リンク [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)