これはソリューションを単純化しすぎている可能性がありますが、概念が役立つ場合があります。
Webブラウザーは、埋め込まれた証明書からホストの名前を抽出し、接続しようとしているホスト名の比較を行います。検証に失敗すると、通常、セキュリティ警告が表示されます。例:入力するか、入力することでFacebookに接続できhttps://www.facebook.com
ますhttps://173.252.100.16/
。2番目のオプションを選択すると、セキュリティ警告が表示されます。
プログラムは、HTTPSサーバーに接続するためにSSLクライアントソケットを使用している必要があります。ソケットには、埋め込まれた証明書からホスト名を抽出する機能が必要です。それを取得したら、プログラムが接続しようとしている有効なホスト名と比較します。一致する場合はリクエストを続行し、一致しない場合はそのセッションを中止します。
MITMを再作成するために、Webサーバーは自己署名証明書を使用できます。この証明書は任意のホスト名に発行できますが、サーバーのIPは127.0.0.1(たとえば)である可能性があります。ホスト名と実際のIPの間に不一致があるため、MITMの状況をシミュレートできる可能性があります。
この場合、デジタル証明書は偽造できないと思います。