厳密に言えば、「man in the middle」攻撃は依然として実行される可能性があります。大きな問題は、それがエンドユーザーに透過的かどうかです。
中間者が最初の SSL ハンドシェイクをハイジャックし、独自の SSL 証明書を返す可能性があります。証明書は正しいドメイン名などに対するものである可能性がありますが、際立った特徴は、(できれば) 信頼できるソース、つまり認証局 (CA) によって署名されていないことです。アプリケーションがこれを認識して通信を停止する場合は、問題ありません。一方、アプリケーションが信頼できる CA によって信頼性をチェックしない場合は、ハッカーとセッションをネゴシエートし、ハッカーはトラフィックを確認して検査し、その後、処理のために実サーバーに送信します。実サーバーからのすべての応答も、ハッカーに表示されます。
ハッカーが、信頼できる CA のキーを使用して不正な証明書に署名できた場合、ハッカーを止めることはできません。これはまれですが、CA が危険にさらされる可能性があります。
Web ブラウザーの場合、このような攻撃により、ユーザーに「停止してください。何か怪しいことが起こっています」というメッセージが表示されます。このメッセージは、後のバージョンのブラウザーではより明白になりました。それでも、エンド ユーザーは先に進み、信頼されていない証明書を受け入れることができ、事実上、ハッカーが傍受できるようになります。アプリケーション (または iOS 自体) でこれが許可されている場合、できる限りユーザーを教育する以外にできることはほとんどありません。
要約すると、アプリケーションがターゲット サーバーと SSL チャネルをネゴシエートし、返された証明書が信頼できる機関によって署名されていることを確認する (そしてユーザーに質問しない) 場合は、問題ありません。GET/POST 動詞とその後のヘッダーを含むすべての HTTP トラフィックが暗号化されます。さらに 2 つの警告が必要です。
- これが、デバイス (この場合は iOS) が信頼できる機関ファイル (「ルート CA」) を保護するために細心の注意を払う必要がある理由です。
- 基礎となる通信には安全な暗号を使用する必要があります。重要でないデータ (つまり、個人情報ではない) の場合、RC4 はおそらく問題なく、より高速になる可能性があります。個人的なこと(銀行など)については、できる限り強いものを選びましょう。デフォルトでない場合は、AES-256 をお勧めします。