0

HTTPSを使用してサーバーに接続するiOSクライアントアプリがあります。サーバーのIDを確認するためのコードをクライアントに追加しました。

この機能をテストするテスターは、現在安全であることをどのようにテストできますか。たとえば、MITMの状況を作成し、クライアントが接続を拒否することなどを確認するにはどうすればよいですか。

私はこれを行う方法をグーグルで試しましたが、あまり運がありませんでした。

チャールズやプロキシなどのツールを使用して実行できますか、それともワイヤレスルーターをいじって、詳細な知識が必要ですか?

4

1 に答える 1

0

これはソリューションを単純化しすぎている可能性がありますが、概念が役立つ場合があります。

Webブラウザーは、埋め込まれた証明書からホストの名前を抽出し、接続しようとしているホスト名の比較を行います。検証に失敗すると、通常、セキュリティ警告が表示されます。例:入力するか、入力することでFacebookに接続できhttps://www.facebook.comますhttps://173.252.100.16/。2番目のオプションを選択すると、セキュリティ警告が表示されます。

プログラムは、HTTPSサーバーに接続するためにSSLクライアントソケットを使用している必要があります。ソケットには、埋め込まれた証明書からホスト名を抽出する機能が必要です。それを取得したら、プログラムが接続しようとしている有効なホスト名と比較します。一致する場合はリクエストを続行し、一致しない場合はそのセッションを中止します。

MITMを再作成するために、Webサーバーは自己署名証明書を使用できます。この証明書は任意のホスト名に発行できますが、サーバーのIPは127.0.0.1(たとえば)である可能性があります。ホスト名と実際のIPの間に不一致があるため、MITMの状況をシミュレートできる可能性があります。

この場合、デジタル証明書は偽造できないと思います。

于 2012-12-21T02:47:04.333 に答える