Überprüft, ob Ihr Server erreichbar ist und präsentiert das richtige SSL-Zertifikat
Die Standard-Android-Anwendungen für E-Mail, Kalender, Kontakte usw. können mit SSL-geschützten Servern synchronisieren, haben jedoch keine Möglichkeit, ihr Zertifikat zu überprüfen. Grundsätzlich ist es möglich, entweder zu prüfen, ob das Zertifikat von einer der Standard-CAs (vor Android 4.0, nicht vom Benutzer editierbar) ausgestellt wurde, oder diese überhaupt nicht zu prüfen. Dies reicht nicht aus, um die Identität des Servers zuverlässig zu bestätigen, wodurch das Risiko besteht, dass vertrauliche Informationen (Kontokennwörter) an den falschen Server weitergegeben werden. Dieses Problem ist besonders wichtig, wenn der Server über eine semipermanente Verbindung verfügt und über dynamisches DNS gefunden wird, selbstsignierte oder private CA-Zertifikate verwendet oder wenn öffentliche WLAN-Hotspots verwendet werden (die eher trivial zu fälschen sind und daher ein regulärer MitM sind). -Angriffsvektor).
Diese App prüft in konfigurierbaren Intervallen, ob eine bestimmte HTTPS-URL erreichbar ist und der Server sich mit dem richtigen Zertifikat identifiziert. Es besteht aus einem Startbildschirm-Widget, das den Status mit farbigen „Signallichtern“ anzeigt:
* grün, wenn die Verbindung in Ordnung ist
* gelb, wenn eine Prüfung läuft
* rot, wenn der Server nicht erreichbar ist
* Doppelt rot, wenn der Server Fehler ausgibt oder die Zertifikatsüberprüfung fehlschlägt
* kleines Weiß, wenn keine Überprüfung erforderlich ist
Bei der Überprüfung und wenn ein Fehler auftritt, ist die globale Synchronisierungseinstellung deaktiviert. Auf diese Weise sollten Sie einigermaßen sicher sein, dass bei der Synchronisierung nicht versucht wird, eine Verbindung zu einem Server herzustellen, dessen Identität nicht überprüft wurde, vorausgesetzt, es handelt sich um denselben Server wie den, den Sie überprüfen.
Dies ist eine Open-Source-App (GPL). Quellenangabe und weitere Dokumentation finden Sie auf meiner Website.
Erforderliche Berechtigungen:
INTERNET - Verbindung zu Ihrem Server herstellen (nirgendwo anders)
ACCESS_NETWORK_STATE – Bestimmen Sie Ihre Verbindung (WLAN, Mobilfunk...), um herauszufinden, ob eine Überprüfung erforderlich ist
READ_SYNC_SETTINGS, WRITE_SYNC_SETTINGS – Synchronisierung bei Überprüfung oder Fehler deaktivieren
RECEIVE_BOOT_COMPLETED – automatischer Start (wenn möglich, abhängig von der Android-Version)
READ_EXTERNAL_STORAGE – Zertifikate aus dem Speicher oder der SD-Karte lesen
Mehr lesen