ITmedia NEWS > 科学・テクノロジー >
セキュリティ・ホットトピックス

Appleの“Mシリーズチップ”から秘密鍵を盗む攻撃「GoFetch」 米研究者らが発表Innovative Tech

» 2024年04月03日 08時00分 公開
[山下裕毅ITmedia]

Innovative Tech:

このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。新規性の高い科学論文を山下氏がピックアップし、解説する。

Twitter: @shiropen2

 イリノイ大学アーバナ・シャンペーン校やテキサス大学オースティン校などに所属する米研究チームが発表した論文「GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers」は、AppleのMシリーズチップなどの脆弱性を用いて秘密鍵を復元するサイドチャネル攻撃を提案した研究報告である。

GoFetchのプロジェクトページ

(関連記事:新MacBook Pro(M3)でも機密情報が漏えい 2020年以降のApple製品全てに脆弱性 米国チームが発表

 この脆弱性は、CPUに搭載しているハードウェア機構の一種「DMP」(Data Memory-Dependent Prefetcher)に起因する。DMPとは、プログラムが将来必要とするであろうデータを先読みして、アクセス時間を短縮する役割を担う。このDMPの脆弱性を巧みに突いて暗号の秘密鍵を盗み出す攻撃が今回のアプローチ「GoFetch」になる。

 攻撃者はまず、標的となる暗号プログラムが使用するメモリ領域に、細工した入力データを忍び込ませる。このデータは一見ポインタのように見えるが、実際には攻撃者が仕組んだ巧妙な値である。暗号プログラムが細工したデータを含むメモリ領域にアクセスすると、DMPがその領域を解析対象とみなし、細工したデータをポインタと誤認する。

 DMPにだまされた結果、細工したデータが指し示すアドレスが先読みされることになる。ところが、そのアドレスには暗号の秘密鍵の一部が含まれるよう、このデータは細工されている。

 こうして、本来守られるべき秘密鍵の断片が、DMPによって外部にさらされてしまう。攻撃者は、CPUのキャッシュメモリを監視することで、DMPが先読みした秘密鍵の断片を検知できる。これを繰り返していけば、最終的に秘密鍵の全貌を復元可能という。

 研究者らは、M1プロセッサを搭載したAppleハードウェア上で、4つの暗号実装(OpenSSL Diffie-Hellman、Go RSA、CRYSTALS-Kyber、CRYSTALS-Dilithium)に対するエンドツーエンドのGoFetch攻撃を実施し、実際に機能することを示した。

 また、他のAppleプロセッサ上でのDMPの活性化パターンもテストし、M2とM3も同様の攻撃可能なDMPの動作を示すことが分かった。さらにインテルの第13世代Raptor Lakeマイクロアーキテクチャもまた、DMPを特徴としていると判明。しかし、そのアクティベーション条件はより制限的であり、この攻撃に対して堅牢であった。

 GoFetch攻撃が恐ろしいのは、プログラムの実行時間を一定に保つ「定数時間実装」など、従来のサイドチャネル攻撃への対策が通用しないこと。攻撃の成否がプログラムの挙動ではなく、メモリ上のデータの値に依存するからである。

 研究者らは、2023年12月に今回の調査結果をAppleに開示している。

Source and Image Credits: Boru Chen, Yingchen Wang, Pradyumna Shome, Christopher W. Fletcher, David Kohlbrenner, Riccardo Paccagnella, and Daniel Genkin. GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers.



Copyright © ITmedia, Inc. All Rights Reserved.