一部のセキュリティプロセッサには独立したバスがあり、プライベートキーを保存して、メモリにキーを保存せずにハードウェア暗号化で使用できることを知っています。 SoC内の隔離されたバス上にキーストレージを備えているものもあるので、物理的なアクセスとエンジニアのチームを使ってそれを盗む可能性はありません。この機能は、たとえばHDCPの実装に一般的に使用されます。
質問:コンシューマーグレードのIntelまたはArmベースのプラットフォームにそのような機能があるかどうか疑問に思っていましたか?
鍵を作成し、それを暗号化に使用して、ほとんど復元できない可能性があります。
これらのプロセッサは、セキュアキーメモリを直接サポートしていませんが、 Trusted Platform Module と呼ばれる外部コンポーネントと連携しています。これは基本的に、未知のキーを使用して安全な暗号化操作を実行できるようにします(コンポーネントは封印されており、キーを漏らすことはなく、改ざんに対して強化されています)。 UEFIはこれをセキュアブートなどに使用でき、BitLockerなどのさまざまなソフトウェアアプリケーションはこれをファイルまたはドライブの暗号化に使用できます。これらの種類のプロセッサを使用する場合、物理的に安全な暗号化が必要な場合はTPMを含める必要があります。
IntelはAES命令を使用してレジスタ間暗号化を行うことができ、多くのARM=チップには同様の機能を持つ暗号アクセラレータがあります。
ここでは2種類の攻撃があります。物理的にスヌープされるexternal DRAMバスを持つことと、プロセッサの観点からメモリを見るソフトウェアエクスプロイトを持つことです。前者は実際にはオンチップRAMのみを使用することで対処するのが最も簡単です。
ある時点でソフトウェアがキーを使用できるようにする必要があるため、エクスプロイトへの対処は問題です。 ARMソリューションはTrustZoneです。これは、はるかに大きい安全でないOSの上に安全なマイクロカーネルを置くことができる、高度な妥協のない仮想化のようなメカニズムです。iPhoneでは、「安全な世界"はsel4マイクロカーネルを実行しています。
書き込み専用の「ヒューズ」は、JTAGアクセスと署名されていない更新を防止するようにチップがプログラムされると、システムをシールするために使用されます。これが、Appleに対するFBI攻撃が非常に深刻である理由の一部です:鍵で署名されたソフトウェアの安全でないバージョンを作成するように強制することを含みます。