1. サイドチャネル攻撃とは
暗号アルゴリズムの数式的な弱点を突くのではなく、実装時に生じる副次的な情報(サイドチャネル)を利用して秘密情報を盗む攻撃です。
例えば、暗号化処理をしているスマートカードやCPUが発する「処理時間の差」「消費電力の揺らぎ」「電磁波」「キャッシュの挙動」などが攻撃対象になります。
2. 主な攻撃手法
(1) タイミング攻撃
- 計算にかかるわずかな時間差を解析して鍵を推測
- 例:RSAの乗算回数の違いから秘密鍵を特定
(2) 電力解析攻撃(SPA / DPA)
-
SPA (Simple Power Analysis)
→ 電力消費波形をそのまま観測 -
DPA (Differential Power Analysis)
→ 多数の電力波形を統計解析し、鍵のビットを推測 - 例:スマートカードのPIN解析
(3) 電磁波解析攻撃(EMA)
- デバイスから漏れる電磁波を拾って演算過程を推測
(4) キャッシュ攻撃
- CPUキャッシュのヒット/ミスを観測して情報を盗む
- 有名な事例:Spectre / Meltdown(2018年)
(5) 音響・振動解析
- キーボードの打鍵音から入力文字を推定する研究も存在
3. 代表的な事例
-
KocherのRSAタイミング攻撃(1996年)
→ 最初の有名なサイドチャネル攻撃 -
DPA攻撃(1999年)
→ スマートカードの秘密鍵漏洩が現実に -
Spectre / Meltdown(2018年)
→ CPUの投機的実行とキャッシュ機構を悪用した大規模脆弱性
4. 対策
ソフトウェア実装での対策
- コンスタントタイム実装(if分岐やルックアップテーブル依存を避ける)
- アクセスパターンや処理時間をデータに依存させない
ハードウェアでの対策
- 電磁波シールドやノイズ注入
- セキュアチップ(TPM, HSM, Secure Enclave)の活用
運用・システム側での対策
- キャッシュ分離や乱数導入で攻撃難易度を上げる
- ソフトウェアアップデートで既知の脆弱性を修正
まとめ
サイドチャネル攻撃は「理論的に安全な暗号」でも、実装が不十分なら破られるという現実を示しています。
近年はIoT機器やクラウド環境でも問題となっており、セキュリティ設計では「アルゴリズム」だけでなく「実装の安全性」も必須です。
ポイント(試験対策用に覚えておくと良いフレーズ)
- 「副次的な情報から秘密を推測」
- 「タイミング・電力・電磁波・キャッシュ」
- 「代表例:RSAタイミング攻撃、DPA、Spectre/Meltdown」