前記事は受動的な攻撃についてでした、こちらでは能動的な攻撃例の解説を独自に図式化も加えてまとめてみます。
能動的な攻撃例
能動的な攻撃、の典型例はマロリーが何らかの形でアリスとボブの通信を乗っ取ること。アリスはボブにデータを送信している、ボブはアリスからデータを受信している、と思わせます。
このためにはマロリーが何らかの方法でアリスとボブの通信の認証を破る必要があります。
TLS通信の場合、マロリー(攻撃者)にとって理想的なのはアリスが有効と認識する証明書(certificate)を提示できる状況です。アリスが正しい、と認識する証明書を提示できる場合乗っ取りはほぼ検知できないことになります。
有効な証明書を入手する方法
原著では掲題の方法をいくつか紹介していますが、これらはいずれも過去に実際に起こった攻撃のようです。
1.パブリックなインフラを悪用して入手する
2.ブラウザーの証明書検証の仕組みを欺いて有効に見える証明書を構成する
3.アリスが警告を無視してくれることを期待して、マロリーは不正な証明書を提示する
4.ブラウザーの暗号化通信モードを無効にする特別なリクエストを送信する。(攻撃ベクター)
能動的な攻撃の特性
受動的攻撃に比較して小規模な攻撃にとどまる、攻撃に必要な時間・コンピューティングリソースは膨大
・受動的攻撃はデータを受信し通信パケットをコピーするだけ、とも言えますが、能動的攻撃を仕掛けるには個々の接続を追跡するために多くの処理が必要なため、より大掛かりなソフトウェア、ハードウェアが必要になります。
・不特定多数、のような大多数の大量のトラフィックの通信経路を気づかれずに変更するのは困難
・詐称した偽の証明書を気づかれずに使う事も、さまざまなウェブサイトで利用される証明書を追跡している個人・組織が多数ある中では困難
・最もうまく行きそうなのは認証をすり抜けることができる実装上のバグを悪用する事だが、このようなバグが壊滅的なまま残されることはまずない。
以上のような特性から、能動的攻撃は主に重要人物に対して仕掛けられます。基本的には攻撃を自動化する事は出来ないので(※原文執筆は2023年なので2026年現在のAIを駆使すれば別な議論になるのかもしれません)、大半は出来合いの攻撃システムからソフトウェア自体を攻撃するほうがはるかに簡単だと書かれています。
アメリカ国家安全保障局NSAがQuantumInsertというプログラムの下でインターネット上の殆ど任意のコンピューターに対して能動的攻撃を可能にする基盤を配備したことが指摘されています。QuantumInsertはネットワーク攻撃の一種とされますが、(執筆時点では?)暗号化を対象にしたものでは無いようです。特定の個人に対してブラウザーの挙動を変えるために使用可能で、パケットを自動生成する特別なノードを通信インフラの重要拠点に設置する事で本来のサーバーが通信リクエストに応答するよりも早くNSAの機器から?応答を返し、一部トラフィックをNSAにとって都合のいいサーバーに転送します。
