はじめに
Replay attack、通称リプレイ攻撃は、不正アクセスの一つで正しい権限を持つユーザの通信を盗聴し、それををそのまま利用する攻撃手法です。
本記事ではリプレイ攻撃の解説と対策を分かりやすく説明してみます。
リプレイ攻撃の危険性
ネットワーク通信における脅威として「なりすまし」や「盗聴」、「情報改竄」などがありますがそれらは暗号化を用いることで防ぐことができます。
ところが、通信の暗号化を行っていたとしても「リプレイ」という一種の改竄には対応できない場合があります。
なぜでしょうか?
リプライ攻撃の特徴は「パスワードなど秘密の情報の中身が分からずともそれをそのまま送れば認証されてしまう」点にあります。
通信を記録し、同じ通信を送れば相手は正しいパケットと認識してしまいます。
「hoge」
↓暗号化
「ooxoxoxoxoxo」
↓通信
\認証成功/
ここで悪意ある参加者が、暗号化済の「ooxoxoxoxoxo」が何かを知る必要はなくそれをそのまま送付すれば認証に成功しています。
パスワード送付後に例えば情報をリセットするような通信を行った際、その一連の流れを悪意あるユーザはいつでも再現できてしまいます。
リプレイ攻撃への対策
シーケンス番号やタイムスタンプ、ワンタイムパスワードをパケットに付与することでリプレイを防ぐことが可能です。
要は、再度利用しようとすると不審な通信と弾けるようにしてあげればよいのです。
実際、プロトコルによってはタイムスタンプがある範囲を超えると不正なパケットとして破棄する機構を組み込んでいるものもあります。それらは、いわゆるリプレイ攻撃への対策です。
終わりに
リプレイ攻撃とは、正しい権限を持つユーザの通信を盗聴することで実施できる改竄攻撃です。
暗号化していれば万事オッケーというわけではないということは、頭の片隅に入れておくとどこかで役立つやもしれません。
以上、ご参考になれば幸いです。