【ハッカーWIFIがユーザーのプライバシー情報を盗むことを心配する】Android HTTPS仲介者ハイジャックの脆弱性の浅い分析


1.Android HTTPS仲介者ハイジャックの脆弱性の説明
      暗号学とコンピュータセキュリティの分野では、仲介者攻撃(Man-in-the-middle attack、通常MITMと略す)とは、攻撃者が通信の両端と独立した連絡を作成し、受信したデータを交換し、通信の両端がプライベートな接続を通じて相手と直接対話していると考えているが、実際にはセッション全体が攻撃者によって完全に制御されていることを意味する.中間者攻撃では、攻撃者は通信双方の通話を遮断し、新しい内容1を挿入することができる.      Android HTTPSの仲介者の攻撃の抜け穴は:1 SSL証明書を検証していない;2ドメイン名を検証していません.3.証明書発行機関(Certification Authority)が攻撃され、秘密鍵が漏洩するなどした.攻撃者は仲介者の攻撃を通じて、口座のパスワードの明文、チャット内容、通信アドレス、電話番号、クレジットカードの支払い情報などの機密情報を盗み、仲介者のハイジャックを通じて既存の情報を悪意のあるリンクや悪意のあるコードプログラムに置き換え、遠隔制御、悪意のある料金徴収などの攻撃意図を達成することができる.      黒い雲の抜け穴プラットフォームには、HTTPS証明書の検証されていない抜け穴が大量に存在している.例えば、国内のAndroidアプリの大部分にはすべての証明書を信頼する抜け穴がある[2]、アマゾンの最新公式android版にはすべての証明書を信頼する抜け穴がある[3]、Yahoo Yahooは国内訪問でSSLの中人攻撃に遭遇した[4]、携程観光網の最新androidクライアントhttpsが証明書を検証していないため、https通信コンテンツが完全にキャプチャされた[5].
2.  Android HTTPS仲介者攻撃脆弱性影響範囲
      Androidシステム
3. Android HTTPSブローカー攻撃脆弱性の詳細
1)仲介者が脆弱性の位置を攻撃する:
      X509TrustManager 、HostnameVerifier 、 setHostnameVerifier (X509HostnameVerifier hostnameVerifier)
2)脆弱性トリガの前提条件:
      カスタムX 509 TrustManagerは証明書を検証しません.      または実装されたカスタムHostnameVerifierはドメイン名を検証せずに任意のドメイン名を受け入れる.      またはsetHostnameVerifier(ALLOW_ALL_HOSTNAME_VERIFIER)を使用します.
3)脆弱性原理:
      クライアントはサービス側の証明書を検証していないため、攻撃者は通信の両端とそれぞれ独立した連絡を作成し、受信したデータを交換することができ、通信の両端は秘密の接続を通じて相手と直接対話していると思っているが、実際にはセッション全体が攻撃者に完全に制御されている.中間者攻撃では、攻撃者は通信双方の通話を遮断し、新しい内容1を挿入することができる.
4.Android HTTPS仲介者攻撃脆弱性証明
      1)クライアントはSSL証明書(署名CAが合法であるかどうか、ドメイン名が一致しているかどうか、自己署名証明書であるかどうか、証明書が期限切れであるかどうかを含む)を検証しない.
      a.自己実現の証明書検証を行わないX 509 TrustManagerインタフェースのJavaコードフラグメント(checkServer Trusted()メソッドは空で実現され、つまりサーバーが信頼できるかどうかを確認しない):
      b.サイトドメイン名とサイト証明書のドメイン名が一致するかどうかをチェックしないJavaコードクリップ:        c.任意のドメイン名のJavaコードフラグメントを受け入れる:
SSLSocketFactory sf;
……
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

      2)あるSSL証明書を検証しないクライアントに対して中間者攻撃デモを行う下図のように、中間者ハイジャックによってログインユーザー名とパスワードを取得することができる(このパスワードパラメータは明文パスワードに対して一度MD 5を行っただけである):   
5.Android HTTPS仲介者攻撃脆弱性修復提案
      1.SSL証明書に対して強い検査を行う
      セキュリティ上の考慮から、アリ聚セキュリティはSSL証明書を強力に検証することを提案している(署名CAが合法かどうか、証明書が自己署名かどうか、ホストドメイン名が一致しているかどうか、証明書が期限切れであるかどうかなど).詳細な修復案はGoogle公式のSSLに関するセキュリティ提案を参照してください[6].
アリ聚安全のよくある応用抜け穴の解析から転送