【さいどちゃねるこうげき】
サイドチャネル攻撃 とは?
最終更新:
💡 処理の時間や痕跡から、秘密情報を探る
処理時間や電力消費、電磁波など、処理に伴って観測できる情報を利用し、秘密情報を推測する攻撃。暗号処理だけでなく、CPUのキャッシュなどを利用する攻撃も含む。
📌 このページのポイント
- 本来の出力とは別に観測できる情報を利用する
- 処理時間・電力消費・電磁波・音などが手がかりになる
- 計測から秘密を推測できるかは、実装や攻撃の条件による
- 定時間実装などの対策は、対象の漏えいや環境に合わせて選ぶ
暗号の計算を数学的に破るの?
暗号方式そのものの数学的な弱点を解く方法とは違うよ。実装した機器が残す処理時間や電力などの手がかりから、秘密鍵などの情報を推測するんだ。
時間を測れば、必ず鍵が分かる?
秘密と関連する時間の差が観測できるなどの条件が必要だよ。計測を重ねて分析する攻撃もあるけれど、一定の回数を測れば必ず復元できるという意味ではないんだ。
機器の近くに行かないとできない?
電力や電磁波の計測には物理的な接近が必要になる場合があるね。一方、応答時間をネットワーク越しに観測する攻撃もある。サイドチャネルは一つの観測方法だけを指すわけではないよ。
Spectreも関係する?
定時間実装なら全部防げる?
定時間実装は、秘密情報と処理時間の変動が結び付かないようにする対策だよ。時計で測った時間が毎回完全に同じという意味ではない。電力などの別の漏えいやCPUの攻撃には、実装・機器・OSなどに応じた対策も必要になるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「サイドチャネル攻撃」って出てきたら「処理時間や電力などの手がかりから秘密を探る攻撃」と思えばだいたいOK!
📖 おまけ:英語の意味
「Side-Channel Attack」 = 副経路を使う攻撃
💬 本来やり取りする入力や出力のほかに、処理が残す時間の差や電力などを観測する経路がある。その副経路を使うのでサイドチャネルと呼ぶんだ。