Sie tippen auf die Schaltfläche zur VPN-Bestätigung, und der Dialog reagiert nicht. Die naheliegende Schlussfolgerung ist, dass die App oder der Server defekt ist, also setzen Leute Passwörter zurück, ändern DNS oder installieren den Client neu. Meist berührt davon nichts die Ursache, weil Android Berührungen verwirft, die durch ein Hindernis ankommen, und der Bestätigungsbildschirm für VPN genau ein solcher sensibler Zustimmungsdialog ist. Der Tipp erreicht die Schaltfläche nie.

Was der Schutz tatsächlich abweist

Android schützt sensible Interaktionen gegen Tapjacking, bei dem ein anderes Fenster über dem Dialog liegt und den Tipp stiehlt oder mehrdeutig macht. Eine Ansicht meldet sich mit View.setFilterTouchesWhenObscured an, und das Ereignis kommt mit MotionEvent.FLAG_WINDOW_IS_OBSCURED an, wenn ein anderes Fenster als teilweise oder vollständig verdeckend markiert ist. Dann wird das Ereignis verworfen, statt an die falsche Stelle zu gelangen. Android 12 (API 31) erweiterte denselben Schutz um die Blockierung nicht vertrauenswürdiger Berührungen in System-Zustimmungsflächen, weshalb der Bestätigungsdialog einen Tipp aus einem Overlay ablehnen kann, den andere Apps noch annehmen würden.

Drei Dinge erzeugen regelmäßig ein Hindernis: eine App mit der Berechtigung, über anderen Apps anzuzeigen, ein Bedienungshilfen-Dienst, der Inhalte zeichnet, und ein schwebendes Widget eines Bildschirmrekorders oder Filterwerkzeugs. Manche Anzeigefunktionen des Herstellers fügen eine eigene Ebene hinzu, weshalb sich derselbe Dialog auf zwei Telefonen mit derselben Android-Version unterschiedlich verhalten kann. Ein teilweise verdeckendes Fenster setzt FLAG_WINDOW_IS_PARTIALLY_OBSCURED, und die Berührung wird verworfen, bevor die Schaltfläche sie überhaupt sieht. Das ist eine Eigenschaft des Bildschirms, nicht des Netzwerks. Im Moment des Verwerfens wurde nichts an den VPN-Server gesendet, also kann keine Änderung auf Serverseite das Ergebnis beeinflussen.

Trennen Sie einen toten Tipp von einer fehlgeschlagenen Verbindung

Der Unterschied ist die ganze Diagnose, und er dauert zehn Sekunden. Wird der Tipp ignoriert und der Dialog bleibt genau wie er war, ist das Hindernis lokal. Schließt der Dialog und erscheint danach ein Fehler, wurde die Zustimmung angenommen und Sie sind in einer anderen Phase, die die Ereignisinformationen der App braucht.

Sie können die lokale Lesart bestätigen, indem Sie prüfen, ob die anfragende App überhaupt eine Verbindung versucht hat. Ein Client, der nie einen Handshake-Versuch protokolliert, während der Zustimmungsdialog auf dem Bildschirm ist, hat das Netzwerk nicht erreicht.

adb shell cmd appops get com.example.vpn SYSTEM_ALERT_WINDOW
adb shell settings get secure enabled_accessibility_services

Listen Sie auf, wer die Overlay-Berechtigung hält und welche Bedienungshilfen aktiv sind, und gleichen Sie das mit dem ab, was läuft. Schalten Sie nicht den Schutz der Plattform selbst ab; er verhindert, dass ein verborgenes Fenster in Ihrem Namen auf einen Zustimmungsdialog antwortet.

Beseitigen Sie das Hindernis, und wiederholen Sie den normalen Ablauf

Stellen Sie zuerst fest, welche App die VPN-Bestätigung angefragt hat, damit Sie wissen, welche Zustimmung Sie geben. Beenden Sie dann das konkrete Overlay über seine eigene Einstellung, nicht durch Entzug einer breiten Berechtigung, die Sie später brauchen könnten. Ein Bildschirmfilter hat meist einen Schalter in seiner App; ein schwebendes Widget hat eine Schließen-Steuerung; ein Anzeigemodus des Herstellers hat einen Schalter in den Anzeigeeinstellungen.

Kehren Sie danach zur VPN-App zurück und fordern Sie die Bestätigung erneut an, damit der Dialog neu entsteht. Funktioniert der Tipp jetzt, passen Sie das Kompatibilitätsverhalten des Overlays an oder lassen Sie es beim Verbinden aus, und lassen Sie den Berührungsschutz eingeschaltet.

Können Sie nicht erkennen, welches Fenster verantwortlich ist, entfernen Sie sie einzeln und wiederholen Sie den Bestätigungsdialog nach jeder Änderung. Eine Steuerleiste eines Rekorders oder eine schwebende Verknüpfung ist der übliche Übeltäter, und das, was Sie kurz vor dem Erfolg entfernt haben, ist die Antwort.

Stellen Sie alles Unbeteiligte wieder her, das Sie unterwegs abgeschaltet haben. Ein Bildschirmfilter oder ein Nachtmodus ist nicht der Feind; das konkrete Fenster, das den Dialog überlappt, ist es.

Was Sie nicht tun sollten, um am Dialog vorbeizukommen

Geben Sie einer unbekannten App keine Bedienungshilfen-Berechtigung, damit sie die Schaltfläche drückt, und installieren Sie dafür keine Hilfs-App. Das gewährt genau die Fähigkeit, die der Schutz verweigern soll, auf einem Bildschirm, der ein VPN autorisiert.

Automatisieren Sie den Dialog auch nicht mit einem Eingabewerkzeug. Es liefert dasselbe Ergebnis wie ein bösartiges Overlay und lehrt Sie nichts über die Ursache.

Auf einem verwalteten Gerät ist eine Richtlinie, die VPN-Änderungen einschränkt, die Entscheidung des Administrators. Ein Overlay-Experiment ist keine Erlaubnis, sie zu umgehen. Ebenso ist eine nicht reagierende Zustimmungsschaltfläche kein Grund, die Zertifikatsprüfung zu schwächen oder Zugangsdaten zu ändern: Keine der beiden Einstellungen beseitigt ein lokales Berührungshindernis.

Wenn es weiter scheitert, melden Sie das genaue Verhalten

Beschreiben Sie den Dialog statt der Schlussfolgerung: welche App die Bestätigung angefragt hat, ob der Dialog offen blieb oder sich schloss, ob andere sensible Abfragen wie die Warnungen zu unbekannten Quellen oder Bedienungshilfen Tipps ebenfalls ignorieren, das Gerätemodell und die Android-Version sowie die Overlay- und Bedienungshilfen-Listen, die Sie erfasst haben.

Fragen Sie die Support-Verantwortlichen noch eines: ob die Geräterichtlinie Änderungen an der VPN-Konfiguration überhaupt einschränkt. Eine verwaltete Sperre sieht anders aus als ein ignorierter Tipp, und zu wissen, was Sie vor sich haben, erspart eine zweite Runde.

Dieses Set unterscheidet ein verdecktes Berührungsproblem von einem defekten Eingabegerät, einem eingefrorenen Dialog oder einer Richtliniensperre. Es sagt der nächsten Person auch, ob sie auf den Bildschirm oder auf das Netzwerk schauen soll.

Die Android-Hinweise zu Tapjacking decken die Bedingungen verdeckter Fenster und die APIs hinter diesem Verhalten ab. Wenn Sie die Beweiskette wollen, suchen Sie FLAG_WINDOW_IS_OBSCURED und FLAG_WINDOW_IS_PARTIALLY_OBSCURED an dem Ereignis, das die Schaltfläche nie erreichte. Der Dialog, der offen bleibt, ist das, was Sie festhalten sollten, denn er zeigt, dass der Tipp zurückgehalten und nicht an ein anderes Fenster geliefert wurde.

Ähnliche Artikel