fasas-deploy

Sicurezza, tracciabilità e aspetti legali

Protezione dei dati

Misura Dettaglio
Cifratura dei file Documenti, report e certificati di firma sono cifrati prima di essere scritti (Fernet: AES-128-CBC + HMAC-SHA256). Nomi file casuali, senza dati dell’ospite. Rotazione chiavi: aggiungere la nuova chiave in testa a FASAS_ENCRYPTION_KEYS, le vecchie restano per decifrare.
Integrità dei file Ogni versione ha l’impronta SHA-256 del contenuto, verificata a ogni apertura.
Accesso ai file I file non sono mai serviti direttamente: passano da viste autenticate, con permesso e registrazione nell’audit (consultazione / download).
Backup Archivio cifrato AES-256-GCM a blocchi con chiave separata (FASAS_BACKUP_KEY); il formato rileva blocchi alterati, riordinati o troncati. Manifest con SHA-256 di ogni componente, verifica automatica dopo ogni backup.
Database su Supabase Dopo ogni migrate viene attivata la Row Level Security su tutte le tabelle e revocato ogni privilegio ai ruoli anon e authenticated: le API REST di Supabase non possono leggere i dati. Connessione con TLS (DATABASE_SSL_REQUIRE=1).
Trasporto In produzione: HTTPS obbligatorio, HSTS, cookie Secure/HttpOnly, SameSite=Lax, protezione CSRF, X-Frame-Options: DENY, nosniff.
Dispositivi (senza rete) Pacchetto del turno e registrazioni in attesa cifrati nel browser con AES-256-GCM; la chiave si apre solo con la password dell’utente (PBKDF2) e si chiude all’uscita e per inattività. Il service worker non memorizza pagine né dati sanitari. Dettagli in NOTIFICHE_E_SENZA_RETE.md.
Notifiche push ed email Contenuto push cifrato end-to-end (RFC 8291); per default né push né email contengono nomi o dati sanitari, solo il tipo di avviso.

Accessi

Ruoli e permessi

Ogni ruolo ha il proprio cruscotto e un menu costruito sui suoi permessi: chi non ha un permesso non vede la voce, il pulsante o la scheda corrispondente, e se apre l’indirizzo a mano riceve un accesso negato (403). Anche le notifiche arrivano solo a chi ha il permesso di vedere ciò a cui rimandano.

Ruolo Cruscotto Cosa fa (spec. §2)
Operatore Il mio turno registrazioni giornaliere, farmaci somministrati, eventi, parametri, diario, checklist, chiusura del turno
Coordinatore sanitario Coordinamento gestisce le cartelle ospiti, modifica i protocolli sanitari, valida le informazioni sanitarie (SOS, PAI), autorizza le modifiche oltre la finestra, magazzino, visite, report
Medico Area medica consulta la cartella clinica, prescrive e modifica le terapie, valida gli SOS, registra diagnosi e allergie, firma digitalmente i documenti sanitari
Amministratore Pannello di sistema gestisce utenti e permessi, configura il sistema, i protocolli e le notifiche, controlla audit log e log accessi, gestisce i backup – non consulta le cartelle cliniche
Amministrativo Amministrazione ruolo aggiuntivo per l’ufficio amministrativo: presenze per la rendicontazione, rette, prospetti e incassi – vede nome, codice fiscale e giorni di presenza/assenza, non la cartella clinica
Permesso (esempi) Operatore Coordinatore Medico Amministratore Amministrativo
Consultare le cartelle degli ospiti ✔ ✔ ✔ ✖ ✖
Somministrazioni, parametri, diario, registro, checklist, chiusura turno ✔ ✔ ✖ ✖ ✖
Lavorare senza rete sul dispositivo ✔ ✔ ✖ ✖ ✖
Registrare eventi clinici ✔ ✔ ✔ ✖ ✖
Annullare eventi e registrazioni ✖ ✔ ✖ ✖ ✖
Prescrivere / modificare terapie ✖ ✔ (trascrizione) ✔ ✖ ✖
Validare farmaci SOS ✖ ✔ ✔ ✖ ✖
Modificare dati oltre la finestra di 24 h ✖ ✔ ✔ ✖ ✖
Firmare digitalmente ✖ ✖ ✔ ✖ ✖
Creare e approvare il PAI ✖ ✔ ✖ ✖ ✖
Nuovi ospiti, archiviazione, esportazione, importazione dal cartaceo ✖ ✔ ✖ ✖ ✖
Magazzino farmaci, report ✖ ✔ ✖ ✖ ✖
Presenze del mese (correzione e chiusura) ✖ ✔ ✖ ✖ ✔
Rette, prospetti, incassi ✖ ✖ ✖ ✖ ✔
Calendario turni: consultare, chiedere ferie e cambi ✔ ✔ ✖ ✖ solo consultazione
Calendario turni: pianificare, pubblicare, approvare ✖ ✔ ✖ ✖ ✖
Protocolli automatici (regole) ✖ ✔ ✖ ✔ ✖
Utenti, configurazione, impostazioni notifiche, audit, log accessi, backup ✖ ✖ ✖ ✔ ✖

L’amministratore può concedere o negare singoli permessi a singoli utenti (pagina Utenti → Permessi), per esempio dare a un medico l’approvazione del PAI; ogni variazione è nell’audit log. I permessi predefiniti dei ruoli vengono riallineati a ogni migrate (e da manage.py fasas_setup); le eccezioni per singolo utente restano.

Custodia delle chiavi

Tracciabilità legale

Monitoraggio

Controllo di salute /salute/, job sorvegliati e registro errori senza dati sanitari: vedi MONITORAGGIO.md. Dipendenze bloccate con impronte e controllate ogni settimana (Dependabot) e a ogni modifica (pip-audit, bandit nella CI).

Firma digitale

Il sistema produce firme PAdES (PDF firmati), verificabili con qualsiasi software di verifica.

GDPR – adempimenti a carico della struttura

I dati trattati sono dati relativi alla salute (art. 9 GDPR) di persone vulnerabili. Oltre alle misure tecniche:

Bozze di DPIA, registro, informative e nomine in gdpr/.

Segnalare un problema di sicurezza

Non aprire issue pubbliche: contattare direttamente il responsabile del progetto.