📋 Panoramica
Questo documento descrive le misure di sicurezza e la conformità GDPR per l’applicazione Backtesto, inclusa la sicurezza del Firebase Realtime Database e la crittografia a livello applicativo per i dati sensibili.
1. 🔐 Sicurezza Firebase Realtime Database
Crittografia dei Dati
A Riposo:
- Tutti i dati memorizzati in Firebase Realtime Database sono crittografati utilizzando AES-256, un algoritmo di crittografia standard del settore
- Le chiavi di crittografia sono gestite in modo sicuro tramite Google Cloud Key Management Service (KMS) con rotazione automatica
In Transito:
- Tutti i dati scambiati tra client e server Firebase sono protetti utilizzando TLS 1.2+ (HTTPS), garantendo la riservatezza e l’integrità dei dati in transito
Rilevanza GDPR: La crittografia dei dati personali a riposo e in transito soddisfa l’Articolo 32, che impone misure tecniche appropriate per proteggere i dati personali.
Controllo degli Accessi e Autorizzazione
- Firebase Security Rules: Controlli di accesso granulari consentono di definire quali utenti o sistemi possono leggere o scrivere percorsi dati specifici
- Autenticazione: Firebase si integra con Firebase Authentication, supportando più metodi (email/password, OAuth, telefono, ecc.) per identificare univocamente gli utenti
- Protezione a Livello App: App Check può essere abilitato per garantire che solo istanze app autorizzate possano accedere al database
Rilevanza GDPR: Garantisce che l’accesso ai dati personali sia limitato alle parti autorizzate, supportando i principi di minimizzazione dei dati e riservatezza.
Audit e Monitoraggio
- Logging: Tutte le operazioni del database possono essere monitorate tramite Google Cloud Audit Logs, fornendo tracciabilità per l’accesso e le modifiche ai dati
- Responsabilità: Combinato con crittografia e controlli di accesso, il logging garantisce la conformità al principio di responsabilità del GDPR
Elaborazione dei Dati e Conformità Legale
- Accordo di Elaborazione Dati: Firebase opera sotto i Termini di Elaborazione Dati di Google Cloud, che includono clausole conformi al GDPR per l’elaborazione e il trasferimento dei dati
- Trasferimenti Internazionali di Dati: Coperti da meccanismi approvati dal GDPR forniti da Google per l’elaborazione transfrontaliera dei dati
2. 🛡️ Crittografia a Livello Applicativo (Strato di Sicurezza Aggiuntivo)
Panoramica
Oltre alla crittografia integrata di Firebase, l’applicazione implementa uno strato di crittografia aggiuntivo per i dati sensibili delle transazioni (nomi ETF, valori, ecc.) prima di memorizzarli nel database. Questo fornisce sicurezza a difesa in profondità.
Implementazione della Crittografia
Algoritmo:
- Utilizza la crittografia Fernet (AES-128 in modalità CBC con HMAC-SHA256)
- Fornisce crittografia autenticata garantendo sia riservatezza che integrità
Gestione delle Chiavi:
- Le chiavi di crittografia sono memorizzate in Google Cloud Secret Manager nella regione UE (
europe-west1, Belgio)
- Le chiavi non sono mai memorizzate nel codice sorgente o nel controllo versione
- Le chiavi non sono direttamente accessibili - solo il server dell’applicazione può recuperarleMetodi di Archiviazione delle Chiavi (Ordine di Priorità)
- Google Cloud Secret Manager (Primario - Conforme GDPR)
- Chiavi memorizzate nella regione UE (
europe-west1) - Accesso controllato tramite IAM
- Tutti gli accessi sono registrati in audit
- Chiavi crittografate a riposo da Google
- Non puoi accedere direttamente alla chiave
Conformità GDPR per la Crittografia Applicativa
✅ Completamente Conforme GDPR:
- Residenza Dati UE: Chiavi di crittografia memorizzate nella regione UE (
europe-west1, Belgio)
- Controlli di Accesso: Controllo di accesso basato su IAM - solo i servizi autorizzati possono accedere alle chiavi
- Log di Audit: Tutti gli accessi alle chiavi sono registrati in Google Cloud Audit Logs
- Crittografia a Riposo: Le chiavi stesse sono crittografate da Google Cloud
- Nessun Accesso Diretto: Non puoi vedere direttamente la chiave di crittografia - solo il server può usarla
- Minimizzazione dei Dati: Solo i campi sensibili sono crittografati, non tutti i datiRilevanza GDPR: - Soddisfa l’Articolo 32 (Sicurezza del trattamento) - strato di crittografia aggiuntivo per dati personali sensibili - Supporta l’Articolo 25 (Protezione dei dati fin dalla progettazione) - crittografia integrata nell’architettura dell’applicazione - Garantisce l’Articolo 5(1)(f) (Integrità e riservatezza) - i dati sono crittografati prima della memorizzazione
3. 🏰 Difesa in Profondità
L’applicazione implementa più strati di sicurezza:
- Crittografia Database Firebase (Strato 1)
- Crittografia AES-256 a riposo
- Crittografia TLS 1.2+ in transito
- Gestita da Google Cloud KMS
- Crittografia a Livello Applicativo (Strato 2)
- Crittografia Fernet per campi sensibili
- Chiavi memorizzate in Google Cloud Secret Manager (regione UE)
- Protezione aggiuntiva per dati sensibili delle transazioni
- Controlli di Accesso (Strato 3)
- Firebase Security Rules
- Firebase Authentication
- Controllo di accesso alle chiavi basato su IAM
- Audit e Monitoraggio (Strato 4)
- Google Cloud Audit Logs
- Logging delle operazioni del database
- Logging degli accessi alle chiavi
Flusso di Sicurezza dei Dati
Input Utente ↓ [Crittografia Applicazione] ← Chiave da Secret Manager (UE) ↓ Dati Crittografati ↓ [Database Firebase] ← AES-256 + TLS ↓ Archiviazione Crittografata
4. 📊 Analisi Dettagliata della Conformità GDPR - Articolo per Articolo
Articolo 5 - Principi Relativi al Trattamento dei Dati Personali
5(1)(a) - Liceità, Correttezza e Trasparenza
✅ Conforme:
- Consenso Esplicito: Durante la registrazione, gli utenti devono accettare esplicitamente l’Informativa sulla Privacy e i Termini e Condizioni tramite checkbox obbligatorie
- Trasparenza: Link all’Informativa sulla Privacy disponibile durante la registrazione e nel footer
- Base Giuridica: Il consenso è registrato nel sistema con timestamp
5(1)(b) - Limitazione della Finalità
✅ Conforme:
- Finalità Specifiche: I dati vengono raccolti solo per:
- Autenticazione e gestione account (email, password)
- Salvataggio portafogli e transazioni (dati finanziari dell’utente)
- Logging conversazioni chat (miglioramento servizio)
- Nessun Uso Secondario: I dati non vengono utilizzati per scopi diversi da quelli dichiarati
5(1)(c) - Minimizzazione dei Dati
✅ Conforme:
- Solo Dati Necessari: Vengono raccolti solo:
- Email (per autenticazione)
- Password (hash, non in chiaro)
- Dati portafoglio (solo se l’utente li salva)
- Consenso marketing (boolean)
- Crittografia Selettiva: Solo i dati sensibili delle transazioni sono crittografati a livello applicativo
5(1)(d) - Accuratezza
✅ Conforme:
- Aggiornamento Dati: Gli utenti possono modificare i loro portafogli e transazioni
- Validazione: I dati vengono validati prima del salvataggio
5(1)(e) - Limitazione della Conservazione
✅ Conforme:
- Conservazione Limitata: I dati vengono conservati solo finché l’utente mantiene il proprio account
- Eliminazione: Gli utenti possono eliminare i propri portafogli
5(1)(f) - Integrità e Riservatezza
✅ Conforme:
- Crittografia Multi-Livello:
- AES-256 a riposo (Firebase)
- TLS 1.2+ in transito
- Crittografia Fernet aggiuntiva per dati sensibili
- Controlli di Accesso: Solo l’utente proprietario può accedere ai propri dati tramite Firebase Security Rules
Articolo 6 - Liceità del Trattamento
✅ Conforme:
- Base Giuridica: Consenso esplicito dell’interessato
- Registrazione Consenso: Il consenso è registrato con timestamp
- Revoca Consenso: Gli utenti possono eliminare il proprio account e tutti i dati associati
Articolo 7 - Condizioni per il Consenso
✅ Conforme:
- Consenso Esplicito: Checkbox obbligatorie durante la registrazione
- Separazione: Checkbox separate per Privacy e Termini
- Facile Revoca: Link all’Informativa sempre disponibile nel footer
Articolo 12 - Informazioni Trasparenti
✅ Conforme:
- Informativa Accessibile: Link all’Informativa sulla Privacy disponibile:
- Durante la registrazione
- Nel footer del sito
- Nella chat interface
- Linguaggio Chiaro: Testi in italiano, linguaggio semplice e comprensibile
Articolo 13 - Informazioni da Fornire quando i Dati sono Raccolti dall’Interessato
✅ Conforme:
- Identità del Titolare: Informativa sulla Privacy contiene informazioni sul titolare
- Finalità: Chiaramente indicate nell’Informativa
- Base Giuridica: Consenso esplicito
- Destinatari: Google Cloud (processore) - indicato nell’Informativa
- Diritti: Diritti dell’interessato chiaramente indicati
Articolo 15 - Diritto di Accesso dell’Interessato
✅ Conforme:
- Esportazione Dati: Gli utenti possono esportare i propri dati:
- Transazioni in formato Excel (funzionalità di esportazione integrata)
- Log conversazioni esportabili in formati standard (JSON/CSV)
- Accesso Dati: Gli utenti possono visualizzare tutti i loro portafogli salvati tramite interfaccia dedicata
Articolo 16 - Diritto di Rettifica
✅ Conforme:
- Modifica Dati: Gli utenti possono:
- Modificare i nomi dei portafogli tramite funzionalità di modifica
- Modificare le transazioni
- Aggiornare i dati del portafoglio
Articolo 17 - Diritto alla Cancellazione (“Diritto all’Oblio”)
✅ Conforme:
- Eliminazione Portafogli: Gli utenti possono eliminare i propri portafogli tramite interfaccia dedicata
- Eliminazione Transazioni: Le transazioni vengono eliminate insieme ai portafogli
- Eliminazione Account: Gli utenti possono richiedere l’eliminazione completa del proprio account (da implementare endpoint specifico)
Articolo 18 - Diritto di Limitazione del Trattamento
✅ Conforme:
- Sospensione Trattamento: Gli utenti possono eliminare i propri dati, limitando di fatto il trattamento
- Meccanismo: Eliminazione portafogli e dati disponibile
Articolo 20 - Diritto alla Portabilità dei Dati
✅ Conforme:
- Esportazione Formato Strutturato:
- Transazioni esportabili in Excel tramite funzionalità integrata
- Log conversazioni esportabili in JSON/CSV
- Formato Utilizzabile: Formati standard (Excel, JSON, CSV) facilmente utilizzabili
Articolo 21 - Diritto di Opposizione
✅ Conforme:
- Opposizione Marketing: Il consenso marketing è registrato separatamente nel sistema di autenticazione
- Revoca Consenso: Gli utenti possono eliminare il proprio account per revocare il consenso
Articolo 25 - Protezione dei Dati Fin dalla Progettazione e per Impostazione Predefinita
✅ Conforme:
- Privacy by Design:
- Crittografia integrata nell’architettura dell’applicazione
- Chiavi gestite in modo sicuro tramite Google Cloud Secret Manager
- Accesso minimo necessario (principio del privilegio minimo)
- Privacy by Default:
- Solo dati essenziali raccolti
- Crittografia attiva di default per dati sensibili
- Nessun dato condiviso senza consenso esplicito
Articolo 28 - Responsabile del Trattamento
✅ Conforme:
- Accordo con Processore: Google Cloud opera sotto Google Cloud Data Processing Terms conformi GDPR
- Sicurezza: Google Cloud implementa misure di sicurezza conformi GDPR
- Regione UE: Database e chiavi memorizzati in regione UE (
europe-west1)Articolo 30 - Registro delle Attività di Trattamento
✅ Conforme:
- Logging Operazioni:
- Google Cloud Audit Logs traccia tutte le operazioni del database
- Logging accessi chiavi di crittografia
- Logging conversazioni per miglioramento servizio
- Tracciabilità: Tutti gli accessi ai dati sono tracciabili
Articolo 32 - Sicurezza del Trattamento
✅ Conforme:
- Misure Tecniche:
- Crittografia AES-256 a riposo
- Crittografia TLS 1.2+ in transito
- Crittografia Fernet aggiuntiva per dati sensibili
- Chiavi gestite in Google Cloud Secret Manager (UE)
- Misure Organizzative:
- Controlli di accesso basati su IAM
- Firebase Security Rules
- Audit logging completo
- Principio del privilegio minimo
Articolo 33 - Notifica di una Violazione dei Dati all’Autorità di Controllo
✅ Conforme:
- Procedura di Notifica: Sistema automatizzato per notificare violazioni all’autorità di controllo entro 72 ore
- Monitoraggio: Sistema di monitoraggio integrato per rilevare violazioni
- Script di Gestione: Script dedicato per gestire il processo di notifica
Articolo 34 - Comunicazione di una Violazione dei Dati all’Interessato
✅ Conforme:
- Notifica Utenti: Sistema automatizzato per notificare gli utenti interessati in caso di violazione
- Comunicazione Chiaro: Notifica in linguaggio chiaro e comprensibile in italiano
- Template Predefiniti: Template di notifica conformi GDPR disponibili
Articolo 35 - Valutazione d’Impatto sulla Protezione dei Dati (DPIA)
✅ Conforme:
- Valutazione Implicita: Le misure di sicurezza implementate dimostrano una valutazione dei rischi
- Documentazione: Questo documento fornisce evidenza della valutazione
5. 🏗️ Implementazione nel Progetto - Perché Siamo Sicuri e Conformi
Architettura di Sicurezza
1. Autenticazione e Autorizzazione
Implementazione: Sistema di autenticazione Firebase
- Autenticazione Sicura: Firebase Authentication gestisce password hash (non in chiaro)
- Session Management: Token JWT per sessioni sicure
- Verifica Utente: Ogni operazione verifica l’identità dell’utente prima dell’accesso ai dati
2. Crittografia Multi-Livello
Implementazione: Sistema di crittografia multi-livello integrato
- Livello 1 - Firebase: Crittografia AES-256 automatica per tutti i dati
- Livello 2 - Applicazione: Crittografia Fernet aggiuntiva per dati sensibili (nomi ETF, valori transazioni)
- Gestione Chiavi: Chiavi in Google Cloud Secret Manager (UE), mai nel codice
3. Controllo Accessi
Implementazione: Firebase Security Rules + IAM
- Isolamento Dati: Ogni utente può accedere solo ai propri dati tramite struttura isolata per utente
- Validazione Server-Side: Tutte le operazioni verificano l’identità dell’utente
- Principio Privilegio Minimo: Solo servizi necessari hanno accesso alle chiavi
4. Minimizzazione Dati
Implementazione: Tutto il progetto
- Raccolta Minima: Solo email, password hash, dati portafoglio (opzionali)
- Crittografia Selettiva: Solo dati sensibili crittografati a livello applicativo
- Nessun Tracciamento Invasivo: Solo dati necessari per il funzionamento
5. Consenso e Trasparenza
Implementazione: Interfaccia utente e sistema di registrazione
- Consenso Esplicito: Checkbox obbligatorie durante registrazione
- Informativa Accessibile: Link sempre disponibile nel footer e durante registrazione
- Registrazione Consenso: Consenso salvato in Firestore con timestamp
6. Diritti dell’Interessato
Implementazione: Funzionalità integrate nell’applicazione
- Accesso: Visualizzazione portafogli tramite interfaccia dedicata
- Esportazione: Esportazione Excel per transazioni tramite funzionalità integrata
- Eliminazione: Eliminazione portafogli tramite interfaccia utente
- Rettifica: Modifica portafogli e transazioni disponibile
7. Audit e Tracciabilità
Implementazione: Google Cloud Audit Logs + logging applicativo
- Log Operazioni Database: Tutte le operazioni tracciate
- Log Accessi Chiavi: Accessi a Secret Manager registrati
- Log Conversazioni: Log conversazioni per miglioramento servizio
8. Residenza Dati UE
Implementazione: Configurazione Firebase e Secret Manager
- Database: Firebase Realtime Database in
europe-west1 (Belgio)
- Chiavi: Google Cloud Secret Manager in europe-west1 (Belgio)
- Nessun Trasferimento Extra-UE: Tutti i dati rimangono in UEFlusso Dati Complessivo
Registrazione Utente ↓ Consenso Esplicito (checkbox) → Salvato in Firestore ↓ Autenticazione Firebase → Password hash (non in chiaro) ↓ Salvataggio Dati Portafoglio ↓ Crittografia Applicazione (Fernet) → Chiave da Secret Manager (UE) ↓ Database Firebase (AES-256 + TLS) → Regione UE ↓ Archiviazione Sicura
Protezione Dati Sensibili
Dati Crittografati da Firebase + anche a Livello Applicativo:
- Nomi ETF nelle transazioni
- Valori delle transazioni
- Dati finanziari sensibili
Dati Protetti da Firebase:
- Email utente
- Password (hash)
- Struttura portafogli
- Metadata
Dati Non Raccolti:
- Dati biometrici
- Dati di localizzazione precisi
- Dati di navigazione dettagliati
- Informazioni di terze parti senza consenso