Jedinica 9 / 11

Privatnost, dozvole i sigurno korištenje

Dobici:

  • Sposobnost traženja dozvola sa opravdanjem, kontekstom i scenarijem odbijanja, koristeći princip najmanje privilegija
  • Sposobnost pohranjivanja osjetljivih podataka šifriranih pomoću Keychain/Keystore, primjene minimizacije podataka i kontrole sklonosti umjetne inteligencije da doda previše dozvola
  • Sposobnost upravljanja protokom korisničkih podataka u oblak ili uslugu umjetne inteligencije kao odluka o privatnosti, dobivanje pristanka korisnika i korištenje sigurnosnih tehnika samo u ovlaštene, obrambene svrhe

Mobilna aplikacija radi na najprivatnijem uređaju korisnika: zna njegovu lokaciju, kontakte, fotografije, zdravstvene podatke, mikrofon. Ovaj pristup je velika moć, a moć znači odgovornost. Privatnost i sigurnost nisu „dodatna karakteristika“ u mobilnom razvoju, već princip utkan u arhitekturu od početka; To se zove privatnost po dizajnu. Štoviše, ovo nije samo etički izbor, to je zakonska (KVKK, GDPR) i trgovina (App Store, Google Play) obaveza. U ovoj jedinici ćemo naučiti kako ispravno tražiti dozvole, bezbedno obrađivati ​​podatke, koristiti AI kao pomoćnika u ovoj oblasti i zaštititi se od njegovih zamki. Postoji još jedan kritičan problem u kontekstu AI: podaci korisnika koji idu na AI modele (posebno u oblak) su odluka o privatnosti za sebe.

Umijeće traženja dozvole: najmanje privilegija

Osnovni princip sigurnosti je najmanje privilegija (ne tražiti više privilegija nego što posao zahtijeva). Vaša aplikacija treba samo tražiti dozvolu koja joj je zaista potrebna, u trenutku kada joj je potrebna. Ako nema funkcije kamere, neće se tražiti dozvola za kameru; Ako je lokacija potrebna samo kada je mapa otvorena, dovoljna je dozvola "dok se koristi", a ne "uvijek". Prekomjerne dozvole uzrokuju trostruku štetu: podriva povjerenje korisnika, dovodi do odbijanja trgovine i povećava rizik od curenja podataka.

Pravilno vrijeme i objašnjenje traženja dozvole su od ključne važnosti. Zatražite od korisnika dozvolu u kontekstu i s obrazloženjem, kao što je "Potreban je pristup kameri za skeniranje vašeg računa." iOS zahtijeva ovaj opis u Info.plist; Prazan ili pogrešan opis je odbijanje trgovine.

Vrsta dozvole

loš pristup

dobar pristup

tajming

Zatražite sve pri lansiranju

upita kada koristite funkciju

Obim

"Uvijek lokacija"

"lokacija tokom korištenja"

Opis

Prazan ili generički

Konkretno, specifično opravdanje

status odbijanja

Aplikacija se ruši/ruši

Ljubazno nudi alternative

Savjet: Vaša aplikacija bi trebala moći nastaviti s radom kada je dozvola odbijena. Ako korisnik odbije kameru, ponudite opciju "ručne prijave". Nametanje "dopusti ili aplikacija neće raditi" je i loše iskustvo i problem trgovine. Uvijek pitajte za scenario odbijanja kada ispisujete šifru dozvole na AI.

Pristanak i kodeks privatnosti s AI: razmatranja

AI brzo generiše kod za traženje dozvole, ali ima dvije tipične zamke. Prvo, dodavanje više dozvola nego što je potrebno: lokacija, kontakti mogu masovno staviti dozvole za pohranu "za svaki slučaj". Drugo, preskakanje scenarija odbijanja: samo napišite status "dozvoljeno" i zanemarite odbijanje. Za svaku dobijenu dozvolu bit ćete upitani "da li je ovo zaista potrebno?" i „šta se dešava ako bude odbijeno?“ Postavljajte svoja pitanja.

Oprez: Primjer koda koji generira AI može pohraniti korisničke podatke bez šifriranja ili ih prenositi nesigurno. Osjetljive podatke (lozinka, zdravlje, finansije) treba čuvati u sigurnoj pohrani na uređaju (Keychain — iOS, Keystore — Android; šifrirano trezorsko područje operativnog sistema) i prenijeti na mrežu putem šifrovane veze (HTTPS/TLS). AI to ne radi uvijek spontano; Pitajte jasno i potvrdite.

Minimiziranje podataka i slanje podataka u AI

Podaci koje ne prikupljate ne mogu procuriti. Minimizacija podataka (prikupljanje samo onih podataka koji su zaista potrebni) je najmoćniji alat za privatnost. U AI funkcijama, ovaj princip je dvostruko važan: kada šaljete podatke u oblak LLM ili eksternu AI uslugu, ti podaci su van vaše kontrole. Prije nego što pošaljete korisničku zdravstvenu napomenu, sadržaj razgovora ili lične podatke u oblak, postavite tri pitanja: (1) Da li su ovi podaci zaista potrebni? (2) Može li se obraditi na uređaju? (3) Ako se šalje, da li korisnik to zna i odobrava? I zakonski i etički zahtjev je da se korisnik jasno obavijesti da njegovi podaci idu AI servisu.

Sigurno korištenje i fokus na odbranu

Upozorenje iz IT i sigurnosne perspektive: tehnike naučene u ovom modulu su samo za ovlaštenu i defanzivnu upotrebu. Legitimno je testirati sigurnost vlastite aplikacije, zaštititi korisničke podatke i zatvoriti ranjivosti. Obrnuti inženjering tuđe aplikacije bez dozvole, prikupljanje korisničkih podataka bez pristanka ili korištenje AI za stvaranje zlonamjernog softvera je nezakonito i neetično. Kada tražite AI za sigurnosnu pomoć, uvijek ostanite u okviru odbrane vlastitog sistema.

tri mini kofera

Slučaj 1 — Odbijanje viška dopusta. Aplikacija za bilješke tražila je dozvolu za kameru, mikrofon, lokaciju i kontakt pri pokretanju s kodom koji je proizveo AI. Google Play je odbio izdanje, navodeći "dozvole koje nisu relevantne za funkciju". Izdanje je odobreno kada je tim izdao samo dozvolu za skladištenje koja je stvarno korištena. Pouka: svako dodatno odsustvo je rizik.

Slučaj 2 — Skladištenje bez lozinke. Zdravstvena aplikacija pohranila je korisnička mjerenja u običan tekstualni fajl kao u primjeru AI. Sigurnosna revizija je otkrila da svako ko je nabavio uređaj može pročitati sve zdravstvene podatke. Podaci su premješteni u šifriranu pohranu pomoću Keystore/Keychain. Pouka: osjetljivi podaci uvijek ostaju šifrirani.

Slučaj 3 — Nenajavljeni push to cloud. Aplikacija je slala dnevne bilješke korisnika oblaku LLM da ih sumira, ali nije rekla korisniku. Kada je to objavljeno u štampi, došlo je do gubitka povjerenja i pravne kontrole. Tim je dodao jasnu obavijest i potvrdu, kao i opciju na uređaju. Pouka: korisnik mora znati i potvrditi da podaci idu u AI.

Slaba prompt / Jaka prompt

Slab upit: "Zatražite dozvolu za lokaciju."

Snažan prompt: "Zatražite dozvolu za lokaciju na iOS/Swift-u po principu najmanje privilegija. - Samo 'kada se koristi' dopuštenje, a ne 'uvijek' - Info.plist opis: 'Za prikaz obližnjih trgovina' - Ako je dozvola odbijena: ponudite opciju ručnog odabira grada, rušenje - Ako je dozvola odbijena prije, ne dodajte više dozvola za preusmjeravanje nego što je potrebno. takođe."

Predlošci koji se mogu kopirati

Predložak za traženje dozvole: "Zahtjev [vrsta dozvole] za [platformu].- Minimalni opseg (kada se koristi/po potrebi)- U kontekstu, s obrazloženim objašnjenjem- Ljubazna alternativa u slučaju odbijanja, nikada ne pada- Dajte i unos Info.plist / Manifest. Nemojte dodavati dodatne dozvole; opravdajte svaku dozvolu."

Predložak revizije dopuštenja: "Provjerite dozvole koje moja aplikacija traži: [lista dozvola + svojstva]. Za svaku dozvolu: da li je zaista potrebna? Da li bi uži opseg bio dovoljan? Da li bi to dovelo do odbijanja trgovine? Označavanje nije potrebno."

Predložak za sigurno pohranjivanje podataka: "Sigurno pohraniti osjetljive podatke ([tip]) za [platformu]:- Šifrirano pomoću Keychain/Skladištenje ključeva- Ne čuvajte u memoriji nepotrebno dugo- Nemojte procuriti u evidencije i sigurnosne kopije Navedite kod i korake za verifikaciju."

Predložak za slanje podataka AI-u: "Razmišljam o slanju sljedećih podataka AI servisu u oblaku: [podaci]. Procijenite: da li je to zaista potrebno? Može li se obraditi na uređaju? Ako se šalju, koja polja treba maskirati? Kako treba dobiti pristanak korisnika? Preporučite najsigurniji dizajn u smislu privatnosti."

Uobičajene greške

  • Tražite više dozvole nego što je potrebno. Trostruka opasnost za povjerenje, odobrenje trgovine i sigurnost.
  • Grupno traženje dozvola pri pokretanju. Zahtjev za dozvolu bez konteksta je odbijen; odmah zatražite funkciju.
  • Ne pišem skriptu za odbijanje. Aplikacija koja se ruši kada je dozvola odbijena je i loša i odbijena.
  • Pohranjivanje osjetljivih podataka bez lozinke. Zdravlje, finansije i lozinke moraju se čuvati u sigurnom skladištu.
  • Slanje podataka u oblak/AI bez obavještavanja korisnika. Kršenje zakona i etike; Obavijest i odobrenje su obavezni.
  • Neovlašteno korištenje sigurnosnih tehnika. To je legitimno samo za obrambene svrhe na vašem vlastitom sistemu.

Ukratko

Privatnost i sigurnost su dizajnirani od početka, a ne dodani kasnije. Osnovni princip je najmanje privilegija: tražite samo neophodnu dozvolu, kada je to potrebno, sa opravdanjem, i ponudite ljubaznu alternativu u slučaju odbijanja. Osetljivi podaci se pohranjuju u šifrovanu memoriju i prenose putem šifrovane veze. Minimizacija podataka je najjača zaštita: podaci koje ne prikupljate ne mogu procuriti. Slanje podataka u AI, posebno u oblak, sama je odluka o privatnosti; Dovodi se u pitanje njegova neophodnost, ako je moguće, preferira se na uređaju, informiše se korisnik i dobije njegovo/njeno odobrenje. Svaki proizvedeni kod se provjerava u odnosu na tendencije umjetne inteligencije da dodaje prekomjerne dozvole i nesigurno pohranjuje. Sigurnosne tehnike se koriste samo u ovlaštene i odbrambene svrhe.

Zadatak aplikacije

Napravite listu dozvola koje aplikacija (vaš vlastiti projekat ili imaginarni) traži i neka AI provjeri koje su nepotrebne ili preterane pomoću "šablona revizije dozvola". Pročistite ili uklonite barem jednu dozvolu i napišite scenarij odbijanja za tu funkciju. Osim toga, ako šaljete korisničke podatke u oblak, odredite najsigurniji dizajn pomoću "Šablona odluke o slanju podataka u AI" i napišite tekst odobrenja korisnika.

kontrolna lista

  • [ ] Tražio sam svaku dozvolu sa opravdanjem, uz princip najmanje privilegija.
  • [ ] Tražio sam dozvole u kontekstu, u vrijeme prikazivanja, a ne masovno pri pokretanju
  • [ ] Napisao sam skriptu za odbijanje za svaku dozvolu, bez rušenja
  • [ ] Pohranio sam osjetljive podatke šifrirane pomoću Keychain/Keystore
  • [ ] Minimizirao sam podatke koji idu u oblak/AI i dodao odobrenje korisnika
  • [ ] Koristio sam sigurnosne tehnike samo na svom sistemu u odbrambene svrhe