脆弱性
タイミング攻撃
別称: タイミング・サイドチャネル
定義
入力ごとに処理にかかる時間の差を測定することで秘密情報を回復するサイドチャネル攻撃。
タイミング攻撃は、暗号や認証コードでの入力に依存する実行時間を利用します。古典的な標的としては、定数時間ではない文字列比較(早期不一致のバイトで処理が打ち切られ進行度が漏れる)、剰余べき乗(square-and-multiply による鍵ビット漏えい)、AES のテーブル参照、行の存在で応答時間が変わるデータベース問い合わせなどがあります。ネットワーク越しのナノ秒差、ローカルのマイクロ秒差といった小さな差でも、多数回の測定を平均化することで増幅できます。防御には、定数時間の実装(HMAC 風比較、分岐のない条件移動)、crypto_constant_time_eq のようなプリミティブ、暗号ライブラリの綿密な監査、攻撃者が測定可能な境界でのレート制限やジッターが必要です。
例
- Kocher による 1996 年の RSA に対するタイミング解析攻撃。
- Lucky Thirteen(CVE-2013-0169):TLS の CBC パディングに対するタイミング攻撃。
関連用語
サイドチャネル攻撃
論理的欠陥ではなく、時間・消費電力・電磁波・キャッシュ・音響など、システムの物理的または実装上の特徴を観測することで秘密情報を回復する攻撃。
暗号学
敵対者が存在する環境で機密性・完全性・真正性・否認防止を保証するため、数学的手法によって情報を保護する科学。
RSA アルゴリズム
Rivest・Shamir・Adleman が 1977 年に発表した公開鍵アルゴリズム。2 つの大きな素数の積を素因数分解する難しさを安全性の根拠とする。
AES(Advanced Encryption Standard)
NIST が標準化した 128 ビットブロック暗号で、鍵長は 128・192・256 ビット。Daemen と Rijmen が設計し、世界で最も広く使われている対称暗号。
Secure Coding
Secure Coding — definition coming soon.
脆弱性
システム、アプリケーション、または運用プロセスに存在する弱点で、攻撃者が機密性・完全性・可用性を侵害するために悪用できるもの。