ペンタセキュリティ社特別寄稿
自動車会社の技術者と自動車セキュリティ関連の会議をするとき、前に比べて雰囲気が相当変わったことを直感する。何だか重工業系にはハードルの高さがあり、高い壁のように感じられたが、このごろは結構ソフトになった気がする。「自動車会社は、ソフトウェア開発会社」の宣言前後、確実に変わったようで、言葉が人の心に及ぼす影響は本当に大きいな、と改めて驚いた。そして、今日の自動車の技術的性質から見て、これは非常に肯定的な変化だと考えられる。
ところで、会話が原論的なレベルから実務的なレベルに移動するころ、確実な変化に到達するにはまだ早い気もする。頭の中では、「そう、ソフトウェアだ。」と考えを改めたとしても、身にくっついた癖を変えることはなかなか容易なことではないらしい。相変わらず自動車産業はソフトウェアではなく、ハードウェアの組立産業として認識される。そのため、ある問題についても組立の単位である部品を中心に考える癖が残っている。自動車セキュリティ問題もまたどんな部品の機能ぐらいに考える傾向がある。ソフトウェア的に考えると、これはかなり間違った認識だ。
ここで、現場でよく聞かれる質問に答えることで、「自動車=ソフトウェア」の等式を改め考えてみよう。
「自動車部品にどのようなセキュリティ機能を搭載しなければならないのか?」
原論的に言えば、セキュリティは「機能」ではない。
ソフトウェアの世界では、セキュリティ自体を必要によって追加する付加的機能とは思わない。いつもセキュリティを考慮し、システムを「設計」しなければならない。セキュリティを無視する開発者は、結局大きな問題を起こしてしまう。決定的に、セキュリティに関する機能があるとしても、そのソフトウェアが自然に安全になることもない。総体的に安全なシステムを設計することがセキュリティ的に最も重要なことだ。
実務的な目線から考えても、セキュリティ機能が必要な部品があり、またそうではない部品がある。自動車の通信領域を大きく「内部(Internal)」と「外部(External)」、この二つに分けてみると、内部通信領域に該当する部品は大体特別なセキュリティ機能を別途に追加する必要がない。主に「CAN(Controller Area Network)」で通信し、自動車走行に関連する各種の装置を制御する内部ECU(Electronic Control Unit)がこれに該当する。それらはセキュリティ機能の追加ではなく、外部の危険からの「隔離」が必要なことである。セキュリティ機能は、CCU(Communication Control Unit)を通じて車の外部と通信する領域に搭載して徹底的に管理するのが一般的に適切な設計だ。外部通信と直接関わる「テレマティックス(Telematics)」や「インフォーテインメント(Infotainment)」などがこれに該当される。
特にECUの中、駆動装置やブレーキ装置など自動車の走行と直接関わる部品は最初から与えられたそれぞれの目的に充実した単純な四則演算のみを遂行することがソフトウェア的にはむしろ安全だ。単純なことは、単純であるべきだという意味だ。安全に設計されたシステムであれば、米国の自動車セキュリティ及びプライバシー保護「SPY CAR(The Security and Privacy in Your Car)」法案でも言及しているように、セキュリティが必ず必要な領域とセキュリティが不必要な領域を安全に分離したシステムであれば、MCUなどの部品には暗号化や鍵管理などのセキュリティ機能を別途に搭載する必要はない。むしろ無駄な複雑性のために予期せぬ誤作動などの危険性ばかりが高まるのだ。
「コネクティッドカーのためには全ての部品にセキュリティ機能を搭載しなければならないと?」
いや、むしろ安全のためにも避けるべきことだ。
「コネクティッドカー」とは、無線通信を通じてナビゲーション、リモートコントロール、インフォーテインメント、自律走行などのサービスとして、自動車を単純な輸送手段の概念を超えて情報通信機器として変化させる技術を通称する概念である。上記のとおり、自動車の外部通信に関わる問題だ。内部通信領域とは分離して考えなければならない。
簡単に言えば、「コネクティッドカーセキュリティ」とは、自動車内部のECU間の通信を外部通信から隔離することで安全に守ることだ。つまり、車の外部から内部装置を任意で操作することは不可能でなければならないという意味だ。そのため、コネクティッドカーのために「全て」の部品にセキュリティ機能が搭載されなければならないというのは意味がない言葉である。正確に分析されたセキュリティ的な必要性に応じて、必要であるセキュリティ機能だけを必要である適材適所に適用すること、すなわち、安全なシステムの設計こそ自動車のソフトウェア的完全性を成し遂げる正しい方法だ。
「それなら、なぜそんなにセキュリティ部品を買わなければならないと言うのか?」
まずは、自動車セキュリティ技術の全般に対する理解不足であると考えられる。部品企業の事業戦略的な必要も疑ってみることができるのだろう。「電裝(E/E、Electrical/Electronic Components)産業が自動車産業の未来」という言葉は全く過言ではない。自動車製造の原価で電装部品が占める比率は、現在35%くらいで、すぐ50%を超えると予想される。それで、全世界に渡って競争がとても激しいというわけだ。当該市場の既存の強者たちだけでなく、後発走者の世界的な電子企業が莫大な資本力を武器として、徐々に拡張する電裝市場を狙って飛びかかる。
例えば、韓国のサムスン電子が米国のオーディオ専門企業でありハマーン(Harman)を80億ドルに買収したことも、電裝事業の未来価値のためである。つまり、自動車会社の立場からもそんな部品会社に事業的に従属されないためにも、電装部品を直接生産する計画を立てざるを得ない状況だ。そのため、既存製品とは異なる技術的な特殊性が誇張されるものであるだけで、その特殊性が実際に必要なのかとは全く無関係な話だ。自動車セキュリティの技術の観点から見ても、不必要な演算を浪費するだけだ。
「コネクティッドカー時代に備え、自動車会社はどんな仕事をしなければならないのか?」
答えは、セキュリティだ。つまり、安全なシステムの設計だ。10年後、最も重要なIT技術は自動車セキュリティだろうと展望する。ソーシャルネットワーク、クラウドコンピューティング、ビックデータ、IoTなどのあらゆる技術よりも自動車セキュリティがよほど重要だ。他のものに比べ、自動車セキュリティは、人の命がかかっていることだからだ。いくらよくやってきたとしても、一回のミスで企業の存亡まで危険になる恐れがあるのだ。コネクティッドカーは、ハードウェア及びソフトウェア的にもまずは安全でなければならない。便宜性などその他の性質は、安全性より優先的にはなれない。
そして、ソフトウェア的な完全性に挑戦しなければならない。過去の自動車は、「機械装置」だったが、未来の自動車は「電子装置」だ。今も車両1台に100個ぐらいのECUと1億行ぐらいのコードが搭載される。高価の車両であればあるほど、搭載された電装部品の数が多く、「もっと多くのコードを入れた」と自慢らしくない自慢をしたりもする。しかし、統計的に見ると、商業用ソフトウェアは一般的にコード1,000行に7つのバグを持っている。これを考えると、自動車には10万個のバグがあると仮定することができる。今も絶えず発生する原因を知らないあらゆる事故がこれと全く関係がないとは言えないだろう。だから、ソフトウェア開発社がそうであるように、ソフトウェアとしてのクオリティ管理とプログラムの動作には変化なくプログラム内部の構造を改善するリファクタリングなど、事後確認作業を通じてソフトウェア的最適化に集中することを勧める。そんなことをきちんとこなすだけでも現在原因不明の問題が大幅に解消すると予想する。
そして改め強調するが、従来のハードウェア組立産業のパラダイムから抜け出せなければならない。
自動車会社は、ソフトウェア開発会社として、自動車を「安全なシステム」で「設計」することに集中しなければならない。その仕事は、部品会社など他の誰かが代わりにしてあげられないことだ。これまで自動車は高価な部品と安い部品で完成品の価格を調節した。従って、値段が10倍以上の差がある製品群が成立可能だった。10倍高いが、10倍もっと良いオーディオは可能だ。しかし、10倍安全なセキュリティは可能なんだろうか。最も高い車より10倍安いからといって10倍不安な自動車を販売することになるのか。安全のためにも、自動車セキュリティの問題は部品基準の考え方で解決できる問題ではない。部品とは関係なく、安全なソフトウェアシステムを設計し、これを低価の車と高価の車に全部適用すべきことだ。
「自動車会社は、ソフトウェア開発会社」、そうなることを期待し、また応援する。
- トピックス:
- セキュリティ