Elaborazione locale
La piattaforma Certifaction è orientata alla privacy. L'elaborazione locale è ciò che rende possibile questa garanzia: il contenuto dei documenti non lascia mai la tua infrastruttura in chiaro. Il Client locale — un componente software Certifaction che viene eseguito nel tuo ambiente — gestisce ogni passaggio che coinvolge il contenuto del documento:
- lettura del documento,
- aggiunta dei campi di firma PDF,
- calcolo dell'hash del documento,
- generazione delle chiavi di crittografia necessarie,
- incorporazione della firma ricevuta nel PDF.
L'API Certifaction riceve solo materiale crittografico: hash, metadati e — quando applicabile — blob crittografati. Non riceve mai il contenuto del documento in chiaro.
Le chiavi di firma PAdES sono detenute dai nostri prestatori qualificati di servizi fiduciari (QTSP) per tutti i livelli di firma (SES, AES e QES); il Client locale non le vede mai. Viceversa, le chiavi di crittografia dei documenti non lasciano mai il Client locale.
Come viene creata una firma
Il documento stesso rimane con il Client locale in ogni passaggio. Solo l'hash raggiunge l'API Certifaction, e solo l'hash raggiunge il QTSP.
Quando il documento crittografato viene caricato
Due situazioni richiedono che una copia crittografata del documento venga caricata su Certifaction:
- Gemello digitale abilitato — una copia crittografata viene memorizzata per poter essere recuperata o verificata in seguito.
- Richiesta di firma con altri firmatari — il documento crittografato deve essere raggiungibile dalle persone che inviti a firmare.
In entrambi i casi il Client locale genera una chiave di crittografia simmetrica a 256 bit univoca per ogni documento o richiesta di firma, crittografa il documento con NaCl Secretbox (XSalsa20 + Poly1305) e carica solo il testo cifrato nell'Archivio Digitale Crittografato di Certifaction. L'archivio contiene il testo cifrato; non riceve mai la chiave.
La chiave di crittografia viene restituita come frammento URL aggiunto all'URL del documento, per esempio:
https://example.com/DE6I239aEqI#zi9B6ioQcoLTCelSwsxrn0fIMPA9u6LthZCtRT7kP9c=Secondo l'RFC 3986 §3.5, i frammenti URL non vengono mai trasmessi nelle richieste HTTP, quindi la chiave rimane lato client anche quando l'URL viene usato per recuperare il documento. Chiunque possieda l'URL completo — compreso il frammento — possiede la chiave e può quindi decifrare il documento.
Condividere gli URL delle richieste di firma
L'URL della richiesta di firma deve raggiungere gli invitati attraverso un canale sicuro. Hai due opzioni:
- Distribuisci l'URL tu stesso. Il Client locale restituisce l'URL completo alla tua applicazione; lo condividi con gli invitati tramite un canale che già controlli (per esempio un portale clienti esistente o un canale di messaggistica autenticato). Certifaction non è coinvolto nella distribuzione.
- Certifaction distribuisce l'URL per te. Il Client locale può, opzionalmente, generare una Key Encryption Key (KEK) e usarla per crittografare il frammento URL. Certifaction invia quindi agli invitati un'email contenente l'URL con il frammento crittografato — l'email da sola non è quindi sufficiente per decifrare il documento. Ti assumi la responsabilità di consegnare la KEK agli invitati attraverso un canale sicuro a tua scelta.
Se firmi un documento solo per te stesso senza Gemello digitale e senza richiesta di firma, nessun contenuto di documento viene caricato.
Esecuzione del Client locale
Certifaction offre diverse implementazioni del Client locale. Due di esse sono rilevanti per gli sviluppatori che integrano Certifaction:Modalità server (API HTTP locale)
Avvia il Client locale come un piccolo server HTTP che espone un'API locale. Le applicazioni di terze parti chiamano l'API locale via HTTP per firmare documenti, con la garanzia che il contenuto dei documenti resti nel tuo ambiente. È una buona scelta per la firma centralizzata all'interno di un flusso di lavoro documentale automatizzato.
Modalità interattiva / shell
Il CLI può essere utilizzato direttamente da applicazioni autonome per firmare e certificare documenti sul file system o tramite input e output standard — nessuna integrazione di libreria richiesta.