Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel Attack
GnuPG のアナウンスだけじゃなく OpenPGP のメーリングリストからも情報が流れてきたので,周知のためここに書いておく。
- [Announce] [security fix] Libgcrypt 1.5.3 released
- [Announce] [security fix] GnuPG 1.4.14 released
- [openpgp] Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel Attack
- Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel Attack (今回の攻撃に関する論文の eprint)
どういう内容かというと
“Flush+Reload is a cache side-channel attack that monitors access to data in shared pages. In this paper we demonstrate how to use the attack to extract private encryption keys from GnuPG. The high resolution and low noise of the Flush+Reload attack enables a spy program to recover over 98% of the bits of the private key in a single decryption or signing round. Unlike previous attacks, the attack targets the last level L3 cache. Consequently, the spy program and the victim do not need to share the execution core of the CPU. The attack is not limited to a traditional OS and can be used in a virtualised environment, where it can attack programs executing in a different VM.”
(via “Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel Attack”)
ということらしい。 英語不得手なので間違ってたらゴメンペコンなのだが,どうやら複数コアのプロセッサの L3 キャッシュに対して Side-Channel Attack をかけるものらしい。 デモンストレーションでは,この攻撃により GnuPG の復号/署名検証時に RSA 秘密鍵の 98% が分かってしまうようだ。
今すぐ GnuPG を最新バージョンにアップデートすること。 GnuPG 2.x では Libgcrypt を最新のものに差し替えればいいらしい(って, Windows 版はどうすんだ?)。 ただし,バージョンアップでは攻撃を完全に防げるわけではなく,あくまで軽減(Mitigate)ってことらしいが。
しかしこれヤバくね? デモでは GnuPG で RSA 鍵をターゲットにしてたけど,他の暗号ツールまたは他の暗号方式でも同様の攻撃が可能ってことだよね。 色々と話が展開しそうな気がするのは私だけだろうか。