クルマの総合的長期的なセキュリティの最新動向
2017/11/2(木)
自動運転車、コネクティッドカーなど、クルマがインターネットとつながることで発生するリスクがある。クルマがサイバー攻撃を受けた際の具体的なセキュリティ対策について、ルネサスエレクトロニクス㈱の島崎靖久氏が「クルマの総合的長期的なセキュリティの最新動向について」の講演を行った。
[LIGARE vol.34 (2017.7.31発行) より記事を再構成]
現在、欧州の国が中心となり、日本・欧米・北米でクルマのセキュリティを標準化している。日本ではセキュリティのISOを策定する動きがある。自動運転、コネクティッドカーは日々進化しているので、クルマ業界の各メーカーもISOの策定と同時進行でどのような仕様にするかが議論されている状況だ。
セキュリティは何らかの脅威に対してそれを防御するというのが発想の原点である。高度なセキュリティを求められるカードICの技術は脅威が想定できる。クレジットカードを攻撃してお金を得るという攻撃者の目的がはっきりしているので、ある程度の対策は可能である。クルマは考えられる脅威の範囲が広く、攻撃者は何のためにクルマを攻撃するのかが明確ではない。侵入の方法も増えてきているため、考えられる脅威の範囲はますます広がっている。
CMACはある送信ECUから受信ECUに向かって送信されるデータが正しいかどうかを確認する。データと128bitの秘密鍵を使用してある暗号演算を行い、CMAC認証コードを生成する。受け側では受信したデータと共有している128bitの鍵を使って同じようにCMACと呼ばれるコードを生成する。送られてきたCMACコードと自分で生成したCMACコードが一緒であればデータが正しいことが確認できる。ECUを制御する上位のレイヤーが乗っ取られてしまうと、この手段自体も改ざんされてしまうという問題がある。
リプログラミングは、プログラムが変更されてしまった場合に正しいプログラムに書き換える必要があるため、セキュリティ対策としては必要な機能だ。しかしながら、悪用されて誤動作になったケースがるように、攻撃者にとってはいい対象・手段になることもある。
Over the airは外側からの通信で内部のプログラムを書き換えるもの。制御ECUを書き換える際に、ダウンロードしたプログラムを一度別のOTA用のECUに格納し、その後に書き換えるという方法が一般的な方法だ。デメリットは書き換えに時間がかかることである。非常に長い時間を要するため、自動車の走行中にプログラムを書き換えるということが困難だ。一つのECUの中にプログラムをダウンロードし、その中でOTAリプログラミングをする方法にすると書き換え時間を短くすることが可能だ。この場合、不揮発性のメモリ領域が必要になるというデメリットもある。
ECUの中のプログラムはフラッシュロムなどに格納されている。セキュアブートは、それ自体が書き換えられていないことを電源ON時に確認するセキュリティの方法である。信頼の根幹となる部分は何かをたどっていくとECUやマイコンの中のプログラム、またはそこに格納されている鍵であるということにいきつく。
カードICの防御で一番難しいのは鍵を盗まれないようにすることだ。カードICの場合はCC認証という認証制度でセキュリティの強度を調査し、それに合格しているかを確認する。クルマ向けのセキュリティは特に認証制度が確立していない。格納されている秘密鍵を盗み出すには非常にコストがかかる。攻撃者がコストをかけて攻撃してくるのか、どのような想定をするかによって防御方法が変わってくる。現在、議論の最中で、最終的に非常に強固な鍵の防御が必要になれば、カードICのようにハードウェアの鍵を防御する対策が取られてくるだろうし、想定する必要がないといった結論になればソフトウェアで何らかの対策をすることになるだろう。
[LIGARE vol.34 (2017.7.31発行) より記事を再構成]
コネクティッドカーに潜むリスクとセキュリティ
ある大学からクルマのECUを攻撃することができるという論文が発表された。2013年のDEFCON、2015年のBlack Hat、2016年にはテスラのクルマに対する攻撃が発表され、クルマへのサイバー攻撃が世間に認識されるきっかけとなっている。コネクティッドカーや自動運転車を脅かす存在であるサイバー攻撃のようなリスクに、どのように対応していくか、OEM、Tier1ととも一緒に考えていく必要がある。現在、欧州の国が中心となり、日本・欧米・北米でクルマのセキュリティを標準化している。日本ではセキュリティのISOを策定する動きがある。自動運転、コネクティッドカーは日々進化しているので、クルマ業界の各メーカーもISOの策定と同時進行でどのような仕様にするかが議論されている状況だ。
セキュリティは何らかの脅威に対してそれを防御するというのが発想の原点である。高度なセキュリティを求められるカードICの技術は脅威が想定できる。クレジットカードを攻撃してお金を得るという攻撃者の目的がはっきりしているので、ある程度の対策は可能である。クルマは考えられる脅威の範囲が広く、攻撃者は何のためにクルマを攻撃するのかが明確ではない。侵入の方法も増えてきているため、考えられる脅威の範囲はますます広がっている。
考えられるセキュリティ対策
有名なクルマのハッキング事件があった。セルラーのネットワークからクルマに侵入してCANのメッセージを改ざんし、クルマをコントロールしたというものだ。考えられる対策としてCMAC(メッセージ認証)によるCANメッセージの認証、Over the airで書き換えるリプログラミング、セキュアブートなどの方法がある。CMACはある送信ECUから受信ECUに向かって送信されるデータが正しいかどうかを確認する。データと128bitの秘密鍵を使用してある暗号演算を行い、CMAC認証コードを生成する。受け側では受信したデータと共有している128bitの鍵を使って同じようにCMACと呼ばれるコードを生成する。送られてきたCMACコードと自分で生成したCMACコードが一緒であればデータが正しいことが確認できる。ECUを制御する上位のレイヤーが乗っ取られてしまうと、この手段自体も改ざんされてしまうという問題がある。
リプログラミングは、プログラムが変更されてしまった場合に正しいプログラムに書き換える必要があるため、セキュリティ対策としては必要な機能だ。しかしながら、悪用されて誤動作になったケースがるように、攻撃者にとってはいい対象・手段になることもある。
Over the airは外側からの通信で内部のプログラムを書き換えるもの。制御ECUを書き換える際に、ダウンロードしたプログラムを一度別のOTA用のECUに格納し、その後に書き換えるという方法が一般的な方法だ。デメリットは書き換えに時間がかかることである。非常に長い時間を要するため、自動車の走行中にプログラムを書き換えるということが困難だ。一つのECUの中にプログラムをダウンロードし、その中でOTAリプログラミングをする方法にすると書き換え時間を短くすることが可能だ。この場合、不揮発性のメモリ領域が必要になるというデメリットもある。
ECUの中のプログラムはフラッシュロムなどに格納されている。セキュアブートは、それ自体が書き換えられていないことを電源ON時に確認するセキュリティの方法である。信頼の根幹となる部分は何かをたどっていくとECUやマイコンの中のプログラム、またはそこに格納されている鍵であるということにいきつく。
カードICの防御で一番難しいのは鍵を盗まれないようにすることだ。カードICの場合はCC認証という認証制度でセキュリティの強度を調査し、それに合格しているかを確認する。クルマ向けのセキュリティは特に認証制度が確立していない。格納されている秘密鍵を盗み出すには非常にコストがかかる。攻撃者がコストをかけて攻撃してくるのか、どのような想定をするかによって防御方法が変わってくる。現在、議論の最中で、最終的に非常に強固な鍵の防御が必要になれば、カードICのようにハードウェアの鍵を防御する対策が取られてくるだろうし、想定する必要がないといった結論になればソフトウェアで何らかの対策をすることになるだろう。