昨今、セキュリティは誰にとっても最優先事項です。今日の マイクロコントローラ および システムオンチップ 製品は、セキュリティ機能を備えて設計されています。しかし、シリアルフラッシュメモリは従来、ハッカーの攻撃を受けやすいという問題がありました。このホワイト ペーパーでは、知的財産の盗難を防ぐために、認証フラッシュを承認されたホスト コントローラーに一意かつ安全にペアリングする方法について説明します。
認証フラッシュ: 従来のNORフラッシュICが残したセキュリティギャップを埋める
セキュリティを重視するOEMからの要求に応えて、最新のマイクロコントローラやシステムオンチップ (SoC) のメーカーは、一般的に自社製品に幅広いセキュリティ機能を搭載しています。現在では、主流の非金融アプリケーション向けの標準的な市販の32ビットMCUには、ハードウェア暗号化アクセラレータ、乱数ジェネレータ (RNG)、および安全なメモリ ロケーションが搭載されていることがよくあります。
しかし、OEMの貴重な知的財産 (IP) の多くが保存される場所であるシリアル フラッシュ メモリは、従来、SoCやマイクロコントローラよりも脆弱でした。MCUまたはSoCのコンパニオン フラッシュ メモリのセキュリティ上の弱点により、リバース エンジニアリングされたPCB設計の複製により、OEMは商業的に損害を与える製品盗難のリスクにさらされます。この記事では、認証フラッシュを承認されたホスト コントローラに一意かつ安全にペアリングする方法について説明します。
今日のセキュリティの抜け穴
評判の良いOEMにとっての基本的なセキュリティ要件は、外部シリアルNORフラッシュに保存されているアプリケーション コードを含むOEMのIPの盗難や複製の可能性を防ぐことです。
もちろん、電子機器の最終製品に組み込まれている価値の多くは秘密ではありません。スマートホームのモノのインターネット (IoT) サーモスタットを例に挙げてみましょう。サーモスタットのボード アセンブリを入念に分解して分析することで、すべてのコンポーネントを正確に識別し、製品の複製を希望する工場でボード レイアウトを忠実に複製できるようになります。ハードウェアの設計は秘密ではありません。
アプリケーション コードは秘密です。というか、秘密であるべきです。 しかし、電子システムの強さは、最も弱い部分の強さによって決まります。現在、主要なSoCまたはMCUは通常、ハードウェアとソフトウェアに実装された暗号化、改ざん防止、および安全なストレージ機能によって強力に保護されています。したがって、攻撃者が製品のアプリケーション コードを複製したい場合、そのエントリ ポイントは外部フラッシュ メモリICになる可能性が最も高くなります。
このため、今日のOEMでは、フラッシュIC内のパーティション化されたメモリ空間に保存された一意の識別子 (UID) を使用して、コード ストレージ ハードウェアを「保護」することが一般的です。しかし、実際には、UIDは攻撃に対してわずかな障壁しか提供しません。セキュリティに関する知識を持つエンジニアであれば、UIDを見つけて識別し、MCUとコード ストレージ ハードウェア間のペアリングを簡単に無効にすることができます。ペアリングが削除されると、OEMの信頼のルートが壊れます。デバイスに保存されているコードをコピーして、サーモスタットの設計の複製を本格的に開始することができます。
このFlashセキュリティ システムの弱点は、UID自体が安全ではないことです。これは永続的で不変のコード番号です。メモリから読み取られると、許可されていないホストによって再度使用される可能性があります。
解決策: 安全で動的な認証
この問題の解決策は理論的には簡単に設計できます。つまり、ホストがメモリにアクセスするたびにUIDが異なる必要があるのです。しかし、現在使用されている固定UIDの利点は、実装が簡単なことです。フラッシュ メモリに1回、ホスト コントローラに1回プログラムするだけで、2つの値を比較してフラッシュ デバイスを認証できます。
では、ホストからのチャレンジに対する応答が毎回異なり、それでもホストに認識されるようにするにはどうすればよいでしょうか?
メモリIDの対称暗号化
これは、 Winbond が認証フラッシュICのW74Mファミリで解決しようとしている問題です (図1を参照)。Winbondは、シリアルNORおよびNANDフラッシュ メモリICの 幅広いポートフォリオ で最もよく知られています。同社はシリアル フラッシュの世界トップ メーカーであり、市場シェアは約30% です。2016年に、WinbondはSpiFlash® シリアル フラッシュICを21億個出荷しました。
また、現在では、設計のフラッシュ メモリ部分におけるセキュリティの脆弱性に関して顧客が直面している問題にも対処しています。これが、W74Mファミリが導入された理由です。WinbondがメモリのIDを保護する基本的な方法は、対称暗号化です。つまり、ホストとメモリの両方が同じ秘密、つまり「ルート キー」を認識します。
図1: W74Mマルチチップパッケージのアーキテクチャ
ただし、ルート キーはホストとメモリ (「チャレンジャー」と「レスポンダー」) 間で直接送信されることはありません。代わりに、ルート キーと乱数などの動的要素の組み合わせによって暗号化されたメッセージ (ハッシュ ベースのメッセージ認証コード、HMAC) が生成され、この組み合わせは暗号化アルゴリズムSHA-256によって処理されます。SHA-256は、ダイジェスト サイズが256ビットのSecure Hash Algorithm (セキュア ハッシュ アルゴリズム) の略で、米国国立標準技術研究所 (NIST) によって連邦情報処理標準 (FIPS) として公開された暗号化ハッシュ関数です。これは金融取引の処理に使用される暗号化機能であり、一般に実際には解読不可能であると考えられています。
W74Mメモリを認証するために、ホスト コントローラは、メモリのHMACの値を、ルート キーとSHA-256で処理された同じ乱数を使用して計算した値と比較します。値が一致する場合、通常のメモリ操作を続行できます。
HMACは乱数などの動的要素によって部分的に生成されるため、HMACの値は生成されるたびに異なります。つまり、上記のように従来の固定UIDを持つフラッシュ メモリに対しては成功した攻撃が、W74Mメモリに対して行われた場合は失敗することになります。また、SHA-256関数は非常に安全であるため、攻撃者がHMACを復号化してルート キーの値を明らかにできるリスクは実際には存在しません。
図1には、W74Mの他の2つの興味深い機能も示されています。まず、不揮発性モノトニック カウンターは、メモリの信頼性の補足検証を提供します。ルート キーが確立されると、カウンターはゼロから開始され、ホスト コントローラーによって発行されたコマンドに応じて1つの増分が追加されます。つまり、カウンターにはメモリとホストのみが認識する一意の値が含まれます。ホストによってチャレンジされたときにメモリによって提供されるカウンタ値がホストのカウンタ値と一致しない場合、メモリのHMACの値はホストによって計算された値と同じにはなりません。これは、W74M認証デバイスが改ざんされたことをホスト プロセッサに通知します。
関連商品を見る
プロセッサはこの知識を使用して、たとえば改ざんされたデバイスがホスト システムのリソースにアクセスするのを防ぐなど、ホスト システムを保護できます。これにより、攻撃者がOEMによってボードに取り付けられたW74Mユニットを別のW74Mに置き換えてハイジャックするリスクから保護されます。
この保護機能は、図1に示されている2番目の注目すべき機能に関連しています。各W74Mデバイスには、ルート キー/HMAC/モノトニック カウンターの組み合わせのインスタンスが4つあります。1つのインスタンスは、ホスト デバイスのコントローラーの認証に使用されます。他の3つの認証「チャネル」は、ネットワークサービスにアクセスするためにIDを確認する必要があるIoTデバイスなどでの使用を目的としています。 (図2参照)。ここに示されているように、認証チャネルごとに異なるルート キーを安全に保存し、関連するホスト デバイスと共有できます。つまり、ホスト デバイス、インターネット ゲートウェイ、クラウド サービスのルート キーは秘密のままであり、あるデバイスは別のデバイスのルート キーを認識しません。
図2: W74Mで実現される多層認証
この多層認証機能のもう1つの使用例は、複数の要素で構成されるドローンなどの複雑なシステムです。これらの要素のいずれかのW74Mデバイスは、次の認証に使用できます。
– ドローンのメインプロセッサ
– 取り外し可能なバッテリーモジュール
– リモコン
– カメラ
安全で暗号化された認証により、ドローン製造業者は、ブランド指定のカメラとブランド指定の交換用バッテリーのみが使用されることを保証し、飛行中のドローンが不正なリモートコントロールによってハイジャックされる可能性を防ぐことができます。
安全で安心な実装
前述のように、W74Mの暗号化機能は非常に安全です。さらに、ルート キーは外部デバイスでは読み取れないOTPメモリ空間に保存されます。
したがって、W74Mデバイス自体は本質的に安全です。安全な実装には、生産中の各W74MユニットおよびホストSoCまたはコントローラにプログラムされたルート キーがOEMの秘密のままであることを保証するための安全なプロビジョニングも必要です。これは通常、OEM独自のプロビジョニングおよび製造プロセスに依存しますが、Winbondはオプションで顧客に代わってW74Mのルート キーのプロビジョニングを行うこともできます。
認証フラッシュ デバイスのW74Mファミリは、標準パッケージで32Mbから1Gbまでのさまざまな密度で提供されます。つまり、現在コード保存用のNOR/NANDフラッシュICと外部認証ICを組み込んでいるセキュア デバイス設計では、これら2つのチップを標準フラッシュ ソケットに収まる単一のW74Mパッケージに置き換えることができるため、部品コストとコンポーネント数を削減しながら、最も安全なレベルの認証を実現できます。
W74Mは、NORフラッシュメモリ容量のない純粋な多層認証デバイスとしても利用可能であり、部品番号は W74M00AVSSIGおよびW74M00AVSNIG。
CSリン著
マーケティングエグゼクティブ、ウィンボンド・エレクトロニクス・コーポレーション・アメリカ