セキュリティ

ルートオブトラスト

信頼の起点となるハードウェア機構。

概要

ルートオブトラスト(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.0PC、産業機器国際標準、豊富な機能
ARM TrustZoneスマートフォン、組み込みSoC に統合、ソフトウェア分離
RISC-V PMPRISC-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+ 認定専用チップ中〜高
TrustZoneSoC 内の論理的分離中〜高低(SoC コスト内)
ソフトウェア信頼OS のアクセス制御最低

RoT はセキュアブートTPMセキュアエレメントなどすべてのハードウェアセキュリティ機構の基盤となる概念であり、IoT セキュリティアーキテクチャ設計において最初に検討すべき要素である。

関連用語

参考リンク