Google Play Sicherheitswarnung für unsichere TrustManager
In einer meiner apps bin ich über das HTTPS mit einem selbstsignierten Zertifikat und folgte dem Beispiel-code aus dem android-developer-training-Website (https://developer.android.com/training/articles/security-ssl.html#UnknownCa).
Vor kurzem habe ich die folgende Warnung, die sagen, dass die aktuelle Implementierung ist nicht gesichert:
Security alert
Ihre app über eine unsichere Implementierung der
X509TrustManager-Schnittstelle mit einem Apache-HTTP-client, was eine
Sicherheitsanfälligkeit. Bitte sehen das Google Hilfe-Center Artikel für
details, einschließlich der Frist für die Behebung der Schwachstelle.
Kann mir jemand weitere Informationen geben, auf was sollte aktualisiert werden, die außerhalb der Beispielcode oben verlinkten?
Sollte ich bei der Implementierung einer benutzerdefinierten TrustManager
? Wenn ja, was sollten Sie überprüfen?
- Ähm, das scheint sein bedeckt in in der Google Hilfe-Center-Artikel: "Zum richtigen Umgang mit SSL-Zertifikat-Validierung, ändern Sie den code in das checkServerTrusted-Methode Ihres benutzerdefinierten X509TrustManager-Schnittstelle zu erhöhen, entweder CertificateException oder IllegalArgumentException, wenn das Zertifikat, das vom server nicht erfüllt Ihre Erwartungen." Wie genau sind Sie bei der Einrichtung Ihrer
TrustManager
? Wie verwenden Sie es? - genau wie im Beispiel-code developer.android.com/training/articles/... Sollte ich Dinge anders machen?
- Es gibt keinen code für das selbst-signierte server-Zertifikat-Szenario auf der Seite, die Sie verlinkt wird. Es ist der code für das unbekannte-Zertifikat-Autorität Szenario.
- Der Abschnitt über das selbst-signierte Zertifikat bezieht sich auf die gleichen sample-code:
The second case of SSLHandshakeException is due to a self-signed certificate, which means the server is behaving as its own CA. This is similar to an unknown certificate authority, so you can use the same approach from the previous section.
- Ich bin auch auf der Suche in diesem Beispiel für das implementieren benutzerdefinierter
TrustManager
aber ich bin mir nicht sicher, ob das ausreichend ist. blog.fordemobile.com/2012/04/https-requests-on-android.html (Blick aufEasyX509TrustManager
Umsetzung) - Wenn Sie buchstäblich mit dem code aus dem Google docs, und Sie haben nicht
implements X509TrustManager
im code überall, vielleicht ist es aus einer Bibliothek in Ihr Projekt, anstatt Ihren eigenen code. Verwendest du irgendwelche Bibliotheken mit Internet-Zugang (z.B., ad-Netzwerke)? - Ich denke ich habe es gefunden! es ist in mobilecore.jar (IronSource ads). Danke für den Tipp zu suchen, die in externen Bibliotheken
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich war das problem Mobilecore. Ich habe entfernt die Bibliothek aus der app und laden Sie eine neue version der apk und die Warnung ist verschwunden aus dem GPlay Dev-Konsole.
Versuchen, Suche nach "TrustManager" in Ihren codes, wenn keiner zu finden ist, die meisten Fällen ist es wegen third-party-Bibliotheken enthalten.
War es für mich, weil mit einer älteren version von ACRA (https://github.com/ACRA/acra).
Spät, aber hoffe, es kann jemand helfen, rufen Sie diese Methode auf, bevor die Anfrage an den server. Wenn das Zertifikat nicht Vertrauen, müssen Sie implementieren, dialog oder etwas, so dass Benutzer können entscheiden, hier habe ich mit Hilfe von alert-dialog.
HTML:
Habe ich auch erkannt, dass ARCA 4.3 erscheint möglicherweise die Ursache sein für meine app.
Frage, weiß jemand, um zu überprüfen, dass das Problem behoben ist? Derzeit sind im Play store zu der ich Zugang habe, ist nicht die Ursache, die Google Problem mir die Warnung, aber eine unserer Partner veröffentlicht hat, die app hat die Warnung. Ich würde gerne überprüfen, ob das Problem behoben ist, bevor der Versorgung unserer partner mit einem neuen APK.