Cyber security for Passive Keyless Entry Systems

リモート/パッシブ・キーレス・エントリー・システムにおける脆弱性の軽減

キーレス・エントリーおよびエンジンスタート・システムは、1990年代後半から2000年代前半にかけて現れ、当初は高級モデルなどのハイエンド車のみに搭載されていました。以降、リモート/パッシブ・キーレス・エントリー(RKE/PKE)機能は、自動車の機能として広く一般的になり、現在では販売されている大半の車両に標準装備として搭載されています。

キーレス・エントリーの普及と利便性は誰もが認めるところです。しかし、他の多くの技術進歩と同様に、RKE/PKEシステムはハッカーから、そして特にこの技術は自動車窃盗犯からの攻撃を受けやすいということが挙げられます。 

このようなサイバーを悪用した自動車盗難の可能性を考慮し、自動車メーカー(OEM)と自動車サイバーセキュリティの専門家は、この脅威の軽減策を模索しています。この記事では、RKE/PKE攻撃の性質と進化、この技術がハッカーからの攻撃に対して潜在的に脆弱である理由、およびRF攻撃を軽減し、車両フリート全体のセキュリティを強化するためにOEMが取り得る対策について考察していきます。

リモートキーレスエントリー(RKE)システム

リモート・キーレス・エントリーとは、物理的なキーを使わずに(例えば、ドアキーパッドやリモコンを使って)車に乗り込むことを指します。最初のRKEキーは、コード化されたパルス信号発生器とバッテリー駆動の赤外線放射器を使用していました。キーは特定の信号を送信するように設定され、車はその信号に反応するようにプログラムされていました。 

リプレイ攻撃

この保護されていない信号を悪用して、ハッカーたちは「古典的な」リプレイ攻撃を考案しました。この攻撃では、キーと同じIR周波数を記録し、任意のタイミングで送信する装置を使用します。ドライバーが解錠ボタンを押すと、ハッカーはこの信号を記録し、後でそれを再生してドアを解錠することができます。ただし、この方法は、キーから送信される解錠の信号が常に同じ場合にのみ機能します。

Cyber security for Passive Keyless Entry Systems
Replay attack

このような攻撃を防ぐため、キーから車に送信されるメッセージにローリング・コード・フィールドが導入され、同じ解錠信号が繰り返し使用されないようにしました。車とキーは、解錠用と施錠用の2つのコードシーケンスを共有します。例えば、Xnは解錠用のn番目のローリングコードであり、Ynは施錠用のn番目のローリングコードとします。すべてのシーケンスは、暗号論的擬似乱数生成器(CSPRNG)を使用して定義されます。解錠ボタンをn回目に押すと、キーはコードXnを送信します。車は受信したローリングコードと想定されるローリングコードとを比べ、それに応じて車の解錠または施錠が実行されます。

RKE攻撃に続く攻撃: ロールジャム攻撃

前項で紹介したセキュリティー改善策は、ローリング・コードをバイパスするように設計された「ロール・ジャム」攻撃に進化しました。ロール・ジャム攻撃は、ローリング・コードを記録し、キーからのRF信号を妨害して車がこれを受信することを妨害します。この攻撃シナリオは、以下のステップで構成されます。

  1. ドライバーは解錠ボタンを押し、車のロックを解除する最初のコードであるX1を送信します。攻撃者は信号を妨害し、X1の値を入手します。妨害されたため、車は信号を受信できず、施錠されたままです。
  2. ドライバーは再び解錠ボタンを押し、X2を送信します。攻撃者は信号を妨害し、X2の値を手に入れます。ステップ1と同様、車は施錠されたままです。
  3. 攻撃者はX1を送信し、ドライバーのために車を解錠します。
  4. 運転から戻ったドライバーは駐車し、施錠用のローリングコードであるY1を送信して車を施錠します。
  5. その夜に、攻撃者は車の解錠コードX2を送信し、車を解錠することができます。
Roll Jam Attack

セキュリティの観点から見ると、上記の実装の主な弱点は、解錠と施錠のローリングコードが互いに独立していることです。しかし、ローリングコードを共有するだけでは、ロールジャム攻撃の新たなバリエーションに対応できません。攻撃者は、連続して送信を妨害し、解錠コマンドのローリングコードを入手し、有効な施錠コマンドを作成することができます(または、施錠コマンドを妨害して、解錠コマンドを作成する逆のシナリオも成立します)。したがって、ローリングコードを共有することに加えて、攻撃者が送信を妨害して入手したローリングコードに基づいてコマンドを作成できないように、メッセージに署名する、または暗号化することが重要です。これは、AES-CMACやHMACのような、暗号学的に安全なメッセージ認証コード(MAC)と、長い共有秘密鍵を使うことで実現できます。

パッシブ・キーレス・エントリー(PKE)システム

パッシブ・キーレス・エントリー(PKE)は、ドライバーがポケットからキーを取り出すことなく車に乗り込みエンジンを始動できるようにしたことで、利便性をより高いレベルに引き上げました。RKEから学んだ教訓に基づき、基本的なPKE通信は、キーの身元を認証するために車から送信されるチャレンジと、キーから送信される暗号計算されたレスポンスで構成されています。

ほとんどのPKEでは、キーと車は、レスポンスの生成と検証に使用される長いランダムな秘密鍵を共有しています。キーはチャレンジに対して暗号関数を実行し、レスポンスを生成します。

リレー攻撃

PKEはキーと車の近接性に基づいているため、送信機の電波が到達できる距離に固有の制約があります。この距離の制約を回避する方法として考案されたのが、悪名高い「リレー攻撃」です。これは2人組の攻撃者が協力して実行します。一人の攻撃者は車の近くにいて、もう一人はキーの近くにいます。それぞれの攻撃者は、長距離(例えば4GやWiFiを使用して)対応のトランシーバーを使い、車とキーから送信されたメッセージを転送します。

下図のように、攻撃者Aはチャレンジを送信させ、それを攻撃者Bに転送します。攻撃者Bはこれをキーに送信し、キーはチャレンジに対しレスポンスを送ります。攻撃者Bはそれを攻撃者Aに転送し、攻撃者Aはそれを車に再送信します。

Relay attack

リレー攻撃を軽減するためのベストプラクティス

緩和策1:応答時間の上限を設定する

リレー攻撃を軽減する方法の1つは、応答時間に上限を設けることです。波動は光速で伝搬するため、車のチャレンジ送信からレスポンス受信までの往復時間を測定することで、距離の上限を推定することが可能です。UWB技術を使えば、精度の高い測定が可能になります。

緩和策2:RSSIを使用してキーの位置を推定する

もう1つの緩和策は、信号強度によってキーと車の距離を特定するRSSI(受信信号強度インジケーター)を使ってキーの位置を推定することです。車は複数のアンテナからチャレンジを送信します。キーは各アンテナのRSSI値で応答し、車はそれらの値を使って位置を推定できます。

しかし、ハッカーが位置推定アルゴリズムを「出し抜く」方法があります。RSSIはキー側で測定されるため、2人組の攻撃者は、キーの近くで増幅したチャレンジ信号を送信してRSSI値を増大し、キーが実際よりも近くにあると車を「騙す」可能性があります。

この緩和策のもう1つの問題は、その値が署名または暗号化されていないことです。つまり、デジタル攻撃者は復調器を使って送信されたデータを抽出し、RSSI値を変更した後、再び信号を変調することができます。ローカライズにRSSIを使用する場合は、これらの値に署名または暗号化することをお勧めします。

緩和策その3:モーションセンサーの統合

リレー攻撃を防ぐため、キーによっては、アイドル期間を検出するモーションセンサーを組み込んでいます。設定された秒/分後に動きが検出されなければ、キーはチャレンジに応答しなくなります。言い換えれば、キーが一晩中キッチンテーブルの上にあれば、攻撃者はあなたの車に対してリレー攻撃を行うことはできません。

既知のチャレンジ・リレー攻撃

もう1つの理論的なハッキングシナリオは、チャレンジが予測可能であることを悪用する既知のチャレンジリレー攻撃です。例えば、次のチャレンジは前のチャレンジに1を足したものです。例:0, 1, 2, …, 0xFFFFFFFF。またはチャレンジがLCG、LFSRなどの暗号学的にセキュアでない乱数生成関数を使用して生成される場合、PRNG関数を知っているか、それを正しく推測した攻撃者は、完全なチャレンジシーケンスを作成することができます。

古典的なリレー攻撃(前述)と同様、このシナリオでもキーと車は離れていますが、今回は攻撃者は1人だけです。彼は車からのチャレンジを送信させ、次に車が送信するチャレンジを予測します。その後、攻撃者はキーに近づき、予測したチャレンジを送信します。キーはそれにレスポンスを送信します。その後、攻撃者は車に戻り、別のチャレンジを送信させます。そのチャレンジが攻撃者の予測したものであった場合、攻撃者はキーから記録したレスポンスを送信することでそのチャレンジに対応し、車を解錠して発進させることができます。

Known Challenge Relay Attack

このシナリオを防ぐために検討すべき1つの方法は、高いエントロピーのシードを持つCSPRNGを使用することで、確実にチャレンジが予測不可能なものにすることです。もう一つの提案は、車に全てのチャレンジに署名させることです。こうすることで、たとえ攻撃者がチャレンジを予測できたとしても、レスポンスを得るためにキーに送信できなくなります。

セキュアな実装が勝負

自動車の盗難は、自動車が発明されて以来、ずっと問題となっています。今日に至るまで、使用するツールが進化しているものの、セキュリティの専門家と窃盗犯のいたちごっこが続いています。

RKEとPKEは、OEMにとって多くのセキュリティの課題を生み出しています。安全でないRKEの実装により、最近のロールバック攻撃はじめ、さまざまなバリエーションのリプレイ攻撃やロールジャム攻撃にさらされることが分かっています。攻撃者がキーから入手したメッセージを変更できないように、メッセージは署名または暗号化されるべきです。 

PKEの実装に関しては、ランダム化のために高エントロピーのシードを使用し、チャレンジを暗号化するためにCSPRNGを適用することによって、確実にチャレンジを予測不可能なものにすることが重要です。RSSIを使用して位置を推定する場合、これらの値も改ざんを防ぐために署名または暗号化する必要があります。

さらに、欠陥のある実装の中には、セキュリティ対策をアップグレードすることで軽減できるものもあります。多くの場合、既知の脆弱性を修正するには、BCMおよび/またはキーのいずれかのソフトウェア更新で十分な場合があります。このため、オーバー・ジ・エア(OTA)アップデート機能を提供するOEMは、必然的に発生する次世代の攻撃に効率的に対応するための最良の体制を整えていると言えます。

自動車盗難を防ぐ万能策はありませんが、上記の軽減策と対策を適切に実施すれば、キーレス・エントリーのハッキングの大半を回避するための強力なベースラインになると思われます。