Salta ai contenuti
Progetto in sviluppo. Non è garantito che funzioni, e le cose possono cambiare da una versione all'altra. La 1.0.0 non è ancora uscita: tieni d'occhio le release.

Primi passi

cie fa le stesse firme di Firma CIE senza finestre, e in piu’ legge i dati della carta, certifica chiavi OpenPGP e si lascia infilare in uno script.

Se non lo hai ancora installato, vedi Installare.

Terminal window
cie info

Legge il tipo di carta e i file che la CIE espone in chiaro, fra cui l’ ID_Servizi: le dodici cifre stampate sulla carta, quelle che identificano proprio quella. Nessun PIN, nessun tentativo consumato.

è il comando da provare per primo: se risponde, lettore e carta si parlano.

Terminal window
cie pcsc-test # diagnostica della comunicazione col lettore
cie -vv info # ogni comando scambiato col chip, in andata e ritorno

-v alza il dettaglio a scatti: -v informativo, -vv ogni comando, -vvv tutto. Quando qualcosa non torna, -vv è il primo posto dove guardare.

Terminal window
cie auth

Apre il canale cifrato verso la carta, verifica il PIN e legge il certificato, che è quello che contiene i tuoi dati: nome, cognome, codice fiscale. è il percorso che ogni firma ripete.

Il PIN viene dal portachiavi se quella carta è stata ricordata, altrimenti te lo chiede senza mostrarlo a schermo. Vedi Il PIN.

Per tenerti una copia del certificato:

Terminal window
cie auth --dump-cert certificato.cer
Terminal window
cie sign-pdf documento.pdf # PAdES: firma dentro il PDF -> documento-firmato.pdf
cie sign-p7m contratto.odt # CAdES: documento e firma insieme -> contratto.odt.p7m
cie sign file.txt # firma separata -> file.txt.sig + file.txt.cer

Il primo mette anche un riquadro visibile in basso a destra, con nome e data presi dal certificato. Da riga di comando la posizione è fissa: per trascinarlo dove vuoi serve Firma CIE.

Opzioni e default stanno in Tutti i comandi.

Terminal window
pdfsig documento-firmato.pdf
Terminal window
openssl cms -verify -in contratto.odt.p7m -inform DER -noverify

-noverify salta il controllo della catena di certificati, che richiederebbe le CA del Ministero; la firma sul contenuto viene comunque verificata.

Per la firma separata servono il .sig e il .cer che escono insieme:

Terminal window
openssl x509 -inform DER -in file.txt.cer -pubkey -noout > pub.pem
openssl dgst -sha256 -verify pub.pem -signature file.txt.sig file.txt

cie sign in realtà ha già fatto questo controllo per conto suo prima di scrivere il file: se il comando è andato a buon fine, la firma è già stata verificata.

Situazione Comando
Un PDF che deve restare leggibile e mostrare la firma cie sign-pdf
Un file qualunque da mandare a un ufficio pubblico cie sign-p7m
Devi solo dimostrare che quei byte sono passati dalla carta cie sign

La marca temporale (il livello B-T) richiede di chiamare un servizio esterno, e il percorso di firma non parla con nessuno all’infuori della carta: nel programma non c’è nemmeno un client HTTP. Senza marca temporale, la validità della firma nel tempo dipende da quella del certificato della carta.