vol.112 Root Of Trustによる車載システムの保護

Root Of Trustによる車載システムの保護

ハードウェア・ベース Root Of Trustの動作のしくみと必要性

概要

運転の一部を自動化した最新のコネクテッド・カーは、個人情報が詰まったユーザーのスマートフォンにシームレスに接続し、エンターテインメント機器としての役割も果たす他、車線逸脱防止など多くの機能をサポートするようになっています。ユーザーはこれらの車載電子機器が正しく動作することを当然のように思っていますが、もしも脆弱性が存在すると、コネクテッド・カーは物理的な攻撃だけでなく無線を利用した攻撃やサイドチャネル攻撃を受ける危険があります。エンターテインメント・システムがダウンしても多少の不便を強いられるだけで済みますが、ブレーキやステアリングなどの安全装置がハッキングされると人命にかかわります。

 

たとえば2016年秋には、セキュリティ研究者がTesla社の電気自動車Model Sの制御システムにリモートからアクセスして車両を制御できる脆弱性を発見し、その方法を実演して見せました。研究者たちはインフォテインメント・システムとWiFi接続の脆弱性を利用して攻撃を実行し、車両のCAN(Controller Area Network)バスにアクセスしてブレーキ・システム、エンジン、サンルーフ、ドアロック、トランク、サイドミラーなどを自由に制御しました(図1)。もちろんこの研究者たちに悪意はなく、脆弱性を公開する前にTesla社に報告しました。これを受け、Tesla社は無線経由でソフトウェア・アップデートを実施し、更にCANバスに新規ファームウェアをインストールする場合にコード署名ポリシーを適用する新しい仕組みも導入しました。

 

Tesla社はシステムへのセキュリティ実装方法の詳細を公表していませんが、SoCにハードウェアRoot of Trust(信頼の起点、RoT)を採用して非常に強力なセキュリティ境界を構築したものと考えられます。

図1:コネクテッド・カーに対するセキュリティ攻撃の例

ハードウェア・ベースRoTの構成要素

ハードウェア・ベースRoTに必要な条件として、以下の4つを定義できます。

 

  1. 保護ハードウェアが提供するTEE(Trusted Execution Environment)で特権ソフトウェアを実行すること。
  2. AESベースの暗号など、少なくとも1つ以上の実証済み暗号機能を実行すること。
  3. 何らかの形の改ざん保護が存在しており、デバイスの動作中はいつでも利用できること。
  4. 柔軟かつシンプルなユーザー・インターフェイスからホストCPU(またはGPIOをトグルするホスト・コントローラ)を通じてホストと通信できること。

 

これらの条件を満たすには、ハードウェアRoTにさまざまな構成要素が必要となります。その中でまず挙げられるのがセキュリティ境界です。セキュリティ境界とは、SoC上で何を保護対象とするかを定義するものです。セキュリティ境界の実装方法はさまざまで、ゲートウェイを経由してプライベート・バスをメイン・バスに接続するといった方法があります。

 

次に必要なのが、セキュア・ソフトウェア/ファームウェアを実行するセキュアCPUです。ハードウェアRoTでサポートされるセキュリティ機能のほとんどは、このCPU上で動作するソフトウェアで有効にするかどうかを定義します。また、このCPUの周辺リソースは、これら機能のセキュリティと性能の向上のために使用されます。

 

ハードウェアRoTに必要な3つ目の要素はランタイム・メモリーです。CPU上でソフトウェアを実行する際、ソフトウェアが必要とするランタイム・データ(すなわちスタック、ヒープ、グローバル・データ)を保護する必要があります。このデータには、平文の鍵やその他の機微な情報が含まれます。このブロックの周辺は、強力なセキュリティで保護する必要があります。

 

ハードウェアRoTに必要な要素として次に挙げられるのが、耐タンパ性です。外部からのコードは、セキュアCPU上で実行する前にバリデーションを行う必要があります。これは多くの方法で実装できますが、たとえばハードウェアRoTからしかアクセスできない専用ROMを使用するという方法もあります。

 

ほとんどの暗号機能はソフトウェアでサポートできますが、暗号化は一般にハードウェア・アクセラレータを使用した方が必要なメモリー・リソースが少なく、高速に実行できます。ハードウェア暗号アクセラレータを使用すると、CPUクロックを抑えたまま高い性能を維持できるため消費電力が削減される他、ランタイム・メモリーも少なく済むため、SoCの面積も削減できます。このことは、非常に高性能なセキュリティ機能と低コスト化の両立が要求される車載アプリケーションなどで特に重要な意味を持ちます。

 

ハードウェアRoTには真性乱数生成器(TRNG)も必要です。このモジュールを使用すると、各種セキュリティ機能で必要とされる高度なエントロピーをいつでも生成できます。TRNGへのアクセスが攻撃を受けると多くのセキュリティ機能に脆弱性が生じるため、このモジュールへのアクセスは改ざんを受けないように保護する必要があります。

 

たとえば、エンドポイント同士でセキュアな接続を確保するために、多くのプロトコルでは一時的な情報が生成されます。この一時的情報の生成に使用するエントロピーが大きいほど予測可能性が低下し、情報を強力に保護できます。このプロセスが妨害されると予測可能性が向上し、プロトコルのセキュリティ脆弱性が大きくなります。

 

時間計測の信頼性が要求されるアプリケーションでは、セキュア・クロックセキュア・カウンタ)も重要なコンポーネントです。しかしたとえセキュア・クロックを使用しても、ハードウェアRoTからアクセスするクロック・ソースを改ざんから保護しなければ効果はありません。この種のクロックとしては、セキュア・リアルタイム・クロック(RTC)が一般的です。これは通常、バッテリを使用して比較的低いクロック・レートで動作します。たとえば、アプリケーションはこのクロックを使用して時間に基づく権限ポリシーを管理できます。

 

ハードウェアRoTに必要なもう1つのコンポーネントが、セキュア・ストレージです。ステートの認識を必要とするアプリケーションでは、永続性ストレージへのセキュアなアクセスが欠かせません。たとえば、デバイスに対するアンチ・ロールバック機能を完全にセキュアな形で実装するには、ハードウェアRoTから不揮発性メモリー(NVM)へのセキュアなアクセスが必要です。情報が改ざんされないこと、および情報へのアクセスが改ざんされないことが重要です。

 

ハードウェアRoTの5つの機能
ハードウェアRoTは自分自身がサポートするセキュリティ機能を中心に構成されています。これらの機能は、電源オフ、電源投入時、動作中、および外部との通信中など、すべての動作フェーズにおいてSoCの製品ライフサイクル管理を強力に保護しながら実行できます。

 

セキュア・モニタはSoCの電源投入時および動作中に利用できます。この機能は、SoCのコンポーネントおよびコンポーネント同士の相互動作が正常に機能していることを確認します。たとえば、ホストCPUが実行中にホスト命令コードを監視できます。悪意のある命令を挿入しようとする試みを検知すると、ハードウェアRoTからホストへ通知が送信されます。

 

セキュア・バリデーション/認証は、SoC上のコード/データの妥当性を暗号的に検証する機能です。この検証は不可分(アトミック)操作として実行する必要がありますが、これはハードウェアRoTを使用することによって保証できます。この機能は、電源投入時にブート・プロセスが正しいことを確認するのに最適です。また、デバイスの動作中に証明書を適切に認証することが必要なアプリケーションなどでも使用できます。一般的な暗号処理の例としては、RSA署名チェックや楕円曲線DSA(ECDSA)があります。

 

ストレージ保護はSoC上の平文データを取得し、暗号化と認証を使用して安全に保護できるようにします。この保護機能は、DUK(Device Unique Key)を使用してデバイス・バインディングを実行します。DUKは、DUKを持つデバイスしか正しく読み出すことができません。

 

セキュア通信は、認証および鍵交換の手順が正しく完了した後に利用できます。通常、セキュア通信では暗号化に一時的な対称セッション鍵を使用し、それ以外の場合は認証にHMAC鍵を使用します。これらの鍵(プロトコルからの一時マスター鍵も含む)はハードウェアRoT内部で生成されるため、オンチップ攻撃から保護され、秘匿性が守られます。

 

鍵管理秘密鍵をハードウェアRoT内部に保持します。この鍵へのアクセスは間接アクセスのみが許可され、アプリケーション層でパーミッションとポリシーによって管理されます。特権レベルが適切であると仮定すると、鍵のインポートには認証が必要で、鍵のエクスポートには鍵の保護が継続されるようにラッパーを使用する必要があります。一般的な鍵管理アプリケーションの例として、PKCS(Public Key Cryptography Standard)#11インターフェイス・アプリケーションを使用してポリシー、パーミッション、鍵ハンドリングを管理するハードウェア・セキュア・モジュール(HSM)があります。

ハードウェア・セキュア・モジュール

DesignWare tRoot H5 Hardware Secure Module(HSM)は強力なセキュリティを実現するシノプシスのハードウェアRoTで、これを使用したネットワーク接続機器は、安全かつ一意に自分自身を識別および認証して、リモート・デバイス管理およびサービス・デプロイのためのセキュアなチャネルを構築できます。先進の設計に基づいたtRootは、電源オフ、ブート時、実行時、および他のデバイスやクラウドとの通信時にデバイスを保護し、複雑な脅威に対処します。tRootはデバイスのライフサイクル全体を通じて一貫してセキュリティの問題に対処し、消費電力、面積、性能を最も効率よく組み合わせたSoC設計を可能にします。

図2:DesignWare tRoot H5 Hardware Secure Module with Root of Trust

DesignWare tRoot H5 HSMではTEEがハードウェアに隔離されており、高レベルのセキュリティが実現します。サポートされるセキュリティ機能はCPU上で動作するソフトウェアによって定義されるため、スケーラビリティと柔軟性も向上します。セキュア命令コントローラやセキュア・データ・コントローラなどのロジック・ブロックを使用すると、将来的なセキュリティ機能の拡張も可能です。tRoot HSMはマルチステージ・セキュア・ブート、セキュア・アップデート、セキュア・デバッグなど多くのセキュリティ機能をサポートしています。また、PKCS#11インターフェイスを使用して静的な鍵と一時鍵の両方を管理できる鍵管理もサポートしています。

 

tRoot HSMは、システムの既存のメモリー・リソースを共有できるため、メモリーをロックしなくてもシステムにインプリメントできます。将来のセキュリティ要件および規格にも効果的に適応できる独自のアーキテクチャにより、機能、サービス、環境をパーソナライズでき、爆発的成長を続けるIoT市場を含め、多くの市場でビジネスの成長と収益化を実現できます。これ以外にも、tRootはリモートからのデバイス/機能有効化、セキュアな鍵プロビジョニング/管理、セキュア通信、フィールドでのセキュア・ファームウェア・アップデートなど幅広い機能をサポートしています。