タイミング攻撃とは?
たいみんぐこうげき
タイミング攻撃とは、暗号処理や認証処理にかかる時間の微妙な差を計測することで、秘密鍵やパスワードなどの機密情報を推測するサイドチャネル攻撃の一種です。
タイミング攻撃(Timing Attack)とは、コンピューターが暗号化・認証・比較などの処理を実行するのにかかる時間を精密に計測し、その時間差から秘密情報を推測するサイドチャネル攻撃(Side-Channel Attack)の一種です。プログラムのコードや暗号アルゴリズムそのものを解析するのではなく、「処理時間」という物理的・間接的な情報を利用する点が特徴です。
タイミング攻撃が成立する典型的な原因は、処理時間が入力データや秘密情報の内容によって変化することです。たとえば、パスワードを先頭の文字から1文字ずつ比較するプログラムの場合、正解の文字数が多いほど処理に時間がかかります。攻撃者はこの時間差を多数回の試行で統計的に分析し、正しいパスワードの各文字を推測できます。
タイミング攻撃の対象となりうる場面には以下があります。
- RSA・AESなどの暗号処理(ビット演算のパスによる時間差)
- パスワード比較処理(文字列の早期終了比較)
- デジタル署名の検証
- Webアプリケーションのログイン処理
対策としては、処理時間が秘密情報に依存しない「定数時間(constant-time)」アルゴリズムの使用が基本です。パスワード比較では、全文字の比較を完了してから結果を返す関数を使用することで、時間差による情報漏洩を防ぎます。セキュリティが重視される暗号ライブラリでは、定数時間実装が標準的に採用されています。
使い方・例文
Webサービスへのログインで、パスワードの先頭数文字が合っているだけで応答時間がわずかに長くなる実装があった場合、攻撃者はその時間差を手がかりにパスワードを1文字ずつ絞り込むことができます。
この用語をシェア
最終更新: