AN2604: マイクロコントローラの組み込みセキュリティを超えるセキュア・エレメントのメリットを探る

要約

マイクロコントローラへのセキュリティ機能の組み込みは、増加の一途をたどっています。設計者にとっては手軽に使用できますが、攻撃に対するこうしたセキュリティ・メカニズムの耐性のレベルは、同じマイクロコントローラのファミリの中でも、メーカー間でも、異なっている可能性があります。アプリケーションのセキュリティ目標の達成に十分な場合も、そうでない場合もあります。組み込みセキュリティ機能を備えたマイクロコントローラでは保護が簡便に得られますが、セキュア・エレメントと呼ばれる専用のハードウェア部品は、ハードウェアの信頼の基点やセキュア認証用IC としても知られていて、機密のデータや処理に向けて最適化された専用のセキュリティ機能を備えています。このアプリケーション・ノートでは、セキュア・エレメントの主要なメリットについて解説します。そのメリットには、暗号処理の隔離、物理的攻撃やソフトウェア攻撃に対する耐性強化、業界標準への準拠、システム統合の容易さなどがあります。セキュア・エレメント独自の機能を活用することにより、開発者は最小限の設計作業でより確実な保護を実現できます。

はじめに

セキュア・エレメントとは、暗号機能を実行する専用のIC で、鍵や認証情報用の耐タンパ性を備えたセキュアな保存の機能を持ちます。組み込みアプリケーションで多く使用され、ほとんどの場合にI2C やSPI などのシリアル・バスでホスト・マイクロプロセッサに接続されます。

図1. セキュア・エレメントの概念
図1. セキュア・エレメントの概念

歴史的には、セキュア・エレメントは、最小限の設計作業でシステムのアップグレードを実現する目的で設計されました。セキュア・エレメントの直接的なメリットは、プロセッサやアーキテクチャを変更することなくシステムにセキュリティを追加できるため、全体の再設計に必要な作業を軽減できることです。

セキュア・エレメントはまだ必要か

セキュリティの必要性の拡大に対して、多くのマイクロコントローラ・メーカーが取った自然な対応は、これをマイクロコントローラに統合し、以下のような暗号やセキュリティの機能を組み込むことでした。 

  • デジタル署名の計算と検証
  • 暗号化
  • セキュア・ストレージ
  • 乱数発生

このようなセキュリティ用の構成要素が組み込まれていれば、セキュア・エレメントは、汎用マイクロプロセッサのセキュリティ機能に対して冗長なのでしょうか。この文書では、この問いへの答えは単純ではないということを説明します。それぞれの共通性と差異を確認しましょう。 

隔離


一般的にはセキュリティ上重要なファームウェアはソフトウェアの他の部分から隔離されているのが望ましく、次のようなメリットがあります。 

  • 隔離によって、小規模なセキュリティ用のファームウェアを、複雑で機能豊富なOS から分離して実装することができ、攻撃対象領域が大きくなるのを防げます。 
  • シンプルなソフトウェアでは、攻撃者が悪用して、機密アセットへアクセスしたりセキュリティ・メカニズムをバイパスしたりできるバグの発生を抑えられます。 
  • より確実にするために、ある程度小規模なソフトウェアであればコード・レビューを実施可能です。ただし、ファームウェア全体を対象にコード・レビューを実施するのは非常に難しいと考えられます。 

マイクロコントローラでは、多様なメカニズムで隔離がサポートされます。Arm のTrustZone®が広く利用されていますが、MMU やMPUも一般的です。こうしたメカニズムは有用ですが、グリッチ攻撃などの攻撃手法で破られるかどうかはその実装によって決まります[1]。また、効果を上げるためには、ハードウェア隔離を活用できる適切な構成とソフトウェア実装が必要です。例えば、メモリのセキュア領域と非セキュア領域の境界を慎重に定義することが必要です。構成が適切でなければ、欠陥が悪用されます。 

セキュア・エレメントを使用するメリットは、物理的に隔離されているために破られないという点です。マイクロコントローラで実行されているファームウェアが、セキュア・エレメントで実行されているファームウェアと干渉する可能性はありません。デュアル・チップ・アーキテクチャによる隔離は、マイクロコントローラ内部のメカニズムによる隔離よりも、より確実です。 

マイクロコントローラ内部の隔離メカニズムを、セキュア・エレメントの使用と組み合わせることも可能です。例えば、セキュア・エレメントを呼び出すセキュリティ上重要なソフトウェアを、Arm TrustZone が作成したTrusted Execution Environment(TEE)で実行すれば、全体のセキュリティ・レベルが強化されます。

図2. TrustZone とセキュア・エレメントの組み合わせ
図2. TrustZone とセキュア・エレメントの組み合わせ

暗号計算の機能的側面


現在、ほとんどの実装は、専門家のコミュニティまたはNIST やBSI などの機関が承認した暗号アルゴリズムに基づいています。マイクロコントローラとセキュア・エレメントの実装がどちらも関連の標準に適合していれば、機能的な観点からは差異がないと言えます。この意味では、セキュア・エレメントには、マイクロコントローラに実装されているセキュリティ機能を上回る価値はありません。それでも、実装への適合性を確認するのは賢明でしょう。例えば、NIST Cryptographic Algorithm Verification Program(CAVP)は、IC に実装された暗号アルゴリズムの適合性に保証を与えています。その他の認証スキームでも同等のレベルの保証が得られます。

鍵のセキュアな保存


先に説明したように、現代の暗号アルゴリズムは公開されています。これは独自の暗号技術に比べてより正しいアプローチであることが証明されていますが、その結果として、プライベート・キーあるいは秘密鍵へのアクセスがあれば、セキュリティ機構が完全に破られることになります。組み込みセキュリティ・システムにおいて、鍵が最も重要なアセットであるからです。 

マイクロコントローラ内では、鍵は多くの場合フラッシュやOTP に格納されます。先述のような論理的な隔離メカニズムによる効果が得られます。 

論理的な隔離では基本レベルの保護は得られますが、物理的な隔離ほどの強度は得られません。 

  • 論理的なハードウェア保護メカニズムは、グリッチやレーザー照射によるフォルト・インジェクションなどの物理的な攻撃で破られる可能性があります[1]。グリッチ攻撃では、高価な機器や高度な学問的知識がなくても効果を及ぼすことができるため、非常に有害です。 
  • フラッシュやOTP の内容を読み取って、プライベート・キーや秘密鍵にアクセスすることは、安価な機器でも実施可能で、専門レベルの知識を要しません[2]。 

フラッシュやOTP の読出しには、サイドチャンネル攻撃やフォルト・インジェクション攻撃と比較すると、非常に高額な費用と時間が必要になりますが、一般に考えられているほど手が届かないものではありません。走査型電子顕微鏡のような機器も大学や研究施設で使用できる場合があり、その使用方法は文献に詳細に記載されています[2]。一般論として、対象である鍵に、投資に対して十分な価値があれば、意図を持ったハッカーはそのアセットへのアクセスに必要な時間と費用をかけるものです。

図3. フラッシュ・メモリの保存内容の読出し
図3. フラッシュ・メモリの保存内容の読出し

セキュア・エレメントでは、標準的なフラッシュ・メモリよりも数段高いレベルのセキュアな保存が可能です。例えば、アナログ・デバイセズのMAXQ1065DS28S60 は暗号化不揮発性メモリ(NVM)を備えています。強力な暗号化により、NVMの内容が見えても攻撃者は鍵を抽出できません。メモリ暗号化用の鍵は、それ自体が抜き取りの対象になるため、NVM に保存するのではなく、ChipDNA®の物理的複製防止機能(PUF)で生成します。フラッシュやOTP の読出し技術は、メモリ暗号化鍵が次のような性質を持つため、適用は不可能です。

  • NVM に保存されていない
  • チップが動作していないときには存在しない

マイクロコントローラとセキュア・エレメントのどちらに組み込まれている場合でも、鍵や機密情報について最もセキュアな保存がPUFによって可能になります。リスク・プロファイルから、物理攻撃に対する高度な耐性が要求されるのであれば、PUF を利用したセキュア・ストレージが最善の保存法です。 

マイクロコントローラ内にPUF が存在しない場合でも、セキュア・エレメントを追加することにより、物理的な攻撃に対する最高レベルの耐性が得られます。 

最終製品への簡便な鍵書込み


PUF を利用した高度にセキュアなストレージを備えたマイクロコントローラも存在します。それでも、MCUの保護メモリ領域に秘密鍵を書き込む作業は困難を伴うこともあります。一般的には、秘密鍵をMCU に書き込むには、秘密鍵の操作のために物理的にセキュアな施設が要求されます。セキュアな施設への投資ができないOEM も存在し、委託製造業者に依存している場合には事情が更に複雑になります。 

アナログ・デバイセズでは鍵のプロビジョニングのサービスを提供しており、OEM に代わって鍵をプログラムできます。鍵や証明書を当社の工場でプログラムし、ロックした状態でOEM や認定委託製造業者まで届けます。プログラム済みのセキュア・エレメントを使用するのも、最終製品に鍵や認証情報を組み込むための簡単な方法の1 つです。 

暗号計算の堅牢性


暗号アルゴリズムの実装が機能的に正常であっても、サイドチャンネル攻撃やフォルト攻撃の影響を受けやすい可能性があります。 

サイドチャンネル攻撃は、暗号の処理中に意図せず漏れ出る信号をモニターし、それに信号処理技術を適用して計算中に使用される鍵を抽出する作業から成ります。 

一般的な理解としては、保護のない実装では、中程度のスキル(大学生など)の攻撃者が安価な機器(デジタル・オシロスコープ)を使用しても、1 日以内にマイクロコントローラから鍵を抽出できます。 

サイドチャンネル攻撃は、暗号アルゴリズムのハードウェア実装とソフトウェア実装の両方に有効で、どちらの種類の実装でも複数の攻撃が成功していると報告されています。MCUで実行されるソフトウェア暗号ライブラリは、必ずしも不安全とは言えませんが、設計上セキュリティ対応されていない実装には脆弱性があるということは言えるでしょう。耐性のレベルには大きな幅がありますが、サポートしている耐性レベルをマイクロコントローラのメーカーが開示しない場合もあります。 

フォルト・インジェクションによる暗号鍵の復旧も、脆弱性になります。フォルトの注入では、グリッチ、レーザー照射、電磁パルスなどの方法により、IC の挙動を意図的に変化させます。例えば、電源ピンのグリッチによってタイミング違反が発生し、暗号の計算にエラーが発生する可能性があります。技量を備えた攻撃者であれば、暗号計算の特定のステップ中にグリッチを与えることができます。計算でのエラーのサンプルを数回分収集し、それらの差異を適切な計算で分析することにより、攻撃者は秘密鍵、例えばAES 鍵を取得できます[3]。このアプローチは、差分障害分析(DFA)として知られています。 

セキュア・エレメントは機能特化した専用のIC であるため、一般的には、ハードウェアとソフトウェアの両方のメカニズムを組み合わせた作用により、秘密鍵やプライベート・キーの取得を目的とするサイドチャンネル攻撃やフォルト攻撃に対して高いレベルの耐性が確保されます。

制御実行フロー


暗号処理とセキュリティ対応アプリケーションの実装には、判定機構が含まれます。簡単な例は、ユーザ認証が成功した後にメモリの内容などのリソースへのアクセスを許可するというものです。暗号アルゴリズムの実装の攻撃には、高度な暗号技術の知識が必要になるため、直接攻撃する代わりに、プログラムの挙動が意図した結果になるように、そうした判定処理を操作しようとするかもしれません。フォルトの注入によってテストの結果を操作し、不正な分岐を実行するのは、よくある攻撃経路です。 

その他の攻撃には以下のようなものがあります。

  • 命令あるいは一連の命令のスキップ
  • プログラム・カウンタの操作
  • バス上のアドレスやデータの破壊

特権アクセス権の獲得、鍵や秘密情報の不正な開示、マルウェアの注入、その他の想定しない挙動など、深刻な結果を招く可能性があり、最悪のケースでは人の安全がリスクに晒されます。 

制御フローの操作への対策は存在します。主な内容は冗長性を実装することであり、様々な形態を取ります。ソフトウェアの場合は、分岐テストの二重化、冗長な命令の挿入、カウンタを備えた専用の関数呼び出しなどを行います[4]。ハードウェアの場合の対策には、ステート・マシンの特定のコーディングや冗長レジスタなどがあります。一般には、攻撃者が障害を発生させたとき、冗長分岐動作またはテストによって対処し、マイクロコントローラを安全な状態に移します。 

このようなソフトウェア対策の欠点は、その実装には専門のスキルが必要で、一般には自動化できないため、追加のR&D 作業が必要になることです。またこの対策では、コード・サイズが増加し、実行性能が低下します。セキュア・エレメントでは通常、制御フローの操作に対するハードウェアとソフトウェアの保護が組み込まれています。そのため、最も攻撃を避けたい処理をこのようなデバイスで代行することによって、アプリケーション開発者は制御実行フロー攻撃に対してより強力な耐性を確保できます。

まとめ

この文書では、組み込みシステムに対する一般的な攻撃を列挙し、マイクロコントローラやセキュア・エレメント、あるいはその両方で実施できる対策の概要を紹介しました。これを踏まえると、自分の設計でセキュア・エレメントは必要かという問いには、1 つの決まった正解はありません。 

組み込み製品のセキュリティはリスク緩和戦略であり、製品の知的財産、顧客のデータや情報、会社の評価、収益など多様な種類の損失リスクに対する保護が含まれます。組み込み製品のセキュリティでは、発達が続く脅威の環境の中で、製品の寿命にわたってその保護を保つ必要があります。その実用的な寿命には数ヵ月から数十年の幅があるため、「万能」を求めるアプローチは機能しません。このため、製品の設計者は、セキュリティ・ソリューションの実装では安全側に検討し、発達を続ける脅威に対して製品セキュリティを長期的に確保することが必要です。個別のセキュア・エレメントを追加することは、製品設計者が利用できるセキュリティ武器庫の中の1 ツールに過ぎないのです。

参考文献

[1]G. F. O. f. I. S. (BSI), "A Study on Hardware Attacks against Microcontrollers," 17 03 2023. [Online]. Available: https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Studies/Hardware- Attacks/Hardware-Attacks-Microcontroller.html. [Accessed May 28, 2024]. 

[2] S. S. a. C. W. Franck Courbon, "Reverse Engineering Flash EEPROM Memories Using Scanning Electron Microscopy," CARDIS 2016: Smart Card Research and Advanced Applications, 2016. 

[3] Limited Results, "Nuvoton M2351 MKROM," 12 January 2020. [Online]. Available: https://limitedresults.com/2020/01/nuvotonm2351-mkrom-armv8-m-trustzone/. [Accessed May 31, 2024]. 

[4] K. H. P. B. Jean-Fran¸cois Lalande, "Software countermeasures for control flow integrity of smart card C codes," in 19th European Symposium on Research in Computer Security, Wroclaw Poland, 2014.

[5] J. Fruhlinger, "Threat modeling explained: A process for anticipating cyber attacks," CSO, April 2020. [Online]. Available: https://www.csoonline.com/article/569225/threat-modeling- explained-a-process-for-anticipating-cyber-attacks.html. [Accessed July25, 2024].