Kaksi Androidin valintaikkunaa sekoitetaan jatkuvasti: VPN-suostumuskehote ja käyttöoikeuspyynnöt, joita sovellus tekee tietoihisi. Ensimmäinen luovuttaa verkkotason aseman, kohdan, jossa paketteja voi lukea ja kirjoittaa uudelleen. Toinen luovuttaa tallennettua sisältöä, jota Android suojaa sovellus sovellukselta. Jos niitä pitää yhtenä asiana, joko liioittelee sitä, mitä tunneli voi nähdä, tai aliarvioi pahasti sitä, mitä päättäväinen sovellus pyytää seuraavaksi.

Mitä suostumusvalintaikkuna tosiasiassa luovuttaa

Sovellus, joka toteuttaa VpnService ja ilmoittaa BIND_VPN_SERVICE, pyytää järjestelmää ryhtymään laitteen VPN:ksi. Hyväksynnän jälkeen kehys luo tun-rajapinnan ja antaa sovellukselle sen tiedostokuvaajan. Kaikki, mitä sovellus tekee sen jälkeen, kulkee tuon kuvaajan kautta: se lukee IP-paketteja ulos, päättää mitä niille tekee ja kirjoittaa paketteja takaisin sisään.

Tuon rajapinnan laajuus on nimenomainen. Reitit päättävät, mitkä kohteet siepataan, ja addAllowedApplication tai addDisallowedApplication päättää, mitkä sovellukset syöttävät sitä. Sovelluskohtainen VPN, joka luettelee kaksi sovellusta, ei näe laitteen muuta osaa.

Kyse on pakettitason myönnytyksestä, ei tietotason. Palvelu näkee tavut, jotka sovellus luovuttaa verkkopinolle, kohteeseen osoitettuina. Se ei saa käsiksi lähettävän sovelluksen yksityiseen tallennustilaan, sen tietokantatiedostoihin tai sen purettuun muistiin. Tiedostot, jotka sovellus on tallentanut omaan hiekkalaatikkoonsa, pysyvät täsmälleen yhtä vaikeina lukea kuin ennen.

Mihin pakettinäkymä päättyy

TLS tekee yhä työnsä tunnelin sisällä, koska kättely käydään sovelluksen ja palvelimen välillä eikä sovelluksen ja VPN:n välillä. VPN välittää salattua tekstiä, jota se ei voi purkaa ilman istuntoavaimia. Siksi pelkkä tunneli ei paljasta HTTPS-sivun tai suojatun sähköposti-istunnon sisältöä.

Salatun tekstin ympärillä oleva metatieto on toinen tarina, ja juuri tässä useimmat varmat väitteet hajoavat. Kohde-IP, portti, pakettikoot ja ajoitus ovat kaikki näkyvissä, samoin palvelimen nimi TLS ClientHellossa, joka yleensä lähetetään avoimena myös TLS 1.3:n alla. Encrypted Client Hello muuttaa tätä, mutta se ei ole yleinen. Tavallinen DNS vuotaa nimiä yhtä helposti, kun kyselyt lähtevät salaamattomina.

Vanhemmat tai väärin määritetyt protokollat luovuttavat enemmän. Tavallinen HTTP, IMAP ilman TLS:ää ja joukko peli- ja IoT-protokollia altistavat hyötykuormansa kaikelle, jolla on tun-kuvaaja hallussaan.

Käyttöoikeudet, jotka eivät koskaan tule mukana

VPN:n hyväksyminen ei hyväksy yhteystietoja, tekstiviestejä, kuvia tai mediakirjastoa. Ne ovat erillisiä ajonaikaisia myönnytyksiä, joista jokaisella on oma valintaikkunsa ja oma peruutuspolkunsa sovelluksen asetussivulla. VPN-asiakas, joka haluaa puheluhistoriasi, joutuu pyytämään sitä kuten mikä tahansa muu sovellus, ja voit kieltäytyä ja pitää tunnelin.

Varmenneasennus on se, jota kannattaa seurata, koska se näyttää osalta VPN:n käyttöönottoa eikä ole sitä. Käyttäjän CA:n asentaminen tunnistetietovarastoon muuttaa sitä, mitkä varmenteet Android hyväksyy, ja Android 7.0:sta lähtien API 24:ää tai uudempaa kohdistava sovellus jättää käyttäjän lisäämät CA:t huomiotta, ellei sen verkon suojauskonfiguraatio ota niitä käyttöön käyttäjän luottamusankkurilla. Asiakas, joka vaatii CA:n, saattaa tehdä laillista yrityssieppausta, tai se saattaa pyytää jotain, mitä VPN-valintaikkuna ei koskaan maininnut.

Esteettömyyspääsy on vielä kauempana. Palvelu, jossa esteettömyys on käytössä, voi lukea muiden sovellusten ruutusisältöä, mitä mikään pakettitason asema ei tarjoa.

Paikallinen suodatin vai etäyhdyskäytävä

Sama API kattaa kaksi tuotetta, jotka ansaitsevat eri luottamustasot. Laitteen palomuuri tai mainosten estäjä ottaa tun-kuvaajan ja vastaa liikenteeseen paikallisesti lähettämättä sitä koskaan palvelimelle, jota se itse ylläpitää. Todellinen tunneli välittää ne paketit yhdyskäytävälle jossain muualla, ja tuo operaattori näkee samat metatiedot toisesta päästä ja päättää samalla, mitä takaisin tulee.

Käytännöllinen tapa erottaa ne on tarkistaa julkinen osoitteesi VPN päällä ja pois päältä ja katsoa, nimeääkö ilmoitus etäpäätepisteen. Jos osoite ei koskaan muutu, liikenne todennäköisesti kiertää laitteen sisällä.

Molemmat tapaukset ovat silti pakettitason asema. Ero on siinä, kuka muu seisoo uloskäynnillä.

Tarkasta, mitä hyväksyit

Avaa Asetukset, sitten Verkko ja internet, sitten VPN, ja lue merkintä äläkä tilarivin kuvaketta. Aina päällä oleva VPN ja Estä yhteydet ilman VPN:ää ovat laiteasetuksia, jotka pitävät rajapinnan elossa ja katkaisevat vuodot; ne eivät laajenna mitään. Samalta näytöltä voit unohtaa profiilin ja peruuttaa myönnytyksen.

Käy sitten läpi muut käyttöoikeudet. Sovelluksen tiedot näyttävät, mitkä ajonaikaiset myönnytykset asiakkaalla on, ja Suojaus-asetukset näyttävät, asennettiinko samaan aikaan käyttäjävarmenne. Kumpi tahansa voidaan poistaa erikseen.

Kysymys, johon kannattaa vastata, on kapea: mitkä paketit tulevat tähän palveluun, minne ne menevät ja mitä toteutus säilyttää. Kaikki muu valintaikkunassa on kohinaa. VpnService-viite on valtuutettu luettelo siitä, mitä rajapinta paljastaa.

Aiheeseen liittyvät artikkelit