Enota 9 / 11

Zasebnost, dovoljenja in varna uporaba

Dobički:

  • Možnost zahtevanja dovoljenj z utemeljitvijo, kontekstom in scenarijem zavrnitve z uporabo načela najmanjših privilegijev
  • Zmožnost shranjevanja občutljivih podatkov, šifriranih s Keychain/Keystore, uporabe minimizacije podatkov in nadzora težnje umetne inteligence, da doda preveč dovoljenj
  • Zmožnost upravljanja pretoka uporabniških podatkov v oblak ali storitev umetne inteligence kot odločitev o zasebnosti, pridobitev soglasja uporabnika in uporaba varnostnih tehnik samo za pooblaščene, obrambne namene

Mobilna aplikacija deluje na najbolj zasebni napravi uporabnika: pozna njegovo lokacijo, kontakte, fotografije, zdravstvene podatke, mikrofon. Ta dostop je velika moč, moč pa pomeni odgovornost. Zasebnost in varnost nista »dodatna funkcija« v mobilnem razvoju, temveč načelo, vtkano v arhitekturo od začetka; To se imenuje vgrajena zasebnost. Poleg tega to ni le etična izbira, je zakonska (KVKK, GDPR) in obveznost trgovine (App Store, Google Play). V tej enoti se bomo naučili pravilno zahtevati dovoljenja, varno obdelati podatke, uporabiti AI kot pomočnika na tem področju in se zaščititi pred njenimi pastmi. V kontekstu umetne inteligence obstaja dodatna kritična težava: uporabniški podatki, ki gredo v modele umetne inteligence (zlasti v oblak), so sami po sebi odločitev o zasebnosti.

Umetnost prositi za dovoljenje: najmanj privilegij

Osnovno načelo varnosti je najmanj privilegijev (ne zahtevati več privilegijev, kot zahteva služba). Vaša aplikacija bi morala zahtevati samo dovoljenje, ki ga resnično potrebuje, in sicer takrat, ko ga potrebuje. Če ni funkcije kamere, dovoljenje za kamero ne bo zahtevano; Če je lokacija zahtevana le, ko je zemljevid odprt, zadostuje dovoljenje »med uporabo« in ne »vedno«. Prekomerna dovoljenja povzročajo trojno škodo: spodkopavajo zaupanje uporabnikov, vodijo do zavrnitve shranjevanja in povečujejo tveganje uhajanja podatkov.

Pravilen čas in razlaga prošnje za dovoljenje sta ključnega pomena. Uporabnika prosite za dovoljenje v kontekstu in z utemeljitvijo, na primer »Za skeniranje vašega računa je potreben dostop do kamere«. iOS zahteva ta opis v Info.plist; Prazen ali zavajajoč opis je zavrnitev trgovine.

Vrsta dovoljenja

slab pristop

dober pristop

čas

Zahtevajte vse ob zagonu

poziv pri uporabi funkcije

Področje uporabe

"Vedno lokacija"

"lokacija med uporabo"

Opis

Prazno ali generično

Konkretna, konkretna utemeljitev

status zavrnitve

Aplikacija se zruši/zruši

Vljudno ponuja alternative

Namig: vaša aplikacija bi morala imeti možnost, da se še naprej izvaja, ko je dovoljenje zavrnjeno. Če uporabnik kamero zavrne, ponudi možnost »ročne prijave«. Vsiljevanje "dovolite ali pa aplikacija ne bo delovala" je slaba izkušnja in težava trgovine. Pri tiskanju kode dovoljenja v AI vedno zahtevajte scenarij zavrnitve.

Koda za soglasje in zasebnost z AI: premisleki

AI hitro ustvari kodo za zahtevo po dovoljenju, vendar ima dve tipični pasti. Prvič, dodajanje več dovoljenj, kot je potrebno: lokacija, stiki lahko množično dodajo dovoljenja za shranjevanje "za vsak slučaj". Drugič, preskočite scenarij zavrnitve: samo napišite status "dovoljeno" in ignorirajte zavrnitev. Za vsako ustvarjeno dovoljenje boste vprašani "ali je to res potrebno?" in "kaj se zgodi, če je zavrnjen?" Postavite svoja vprašanja.

Pozor: Vzorčna koda, ki jo ustvari AI, lahko shrani uporabniške podatke brez šifriranja ali jih posreduje nevarno. Občutljive podatke (geslo, zdravje, finance) je treba hraniti v varni shrambi na napravi (Keychain — iOS, Keystore — Android; šifrirano območje trezorja operacijskega sistema) in prenašati po omrežju prek šifrirane povezave (HTTPS/TLS). AI tega ne naredi vedno spontano; Jasno vprašajte in potrdite.

Minimizacija podatkov in pošiljanje podatkov AI

Podatki, ki jih ne zberete, ne morejo uhajati. Minimizacija podatkov (zbiranje samo tistih podatkov, ki so dejansko potrebni) je najmočnejše orodje za zasebnost. Pri funkcijah umetne inteligence je to načelo dvojno pomembno: pri pošiljanju podatkov v oblak LLM ali zunanji storitvi umetne inteligence ti podatki niso pod vašim nadzorom. Preden v oblak pošljete obvestilo o zdravstvenem stanju uporabnika, vsebino pogovora ali osebne podatke, postavite tri vprašanja: (1) Ali so ti podatki res potrebni? (2) Ali ga je mogoče obdelati na napravi? (3) Če se pošlje, ali uporabnik to ve in odobri? Jasno obvestiti uporabnika, da gredo njegovi podatki v storitev AI, je zakonska in etična zahteva.

Varna uporaba in osredotočenost na obrambo

Opozorilo z vidika IT in varnosti: tehnike, pridobljene v tem modulu, so samo za pooblaščeno in obrambno uporabo. Legitimno je preizkusiti varnost lastne aplikacije, zaščititi uporabniške podatke in zapreti ranljivosti. Povratni inženiring aplikacije nekoga drugega brez dovoljenja, zbiranje uporabniških podatkov brez soglasja ali uporaba AI za ustvarjanje zlonamerne programske opreme je nezakonito in neetično. Ko prosite AI za varnostno pomoč, vedno ostanite znotraj okvira obrambe lastnega sistema.

trije mini kovčki

Primer 1 – Prekomerna zavrnitev dopusta. Aplikacija za beležke je ob zagonu zahtevala dovoljenja za kamero, mikrofon, lokacijo in stik s kodo, ki jo je ustvaril AI. Google Play je izdajo zavrnil z navedbo "dovoljenj, ki niso pomembna za funkcijo". Izdaja je bila odobrena, ko je ekipa izdala samo dovoljenje za shranjevanje, ki je bilo dejansko uporabljeno. Nauk: vsak dodatni dopust je tveganje.

Primer 2 — Shramba brez gesla. Zdravstvena aplikacija je uporabniške meritve shranila v datoteko z navadnim besedilom, kot v primeru umetne inteligence. Varnostna revizija je pokazala, da je vsak, ki je pridobil napravo, lahko prebral vse zdravstvene podatke. Podatki premaknjeni v šifrirano shrambo s Keystore/Keychain. Lekcija: občutljivi podatki vedno ostanejo šifrirani.

3. primer – nenapovedan prenos v oblak. Aplikacija je pošiljala dnevne opombe uporabnikov v oblak LLM, da bi jih povzela, vendar uporabniku ni povedala. Ko so o tem poročali v tisku, je prišlo do izgube zaupanja in pravnega nadzora. Ekipa je dodala jasno obvestilo in potrditev ter možnost v napravi. Nauk: uporabnik mora vedeti in potrditi, da gredo podatki v AI.

Šibek poziv/močan poziv

Šibek poziv: "Zahtevaj dovoljenje za lokacijo."

Zmogljiv poziv: "Zahtevaj dovoljenje za lokacijo v sistemu iOS/Swift z načelom najmanjših privilegijev. - Samo dovoljenje 'ko je v uporabi', ne 'vedno' - Opis Info.plist: 'Za prikaz bližnjih trgovin' - Če je dovoljenje zavrnjeno: ponudi možnost ročne izbire mesta, zrušitev - Če je bilo dovoljenje že zavrnjeno, preusmeri na nastavitve. Ne dodajajte več dovoljenj, kot je potrebno. Napišite tudi tok zavrnitve."

Kopirane predloge

Predloga za zahtevo po dovoljenju: "Zahtevaj [vrsta dovoljenja] dovoljenje za [platformo]. - Minimalni obseg (pri uporabi/po potrebi) - V kontekstu, z utemeljeno razlago - Vljudna alternativa v primeru zavrnitve, nikoli se ne zruši - Podajte tudi vnos Info.plist / Manifest. Ne dodajajte dodatnih dovoljenj; vsako dovoljenje utemeljite."

Predloga za revizijo dovoljenj: "Preverite dovoljenja, ki jih zahteva moja aplikacija: [seznam dovoljenj + lastnosti]. Za vsako dovoljenje: ali je res potrebno? Ali bi bil ožji obseg dovolj? Ali bi povzročil zavrnitev shranjevanja? Označite nepotrebno."

Predloga za varno shranjevanje podatkov: "Varno shranjujte občutljive podatke ([vrsta]) za [platformo]: - Šifrirano s Keychain/Keystore - Ne hranite v pomnilniku po nepotrebnem dolgo - Ne uhajajte v dnevnike in varnostne kopije Navedite kodo in korake za preverjanje."

Predloga za pošiljanje podatkov v AI: "Razmišljam o pošiljanju naslednjih podatkov v storitev umetne inteligence v oblaku: [podatki]. Ocenite: ali so res potrebni? Ali jih je mogoče obdelati v napravi? Če so poslani, katera polja naj bodo zamaskirana? Kako naj se pridobi soglasje uporabnika? Priporočite najvarnejši dizajn v smislu zasebnosti."

Pogoste napake

  • Prosim za več dovoljenj, kot je potrebno. Trojna ogroženost zaupanja, odobritve trgovine in varnosti.
  • Zahtevanje dovoljenj v velikem obsegu ob zagonu. Zahteva za dovoljenje brez konteksta je zavrnjena; zahtevajte funkcijo takoj.
  • Ne pisanje scenarija za zavrnitev. Aplikacija, ki se zruši, ko je dovoljenje zavrnjeno, je slaba in zavrnjena.
  • Shranjevanje občutljivih podatkov brez gesla. Zdravje, finance in gesla je treba hraniti v varni shrambi.
  • Pošiljanje podatkov v oblak/AI brez obveščanja uporabnika. Pravna in etična kršitev; Potrebna sta obvestilo in odobritev.
  • Nepooblaščena uporaba varnostnih tehnik. Legitimen je samo za obrambne namene v vašem sistemu.

Če povzamem

Zasebnost in varnost sta zasnovani od začetka in nista dodani pozneje. Osnovno načelo je najmanjši privilegij: prosite le za potrebno dovoljenje, kadar je potrebno, z utemeljitvijo in ponudite vljudno alternativo v primeru zavrnitve. Občutljivi podatki so shranjeni v šifriranem pomnilniku in se prenašajo prek šifrirane povezave. Minimizacija podatkov je najmočnejša zaščita: podatki, ki jih ne zberete, ne morejo uhajati. Pošiljanje podatkov v AI, zlasti v oblak, je samo po sebi odločitev glede zasebnosti; Postavlja se dvom o njegovi nujnosti, če je mogoče, se daje prednost na napravi, uporabnika se obvesti in pridobi njegovo odobritev. Vsaka ustvarjena koda se preveri glede na težnje umetne inteligence po dodajanju prevelikih dovoljenj in nezanesljivem shranjevanju. Varnostne tehnike se uporabljajo samo za pooblaščene in obrambne namene.

Aplikacijska naloga

Naredite seznam dovoljenj, ki jih zahteva aplikacija (vaš lastni projekt ali namišljena) in naj AI preveri, katera so nepotrebna ali pretirana s predlogo za revizijo dovoljenj. Izboljšajte ali odstranite vsaj eno dovoljenje in napišite scenarij zavrnitve za to funkcijo. Poleg tega, če pošiljate uporabniške podatke v oblak, določite najbolj varno zasnovo s »Predlogo odločitve o pošiljanju podatkov v AI« in napišite besedilo odobritve uporabnika.

kontrolni seznam

  • [ ] Vsako dovoljenje sem zahteval z utemeljitvijo, z načelom najmanjših privilegijev.
  • [ ] Za dovoljenja sem prosil v kontekstu, v času funkcije, ne množično ob zagonu
  • [ ] Za vsako dovoljenje sem napisal zavrnitveni skript, brez zrušitev
  • [ ] Občutljive podatke sem shranil šifrirane s Keychain/Keystore
  • [ ] Zmanjšal sem podatke, ki gredo v oblak/AI, in dodal odobritev uporabnikov
  • [ ] Varnostne tehnike sem uporabljal samo v svojem sistemu za obrambne namene