
リプレイ耐性は一言で表すと、リプレイ攻撃に対する防御能力(耐性)です。米国国立標準技術研究所(NIST)が発行するNIST SP800-63などのガイドラインでは「過去に傍受された正当な認証情報や再送信されたものを含むアクセス情報を用いた不正な操作やアクセスを防ぐための特性」と定義されています。リプレイ耐性はリプレイ攻撃が脅威であるからこそ要求される特性です。
リプレイ攻撃とは?
リプレイ攻撃はサイバー攻撃の一種で、認証に必要なデータを奪取し、これを用いて認証を試みる手法です。銀行口座の振り込みに例えてみましょう。
Aさんがインターネットで自分のA口座からオンラインバンキングサービスを通じてB口座に送金するとします。攻撃者は送金時のデータを何らかの形で傍受し、これを用いて、同じ処理をシステムに再送信します。その処理が既に実行済みであると認識されない場合、新規の処理としてA口座からB口座に振り込まれます。これにより、攻撃者は何度でもB口座への振り込みが出来てしまいます。つまり、過去の処理情報を用いて同様の処理を繰り返し行う(リプレイ)攻撃なのです。
リプレイ攻撃の特徴は2つあります。1つ目は高度な技術を持たなくても実行可能である点です。送信データを入手できれば成立するため、暗号解読のような高度な技術は必要ありません。2つ目は傍受の方法が多い点です。通信傍受のような技術的方法から、パスワードを直接盗み見るなど物理的な方法まで存在するため、比較的簡単に実行できます。
このような容易さから、攻撃者にとって利用しやすく、その結果として大きな被害を引き起こすことがあります。アメリカのテキサス州ダラス市では、市内の屋外緊急警報サイレンが一斉に鳴り響き、市民をパニックに陥れました。原因は「無線信号リプレイ攻撃」を受けたこととされています。攻撃者は何らかの手口でサイレンの鳴らし方を入手し、無線にて実行したとされています。
また、暗号通貨を扱う分散型自律組織(DAO)において、脆弱性を突いたリプレイ攻撃により、当時のレートで50億円相当以上の暗号通貨が奪われる事件が発生しました。投資プラットフォームのプログラム上の脆弱性を突いて、暗号通貨を不正に送金された事案です。
その他、リプレイ攻撃によって自動車のキーレスシステムがハッキングされ、ドアの解錠やエンジンの始動が可能になるケースも報告されています。このようにリプレイ攻撃はシステムの誤作動や不正利用につながります。そのため、リプレイ耐性は、電子的な本人確認や機密情報保護の分野で強く求められています。
リプレイ耐性はセキュリティ要件
では、リプレイ耐性を向上させるために必要なこととは何でしょうか。重要なのは認証における「新鮮さ」です。「新鮮さ」とは「特定の認証要求に対してのみ有効」および「各送信がユニーク」であることを指します。つまりトランザクション(一連の処理)が新しく、かつ明確であることを検証できる仕組みが必要です。これにより、攻撃者が送信データを再利用してもそれは「過去に処理済みのリクエスト」と認識され、実行されるのを防ぐことができます。
認証における「新鮮さ」は、単なる概念ではなく、実際の規格やガイドラインでも要件として定められています。デジタルアイデンティティンサービスの実装要件を示すNIST SP800-63では認証プロセスの信頼性とセキュリティレベルの認証保証レベル(AAL)において3段階のうちレベル2とレベル3ではリプレイ耐性の実装が要求されています。
また、NIST SP800-171(アメリカの連邦政府以外の組織でCUIを保護するためのセキュリティガイドライン)では「特権アカウントおよび非特権アカウントへのネットワークアクセスに、リプレイ耐性のある認証メカニズムを採用すること」と規定しています。いずれも攻撃者が古いプロトコルメッセージ(双方の約束事に基づいた通信情報)をリプレイした場合にそれを認証しないよう、仕組みを作ることが重要となります。
リプレイ耐性を実現する技術
上記ガイドラインの要件を満たし、リプレイ耐性を実現するためにはどのような機能や技術が求められるでしょうか。代表的な技術として以下にいくつかの例を挙げます。
- ● チャレンジレスポンス認証
- パスワードを直接送信しない認証の方法です。キーワードとパスワードを合体したものを送付するので、傍受されてもパスワードが把握できず、リスクを低減できます。
- ● ノンス
- 暗号通信で用いられる、一回限りのランダムな任意の数値です。これにより、古い通信の再利用を防ぐことができます。
- ● ワンタイムパスワード(OTP)
- 時間制限が設けられている使い捨てのパスワードです。制限時間を過ぎると無効になるため、リプレイ攻撃への対策に有効です。
- ● 多要素認証
- 「記憶(知識情報)」、「所持(トークンや端末)」、「生体(指紋や顔認証)」の複数要素を組み合わせて認証することをいいます。複数のデータを用いるため、攻撃者はリプレイ攻撃を実施することが不可能となります。
- 認証における「新鮮さ」を維持するためには、このように一回限り、あるいは特定の条件に限り有効な認証を実装することが効果的です。これらの技術は金融システムやIoTデバイス、通信システムなど高いセキュリティが求められる場面で導入されています。
リプレイ攻撃は実行が容易であることはこれまでも述べてきた通りですが、手法も多岐にわたり、攻撃者は次々と趣向を凝らして傍受を試みます。また、リプレイ攻撃以外の攻撃手法と組み合わせることで、セキュリティが侵害されるリスクが高まります。現在、リプレイ耐性の実装が標準的に求められており、各企業も対応を進めています。しかし、例え万全な対策を施しても、新たな攻撃方法が編み出されることで常にリスクは存在し続けます。企業の情報資産を守るためのサイバーセキュリティの一環として、守る側も多層的かつ柔軟な対応が必要でしょう。