TEEに秘密を置くな——物理攻撃でリモート認証は破られる
It's time to talk about TEEs
Intel SGXやAMD SEV-SNPなどTEEへの攻撃を時系列で整理した記事。Foreshadowから2025年のWireTap.fail、TEE.fail、2026年のDDRropまで、物理的なメモリバス介入によって認証鍵が抽出され、偽のリモート認証が成立する事例が並ぶ。ホスト管理者権限や一度の物理アクセスで攻撃が可能で、検証側が任意のIntel CPUのquoteを受け入れる限り、脅威モデルから物理攻撃を除外しても守れないと指摘する。
貴重な秘密をTEEの中に置いてはいけない。さもなければ、特に物理攻撃が脅威モデルに含まれる場合、その秘密は公になる可能性が高い。
- azalemeth
SGXって、実際のところ95%の場合は動機が悪しきDRMである類のものだよね。しかも、いろんな理由でそれを破りたいと思っているハッカーたちが、実にやる気に満ちあふれている世界でもある。俺の直感では、これはどこかのミドルマネージャーがボーナスをもらうための役割を果たしていて、DRMスキームの効果をわずかに高めるかもしれない程度のものだ(例えばBlu-rayの映像——公式プレイヤーは全部Windows必須でTEE上で動いてる)。実際の「良い」ユースケースはというと、クラウドコンピューティングのものも含めて、せいぜい偶発的に生まれた良いマーケティング材料みたいなものだと思う……
- mike_hearn
これはコンピュータセキュリティにおける非常に古い議論の、また別のバリエーションにすぎない。完璧なものは存在しない、ならばどこで線を引くのか、という話だ。
SGXは最初から、バグがあったり、誰かが巧妙で予期せぬ攻撃を見つけたりすることを前提に設計されていた。だからゲーム機のような再封印(resealing)手続きがあって、ファームウェアやマイクロコードのアップデートでプラットフォームをその場で修正できるようになっている。SGXはSpectreより前のものだから、そうした前提は正しいと証明され、プラットフォームは何度も再封印されてきた。
これは成功なのか失敗なのか?記事はそれが失敗であることを自明のこととして扱っている。しかし、汎用コンピューティングシステムを「これまでにパッチを当てる必要が生じたことがあるか」という基準で評価するなら、成功したものなど一度も存在しない。明らかにそこに線を引くべきではない。
線を引く別の場所としては、システムが完全にパッチを当てられ、既知のバグがない状態で、必要な保証を提供できているかどうか、という基準が考えられる。この基準によれば、SGXは玉石混交だ。元々のSGX実装は、DRAMチップ上のものも含め、ハードウェア攻撃を完全に考慮に入れていた。後のバージョンは、プロダクトマーケットフィットを見つけようとして意図的に弱められた。開発者たちが「アプリを中に入れたVMを丸ごと起動する」より複雑なプログラミングモデルを扱えなかったからだ(正直に言えば、それすらまともにできていなかった。ひどいRA実装を山ほど見てきた)。しかし、厳しい物理的限界に突き当たる。信頼できないDRAMを安全にすることは、それを大きくすることとトレードオフになる。開発者はRAMを節約することを要求されるものを何でも拒否する、[…]