====== Tessera Sanitaria CNS con Debian GNU/Linux, Firefox e Chromium ======
{{.:smart_card:cns-tessera-sanitaria-smartcard.jpg?400 |La CNS nel lettore SmartCard}}
Come utilizzare la smartcard **Tessera Sanitaria CNS** con **Debian GNU/Linux** per accedere ai siti che richiedono autenticazione, ad esempio **[[https://www.agenziaentrate.gov.it/|Agenzia delle Entrate]]** e **[[https://www.inps.it/|INPS]]**. Gli appunti che seguono sono stati presi su una **Debian 10 Buster** utilizzando i due browser **Firefox 68** e **Chromium 78**.
Abbiamo utilizzato il lettore lettore **Smart Card Omnikey 1021**. In un [[smart_card_reader|post di qualche tempo fa]] abbiamo descritto una installazione con l'utilizzo di **software proprietario** precompilato e **non libero**, in questa pagina invece sono stati utilizzati solo pacchetti Debian ufficiali. Si faccia riferimento alla vecchia pagina per le operazioni di base come la verifica del riconoscimento hardware, test da riga di comando, ecc.
===== Installazione pacchetti Debian =====
apt-get install pcscd libpcsclite1 pcsc-tools libccid libnss3-tools opensc-pkcs11
===== Chromium =====
La versione debianizzata di **Chrome**, ossia **Chromium**, non ha un pannello specifico per la gestione dei device PKCS#11, si deve agire da riga di comando aggiungendo un **modulo PKCS#11** al **security module database**.
Chiudere eventuali istanze di Chromium e Firefox in esecuzione, a nome dell'utente che utilizzerà il browser, si esegue:
modutil -dbdir sql:.pki/nssdb/ \
-add "PKCS#11" \
-libfile /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so
viene visualizzato l'avviso che ogni browser deve essere chiuso prima di procedere:
WARNING: Performing this operation while the browser is running could cause
corruption of your security databases. If the browser is currently running,
you should exit browser before continuing this operation. Type
'q ' to abort, or to continue:
Nella directory **$HOME/.pki/nssdb/** vengono creati i file **cert9.db**, **key4.db** e **pkcs11.txt**.
Per verificare quali moduli sono stati configurati si esegue:
modutil -dbdir sql:.pki/nssdb/ -list
Quando si farà accesso ad una pagina internet che richiede l'autenticazione, verrà prima presentato un **dialog box** per l'inserimento del **PIN che sblocca la carta** e poi un **dialog box** che chiede conferma del **certificato da utilizzare**.
===== Firefox =====
**Firefox** non utilizza le impostazioni della directory **$HOME/.pki/**. Con Firefox si deve accedere al menu **Preferences** => Privacy & Security => Certificates => **Security Devices...**. Si fa click sul pulsante **Load**, si fornisce un nome al device e si indica il percorso della libreria:
^ Module Name | CNS Tessera Sanitaria |
^ Module filename | /usr/lib/x86_64-linux-gnu/pkcs11/opensc-pkcs11.so |
{{.:smart_card:cns-load-device-driver.png?300|}}
Al termine dell'operazione il nuovo device compare nell'elenco.
{{.:smart_card:cns-device-manager.png?480|}}
È necessario quindi riavviare Firefox e accedere alla pagina che richiede l'autenticazione. Verrà richiesto il **PIN per sbloccare** la carta e quindi **quale certificato utilizzare**.
===== Test di funzionamento =====
Pe verificare il corretto funzionamento è possibile seguire questa procedura:
* Chiudere il browser.
* Collegare il lettore di smartcard alla porta USB.
* Avviare il browser e andare alla pagina del **[[https://www.fascicolo-sanitario.it/|Fascicolo Sanitario]]**.
* Fare click su **Accedi con smartcard**.
Dovrebbe comparire una dialog box che **chiede il PIN** della tessera.
===== Riferimenti Web =====
* **[[http://guide.debianizzati.org/index.php/Carta_Nazionale/Regionale_dei_Servizi|Carta Nazionale/Regionale dei Servizi]]** giuida di Debianizzati.org.