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

開發人員請注意,如果您的應用程式實作不安全的 X509TrustManager 介面,請詳閱本文資訊。具體來說,與遠端主機建立 HTTPS 連線時,您的實作會忽略所有 SSL 憑證驗證錯誤,讓應用程式更容易遭受攔截式攻擊。攻擊者可能會讀取傳輸的資料 (例如登錄憑證),甚至變更透過 HTTPS 連線傳輸的資料。如需受影響應用程式的完整清單,請瀏覽 Play Console

問題說明

自 2016 年 5 月 17 日起,只要新的應用程式或更新內容實作不安全的 X509TrustManager 介面介面,一律禁止在 Google Play 發布。請參閱 Play Console 的通知內容。Play Console 顯示的修正期限過後,Google Play 會將尚未修復安全漏洞的應用程式下架。

須採取行動​

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

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

其他詳細資訊

如要正確處理 SSL 憑證驗證,請在您自訂 X509TrustManager 介面的 checkServerTrusted 方法中變更程式碼,指定在伺服器提供的憑證「不」符合預期時叫用 CertificateExceptionIllegalArgumentException。如有技術方面問題,請前往 Stack Overflow 張貼問題並加上「android-security」和「TrustManager」標記。

雖然這些特定問題不一定會對每個實作 TrustManager 的應用程式造成影響,我們仍建議您不要輕忽 SSL 憑證驗證錯誤。如果應用程式有安全漏洞,導致使用者的資料有外洩之虞,我們就可能將該應用程式視為危險產品 (違反《內容政策》和《開發人員發布協議》第 4.4 條)。

此外,應用程式也必須遵循《開發人員發布協議》和《內容政策》。

我們很樂意提供協助

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

這篇文章實用嗎?
我們應如何改進呢?