2024.12.03
企業の情報漏えいで最も多いのは「中途退職者」による持ち出し 内部不正が発生しやすい3つの要素
リンクをコピー
記事をブックマーク
須藤欧佑氏:僕からはArmのTrustZoneについて発表いたします。
まず簡単に自己紹介します。須藤欧佑と申します。LayerXのLayerX Labsに所属しており、ソフトウェアエンジニアをしています。主に暗号技術とか、TEE(Trusted Execution Environment)を用いたデータのプライバシー保護とか、データの改ざん耐性の手法の研究開発に取り組んでいます。
先日発表した「ブロックチェーンにおける次世代のプライバシー保護技術『Anonify』」というところでも、ArmのTrustZoneではありませんが、IntelのSGXでハードウェアのセキュリティ機能を用いたプライバシー保護技術をオープンソースで公開しました。
本日のアジェンダですが、TrustZoneは少しマニアックな内容になると思うので、TrustZoneの内容に入る前にハードウェアのIsolationという概念の全体像を説明して、そのあとにTrustZoneの具体的な内容に入っていこうと思っています。
本日のゴールは、ArmのTrustZoneとは何なのかとか、あとはその仕組みの概要とかを全体的に理解していただければなと思っています。
今回のTrustZoneにおける内容とか、あと使用している画像については、(スライド)下の「Programmer's Guide for Armv8-A」「TrustZone for Armv8-A」の公式のレファレンスを参考にしていますので、ぜひご参照ください。
ではさっそくハードウェアのIsolationのほうに入っていきたいと思います。Secure Hardwareとは何なのかというと、ここでは耐タンパ性を備える機密データの記録や暗号処理といったハードウェアを総称して「Secure Hardware」と呼んでいます。
機密性の高いデータの処理とか、あとハードウェアというものをハードウェアのセキュリティ機構で防いでしまおうといったものです。なので、OSとかハイパーバイザーとかっていうソフトウェアベースでは防げない攻撃というものを物理的に保護しようとする取り組みになっています。
(スライドの)下に代表的な例をがーっと図にまとめていろいろ挙げました。例えばHSMとはクラウド上でも使われていますが、TLSのオフロードを暗号処理としてHSMの中で送ったりとかもします。あとはTPMとかだと、WindowsのBitLockerとかのデータ暗号化とか、ここのTPMのプロセッサの中で暗号処理が行われたりとか。
AppleのT2 chipとかもその部類に入ります。今回のArmのTrustZone上で実装されるセキュリティ機能もこのアーキテクチャの上で使われています。最近のものでは、GoogleのTitanやYubiKeyなど、FIDO2とかのセキュリティキーの秘密鍵を安全に保持したいときは、こういったセキュリティキーを利用します。
あとは昔からあるSmartCardとか、あるいはSIMとかもセキュアハードウェアの部類に入っています。こういった物理的な攻撃とか、あるいはソフトウェアベースの攻撃とかを防ぐものになっています。
この中でとくにTrusted Execution Environment(TEE)についてなのですが、やりたいことは、CPU、ハードウェアレベルによって論理的にメモリを分離することです。
これらのほかのセキュアハードウェアと比べたときのTEEの大きな特徴というのが、物理的にはメモリを分離していなくて、CPUのコントロールによって論理的にメモリを分離していることです。
これによる大きなメリットは、Secure World、「Trusted State」とか「Secure World」などのソフトウェア部分をベンダではなく、我々アプリケーション開発者が実装することが可能というところです。これが大きな特徴になっています。
あとは、論理的にメモリを分離しているだけなので、実際の処理は汎用のCPU上で行なわれます。当然メモリの暗号化とか、あとはアクセスコントロールとかで多少のオーバーヘッドはありますが、基本的には高速で行なわれることになります。
一方でデメリットとしては、CPUの論理的な保護なので、完璧なセキュリティ対策はできず、キャッシュとかは共通化されていますので、そこのサイドチャネル攻撃への対策が現状の課題となっています。
さらにTEEの種類も複数存在します。冒頭でお伝えしたようにIntel SGX。今回のテーマとなっているArm TrustZone。あとはRISC-V上でもKeystoneというものがあったり、あとAMD SEVとかもあります。
Intel SGXは一番代表的というか、いろいろなところで使われたり、開発環境やSDKとかも一番整っているTEEなのかなと思います。実際にクラウド上でもAzure、IBM Cloud、Alibaba Cloudとかいろいろな場所で使えるTEEの技術になっています。
一方Arm TrustZoneはモバイルデバイス型のTEEを実装できるCPUとして広まっていまして、任天堂のSwitchとかにも搭載されていますし、さまざまなスマートフォン上のデバイスにも実装されています。
RISC-Vに関しては、まだ試験段階で、RISC-VのPMPという機能を使ったTEEとなっています。
AMD SEVは、ちょうど先日Google CloudでConfidential VMというインスタンスが発表されて話題になりましたが、そのConfidential VMのセキュリティ機能のベースがAMD SEVに由来するものとなっています。
ここまでがTEEの全体像、Hardware Isolationの全体像について紹介しましたが、ここからArm TrustZoneの話に入っていきます。
Arm TrustZoneは、MMUなどによってハードウェアレベルのアクセスコントロールを行なって、ハードウェアのリソース、メモリのリソースとかをNormal WorldとSecure WorldあるいはTrusted Worldに分離します。そして、機密性の高い暗号処理とか署名とか、あとは指紋とかパスワードとか、そういったセンシティブなデータの取り扱いをこっちのTrusted Worldですべて行なってしまおうと。ここのNormal WorldとTrusted Worldの境界は厳密にハードウェアレベルのIsolationで管理しようという思想になっています。
Normal WorldがSecure Worldのリソースに不正にアクセスできないようにコントロールされている一方で、Trusted Worldは逆にNormal Worldにアクセスできるようになっています。具体例としては、FIDO2における署名とかはTrusted Worldで処理が行なわれるかたちになります。
TrustZoneはCortex-AとCortex-Mのどちらにも対応していますが、アーキテクチャ的にはかなり違っています。
Cortex-AのほうはSecure Monitorのハンドラが唯一のエントリーポイントとなっていてレイヤーアーキテクチャになっています。一方で、Cortex-Mは低レイテンシの状態遷移を重視していますので、Secure Monitorのようなレイヤーアーキテクチャではなく、ハンドラ/スレッドモードとか言われるかたちになっています。
今回の内容はCortex-Aのアーキテクチャをもとに発表いたします。
さらに、TrustZone自体はこういったアーキテクチャの名前になっていて、その上でSecure OSと呼ばれる部分の実装としてTEEのいろいろな種類があります。
オープンソースではOP-TEEやTrustyとかがとても有名で、実際にソースコードが公開されています。コマーシャルなほうのベンダでもいろいろ開発されていまして、QTEEとかTrustedCoreといったものが、みなさまがお持ちのスマートフォンとかにも内蔵されるかたちで実装されています。
実際にそのTrustZoneのアーキテクチャとか、あとは例外レベルの概念がとても重要になってくるので、そこを中心にお伝えしていきます。
(スライドを示す)これは、ここまでの発表で何回か出てきた図ですが、例外レベルがArmではこのようなレイヤー構造に分かれています。
一番上のユーザーランドの部分がException Level、EL0で、x86だったらRing3に対応する部分になっています。次にEL1でRing0に対応する部分。EL2のハイパーバイザーとかでRing-1とかに対応する部分。もちろん厳密な対応ではありませんが、概要的にはx86とこのような対応関係になっています。
同じException LevelにSecure WorldとNormal Worldがそれぞれ分かれていて、Trusted OS、あるいはSecure OSとか、表記揺れがあって申し訳ないんですけれども、いろいろあります。
ここのNormal WorldとSecure Worldをどうやって橋渡しするか、命令を橋渡しするのかという部分になるんですけれども、ここのEL3のException Level、ファームウェアとか、x86だったらIntel MEとかSMMとか呼ばれるレイヤーの部分で橋渡しを行ないます。
Rich OSとかHypervisorからSMC命令という例外命令が吐き出されて、その例外に対する処理をSecure Monitorで受け取ってハンドリングして、そこでいろいろな処理を行なうことによって、Secure WorldのTrusted OSとかにハンドリング状態が移るかたちになっています。
では、実際にこの図の(1)から(5)までの内容をこれからお話ししていきます。
(次回へつづく)
関連タグ:
2024.11.26
タスクの伝え方が部下のモチベーションを左右する マッキンゼー流、メンバーが動き出す仕事の振り方
2024.11.25
仕事はできるのに、なぜか尊敬されない人が使いがちな言葉5選 老害化を防ぐために大切な心構えとは
2024.11.27
何もせず月収1,000万円超…オンラインゲームにハマって起こした事業 大学中退し4社立ち上げ・2社売却した起業家人生
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.11.25
論理的に「詰める」マネジメントでは本質的な解決にならない マッキンゼー流、メンバーの理解と納得を得る接し方
2024.11.28
管理職の「疲弊感」がメンバーに伝わるリスク 部下の「働きがい」を育む6つのポイント
2024.11.27
部下に残業させられず、自分の負担ばかり増える管理職 組織成長のカギを握る「ミドル層」が抱える課題
2024.11.27
仕事中の「今ちょっといいですか」が苦痛… いしかわゆき氏が語る、ADHD気質にマッチした働き方のヒント
2024.11.26
仕事の質を左右する「ムダな習慣」トップ5 忙しくなる前に棚卸ししたい“やめたほうがいいこと”とは
2024.11.28
“新規事業が生まれない組織”に足りていないもの 「PoC貧乏」に陥らず、アイデアを形にするためのヒント
長期投資の衝撃の真実!20年投資しても年率1.9%しか増えない!?
2024.10.04 - 2024.10.04
第765回 トレンド経営学『顧客に謝る基準とは?』
2022.04.18 - 2022.04.18
不機嫌な自分をやめるために!認知行動療法の専門家 中島美鈴先生新刊『脱イライラ習慣! あなたの怒り取扱説明書』発売記念【無料オンラインイベント】
2024.10.25 - 2024.10.25
ログミーBusiness リニューアル記念イベント開催
2024.11.29 - 2024.11.29
品がある人、育ちがいい人の見える 人のセリフ 3選
2022.11.30 - 2022.11.30