web-dev-qa-db-ja.com

モバイルアプリでHTTPS接続を確認するにはどうすればよいですか?

今日、ペイメントゲートウェイをサポートする多くのモバイルアプリがあります。ただし、デスクトップブラウザーとは異なり、これらのモバイルアプリには、HTTPS接続を特定できる「アドレスバー」は表示されません。 HTTPS接続のモバイルアプリで支払いを確実に行うにはどうすればよいですか?

35
Adarsh Konchady

@StefHeylenが言うように、一般的にはできません。そして、@ d1str0が言うように、Burpは、トラフィックが暗号化されているかどうかを確認する1つの方法です。

それよりも実際にはもっと悪いです-モバイルアプリは常にサーバーへの単一の接続を行うだけではありません。一部の部分にHTTPを使用し、他の部分にHTTPSを使用することは珍しくありません。彼らはまた、通常のブラウザが一般的に触れないいくつかの他のトリックを行うことができます。たとえば、特定のサーバーに安全に接続できない場合は、ピンを認証して実行を拒否できます。

したがって、プロキシされたときに実行を拒否するモバイルアプリケーションを使用することは完全に可能です(特定の証明書を使用して特定のHTTPSサーバーに接続するため、Burpは失敗します)。その後、暗号化されていない手段を介して支払いデータを別のサーバーに送信します。これを観察する唯一の方法は、Wiresharkなどを使用したパケット検査です。暗号化されたデータの束が表示され、その後、暗号化されていないデータ(多くの場合、JSONまたはXML)が別のサーバーに送信されます。

アプリの開発者が除外していないため、支払いデータが正しく送信され、その後、統計モニタリング(ユーザーがアプリ内のフォームをどの程度通過するかを確認する)などのサードパーティのスクリプトが暗号化されていないチャネルを介して同じ詳細を送信することも可能です。支払いフィールド。

モバイルアプリケーションシステム全体が混乱している-可能であれば、アプリを使用して支払いを行わないようにするためのStefの2番目のアドバイスです。それができない場合は、これらの支払いに特定のカードを使用することを検討してください。このカードは、異常な取引がないか定期的に監視します。

11
Matthew

残念ながら、自分のトラフィックを嗅ぎつけて検査しない限り、できません...私のアドバイスは、機密情報の処理に使用されているプロトコルを示さない組み込みブラウザーを使用しないことです

26
Stef Heylen

BurpSuiteのようなプロキシツールを使用すると、その特定のアプリが不正なHTTPS接続を許可または禁止しているかどうかをテストできます。

6
d1str0

IOS 9では、アプリのHTTPSはすべてのネットワーク呼び出しに対して有効になっています。一時的にバイパスすることもできますが、すぐにすべてのネットワークコールで常にHTTPSのみになります。

IOS 9.0およびOS X v10.11から、App Transport Security(ATS)と呼ばれる新しいセキュリティ機能がアプリで利用可能になり、デフォルトで有効になっています。 HTTPベースのネットワーク要求に追加のセキュリティ要件を適用することで、アプリとWebサービス間の接続のプライバシーとデータの整合性を向上させます。具体的には、ATSが有効になっている場合、HTTP接続はHTTPS(RFC 2818)を使用する必要があります。安全でないHTTPを使用して接続しようとすると失敗します。さらに、HTTPSリクエストは安全な通信のためのベストプラクティスを使用する必要があります。

NSAppTransportSecurity

3
lostAtSeaJoshua