Dati IPD - Catena di memorizzazione e storaggio¶
Panoramica¶
La pagina descrive la catena di persistenza dei dati IPD (Irrigation Project Designer) e la classificazione dei dati trattati dal sistema, sia nella componente locale sia in quella cloud.
I dati transitano attraverso tre livelli:
| Livello | Tecnologia | Localizzazione |
|---|---|---|
| Locale | SQLite crittografato | Macchina desktop utente |
| Trasporto | API REST su HTTPS con JWT | Canale cifrato end-to-end |
| Cloud | PostgreSQL (RDS portalcfg) |
AWS |
Catena di memorizzazione/storaggio¶
1. Livello locale - SQLite crittografato¶
I dati IPD vengono generati e memorizzati localmente su un database SQLite.
- Libreria di crittografia: SQLite3 Multiple Ciphers
- Algoritmo: ChaCha20-Poly1305 (hardcoded nel codice applicativo)
- Chiave di cifratura: derivata dall'identificativo macchina dell'OS tramite node-machine-id e da un algoritmo di mascheramento interno all'applicativo.
La chiave non e' memorizzata in alcun punto del sistema: viene ricalcolata a runtime ad ogni accesso al DB.
Conseguenza operativa: se il file SQLite viene prelevato e spostato su un'altra macchina, non e' possibile aprirlo con la stessa libreria/applicativo perche' cambia la base della chiave (identificativo OS diverso).
Recupero chiave per debugging¶
Per finalita' di debugging e' possibile:
- Richiedere alla singola macchina desktop la base di chiave legata all'OS.
- Prelevare tale base e trattarla con l'algoritmo di mascheramento su altra macchina.
- Ottenere cosi' la chiave di decrittazione del DB.
2. Livello di trasporto - Sincronizzazione verso cloud¶
I dati presenti su SQLite sono sincronizzati in modalita' bidirezionale verso PostgreSQL cloud (portalcfg su RDS).
Il trasporto avviene tramite:
| Componente | Descrizione |
|---|---|
| Autenticazione | Token JWT |
| Protocollo | HTTPS |
| Endpoint | API che intermedia verso il DB |
| Canale API ↔ DB | SSL con crittografia SHA256 |
| Certificati | Server API e server DB (certificato AWS) |
3. Livello cloud - PostgreSQL RDS¶
Il database RDS portalcfg e' crittografato (gestione chiavi tramite KMS AWS; da verificare la recuperabilita' delle chiavi).
Backup:
| Tipo backup | Caratteristiche |
|---|---|
| Backup RDS standard | Crittografati (derivano dalla base dati crittografata) |
| Dump in chiaro | Esportato in chiaro, inviato su bucket S3 crittografato, poi eliminato dalla macchina che ha eseguito il dump |
La macchina che esegue il dump dispone delle chiavi di accesso al bucket S3 di destinazione.
Tipi dato inseriti¶
La classificazione segue le categorie GDPR applicate al sistema IPD.
Personali NON sensibili¶
| Ambito | Disponibilita' | Dati trattati |
|---|---|---|
| Dati cliente | Locale e online (inserimento possibile anche in locale) | Nome, cognome, e-mail, indirizzo, ragione sociale, P.IVA / codice fiscale, condizioni di pagamento |
| Utenza | Solo online | Ragione sociale, e-mail, P.IVA / codice fiscale, telefono |
Personali Sensibili¶
Nessun dato di questa categoria viene trattato dal sistema IPD.
Personali Giudiziari¶
Nessun dato di questa categoria viene trattato dal sistema IPD.
Non sensibili¶
| Ambito | Disponibilita' | Dati trattati |
|---|---|---|
| Know how Ocmis | Locale e online | Regole di configurazione a workflow (articoli disponibili in funzione di valori di riferimento) |
| Dati progetto | Locale e online | Codice cliente, mappa con coordinate geografiche, importo progetto, stato accettazione |
| Listini | Locale e online | Listini commerciali |
| Scontistica utente | Locale e online | Scontistica applicata all'utente |
Implicazioni GDPR¶
Poiche' i dati personali trattati rientrano esclusivamente nella categoria NON sensibili (anagrafici cliente e utenza), il sistema IPD non gestisce dati che richiedano i trattamenti rafforzati previsti per le categorie particolari (art. 9 GDPR) o per i dati giudiziari (art. 10 GDPR).
I presidi di sicurezza applicati (cifratura a riposo locale, cifratura in transito, cifratura a riposo su RDS, cifratura dei backup S3) costituiscono comunque le misure tecniche a tutela dei dati personali trattati.