mn1's blog

コンピュータと仲良くなりたい。人に優しく生きたい

TEE(Trusted Execution Environment)

1日1個技術の備忘録書くことにした。毎日継続とは言っていない。

適当な概要と参考文献をマストで入れる。目標は手動かして感想書く。

TEE(Trusted Execution Environment)とは

cpuにroot of trustを置いた、機密性が保証された隔離実行環境。簡単に言うとOS特権等の強い権限を使っても操作できない隔離されたメモリ領域を提供するcpuの機能。PCやスマホのrootを取ったとしても、TEE内で処理される情報は盗めないということである。詳しい技術の話は参考文献先に当たってほしい。

アーキテクチャごとの違い

CPUアーキテクチャの有名どころだと大体TEEに対応している。X86-64とかX86系だとIntelIntel SGX(以下SGX), AMDだとAMD SEVが実装されている。ARMはARM TrustZone(以下TrustZone)、RISC-VはKeyStoneが該当する。

どこで使われているか

TrustZoneはAndroidだとDRM(デジタル著作権管理)フレームワークとかAndroid KeyStoreなんかがあり、他にもiphone、MチップMacとかswitchとか、結構いろんなところで使われている。SGXはBlue layのDRMに使われていたが、しれっと11世代のコアからXeon以外では廃止されている。この影響でIntel CPUでは11世代以降Blue layの再生ができなくなっている。Xeonだけに残しといて何に使うねんと思っていたが、AzureでSGX対応したコンテナのサービスが提供されているからこれに使っているっぽい。病院とか金融系みたいな機密情報ありすぎてクラウド使いづらい企業には確かに必要だよなーと思う。

試したい場合

TEEを使ってみたいだけならインターネットに転がっている情報の豊富さからSGXがおすすめ(って先輩が言ってた)。7~10世代ぐらいまでのIntel NUCの中古とかを1万円台くらいで買って、aosさんのseccampの神資料を見ながらやるのが一番楽しいんだろうなと思う。TrustZoneのOSS実装であるOP-TEEを使うとraspberry pi modelBに実機実装できるが、あんまり参考資料が無いからおすすめしない。ちなみにOP-TEEはqemuを使って仮想環境でも試せる。Intel SGXもdeveloper用のエミュレーション環境があると聞いたことがあるが、見つけられなかった。

まとめ

年末年始使ってみようかなー。

参考とするとよい文献

TEEの概略を知るのによい

aosさんのSGX解説の神資料

TrustZoneのアーキテクチャ解説

TrustZoneを攻撃したい方はこちら