Cortex-M MCUなどの小さなシングルチップ組み込みシステム用のTLS秘密キーストレージに関するベストプラクティスを探しています。モノリシックファームウェアは内部フラッシュに保存されています。ほとんどの推奨事項は非常にPC中心であるように思われ、ほとんどの場合、それらのPC中心の推奨事項は物理的なアクセスから保護することさえ考慮していません。多くの人は、PCが一部のサーバールームに閉じ込められていると想定していますが、これは、組み込みデバイスには当てはまらない仮定です。
また、ユーザーの対話なしで機能する必要があるため、ユーザーパスワードの入力は組み込みシステムのオプションではありません。
これまでに、2つの基本的なアプローチを確認しました。
秘密鍵を外部セキュリティチップに保存します。これは基本的に、平文アクセスから秘密鍵を保護します。しかし、私が知る限り、セキュリティチップにアクセスして、攻撃者が秘密キーを使用するのを阻止することは絶対にありません。 MCUファームウェアのエクスプロイトによるものか、セキュリティチップへの物理的なアクセスによるものです。
MCUの内部フラッシュメモリにキーを保存し、ヒューズを飛ばして外部デバッグインターフェイスを無効にします。キーが保存されているメモリ領域にMCUファームウェアの特権部分のみがアクセスできるように、Cortex-MのMPUを設定します。これは物理的なアクセスに対する優れた保護を提供するように思われますが、ファームウェアの特権部分での悪用により、キーへのプレーンテキストアクセスが発生する可能性があります。
これらの2つのアプローチのどちらが他方よりも優れているかは、私には明らかではありません。他のアプローチはありますか?このような組み込みシステムに固有の推奨されるベストプラクティスはありますか?できれば、異なるアプローチとその長所と短所をランク付けします。
信頼できる情報源から入手できるベストプラクティスがあることを期待していました。それがなければ、私はこれを提案として投稿しており、それに関するいかなる情報も歓迎します。
組み込みデバイスでの安全なキーストレージの方法は、脅威のシナリオによって異なります。
脅威シナリオ1:リモート攻撃と物理攻撃の両方。
脅威シナリオ2:リモート攻撃のみ。
------------
両方のシナリオで最高のソリューション
2番目に最適なソリューション、シナリオ1のみ
欠点:実装が最も複雑で、実装にバグがあるとセキュリティが低下する可能性があります。追加の暗号化により、パフォーマンスが低下する可能性があります。
2番目に最適なソリューション、シナリオ2のみ
欠点:物理的なアクセスに対する防御がありません。外部セキュリティチップの暗号化されていないインターフェイスは、物理的な攻撃に対して広く開かれています
番目に最適なソリューション、両方のシナリオ
欠点:攻撃が成功すると、キーへの間接的なアクセスではなく、平文のキーが生成されます。
Pro:セキュリティ標準が進化するにつれて、ファームウェアの更新により新しい暗号アルゴリズムのサポートを追加する機能
------------
説明
リモート攻撃に対する2つの防御ライン
リモート攻撃に対する2つの防御線は、上記の4つのソリューションすべてで同じです。
これは、ハードウェアソリューションに関係なく、セキュリティに重点を置く必要がある場所です。
外部セキュリティチップ
必要なすべてのECC、RSA、およびAES機能を実行できる、組み込みのセキュアキーストレージと暗号化プロセッサを備えた専用デバイス。通常、I2CまたはSPIを使用してMCUに接続
これらは実際に攻撃に対する防御の追加のラインを追加するとは言えません。より良い説明は、彼らが成功した攻撃の結果を変えると言うことです。セキュリティチップがなければ、攻撃に成功すると平文のキーが生成されます。セキュリティチップを使用すると、攻撃が成功すると、キーを使用するための間接アクセスが発生します。後者は、損害がわずかに少ない結果です。
しかし、ケーブルテレビ業界にこの種の保護についてどう思うか尋ねてください。キーを介した間接的なアクセスは、インターネットを介して間接的にアクセス可能なキーを持たせることにより、広範囲にわたるケーブルテレビの海賊行為に十分です。
セキュリティチップには重大な欠点もあります。セキュリティチップは、キーを使用するためのアクセスしやすいハードウェアインターフェイスを公開し、実際に物理的な攻撃を非常に簡単にします。例外は、MCUとの暗号化された通信をサポートする外部セキュリティチップであり、その暗号化されたインターフェイスを介しても、秘密キーを読み取ることはできません。しかし、それはMCUに新しいキーストレージ問題を作成します。
MCU内部ハードウェア暗号化プロセッサと保護されたキーストレージ
外部セキュリティチップと同じ利点がありますが、物理的な攻撃の弱点やパフォーマンスの問題はありません。
物理的な攻撃ベクトルとその防御
最も簡単なものから最も難しい攻撃ベクトルへとランク付けされます。