概要
ルートオブトラスト(Root of Trust、RoT)とは、デジタルセキュリティシステムにおける「信頼の起点」となるハードウェア機構または機能のことを指す。すべてのセキュリティチェーンは、この RoT から始まり、そこを基点として段階的に信頼を検証・拡張していく。
RoT は改ざんが極めて困難なハードウェアに実装されるため、ソフトウェアベースの信頼より強固な基盤を提供する。セキュアブート、デバイス認証、暗号鍵管理などのセキュリティ機能はすべて RoT を前提として成立する。
「あなたは誰を信じるか?」という問いに対して、「ハードウェアを信頼する」という答えが RoT の本質である。
歴史・背景
RoT の概念はコンピュータセキュリティの黎明期から存在していたが、体系化されたのは比較的近年のことである。
- TPM(Trusted Platform Module): 2003年に TCG(Trusted Computing Group)が TPM 1.1b 仕様を策定し、ハードウェアベースの RoT が PC 市場に普及し始めた。
- ARM TrustZone (2004年): ARMv6 から導入された TrustZone により、モバイル・組み込み向け SoC に RoT 相当の機能が組み込まれるようになった。
- GlobalPlatform TEE (2010年代): GlobalPlatform が TEE(Trusted Execution Environment)仕様を策定し、スマートフォンのセキュアな実行環境が標準化された。
- NIST SP 800-193 (2018年): プラットフォームファームウェアの耐性ガイドラインで RoT が中心概念として正式に定義された。
- PSA Certified (2019年): ARM が Platform Security Architecture(PSA)を策定し、IoT デバイス向け RoT の実装指針が提供された。
技術仕様
RoT の三要素
NIST SP 800-193 では、RoT を次の三つの機能に分類している。
| 機能 | 説明 |
|---|---|
| Root of Trust for Measurement (RTM) | ソフトウェアやデータの完全性を測定(ハッシュ化)する起点 |
| Root of Trust for Storage (RTS) | 機密データ(鍵など)を安全に保管する機構 |
| Root of Trust for Reporting (RTR) | 完全性の測定結果を信頼できる形で報告する機構 |
ハードウェア実装の種類
┌─────────────────────────────────────────────────────┐
│ RoT 実装の種類 │
├─────────────────┬───────────────────────────────────┤
│ Immutable RoT │ マスクROM、eFuse、OTP │
│ (変更不可) │ → 最も強固な起点 │
├─────────────────┼───────────────────────────────────┤
│ Mutable RoT │ セキュアに保護されたフラッシュ │
│ (更新可能) │ → 柔軟性あり、管理が必要 │
├─────────────────┼───────────────────────────────────┤
│ Virtual RoT │ ソフトウェアエミュレーション │
│ (仮想) │ → 低コスト、セキュリティ最低 │
└─────────────────┴───────────────────────────────────┘
主要な RoT 実装
| 実装 | 対象 | 特徴 |
|---|---|---|
| TPM 2.0 | PC、産業機器 | 国際標準、豊富な機能 |
| ARM TrustZone | スマートフォン、組み込み | SoC に統合、ソフトウェア分離 |
| RISC-V PMP | RISC-V SoC | 物理メモリ保護、オープン標準 |
| セキュアエレメント | IoT、スマートカード | 専用チップ、EAL5+ 認定 |
| HSM | サーバー、PKI | 高性能、FIPS 140-2 Level 3 以上 |
動作原理
信頼チェーンの確立
電源投入
↓
[Immutable RoT] ← 変更不可能なハードウェア(マスクROM/eFuse)
↓ 検証
[First Stage Bootloader]
↓ 検証
[Second Stage Bootloader / U-Boot]
↓ 検証
[OS Kernel]
↓ 検証
[Application]
各ステップで前のステージが次のステージを検証する。最初の RoT が正しければ、チェーン全体の信頼が成立する。
ARM TrustZone によるソフトウェア RoT
┌──────────────────────┬──────────────────────┐
│ Secure World │ Normal World │
│ (EL3/S-EL1/S-EL0) │ (EL1/EL0) │
│ │ │
│ ・Secure Monitor │ ・Linux Kernel │
│ ・Trusted OS (OP-TEE)│ ・Android/App │
│ ・鍵管理 │ │
│ ・暗号演算 │ │
│ ・セキュアブート検証 │ │
└──────────────────────┴──────────────────────┘
↑ SMC (Secure Monitor Call) で通信
測定と PCR(Platform Configuration Register)
TPM の PCR は、起動時の各コンポーネントのハッシュを順次記録(extend)する仕組みである。
# PCR extend の概念コード
import hashlib
pcr = bytes(32) # 初期値はゼロ
def extend_pcr(pcr: bytes, new_measurement: bytes) -> bytes:
"""PCR への measurement 追加"""
combined = pcr + new_measurement
return hashlib.sha256(combined).digest()
# ブートローダーのハッシュを測定
bootloader_hash = hashlib.sha256(bootloader_binary).digest()
pcr = extend_pcr(pcr, bootloader_hash)
# カーネルのハッシュを測定
kernel_hash = hashlib.sha256(kernel_binary).digest()
pcr = extend_pcr(pcr, kernel_hash)
# この pcr 値が「現在のシステム状態」を表す
用途・ユースケース
デバイスのアイデンティティ確立
各デバイスに固有の秘密鍵を RoT 内で生成・保管し、デバイスアイデンティティの証明に使用する。クラウドサービスへの接続時に「このデバイスは正規品である」ことを証明できる。
リモートアテステーション
データセンターや IoT プラットフォームが、接続デバイスの状態(どのソフトウェアが動いているか)を遠隔から検証する。TPM の PCR 値を署名付きで送信することで実現する。
鍵の保護
暗号鍵を RoT 内に封印し、特定のソフトウェア状態でのみアンロックする(TPM のシーリング機能)。ディスク暗号化鍵を RoT に結び付けることで、ハードウェアを盗まれても鍵が漏洩しない。
ライセンス管理
組み込み機器のライセンスキーを RoT 内に保管し、ハードウェアと紐付けることでソフトウェアの不正コピーを防止する。
実装・開発のポイント
PSA(Platform Security Architecture)の活用
ARM の PSA は IoT 向け RoT 実装の標準的な指針を提供している。PSA Certified 認証を取得することで、セキュリティレベルを第三者が保証できる。
/* PSA Crypto API を使ったキー生成例 */
#include "psa/crypto.h"
psa_status_t generate_device_key(void) {
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
psa_key_id_t key_id;
/* 永続的な ECC キーペアを生成 */
psa_set_key_usage_flags(&attributes,
PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH);
psa_set_key_algorithm(&attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256));
psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1));
psa_set_key_bits(&attributes, 256);
psa_set_key_lifetime(&attributes, PSA_KEY_LIFETIME_PERSISTENT);
psa_set_key_id(&attributes, 1); /* 固定 ID で保存 */
return psa_generate_key(&attributes, &key_id);
}
eFuse / OTP の管理
一度書き込んだら変更できない OTP の設定は製造ライン管理の一部として厳格に管理する。テスト用とプロダクション用で設定を明確に分離し、誤焼きを防ぐ仕組みを構築する。
サプライチェーンの信頼
RoT の有効性はハードウェア製造段階から始まる。信頼できるサプライヤーからのチップ調達、製造工程でのセキュアプロビジョニング(鍵の安全な注入)が重要である。
他技術との比較
| 技術 | 信頼の根拠 | 強度 | コスト |
|---|---|---|---|
| ルートオブトラスト(HW) | ハードウェア物理特性 | 最高 | 高 |
| TPM | 独立したセキュリティチップ | 高 | 中 |
| セキュアエレメント | EAL5+ 認定専用チップ | 高 | 中〜高 |
| TrustZone | SoC 内の論理的分離 | 中〜高 | 低(SoC コスト内) |
| ソフトウェア信頼 | OS のアクセス制御 | 低 | 最低 |
RoT はセキュアブート、TPM、セキュアエレメントなどすべてのハードウェアセキュリティ機構の基盤となる概念であり、IoT セキュリティアーキテクチャ設計において最初に検討すべき要素である。