キャッシュタイミング攻撃(きゃっしゅたいみんぐこうげき)
最終更新:2026/4/27
キャッシュタイミング攻撃は、コンピュータシステムのキャッシュメモリへのアクセス時間を利用して、秘密情報を推測する攻撃手法である。
ポイント
この攻撃は、ソフトウェアの脆弱性ではなく、ハードウェアの特性を利用するため、対策が困難な場合がある。サイドチャネル攻撃の一種。
キャッシュタイミング攻撃とは
キャッシュタイミング攻撃は、CPUやGPUなどのプロセッサに搭載されているキャッシュメモリの動作原理を利用した攻撃手法です。キャッシュメモリは、頻繁にアクセスされるデータを一時的に保存することで、処理速度を向上させる役割を果たします。この攻撃は、あるデータへのアクセスにかかる時間を計測することで、そのデータがキャッシュに存在するかどうかを判断し、そこから秘密情報を推測します。
攻撃の仕組み
攻撃者は、ターゲットとなるシステムに対して、特定の処理を実行させます。この処理の実行中に、キャッシュメモリへのアクセスパターンを詳細に観測します。キャッシュにデータが存在する場合と存在しない場合では、アクセス時間が異なります。この時間差を精密に計測することで、攻撃者はどのデータがキャッシュに保存されているかを推測できます。例えば、暗号化処理における秘密鍵の一部がキャッシュに存在する場合、その鍵を推測することが可能になります。
対策
キャッシュタイミング攻撃に対する完全な対策は困難ですが、いくつかの緩和策が存在します。
- キャッシュのフラッシュ: 処理の実行前にキャッシュをクリアすることで、攻撃者がアクセスパターンを観測することを困難にします。
- 定数時間処理: 処理時間が入力データに依存しないように設計することで、タイミング情報の漏洩を防ぎます。
- キャッシュパーティショニング: 異なるプロセスやユーザー間でキャッシュを分離することで、攻撃対象を限定します。
- ハードウェア対策: CPUメーカーによるキャッシュのランダム化などのハードウェアレベルでの対策も研究されています。
歴史と事例
キャッシュタイミング攻撃は、1990年代後半から研究され始め、2000年代以降に具体的な攻撃事例が報告されるようになりました。OpenSSLなどの暗号化ライブラリにおける脆弱性が発見され、対策が講じられました。近年では、クラウド環境における仮想マシン間のキャッシュ共有を利用した攻撃も報告されています。
関連技術
キャッシュタイミング攻撃は、サイドチャネル攻撃の一種であり、電力解析攻撃や電磁波解析攻撃など、他のサイドチャネル攻撃と関連しています。