Puhelin ja tabletti
Sovellusten käyttöoikeudet: mihin sovellus oikeasti pääsee
Lupapyyntö ei kysy mielipidettäsi sovelluksesta. Se pyytää käyttöjärjestelmää avaamaan tietyn portin, ja portti pysyy auki niin kauan kuin lupa on voimassa.
Lyhyt vastaus
Sovellus ei pääse puhelimen kameraan, mikrofoniin, sijaintiin tai yhteystietoihin suoraan, vaan kaikki kulkee käyttöjärjestelmän rajapintojen kautta. Käyttöoikeus on merkintä siitä, että järjestelmä päästää tämän sovelluksen tämän rajapinnan läpi. Jos lupaa ei ole, kutsu ei tuota tietoa, ja sovellus saa tyhjän vastauksen tai virheilmoituksen. Lupa koskee siis pääsyä, ei sitä mitä tiedolle tehdään sen jälkeen, ja tämä ero selittää sekä lupajärjestelmän hyödyn että sen rajat.
Sisällys
- Sovellus ei pääse mihinkään ilman käyttöjärjestelmää
- Mitä tapahtuu, kun painat salli
- Kaikkea ei kysytä: lupatyypit eroavat toisistaan
- Kertaluontoinen, käytön aikainen ja jatkuva lupa
- Taustakäyttö on eri oikeus kuin etuala
- Ilmaisin kertoo että anturi on käytössä, ei sitä miksi
- Portti valvoo pääsyä, ei sitä mitä tiedolle tehdään
- Näin tarkistat myönnetyt oikeudet jälkikäteen
- Usein kysytyt kysymykset
- Lähteet ja lisälukemista
Lupapyyntö tulee ruudulle huonoimmalla mahdollisella hetkellä: juuri kun olet avaamassa uutta sovellusta ja haluat päästä eteenpäin. Pyyntö on lyhyt, ja sen sanamuoto on sovelluksen kirjoittama. Siksi sitä on helppo lukea kohteliaisuutena tai muodollisuutena. Se ei ole kumpaakaan. Se on tekninen pyyntö avata yhteys puhelimen anturiin tai tietovarastoon, ja käyttöjärjestelmä toteuttaa pyynnön kirjaimellisesti.
Tässä artikkelissa käydään läpi, mitä lupajärjestelmä teknisesti tekee: miksi sovellus ylipäätään tarvitsee luvan, mitä eri lupatyypit tarkoittavat, miksi taustakäyttö kysytään erikseen ja mitä ilmaisin näytön reunassa kertoo. Se, mitkä luvat kannattaa käytännössä kieltää ja missä järjestyksessä lista käydään läpi, on oma kokonaisuutensa artikkelissa mitkä luvat kannattaa kieltää.
Sovellus ei pääse mihinkään ilman käyttöjärjestelmää
Puhelimen käyttöjärjestelmä asentaa jokaisen sovelluksen omaan eristettyyn alueeseensa. Sovelluksella on oma kansionsa tiedostoille ja oma muistialueensa, eikä se pääse lukemaan toisen sovelluksen tietoja. Eristys ei ole asetus vaan rakenne: se on voimassa aina, myös silloin kun sovellukselle on myönnetty kaikki luvat.
Tästä seuraa, että jokainen kiinnostava toiminto vaatii välittäjän. Kun sovellus haluaa ottaa kuvan, se ei ohjaa kameraa itse vaan kutsuu käyttöjärjestelmän rajapintaa, joka ohjaa kameraa sen puolesta. Sama koskee sijaintia, mikrofonia, yhteystietoja, kalenteria ja tallennustilaa. Käyttöjärjestelmän rooli sovellusten ja laitteiston välissä on kuvattu tarkemmin artikkelissa mitä käyttöjärjestelmä tekee.
Käyttöoikeus on tässä ketjussa yksi tarkistus. Kun sovellus kutsuu rajapintaa, järjestelmä katsoo onko tälle sovellukselle merkitty lupa juuri tähän. Jos on, kutsu menee läpi. Jos ei ole, järjestelmä joko näyttää lupapyynnön tai palauttaa tyhjän tuloksen. Sovellus ei siis voi ohittaa porttia yrittämällä uudelleen, koska tarkistus tehdään järjestelmän puolella eikä sovelluksen koodissa.
Mitä tapahtuu, kun painat salli
Luvan myöntäminen ei siirrä mitään tietoa. Se kirjaa järjestelmän omaan luetteloon merkinnän, että tämä sovellus saa käyttää tätä rajapintaa. Tiedon liikkuminen alkaa vasta seuraavasta rajapintakutsusta, ja se voi tapahtua sekunnin tai kuukauden kuluttua.
Kieltäminen toimii vastaavasti eikä riko sovellusta. Kutsu vain palauttaa tyhjän vastauksen tai virheen, ja sovelluksen kehittäjä on päättänyt, mitä siitä seuraa. Hyvin tehty sovellus jatkaa ilman kyseistä toimintoa. Huonosti tehty näyttää virheilmoituksen tai vaatii lupaa uudelleen. Kumpikaan ei ole merkki siitä, että lupa olisi ollut välttämätön.
Yksi väärinkäsitys kannattaa oikaista heti. Lupapyyntö ei ole sama asia kuin tietosuoja-asetuksen tarkoittama suostumus henkilötietojen käsittelyyn. Järjestelmän lupa on tekninen pääsynhallinta laitteessasi. Suostumus on oikeudellinen peruste sille, että palvelu saa käsitellä tietojasi omissa järjestelmissään. Sovellus voi tarvita molemmat, ja ne pyydetään eri tavoilla ja eri paikoissa.
Kaikkea ei kysytä: lupatyypit eroavat toisistaan
Lupia on useaa lajia, ja ne eroavat siinä, kysytäänkö niitä lainkaan ja voiko ne perua. Tämä jako selittää suurimman osan siitä, mikä lupalistoissa hämmentää.
| Lupatyyppi | Esimerkki | Miten se myönnetään | Voiko perua |
|---|---|---|---|
| Tavallinen oikeus | Verkkoyhteys, värinä, hälytyksen asettaminen | Automaattisesti asennuksen yhteydessä | Ei erikseen |
| Arkaluonteinen oikeus | Sijainti, kamera, mikrofoni, yhteystiedot, kalenteri | Kysytään käytön yhteydessä ruudulla | Kyllä, asetuksista |
| Rajattu pääsy | Yksi valittu kuva tai tiedosto | Järjestelmän valitsimen kautta, kohde kerrallaan | Ei tarvitse, koska koskee vain valittua |
| Erikoisoikeus | Ruudun sisällön lukeminen, piirtäminen muiden päälle | Erikseen asetusten syvemmästä valikosta | Kyllä, samasta paikasta |
| Ei lupaa lainkaan | Sovelluksen sisäinen käyttötieto, napautukset ja haut | Ei kysytä | Ei laitteen asetuksista |
Ensimmäinen ja viimeinen rivi ovat ne, jotka yllättävät. Verkkoyhteyttä ei kysytä lupana, koska lähes jokainen sovellus tarvitsee sen. Sovellus, jolla ei ole yhtään myönnettyä arkaluonteista lupaa, voi siis silti lähettää palvelimelleen kaiken sen, mitä teet sovelluksen sisällä. Mobiilidatan käyttöä voi joissakin järjestelmissä rajata sovelluskohtaisesti, mutta se on datankäytön eikä yksityisyyden asetus.
Rajattu pääsy on lupatyypeistä hyödyllisin ja vähiten tunnettu. Kun sovellus tarvitsee yhden kuvan, järjestelmä voi avata oman valitsimensa, jossa osoitat kuvan. Sovellus saa vain sen kuvan eikä koko kirjastoa. Sen kannattaa muistaa kulkevan mukana myös kuvan metatiedot, kuten ottoaika ja usein sijainti, mutta ero koko kirjastoon on suuri.
Lupatyyppien tunteminen auttaa myös lukemaan pyynnön sanamuotoa oikein. Ruudulle tuleva teksti kertoo, mitä rajapintaa pyyntö koskee, mutta sen perustelun on kirjoittanut sovellus itse. Perustelu voi olla rehellinen tai epämääräinen, eikä käyttöjärjestelmä tarkista sitä. Ainoa osa pyynnöstä, joka on järjestelmän takaama, on itse lupatyyppi ja sen laajuus.
Kertaluontoinen, käytön aikainen ja jatkuva lupa
Sama lupa voidaan myöntää eri pituisena, ja pituus ratkaisee enemmän kuin lupatyyppi. Kertaluontoinen lupa on voimassa vain käynnissä olevan käyttökerran ajan. Kun poistut sovelluksesta ja järjestelmä sulkee sen taustalta, lupa raukeaa ja seuraavalla kerralla kysytään uudestaan.
Käytön aikainen lupa on voimassa toistaiseksi mutta vain silloin kun sovellus on näytöllä. Jatkuva lupa on voimassa aina. Ero näiden kahden välillä ei ole aste vaan tekninen raja: järjestelmä tarkistaa jokaisen kutsun kohdalla, onko sovellus etualalla, ja hylkää kutsun jos ei ole.
Käytännön hyöty seuraa siitä, että lupa raukeaa itsestään. Kertaluontoinen lupa sopii kaikkeen satunnaiseen, koska unohtamisen riski poistuu. Jos huomaat, että sovellus kysyy kertaluontoista lupaa jatkuvasti, se kertoo samalla kuinka usein se hakee tietoa.
Luvan pituus näkyy myös siinä, mitä lupalistassa lukee jälkikäteen. Kertaluontoista lupaa ei näy listalla lainkaan sen rauettua, joten pelkkä lista ei kerro, mitä sovellus on saanut aiemmin. Siihen vastaa lupien käyttöhistoria, joka kirjaa toteutuneet käyttökerrat riippumatta luvan pituudesta.
Taustakäyttö on eri oikeus kuin etuala
Käyttöjärjestelmä kohtelee taustalla toimivaa sovellusta eri tavalla kuin näytöllä olevaa. Taustalla sovellus voi hakea tietoa silloin kun et ole paikalla, et katso ruutua etkä muista sovelluksen olemassaoloa. Juuri tämä muuttaa yksittäisen kyselyn jatkuvaksi virraksi.
Siksi taustaoikeutta ei yleensä anneta samassa pyynnössä kuin tavallista lupaa. Molemmissa järjestelmissä sovellus saa ensin kysyä käytön aikaista lupaa, ja taustalupa on erillinen valinta, joka usein tehdään asetuksissa eikä ponnahdusikkunassa. Tämä on tarkoituksellinen kitka: se pakottaa päätöksen tehtäväksi rauhassa.
Taustakäytöllä on myös näkyvä hinta. Paikannus ja verkkoyhteydet ovat puhelimen kalleimpia toimintoja, joten taustaoikeudet näkyvät akun kulutuksessa. Jos akku tyhjenee yöllä, taustalupien lista on hyvä paikka katsoa. Muut taustatoimintaan vaikuttavat asetukset käydään läpi artikkelissa puhelimen asetusten tarkistuksesta.
Ilmaisin kertoo että anturi on käytössä, ei sitä miksi
Molemmissa järjestelmissä näytön yläreunassa syttyy pieni väripiste tai palkki silloin, kun kamera tai mikrofoni on käytössä. Ilmaisin ei ole sovelluksen tekemä vaan järjestelmän piirtämä, eikä sovellus voi peittää sitä. Se on siis luotettava merkki siitä, että anturi on päällä juuri nyt.
Ilmaisimen rajat kannattaa tuntea. Se kertoo että kamera on käytössä, muttei sitä mikä sovellus sitä käyttää eikä sitä lähetetäänkö kuva eteenpäin. Napauttamalla ilmaisinta saa yleensä näkyviin sovelluksen nimen. Se ei myöskään kata kaikkia lupia: sijainnin haku näkyy eri tavalla, ja tiedon lukeminen yhteystiedoista ei näy lainkaan reaaliaikaisesti.
Tätä varten järjestelmissä on jälkikäteinen koonti, joka näyttää mitkä sovellukset ovat käyttäneet mitäkin lupaa viimeisen vuorokauden aikana. Koonti on lupajärjestelmän hyödyllisin yksittäinen näkymä, koska se korvaa arvailun havainnolla. Sovellus, joka on hakenut sijainnin satoja kertoja yön aikana, näkyy siellä selvästi.
Portti valvoo pääsyä, ei sitä mitä tiedolle tehdään
Lupajärjestelmän tärkein rajoitus on samalla sen suunnitteluperiaate. Kun tieto on annettu sovellukselle, käyttöjärjestelmä on tehnyt oman osuutensa. Se ei näe, tallennetaanko sijainti laitteelle, lähetetäänkö se palvelimelle vai myydäänkö se edelleen. Lupa on siis riskin rajaus, ei valvontaa.
Tästä seuraa kaksi käytännön johtopäätöstä. Ensimmäinen koskee lähdettä: sovelluksen alkuperä ja kaupan tarkastus merkitsevät enemmän kuin yksittäinen lupavalinta, ja asennuslähteitä käsitellään artikkelissa sovelluskaupat ja sivulataus. Toinen koskee vahingon kokoa: mitä laajemmat luvat sovelluksella on, sitä enemmän sinua koskevaa tietoa on mukana, jos palvelussa tapahtuu tietovuoto.
Luvan peruminen katkaisee tiedon virran eteenpäin, mutta ei poista sitä, mikä on jo kerätty. Aiemmin kerätty tieto on palvelun järjestelmissä, ja sen poistaminen on erillinen pyyntö. Samoin sovelluksen sisäistä seurantaa ei voi estää lupalistalta, vaan siihen vaikutetaan muilla keinoilla, kuten mainosprofiilin nollauksella.
Erikseen kannattaa mainita ne erikoisoikeudet, jotka antavat sovellukselle mahdollisuuden lukea näytön sisältöä ja tehdä painalluksia puolestasi. Ne ovat tarkoitettu esimerkiksi ruudunlukijoille, mutta samalla mekanismilla toimii myös etähallintaohjelma, jonka asentamiseen huijari voi puhelimessa ohjata. Jos joku pyytää sinua myöntämään tällaisen oikeuden puhelun aikana, pyyntö on syytä keskeyttää.
Näin tarkistat myönnetyt oikeudet jälkikäteen
Oikeudet eivät ole lopullisia. Ne voi tarkistaa ja perua milloin tahansa, eikä siitä seuraa sovellusten poistumista tai tietojen katoamista.
- Avaa asetuksista yksityisyyttä tai turvallisuutta koskeva osio ja etsi lupien hallinta. Molemmissa järjestelmissä näkymän saa auki kahdella tavalla, sovellus kerrallaan tai lupa kerrallaan.
- Katso ensin lupa kerrallaan. Näin näet yhdellä silmäyksellä kaikki sovellukset, joilla on esimerkiksi mikrofonioikeus, ja poikkeamat erottuvat listasta heti.
- Avaa lupien käyttöhistoria eli koonti viime vuorokauden käytöstä. Vertaa sitä siihen, mitä muistat tehneesi.
- Muuta jatkuvat luvat käytön aikaisiksi siellä, missä toiminto ei vaadi taustaa. Tämä on yksittäisistä muutoksista vaikuttavin.
- Käy erikseen läpi erikoisoikeudet, jotka eivät näy tavallisessa lupalistassa. Niiden listan pitäisi olla lähes tyhjä.
- Tarkista, onko käytössä toiminto, joka poistaa pitkään käyttämättömien sovellusten luvat automaattisesti. Se on hyödyllinen turvaverkko, mutta hidas.
- Poista sovellukset, joita et ole käyttänyt puoleen vuoteen. Poisto vie mukanaan sekä luvat että taustatoiminnan.
Jos jokin lakkaa toimimasta luvan perumisen jälkeen, olet saanut vastauksen kysymykseen, jota lupapyyntö ei kertonut: nyt tiedät mikä toiminto lupaa oikeasti käytti. Voit palauttaa luvan tietoisena siitä, mitä vastaan sen annat. Useimmiten mitään ei kuitenkaan tapahdu, ja sekin on tulos.
Usein kysytyt kysymykset
Voiko sovellus käyttää kameraa ilman että annan luvan?
Ei tavallisessa tilanteessa, koska kamera on käyttöjärjestelmän takana ja kutsu hylätään ilman myönnettyä lupaa. Lisäksi kameran käyttö sytyttää järjestelmän oman ilmaisimen, jota sovellus ei voi peittää. Poikkeuksia ovat vakavat haavoittuvuudet, mikä on yksi syy asentaa päivitykset.
Mitä tarkoittaa, että sovellus ei pyydä yhtään lupaa?
Se tarkoittaa, ettei sovellus tarvitse pääsyä antureihin tai järjestelmän tietovarastoihin. Se ei tarkoita, ettei sovellus lähetä mitään, koska verkkoyhteys ei ole erikseen kysyttävä lupa. Kaikki, mitä teet sovelluksen sisällä, voi silti kulkea palveluntarjoajan palvelimelle.
Miksi sijaintilupaa kysytään uudestaan, vaikka annoin sen jo?
Todennäköisesti annoit kertaluontoisen luvan, joka raukeaa käyttökerran päätyttyä. Toinen tavallinen syy on se, että sovellus pyytää nyt laajempaa oikeutta kuin aiemmin, esimerkiksi taustakäyttöä käytön aikaisen sijasta. Järjestelmä kysyy laajennuksen aina erikseen.
Näkeekö puhelin, mitä sovellus tekee saamallaan tiedolla?
Ei näe. Käyttöjärjestelmä valvoo pääsyä rajapintaan, ei sitä mihin tieto siirtyy sen jälkeen. Siksi luvan myöntäminen kannattaa ajatella riskin rajaamisena eikä valvontana, ja sovelluksen alkuperällä on siksi merkitystä.
Mitä se pieni vihreä tai oranssi piste näytön yläreunassa tarkoittaa?
Se on järjestelmän ilmaisin siitä, että kamera tai mikrofoni on juuri nyt käytössä. Napauttamalla sitä näet yleensä, mikä sovellus anturia käyttää. Jos ilmaisin palaa silloin kun et odota sitä, tarkista lupalistalta mitkä sovellukset ovat saaneet kyseisen oikeuden.
Poistuvatko luvat, jos poistan sovelluksen?
Kyllä, luvat ovat sovelluskohtaisia ja häviävät sovelluksen mukana. Jos asennat saman sovelluksen myöhemmin uudelleen, se joutuu kysymään luvat alusta. Palvelun palvelimelle aiemmin kertynyt tieto ei kuitenkaan poistu asennuksen poistamisella.
Onko lupapyyntö sama asia kuin evästeiden hyväksyminen?
Ei ole. Lupapyyntö on laitteesi käyttöjärjestelmän tekninen pääsynhallinta, kun taas evästeiden ja henkilötietojen käsittelyn suostumus on oikeudellinen peruste, jota palvelu tarvitsee omaan käsittelyynsä. Sovellus voi pyytää molemmat, eivätkä ne korvaa toisiaan.