IoT & OT Security

Secure Boot

セキュアブート・トラステッドブート

Category: IoT & OT Security / Updated: 2026-05-26

📖

Overview

セキュアブート(Secure Boot)とは、デバイスの起動プロセスにおいて、ブートローダーからOSカーネル、ドライバーに至るまでの各ソフトウェアコンポーネントのデジタル署名を検証し、改ざんされていない正規のソフトウェアのみを実行する仕組みです。ハードウェアに組み込まれた信頼の基点(Root of Trust)から始まる検証チェーン(Chain of Trust)により、ブートプロセス全体の完全性を保証します。

セキュアブートは、PC環境ではUEFI(Unified Extensible Firmware Interface)Secure Bootとして広く実装されており、IoTデバイスや組み込みシステムでもファームウェアの改ざん防止メカニズムとして重要性が高まっています。特にIoTデバイスは物理的にアクセスされやすく、ファームウェアの書き換えによるバックドアの設置やマルウェアの埋め込みが懸念されるため、セキュアブートは必須のセキュリティ機能です。

セキュアブートを補完する技術として、TPM(Trusted Platform Module)を活用したメジャードブート(Measured Boot)があります。メジャードブートでは、各ブートステージのハッシュ値(測定値)をTPMのPCR(Platform Configuration Register)に記録し、起動後にリモートサーバーがこの測定値を検証するリモートアテステーションにより、デバイスの起動状態の信頼性を確認できます。

🔬

Details

セキュアブートプロセスの仕組み

セキュアブートは、電源投入後の最初の命令から順番に、各ソフトウェアコンポーネントの署名を検証しながらブートプロセスを進行します。一般的なフローは以下の通りです。まず、ROM(Read-Only Memory)に書き込まれた不変のブートコード(Boot ROM)が最初のブートローダーの署名を検証します。検証に成功すると、そのブートローダーが次のステージのブートローダーを検証し、さらにOSカーネル、ドライバー、アプリケーションへと検証が連鎖します。

この連鎖的な検証プロセスをChain of Trust(信頼の連鎖)と呼び、いずれかのステージで署名検証に失敗した場合、ブートプロセスは停止されます。Boot ROMの不変性が全体の信頼性を担保しており、このROMが改ざんされない限り、起動される全てのソフトウェアの正当性が保証されます。

Chain of Trust(信頼の連鎖)

Chain of Trustは、信頼の基点から始まり、各ステージが次のステージを検証するセキュリティモデルです。信頼の基点(Root of Trust)は通常、ハードウェアに物理的に埋め込まれた暗号鍵やROMコードであり、ソフトウェアからの書き換えが不可能です。ARM TrustZone、Intel Boot Guard、Apple Secure Enclaveなどは、それぞれのプラットフォーム固有のHardware Root of Trust実装です。

Chain of Trustの堅牢性は、最も弱いリンクによって決まります。いずれかのステージの検証が不十分であったり、鍵管理に問題があると、その上位のすべてのソフトウェアの信頼性が失われます。特にIoTデバイスでは、製造段階での鍵の書き込みプロセス(Key Provisioning)のセキュリティが重要であり、製造ラインでの鍵漏洩は壊滅的なリスクとなります。

TPM(Trusted Platform Module)

TPMは、暗号鍵の生成・保管、プラットフォームの測定値の保存、暗号化処理を行う専用のセキュリティチップです。TPM 2.0は国際標準(ISO/IEC 11889)として規格化されており、Windows 11ではTPM 2.0の搭載が必須要件となっています。TPMのPCR(Platform Configuration Register)には、ブートプロセスの各ステージのハッシュ値が累積的に記録され、後から改ざんすることはできません。

TPMの主なセキュリティ機能として、Sealed Storage(特定のプラットフォーム状態でのみデータを復号できる機能)、Remote Attestation(リモートサーバーにプラットフォームの状態を証明する機能)、Protected Capabilities(TPM内部でのみ暗号操作を実行する機能)があります。IoT環境では、物理的な制約からディスクリートTPMの代わりにfTPM(ファームウェアTPM)やソフトウェアTPMが使用される場合がありますが、セキュリティレベルは異なります。

メジャードブート(Measured Boot)

メジャードブートは、セキュアブートとは異なるアプローチで起動プロセスの信頼性を確保する仕組みです。セキュアブートが署名検証に失敗した場合にブートを停止するのに対し、メジャードブートはブートプロセスを停止せずに各ステージのハッシュ値(測定値)をTPMのPCRに記録します。記録された測定値は後から検証に使用されます。

メジャードブートの利点は、ブートの可用性を維持しつつセキュリティ検証を行える点です。起動後にリモートアテステーションにより、信頼できるサーバーがPCR値を検証し、デバイスの起動状態が正常であるかを判断します。異常が検出された場合は、ネットワークアクセスの制限やリモートワイプなどの対策を実行できます。

UEFI Secure Boot

UEFI Secure Bootは、PC/サーバー環境で最も広く実装されているセキュアブートの標準です。UEFIファームウェアに登録された鍵データベース(PK、KEK、db、dbx)を使用して、ブートローダーやOSカーネルの署名を検証します。PK(Platform Key)はプラットフォームの所有者を示す最上位の鍵で、通常はハードウェアメーカーが設定します。

Linuxディストリビューションの多くは、MicrosoftのUEFI署名を使用したShimブートローダーを介してSecure Bootに対応しています。一方で、Secure Bootの制約によりカスタムOSやドライバーの起動が困難になる場合があり、ユーザーが独自の鍵を登録するMOK(Machine Owner Key)の仕組みも用意されています。

Hardware Root of Trust

Hardware Root of Trust(ハードウェア信頼の基点)は、セキュアブートの基盤となるハードウェアベースの信頼メカニズムです。ソフトウェアのみで実現されるRoot of Trustと異なり、物理的な改ざん耐性を持つため、より高い信頼性を提供します。代表的な実装として、ARM TrustZone(セキュアワールドとノーマルワールドの分離)、Intel SGX(セキュアエンクレーブ)、Apple Secure Enclave、Google Titanチップなどがあります。

IoTデバイスでは、セキュアエレメント(SE)やマイクロコントローラー内蔵のセキュアブート機能がHardware Root of Trustとして利用されます。NXP EdgeLock SE050、Microchip ATECC608、Infineon OPTIGAなどの専用セキュリティチップは、鍵の安全な保管と暗号処理を提供し、IoTデバイスのRoot of Trustを実現します。

アテステーション(Attestation)

アテステーションとは、デバイスのハードウェアおよびソフトウェアの状態が信頼できるものであることを第三者に証明するプロセスです。ローカルアテステーションはデバイス内部でのコンポーネント間の検証、リモートアテステーションはネットワーク経由でリモートサーバーにデバイスの信頼性を証明する仕組みです。

Google AndroidのSafetyNet/Play Integrity API、Apple App Attestation、Windows Health Attestationなどは、商用プラットフォームでのアテステーション実装例です。IoT環境では、デバイスの接続時にアテステーションを実施し、改ざんされたデバイスのネットワーク参加を防止することが可能です。TCG(Trusted Computing Group)のDICE(Device Identifier Composition Engine)は、リソースが限られたIoTデバイス向けの軽量アテステーション仕様として注目されています。

🛡️

Security Measures

  • 01
    Hardware Root of Trustの実装:デバイス設計段階から、TPM、セキュアエレメント、またはSoC内蔵のセキュリティ機能を活用したHardware Root of Trustを実装してください。ソフトウェアのみのRoot of Trustは物理攻撃に脆弱であるため、ハードウェアベースの実装が推奨されます。
  • 02
    完全なChain of Trustの構築:Boot ROMからアプリケーションまで、ブートプロセスの全ステージで途切れのない署名検証チェーンを構築してください。いずれかのステージで検証が省略されると、その上位の全ソフトウェアの信頼性が保証できなくなります。
  • 03
    署名鍵の安全な管理:セキュアブートに使用する署名鍵は、HSM(Hardware Security Module)で生成・保管し、鍵のバックアップ、ローテーション、失効管理のプロセスを確立してください。製造ラインでの鍵プロビジョニングプロセスも厳格に管理しましょう。
  • 04
    セキュアブートとメジャードブートの併用:セキュアブートで不正なソフトウェアの起動を防止しつつ、メジャードブートでブートプロセスの測定値を記録し、リモートアテステーションにより継続的にデバイスの状態を監視してください。両方の仕組みを組み合わせることで多層的な防御が実現できます。
  • 05
    ファームウェアアップデートのセキュリティ:ファームウェアのOTAアップデートにはコード署名を必ず適用し、デバイス側でアップデートパッケージの署名を検証してから適用してください。アンチロールバック機能を実装し、古い脆弱なバージョンへのダウングレードを防止しましょう。
  • 06
    物理攻撃への対策:デバイスの物理的なタンパリング(改ざん)に対する保護を実装してください。JTAGデバッグポートの無効化、フラッシュメモリの読み出し保護、タンパー検知による鍵消去機能など、デバイスの物理セキュリティを強化しましょう。
⚠️

Incidents

📋 UEFI Secure Bootバイパス脆弱性「BlackLotus」(2023年)

2023年、UEFI Secure Bootを完全にバイパスできるブートキット「BlackLotus」が確認されました。このマルウェアは、CVE-2022-21894(Baton Drop)の脆弱性を悪用してSecure Bootの署名検証を回避し、OSの起動前に自身をロードすることで、OS上のセキュリティソフトウェアから完全に隠蔽された状態で動作しました。

BlackLotusは、BitLockerの無効化、Windows Defenderの回避、HVCI(Hypervisor-Protected Code Integrity)の無効化が可能であり、最新のWindows 11環境でも動作しました。Microsoftは修正パッチをリリースしましたが、UEFI Secure Bootの設計上の脆弱性は、ブートレベルのセキュリティの根本的な課題を示す事例となりました。

📋 IoTデバイスのセキュアブート未実装による大規模ボットネット構築(Mirai変種・2016年〜)

2016年のMiraiボットネットとその後の変種は、セキュアブートが実装されていないIoTデバイス(IPカメラ、DVR、ルーターなど)を大規模に侵害しました。攻撃者はデフォルト認証情報を使用してデバイスにアクセスし、ファームウェアを改ざんしてボットネットに組み込みました。セキュアブートが実装されていれば、改ざんされたファームウェアの起動を防止できたケースが多数ありました。

Miraiボットネットは、DNS事業者Dynへの大規模DDoS攻撃を実行し、Twitter、Netflix、Spotifyなどの主要サービスに障害を引き起こしました。この事件を契機に、IoTデバイスにおけるセキュアブートの実装の重要性が広く認識され、各国の規制でもセキュアブートの要件化が進んでいます。

📋 産業制御機器のブートローダー脆弱性によるリモート攻撃(2022年)

2022年、産業制御システム向けの複数のPLC(Programmable Logic Controller)およびHMI(Human Machine Interface)のブートローダーに脆弱性が発見されました。セキュアブートの実装が不完全で、署名検証のロジックに欠陥があったため、攻撃者が悪意のあるファームウェアをアップロードし、デバイスの制御を奪取できる状態でした。

この脆弱性は、発電所、水処理施設、製造ラインなど、重要インフラで使用されるデバイスに影響し、物理的な被害につながる可能性がありました。影響を受けたベンダーはファームウェアアップデートで対応しましたが、OT環境でのアップデート適用の遅れが課題となりました。ICS-CERTは緊急アドバイザリーを発行し、ネットワーク分離と監視強化の暫定対策を推奨しました。

🔗

Related Terms