Intelは、次期Linuxカーネル向けにMulti-Key Total Memory Encryption(MKTME)を有効にする新しいパッチセットを発表しました。この機能はIntelのTotal Memory Encryptionの拡張機能であり、メモリ内の複数のページを異なる暗号化キー(最大64個)で暗号化することをサポートします。
インテルがAMDに追随
数年前まで、ユーザー向けセキュリティ機能に関してはIntelがAMDをリードしていました。その後、AMDのZenアーキテクチャが登場し、少なくともサーバーCPUに関しては、Intelのチップにはない新しいメモリ暗号化機能を導入し始めました。
AMDのセキュアメモリ暗号化(SME)は、ハードウェアに保存された単一のキーでメモリを暗号化し、物理的な攻撃(第三者が盗難ノートPCから不正なデータを取得するなど)からデータを保護します。一方、AMDのセキュア暗号化仮想化(SEV)は、仮想マシンごとに単一の暗号化キーを提供することで、悪意のあるハイパーバイザーから仮想マシンのコンテンツを保護します。これは、ほとんどのデータセンターで歓迎される機能です。
当時、Intelはエンタープライズ向けチップとコンシューマー向けチップの両方にSoftware Guard eXtensions(SGX)機能を搭載しており、これは暗号鍵などの少量データのためのメモリセクション内の「セキュアエンクレーブ」として機能していました。しかし、SGXではVM全体やメモリ全体を暗号化することはできませんでした。
AMDによるSMEとSEVのリリースに続き、IntelもTotal Memory Encryption(TME)と、最近ではMKTMEの開発に取り組んでいます。どちらもシステムメモリを保存時、実行時、そして転送時に暗号化することを約束しています。つまり、IntelはAMDに追いつこうと、そしてある意味では追い越そうとしているのです。しかしながら、これらの機能はまだIntelのチップに搭載されていないため、AMDにはまだ対応の余地があります。
Intel MKTMEとは
インテルの次期チッププラットフォームでは、プロセッサが初めてMKTMEを使用してメモリ全体を暗号化できるようになります。アプリケーションは、オペレーティングシステムのカーネルで生成される新しいキーを使用してデータを暗号化できるため、データは機密性が確保され、他のサードパーティ製アプリケーションやオペレーティングシステムの他の部分から分離されます。
新しい暗号化アーキテクチャは、通常のメモリ、揮発性DRAM、そして永続メモリ/不揮発性メモリ(3D Xpointメモリなど)の暗号化をサポートします。ただし、現在のLinuxカーネルパッチセットには永続メモリの暗号化のサポートが含まれていません。この機能は将来のパッチセットで追加される予定です。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
MKTMEは、AES暗号化アルゴリズムをAES-XTSモードで使用します。これは、MicrosoftのBitLockerを含む多くのディスクストレージ暗号化プログラムで使用されているモードと同じです。このモードでは、各ブロックを暗号化する際にデータの物理アクセスアドレスが考慮され、メモリの各ブロックに異なるキーが割り当てられます。この機能はブロック再配置攻撃を軽減します。つまり、攻撃者が悪意のある操作を行うには、共有物理ページへのアクセスが必要になります。
MKTMEが提供する攻撃緩和策
Intel の MKTME 暗号化機能は、次のようなさまざまなソフトウェア攻撃緩和機能を提供します。
カーネル マッピング攻撃: カーネル ダイレクト マップを活用した情報漏洩は、ユーザー データの漏洩に対して軽減されます。解放されたデータ漏洩攻撃: ハードウェアから暗号化キーを削除すると、将来のユーザー情報の漏洩が軽減されます。
その他の緩和策は、「悪意のある DIMM」や DDR インターポーザーなどの特殊なハードウェアに基づく攻撃に関連します。
クロスドメイン リプレイ攻撃: データは 1 つのドメイン (ゲスト) からキャプチャされ、後で別のドメインにリプレイされます。クロスドメイン キャプチャおよび遅延比較攻撃: データはキャプチャされ、後で分析されて秘密が検出されます。キー ウェアアウト攻撃: AES 暗号化自体を弱めるためにデータがキャプチャされ、分析されます。
Spectre/MDS 攻撃についてはどうですか?
これらの暗号化機能は、SpectreやMDSファミリーなどのサイドチャネル攻撃から保護してくれるのでしょうか?いいえ、そうではありません。研究者たちは以前から、メモリ暗号化はサイドチャネル攻撃を阻止する効果的な方法ではないと警告しており、実際には、システムの特定の部分へのメモリアクセスをブロックまたは制限する方が、この種の攻撃を防ぐはるかに効果的な方法です。
研究者らは、AMDのSEV機能に、攻撃者がデータを盗むことを可能にする複数の欠陥を発見しました。たとえIntelの機能が多少改善されたとしても、特にIntelのチップがAMDのチップよりもサイドチャネル攻撃に対して脆弱であるように見えることを考えると、長期間のテストに耐えられない可能性が高いでしょう。
メモリ暗号化は重要な機能であり、通常はRAMではなくディスクに保存される機密性の高いデータを不揮発性メモリに保存するコンピュータが増えてきた際に特に役立ちます。保存時や転送時にこれらのデータを暗号化しないと、攻撃者が容易にアクセスできてしまいます。そのため、IntelとAMDの両社が提供するメモリ暗号化は、今後のCPU世代において歓迎すべきセキュリティ機能となるでしょう。