(57)【要約】  幾つかの態様において、ＴＬＳ接続におけるＳＮＩとしてのドメイン名及びＨＴＴＰ  ＧＥＴメッセージ内の代替ドメイン名を用いて、ターゲット・ドメインのＩＰアドレスとは異なる代替ＩＰアドレスを用いてドメイン名からウェブページを検索するためにＴＣＰ接続を確立することであって、ＨＴＴＰ  ＧＥＴメッセージに応答したターゲット・ウェブページの受信は、ＭＩＴＭが存在することを示し、代替ドメイン名のターゲット・ウェブページは、ＭＩＴＭが存在することを示す、確立することと、ドメイン生成アルゴリズムを用いて代替ドメイン名を生成し、生成された代替ドメイン名をＴＬＳメッセージ内のＳＮＩとして使用することであって、生成された代替ドメイン名についての証明書の受信は、ＭＩＴＭが存在することを示す、生成及び使用することとを含む、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出するための種々の方法が開示される。
2021510877.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスから、ＴＣＰ確認応答メッセージを受信することと、
前記受信したＴＣＰ確認応答に応答して、前記代替ＩＰアドレスとＴＣＰ接続を確立することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記受信した証明書を検証することと、
前記受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
前記ターゲット・ウェブページの前記受信に基づいて、中間者（ＭＩＴＭ）が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項２】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項１に記載の方法。
【請求項３】
前記代替ＩＰアドレスは、前記ドメイン名の前記受信したＩＰアドレス中の数字にスクランブルをかけることによって生成される、請求項１に記載の方法。
【請求項４】
第２のＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスから第２のＴＣＰ確認応答メッセージを受信することと、
前記受信した第２のＴＣＰ確認応答に応答して第２のＴＣＰ接続を確立することと、
前記第２のＴＣＰ接続を用いて第２のＴＬＳメッセージを伝送することであって、前記第２のＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含む第２のＴＬＳ応答メッセージを受信することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記ドメイン名についての前記証明書を検証することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書の検証に応答して、第２のＴＬＳ接続を確立することと、
前記第２のＴＬＳ接続を用いて第２のＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記第２のＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられた第２のターゲット・ウェブページとを含む、伝送することと、
前記第２のターゲット・ウェブページを含む第２のＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記第２のターゲット・ウェブページの前記受信にも基づいている、請求項１に記載の方法。
【請求項５】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記受信した証明書を検証することと、
前記受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
前記ターゲット・ウェブページの前記受信に基づいて、中間者（ＭＩＴＭ）が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項６】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項５に記載の方法。
【請求項７】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
ＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記受信したＴＣＰ確認応答に応答して、前記ＴＣＰ接続を確立することと、
を含む、請求項５に記載の方法。
【請求項８】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記代替ＩＰアドレスとの前記ＴＣＰ接続を確立することと、
を含む、請求項５に記載の方法。
【請求項９】
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
前記代替ＩＰアドレスへの第２のＴＣＰ接続を確立することと、
前記第２のＴＣＰ接続を用いて第２のＴＬＳメッセージを伝送することであって、前記第２のＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含む第２のＴＬＳ応答メッセージを受信することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書を検証することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書の検証に応答して、第２のＴＬＳ接続を確立することと、
前記第２のＴＬＳ接続を用いて第２のＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記第２のＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられた第２のターゲット・ウェブページとを含む、伝送することと、
前記第２のターゲット・ウェブページを含む第２のＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記第２のターゲット・ウェブページの前記受信にも基づいている、請求項５に記載の方法。
【請求項１０】
前記代替ＩＰアドレスは、前記ドメイン名の前記ＩＰアドレス中の数字にスクランブルをかけることによって生成される、請求項９に記載の方法。
【請求項１１】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、
ドメイン生成アルゴリズムを用いて、代替ドメイン名を生成することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記生成された代替ドメイン名を含む、伝送することと、
前記生成された代替ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記証明書の前記受信に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項１２】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項１１に記載の方法
【請求項１３】
前記生成された代替ドメイン名は、高レベルのエントロピーを有する、請求項１１に記載の方法。
【請求項１４】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
ＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記ＴＣＰ接続を確立することと、
を含む、請求項１１に記載の方法。
【請求項１５】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記代替ＩＰアドレスと前記ＴＣＰ接続を確立することと、
を含む、請求項１１に記載の方法。
【請求項１６】
前記証明書の受信に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記ターゲット・ウェブページの前記受信にも基づいている、請求項１１に記載の方法。
【請求項１７】
前記証明書の受信に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記ターゲット・ウェブページの前記受信にも基づいている、請求項１１に記載の方法。
【請求項１８】
１つ又は複数の処理ユニットにより可読であり、前記請求項のいずれか１項に記載の前記方法を実行するための、１つ又は複数のプロセッサにより実行される命令を格納する、コンピュータ可読ストレージ媒体を含む、コンピュータ・プログラム製品。
【請求項１９】
メモリと、
前記メモリと通信する少なくとも１つのプロセッサと、
請求項１から請求項１７までのいずれか１項に記載の前記方法を実行するための、前記メモリを介して１つ又は複数のプロセッサにより実行可能なプログラム命令と、
を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ：Hypertext Transfer Protocol Secure）通信に関し、特に、ＨＴＴＰＳを用いて行われる通信の監視を試みようとし得る中間者（ＭＩＴＭ：man-in-the-middle）の検出に関する。
【背景技術】
【０００２】
ＨＴＴＰＳの導入が増えるにつれて、ネットワーク・トラフィックへの可視性を保持するために、ミドルボックス及びアンチウィルス製品が、ますますトランスポート層セキュリティ（ＴＬＳ：Transport Layer Security）接続をインターセプトするようになっている。ＨＴＴＰＳに関しては、セキュリティ・コミュニティは、矛盾する目標を目指して努力している。一方、セキュリティ・コミュニティは、強力なエンド・ツー・エンド接続のセキュリティを与えるために、ＨＴＴＰＳを強固にして至る所に導入することに尽力している。同時に、ミドルボックス及びアンチウィルス製品は、ＨＴＴＰＳプロトコルを用いて検査を回避する悪意のあるコンテンツを検出及びブロックしようとして、ＨＴＴＰＳ接続をますますインターセプトする（すなわち、終了して再開する）ようになっている。マネージド・ワークステーション（managed workstation）上にインストールされたサーバ名表示（ＳＮＩ：Server Name Indication）及び自己署名ルート証明書（self-signed root certificate）の出現は、トランスポート層のセキュリティ全体を脆弱にし、従って、ＨＴＴＰＳを脆弱にする。
【０００３】
ＳＮＩは、クライアントが、ハンドシェーク・プロセスの開始時に、どのホスト名が接続を試みているかを示すことを可能にする、ＴＬＳコンピュータ・ネットワーキング・プロトコルの拡張機能である。このＳＮＩは、クライアントが、サーバの識別(identity）を受け取る前に情報を明らかにしないオリジナルのＴＬＳ仕様とは異なる。従って、ＳＮＩは、サーバが、同じインターネット・プロトコル（ＩＰ）アドレス及び伝送制御プロトコル（ＴＣＰ：Transmission Control Protocol）ポート番号で複数の証明書を提示することを可能にする。このＳＮＩは、サーバが、サイトの全てが同じ証明書を使用することを要求することなく、同じＩＰアドレスを用いて複数のセキュアな、例えばＨＴＴＰＳウェブサイト（又は、ＴＬＳを介した他のいずれかのサービス）にサービス提供することを可能にする。それは、ＨＴＴＰＳがなければ、ＨＴＴＰ／１．１の名前ベースの仮想ホスティングと概念的に等しい。ＳＮＩにおいては、所望のホスト名は暗号化されず、それにより、盗聴者が、どのサイトが要求されているかを知ることが可能になる。
【０００４】
暗号化技術及びコンピュータ・セキュリティにおいて、自己署名証明書は、自らの識別を自らが証明する同じエンティティによって署名される識別証明書である。この用語は、署名手順を実際に行った人又は組織の識別とは何の関係もない。技術用語では、自己署名証明書は、送信側エンティティの秘密鍵で署名された証明書である。典型的な公開鍵インフラストラクチャ（ＰＫＩ）構成において、認証局（ＣＡ）からのデジタル署名は、特定の公開鍵証明書が有効である（すなわち、正しい情報を含む）ことを証明する。
【０００５】
ドメイン生成アルゴリズム（ＤＧＡ）は、多数のドメイン名を生成するために用いることができるアルゴリズムである。マルウェアで頻繁に用いられるＤＧＡは、命令を受け取るための、ボットネット用のコマンド及び制御サーバとしてランデブーポイントを生成するために使用されることがある。感染したコンピュータは、更新又はコマンドを受け取るために、これらの生成されたドメイン名の異なるセットに毎日連絡を取ろうと試みるので、多数の潜在的な生成されたランデブーポイントは、例えば法執行機関などの他の行為者（actor）が、ボットネットを効果的に追跡又はシャットダウンするのを困難にする。これらのドメイン名の生成は、種々のアルゴリズム並びに１つ又は複数のシードに基づくものとすることができる。ＤＧＡは、高レベルのエントロピー、例えば、明らかにランダムな数字及び文字のセットを有するドメイン名を生成することが多い。しかしながら、これらのドメイン名を、１つより多いコンピューティング・デバイスにより反復可能であり得る所定の基準に従って生成し、各コンピューティング・デバイスが、コマンド及び制御命令に対して同じドメイン名にアクセスするのを可能にすることができる。例示的なＤＧＡは、例えば、年、月及び日のような時間ベースのパラメータに基づいてドメイン名を生成することができる。例えば、ＤＧＡは、年、月及び日を入力し、その年、月及び日に対する数学演算、例えば、乗算、加算、ビット単位の演算、又は他の数学演算を行って値を修正するアルゴリズムを実装することができる。幾つかの態様において、年、月及び日の１又は複数に対する数学演算の出力を、別の形態、例えば１６進法に変換し、それらを結合してドメイン名を生成することができる。幾つかの態様においては、更に別の数学演算により、さらに結合した値を調整することができる。次に、出力を、適切なドメイン識別子、例えば、．ｃｏｍ、．ｎｅｔ等に追加して、ドメイン名を作ることができる。次に、生成されたドメイン名をＤＧＡから出力し、使用することができる。
【発明の概要】
【０００６】
本明細書で説明されるシステム、方法、及びコンピュータ・プログラム製品は、ブラウザとウェブサーバとの間のＨＴＴＰＳ通信をインターセプトしている中間者の存在を識別するために用いることができる。
【０００７】
本開示の態様において、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法が開示される。方法は、ドメイン名のＩＰアドレスについての問い合わせをＤＮＳに伝送することと、ＤＮＳから、ドメイン名のＩＰアドレスを受信することと、ドメイン名のＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、ＴＣＰメッセージを代替ＩＰアドレスに伝送することと、代替ＩＰアドレスから、ＴＣＰ確認応答メッセージを受信することと、受信したＴＣＰ確認応答に応答して、代替ＩＰアドレスとＴＣＰ接続を確立することと、ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、ＴＬＳメッセージのＳＮＩはドメイン名を含む、伝送することと、ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、受信した証明書を検証することと、受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することとを含む。ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、ドメイン名と、ドメイン名と関連付けられたターゲット・ウェブページとを含む。方法は、ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、ターゲット・ウェブページの受信に基づいて、中間者（ＭＩＴＭ）がＨＴＴＰＳ通信をインターセプトしていると判断することとをさらに含む。
【０００８】
本開示の別の態様において、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法が開示される。方法は、ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、ＴＬＳメッセージのＳＮＩはドメイン名を含む、伝送することと、ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、受信した証明書を検証することと、受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することとを含む。ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、ドメイン名とは異なる代替ドメイン名と、代替ドメイン名と関連付けられたターゲット・ウェブページとを含む。方法は、ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、ターゲット・ウェブページの受信に基づいて、中間者がＨＴＴＰＳ通信をインターセプトしていると判断することとをさらに含む。
【０００９】
本開示の別の態様において、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法が開示される。方法は、ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、ドメイン生成アルゴリズムを用いて、代替ドメイン名を生成することと、ＴＣＰ接続を用いて、ＴＬＳメッセージを伝送することであって、ＴＬＳメッセージのＳＮＩは生成された代替ドメイン名を含む、伝送することと、生成された代替ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、証明書の受信に基づいて、中間者がＨＴＴＰＳ通信をインターセプトしていると判断することとを含む。
【００１０】
本開示の態様において、上の態様に従ったシステム及びコンピュータ・プログラム製品を提供することもできる。本開示の範囲から逸脱することなく、上の態様のいずれかを組み合わせることができる。
本開示の詳細は、その構造及び動作の両方に関して、同じ参照番号及び名称が同じ要素を示す添付図面を参照することにより、理解することができる。
【図面の簡単な説明】
【００１１】
【図１】本開示の幾つかの態様による、ＨＴＴＰＳプロトコル通信においてＭＩＴＭの存在を検出するためのシステムを示すシステム図である。
【図２】本開示の第１の方法による、ブラウザ、サーバ及び潜在的なＭＩＴＭの間の通信を示すフロー図である。
【図３】本開示の第２の方法による、ブラウザ、サーバ及び潜在的なＭＩＴＭの間の通信を示すフロー図である。
【図４】本開示の第４の方法による、ブラウザ、サーバ及び潜在的なＭＩＴＭの間の通信を示すフロー図である。
【図５】本明細書で説明されるシステム、方法、及びコンピュータ・プログラム製品に含まれるプロセスを実施できるコンピュータ・システムの例示的なブロック図である。
【発明を実施するための形態】
【００１２】
ＴＣＰ／ＩＰプロトコル・スイートの積層性質のため、中間者の検出に用いることができるＴＣＰ及びＴＬＳエンドポイントにおける不整合のある設定を用いて、伝送フローを作り上げることが可能である。本明細書に開示されるのは、コンピューティング・デバイスのブラウザとサーバとの間の単一のＴＣＰフローであるべきものにおいて目に見えないＭＩＴＭ行為者を顕在化させるように、ＴＣＰ、ＴＬＳ及びＨＴＴＰ設定の操作を含むＨＴＴＰＳプロトコルを用いて通信する特定の方法である。幾つかの態様において、これは、ドメイン名システム（ＤＮＳ）からの結果を操作して、ばらばらのＴＣＰ、ＴＬＳ及びＨＴＴＰ命令を利用する多数の使用可能な条件からテストを作成し、トランザクションが予期せぬ方法で完了した場合にＭＩＴＭを示す可能性のある通信チェーンの検査ポイントを明らかにすることにより、行うことができる。
【００１３】
ここで図１を参照すると、コンピューティング・デバイス１１０とサーバ１５０との間のＨＴＴＰＳ通信のためのシステム１００が示される。幾つかの態様において、システム１００は、コンピューティング・デバイス１１０と、サーバ１５０とを含む。幾つかの態様において、システム１００は、コンピューティング・デバイス１１０とサーバ１５０との間の伝送をインターセプトしようと試みている中間者１７０を含むこともある。
【００１４】
コンピューティング・デバイス１１０は、少なくとも１つのプロセッサ１１２と、メモリ１１４と、少なくとも１つのネットワーク・インターフェース１１６と、ディスプレイ１１８と、入力デバイス１２０とを含み、かつ、コンピューティング・デバイスに一般的に見られる任意の他の特徴を含むことができる。幾つかの態様において、コンピューティング・デバイス１１０は、例えば、ＨＴＴＰＳ接続上で、サーバ１５０からのデータを受送信するように構成された、ユーザと関連付けられたコンピューティング・デバイスとすることができる。幾つかの態様において、コンピューティング・デバイス１１０は、例えば、パーソナル・コンピュータ、ラップトップ、タブレット、スマート・デバイス、スマートフォン、スマートウオッチ、又はユーザに使用され得る任意の他の類似のコンピューティング・デバイスを含むことができる。
【００１５】
プロセッサ１１２は、例えば、マイクロコントローラ、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又は種々の動作を実行するように構成された任意の他のプロセッサを含むことができる。プロセッサ１１２は、以下に説明されるような命令を実行するように構成することができる。これらの命令は、例えば、メモリ１１４内に格納することができる。
【００１６】
メモリ１１４は、例えば、ランダム・アクセス・メモリ（ＲＡＭ）もしくはキャッシュ・メモリ又はその組み合わせ、又は他のもののような、揮発性メモリの形態のコンピュータ可読媒体又はコンピュータ可読ストレージ媒体を含むことができる。メモリ１１４は、例えば、他の取り外し可能／取り外し不能、揮発性／不揮発性のストレージ媒体を含むことができる。単に非限定的な例として、メモリ１１４は、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、又は上記の任意の適切な組み合わせを含むことができる。
【００１７】
ネットワーク・インターフェース１１６は、有線又は無線接続を介して、サーバ１５０又任意の他のコンピューティング・デバイスとの間でデータ又は情報を受送信するように構成される。例えば、ネットワーク・インターフェース１１６は、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷＩＦＩ（例えば、８０２．１１ａ／ｂ／ｇ／ｎ）、セルラー・ネットワーク（例えば、ＣＤＭＡ、ＧＳＭ、Ｍ２Ｍ、及び３Ｇ／４Ｇ／４Ｇ  ＬＴＥ）、近距離無線通信（Near-field Communication）システム、衛星通信、ローカル・エリア・ネットワーク（ＬＡＮ）経由、広域ネットワーク（ＷＡＮ）経由、又はコンピューティング・デバイス１１０が情報をサーバ１５０との間で受送信することを可能にする任意の他の形態の通信などの、無線技術及び通信プロトコルを利用することができる。
【００１８】
ディスプレイ１１８は、情報をコンピューティング・デバイス１１０のユーザに表示するように構成された任意のディスプレイ・デバイスを含むことができる。例えば、幾つかの態様において、ディスプレイ１１８は、コンピュータ・モニタ、テレビジョン、スマート・テレビジョン、又は他の類似のディスプレイを含むことができる。幾つかの態様において、ディスプレイ１１８は、例えば、ラップトップ、スマートフォン、スマートウオッチ、又は他のスマート・ウェアラブル・デバイスのディスプレイとして、コンピューティング・デバイス１１０と関連付けられた仮想現実ヘッドセットとして、又は情報をユーザに表示するための任意の他の機構として、コンピューティング・デバイス１１０に統合すること又はコンピューティング・デバイス１１０と関連付けることができる。幾つかの態様において、ディスプレイ１１８は、例えば、液晶ディスプレイ（ＬＣＤ）、電子ペーパー（e-paper）／電子インク（e-ink）ディスプレイ、有機ＬＥＤ（ＯＬＥＤ）ディスプレイ、又は他の類似のディスプレイ技術を含むことができる。幾つかの態様において、ディスプレイ１１８は、タッチ式とすることができ、入力デバイス１２０として機能することもできる。
【００１９】
入力デバイス１２０は、例えば、キーボード、マウス、タッチ式ディスプレイ１１８、キーパッド、マイクロフォン、又は他の類似の入力デバイス、又はユーザにコンピューティング・デバイス１１０と相互作用する能力を与えるように単独で若しくは一緒に用いることができる任意の他の入力デバイスを含むことができる。
【００２０】
サーバ１５０は、プロセッサ１１２、メモリ１１４及びネットワーク・インターフェース１１６と類似の機能を有するプロセッサ、メモリ、及びネットワーク・インターフェースを含むことができる。幾つかの態様において、サーバ１５０は、例えば、任意のコンピューティング・デバイス、サーバ、又はコンピューティング・デバイス１１０と相互作用する又はデータをコンピューティング・デバイス１１０に提供するように構成された類似のシステムとすることができる。例えば、サーバ１５０は、ウェブページと関連したコンピューティング・デバイス１１０からのデータを送受信するように構成されたウェブサーバとすることができる。
【００２１】
中間者１７０は、コンピューティング・デバイス１１０とサーバ１５０との間の通信をインターセプトしようと試みている任意のコンピューティング・デバイスとすることができ、かつ、プロセッサ１１２、メモリ１１４及びネットワーク・インターフェース１１６と類似の機能を有するプロセッサ、メモリ、及びネットワーク・インターフェースを含むことができる。
【００２２】
中間者検出方法１：
ここで図２を参照すると、ＨＴＴＰＳプロトコルを用いる通信において中間者（ＭＩＴＭ）を検出するための第１の方法が開示される。
【００２３】
高レベルにおいて、セクション２０２に示されるように、コンピューティング・デバイス１１０のブラウザ２０４とウェブサーバ２０６、例えば、ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍとの間のＨＴＴＰＳ通信は、ブラウザ２０４によるＨＴＴＰＳ  ＧＥＴ要求２０８を設定２１０で指定されたＩＰアドレスのウェブサーバ２０６へ伝送することを含むことができる。例えば、設定は、ウェブサーバ２０６についての「１９２．１６８．１．１」のＴＣＰ  ＩＰアドレス、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＴＬＳ、及び「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＨＴＴＰを含むことができる。ＨＴＴＰＳ  ＧＥＴ要求２０８は、要求されるｈｔｍｌウェブページ、例えば「ｉｎｄｅｘ．ｈｔｍｌ」を特定するユニフォーム・リソース・ロケータ（ＵＲＬ：Uniform Resource Locator）「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｓｅｘ．ｈｔｍｌ」を含む。
【００２４】
ＨＴＴＰＳ  ＧＥＴ要求２０８に応答して、ＩＰアドレス「１９２．１６８．１．１」を有するウェブサーバ２０６、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」は、「ｉｎｄｅｘ．ｈｔｍｌ」ウェブページを含むＨＴＴＰＳ  ＯＫ伝送２１２をブラウザ２０４に返すことになる。次に、ブラウザは、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を、例えばディスプレイ１１８を介してユーザに提示することができる。
【００２５】
上の通信プロトコルを用いる通常の条件下では、ブラウザ２０４のユーザは、ＭＩＴＭがブラウザ２０４とウェブサーバ２０６との間の通信を監視しているかどうか、又はＭＩＴＭがウェブサーバ２０６との通信をインターセプトしたことは、分からない。
【００２６】
セクション２１４において、ブラウザ２０４とウェブサーバ２０６との間の通信のための設定２１６の特定のセットの使用を含む、方法１に含まれる通信のプロトコルによる詳細なフローが示される。設定２１６は、ブラウザ２０４のユーザが、ＭＩＴＭをだましてその存在を明らかにすることにより、ＭＩＴＭがブラウザ２０４とウェブサーバ２０６との間の通信をインターセプトしているかどうかを判断することを可能にするように構成される。例えば、方法１において、ユーザは、設定２１６において偽の情報と正しい情報との組み合わせを提供して、ＭＩＴＭの存在がなければブラウザ２０４がウェブサーバ２０６から受信することはなかった応答を引き出すことにより、ＭＩＴＭをだましてその存在を明らかにする。
【００２７】
プロトコルにおいては、ターゲット・ウェブサーバ２０６についてのウェブアドレス、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」を含むＤＮＳ  Ｑメッセージ２１８が、ドメイン名サーバ（ＤＮＳ）２２０に伝送される。
【００２８】
ＤＮＳ  Ｑメッセージ２１８に応答して、ＤＮＳ２２０は、ウェブサーバ２０６についてのＩＰアドレス、例えば１９２．１６８．１．１を含むＤＮＳ  Ａメッセージ２２２を返す。
【００２９】
次に、受信したＩＰアドレスは、２２４において、ブラウザ２０４によりスクランブルがかけられて、ウェブサーバ２０６についての偽のＩＰアドレスとして異なる番号に、この場合は１９２．１．６８．１１に、変更される。従って、ウェブサーバ２０６との通信に用いられることになるＴＣＰ  ＩＰアドレスは、ＤＮＳ２２０から返された正しいＩＰアドレス「１９２．１６８．１．１」の代わりに、偽のＩＰアドレス「１９２．１．６８．１１」となる。ＨＴＴＰＳプロトコルについての残りの設定２１６、例えば、ＴＬＳドメイン名の設定「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」及びＨＴＴＰドメイン名の設定「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」は、ウェブサーバ２０６に関して正しいものである。
【００３０】
ブラウザ２０４は、ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ２２６を、偽のＩＰアドレス「１９２．１．６８．１１」に伝送することにより、ＴＣＰ  ３ウェイ・ハンドシェークを開始し、それは、偽のＩＰアドレス「１９２．１．６８．１１」であるように装っているＭＩＴＭプロキシ２３０により、２２８においてインターセプトされる。
【００３１】
ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ２２６に応答して、ＴＣＰ  ＳＹＮＡＣＫメッセージ２３２は、あたかもそれが偽のＩＰアドレス「１９２．１．６８．１１」から受信されたかのように、ブラウザ２０４によりＭＩＴＭプロキシ２３０から受信される。例えば、ＴＣＰ  ＳＹＮＡＣＫメッセージ２３２内には、そのメッセージが、偽のＩＰアドレス「１９２．１．６８．１１」ではなく、実際にはＭＩＴＭプロキシ２３０から受信されたことを示すものはない。
【００３２】
ＴＣＰ  ＳＹＮＡＣＫメッセージ２３２に応答して、ブラウザ２０４は、ＴＣＰ  ＡＣＫメッセージ２３４を偽のＩＰアドレス「１９２．１．６８．１１」に伝送し、ＴＣＰ  ＳＹＮＡＣＫメッセージ２３２の受信を確認応答する。ＴＣＰ  ＡＣＫメッセージ２３４は、再びＭＩＴＭプロキシ２３０によりインターセプトされ、ウェブサーバ２０６とではなく、ＭＩＴＭプロキシ２３０と３ウェイ・ハンドシェークを完了する。これで、ブラウザ２０４とＭＩＴＭプロキシ２３０との間にＴＣＰ接続が確立される。ブラウザ２０４の観点から見れば、接続は、ブラウザ２０４とウェブサーバ２０６との間のものであることに留意することが重要である。
【００３３】
次に、ブラウザ２０４は、ＴＣＰ接続を用いて、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＳＮＩを含むＴＬＳ  ＨＥＬＬＯメッセージ２３６を伝送することにより、ＴＬＳハンドシェークを開始する。ＭＩＴＭプロキシ２３０は、ＴＬＳ  ＨＥＬＬＯメッセージ２３６をインターセプトし、２３８において合致するＳＮＩ値を有する証明書を選択する。次に、ＭＩＴＭプロキシ２３０は、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ２４０をブラウザ２０４に伝送する。
【００３４】
「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ２４０の受信に応答して、ブラウザ２０４は、２４２において証明書を検証する。ＴＬＳハンドシェークが完了し、ＴＬＳ接続が、ブラウザ２０４とＭＩＴＭプロキシ２３０との間に確立される。ブラウザ２０４の観点から見れば、接続は、ブラウザ２０４とウェブサーバ２０６との間のものであることに留意することが重要である。
【００３５】
証明書が検証されると、ブラウザ２０４は、ＴＬＳ接続を用いて、ＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＧＥＴメッセージ２４４を伝送する。
【００３６】
ＴＬＳ接続は、ブラウザ２０４とウェブサーバ２０６との間ではなく、ブラウザ２０４とＭＩＴＭプロキシ２３０との間のものなので、ＭＩＴＭプロキシ２３０は、ＨＴＴＰ  ＧＥＴメッセージ２４４をインターセプトし、２４６においてＨＴＴＰ要求を検査し、ＤＮＳ  Ｑメッセージ２４８をＤＮＳ２２０に伝送して、ＵＲＬのドメイン名（例えば、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」）についてのＩＰアドレスを特定する。ＭＩＴＭプロキシ２３０は、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての正しいＩＰアドレス「１９２．１６８．１．１」を含むＤＮＳ  Ａメッセージ２５０を、ＤＮＳ２２０から受信する。
【００３７】
ＭＩＴＭプロキシ２３０は、受信した正しいＩＰアドレス「１９２．１６８．１．１」に基づいて、ウェブサーバ２０６とのＴＣＰ接続２５２を確立し、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」を用いて、ウェブサーバ２０６とのＴＬＳ接続２５４を確立することができる。
【００３８】
次に、ＭＩＴＭプロキシ２３０は、ＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＧＥＴ要求２５６をウェブサーバ２０６に伝送し、
ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージ２５８を受信する。
【００３９】
ＭＩＴＭプロキシ２３０は、ＨＴＴＰ応答を検査し、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含む対応するＨＴＴＰ  ＯＫメッセージ２６２をブラウザ２０４に伝送する。
【００４０】
ＴＣＰハンドシェーク通信において偽のＩＰアドレスを使用しているときに、２６４においてブラウザ２０４によりウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を受信することは、ブラウザ２０４とウェブサーバ２０６との間の通信がインターセプトされていることを意味している。例えば、ブラウザ２０４のユーザは、ウェブページのロードを見たときに、又はウェブページの受信を監視することにより、コンピューティング・デバイス１１０のブラウザ２０４とウェブページ２０６との間の通信がインターセプトされていることを今は知っている。
【００４１】
これは、ＭＩＴＭプロキシ２３０が、偽のＩＰアドレス「１９２．１．６８．１１」を含むＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ２２６をインターセプトして、あたかもそれが偽のＩＰアドレスにおけるウェブサーバであるかのように確認応答を伝送するとともに、ＭＩＴＭプロキシ２３０が、ＴＬＳ  ＳＮＩ情報内に示されるドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」の正しいＩＰアドレス、例えば「１９２．１６８．１．１」についてＤＮＳ２２０に問い合わせることにより、ウェブサーバ２０６についての正しいＩＰアドレスを独立して特定したためである。次に、ＭＩＴＭプロキシ２３０は、ウェブサーバ２０６にアクセスするときに正しいＩＰアドレスを使用し、あたかも最初にブラウザ２０４から正しいＩＰアドレスを受信していたかのようにウェブページをブラウザに返した。ＭＩＴＭプロキシ２３０がないときのブラウザ２０４とウェブサーバ２０６との間の通常の通信においては、偽のＩＰアドレスが使用され、ブラウザ２０４がウェブサーバ２０６と通信しようと試みると、失敗又は他のエラーを引き起したはずである。
【００４２】
幾つかの態様において、ブラウザ２０４又はコンピューティング・デバイス１１０は、方法１に基づいてＭＩＴＭが検出されたという表示、グラフィック、色、又は他のインジケータを、例えばディスプレイ１１８を介してユーザに提示することができる。
【００４３】
中間者検出方法２
ここで図３を参照すると、ＨＴＴＰＳプロトコルを用いる通信において中間者（ＭＩＴＭ）を検出するための第２の方法が開示される。
【００４４】
高レベルにおいて、セクション３０２に示されるように、コンピューティング・デバイス１１０のブラウザ３０４とウェブサーバ３０６、例えばｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍとの間のＨＴＴＰＳ通信は、ウェブサーバ３０６のＩＰアドレス、例えば「１９２．１６８．１．１」において、ブラウザ３０４がＨＴＴＰＳ  ＧＥＴ要求３０８をウェブサーバ３０６に伝送することを含むことができる。ＨＴＴＰＳ  ＧＥＴ要求３０８は、要求されるｈｔｍｌウェブページ、例えば「ｉｎｄｅｘ．ｈｔｍｌ」を特定するＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含む。
【００４５】
ＨＴＴＰＳ  ＧＥＴ要求に応答して、ＩＰアドレス「１９２．１６８．１．１」を有するウェブサーバ３０６、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」は、「ｉｎｄｅｘ．ｈｔｍｌ」ウェブページを含むＨＴＴＰＳ  ＯＫ伝送３１２をブラウザ３０４に返すことになる。次に、ブラウザは、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を、例えばディスプレイ１１８を介してユーザに提示することができる。
【００４６】
上の通信プロトコルを用いる通常の条件下では、ブラウザ３０４のユーザは、ＭＩＴＭがブラウザ３０４とウェブサーバ３０６との間の通信を監視しているかどうか、又はＭＩＴＭがウェブサーバ３０６との通信をインターセプトしたことは、分からない。
【００４７】
セクション３１４において、ブラウザ３０４とウェブサーバ３０６との間の通信の際に使用されるドメイン名を代替ドメイン名（alternate domain name）に切り替えることを含む、方法２に含まれる通信のプロトコルによる詳細なフローが示される。例えば、ドメイン名は、ウェブサーバ３０６のドメイン名、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」から、別のウェブサーバ３１６の代替ドメイン名、例えば「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に切り替えることができる。幾つかの態様において、代替ドメイン名を既知のウェブサーバに対応するドメイン名とすることができるので、受信したいずれのコンテンツも、既知のウェブサーバに関連するものであることを確認することができる。幾つかの態様においては、代替ドメイン名をいずれのウェブサーバにも対応しないドメイン名とすることができる。
【００４８】
ドメイン名を代替ドメイン名に切り替えることにより、ブラウザ３０４のユーザが、ＭＩＴＭをだましてその存在を明らかにすることによってＭＩＴＭがブラウザ３０４とウェブサーバ３０６との間の通信をインターセプトしているかどうかを判断することが可能になる。例えば、方法２において、ユーザは、ＴＣＰ及びＴＬＳ通信の際に第１のドメイン名を提供し、ＨＴＴＰ  ＧＥＴ要求の際に代替ドメイン名を提供して、ＭＩＴＭの存在がなければブラウザ３０４がウェブサーバ３０６から受信することはなかった応答を引き出すことにより、ＭＩＴＭをだましてその存在を明らかにする。
【００４９】
プロトコルにおいては、ターゲット・ウェブサーバ３０６についてのウェブアドレス、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」を含むＤＮＳ  Ｑメッセージ３１６が、ドメイン名サーバ（ＤＮＳ）３１８に伝送される。
【００５０】
ＤＮＳ  Ｑメッセージ３１６に応答して、ＤＮＳ３１８は、ウェブサーバ３０６についてのＩＰアドレス、例えば「１９２．１６８．１．１」を含むＤＮＳ  Ａメッセージ３２２を返す。
【００５１】
ブラウザ３０４は、ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ３２２を、受信したＩＰアドレス「１９２・１６８．１．１」に伝送することにより、ＴＣＰ３ウェイ・ハンドシェークを開始し、それは、ＩＰアドレス「１９２．１６８．１．１」であるように装っているＭＩＴＭプロキシ３２６により、３２４においてインターセプトされる。
【００５２】
ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ３２８に応答して、ＴＣＰ  ＳＹＮＡＣＫメッセージ３２８は、あたかもそれがＩＰアドレス「１９２．１６８．１．１」から受信されたかのように、ＭＩＴＭプロキシ３２６からブラウザ３０４により受信される。例えば、メッセージが、ＩＰアドレス「１９２．１６８．１．１」の代わりに、実際には、ＭＩＴＭプロキシ３２６から受信されたことを示すものは、受信したＴＣＰ  ＳＹＮＡＣＫメッセージ内にはない。
【００５３】
ＴＣＰ  ＳＹＮＡＣＫメッセージ３２８に応答して、ブラウザ３０４は、ＴＣＰ  ＡＣＫメッセージ３３０をＩＰアドレス「１９２．１６８．１．１」に伝送し、ＴＣＰ  ＳＹＮＡＣＫメッセージ２３２の受信を確認応答する。ＴＣＰ  ＡＣＫメッセージ３３０は、再びＭＩＴＭプロキシ３２６によりインターセプトされ、ウェブサーバ３０６とではなく、代わりにＭＩＴＭプロキシ３２６と３ウェイ・ハンドシェークを完了する。これで、ブラウザ３０４とＭＩＴＭプロキシ３２６との間にＴＣＰ接続が確立される。ブラウザ３０４の観点から見れば、接続は、ブラウザ３０４とウェブサーバ３０６との間のものであることに留意することが重要である。
【００５４】
次に、ブラウザ３０４は、ＴＣＰ接続を用いて、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＳＮＩを含むＴＬＳ  ＨＥＬＬＯメッセージ３３２を伝送することによって、ＴＬＳハンドシェークを開始する。ＭＩＴＭプロキシ３２６は、ＴＬＳ  ＨＥＬＬＯメッセージ３３６をインターセプトし、３３４において合致するＳＮＩ値を有する証明書を選択する。次に、ＭＩＴＭプロキシ３２６は、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ３３６を、ブラウザ３０４に伝送する。
【００５５】
「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ３３６の受信に応答して、ブラウザ３０４は、３３８において証明書を検証する。ＴＬＳハンドシェークが完了し、ＴＬＳ接続が、ブラウザ３０４とＭＩＴＭプロキシ３２６との間に確立される。ブラウザ３０４の観点から見れば、接続は、ブラウザ３０４とウェブサーバ３０６との間のものであることに留意することが重要である。
【００５６】
ブラウザ３０４が証明書を検証すると、ブラウザ３０４は、３４０において、ＨＴＴＰＳ通信で使用されるドメイン名を、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」から代替ドメイン名、例えば「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に切り替える。
【００５７】
ブラウザ３０４は、ＴＬＳ接続を用いて、代替ドメイン名を有するＵＲＬ「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」を含む、ＨＴＴＰ  ＧＥＴメッセージ３４２を伝送することによって、プロトコルに従い続ける。
【００５８】
ＴＬＳ接続は、ブラウザ３０４とウェブサーバ３０６との間ではなく、ブラウザ３０４とＭＩＴＭプロキシ３２６との間のものなので、ＭＩＴＭプロキシ３２６は、ＨＴＴＰ  ＧＥＴメッセージ３４２をインターセプトし、３４４においてＨＴＴＰ要求を検査し、ＤＮＳ  Ｑメッセージ３４６をＤＮＳ３１８に伝送して、代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」をホストするウェブサーバ３１６についてのＩＰアドレスを特定する。ＭＩＴＭプロキシ３２６は、代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」をホストするウェブサーバ３１６についてのＩＰアドレス「１１．８６．１２．９１」を含むＤＮＳ  Ａメッセージ３４８を、ＤＮＳ３１８から受信する。
【００５９】
ＭＩＴＭプロキシ３２６は、受信したＩＰアドレス「１１．８６．１２．９１」に基づいて、ウェブサーバ３１６とのＴＣＰ接続３５０を確立し、ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に基づいて、ウェブサーバ３１６とのＴＬＳ接続３５２を確立する。
【００６０】
次に、ＭＩＴＭプロキシ３２６は、ＵＲＬ「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＧＥＴ要求３５４をウェブサーバ３１６に伝送し、代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」のウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージ３５６を受信する。
【００６１】
ＭＩＴＭプロキシ３２６は、３５８においてＨＴＴＰ応答を検査し、代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」のウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含む対応するＨＴＴＰ  ＯＫメッセージ３６０をブラウザ３０４に伝送する。
【００６２】
３６２において、ＨＴＴＰ  ＧＥＴ要求３４２により用いられるドメイン名を切り替えた後、ＴＬＳ  ＨＥＬＬＯメッセージ３３２のＳＮＩにおいて指定されたドメイン名についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」の代わりに、代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を、ブラウザ３０４が受信することは、ブラウザ３０４とウェブサーバ３０６との間の通信がインターセプトされたことを意味している。例えば、ブラウザ３０４のユーザは、ウェブサーバ３１６のロードから代替ドメイン名のウェブページを見たときに、又はウェブページの受信を監視することによって、コンピューティング・デバイス１１０のブラウザ３０４とウェブサーバ３０６との間の通信が、ＭＩＴＭによりインターセプトされていることを今は知っている。
【００６３】
これは、ＭＩＴＭプロキシ３２６が、ウェブサーバ３０６についてのＩＰアドレス「１９２．１６８．１．１」を含んでいたＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ３２２をインターセプトして、あたかもそれがＩＰアドレスにおけるウェブサーバ３０６であるかのように確認応答を伝送し、ＭＩＴＭプロキシ３２６がまた、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのＳＮＩを含むＴＬＳ  ＨＥＬＬＯメッセージ３３２をインターセプトして、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ３３６を伝送するとともに、ＭＩＴＭプロキシ３２６が、ＨＴＴＰ  ＧＥＴ要求３４２内にサブミットされた代替ドメイン名と関連付けられたＩＰアドレス、例えばドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」と関連付けられたウェブサーバのＩＰアドレスを独立して特定し、代替ドメイン名と関連付けられたウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を返したためである。
【００６４】
代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」と関連付けられたウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を受信するとともに、オリジナルのドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＳＮＩ値に合致する有効な証明書を受信することは、ブラウザ３０４がターゲット・ウェブサーバ、例えばウェブサーバ３０６と直接通信していた場合にはこうした矛盾は存在しないので、ＭＩＴＭが存在することをユーザに示している。例えば、ドメイン「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のウェブサーバ３０６は、ＵＲＬ内に代替ドメイン名を含むＨＴＴＰ  ＧＥＴメッセージ３４２に応答して、代替ドメイン「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」からウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を伝送しないはずである。
【００６５】
幾つかの態様において、ブラウザ３０４又はコンピューティング・デバイス１１０は、方法２に基づいてＭＩＴＭが検出されたという表示、グラフィック、色、又は他のインジケータを、例えばディスプレイ１１８を介してユーザに提示することができる。
【００６６】
中間者検出方法３
図２及び図３を参照すると、幾つかの態様において、ＨＴＴＰＳプロトコルを用いる通信において中間者（ＭＩＴＭ）を検出するための第３の方法が、上述した方法１と方法２の組み合わせを含むものとすることができる。例えば、方法３において、ブラウザは、方法１のようにＩＰアドレスにスクランブルをかけて、例えば「１９２．１．６８．１１」にすることができ、また、方法２のように、ドメイン名を、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」から「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に切り替えることもできる。
【００６７】
幾つかの態様において、方法１及び方法２の組み合わせを順番に実行することができ、例えば、方法１に含まれる通信の後に、方法２における通信が行われてもよい。幾つかの態様においては、別の方法として、方法２における通信の後に、方法１における通信が行われてもよい。
【００６８】
上述のような方法１によるＨＴＴＰＳ通信の際、ブラウザがドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ・ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージ２６２を受信することは、ＭＩＴＭが通信をインターセプトしていることを意味するか、又は示している。
【００６９】
上述のような方法２によるＨＴＴＰＳ通信の際、ブラウザがドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージ受信することは、ＭＩＴＭが通信をインターセプトしていることを意味するか、又は示している。
【００７０】
方法１及び方法２の両方の結果が、ＭＩＴＭが通信をインターセプトしていることを意味している場合には、方法１及び方法２の組み合わせにより、ＭＩＴＭが通信をインターセプトしていることがさらに確認される。
【００７１】
例えば、方法１及び方法２の一方の結果が、ＭＩＴＭが通信をインターセプトしていることを意味しない場合には、エラーが受信されるか、又はＭＩＴＭがないときには他の形で存在することになる別の予想される結果が受信されるが、方法１及び方法２の他方が、ＭＩＴＭが通信をインターセプトしていることを意味する場合には、方法１及び方法２の組み合わせを、他方の方法ではなく一方の方法のみによりだましてその存在を明らかにするＭＩＴＭの検出のために使用することができる。
【００７２】
方法１及び方法２の両方の結果が、ＭＩＴＭが通信をインターセプトしていることを意味しない場合には、ユーザに、ＭＩＴＭが存在しないことの付加的な保証を与えることができる。
【００７３】
幾つかの態様において、方法３は、ＭＩＴＭをだましてその存在を明らかにするために、同じ通信セットにおいて方法１及び方法２の両方の戦略を重ねるものであってもよい。例えば、方法３は、同じセットのＨＴＴＰＳ通信の際に、方法１のようにＩＰアドレスにスクランブルをかけて「１９８．１．６８．１１」にして、次に方法２のようにドメイン名を「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」から「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に切り替えることができる。ブラウザがドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」又はドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージを受信することは、ＭＩＴＭが通信をインターセプトしていることを意味するか、又は示している。
【００７４】
幾つかの態様において、ブラウザ又はコンピューティング・デバイス１１０は、例えばディスプレイ１１８を介して、方法３に基づいてＭＩＴＭが検出されたという表示、グラフィック、色、又は他のインジケータを、ユーザに提示することができる。
【００７５】
中間者検出方法４
ここで図４を参照すると、ＨＴＴＰＳプロトコルを用いる通信において中間者（ＭＩＴＭ）を検出するための第４の方法が開示される。
【００７６】
高レベルにおいて、セクション４０２に示されるように、コンピューティング・デバイス１１０のブラウザ４０４とウェブサーバ４０６、例えばｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍとの間のＨＴＴＰＳ通信は、ブラウザ４０４によるＨＴＴＰＳ  ＧＥＴ要求４０８を設定４１０で指定されたＩＰアドレスのウェブサーバ４０６に伝送することを含むことができる。例えば、設定は、ウェブサーバ４０６についての「１９２．１６８．１．１」のＴＣＰ  ＩＰアドレス、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＴＬＳ、及び「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」のＨＴＴＰを含むことができる。ＨＴＴＰＳ  ＧＥＴ要求４０８は、要求されるｈｔｍｌウェブページ、例えば「ｉｎｄｅｘ．ｈｔｍｌ」を特定するＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含む。
【００７７】
ＨＴＴＰＳ  ＧＥＴ要求４０８に応答して、ＩＰアドレス「１９２．１６８．１．１」を有するウェブサーバ４０６、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」は、「ｉｎｄｅｘ．ｈｔｍｌ」ウェブページを含むＨＴＴＰＳ  ＯＫ伝送４１２をブラウザ４０４に返すことになる。次に、ブラウザは、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を、例えばディスプレイ１１８を介してユーザに提示することができる。
【００７８】
上の通信プロトコルを用いる通常の条件下では、ブラウザ４０４のユーザは、ＭＩＴＭがブラウザ４０４とウェブサーバ４０６との間の通信を監視しているかどうか、又はＭＩＴＭがウェブサーバ４０６との通信をインターセプトしたことは、分からない。
【００７９】
セクション４１４において、ブラウザ４０４とウェブサーバ４０６との間の通信のための設定４１６の特定のセットの使用を含む、方法４に含まれる通信のプロトコルによる詳細なフローが示される。設定４１６は、ブラウザ４０４のユーザが、ＭＩＴＭをだましてその存在を明らかにすることにより、ＭＩＴＭがブラウザ４０４とウェブブラウザ４０６との間の通信をインターセプトしているかどうかを判断することを可能にするように構成される。例えば、方法４においては、ＤＧＡを使用して生成されるＴＬＳ  ＳＮＩについての代替ドメイン名を用いることにより、ユーザが、ＭＩＴＭをだましてその存在を明らかにする。生成される代替ドメイン名は、大量のエントロピーを有しており、例えば「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」のような数字と文字の乱数列であるように見えることになるので、ブラウザ４０４が受信する、代替ドメイン名に合致するあらゆるＴＬＳ証明書は、ＭＩＴＭが存在し、通信をインターセプトしていることを、即座に、ブラウザ４０４及びコンピューティング・デバイス１１０のユーザに示唆する。さらに、インターセプトは、以下により詳細に説明されるようなＨＴＴＰＳ  ＧＥＴ要求に応答して、ＭＩＴＭからドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を実際に受信することにより、さらに確認することができる。ＭＩＴＭの存在がなければブラウザ４０４がウェブサーバ４０６から受信することはなかった応答を引き出すこのような生成された代替ドメイン名を使用するとき、ＭＩＴＭの存在を確認することができる。
【００８０】
プロトコルにおいて、ターゲット・ウェブサーバ４０６についてのウェブアドレス、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」を含むＤＮＳ  Ｑメッセージ４１８が、ドメイン名サーバ（ＤＮＳ）に伝送される。
【００８１】
ＤＮＳ  Ｑメッセージ４１８に応答して、ＤＮＳ４２０は、ウェブサーバ４０６についてのＩＰアドレス、例えば１９２．１６８．１．１を含むＤＮＳ  Ａメッセージ４２２を返す。
【００８２】
ブラウザ４０４は、ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ４２４を、ＩＰアドレス「１９２．１６８．１．１」に伝送することにより、ＴＣＰ  ３ウェイ・ハンドシェークを開始し、それは、ＩＰアドレス「１９２．１６８．１．１」であるように装っているＭＩＴＭプロキシ４２８により、４２６においてインターセプトされる。
【００８３】
ＴＣＰ  ＳＹＮ  ＤＥＳＴメッセージ４２４に応答して、ＴＣＰ  ＳＹＮＡＣＫメッセージ４３０は、あたかもそれがＩＰアドレス「１９２．１６８．１．１」から受信されたかのように、ブラウザ４０４によりＭＩＴＭプロキシ４２８から受信される。例えば、受信したＴＣＰ  ＳＹＮＡＣＫメッセージ４３０内には、そのメッセージが、ＩＰアドレス「１９２．１６８．１．１」ではなく、実際にはＭＩＴＭプロキシ４２８から受信されたことを示すものはない。
【００８４】
ＴＣＰ  ＳＹＮＡＣＫメッセージ４３０に応答して、ブラウザ４０４は、ＴＣＰ  ＡＣＫメッセージ４３２をＩＰアドレス「１９２．１６８．１．１」に伝送し、ＴＣＰ  ＴＣＰ  ＳＹＮＡＣＫメッセージ４３０の受信を確認応答する。ＴＣＰ  ＡＣＫメッセージ４３２は、再びＭＩＴＭプロキシ４２８によりインターセプトされ、ウェブサーバ４０６とではなく、ＭＩＴＭプロキシ４２８と３ウェイ・ハンドシェークを完了する。これで、ブラウザ４０４とＭＩＴＭプロキシ４２８との間にＴＣＰ接続が確立される。ブラウザ４０４の観点から見れば、接続は、ブラウザ４０４とウェブサーバ４０６との間のものであることに留意することが重要である。
【００８５】
次に、ブラウザ４０４は、ＴＣＰ接続を用いて、ＤＧＡによって生成されるドメイン名である「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」のＳＮＩを含むＴＬＳ  ＨＥＬＬＯメッセージ４３４を伝送することにより、ＴＬＳハンドシェークを開始する。ＭＩＴＭプロキシ４２８は、ＴＬＳ  ＨＥＬＬＯメッセージ４３４をインターセプトし、４３６において合致するＳＮＩ値を有する証明書を選択する。次に、ＭＩＴＭプロキシ４２８は、「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」についての証明書を含むＴＬＳ  ＨＥＬＬＯメッセージ４３８をブラウザ４０４に伝送する。
【００８６】
ブラウザ４０４は、ドメイン名「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」が生成されたドメイン名であることを知っているので、「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」についての証明書を受信することは、ＭＩＴＭがブラウザ４０４とウェブサーバ４０６との間の通信をインターセプトしていることを示す。従って、証明書の検証は必要ない。それにもかかわらず、ブラウザ４０４は、ＴＬＳハンドシェークが完了したものと見なし、ＴＬＳ接続が、ブラウザ４０４とＭＩＴＭプロキシ４２８との間に確立される。前の方法とは異なって、この時点で、ブラウザ４０４は、ＭＩＴＭプロキシ４２８が通信をインターセプトしていることを知っている。それにもかかわらず、ブラウザ４０４は、あたかもそれがウェブサーバ４０６とのＴＬＳ接続を確立したかのようにＨＴＴＰＳ通信を続行する。
【００８７】
次に、ブラウザ４０４は、ＴＬＳ接続を用いて、ＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＧＥＴメッセージ４４２を伝送する。
【００８８】
ＴＬＳ接続は、ブラウザ４０４とウェブサーバ４０６との間ではなく、ブラウザ４０４とＭＩＴＭプロキシ４２８との間のものなので、ＭＩＴＭプロキシ４２８は、ＨＴＴＰ  ＧＥＴメッセージ４４２をインターセプトし、４４４においてＨＴＴＰ要求を検査し、ＤＳＮ  Ｑメッセージ４４６をＤＮＳ４２０に伝送して、ＵＲＬのドメイン名（例えば、「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ）についてのＩＰアドレスを特定する。
【００８９】
ＭＩＴＭプロキシ４２８は、ＤＮＳ  Ｑメッセージ４４６に応答して、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのＩＰアドレス「１９２．１６８．１．１」を含むＤＮＳ  Ａメッセージ４４８を、ＤＮＳ２２０から受信する。
【００９０】
次に、ＭＩＴＭプロキシ４２８は、受信したＩＰアドレス「１９２．１６８．１．１」に基づいてウェブサーバ４０６とのＴＣＰ接続４５０を確立し、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」に基づいてウェブサーバ４０６とのＴＬＳ接続４５２を確立する。
【００９１】
次に、ＭＩＴＭプロキシ４２８は、ＵＲＬ「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ／ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＧＥＴ要求４５４をウェブサーバ４０６に伝送し、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含むＨＴＴＰ  ＯＫメッセージ４５６を受信する。
【００９２】
ＭＩＴＭプロキシ４２８は、４５８においてＨＴＴＰ応答を検査し、ウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を含む対応するＨＴＴＰ  ＯＫメッセージ４６０をブラウザ４０４に伝送する。
【００９３】
４６２においてブラウザ４０４がウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を受信することで、ブラウザ４０４とウェブサーバ４０６との間の通信がインターセプトされていることが確認される。例えば、ブラウザ４０４のユーザは、ウェブページのロードを見たときに、又はウェブページの受信を監視することにより、コンピューティング・デバイス１１０のブラウザ４０４とウェブサーバ４０６との間の通信がインターセプトされていることを今は知っている。
【００９４】
これは、ＭＩＴＭプロキシ４２８が、ＤＧＡにより生成されたドメイン名「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」を含むＴＬＳ  ＨＥＬＬＯメッセージ４３４をインターセプトし、そのままでインターセプトを示し得る、生成されたドメイン名についての証明書をブラウザ４０４に伝送するとともに、ＭＩＴＭプロキシ４２８が、ＴＬＳ  ＳＮＩ情報内に示される生成されたドメイン名「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」の代わりに、ドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてＤＮＳ４２０に問い合わせることにより、ウェブサーバ４０６についてのＩＰアドレスをさらに特定したためである。次に、ＭＩＴＭプロキシ４２８は、ウェブサーバ４０６にアクセスするときにドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのＩＰアドレスを使用し、あたかも最初にブラウザ４０４からＳＮＩ内のドメイン名「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」を受信していたかのように、ウェブページをブラウザに返した。ＭＩＴＭプロキシ４２８がないときのブラウザ４０４とウェブサーバ４０６との間の通常の通信においては、生成されたドメイン名が使用され、ウェブページを取り出すためにブラウザ４０４がウェブサーバ４０６と通信しようと試みると、失敗又は他のエラーを引き起こしたはずである。
【００９５】
幾つかの態様において、ブラウザ４０４又はコンピューティング・デバイス１１０は、方法４に基づいてＭＩＴＭが検出されたという表示、グラフィック、色、又は他のインジケータを、例えばディスプレイ１１８を介してユーザに提示することができる。
【００９６】
中間者検出方法５
図３及び図４を参照すると、幾つかの態様において、ＨＴＴＰＳプロトコルを用いる通信において中間者（ＭＩＴＭ）を検出するための第５の方法が、上述した方法４のＤＧＡと方法２のドメイン名の切り替えとの組み合わせを含むものとすることができる。例えば、方法５において、ブラウザは、方法４について上述したように、ドメイン名、例えば「ｗｗｗ．ｓｅｒｖｉｃｅ．ｃｏｍ」についてのＤＮＳ  Ｑメッセージ４１８をＤＮＳ４２０に伝送し、ＤＮＳ４２０から、ＤＮＳ  Ａメッセージ４２２において、「１９２．１６８．１．１」の対応するＩＰアドレスを受信し、ＤＧＡを用いて、ドメイン名、例えば「ｅｃｆｆ５５ｂｆ３ｂ６３７７ａ６．ｃｏｍ」を生成し、生成されたドメイン名をＳＮＩ値として含むＴＬＳ  ＨＥＬＬＯメッセージ４３４を伝送する。例えばＴＬＳ  ＨＥＬＬＯメッセージ４３８において、生成されたドメイン名に合致する証明書をブラウザが受信することにより、通信がＭＩＴＭによりインターセプトされていることが確認される。
【００９７】
次に、ブラウザは、方法２の３４０と同様の方法で、生成されたドメイン名から、代替ドメイン名、例えば「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」に切り替え、代替ドメイン名を含むＨＴＴＰ  ＧＥＴメッセージ３４２を伝送することができる。
【００９８】
ＨＴＴＰ  ＯＫメッセージ３６０において代替ドメイン名「ｗｗｗ．ａｌｔｅｒｎａｔｅ．ｃｏｍ」についてのウェブページ「ｉｎｄｅｘ．ｈｔｍｌ」を受信することで、方法２において上述されたように、通信がＭＩＴＭによりインターセプトされていることがさらに確認される。
【００９９】
上述したような中間者検出方法１〜５のいずれも、本開示の範囲から逸脱することなく、同じＨＴＴＰＳ通信又は複数のＨＴＴＰＳ通信において組み合わせることができる。
【０１００】
図５は、本開示の１つの実施形態において本明細書で説明されるシステム１００の任意の部分、コンピューティング・デバイス１１０、サーバ１５０、システム、方法、及びコンピュータ・プログラム製品を実装することができる、例示的コンピュータ又は処理システムの概略を示す。コンピュータ・システムは、好適な処理システムの一例に過ぎず、本明細書で説明される方法の実施形態の使用又は機能の範囲に関する何からの制限を示唆することを意図するものではない。示される処理システムは、多数の他の汎用又は専用コンピューティング・システム環境又は構成で動作可能であり得る。処理システムと共に用いるのに好適であり得る周知のコンピューティング・システム、環境、もしくは構成又はその組み合わせの例として、これらに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップボックス、プログラム可能民生電子機器、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び上記のシステム若しくはデバイス等のいずれかを含む分散型クラウド・コンピューティング環境等が含まれる。
【０１０１】
コンピュータ・システムは、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システムは、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル及び遠隔両方のコンピュータ・システム・ストレージ媒体に配置することができる。
【０１０２】
コンピュータ・システムのコンポーネントは、これらに限定されるものではないが、１つ又は複数のプロセッサ又は処理ユニット１２、システム・メモリ１６、及びシステム・メモリ１６を含む種々のシステム・コンポーネントをプロセッサ１２に結合するバス１４を含むことができる。プロセッサ１２は、本明細書で説明される方法を実行するソフトウェア・モジュール１０を含むことができる。モジュール１０は、プロセッサ１２の集積回路にプログラムすること、又はメモリ１６、ストレージ・デバイス１８、又はネットワーク２４からロードすること、又はその組み合わせが可能である。
【０１０３】
バス１４は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの１つ又は複数を表すことができる。限定ではなく例としては、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ：Industry Standard Architecture）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ：Micro Channel Architecture）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、及びＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスを含む。
【０１０４】
コンピュータ・システムは、種々のコンピュータ・システム可読媒体を含むことができる。このような媒体は、コンピュータ・システムによりアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不能媒体の両方とを含むことができる。
【０１０５】
システム・メモリ１６は、ランダム・アクセス・メモリ（ＲＡＭ）もしくはキャッシュ・メモリ又はその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システムは、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不能の不揮発性磁気媒体（例えば「ハード・ドライブ」）との間の読み出し及び書き込みのために、ストレージ・システム１８を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク（例えば、「フロッピー・ディスク」）との間の読み出し及び書き込みのための磁気ディスク・ドライブと、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、それぞれを、１つ又は複数のデータ媒体インターフェースによって、バス１４に接続することができる。
【０１０６】
コンピュータ・システムは、キーボード、ポインティング・デバイス、ディスプレイ２８等のような１つ又は複数の外部デバイス２６、ユーザがコンピュータ・システムと対話することを可能にする１つ又は複数のデバイスもしくはコンピュータ・システム又はその両方が１つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス（例えば、ネットワーク・カード、モデム等）と通信することもできる。このような通信は、入力／出力（Ｉ／Ｏ）インターフェース２０を経由して行うことができる。
【０１０７】
さらにまた、コンピュータ・システムは、ネットワーク・アダプタ２２を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、汎用広域ネットワーク（ＷＡＮ）もしくは公衆ネットワーク（例えば、インターネット）又はその両方などの１つ又は複数のネットワーク２４と通信することもできる。示されるように、ネットワーク・アダプタ２２は、バス１４を介して、コンピュータ・システムの他のコンポーネントと通信する。図示されないが、コンピュータ・システムと共に他のハードウェアもしくはソフトウェア・コンポーネント又はその両方を使用できることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が含まれる。
【０１０８】
本発明は、統合のいずれかの可能な技術的詳細レベルにおける、システム、方法もしくはコンピュータ・プログラム製品又はその組み合わせとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【０１０９】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【０１１０】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくは無線ネットワーク又はその組み合わせなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ又はその組み合わせを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【０１１１】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述されるソース・コード又はオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して、電子回路を個別化することができる。
【０１１２】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図もしくはブロック図又はその両方を参照して説明される。フローチャート図もしくはブロック図又はその両方の各ブロック、並びにフローチャート図もしくはブロック図又はその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１１３】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、もしくは他のデバイス又はその組み合わせを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【０１１４】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生産し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図又はその両方の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【０１１５】
図面内のフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図もしくはフローチャート図又はその両方の各ブロック、及びブロック図もしくはフローチャート図又はその両方におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【０１１６】
本発明の特定の実施形態が説明されたが、当業者であれば、説明される実施形態と同等である他の実施形態もあることが理解されるであろう。従って、本発明は、特定の示される実施形態に正弦されず、添付の特許請求の範囲の範囲によってのみ制限されることを理解されたい。
【図１】
2021510877.tif 000003
【図２】
2021510877.tif 000004
【図３】
2021510877.tif 000005
【図４】
2021510877.tif 000006
【図５】
2021510877.tif 000007
【手続補正書】
【提出日】令和2年9月17日(2020.9.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスから、ＴＣＰ確認応答メッセージを受信することと、
前記受信したＴＣＰ確認応答に応答して、前記代替ＩＰアドレスとＴＣＰ接続を確立することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記受信した証明書を検証することと、
前記受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
前記ターゲット・ウェブページの前記受信に基づいて、中間者（ＭＩＴＭ）が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項２】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項１に記載の方法。
【請求項３】
前記代替ＩＰアドレスは、前記ドメイン名の前記受信したＩＰアドレス中の数字にスクランブルをかけることによって生成される、請求項１に記載の方法。
【請求項４】
第２のＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスから第２のＴＣＰ確認応答メッセージを受信することと、
前記受信した第２のＴＣＰ確認応答に応答して第２のＴＣＰ接続を確立することと、
前記第２のＴＣＰ接続を用いて第２のＴＬＳメッセージを伝送することであって、前記第２のＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含む第２のＴＬＳ応答メッセージを受信することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記ドメイン名についての前記証明書を検証することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書の検証に応答して、第２のＴＬＳ接続を確立することと、
前記第２のＴＬＳ接続を用いて第２のＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記第２のＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられた第２のターゲット・ウェブページとを含む、伝送することと、
前記第２のターゲット・ウェブページを含む第２のＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記第２のターゲット・ウェブページの前記受信にも基づいている、請求項１に記載の方法。
【請求項５】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記受信した証明書を検証することと、
前記受信した証明書の検証に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
前記ターゲット・ウェブページの前記受信に基づいて、中間者（ＭＩＴＭ）が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項６】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項５に記載の方法。
【請求項７】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
ＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記受信したＴＣＰ確認応答に応答して、前記ＴＣＰ接続を確立することと、
を含む、請求項５に記載の方法。
【請求項８】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記代替ＩＰアドレスと前記ＴＣＰ接続を確立することと、
を含む、請求項５に記載の方法。
【請求項９】
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
前記代替ＩＰアドレスへの第２のＴＣＰ接続を確立することと、
前記第２のＴＣＰ接続を用いて第２のＴＬＳメッセージを伝送することであって、前記第２のＴＬＳメッセージのＳＮＩは前記ドメイン名を含む、伝送することと、
前記ドメイン名についての証明書を含む第２のＴＬＳ応答メッセージを受信することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書を検証することと、
前記第２のＴＬＳ応答メッセージと共に受信した前記証明書の検証に応答して、第２のＴＬＳ接続を確立することと、
前記第２のＴＬＳ接続を用いて第２のＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記第２のＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられた第２のターゲット・ウェブページとを含む、伝送することと、
前記第２のターゲット・ウェブページを含む第２のＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記第２のターゲット・ウェブページの前記受信にも基づいている、請求項５に記載の方法。
【請求項１０】
前記代替ＩＰアドレスは、前記ドメイン名の前記ＩＰアドレス中の数字にスクランブルをかけることによって生成される、請求項９に記載の方法。
【請求項１１】
ハードウェアを含む少なくとも１つのプロセッサにより実施される、ＨＴＴＰＳ通信中に中間者（ＭＩＴＭ）を検出する方法であって、前記方法は、
ドメイン名のＩＰアドレスへのＴＣＰ接続を確立することと、
ドメイン生成アルゴリズムを用いて、代替ドメイン名を生成することと、
前記ＴＣＰ接続を用いてＴＬＳメッセージを伝送することであって、前記ＴＬＳメッセージのＳＮＩは前記生成された代替ドメイン名を含む、伝送することと、
前記生成された代替ドメイン名についての証明書を含むＴＬＳ応答メッセージを受信することと、
前記証明書の前記受信に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしていると判断することと、
を含む、方法。
【請求項１２】
前記判断に基づいて、中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの表示を、ディスプレイを介してユーザに提示することをさらに含む、請求項１１に記載の方法
【請求項１３】
前記生成された代替ドメイン名は、高レベルのエントロピーを有する、請求項１１に記載の方法。
【請求項１４】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
ＴＣＰメッセージを前記ドメイン名の前記ＩＰアドレスに伝送することと、
前記ドメイン名の前記ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記ＴＣＰ接続を確立することと、
を含む、請求項１１に記載の方法。
【請求項１５】
前記ＴＣＰ接続を確立することは、
前記ドメイン名の前記ＩＰアドレスについての問い合わせをＤＮＳに伝送することと、
前記ＤＮＳから、前記ドメイン名の前記ＩＰアドレスを受信することと、
前記ドメイン名の前記ＩＰアドレスとは異なる代替ＩＰアドレスを生成することと、
ＴＣＰメッセージを前記代替ＩＰアドレスに伝送することと、
前記代替ＩＰアドレスからＴＣＰ確認応答メッセージを受信することと、
前記ＴＣＰ確認応答メッセージの受信に応答して、前記代替ＩＰアドレスと前記ＴＣＰ接続を確立することと、
を含む、請求項１１に記載の方法。
【請求項１６】
前記証明書の受信に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名と、前記ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記ターゲット・ウェブページの前記受信にも基づいている、請求項１１に記載の方法。
【請求項１７】
前記証明書の受信に応答して、ＴＬＳ接続を確立することと、
前記ＴＬＳ接続を用いてＨＴＴＰ  ＧＥＴメッセージを伝送することであって、前記ＨＴＴＰ  ＧＥＴメッセージのＵＲＬは、前記ドメイン名とは異なる代替ドメイン名と、前記代替ドメイン名と関連付けられたターゲット・ウェブページとを含む、伝送することと、
前記ターゲット・ウェブページを含むＨＴＴＰ  ＯＫメッセージを受信することと、
をさらに含み、
中間者が前記ＨＴＴＰＳ通信をインターセプトしているとの前記判断は、前記ターゲット・ウェブページの前記受信にも基づいている、請求項１１に記載の方法。
【請求項１８】
請求項１から請求項１７までのいずれか１項に記載の前記方法をコンピュータに実行させるコンピュータ・プログラム。
【請求項１９】
請求項１８に記載のコンピュータ・プログラムを格納したコンピュータ可読ストレージ媒体。
【請求項２０】
メモリと、
前記メモリと通信する少なくとも１つのプロセッサと、
請求項１から請求項１７までのいずれか１項に記載の前記方法を実行するための、前記メモリを介して１つ又は複数のプロセッサにより実行可能なプログラム命令と、
を含む、システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本開示の態様において、上の態様に従ったシステム、コンピュータ・プログラム及びコンピュータ可読ストレージ媒体を提供することもできる。本開示の範囲から逸脱することなく、上の態様のいずれかを組み合わせることができる。
本開示の詳細は、その構造及び動作の両方に関して、同じ参照番号及び名称が同じ要素を示す添付図面を参照することにより、理解することができる。
【国際調査報告】
2021510877.tif 000008
2021510877.tif 000009