GDPR Guida per sviluppatori

Al fine di aiutare gli sviluppatori di applicativi e di siti web a rendere il loro lavoro rispondente ai requisiti del GDPR, la CNIL ha redatto una nuova guida alle buone pratiche sotto licenza aperta, in modo che possa essere arricchita da altri professionisti.

Questa guida è pubblicata con licenza GPLv3 e open license 2.0 (esplicitamente compatibile con CC-BY 4.0 FR). Potete contribuire liberamente alla sua reedazione.

Questa versione italiana è stata gentilmente fornita da collaboratori esterni e rivista dal Garante per la Protezione dei Dati Personali. La versione francese è la versione autentica di questa guida.

La guida contiene indicazioni e buone pratiche, e pertanto fornisce a ogni stakeholder delle chiavi utili per comprendere il GDPR, quale che sia la dimensione della sua organizzazione. La guida può anche stimolare la discussione e lo sviluppo di pratiche all’interno delle organizzazioni e nelle relazioni con i clienti.

Che cosa contiene la guida?

Questa guida è divisa in 16 schede tematiche che coprono la maggior parte delle necessità degli sviluppatori in ciascuno stadio di progetto, dalla preparazione dello sviluppo all’uso di analytics.

Il Regolamento Generale per la Protezione dei Dati Personali (GDPR) specifica che la protezione dei diritti e delle libertà delle persone fisiche richiede “l'adozione di misure tecniche e organizzative adeguate per garantire il rispetto delle disposizioni del presente regolamento” (Considerando 78).

La determinazione di tali misure è necessariamente collegate al contesto delle operazioni di trattamento poste in essere, e il Titolare del trattamento (l’entità pubblica o privata che tratta i dati personali) deve pertanto assicurare la protezione dei dati che è chiamato a trattare.

Le buone pratiche di questa guida, pertanto, non intendono coprire tutte le richieste del Regolamento né intendono essere prescrittive, ma forniscono un primo livello di misure per affrontare i problemi di sicurezza dei dati negli sviluppi IT che riguardano il trattamento di dati personali. A seconda della natura dei trattamenti, in alcuni casi potrà essere necessario implementare misure aggiuntive al fine di rispondere pienamente ai requisiti di legge.

Sommario

  1. Sviluppa in linea con il GDPR

  2. Individua i dati personali

  3. Prepara lo sviluppo

  4. Sviluppa in un ambiente sicuro

  5. Gestisci il codice sorgente

  6. Fai scelte architetturali informate

  7. Metti in sicurezza siti, applicazioni e server

  8. Minimizza la raccolta dati

  9. Gestisci i profili utente

  10. Controlla librerie e SDK

  11. Garantisci la qualità del codice e della documentazione

  12. Testa le tue applicazioni

  13. Informa gli utenti

  14. [Preparati all'esercizio dei diritti degli interessati](#Scheda_n°13_:Preparatiall'esercizio_dei_diritti_degli_interessati)

  15. Definisci un periodo di conservazione dei dati

  16. [Considera la base giuridica durante l’implementazione tecnica](#Scheda_n°15_:Considerala_base_giuridica_durante_l'implementazione_tecnica)

  17. Usa le analytics nei tuoi siti e applicazioni

Come posso contribuire a questa guida?

Questa guida è disponibile in due versioni:

Il contributo si articola in alcuni passi:

Le tue proposte di contributo verranno esaminate da CNIL prima della pubblicazione. La versione web della Guida al GDPR per sviluppatori sarà aggiornata regolarmente.

Uso

Per rilasciare tu stesso una copia di questo repository, puoi usare Pandoc. Questo strumento ti aiuta a convertire le schede in un unico documento docx, odt o HTML.

Puoi trovare le istruzioni su come installare Pandoc qui

pandoc -s --toc --toc-depth=1 -o Guide_GDPR_sviluppatori.docx [0-9][0-9]*.md
pandoc -s --toc --toc-depth=1 -o Guide_GDPR_sviluppatori.odt [0-9][0-9]*.md
pandoc -s --template="templates/mytemplate.html" -H templates/pandoc.css -o index.html README.md [0-9][0-9]*.md

Scheda n°0: Sviluppa rispondendo al GDPR

Sia che tu lavori da solo, che tu sia parte di un gruppo di progetto, che tu gestisca un gruppo di sviluppatori, o che tu sia un fornitore di servizi che sviluppa per conto terzi, è essenziale che tu ti assicuri che i dati degli utenti e tutti i trattamenti di dati personali siano sufficientemente protetti durante tutto il ciclo di vita del progetto.

Questi passi ti aiuteranno a sviluppare applicativi e siti web che siano privacy-friendly:

  1. Sii consapevole dei principi cardine del GDPR. Se lavori in un team, raccomandiamo che tu identifichi una persona responsabile di monitorare la compliance. Se la tua azienda ha un RPD/DPO (Responsabile della Protezione Dati/Data Protection Officer) allora quella persona è una risorsa fondamentale per comprendere e rispondere agli obblighi del GDPR. La nomina di un RPD in alcuni casi potrebbe essere obbligatoria, per esempio se i tuoi programmi o le tue app trattano dati cosiddetti “particolari” (vedi esempi) su larga scala o se effettuano monitoraggi regolari e sistematici su larga scala o se lavori per una pubblica amministrazione.
  2. Mappa e categorizza i dati e i trattamenti nel tuo sistema. Una mappatura accurata dei trattamenti effettuati dal tuo programma o app ti aiuterà a garantire che rispondano ai requisiti di legge. Mantenere un registro delle attività di trattamento (un esempio lo puoi trovare sul sito di CNIL) ti permette di avere una visione d’insieme di questi dati, e di individuare e prioritizzare i rischi associati. Peraltro, dati personali potrebbero essere presenti in posti inattesi come server log, file di cache, file Excel, ecc., o potrebbero essere archiviati in una quantità di luoghi diversi. Nella maggior parte dei casi, la tenuta di un registro di questo tipo è obbligatoria.
  3. Prioritizza le azioni necessarie. Sulla base del registro delle attività di trattamento, identifica prima dello sviluppo le azioni necessarie per rispondere agli obblighi del GPDR e prioritizza i punti di attenzione relativi ai rischi per gli interessati dal trattamento. Questi punti di attenzione riguardano in particolare la necessità e i tipi di dati raccolti e trattati dal tuo software, le basi giuridiche su cui si basano le tue operazioni di trattamento, le informative del tuo software o app, le clausole contrattuali che ti legano ai tuoi fornitori, i termini e le condizioni per esercitare i diritti, e le misure implementate per la sicurezza dei trattamenti.
  4. Gestisci i rischi. Quando determini che un trattamento di dati personali può creare rischi elevati per gli interessati, assicurati di gestire i rischi in modo appropriato al contesto. Un Privacy Impact Assessment (PIA) può aiutarti a gestirli. La CNIL ha sviluppato un metodo, dei modelli di documento e un tool che ti aiuteranno a individuare i rischi nonché un catalogo di buone pratiche che ti assisterà nella implementazione delle misure per rispondere ai rischi che avrai identificato. Inoltre, un Privacy Impact Assessment è obbligatorio per tutti quei trattamenti che possono creare rischi gravi peri diritti e le libertà degli interessati. Lo CNIL propone, sul suo sito, un elenco dei tipi di trattamento per i quali un Privacy Impact Assessment è obbligatorio. Un analogo elenco è disponibile sul sito del Garante.
  5. Attiva dei processi interni per garantire la compliance durante tutte le fasi dello sviluppo, assicura che ci siano procedure interne per garantire che la protezione dei dati sia tenuta in conto in tutti gli aspetti del progetto e a fronte di qualsiasi evento possa verificarsi (ad es. falla di sicurezza, risposta a richieste di rettifica o di accesso, modifica dei dati raccolti, cambio di fornitore, trafugamento di dati, ecc.). I requisiti alla base dell’etichetta di governance (anche se non viene più rilasciata da CNIL dopo l’entrata in vigore del GDPR) possono costituire una utile base per aiutarti a definire le necessarie misure organizzative.
  6. Documenta la compliance dello sviluppo per dimostrare in ogni momento la tua compliance al GDPR: ci deve essere piena consapevolezza delle azioni compiute e dei documenti prodotti a ciascuno stadio dello sviluppo. Questo implica in particolare la periodica revisione e l’aggiornamento della documentazione così da renderla sempre consistente con le caratteristiche del tuo programma.

Il sito di CNIL fornisce numerosi esempi pratici che ti assisteranno, a seconda del tuo settore di attività, nella definizione di trattamenti dati rispondenti alla legge.

Scheda n°1: Individua i dati personali

Comprendere i concetti di “dato personali”, “scopo” e “trattamento” è essenziale per sviluppare trattamenti rispondenti ai requisiti di legge. In particolare, stai attento a non confondere “anonimizzazione” e “pseudonimizzazione”, che sono definiti con molta precisione nel GDPR.

Definizione

Esempi di dati personali

Anonimizzazione di dati personali

Pseudonimizzazione di dati personali

Scheda n°2: Prepara lo sviluppo

I principi della protezione dei dati personali devono essere integrati negli sviluppi IT dalla fase di design in poi, al fine di proteggere la privacy delle persone i cui dati verranno trattati, per dare loro un maggior controllo sui loro dati e per limitare errori, perdite, modifiche non autorizzate o abusi dei loro dati nelle applicazioni.

Scelte metodologiche

Scelte tecnologiche

Architettura e caratteristiche

Strumenti e pratiche

Scheda n°3: Sviluppa in un ambiente sicuro

La sicurezza dei server di produzione, sviluppo e continuous integration, non ché quella delle macchine degli sviluppatori deve essere una priorità, perché centralizzano l’accesso a vaste moli di dati.

Valuta i tuoi rischi e adotta misure di sicurezza appropriate

Metti in sicurezza server e workstation in modo omogeneo e riproducibile

Poni particolare attenzione alla gestione degli accessi e alla tracciabilità delle operazioni

Scheda n°4: Gestisci il codice sorgente

Qualunque sia la dimensione del tuo progetto, ti raccomandiamo fortemente l’uso di uno strumento di gestione del codice sorgente, come ad esempio un version control system, per tenere traccia delle differenti versioni nel corso del tempo.

Definisci un sistema efficiente di controllo delle versioni efficiente, pensando alla sua sicurezza.

Sii consapevole del contenuto del tuo codice sorgente.

Esempi di strumenti

Scheda n°5: Fai scelte architetturali informate

Quando progetti l’architettura della tua applicazione, devi identificare i dati personali che verranno raccolti, e definire un percorso e un ciclo di vita per ciascuno di essi. La scelta degli asset di supporto (storage locale, server servizi in cloud) è un momento cruciale, che deve essere adeguato ai tuoi bisogni ma anche alla tua conoscenza tecnica. Il registro dei trattamenti e la conduzione di un Privacy Impact Assessment ti possono assistere in questa scelta.

Esaminare il ciclo di vita di dati e processi, dalla raccolta alla cancellazione.

Nel caso si usi un hosting esterno

Scheda n°6: Metti in sicurezza siti, applicazioni e server

Ogni sito, applicazione e server deve incorporare regole di base di sicurezza allo stato dell’arte, non solo per le comunicazioni di rete, ma anche per l’autenticazione e la gestione dell’infrastruttura.

Mettere in sicurezza le reti di comunicazione

Mettere in sicurezza le autenticazioni

Mettere in sicurezza le infrastrutture

Scheda n°7: Minimizza la raccolta di dati

Devi raccogliere solo i dati personali rilevanti, adeguati e necessari per la finalità per la quale li raccogli, come definita al momento della raccolta.

Prima della raccolta, pensa ai diversi tipi di dati che devi raccogliere e limita la raccolta a ciò che è strettamente necessario.

Una volta che i dati sono stati raccolti, predisponi meccanismi di cancellazione automatica.

Scheda n°8: Gestisci i profili utente

La gestione dei profili dello staff e degli utenti deve essere valutata a monte dello sviluppo. Si tratta di definire profili di accesso e autorizzazione differenti in modo che ciascun utente possa accedere solo ai dati di cui ha effettiva necessità.

Buone pratiche per la gestione degli utenti

Semplifica la gestione dei profili di sicurezza

Scheda n°09: Controlla librerie e SDK

Usi librerie, SDK o altri componenti software scritti da terze parti? Ecco alcuni suggerimenti su come integrarli mantenendo comunque il controllo del tuo sviluppo.

Fai una scelta informata

Valuta gli elementi individuati

Mantieni aggiornate librerie e SDK

Scheda n°10: Garantisci la qualità del codice e della documentazione

È essenziale adottare il prima possibile buone tecniche di scrittura del codice. La leggibilità del codice riduce nel tempo gli sforzi di mantenimento e di correzione dei bug per te e per i tuoi (magari futuri) collaboratori.

Documenta il codice e l’architettura

Controlla la qualità del codice e della documentazione

Scheda n°11: Testa le applicazioni

Testare i tuoi prodotti ti permette di controllare che funzionino correttamente, che l’esperienza utente sia buona e di trovare e prevenire difetti prima che il codice vada in produzione. I test riducono anche i rischi di violazioni dei dati personali.

Automatizza i test

Integra i test nella tua strategia di business

Fai attenzione ai dati di test!

Scheda n°12: Informa gli utenti

Il principio di trasparenza del GDPR richiede che ogni informazione relativa al trattamento di dati personali sia concisa, trasparente, comprensibile e facilmente accessibile in linguaggio chiaro e semplice.

Chi informare, e quando?

Quali informazioni devo fornire?

In quale forma devo fornire queste informazioni (informativa)?

Cosa devo comunicare quando la sicurezza dei dati viene compromessa?

Risorse utili

Scheda n°13: Preparati all’esercizio dei diritti degli interessati

Le persone di cui tratti i dati mantengono dei diritti su quei dati: diritto di accesso, di rettifica, di opposizione, di cancellazione, di portabilità dei dati e di limitazione del trattamento. Devi fornire loro gli strumenti per esercitare in modo effettivo i loro diritti, e allo stesso tempo includere nei tuoi sistemi informatici tutti gli strumenti informatici necessari perché quei diritti possano essere adeguatamente rispettati.

Definendo in anticipo le modalità con cui potranno contattarti, e i modi con cui risponderai alle loro richieste, sarai in grado di gestire in modo efficace il loro esercizio dei diritti.

Misure minime da attivare

Alcuni esempi di diritti e di una loro possibile implementazione

Possibile implementazione: Prevedi una funzionalità che consenta la visualizzazione di tutti i dati relativi a uno specifico interessato. Se la quantità di dati è eccessiva, offri all’interessato la possibilità di scaricare un archivio contenente tutti i suoi dati.

Possibili implementazioni:

  1. Prevedi una funzionalità che cancelli tutti i dati di una persona.
  2. Prevedi anche una notifica automatica a tutti i responsabili esterni perché a loro volta cancellino i dati relativi a quella persona.
  3. Prevedi anche la possibilità di cancellare i dati anche dai backup, o fornisci una soluzione alternativa che, quando si ripristina un backup, non ripristini i dati cancellati.

In conclusione

Scheda n°14: Definisci un periodo di conservazione dei dati

I dati personali non possono essere conservati per un periodo di tempo indefinito: il periodo di conservazione deve essere determinato sulla base dello scopo del trattamento. Una volta che lo scopo è stato raggiunto, i dati devono essere archiviati (se esiste un obbligo di legge di conservazione), cancellati o anonimizzati (ad esempio, per produrne delle statistiche).

Cicli di conservazione dei dati

Alcuni esempi di tempi di conservazione (validi in Francia)

Scheda n°15: Considera la base giuridica durante l’implementazione tecnica

Il trattamento dei dati personali si deve basare su una delle “basi giuridiche” indicate nell’Articolo 6 del GDPR. La base giuridica di un trattamento è in un certo senso la giustificazione dell’esistenza del trattamento. La scelta di una base giuridica ha una ricaduta diretta sulle condizioni per implementare le operazioni di trattamento e i [diritti degli interessati](#Scheda_n°13_:Preparatiall'esercizio_dei_diritti_degli_interessati). Per questo, individuare le basi giuridiche del trattamento prima di avviare qualsiasi sviluppo ti aiuterà a includere le funzioni necessarie ad assicurare che tutte le operazioni di trattamento rispondano ai requisiti di legge e rispettino i diritti delle persone.

Definizione delle basi giuridiche nel GDPR

Scegli la base giuridica appropriata

Esercizio dei diritti e informazione da fornire a seconda della base giuridica

Diritto di accesso Diritto di rettifica Diritto di cancellazione Diritto di limitazione Diritto alla portabilità dei dati Diritto di obiezione
Consenso Ritiro del consenso
Contratto
Legittimo interesse
Obbligo di legge
Pubblico interesse
Tutela degli interessi vitali

Scheda n°16: Usa le analytics nei tuoi siti e applicazioni

Ottenere il consenso

Per beneficiare dell’esenzione dal consenso

In pratica