如何修正有 TrustManager 實作安全問題的應用程式

開發人員請注意,如果您的應用程式以不安全的方式實作 X509TrustManager 介面,請詳閱本文資訊。

問題說明

您有一或多個應用程式以不安全的方式實作 X509TrustManager 介面。具體來說,與遠端主機建立 HTTPS 連線時,您的實作方式會忽略所有 SSL 憑證驗證錯誤,讓應用程式更容易遭受中間人攻擊。攻擊者可能會讀取傳輸資料 (例如登入憑證),甚至變更透過 HTTPS 連線傳輸的資料。請按照下列詳細步驟修正應用程式的問題。Play 管理中心顯示的修正期限過後,如應用程式的安全漏洞尚未修正,會遭到 Google Play 下架。

敬請配合

  1. 登入 Play 管理中心,然後前往「快訊」專區查看受影響的應用程式以及解決這些問題的期限。
  2. 更新受影響的應用程式並修復安全漏洞。
  3. 提交受影響應用程式的更新版本。

 

我們將再次審查您重新提交的應用程式,過程可能需要數小時。如果應用程式可以通過審查並成功發布,您就不必採取進一步行動。如果應用程式未能通過審查,就無法發布新的版本,而且您將收到電子郵件通知。

其他詳細資訊

如要妥善處理 SSL 憑證驗證作業,請在您自訂 X509TrustManager 介面的 checkServerTrusted 方法中變更程式碼,指定在伺服器提供的憑證「不」符合預期時產生 CertificateExceptionIllegalArgumentException。請特別留意以下錯誤:

  1. 確認 checkServerTrusted 產生的例外狀況並未包含在方法中,因為這會讓 checkServerTrusted 正常結束,進而導致應用程式信任有害的憑證。
  2. 請勿將 checkValidity 用於檢查伺服器憑證。checkValidity 可確認憑證是否尚未過期,但無法判斷憑證是否可以信任。

您也可使用網路安全性設定,以比較不容易出錯的方式自訂應用程式的憑證行為。

我們很樂意提供協助

如有關於安全漏洞的技術問題,請前往 Stack Overflow 提問並加上「android-security」和「TrustManager」標記。如需進一步瞭解這個問題的解決步驟,歡迎與開發人員支援團隊聯絡。

這對您有幫助嗎?

我們應如何改進呢?
false
主選單
8127761957564263465
true
搜尋說明中心
true
true
true
true
true
5016068
false
false