DEV Community

Antonio Musarra
Antonio Musarra

Posted on • Originally published at dontesta.it on

Come ottenere una CIE funzionante su Fedora 34

Finalmente il 26 luglio 2021 ho ottenuto la mia CIE (Carta d’Identità Elettronica) rilasciata dal Comune di Marino (RM). Appena arrivato a casa non ho perso un attimo e ho collegato il mio lettore miniLector CIE di Bit4id alla mia Workstation da Smart Worker iniziando a fare i primi test.

In questo articolo vedremo come eseguire il setup del software necessario al corretto funzionamento della CIE su sistema operativo Fedora 34.

Affinché sia possibile utilizzare la CIE, indipendentemente dal fatto che la usiate per accedere ai servizi della Pubblica Amministrazione, è necessario disporre di un lettore di Smart Card compatibile e del software d’interfaccia tra l’hardware e il sistema operativo. Nel mio caso dispongo dei seguenti “pezzi”:

Per quel che concerne il lettore di Smart Card, non sono richieste caratteristiche specifiche, è sufficiente che sia conforme allo standard internazionale PC/SC (Personal Computer/Smart Card) e alla norma ISO 7816-3, e che sia compatibile con i più comuni sistemi operativi come Windows, Mac OS e Linux/Unix. La caratteristica fondamentale da prendere in considerazione è il supporto per il protocollo standard CCID (Chip Card Interface Device). Il lettore in mio possesso è compatibile con lo standard CCID, non sarà quindi necessario installare i driver proprietari del lettore; i driver generici CCID sono in grado di far funzionare correttamente il lettore.

1. Verifica e installazione del software

La prima di verifica da eseguire consiste nell’accertarsi che il lettore di Smart Card sia correttamente visto dal sistema operativo. Fare questo tipo di controllo è abbastanza semplice, basta eseguire da terminale il comando lsusb. Dall’output del comando dovremmo essere in grado d’identificare il nostro lettore di Smart Card. La figura a seguire mostra l’esempio del mio lettore collegato alla mia workstation Fedora 34. Il nome “tecnico” del lettore Smart Card in uso è BIT4I miniLector AIR NFC v3.

Figura 1 - Controllo che il lettore Smart Card sia visibile a livello di Sistema Operativo

Figura 1 – Controllo che il lettore Smart Card sia visibile a livello di Sistema Operativo

Se volessimo ottenere più informazioni riguardo il nostro lettore, potremmo usare il comando lsusb in questa forma: lsusb -v -s 3:6. Lo switch -s del comando, consente di specificare il dispositivo identificato tramite il bus e il device id, in questo caso rispettivamente 3 e 6. La figura a seguire mostra un estratto del comando precedente.

Figura 2 - Dettagli hardware sul lettore Smart Card connesso

Figura 2 – Dettagli hardware sul lettore Smart Card connesso

Una volta sicuri del fatto che il nostro lettore sia visto correttamente dal sistema operativo, allora, sarà possibile procedere con l’installazione del software della CIE. Questo software o middleware, consente di utilizzare la Carta d’Identità Elettronica per l’accesso sicuro in rete ai servizi web erogati dalla Pubblica Amministrazione da un PC mediante lo schema d’identificazione Entra con CIE , i cui dettagli sono riportati sul sito del Ministero dell’Interno.

Il middleware CIE è una libreria software che implementa le interfacce crittografiche standard PKCS#11 e CSP. Esso consente agli applicativi integranti di utilizzare il certificato di autenticazione e la relativa chiave privata memorizzati sul chip della CIE astraendo dalle modalità di comunicazione di basso livello.

L’ultima versione del middleware è la 1.4.1 di cui è possibile scaricare il file RPM pronto per poter essere installato sulla nostra Fedora 34. L’installazione è davvero semplice, basta eseguire il comando: sudo rpm -i cie-middleware-1.4.1.rpm. La figura a seguire mostra i file che il comando precedente installa. Sono evidenziati in particolare il file che implementa le API dello standard PKCS#11 e il file dell’applicazione desktop. L’applicazione desktop consente di gestire la CIE in termini di PIN, PUK, associazioni CIE e funzionalità di Firma Elettronica Avanzata (FEA). La firma elettronica calcolata con la Carta d’Identità Elettronica è a tutti gli effetti una Firma Elettronica Avanzata, disciplinata all’interno del DPCM 22/02/2013, articolo 61.

Figura 3 - Lista dei file installati via RPM del middleware CIE

Figura 3 – Lista dei file installati via RPM del middleware CIE

Una volta installato il middleware CIE, possiamo eseguire un semplice test di lettura della propria CIE utilizzando il comando che fa parte della suite PKCS#11. Appoggiate quindi la CIE sul lettore e lanciate questo comando: pkcs11-tool --module /usr/local/lib/libcie-pkcs11.so -I -L. Quello che il comando restituirà, saranno informazioni circa: il modulo PKCS#11, il lettore utilizzato e il token, che rappresenta la CIE vera e propria. La figura a seguire mostra l’output del comando che riguarda il mio lettore e CIE.

Figura 4 - Estrazione informazioni di dettaglio su lettore Smart Card e CIE via PCKS#11 tool

Figura 4 – Estrazione informazioni di dettaglio su lettore Smart Card e CIE via PCKS#11 tool

Arrivati a questo punto, manca davvero pochissimo per utilizzare la CIE come mezzo di accesso ai servizi della Pubblica Amministrazione. Il prossimo passo da seguire è quello che viene definito abbinamento e può essere portato a termine utilizzando l’applicazione CIE ID. Per l’esecuzione di questo passo di configurazione vi lascio alla lettura del capitolo 5. Primo utilizzo della CIE del manuale software CIE per Linux. Portato a termine il passo di abbinamento, il passo finale è la configurazione del browser per fare in modo che sia in grado di poter accedere alla CIE attraverso il lettore. Nel mio caso ho configurato Firefox e sul sito del Ministero dell’Interno è possibile trovare la guida completa su come configurare il lettore di Smart Card.

2. Come usare la CIE con il progetto CIE/CNS Apache Docker

** L’utente normale”** utilizzerebbe la sua CIE per accedere ai servizi della Pubblica Amministrazione, gente come noi, oltre a questo vorrebbe sperimentare altro.

Tre anni or sono ho pubblicato come Developers Italia il progetto CIE/CNS Apache Docker. L’obiettivo di questo progetto è quello di fornire un template pronto all’uso che realizza un sistema di autenticazione tramite la Smart Card TS-CNS (o CNS) e la CIE (Carta d’Identità Elettronica) basato su Apache HTTP. Si tratta di un progetto docker per la creazione di un container che implementa un sistema di mutua autenticazione o autenticazione bilaterale SSL/TLS. Questo meccanismo di autenticazione richiede anche il certificato digitale da parte del client, certificato che in questo caso risiede all’interno della TS-CNS o della CIE. Questo progetto è nato ancor prima di quello che viene definito Entra con CIE e basato su SAML.

La particolarità del sistema implementato (attraverso questo container) è quella di consentire l’autenticazione tramite:

  1. la TS-CNS (Tessera Sanitaria – Carta Nazionale Servizi), rilasciata dalla regione di appartenenza;
  2. la CIE (Carta d’Identità Elettronica), rilasciata dal comune di residenza.

Il progetto è stato costruito in modo che consenta l’accesso a certificati che sono riconducibili esclusivamente a TS-CNS o CIE, inoltre esegue il controllo di revoca sfruttando il protocollo OCSP. Uno dei possibili utilizzi è come Reverse Proxy di autenticazione (classico scenario SSO); una volta avvenuta con successo l’autenticazione, le richieste posso essere passate all’applicazione di backend con l’informazione di quale sia l’identificativo dell’utente appena autenticato, che nel caso di TS-CNS e CIE è il codice fiscale. La figura a seguire mostra la pagina a cui si accede solo dopo essere stati autenticati, con evidenza i dati dell’utente presenti sulla CIE o TS-CNS (in questo caso CIE). Per maggiori informazioni consiglio la lettura del README di progetto.

Figura 5 - Accesso via CIE con visualizzazione delle informazioni di dettaglio

Figura 5 – Accesso via CIE con visualizzazione delle informazioni di dettaglio

Sul mio canale YouTube potreste approfondire l’argomento seguendo il tutorial Cos’è il progetto CIE/CNS Apache Docker – Developers Italia dove affronto:

  1. Introduzione al progetto
  2. Overview su TS-CNS e CIE
  3. Cos’è la Trust Service Status List
  4. Struttura del Dockerfile
  5. Struttura del progetto
  6. Esecuzione dell’immagine Docker

3. Conclusioni

In questo breve articolo vi ho voluto fare partecipi della mia prima esperienza con la mia CIE su Fedora 34. Confesso che per fare i test dei vari progetti CIE dove sono stato coinvolto, ho usato la CIE di mio nipote 🙂

I campi di applicazione della CIE possono essere innumerevoli; sicuramente il primo a cui mi dedicherò appena possibile sarà quello della realizzazione di un sistema di accesso sfruttando un Raspberry Pi, analogo a quello realizzato usando la TS-CNS.

A seguire vi lascio una serie di risorse a scopo di appronfondimento.

  1. Cos’è il progetto CIE/CNS Apache Docker (http://bit.ly/3aJ5Gbl)
  2. CIE Carta d’Identità Elettronica (https://developers.italia.it/it/cie/)
  3. Carta Nazionale dei Servizi (https://www.agid.gov.it/it/piattaform…)
  4. Raspberry Pi – Un esempio di applicazione della TS-CNS (https://bit.ly/3hkJ8Aj)
  5. Raspberry Pi: Come installare il miniLector CIE su Ubuntu Server 20.04 LTS
  6. Pubblicare il servizio CIE/CNS Apache Docker su Azure Cloud (http://bit.ly/3aPoq8V)
  7. Come accedere al portale VETINFO tramite TS-CNS e Mac OS (http://bit.ly/2VFMKq7)
  8. Carta d’Identità Elettronica: come accedere ai servizi online con la CIE
  9. CIEfacile

L'articolo Come ottenere una CIE funzionante su Fedora 34 sembra essere il primo su Antonio Musarra's Blog.


Top comments (0)