Guadagni:
- Possibilità di richiedere autorizzazioni con giustificazione, contesto e scenario di rifiuto, utilizzando il principio del privilegio minimo
- Possibilità di archiviare dati sensibili crittografati con Portachiavi/Keystore, applicare la minimizzazione dei dati e controllare la tendenza dell'intelligenza artificiale ad aggiungere troppe autorizzazioni
- Capacità di gestire il flusso dei dati dell'utente verso il cloud o il servizio di intelligenza artificiale come decisione sulla privacy, ottenere il consenso dell'utente e utilizzare tecniche di sicurezza solo per scopi difensivi autorizzati
L'applicazione mobile funziona sul dispositivo più privato dell'utente: conosce la sua posizione, i contatti, le foto, i dati sanitari, il microfono. Questo accesso è un grande potere, e potere significa responsabilità. La privacy e la sicurezza non sono una “caratteristica aggiuntiva” nello sviluppo mobile, ma un principio intessuto nell'architettura fin dall'inizio; Questa si chiama privacy by design. Inoltre, questa non è solo una scelta etica, è un obbligo legale (KVKK, GDPR) e di negozio (App Store, Google Play). In questa unità impareremo come richiedere correttamente le autorizzazioni, elaborare i dati in modo sicuro, utilizzare l'intelligenza artificiale come assistente in questo campo e proteggerci dalle sue trappole. C’è un ulteriore problema critico nel contesto dell’intelligenza artificiale: i dati degli utenti che vanno ai modelli di intelligenza artificiale (in particolare il cloud) sono di per sé una decisione sulla privacy.
L'arte di chiedere il permesso: il minimo privilegio
Il principio di base della sicurezza è il privilegio minimo (non chiedere più privilegi di quelli richiesti da un lavoro). La tua app dovrebbe chiedere solo l'autorizzazione di cui ha realmente bisogno, nel momento in cui ne ha bisogno. Se non è disponibile la funzione fotocamera, non verrà richiesta l'autorizzazione per la fotocamera; Se la posizione è richiesta solo quando la mappa è aperta, è sufficiente il permesso "mentre si utilizza", non "sempre". Autorizzazioni eccessive causano un triplice danno: mina la fiducia degli utenti, porta al rifiuto dello store e aumenta il rischio di fuga di dati.
Il tempismo e la spiegazione corretti per chiedere il permesso sono fondamentali. Chiedi all'utente l'autorizzazione nel contesto e con una giustificazione, ad esempio "Per scansionare la ricevuta è necessario l'accesso alla fotocamera". iOS richiede questa descrizione in Info.plist; Una descrizione vuota o fuorviante equivale al rifiuto del negozio.
Tipo di autorizzazione
cattivo approccio
buon approccio
tempistica
Richiedi tutto al momento del lancio
richiesta quando si utilizza la funzione
Ambito
"Sempre posizione"
"posizione durante l'utilizzo"
Descrizione
Vuoto o generico
Giustificazione concreta e specifica
stato di rifiuto
L'app si blocca/si blocca
Gentilmente offre alternative
Suggerimento: la tua app dovrebbe essere in grado di continuare a funzionare anche quando l'autorizzazione viene negata. Se l'utente rifiuta la fotocamera, offri un'opzione di "accesso manuale". L'imposizione di "consentilo o l'app non funzionerà" è sia una brutta esperienza che un problema del negozio. Richiedi sempre lo scenario di rifiuto quando stampi un codice di autorizzazione all'IA.
Consenso e codice privacy con AI: considerazioni
L’intelligenza artificiale genera rapidamente codice di richiesta di autorizzazione, ma presenta due insidie tipiche. Innanzitutto, aggiungendo più autorizzazioni del necessario: posizione, i contatti possono mettere in blocco le autorizzazioni di archiviazione "per ogni evenienza". In secondo luogo, saltando lo scenario di rifiuto: basta scrivere lo stato "consentito" e ignorare il rifiuto. Per ogni permesso generato ti verrà chiesto "è davvero necessario?" e "cosa succede se rifiutato?" Fai le tue domande.
Attenzione: il codice di esempio generato dall'IA potrebbe memorizzare i dati dell'utente senza crittografia o trasmetterli in modo non sicuro. I dati sensibili (password, salute, finanza) devono essere conservati in un luogo di archiviazione sicuro sul dispositivo (Keychain — iOS, Keystore — Android; area di sicurezza crittografata del sistema operativo) e trasmessi in rete tramite una connessione crittografata (HTTPS/TLS). L'intelligenza artificiale non lo fa sempre spontaneamente; Chiedi chiaramente e verifica.
Minimizzazione dei dati e invio dei dati all'intelligenza artificiale
I dati che non raccogli non possono trapelare. La minimizzazione dei dati (raccogliendo solo i dati effettivamente necessari) è lo strumento più potente per la privacy. Nelle funzionalità AI, questo principio è doppiamente importante: quando si inviano dati a un LLM cloud o a un servizio AI esterno, tali dati sono fuori dal tuo controllo. Prima di inviare la nota sanitaria, il contenuto della conversazione o le informazioni personali di un utente al cloud, porre tre domande: (1) Questi dati sono davvero necessari? (2) Può essere elaborato sul dispositivo? (3) Se deve essere inviato, l'utente lo conosce e lo approva? È un requisito sia legale che etico informare chiaramente l’utente che i suoi dati saranno destinati a un servizio di intelligenza artificiale.
Uso sicuro e focus sulla difesa
Un avvertimento dal punto di vista IT e della sicurezza: le tecniche apprese in questo modulo sono solo per uso autorizzato e difensivo. È legittimo testare la sicurezza della propria applicazione, proteggere i dati dell'utente e chiudere le vulnerabilità. Il reverse engineering dell'applicazione di qualcun altro senza autorizzazione, la raccolta dei dati dell'utente senza consenso o l'utilizzo dell'intelligenza artificiale per creare malware sono illegali e non etici. Quando chiedi aiuto all’IA per la sicurezza, rimani sempre nell’ambito della difesa del tuo sistema.
tre mini custodie
Caso 1 – Rifiuto del congedo in eccesso. Un'applicazione di nota richiedeva autorizzazioni per fotocamera, microfono, posizione e contatto all'avvio con il codice prodotto da AI. Google Play ha rifiutato il rilascio, citando "autorizzazioni irrilevanti per la funzione". Il rilascio è stato approvato quando il team ha rilasciato solo l'autorizzazione di archiviazione effettivamente utilizzata. Lezione: ogni congedo extra è un rischio.
Caso 2 — Archiviazione senza password. Un'app sanitaria ha memorizzato le misurazioni degli utenti in un file di testo semplice come nell'esempio AI. Un controllo di sicurezza ha rilevato che chiunque ottenesse il dispositivo poteva leggere tutti i dati sanitari. Dati spostati nell'archivio crittografato con Keystore/Keychain. Lezione: i dati sensibili rimangono sempre crittografati.
Caso 3: Push to cloud senza preavviso. Un'app inviava le note giornaliere degli utenti a un LLM cloud per riepilogarle, ma non lo comunicava all'utente. Quando la notizia è stata riportata dalla stampa, si è verificata una perdita di fiducia e di controllo legale. Il team ha aggiunto una notifica e una conferma chiare, nonché un'opzione sul dispositivo. Lezione: l'utente deve sapere e confermare che i dati stanno andando all'intelligenza artificiale.
Prompt debole / Prompt forte
Prompt debole: "Richiedi autorizzazione alla posizione".
Prompt potente: "Richiedi l'autorizzazione alla posizione su iOS/Swift con il principio del privilegio minimo. - Solo autorizzazione 'quando in uso', non 'sempre' - Descrizione Info.plist: 'Per mostrare i negozi nelle vicinanze' - Se l'autorizzazione viene negata: offri l'opzione per selezionare manualmente la città, arresto anomalo - Se l'autorizzazione è stata negata in precedenza, reindirizza alle impostazioni Non aggiungere più autorizzazioni del necessario. Scrivi anche il flusso di rifiuto."
Modelli copiabili
Modello per la richiesta dell'autorizzazione: "Richiedi l'autorizzazione [tipo autorizzazione] per [piattaforma].- Ambito minimo (quando si utilizza/secondo necessità)- Nel contesto, con spiegazione ragionata- Alternativa gentile in caso di rifiuto, mai arresto anomalo- Fornisci anche la voce Info.plist/Manifesti Non aggiungere autorizzazioni aggiuntive; giustifica ogni autorizzazione."
Modello di controllo delle autorizzazioni: "Controlla le autorizzazioni richieste dalla mia app: [elenco autorizzazioni + proprietà]. Per ogni autorizzazione: è davvero necessaria? Sarebbe sufficiente un ambito più ristretto? Porterebbe al rifiuto dello store? Contrassegnamento non necessario."
Modello di archiviazione sicura dei dati: "Archivia in modo sicuro i dati sensibili ([tipo]) per [piattaforma]:- Crittografati con portachiavi/keystore- Non conservare in memoria per periodi inutilmente lunghi- Non divulgarli nei registri e nei backup Fornire codice e passaggi di verifica."
Modello per l'invio di dati all'IA: "Sto valutando l'invio dei seguenti dati a un servizio AI cloud: [dati]. Valuta: è davvero necessario? Possono essere elaborati sul dispositivo? Se inviati, quali campi dovrebbero essere mascherati? Come dovrebbe essere ottenuto il consenso dell'utente? Consigliare la progettazione più sicura in termini di privacy."
Errori comuni
- Chiedere più permessi del necessario. Triplo pericolo per la fiducia, l'approvazione del negozio e la sicurezza.
- Richiesta di autorizzazioni in blocco all'avvio. Una richiesta di autorizzazione senza contesto viene respinta; richiedi immediatamente la funzionalità.
- Non scrivere lo script di rifiuto. L'arresto anomalo dell'app quando l'autorizzazione viene negata è sia negativo che rifiutato.
- Memorizzazione di dati sensibili senza password. Salute, finanza e password devono essere conservati in un luogo sicuro.
- Invio di dati al cloud/AI senza informare l'utente. Violazione legale ed etica; Sono necessarie notifica e approvazione.
- Utilizzo non autorizzato di tecniche di sicurezza. È legittimo solo per scopi difensivi sul proprio sistema.
In sintesi
La privacy e la sicurezza sono progettate fin dall'inizio, non aggiunte in seguito. Il principio di base è il privilegio minimo: chiedere solo il permesso necessario, quando necessario, con giustificazione, e offrire un’alternativa cortese in caso di rifiuto. I dati sensibili vengono archiviati in un archivio crittografato e trasmessi tramite connessione crittografata. La minimizzazione dei dati è la protezione più forte: i dati che non raccogli non possono diffondersi. L’invio di dati all’intelligenza artificiale, in particolare al cloud, è di per sé una decisione sulla privacy; Se ne mette in discussione la necessità, se possibile, si preferisce sul dispositivo, l'utente viene informato e si ottiene la sua approvazione. Ogni codice prodotto viene controllato rispetto alla tendenza dell'intelligenza artificiale ad aggiungere autorizzazioni eccessive e ad archiviarlo in modo non sicuro. Le tecniche di sicurezza vengono utilizzate solo per scopi autorizzati e difensivi.
Compito dell'applicazione
Crea un elenco delle autorizzazioni richieste da un'applicazione (il tuo progetto o immaginario) e chiedi all'intelligenza artificiale di verificare quali sono non necessarie o eccessive con il "modello di controllo delle autorizzazioni". Perfeziona o rimuovi almeno un'autorizzazione e scrivi lo scenario di rifiuto per quella funzionalità. Inoltre, se stai inviando i dati dell'utente al cloud, determina la progettazione più sicura con il "Modello di decisione per l'invio dei dati all'intelligenza artificiale" e scrivi il testo di approvazione dell'utente.
lista di controllo
- [ ] Ho richiesto ogni permesso con giustificazione, con il principio del minimo privilegio.
- [ ] Ho chiesto le autorizzazioni nel contesto, al momento della funzionalità, non in blocco al momento del lancio
- [] Ho scritto uno script di rifiuto per ogni autorizzazione, senza arresti anomali
- [ ] Ho archiviato dati sensibili crittografati con Portachiavi/Keystore
- [ ] Ho ridotto al minimo i dati destinati al cloud/AI e ho aggiunto l'approvazione dell'utente
- [ ] Ho utilizzato tecniche di sicurezza solo sul mio sistema per scopi difensivi