Napautat VPN-hyväksynnän painiketta, eikä valintaikkuna reagoi. Luonteva päätelmä on, että sovellus tai palvelin on rikki, joten ihmiset nollaavat salasanoja, vaihtavat DNS:ää tai asentavat asiakasohjelman uudelleen. Yleensä mikään tästä ei osu vikaan, koska Android hylkää kosketukset, jotka saapuvat esteen läpi, ja VPN-hyväksynnän näyttö on juuri sellainen herkkä suostumusikkuna. Napautus ei koskaan saavuta painiketta.

Mitä suojaus oikeastaan hylkää

Android suojaa herkkiä vuorovaikutuksia tapjackingilta, jossa toinen ikkuna istuu valintaikkunan päällä ja varastaa napautuksen tai tekee siitä epäselvän. Näkymä liittyy mukaan View.setFilterTouchesWhenObscured avulla, ja tapahtuma saapuu MotionEvent.FLAG_WINDOW_IS_OBSCURED kanssa, kun toinen ikkuna on merkitty osittain tai kokonaan peittäväksi. Silloin tapahtuma hylätään sen sijaan, että se toimitettaisiin väärään paikkaan. Android 12 (API 31) laajensi saman suojauksen estämään epäluotettuja kosketuksia järjestelmän suostumuspinnolla, minkä vuoksi hyväksyntäikkuna voi hylätä peittokerroksen napautuksen, jonka muut sovellukset vielä hyväksyisivät.

Kolme asiaa aiheuttaa säännöllisesti esteen: sovellus, jolla on lupa näyttää muiden sovellusten päällä, sisältöä piirtävä esteettömyyspalvelu ja näytöntallentimen tai suodatustyökalun kelluva widget. Jotkin valmistajan näyttöominaisuudet lisäävät oman kerroksensa, minkä vuoksi sama ikkuna voi käyttäytyä eri tavoin kahdessa puhelimessa, joissa on sama Android-versio. Osittain peittävä ikkuna asettaa FLAG_WINDOW_IS_PARTIALLY_OBSCURED, ja kosketus hylätään ennen kuin painike ehtii nähdä sen. Tämä on näytön ominaisuus, ei verkon. Napautuksen hylkäyshetkellä VPN-palvelimelle ei ole lähetetty mitään, joten mikään palvelinpuolen muutos ei voi vaikuttaa tulokseen.

Erottele kuollut napautus epäonnistuneesta yhteydestä

Ero on koko diagnoosi ja se vie kymmenen sekuntia. Jos napautus jätetään huomiotta ja ikkuna pysyy täsmälleen ennallaan, este on paikallinen. Jos ikkuna sulkeutuu ja sen jälkeen ilmestyy virhe, suostumus hyväksyttiin ja olet siirtynyt toiseen vaiheeseen, joka tarvitsee sovelluksen omat tapahtumatiedot.

Voit vahvistaa paikallisen lukeman tarkistamalla, yrittikö pyytävä sovellus ylipäätään yhteyttä. Asiakasohjelma, joka ei koskaan kirjaa kättely-yritystä, kun suostumusikkuna on näytöllä, ei ole päässyt verkkoon.

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

Listaa, kenellä on peittokerroksen lupa ja mitkä esteettömyyspalvelut ovat käytössä, ja vertaa sitä siihen, mikä on käynnissä. Älä kytke pois alustan suojausta itseään; juuri se estää piilotettua ikkunaa vastaamasta puolestasi suostumusikkunaan.

Poista este ja yritä tavallista kulkua uudelleen

Selvitä ensin, mikä sovellus pyysi VPN-hyväksyntää, jotta tiedät, minkä suostumuksen annat. Pysäytä sitten kyseinen peittokerros sen omasta asetuksesta, etkä peruuttamalla laajaa lupaa, jota saatat tarvita myöhemmin. Näyttösuodattimella on yleensä kytkin omassa sovelluksessaan; kelluvalla widgetillä on sulkemisen hallinta; valmistajan näyttötilassa on kytkin näyttöasetuksissa.

Palaa sen jälkeen VPN-sovellukseen ja pyydä hyväksyntää uudelleen, jotta ikkuna luodaan puhtaalta pöydältä. Jos napautus nyt toimii, säädä peittokerroksen yhteensopivuutta tai pidä se pois päältä yhteyden aikana, ja pidä kosketussuojaus päällä.

Jos et saa selville, mikä ikkuna on vastuussa, poista ne yksi kerrallaan ja kokeile suostumusikkunaa jokaisen muutoksen jälkeen. Tallentimen hallintapalkki tai kelluva pikakuvake on tavallinen syyllinen, ja se, minkä poistit juuri ennen onnistumista, on vastaus.

Palauta kaikki asiaankuulumaton, jonka kytkit pois matkan varrella. Näyttösuodatin tai yötila ei ole vihollinen; vihollinen on se tietty ikkuna, joka menee suostumusikkunan päälle.

Mitä ei pidä tehdä ikkunan ohittamiseksi

Älä anna tuntemattomalle sovellukselle esteettömyyttä, jotta se voisi painaa painiketta, äläkä asenna apusovellusta sitä varten. Se antaa juuri sen kyvyn, jonka estämiseksi suojaus on olemassa, näytöllä, joka valtuuttaa VPN:n.

Älä automatisoi ikkunaa syöttötyökalulla. Se antaa saman tuloksen kuin haitallinen peittokerros eikä opeta sinulle mitään syystä.

Hallitulla laitteella VPN-muutoksia rajoittava käytäntö on ylläpitäjän päätös. Peittokerroskoe ei ole valtuutus sen kiertämiseen. Samoin reagoimaton suostumuspainike ei ole syy heikentää varmennevarmenteen tarkistusta tai vaihtaa tilin tunnuksia: kumpikaan asetus ei poista paikallista kosketusestettä.

Jos se ei vieläkään toimi, ilmoita tarkka käyttäytyminen

Kuvaile ikkunaa, älä johtopäätöstä: mikä sovellus pyysi hyväksyntää, jäikö ikkuna auki vai sulkeutuiko se, jättävätkö muutkin herkät kehotteet kuten varoitukset tuntemattomista lähteistä tai esteettömyydestä napautukset huomiotta, laitteen malli ja Android-versio sekä keräämäsi peittokerros- ja esteettömyysluettelot.

Kysy tuen omistajalta vielä yksi asia: rajoittaako laitteen käytäntö VPN-määrityksen muutoksia ylipäätään. Hallittu estäminen näyttää erilaiselta kuin huomiotta jätetty napautus, ja tieto siitä, kumpaa katselet, säästää toisen kierroksen.

Tämä joukko erottaa peitetyn kosketuksen ongelman rikkinäisestä syöttölaitteesta, jumittuneesta ikkunasta tai käytännön estosta. Se kertoo myös seuraavalle henkilölle, pitääkö katsoa näyttöä vai verkkoa.

Androidin tapjacking-ohje kattaa peitettyjen ikkunojen ehdot ja tämän käyttäytymisen taustalla olevat API:t. Jos haluat todistusketjun, etsi FLAG_WINDOW_IS_OBSCURED ja FLAG_WINDOW_IS_PARTIALLY_OBSCURED tapahtumasta, joka ei koskaan saavuttanut painiketta. Auki jäävä ikkuna on se, mikä pitää tallentaa, koska se osoittaa, että napautus pidätettiin eikä sitä toimitettu toiseen ikkunaan.

Aiheeseen liittyvät artikkelit