バックナンバーはこちら

today&tomorrow

Technology Update

2019 vol.112

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つを定義できます。

  • 保護ハードウェアが提供するTEE(Trusted Execution Environment)で特権ソフトウェアを実行すること。
  • AESベースの暗号など、少なくとも1つ以上の実証済み暗号機能を実行すること。
  • 何らかの形の改ざん保護が存在しており、デバイスの動作中はいつでも利用できること。
  • 柔軟かつシンプルなユーザー・インターフェイスからホスト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)へのセキュアなアクセスが必要です。情報が改ざんされないこと、および情報へのアクセスが改ざんされないことが重要です。

カテゴリートップ