FASAS Digitale firma i documenti sanitari in PDF (PAI, prescrizioni, relazioni, autorizzazioni alla contenzione) nel formato PAdES: la firma è dentro il PDF e si verifica con qualunque software di verifica (Adobe Reader, DiKe, Firma OK!, il validatore europeo DSS). Ogni firma crea una nuova versione del documento: l’originale resta archiviato, e la firma è registrata nell’audit log.
| Strumento | Valore legale | Quando usarlo |
|---|---|---|
| Firma remota qualificata (consigliata) | Firma elettronica qualificata (FEQ): equivale alla firma autografa (art. 25 Reg. UE 910/2014 eIDAS, art. 24 CAD) | Il medico ha un contratto di firma remota con un prestatore qualificato (QTSP) e firma con PIN + OTP dall’app o via SMS |
| Firma con CIE | Firma elettronica avanzata (FEA), mai qualificata | Il medico o il coordinatore firma con la propria CIE su un computer con lettore NFC e FASAS Signer – guida in FIRMA_CIE.md |
| Certificato personale in file (.p12) | Firma elettronica non qualificata: una chiave in un file non è in un dispositivo qualificato, anche se il certificato è di un prestatore | Prove, uso interno |
| Approvazioni interne (SOS, chiusura turno, PAI) | Non sono firme elettroniche avanzate né qualificate: tracciabilità nell’audit | Sempre attive |
Il FASAS registra per ogni firma il valore giuridico (legal_level): «qualificata» solo per la firma remota
con certificato che dichiara QcCompliance e QcSSCD e catena verificata con le CA configurate dall’amministratore;
altrimenti «non qualificata». Per i documenti sanitari che richiedono la firma del medico serve in pratica la
firma remota qualificata; dove basta una firma elettronica avanzata si può usare la CIE.
FASAS usa le API CSC (Cloud Signature Consortium, versione 1.0.4): lo standard europeo per la firma remota, offerto da molti prestatori qualificati accanto alle loro API proprietarie. Il flusso:
Password del servizio, PIN e OTP non vengono mai salvati. Dopo l’invio dell’SMS la sessione con il prestatore resta aperta per 5 minuti, cifrata, solo per completare quella firma. Se il prestatore lo richiede (credenziali «SCAL 2»), l’autorizzazione vale solo per le impronte dei documenti da firmare.
Chiedete al prestatore qualificato (es. InfoCert, Namirial, Intesi Group, Aruba: verificate l’offerta attuale):
.env del server# Servizio CSC del prestatore
FASAS_CSC_SERVICE_URL=https://firma.prestatore.example # la parte prima di /csc/v1/...
FASAS_CSC_PROVIDER_NAME=Nome del prestatore # mostrato ai medici
FASAS_CSC_AUTH=basic # basic | oauth2 | token
# Solo con FASAS_CSC_AUTH=oauth2 (credenziali della struttura):
FASAS_CSC_OAUTH_TOKEN_URL=https://firma.prestatore.example/oauth2/token
FASAS_CSC_CLIENT_ID=...
FASAS_CSC_CLIENT_SECRET=...
# Marca temporale e livello della firma
FASAS_SIGNATURE_TSA_URL=https://tsa.prestatore.example/tsa
FASAS_SIGNATURE_TSA_USER=...
FASAS_SIGNATURE_TSA_PASSWORD=...
FASAS_SIGNATURE_LEVEL=B-T # B-B, B-T, B-LT, B-LTA
FASAS_SIGNATURE_TRUST_ROOTS=/opt/fasas/qtsp-ca.pem # CA del prestatore (per B-LT e per la verifica)
Livelli PAdES:
| Livello | Contenuto | Note |
|---|---|---|
| B-B | firma | la data è quella dichiarata dal server |
| B-T | firma + marca temporale | consigliato: data certa opponibile a terzi |
| B-LT | + certificati e stato di revoca incorporati | verificabile anche dopo la scadenza del certificato |
| B-LTA | + marca temporale d’archivio | per la conservazione di lungo periodo |
Riavviate l’applicazione e controllate:
python manage.py fasas_firma_verifica
python manage.py fasas_firma_verifica --utente <utente del medico presso il prestatore>
Il comando mostra livello, marca temporale, raggiungibilità del servizio e, con --utente, le credenziali
di firma trovate e il tipo di sblocco (PIN, OTP via app o SMS).
Il server deve poter raggiungere in HTTPS il servizio del prestatore (il proxy di sistema HTTPS_PROXY, se c’è,
viene usato in automatico).
In alternativa si può caricare un certificato .p12/.pfx: viene cifrato sul server e la passphrase va digitata
a ogni firma.
FASAS_SIGNATURE_TRUST_ROOTS, la catena di fiducia.| Messaggio | Cosa fare |
|---|---|
| «Credenziali di accesso al servizio di firma non corrette» | utente o password del prestatore errati |
| «PIN non corretto» / «OTP non corretto o scaduto» | ripetere; dopo vari tentativi errati il prestatore può bloccare la firma |
| «richiede l’autorizzazione via browser (oauth2code)» | il prestatore usa un flusso non ancora supportato: chiedere l’abilitazione di PIN/OTP via API |
| «Il livello PAdES-B-T richiede una marca temporale» | configurare FASAS_SIGNATURE_TSA_URL o impostare FASAS_SIGNATURE_LEVEL=B-B |
| «Servizio di firma non raggiungibile» | rete o firewall del server; provare fasas_firma_verifica |