IoT機器のRoot Of Trust(RoT)の実装と、セキュアなDvice LifeCycle Management(DLM)の必要性(後編)
前編では、急増するサイバー攻撃からIoTエンドポイント機器などを守るために、セキュリティを担保する「Root Of Trust(以下、RoT)」の概念が求められることについて触れ、国際セキュリティ標準規格「FIPS140-2」をベースにしたRoTをいち早く実装したルネサスのMCUについて紹介した。後編では、MPU単体のセキュリティのみならず、製品ライフサイクル全体でデバイスを守るために必要なIARシステムズのセキュリティツールについて見ていこう。
そもそも、なぜ組込みセキュリティは必要なのか?
IARシステムズは、1983年にスウェーデンで設立された、組込みシステム向け開発ソリューションのリーディングカンパニーだ。主力製品に「IAR Embedded Workbench」(C/C++コンパイラ、デバッガ)があり、最近では企業買収によりセキュリティにも注力している。
本題に入る前に、本誌読者にとっては釈迦に説法になるだろうが、念のため「なぜ、組込みセキュリティは必要なのか」という点に触れておこう。当然のことだが、近年急増するサイバー攻撃により、個人情報や顧客データが漏洩したり、組込み機器においては自社や他社の重要なIPを盗まれたりするリスクも高まっている。そこで欧米では国家や共同体単位で、セキュリティに対する法規制やガイドラインの制定、さまざまなベストプラクティスへの対応が進んでいるところだ。
たとえば欧州では、サイバーセキュリティアクトへの「EUサイバーレジリエンス法案」(Cyber Resilience ACT」の発行が今秋に予定され、2025年後半の適用を目指しているところだ。欧州へ製品を輸出する場合には、本法案をクリアしなければならない。
具体的には、IoT製品セキュリティに関する行動規範(Oct 2018)-13のベストプラクティス・ETSI EN 303 645 v2.1,1(June 2020)-13の条文(UKの13のガイドラインに基づく欧州基準) がべースになっている。このうち特に最初の3つの条文「初期パスワードを設定しない」「脆弱性に関する情報の公開方針を決める」「ソフトウェアを定期的に更新する」は必ず対応しなければならない。もし違反があればリコールや罰金が発生する。
一方、米国では前編で少し触れたアメリカ国立標準技術研究所(NIST)が定めた「FIPS140-2」が国際的なセキュリティ標準規格モデルとして広がっている。こういった動きを受けて、日本でも経済産業省が主導で経済安全保障を中心としたサイバーセキュリティ対策が打たれているところだ。
今後も多様な製品展開やメンテナンス、新たなビジネスモデルを実現していくためには、万全なセキュリティ対策や、安全なソフトウェアなアップデート、メンテナンス時の遠隔サポートなども新たに価値として求められるだろう。固体別のアクティベーション管理や、ライフサイクル管理、課金型の新ビジネスモデル創出も考えられる。そこで組込みセキュリティ対策は、これからも継続的にマストになるわけだ。
組込みデバイスにおけるセキュリティ対策ソリューションとは?
前出のようにセキュリティ対策が非常に重要である点はご理解いただけるだろう。とはいえ、実際にハードウェアにセキュリティ対策を講じようとすると、さまざまな観点からの配慮が必要で負荷も掛かる。たとえば対応すべき行為とセキュリティの方針や対策によって検討すべきことが非常に多く、一から実装しようとすれば大変なことになる。
そこで、これらをサポートするためにIARではセキュリティソリューションを用意している。セキュリティツールに求められる要件とは「幅広いデバイスですぐに使用できること」「設計から運用までのライフサイクル全般に渡るソリューションを提供できること」「シンプルでアップデート手段にも柔軟性があること」が重要だ。そこで、これらを踏まえてIARでは、開発からデプロイまでの3つのソリューションをカバーしている。
まずプロセスを「セキュアなソフトウェア開発」と「セキュアなデプロイ&生産」に分けて、それぞれにソリューションを適用する形だ。前プロセスで使えるツールはIAR Embedded Workbenchの拡張プラグインで、セキュリティをGUIで簡単に実現できる「Embedded Trust」だ。また開発の後工程(生産工程)で既存アプリにセキュリティを付与できる「OrBIT」も用意。これらでセキュリティ対策を施したアプリケーション・パッケージが次の生産工程に回り、「Secure Deploy-Prototyping」(SD-P)というツールを使って安全にデプロイと生産を可能にする。
「Embedded Trust」と「Secure Deploy-Prototyping」によるセキュア開発の流れ
さて、IARのEmbedded Trustツールを使ったセキュリティ実装の流れを、もう少し詳しく見ていこう。具体的な流れは「Secure Boot Manager」(以下、SBM)→「アプリケーション開発」→「量産管理」となる。
ここでは従来のアプリケーション開発プロジェクトだけでなく、まず最初にセキュアなブートを実現するために、SBMプロジェクトを追加することになる。
SBMはセキュアブートコードを生成する工程だ。セキュリティ担当がセキュリティコンテキストを作成し、Embedded Trustの画面から設定を行うと自動で前出のSBMコードを生成してくれる。さらにビルドして、デバイスへのプロビジョニングを行うとデバイスの固有IDをもとに、鍵や証明書を作成して、SBMイメージがデバイスに書き込まれる。
続いて次のアプリケーション開発では、従来の開発と同様のビルド作業にて対応できる。大きな違いと言えば、バージョン番号を付けてビルドを実施すると、自動的にマスタリング(紐づけ)が行われる点だ。このマスタリング段階で暗号化され、署名が付けられたイメージが生成される。そこでダウンロードしてデバックすると、紐づけられたアプリが書き込まれ、SBMから起動した状態でデバックが行われる。このように、従来と同じ流れでセキュアな状態で開発が可能だ。
最終的にプロダクトができたら、Secure Deploy-Prottyping(SD-P)を利用して、量産管理のプロセスに入る。生産用のキーを使用してビルドし、生産工程にデプロイする。生産先のツールと紐づいた署名と暗号化された状態で安全にプロトタイプなどに渡すことができる。そして初期生産から大量生産へと進めるわけだ。
Embedded TrustとSecure Deploy-Prototypingによるセキュア組込み開発では、以下のことを実現できる。IoTデバイスに求められる機密性・完全性・可用性や、認証・承認を十分に担保したうえで、ロールバック防止やセキュアブート、暗号化などが可能だ。
Embedded Trustを使うことにより、①セキュリティ機能の実装負荷の低減、②安全なプロビジョニング機能、③セキュアな開発ツールのプラットフォーム化という大きなメリットが得られるだろう。①と②については、これまで説明してきた通りだ。③については多様なマイコンに対応しており、同じ使い勝手でツール習得の負荷が軽減され、製品展開やデバイス変更も容易になる。またEmbedded Workbenchとの併用により、完全ワンストップでサポートが受けられる点も嬉しいところだ。
最後にEmbedded TrustでサポートするルネサスのMCUについても触れておこう。2023年2月現在においてサポートされるMCUは以下の通りだ。RXコアのRXファミリと、ArmコアのRAファミリで利用できる。なおRX600シリーズおよびRX700シリーズにおけるセキュリティ機能の「TSIP」(前編参照)を活用し、真正乱数生成回路(TRNG)やメモリ保護機能を使用したSBMコード を生成できるようになる。これ以外もMCUの対応範囲を順次広げていく予定だ。