リプレイ攻撃とは、サイバー犯罪者が安全なネットワーク通信を傍受して妨害し、不正に遅らせたり再送信することで、犯罪者の望むことを受信者がするように仕向ける行為です。リプレイ攻撃のもう一つの危険は、ハッカーに高度なスキルがなくても、ネットワークからメッセージを取得すると、それを復号化できる点です。すべてを再送信するだけで、攻撃が機能する可能性があります。
リプレイ攻撃の仕組み
次の攻撃を実世界の例と捉えてください。ある会社の社員が、その会社の財務管理者に暗号化したメッセージを送信して、送金を要求します。攻撃者がこのメッセージを傍受して取得し、それを再送信する立場になります。攻撃者のメッセージは単に再送信された本物のメッセージなので、すでに正確に暗号化されていて、財務管理者には本物に見えます。
このシナリオでは、財務管理者がそれを疑う正当な理由がない限り、管理者はこの新規リクエストに応答する可能性が高いでしょう。この対応によって、攻撃者の銀行口座に大金が送金される可能性があります。
リプレイ攻撃を止める
このような攻撃の予防で重要なのは、正しい暗号化方法を持つことです。暗号化されたメッセージは「鍵」を内包していて、送信の最終点で復号化されると、その鍵がメッセージを開きます。リプレイ攻撃では、オリジナルのメッセージを傍受する攻撃者が鍵を読み取れるまたは解読できるかどうかは関係ありません。メッセージと鍵という組み合わせを一緒に取得し、再送信するだけで良いのです。
この攻撃に対抗するためには、送信者と受信者の両方が完全にランダムなセッションキーを確立するべきです。セッションキーとは、1回のトランザクションでのみ有効で、再使用できない種類のコードです。
この種の攻撃に対するもう一つの予防策は、すべてのメッセージでタイムスタンプを使うことです。この対策では、ある一定の時間より前に送信されたメッセージをハッカーが再送信できないようにします。そのため、攻撃者がメッセージを傍受して盗み、それを再送信する機会を減らせます。
被害者にならないためにできることは、トランザクションごとにパスワードを持ち、1度使うと破棄することです。すると、たとえメッセージが攻撃者により記録、再送信されても、暗号化コードが無効になり、二度と使えなくなります。