Pregled za razvojne programere za Android 11: sve nove značajke privatnosti i sigurnosti

Google je objavio prvi Android 11 Developer Preview za Pixel 2, 3, 3a i 4. Ovdje su sve nove značajke privatnosti i sigurnosti koje su najavili.

Prije roka, Google danas je objavio prvi Developer Preview sljedeće verzije Android OS-a: Android 11. Dostupne su slike sustava za Pixel 2, Pixel 3, Pixel 3a, Pixel 4, ali ako ne posjedujete jednu od ovih uređajima, također možete isprobati Developer Preview putem emulatora Android Studio ili Generičkog sustava Slika. Iako Google većinu uzbudljivih novih korisničkih i razvojnih značajki čuva za veliku najavu na Google I/O 2020, tvrtka je podijelila mnoštvo promjena koje su dostupne u prvom pregledu za razvojne programere. Evo sažetka svih novih značajki povezanih s privatnošću i sigurnošću koje je Google najavio u Android 11 Developer Preview 1.

Android 11 Developer Preview 1 - Nove značajke privatnosti

Pristup s jednokratnim dopuštenjem

Android kontrolira kojim vrstama podataka aplikacije mogu pristupiti putem svog sustava dopuštenja. Prije Androida 6.0 Marshmallow, aplikacije su tražile dopuštenja pri instalaciji, pa su korisnici prije instaliranja morali odlučiti jesu li u redu s aplikacijom koja ima određena dopuštenja. Android 6.0 Marshmallow uveo je dopuštenja za vrijeme izvođenja za odabrani skup osjetljivih dopuštenja, uključujući pristup lokaciji, pristup mikrofonu i pristup kameri. Dopuštenja za vrijeme izvođenja mogu se dodijeliti tek nakon instalacije, a aplikacija koja ih zahtijeva mora od korisnika zatražiti putem dijaloškog okvira sustava da dopusti pristup. Konačno, u Androidu 10, Google je predstavio posebnu verziju dopuštenja za vrijeme izvođenja koja korisniku omogućuje da odobri pristup samo dok je aplikacija u aktivnoj upotrebi; međutim, Google je uveo samo opciju "dok je aplikacija u upotrebi" za dozvolu lokacije.

U Androidu 11 Google korisnicima daje detaljniju kontrolu nad drugim osjetljivim dopuštenjima, uključujući pristup kameri i mikrofonu. Tvrtka je predstavila novu značajku "jednokratnog dopuštenja" u Android 11 Developer Previewu omogućuje korisniku da aplikaciji privremeno odobri pristup dopuštenju sve dok je ta aplikacija u prvi plan. Nakon što korisnik napusti aplikaciju, aplikacija gubi pristup tom dopuštenju i mora ga ponovno zatražiti.

Promjene ograničene pohrane

U Android 10 beta 2, Google je predložio radikalnu promjenu načina na koji aplikacije pristupaju vanjskoj pohrani na Androidu. (Vanjska pohrana, ovdje se definira kao podaci vidljivi korisniku i drugim aplikacijama smještenim u /data/media.) promjena, nazvana "Scoped Storage", imala je za cilj eliminirati preširoku upotrebu READ_EXTERNAL_STORAGE dopuštenje. Previše aplikacija u Trgovini Google Play zahtijevalo je i dobivalo pristup cijeloj vanjskoj pohrani u koju su korisnici spremali svoje privatne dokumente, fotografije, videozapise i druge datoteke. Uz Scoped Storage, aplikacije bi prema zadanim postavkama imale samo mogućnost da vide svoje privatne direktorije podataka. Ako aplikacija ima dopuštenje READ_EXTERNAL_STORAGE pod provedbom Scoped Storage, tada može vidjeti određene medijske datoteke dostupne putem MediaStore API-ja. Alternativno, aplikacija može koristiti Storage Access Framework kako bi korisnik ručno odabrao datoteke putem alata za odabir datoteka sustava. Konačno, aplikacije koje trebaju široki pristup vanjskoj pohrani, kao što su upravitelji datotekama, mogu koristiti okvir za pristup pohrani za zahtjev korisniku da aplikaciji odobri pristup korijenskom direktoriju vanjske pohrane, čime se odobrava pristup svim njegovim poddirektorijima, isto.

Provedba ograničene pohrane postavljena je da stupi na snagu za sve aplikacije u Androidu 10, ali nakon povratnih informacija i kritika programera, Google ublažio promjene, zahtijevajući ih samo za aplikacije koje ciljaju API razinu 29 (Android 10). Nakon 1. kolovoza 2020. sve nove aplikacije poslane u Trgovinu Google Play moraju ciljati na Android 10, a isto vrijedi i za sva ažuriranja postojećih aplikacija nakon 1. studenog 2020. Nadalje, u Androidu 11, programeri aplikacija za upravljanje datotekama mora podnijeti obrazac deklaracije da Google dobije široki pristup vanjskoj pohrani; nakon prihvaćanja, aplikacije za upravljanje datotekama imat će nefiltrirani prikaz MediaStorea, ali neće imati pristup vanjskim imenicima aplikacija.

Osim toga, Google je uveo druge promjene u Scoped Storage u Android 11 Developer Preview. Aplikacije se mogu uključiti da dobiju neobrađeni put datoteke i izvedu operacije skupnog uređivanja za medijske datoteke u MediaStoreu. DocumentsUI je ažuriran kako bi bio jednostavniji za korisnike. Ove promjene najavljene su na Android Dev Summit prošle godine, a obećana su nam dodatna poboljšanja Scoped Storagea u budućim izdanjima Androida 11.

Android 11 Developer Preview 1 - Nove sigurnosne značajke

Podrška za mobilnu vozačku dozvolu

Od početka prošle godine Google radi na IdentityCredential API i HAL u AOSP-u. Ova značajka postavlja temelje za sigurno pohranjivanje identifikacijskih dokumenata na vašem mobilnom uređaju, a posebno mobilnih vozačkih dozvola usklađenih sa standardom ISO 18013-5. Google službeno najavio ovu značajku na Google I/O 2019, a sada je konačno podržan u Android 11 Developer Preview 1.

Google nije imao puno za reći o ovoj značajci u priopćenju za tisak, ali budući da se značajka razvija na otvorenom, već znamo mnogo od onoga što je planirano. Na I/O 2019. Google je izjavio da surađuju s ISO-om na standardizaciji implementacije elektroničkih putovnica; još uvijek nemamo naslutiti kada će ePutovnice biti dostupne, ali već postoji nekoliko američkih država u kojima su eDL-ovi implementirani ili su u probnoj fazi. Google je također rekao da rade na pružanju Jetpack biblioteke kako bi programeri mogli stvarati aplikacije za identifikaciju. Ipak, ne znamo koliko će brzo programeri moći testirati ovu značajku, jer odgovarajuća podrška zahtijeva siguran hardver na uređaju. The Sigurna procesorska jedinica na Qualcomm Snapdragon 865 podržava IdentityCredential API, iako možda ne podržava API-jev način izravnog pristupa jer je SPU integriran u SoC; Način izravnog pristupa omogućio bi korisniku da izvuče pohranjeni elektronički ID čak i kada nema dovoljno energije za pokretanje Androida. Za više informacija o ovom API-ju, preporučujem čitajući naše početno izvješće gdje je Shawn Willden, voditelj sigurnosnog tima za Android hardver, dao svoj doprinos.

Novi glavni moduli projekta

Jedna od najvećih promjena u Androidu 10 za novo lansirane uređaje bilo je uvođenje Glavni projekt, koji unatoč svom nazivu nema nikakve veze s podrškom za glavnu jezgru Linuxa na Androidu. (Usput, taj se projekt zove Generic Kernel Image i još uvijek je u tijeku.) Umjesto toga, svrha Project Mainline je za Google će preoteti OEM-u kontrolu nad ključnim komponentama okvira i aplikacijama sustava. Svaki glavni modul enkapsuliran je ili kao APK ili an APEX datoteku a Google ga može ažurirati putem Trgovine Play. Korisnik vidi ažuriranja kao "Google Play System Update" (GPSU) na svom uređaju, a ažuriranja se objavljuju redovitom kadencom kao vlak (tj. preuzimaju se i instaliraju u isto vrijeme).

Prednosti Project Mainline. Izvor: Google.

Google nalaže uključivanje određenih modula Mainline, koji su u vrijeme Google I/O 2019 uključivali 13. Sada Google nalaže ukupno 20 glavnih modula u Android 11 Developer Preview 1.

Inicijalni glavni moduli (@ Google I/O 2019.)

Trenutačni glavni moduli (za Android 11 Developer Preview 1)*

KUT

Prijava na Captive Portal

Prijava na Captive Portal

Conscrypt

Conscrypt

DNS razrješavač

DNS razrješavač

UI dokumenata

UI dokumenata

ExtServices

ExtServices

Medijski kodeci

Medijski kodeci

Komponente medijskog okvira

Komponente medijskog okvira

Metapodaci modula

Metapodaci modula

Mrežni stog

Mrežni stog

Konfiguracija dopuštenja mrežnog snopa

Konfiguracija dopuštenja mrežnog snopa

Kontrolor dopuštenja

Kontrolor dopuštenja

Podaci o vremenskoj zoni

Podaci o vremenskoj zoni

Novi modul dopuštenja

Novi modul pružatelja medijskih usluga

Novi modul API neuronskih mreža (NNAPI).

*Napomena: u vrijeme objave Google nam nije dostavio potpuni popis modula Mainline koji su trenutno potrebni. Ažurirat ćemo ovu tablicu kada budemo imali potpuni popis.

BiometricPrompt promjene

Predstavljen Android 9 Pie BiometricPrompt API, objedinjeni API za hardver za biometrijsku autentifikaciju. API pruža programerima način da izazovu korisnika kroz njihove spremljene biometrije, bilo da se radi o otisku prsta, licu ili šarenici. Prije BiometricPrompta, programeri su morali stvoriti vlastiti dijaloški okvir za provjeru autentičnosti i koristiti FingerprintManager API, koji je podržavao samo provjeru autentičnosti otiskom prsta, kako bi izazvali korisnika. Na Galaxy pametnim telefonima sa skenerima šarenice oka, programeri su morali koristiti Samsungov SDK kako bi izazvali korisnika. Uz BiometricPrompt, programeri mogu izazvati korisnika bilo kojom podržanom biometrijskom metodom, a sustav korisniku pruža dijalog. Stoga se programeri više ne moraju brinuti o posebnoj podršci za određenu vrstu biometrijskog hardvera, a također više ne moraju kodirati korisničko sučelje za dijaloški okvir provjere autentičnosti. The Hardver za sigurno prepoznavanje lica Pixela 4, na primjer, može se koristiti za autentifikaciju u aplikacijama koje koriste BiometricPrompt.

Provjera autentičnosti lica pomoću BiometricPrompta.

Što je novo za BiometricPrompt u Android 11 Developer Preview 1? Google je dodao 3 nove vrste autentifikatora: jaki, slabi i vjerodajnice uređaja. Prije Androida 11, programeri su mogli postavljati upite sigurnom biometrijskom hardveru uređaja — skeneru otiska prsta, 3D skeneru za prepoznavanje lica ili skeneru šarenice — kada su koristili BiometricPrompt. Počevši od Android 11 Developer Preview 1, programeri također mogu postavljati upite o biometrijskim metodama koje se smatraju "slabima", kao što su softverska rješenja za prepoznavanje lica koja se nalaze na mnogim telefonima. Na primjer, Google prethodno stavio na crnu listu više Samsung Galaxy telefona za vraćanje slabog autentifikatora prepoznavanja lica prilikom pokušaja kripto-provjere autentičnosti. Sada je na razvojnom programeru da odluči koja je razina granularnosti biometrijske provjere autentičnosti potrebna njihovoj aplikaciji.

Sigurno skladištenje i dijeljenje BLOB-ova

Novi API nazvan BlobstoreManager olakšat će i sigurnije aplikacijama da međusobno dijele blobove podataka. Google navodi aplikacije koje dijele modele strojnog učenja kao idealan slučaj upotrebe novog BlobstoreManager API-ja.

Stvrdnjavanje platforme

U nastojanju da smanji površinu napada Androida, Google koristi LLVM sredstva za dezinfekciju identificirati "bugove zlouporabe memorije i potencijalno opasno nedefinirano ponašanje." Google sada proširuje njihovu upotrebu sredstva za čišćenje temeljena na kompajleru za nekoliko sigurnosno kritičnih komponenti uključujući BoundSan, IntSan, CFI i Shadow-Call Stack. Kako bi uhvatio probleme s memorijom u proizvodnji, Google omogućuje "heap pointer označavanje" za sve aplikacije koje ciljaju Android 11 ili noviji. Označavanje pokazivača hrpe podržano je na ARMv8 64-bitnim uređajima s podrškom jezgre za ARM Top-byte Ignore (TBI), značajku u kojoj " hardver zanemaruje gornji bajt pokazivača kada pristupa memoriji." Google upozorava programere da ova poboljšanja očvršćavanja mogu "površinski više ponovljivih/reproducibilnih rušenja aplikacija", stoga bi programeri trebali temeljito testirati svoje aplikacije na novom Android 11 Developeru Pregled. Kako bi pronašao i popravio mnoge memorijske pogreške u sustavu, Google je koristio alat za otkrivanje memorijskih pogrešaka tzv hardverski potpomognuti AddressSanitizer (HWASan). Google nudi unaprijed izgrađene slike sustava s omogućenim HWASan-om na poslužitelju za izgradnju AOSP-a u slučaju da ste zainteresirani za pronalaženje i popravljanje memorijskih pogrešaka u vlastitim aplikacijama.


Google će sigurno najaviti dodatne značajke za zaštitu privatnosti korisnika i poboljšanje sigurnosti, stoga budite sigurni da pratite našu pokrivenost Androidom 11 kako biste bili u tijeku.

Vijesti o Androidu 11 na XDA