車載セキュリティの要!HSMとは?
........
- 更新日
- 2024.08.09
- 公開日
- 2024.04.12
低炭素社会に向けた自動車の電動化やIoTの広がりによって、ネットワークに常時接続されるコネクテッドカーが増えてきています。便利なサービスを受けられる一方で、セキュリティに対するリスクが高まっています。本記事では、自動車を不正なアクセスから保護する重要な役割を果たすHSM(Hardware Security Module)について解説します。
INDEX
1.自動車に対するセキュリティ脅威
昨今、自動車を含めた各分野における製品のネットワーク化が進んでいます。製品のファームウェアアップデートはもとより、クラウド上でデータを管理することにより高度な制御が実現されてきています。製品がインターネットと繋がり利便性が上がる一方で、サイバーセキュリティ上の脅威は増大しています。
下のグラフは、NICT(情報通信研究機構)が発表しているサイバー攻撃関連通信数の推移です。2020年から急激に増加しており、重大な被害に繋がることが懸念されています。
自動車業界においても、車両自体がネットワークと繋がることや、自動車の生産工場の設備がインターネットと接続されることでサイバー攻撃を受ける脅威が増大しています。2022年には国内大手自動車メーカの部品生産工場がコンピュータウイルスによる攻撃を受け、全工場が操業停止に追い込まれました。このような事態を目の当たりにして、業界全体でサイバー攻撃に対する危機感が高まっています。
セキュリティの被害として、その他には自動車の盗難もあげられます。下の表は、自動車の盗難件数の推移を表しています。2022年までは減少傾向だったものの、ここ数年は増加しています。
自動車へのサイバー攻撃の主な侵入経路を下の図に示しました。USB等のインタフェースを悪用して侵入する方法や、インターネット回線を通じてクラウド上から侵入する方法などがあります。
自動車盗難のケースでは、スマートキーの無線電波の悪用や、車内の信号線に直接アクセスして車両を不正制御する手法などが主流になってきています。
<自動車盗難の侵入例>
- コードグラバー :スマートキー操作で発生する電波を傍受し、偽のスペアキーを作成して開錠する。
- リレーアタック :スマートキーの微弱電波を拾って増幅し、キーが近くあるように装って開錠する。
- CANインベーダー :車両のCAN通信に偽のデータを送信して、制御システムを乗っ取る。
2.HSM(Hardware Security Module)の必要性
この章では、自動車のセキュリティ対策概要と、暗号処理におけるHSMの必要性を解説します。
2-1.セキュリティ対策方法
自動車をサイバー攻撃から防ぐためのセキュリティ対策には、以下のようなものが考えられます。
1.ソフトウェアに対する署名と認証
→ ECUのソフトウェアに暗号技術を用いてデジタル署名を付け、認証されたソフトウェアのみが実行されるようにします。
2.ネットワークセキュリティ
→ ECU間の通信において、通信相手が正しい相手かどうかを確認してから通信を開始します。さらに通信のデータを暗号化し、盗み見られないようにします。
3.ハードウェアに対する物理的な攻撃からの保護
→ ECU内のセキュリティを担うデバイスは、分解したり、外部から物理的に観測されることで情報を抜き取られる恐れがあります。重要な情報にマスクをかける等、抜き取られにくい仕組みを用いることによって保護します。
4.セキュアな開発プロセス
→ 開発プロセスをセキュリティ観点から見直すことで、脆弱性を含みにくくします。自動車のサイバーセキュリティ対策として国際規格ISO/SAE21434が提唱されています。
ここからは、上記1、2の対策方法として必要な暗号化について説明します。
<暗号化の仕組み>
暗号化を行う方法は複数ありますが、一般的には暗号アルゴリズムと鍵を用います。鍵とは平文データを暗号化する際に用いる文字列のことであり、暗号化したデータを元に戻す際にも必要となります。
暗号アルゴリズムには、AES、RSA、ECCなど複数の種類があります。しかし、いずれも計算手法は全て公開されており、第三者に鍵が漏洩すると元のデータを復元されるリスクがあります。そのため暗号技術においては、鍵が第三者に漏洩しないことが最も重要です。
2-2.暗号鍵を守るHSM
暗号化に用いる鍵は、システム内のどこかに格納されます。セキュリティ対策が講じられていないシステムでは、以下のようなケースで鍵を抜き取られてしまう危険性があります。
<セキュリティ対策が講じられていないシステム>
① ROMに書き込まれた鍵の不正な読み取り
② 通信経路からの送受信データに含まれる鍵の盗聴
③ 演算中に使用されるRAMに書き込まれた鍵や平文データの不正な読み取り
このように簡単に鍵を抜き取ることができ、暗号化していても鍵や平文データが漏洩してしまう恐れがあります。ここでHSMの出番です。
<HSMを使用したシステム>
HSMは暗号技術に特化した機能モジュールで、鍵を安全に保護できます。暗号/復号処理はHSM内部で完結されるため、鍵がHSM外部へ出ることはありません。また、HSMへのアクセスには制限が設けられ、HSM内の鍵に外部からのアクセスもできません。これにより、通信中のデータの解読に鍵が不正使用されることを防ぎます。
3.HSMとは?
HSMは、一般的にハードウェアでセキュリティ関連の制御(暗号鍵の生成や保管など)を行い、国際標準規格を取得しているモジュールの呼称です。
*国際標準規格としては、米 FIPS や 欧州Common Criteria、JCMVP等があります。
3-1.HSMの特長
特長としては以下のようなものがあげられます。
- 鍵管理
→ 鍵の生成・保管を行います。鍵を用いる処理は内部で行われるので、外部へ漏洩するリスクを抑えられます。
- 暗号化機能
→ データの暗号化や復号、署名、認証などの機能を提供します。
- 耐タンパ性
→ 外部からの不正な操作や改ざんに対して、内部の鍵やデータを保護します。
マイコンに内蔵されるHSMの構成例を下図に示します。HSMの内蔵機能の詳細については、4章で解説します。
3-2.車載マイコンのセキュリティ基準
自動車内のマイコンのセキュリティ基準としては、EVITAとSHEがあります。
・EVITA(E-safety Vehicle Intrusion Protected Applications):欧州の自動車セキュリティを強化するプロジェクト
・SHE(Secure Hardware Extension):AUTOSARによって標準化されたセキュリティ規格
EVITAにはFull/Mid/Lightの3段階の基準があり、アプリケーションによって適用される基準が異なります。これらは国際規格ではなく、マイコンに対してオンチップで組み込むために定められたセキュリティ基準です。EVITA・SHEで求められる機能は下記表のようになっています。各要求機能にHSMが対応していることを確認する必要があります。
機能 |
EVITA-Full |
EVITA-Mid |
EVITA-Light |
SHE |
Internal CPU |
〇 |
〇 |
× |
× |
Internal ROM |
〇 |
〇 |
option |
〇 |
Internal RAM |
〇 |
〇 |
option |
× |
RNG |
〇 |
〇 |
〇 |
〇 |
暗号エンジン |
AES-128 ECC-256 WHIRLPOOL |
AES-128 |
AES-128 |
AES-128 |
AES-128:Advanced Encryption Standard(鍵長 128 bit)
ECC-256:Elliptic Curve Cryptography(鍵長 256 bit)
RNG:Ramdom Number Generater(乱数生成器)
WHIRLPOOL:ハッシュの一種
4.HSMの内蔵機能解説
この章では、HSMに搭載されている機能を紹介します。
Internal CPU/ROM/RAM
- CPU
EVITAの規定(EVITA-Light)においてCPUは必須ではありませんが、CPUが実装されている場合には以下のような長所があります。
性能と処理速度:
複雑な暗号操作や認証プロセスを高速で実行することが可能です。
柔軟性と拡張性:
既存の暗号アルゴリズムに対してアップデートや拡張が容易となり、新しいセキュリティ要件や規制に迅速に対応することが可能となります。
管理と運用:
HSMのセキュリティ機能の動作状態を管理・監視することが可能です。
- ROM/RAM
ROMには、起動時に必要なセキュリティプログラムと鍵や署名の保存を行います。RAMには、暗号化・復号処理中のデータが格納されます。
暗号エンジン
暗号エンジンは、暗号化や復号をハードウェアで行うモジュールです。ソフトウェアで行う場合に比べ、高速な暗号化・復号が可能となります。
HSMに搭載されている主な暗号アルゴリズムについて解説します。
- AES(Advanced Encryption Standard)
通信データの暗号化でよく使用される暗号化アルゴリズムであり、共通鍵暗号方式の一種です。AESはデータを一定の間隔で区切り、その間隔ごとに暗号化するブロック暗号方式を用いています。鍵の長さが128/192/256bitの共通鍵を使用して暗号化を行います。
- CMAC(Cipher-based Message Authentication Code)
AESと同様にブロック暗号を基盤とした暗号アルゴリズムですが、目的が異なります。AESは暗号化・復号によってデータの機密性を保護するために使用されるのに対し、CMACは改ざん検知に用いられます。データ送信側では、メッセージ認証コード(MAC)を生成するために使用されます。データ受信側では、送られてきたメッセージ認証コードが正しいことを確認するために使われます。
- ECC(Elliptic Curve Cryptography)
ECC(楕円曲線暗号)は、公開鍵暗号やデジタル署名などに使用される暗号アルゴリズムです。鍵は楕円上二点の座標を用いて生成されます。楕円上の二点の関係を計算で求めることは非常に難しいため、一方の鍵が公開されてももう一方を知られる心配はありません。また、従来のRSA方式と比べ鍵の長さが短くても、高いセキュリティレベルを保つことが特徴です。
RNG (TRNG/PRNG)
RNG(Random Number Generator)は、ランダムな数値を生成する装置です。主に真正乱数生成器(TRNG)と疑似乱数生成器(PRNG)の二種類があります。
- TRNG(True Random Number Generator )
TRNG(真正乱数生成器)はアルゴリズムではなく、物理的なエントロピー源(デバイスのノイズや、温度等)を利用してランダムな値を生成するため、予測不能な真の乱数生成が可能となります。
- PRNG(Pseudo Random Number Generator)
PRNG(疑似乱数生成器)は、シード値と呼ばれる初期値を用いて乱数を生成します。TRNGと違い、外部のエントロピー源に依存しないため高速な乱数生成が可能です。一方で、アルゴリズムによって乱数生成を行っているため、予測可能な値を生成する恐れがあります。
5.HSMの活用例(セキュアブート)
セキュアブートは、不正なソフトウェアや改ざんされたプログラムの起動を防ぐための機能です。起動前に実行するプログラムが正しいものか確認し、正しければプログラムを動作させます。セキュアブートでは、署名の認証に用いる鍵(ルート鍵)と、プログラムを暗号化・復号する鍵(データ鍵)を用います。
セキュアブートには様々な実装方法があります。以下ではプログラムを暗号化し、公開鍵暗号方式の署名を用いて認証するセキュアブートを例にして解説します。
■公開鍵暗号方式
「秘密鍵」と「公開鍵」の二つの鍵を一組として利用する暗号方式です。「秘密鍵」を用いて署名を行い、「公開鍵」で署名の検証を行います。「秘密鍵」は署名者のみが知っているため、第三者による署名のなりすましを防ぐことができます。
<プログラム開発時>
① 署名検証に用いるルート鍵(秘密鍵、公開鍵)と、暗号化に用いるデータ鍵を用意する
② プログラムをデータ鍵を使って暗号化する
③ データ鍵をHSMへ書き込む
④ 暗号化されたプログラムにルート鍵(秘密鍵)を用いて署名する
⑤ ルート鍵(公開鍵)をHSMに書き込む
<署名検証・復号>
① 電源投入後にセキュアブートプログラムが起動する
② ルート鍵(公開鍵)を使ってプログラムの署名を検証する
③ データ鍵を使ってプログラムを復号する
復号後は、プログラムが実行されます。②のステップで署名検証が失敗した場合はプログラムが実行されないため、復旧用の動作を事前検討しておく必要があります。
このフローでは、ルート鍵(公開鍵)とデータ鍵がHSMに格納されて保護されていることが重要です。もしルート鍵(公開鍵)を書き換えることができたら、悪意ある第三者が自身のルート鍵(秘密鍵)で署名したプログラムを実行できてしまいます。データ鍵が外部から読み取られた場合は、プログラムを解読されて悪用されるなどの恐れもあります。HSMによって鍵が保護されていることにより、安全なセキュアブートを実現できます。
6.まとめ
自動車内システムにおけるセキュリティ対策の重要性と、HSMを用いたセキュリティ対策について解説しました。HSMは、セキュリティを担保するために使用される暗号処理関連の機能モジュールで、特に鍵を安全に保護する観点で重要なデバイスです。
当社では、HSM搭載のSoCやマイコン、既存システムにアドオンして使えるHSMチップなどを取り扱っております。お気軽にお問合せください。
(執筆者:澁澤義隆)