Più info sulla sicurezza

📋 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ò recuperarle

Metodi di Archiviazione delle Chiavi (Ordine di Priorità)

  1. 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 dati
Rilevanza 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:
  1. Crittografia Database Firebase (Strato 1)
      • Crittografia AES-256 a riposo
      • Crittografia TLS 1.2+ in transito
      • Gestita da Google Cloud KMS
  1. 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
  1. Controlli di Accesso (Strato 3)
      • Firebase Security Rules
      • Firebase Authentication
      • Controllo di accesso alle chiavi basato su IAM
  1. 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 UE

Flusso 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

Built with Potion.so