Differenze tra le versioni di "Carta Nazionale dei Servizi e Firma Digitale"

Da GolemWiki.
Jump to navigation Jump to search
(procedura TS per ArchLinux suggerita da ketama79)
 
(42 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
Questa pagina è un maldestro tentativo di fare chiarezza sul "mondo" delle '''smartcard''' con microchip crittografico, delle funzioni che tramite esse vengono veicolate e del loro utilizzo con Linux.
+
Questa pagina ha lo scopo di fare chiarezza sul "mondo" delle '''smartcard''' con microchip crittografico, delle funzioni che tramite esse vengono veicolate e del loro utilizzo con Linux.
  
 +
= CNS =
  
=CNS-FD=
+
Una smartcard si definisce [http://www.digitpa.gov.it/carta-nazionale-dei-servizi «Carta Nazionale dei Servizi»] quando ha a bordo del suo microchip un certificato utile per l'autenticazione online, strutturato secondo quanto richiesto [http://www.digitpa.gov.it/node/689 dalla legge italiana].
  
La funzionalità più diffusa è quella di [http://www.digitpa.gov.it/carta-nazionale-dei-servizi Carta Nazionale dei Servizi - '''CNS''']. Le tessere sanitarie '''TS''' di molte Regioni e le carte regionali dei servizi sono comunque carte nazionali dei servizi CNS.
+
Anche la '''CIE''' «Carta d'Identità Elettronica», la «tessera sanitaria regionale» '''TS''' e le carte regionali dei servizi '''CRS''' sono a tutti gli effetti CNS.
  
Una seconda funzionalità molto importante è quella di [http://www.digitpa.gov.it/firme-elettroniche-certificatori Firma Digitale - '''FD'''].
+
Sono strumenti di riconoscimento online d'identità e possono essere utilizzate anche per [http://www.digitpa.gov.it/firme-elettroniche-certificatori Firma Digitale] '''FD'''.
  
La CNS è uno strumento di autenticazione, di riconoscimento online ('''identità'''). La FD è uno strumento di approvazione, di sottoscrizione ('''volontà''').
+
La smartcard è quindi l'oggetto fisico. Può contenere '''soltanto''' la funzionalità CNS, '''soltanto''' la funzionalità FD o '''entrambe''', oppure '''nessuna''' (come nel caso delle tessere sanitarie con microchip appena giunte al cittadino e non ancora "attivate").
  
La smartcard è l'oggetto fisico. Può contenere o '''soltanto''' la funzionalità CNS, o '''soltanto''' la funzionalità FD, o '''entrambe''', oppure '''nessuna''' (come nel caso delle tessere sanitarie con microchip appena giunte al cittadino e non ancora "attivate").
+
Per ulteriori approfondimenti è possibile consultare [https://golem.linux.it/cloud/index.php/s/fCLGQzyRBpKfN45 Strumenti di Cittadinanza digitale] a cura di Giulia del GOLEM.
 
 
Tessera Sanitaria TS, oppure Carta Regionale dei Servizi CRS, Carta Provinciale o Comunale o qualcosa di qualche pubblica amministrazione, per quanto riguarda la nostra problematica tecnica, sono tutte Carta Nazionale dei Servizi CNS, perché devono adattarsi a questo standard.
 
  
 
=Produttori di smartcard=
 
=Produttori di smartcard=
Riga 18: Riga 17:
 
I produttori di smartcard (o meglio di microchip) dovrebbero rispettare lo standard [http://www.rsa.com/rsalabs/node.asp?id=2141 pkcs#15], ma non sempre lo fanno. Per questo abbiamo bisogno di driver specifici (spesso binari e non-Liberi).
 
I produttori di smartcard (o meglio di microchip) dovrebbero rispettare lo standard [http://www.rsa.com/rsalabs/node.asp?id=2141 pkcs#15], ma non sempre lo fanno. Per questo abbiamo bisogno di driver specifici (spesso binari e non-Liberi).
  
==Incard==
+
==Athena==
  
Molte smartcard utilizzate in Italia (Camere di Commercio, sia le vecchie fornite da Infocert, sia molte delle nuove fornite da ArubaPEC) sono del produttore [http://www.incard.it/ Incard]. I driver di queste smartcard sembrano essere sviluppati da Bit4id e sono rilasciati gratuitamente, ma non-Liberi, in formato binario da [http://www.pec.it/Download.aspx ArubaPEC].  
+
Smartcard fra le più diffuse (CRS Lombardia, TS Toscana, TS Sardegna, ArubaPEC), sono del produttore [http://www.athena-scs.com/ Athena] è possibile scaricare i driver binari dal sito [http://www.pec.it/Download.aspx Aruba].
  
===Pacchetto Debian/Ubuntu/Mint per smartcard Incard===
+
==Incard==
 
 
[http://www.pec.it/Download.aspx ArubaPEC] distribuisce il [http://www.pec.it/Download/Software/FirmaDigitale/MU_INCARD_LINUX.zip pacchetto] Debian/Ubuntu/Mint funzionante sia per le smartcard con microchip Incard sia per quelle con microchip del produttore Oberthur.
 
  
Nota tecnica: il driver per incard si chiamava libbit4'''i'''pki.so; quello per oberthur si chiamava libbit4'''o'''pki.so. Adesso quello valido per entrambe le carte si chiama libbit4'''x'''pki.so
+
Alcune smartcard utilizzate in Italia (Camere di Commercio, Infocert, ArubaPEC) sono del produttore [http://www.incard.it/ Incard]. I driver di queste smartcard sembrano essere sviluppati da Bit4id e sono rilasciati gratuitamente, ma non-Liberi, in formato binario su [https://www.pec.it/download-software-driver.aspx Aruba].  
  
 
==Oberthur==
 
==Oberthur==
  
Le smartcard [http://www.oberthur.com/ Oberthur] sono utilizzate per la firma digitale da [https://www.pec.it ArubaPEC], molti ordini professionali emettono per i loro associati smartcard di questo produttore. I [http://www.pec.it/Download.aspx driver per Oberthur] sembrano essere sviluppati da Bit4id e sono distribuiti, non-Liberi ma gratuiti, in formato binario da ArubaPEC. Per queste smartcard vengono distribuiti i driver anche in forma di [http://www.pec.it/Download/Software/FirmaDigitale/MU_OBERTHUR_LINUX.zip pacchetto] Debian/Ubuntu/Mint.
+
Le smartcard [http://www.oberthur.com/ Oberthur] sono utilizzate per la firma digitale da [https://www.pec.it ArubaPEC], molti ordini professionali emettono per i loro associati smartcard di questo produttore. Utilizzano il medesimo driver di Incard scaricabile su [https://www.pec.it/download-software-driver.aspx Aruba]
 
 
==Athena==
 
 
 
Altre smartcard molto diffuse (alcune CRS Lombardia, TS Toscana, alcune TS Sardegna) sono del produttore [http://www.athena-scs.com/ Athena] che lascia scaricare i driver dal sito [http://www.pec.it/Download.aspx ArubaPEC], non-Liberi, in formato binario. ('''da pacchettizzare''' .deb e/o .rpm)
 
  
 
==Siemens==
 
==Siemens==
  
Siemens: su queste smartcard abbiamo poche notizie ma buone. Molto usate in passato dalle Camere di Commercio e adesso dalla [http://www.regione.liguria.it/argomenti/diritti-e-doveri-del-cittadino/carta-regionale-dei-servizi.html CRS ligure], le smartcard Siemens richiedono il software CardOS. Stranamente CardOS non si riesce a trovarlo sul sito [http://www.siemens.com Siemens] perché ogni vecchio collegamento viene adesso reindirizzato verso [http://atos.net/en-us/about_us/Company_Profile/company-history/default.htm Atos], da cui non si ricava niente. La [http://www.regione.liguria.it/archivi/archivio-allegati/doc_download/8139-manuale-di-gestione.html buona notizia] è che tali carte funzionano perfettamente con i driver Liberi [http://www.opensc-project.org/ OpenSC]. Comunque ci sono anche [http://www.regione.liguria.it/archivi/archivio-allegati/cat_view/40-diritti-e-doveri-del-cittadino/2300-carta-nazionale-dei-servizi-tessera-sanitaria/2303-software/2430-software-per-linux.html questi driver] da testare. (Non abbiamo a disposizione smartcard Siemens, che qualche ligure verifichi...)
+
Molto usate in passato dalle Camere di Commercio e adesso dalla [http://www.regione.liguria.it/argomenti/diritti-e-doveri-del-cittadino/carta-regionale-dei-servizi.html CRS ligure], le smartcard Siemens richiedono il software [http://supportcrs.fascicolo-sanitario.it/modulistica/ CardOS].  
 
 
Dal sito della Provincia di Bolzano si possono scaricare driver e interfaccia grafica per CardOS: [http://www.provincia.bz.it/cartaservizi/downloads/linux/cardos.tar.gz a 32 bit] e [http://www.provincia.bz.it/cartaservizi/downloads/linux/cardos64.tar.gz a 64 bit].
 
  
 
==Vecchie smartcard==
 
==Vecchie smartcard==
Riga 53: Riga 44:
  
 
==Bit4id==
 
==Bit4id==
[http://www.bit4id.com/it/index.php?option=com_content&view=article&id=93&Itemid=507&lang=it miniLector Piano] di Bit4id: funziona.
+
[https://support.bit4id.com/#!/it/product/miniLector_Piano miniLector Piano] di Bit4id: funziona.
  
 
==Manhattan==
 
==Manhattan==
Riga 75: Riga 66:
 
==ASEDrive - Athena==
 
==ASEDrive - Athena==
  
Athena produce non soltanto le smartcard, ma anche i lettori [http://www.athena-scs.com/support/software-driver-downloads ASEDrive]: dovrebbero funzionare.
+
Athena produce non soltanto le smartcard, ma anche i lettori [https://www.partnerdata.it/athena/ ASEDrive]: dovrebbero funzionare.
 
 
==Altri?==
 
 
 
Aggiungi pure se hai fatto prove positive di riconoscimento lettori
 
  
 
=Firma digitale FD=
 
=Firma digitale FD=
Riga 85: Riga 72:
 
Supponendo di avere fatto bene tutte le configurazioni utili per i lettori e anche per la smartcard in nostro possesso, possiamo provare a firmare con un software di firma. Ce ne sono pochi di Liberi (o Open Source), molti sono a pagamento, alcuni sono non-Liberi ma gratuiti.
 
Supponendo di avere fatto bene tutte le configurazioni utili per i lettori e anche per la smartcard in nostro possesso, possiamo provare a firmare con un software di firma. Ce ne sono pochi di Liberi (o Open Source), molti sono a pagamento, alcuni sono non-Liberi ma gratuiti.
  
==File Protector==
+
==Aruba Sign==
 
+
Il miglior software multi-piattaforma disponibile è probabilmente [https://www.pec.it/download-software-driver.aspx Aruba Sign].
Il miglior software non-Libero ma gratuito che ho trovato è [http://www.card.infocamere.it/infocamere/pub/download-sw-firma_3177 File Protector], sviluppato da [http://actalis.it/ Actalis] e distribuito gratuitamente da [http://www.infocamere.it/ Infocamere], azienda informatica delle [http://www.camcom.gov.it/ Camere di Commercio d'Italia]. Purtroppo funziona soltanto per le architetture a 32 bit.
+
Prodotto da Aruba, gratuito ma non libero, è scritto in Java e disponibile per Windows, MacOS X e Linux.
 
+
Permette di firmare documenti, apporre marcature temporali ed ulteriori operazioni come la modifica del PIN di una CNS.
[http://www.libersoft.it/firma-digitale LiberSoft] distribuisce un pacchetto .deb (Debian/Ubuntu) per facilitare l'installazione di File Protector.
+
Affinché riconosca correttamente il proprio lettore è necessario inserire il percorso del driver nella sezione Opzioni e Parametri, es. su Arch Linux con lettore Bit4id: /usr/lib/bit4id/libbit4xpki.so
 
 
Su [https://github.com/libersoft/fp-installer github] puoi vedere com'è fatto il pacchetto deb. Lo ha fatto [http://www.dnax.it/ Dnax].
 
 
 
Ancora '''non c'è il pacchetto rpm''' (potresti farlo tu...)
 
 
 
Ci sono guide interessanti per installare File Protector su [http://blog.it-opensuse.org/2012/01/15/guida-per-lutilizzo-della-cns-carta-nazionale-servizi/ OpenSuSeLinux] e su Ubuntu ma [http://www.programmiamoinsieme.eu/blog/2012/02/11/firma-digitale-con-smart-card-cns-su-linux/ con il lettore Gemplus] di Gemalto.
 
 
 
==Firma digitale con LibreOffice e OpenOffice==
 
 
 
Nel menù '''File --> Firme digitali...''' di LibreOffice si apre una parentesi di cui qua non sappiamo molto. LibreOffice può firmare un documento senza bisogno di un software di firma separato'''?''' Possiamo firmare un documento di LibreOffice senza utilizzare File Protector'''?''' Come interagisce con il lettore'''?''' Quali formati di documento riesce a firmare'''?''' Soltanto il formato OpenDocument'''?''' Facci sapere...
 
  
 
==Marcatura temporale - Timestamp==
 
==Marcatura temporale - Timestamp==
Riga 106: Riga 83:
  
 
Le marcature devono essere acquistate (per esempio su [http://www.pec.it/MarcheTemporali.aspx pec.it]).
 
Le marcature devono essere acquistate (per esempio su [http://www.pec.it/MarcheTemporali.aspx pec.it]).
 
==Programmi Open Source di firma digitale==
 
 
Abbiamo trovato [http://j4sign.sourceforge.net/ j4sign], [http://opensignature.sourceforge.net/ OpenSignature] e [http://javasign.sourceforge.net/ JavaSign].
 
 
Non sono aggiornati da diversi anni. Non ho trovato pacchetti pronti, né deb né rpm. Hai notizie precise sul loro funzionamento? Vuoi farne i pacchetti di installazione?
 
  
 
=== FreeSigner ===
 
=== FreeSigner ===
  
Basato su [http://j4sign.sourceforge.net/ j4sign], è un programma che permette di effettuare e verificare firme digitali. E' multipiattaforma ed è possibile scaricarlo dalla [http://sourceforge.net/projects/j4sign/files/freesigner/freesigner-0.1.0/ pagina sourceforge di j4sign]. Supporta i più recenti standard normativi di firma CADeS e qualsiasi smartcard compatibile con lo standard PKCS#11 e linux.
+
Basato su [http://j4sign.sourceforge.net/ j4sign], è un programma che permette di effettuare e verificare firme digitali. E' multipiattaforma ed è possibile scaricarlo a [https://de.osdn.net/projects/sfnet_j4sign/downloads/freesigner/freesigner-0.3.4/freesigner-0.3.4-setup.jar questo indirizzo]. Supporta i più recenti standard normativi di firma CADeS e la maggior parte delle smartcard compatibili con lo standard PKCS#11 e Linux.
  
Manca l'elenco delle "qualsiasi" smartcard compatibili con lo standard pkcs#11 (ma forse sarebbe più corretto dire [http://www.emc.com/emc-plus/rsa-labs/standards-initiatives/about-pkcs-15.htm pkcs#15]). Seppur senza una verifica precisa, sembra che le carte più diffuse in Italia (Athena, Incard, Oberthur) NON siano pienamente compatibili con lo standard pkcs quindi richiedono driver proprietari.
+
=Tessera Sanitaria=
  
==Firma digitale e Thunderbird==
+
La cosiddetta [http://www.sistemats.it/ Tessera Sanitaria] non è altro che una Carta Nazionale dei Servizi.
  
Ecco una [http://eppesuigoccas.homedns.org/~giuseppe/pppblog/index.php?entry=entry111029-170334 buona risorsa], da verificare. Sembra che Thunderbird abbia [https://bugzilla.mozilla.org/show_bug.cgi?id=243833 problemi] nel mostrare allegati firmati .p7m, per la precisione allegati di tipo ''application/pkcs7-mime'' o ''application/'''x-'''pkcs7-mime''. Una buona soluzione sembra essere [http://nic-nac-project.org/~kaosmos/p7mHandler.html SmartP7M].
+
Le prime tessere sanitarie non avevano il microchip, servivano soltanto perché funzionavano da codice fiscale (che poteva essere letto in automatico dal codice a barre stampato su di esse).
  
Thunderbird gestisce anche messaggi di posta elettronica certificata PEC. Quando un messaggio PEC ha allegati firmati (.p7m) se la verifica della firma fallisce, il documento allegato sembra che non venga mostrato. [https://addons.mozilla.org/it/thunderbird/addon/thunderpec/ ThunderPEC] dice di aiutarci in questo ma è ancora tutto da verificare (vuoi farlo tu?).
+
=== Tipologie ===
  
=Autenticazione utente=
+
[[File:Tessera_sanitaria.jpeg]]
  
==SSH==
+
{| class="wikitable"
 +
| Sigla
 +
| Tipologia Carta
 +
| Linux
 +
| Driver
 +
|-
 +
| AT 2012
 +
| Siemens / ATOS
 +
| OK
 +
| OpenSC, [https://www.regione.toscana.it/-/area-download Proprietario]
 +
|-
 +
| AC 2013, 2014, 2018
 +
| Actalis
 +
| OK
 +
| OpenSC, [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|-
 +
| ACx 2021
 +
| Actalis
 +
| OK
 +
| [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|-
 +
| ACe 2021
 +
| Actalis
 +
| OK
 +
| [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|-
 +
| OT 2015, 2016
 +
| OBERTHUR
 +
| OK
 +
| OpsnSC, [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|-
 +
| ID 2019
 +
| IDEMIA
 +
| OK
 +
| [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|-
 +
| ST 2021
 +
| STMICROELECTRONICS
 +
| OK
 +
| [https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso Proprietario]
 +
|}
  
Estrarre la chiave pubblica (il percorso della libreria dipende dalla distribuzione):
+
Nel caso la vostra carta non fosse supportata da questi driver provate: [https://sistemats4.sanita.finanze.it/CardDriverDownloaderWeb/pages/home.xhtml Ricerca], [https://www.cartaidentita.interno.gov.it/fornitori-di-servizi/documentazione-middleware-cie/ CIE], [https://www.firma.infocert.it/installazione/ Infocert].
ssh-keygen -D /usr/lib/i386-linux-gnu/opensc-pkcs11.so
 
  
Dopo aver copiato la chiave pubblica sul sistema remoto (ad es. in ~/.ssh/authorized_keys), è possibile collegarsi fornendo il PIN quando richiesto:
+
==Portali Regionali==
ssh ­-I /usr/lib/i386­linux­gnu/opensc­-pkcs11.so indirizzo-del-server
 
  
=Carta Nazionale dei Servizi CNS=
+
* Tessera Sanitaria e Carta Provinciale dei Servizi della [http://www.provincia.bz.it/cartaservizi/ Provincia Autonoma di Bolzano]
  
Una smartcard si dice «Carta Nazionale dei Servizi» quando ha a bordo nel microchip un certificato utile per l'autenticazione online, strutturato secondo quanto richiesto [http://www.digitpa.gov.it/node/689 dalla legge italiana].
+
* La [http://www.regione.calabria.it/sanita/index.php?option=com_content&task=view&id=405&Itemid=100 Regione Calabria]
  
Seguono alcuni esempi di soggetti che utilizzano smartcard e danno '''supporto a Linux'''.
+
* Carta dei Servizi del [http://cartaservizi.regione.fvg.it/ Friuli Venezia Giulia]
  
==Tessera Sanitaria e Carta dei Servizi==
+
* Carta regionale dei Servizi [http://www.regione.liguria.it/argomenti/diritti-e-doveri-del-cittadino/carta-regionale-dei-servizi.html Regione Liguria]
  
La cosiddetta [http://www.sistemats.it/ Tessera Sanitaria] non è altro che una Carta Nazionale dei Servizi. Le prime tessere sanitarie non hanno il microchip, servono soltanto perché funzionano da codice fiscale (che può essere letto in automatico dal codice a barre stampato su esse).
+
* Carta Regionale dei Servizi [http://www.crs.regione.lombardia.it/ Regione Lombardia]
  
Da Novembre 2012 anche ArubaPEC può emettere Carte Nazionali dei Servizi grazie all'[http://www.unical.it/portale/portaltemplates/view/view.cfm?29910 accordo] con l'Università della Calabria.
+
* Tessera Sanitaria [http://www.regione.toscana.it/cartasanitaria Regione Toscana] [http://www.regione.toscana.it/servizi-online/servizi-sicuri/carta-sanitaria-elettronica/guida-all-uso Guida all'uso] Lettore di smartcard a [https://www.regione.toscana.it/servizi-online/servizi-sicuri/carta-sanitaria-elettronica/lettore-smart-card 4,20 euro]
  
===Regione Friuli Venezia Giulia===
+
* Tessera Sanitaria [https://tscns.regione.sardegna.it/articoli/linux Regione Sardegna]
  
La [http://cartaservizi.regione.fvg.it/ Carta dei Servizi] del Friuli Venezia Giulia. Non conosciamo il produttore della smartcard.
+
* Tessera Sanitaria e Carta Provinciale dei Servizi [http://www.cartaservizi.provincia.tn.it/ Provincia Autonoma di Trento].
  
Eccone [http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/471405-set-up-use-italian-regione-friuli-venezia-giulia-healthcare-smart-card-crs.html il funzionamento su OpenSuSE Linux] (in inglese).
+
=Carta d'Identità Elettronica =
  
===Regione Liguria===
+
La CIE è una CNS identica alle altre. I driver proprietari per le varie piattaforme sono scaricabili [https://www.cartaidentita.interno.gov.it/fornitori-di-servizi/documentazione-middleware-cie/ qui].
  
[http://www.regione.liguria.it/argomenti/diritti-e-doveri-del-cittadino/carta-regionale-dei-servizi.html Carta regionale] Liguria. Smartcard Siemens - software CardOS e forse basta il solo OpenSC.
+
= Installazione SmartCard su Linux =
 +
== Distribuzioni ==
 +
=== Debian/Ubuntu/Mint ===
 +
Installare i seguenti pacchetti
 +
# apt install pcsc-tools pcscd opensc opensc-pkcs11
  
===Regione Lombardia===
+
Il demone <code>pcscd</code> si avvierà automaticamente.
  
Anche in Lombardia l'hanno chiamata [http://www.crs.regione.lombardia.it/ Carta Regionale dei Servizi]. Utilizzano smartcard Athena oppure Siemens.
+
Le nuove carte ACx 2021 non sono ancora supportate da OpenSC, per poterle utilizzare occorrerà scaricare ed installare manualmente il pacchetto 
 +
* [https://swdownload1.agenziaentrate.gov.it/pub/sanita/libbit4xpki-idemia-amd64.1.4.10-622.deb libbit4xpki-idemia-amd64.1.4.10-622.deb]
  
===Regione Toscana===
+
=== Arch Linux ===
 +
Installare i seguenti pacchetti, utili solo per smartcard del produttore Athena (libaseCnsP11)
 +
# pacman -Sy ccid pcsclite pcsc-tools opensc
  
[http://www.regione.toscana.it/cartasanitaria Carta Sanitaria] della Regione Toscana. Sono smartcard [http://www.regione.toscana.it/web/guest/guida_1_linux Athena].
+
Abilitare e avviare pcscd
 +
# systemctl enable pcscd.socket
 +
# systemctl start pcscd.socket
  
Novità: dalla seconda metà del 2012 ci sono novità: emettono [http://www.regione.toscana.it/web/guest/guida carte Siemens] riconoscibili dalla [http://www.regione.toscana.it/web/guest/guida_2_linux sigla AT2012].
+
Alcune recenti tessere sanitarie non sono ancora supportate da OpenSC, sarà necessario scaricare e compilare manualmente il pacchetto
 +
* [https://spookyh.altervista.org/altro/bit4id-xpki.tar.gz bit4id-xpki.tar.gz].
  
La Regione Toscana dà ai cittadini un lettore Bit4id miniLector Piano per 4,20 euro.
+
=== NixOS ===
 +
Aggiungere i seguenti pacchetti al file <code>/etc/nixos/configuration.nix</code> nella sezione ''environment.systemPackages = with pkgs;''
 +
pcsclite opensc openssl pcsctools ccid usbutils acsccid
  
[http://golem.linux.it/files/presentazioni/ly/GOLEM_strumenti_cittadinanza_digitale.pdf Presentazione PDF] a cura del GOLEM su Strumenti di Cittadinanza digitale per cittadini toscani.
+
Abilitare demone per la gestione delle smartcard aggiungendo la riga seguente al <code>configuration.nix</code>
 +
  services.pcscd.enable = true;
  
===Regione Calabria===
+
Effettuare il rebuild del sistema e riavviare
 +
# nixos-rebuild switch
  
La [http://www.regione.calabria.it/sanita/index.php?option=com_content&task=view&id=405&Itemid=100 Regione Calabria] utilizza smartcard Siemens - software CardOS
+
Alcune recenti tessere sanitarie non sono ancora supportate da OpenSC, per farlo create il file <code>[https://github.com/spookyh83/nixpkgs/blob/spookix/pkgs/misc/drivers/bit4id-xpki/default.nix /etc/nixos/cns_ita_new.nix]</code>
 +
{ lib, stdenv, fetchurl, dpkg, pcsclite, opensc, pcsctools, ccid }:
 +
stdenv.mkDerivation rec {
 +
  name = "bit4xpki";
 +
  src = fetchurl {
 +
    url = "https://swdownload1.agenziaentrate.gov.it/pub/sanita/libbit4xpki-idemia-amd64.1.4.10-622.deb";
 +
    sha256 = "1mq6xng97d5s94h84p1clsnh56g245xcr1pbjm3ryjf43w7jlqlx";
 +
  };
 +
  unpackPhase = "dpkg-deb -x $src $out";
 +
  meta = with lib; {
 +
    description = "Libraries for the XPKI client used by the Italian CNS.";
 +
    homepage = "https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso";
 +
    platforms = [ "x86_64-linux" ];
 +
    license = licenses.unfree;
 +
  };
 +
    buildInputs = [ dpkg ];
 +
    shellHook = ''
 +
    export PATH="${dpkg}/bin:$PATH"
 +
  '';
 +
}
  
===Regione Sardegna===
+
Aggiungere una riga tra le import di <code>/etc/nixos/configuration.nix</code>
 +
{
 +
  imports =
 +
    [ # Include the results of the hardware scan.
 +
      ./hardware-configuration.nix
 +
      ./bit4id.nix  #'''File nella directory /etc/nixos per caricare il driver
 +
    ];
  
A fine 2012 inizia l'attivazione delle Tessere Saitarie nella Regione Sardegna. Saranno in gran parte smartcard Athena. Alcuni lotti di carte sono forniti da Siemens (speriamo utilizzabili con CardOS e quindi funzionanti con OpenSC).
+
Creare il file <code>/etc/nixos/bit4id.nix</code>
 +
{ config, pkgs, ... }:
 +
let
 +
  bit4id = pkgs.callPackage /etc/nixos/cns_ita_new.nix {};
 +
in
 +
{
 +
  environment.systemPackages = [ bit4id ];
 +
}
  
Intanto si trova il software «sardo» per le [http://www.regione.sardegna.it/index.php?xsl=509&s=1&v=9&c=9576&na=1&n=10&tb=9327&st=19 smartcard Athena].
+
Effettuare il rebuild del sistema
 +
  # nixos-rebuild switch
  
Ben fatto anche l'elenco delle [http://www.regione.sardegna.it/index.php?xsl=509&s=1&v=9&c=9368&tb=9327&st=19 domande frequenti].
+
== Testare il funzionamento della carta ==
 +
# pcsc_scan
  
===Provincia di Bolzano===
+
Dovrebbe produrre un output di questo genere, contenente alcune informazioni sulla CNS, tra cui dovreste riconoscere le vostre generalità.
  
[http://www.provincia.bz.it/cartaservizi/ Tessera Sanitaria e Carta Provinciale dei Servizi] della Provincia Autonoma di Bolzano.
 
 
Il progetto [https://fscrs.digital.tis.bz.it/ FSCRS] Free Software Client Reference System.
 
 
 
===Provincia di Trento===
 
 
[http://www.cartaservizi.provincia.tn.it/ Tessera Sanitaria e Carta Provinciale dei Servizi] della Provincia Autonoma di Trento.
 
 
=Carta d'Identità Elettronica - CIE=
 
 
Non conosco la CIE però dovrebbe essere una CNS identica alle altre.
 
 
= Configurazione della Tessera Sanitaria su Linux =
 
== Arch Linux ==
 
 
Installare i seguenti pacchetti, utili solo per smartcard del produttore Athena (libaseCnsP11)
 
# pacman -Sy ccid pcsclite pcsc-tools opensc
 
<!-- # yaourt -Sy --aur libminilector38u-bit4id libasecnsp11 -->
 
 
Abilitare e avviare pcscd
 
# systemctl enable pcscd.socket
 
# systemctl start pcscd.socket
 
 
Testare il funzionamento della carta
 
# pcsc_scan
 
Dovrebbe produrre un output di questo genere
 
 
  PC/SC device scanner
 
  PC/SC device scanner
 
  V 1.4.22 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
 
  V 1.4.22 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Riga 223: Riga 253:
 
   ATR: 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 81 01 11 01 43 4E 53 10 31 80 E8
 
   ATR: 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 81 01 11 01 43 4E 53 10 31 80 E8
  
== Configurare il browser ==
+
== Localizzare la libreria ==
Seguire le istruzioni specifiche per il proprio browser, al termine è possibile verificare il buon esito collegandosi alla [https://ca.arubapec.it/crtest/showcert.php pagina test di Aruba] ed inserendo il PIN.
+
Al termine dell'installazione, è necessario individuare la libreria <code>opensc-pkcs11.so</code>, che serve per configurare il browser e utilizzare la tessera con esso.
Il lettore deve essere collegato '''prima''' di aprire il browser.
+
 
 +
Generalmente può essere trovata in uno dei seguenti percorsi:
 +
* ''/usr/lib/opensc-pkcs11.so''
 +
* ''/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so''
 +
 
 +
Oppure qua per i nuovi driver proprietari aggiornati al 2021
 +
* ''/usr/lib/bit4id/libbit4xpki.so''
 +
 
 +
Se non si riesce a localizzarla, si può provare a cercarla col seguente comando:
 +
$ find / -name "opensc-pkcs11.so" 2> /dev/null
  
=== Firefox ===
+
= Applicazioni =
Collegare il lettore al PC ed inserire la tessera sanitaria.
+
Molte applicazioni possono usare il certificato della CNS per autenticarvi, come il browser o ssh.
 +
== Browser ==
 +
'''Attenzione:''' collegare sempre il lettore '''prima''' di aprire il browser!
  
Avviare Firefox e selezionare: Preferenze -> Avanzate -> Certificati -> Dispositivi di sicurezza
+
Dopo la configurazione, è possibile verificare il funzionamento collegandosi alla [https://ca.arubapec.it/crtest/showcert.php pagina test di Aruba] ed inserendo il PIN.
  
Cliccare su Carica, inserire una descrizione ''(es.: TesseraSanitaria)'' ed il percorso <code>/usr/lib/opensc-pkcs11.so</code>
+
=== Firefox ===
<!--'''/usr/lib/libaseCnsP11.so'''-->
+
# Collegare il lettore di smartcard
 +
# Avviare Firefox
 +
# Inserire la tessera sanitaria nel lettore
 +
# In Firefox, selezionare ''Modifica'' &rarr; ''Preferenze'' &rarr; ''Privacy e sicurezza'' &rarr; ''Dispositivi di sicurezza''
 +
# Cliccare su ''Carica'', inserire una descrizione (es: ''TesseraSanitaria'') ed il percorso corretto del file <code>opensc-pkcs11.so</code> o <code>libbit4xpki.so</code>, come individuati precedentemente.
  
 
=== Chrome/Chromium ===
 
=== Chrome/Chromium ===
Chiudere il browser prima di lanciare il comando
+
Chiudere il browser, quindi aprire un terminale e lanciare i seguenti comandi, modificando opportunamente il percorso del file  <code>opensc-pkcs11.so</code>, come individuato precedentemente.
  $ cd
+
 
 +
  $ cd ~
 
  $ modutil -dbdir sql:.pki/nssdb/ -add "OpenSC" -libfile /usr/lib/opensc-pkcs11.so
 
  $ modutil -dbdir sql:.pki/nssdb/ -add "OpenSC" -libfile /usr/lib/opensc-pkcs11.so
 +
 +
 +
Nel caso dei driver del 2021 sarà invece necessario usare quest'altro comando
 +
 +
$ cd ~
 +
$ modutil -dbdir sql:.pki/nssdb/ -add "CNS2021" -libfile /usr/lib/bit4id/libbit4xpki.so
 +
 +
=== SSH ===
 +
Estrarre la chiave pubblica (il percorso della libreria dipende dalla distribuzione):
 +
ssh-keygen -D /usr/lib/i386-linux-gnu/opensc-pkcs11.so
 +
Oppure, se si usa una scheda con l'altro tipo di chip
 +
ssh-keygen -D /usr/lib/bit4id/libbit4xpki.so
 +
 +
Dopo aver copiato la chiave pubblica sul sistema remoto (ad es. in ~/.ssh/authorized_keys), è possibile collegarsi fornendo il PIN quando richiesto:
 +
ssh ­-I /usr/lib/i386­linux­gnu/opensc­-pkcs11.so ''indirizzo-del-server''
 +
Oppure
 +
ssh ­-I /usr/lib/bit4id/libbit4xpki.so ''indirizzo-del-server''
 +
 +
= Utilità =
 +
== Modificare PIN ==
 +
$ pkcs15-tool --change-pin
  
 
[[Category:Howto]]
 
[[Category:Howto]]

Versione attuale delle 10:27, 12 mag 2023

Questa pagina ha lo scopo di fare chiarezza sul "mondo" delle smartcard con microchip crittografico, delle funzioni che tramite esse vengono veicolate e del loro utilizzo con Linux.

CNS

Una smartcard si definisce «Carta Nazionale dei Servizi» quando ha a bordo del suo microchip un certificato utile per l'autenticazione online, strutturato secondo quanto richiesto dalla legge italiana.

Anche la CIE «Carta d'Identità Elettronica», la «tessera sanitaria regionale» TS e le carte regionali dei servizi CRS sono a tutti gli effetti CNS.

Sono strumenti di riconoscimento online d'identità e possono essere utilizzate anche per Firma Digitale FD.

La smartcard è quindi l'oggetto fisico. Può contenere soltanto la funzionalità CNS, soltanto la funzionalità FD o entrambe, oppure nessuna (come nel caso delle tessere sanitarie con microchip appena giunte al cittadino e non ancora "attivate").

Per ulteriori approfondimenti è possibile consultare Strumenti di Cittadinanza digitale a cura di Giulia del GOLEM.

Produttori di smartcard

I produttori di smartcard (o meglio di microchip) dovrebbero rispettare lo standard pkcs#15, ma non sempre lo fanno. Per questo abbiamo bisogno di driver specifici (spesso binari e non-Liberi).

Athena

Smartcard fra le più diffuse (CRS Lombardia, TS Toscana, TS Sardegna, ArubaPEC), sono del produttore Athena è possibile scaricare i driver binari dal sito Aruba.

Incard

Alcune smartcard utilizzate in Italia (Camere di Commercio, Infocert, ArubaPEC) sono del produttore Incard. I driver di queste smartcard sembrano essere sviluppati da Bit4id e sono rilasciati gratuitamente, ma non-Liberi, in formato binario su Aruba.

Oberthur

Le smartcard Oberthur sono utilizzate per la firma digitale da ArubaPEC, molti ordini professionali emettono per i loro associati smartcard di questo produttore. Utilizzano il medesimo driver di Incard scaricabile su Aruba

Siemens

Molto usate in passato dalle Camere di Commercio e adesso dalla CRS ligure, le smartcard Siemens richiedono il software CardOS.

Vecchie smartcard

Un bell'elenco, storico, molto dettagliato, di microchip e dei relativi produttori si trova nella documentazione Infocert. Sysgillo, InCrypto, Siemens... le vecchie firme digitali delle Camere di Commercio.

Lettori di smartcard

Chi produce i lettori spesso rispetta lo standard pkcs#11, quindi i lettori più nuovi dovrebbero risultare compatibili con Linux.

I seguenti lettori di smartcard sono stati testati e funzionano con Linux

Bit4id

miniLector Piano di Bit4id: funziona.

Manhattan

Manhattan

Lo vende (per esempio) icintracom: funziona.

Sembra lo stesso lettore che vende anche Digicom. Visto da Trony a 17,99 euro (settembre 2012). Logo Linux sull'esterno della scatola.

Hamlet

Hamlet: funziona.

Gemalto

Lettori di smartcard IDBridge CT family. Secondo Ludo funzionano.

Dal sito web di Gemalto, sia per i lettori PC USB SL, sia per quelli PC USB TR e PC TWIN si hanno buone notizie per quanto riguarda Linux:

«This USB CCID device is supported by the libccid library. This library provides a PC/SC IFD handler implementation for the USB smart card interface devices compliant to the CCID protocol. Gemalto is actively involved in the development and improvement of this library. This library is packaged and distributed by most of the Linux distributions. TIPS: Use the package manager from your specific Linux distribution to search for the libccid library and install it. The libccid source code is available on the following web site: Alioth

ASEDrive - Athena

Athena produce non soltanto le smartcard, ma anche i lettori ASEDrive: dovrebbero funzionare.

Firma digitale FD

Supponendo di avere fatto bene tutte le configurazioni utili per i lettori e anche per la smartcard in nostro possesso, possiamo provare a firmare con un software di firma. Ce ne sono pochi di Liberi (o Open Source), molti sono a pagamento, alcuni sono non-Liberi ma gratuiti.

Aruba Sign

Il miglior software multi-piattaforma disponibile è probabilmente Aruba Sign. Prodotto da Aruba, gratuito ma non libero, è scritto in Java e disponibile per Windows, MacOS X e Linux. Permette di firmare documenti, apporre marcature temporali ed ulteriori operazioni come la modifica del PIN di una CNS. Affinché riconosca correttamente il proprio lettore è necessario inserire il percorso del driver nella sezione Opzioni e Parametri, es. su Arch Linux con lettore Bit4id: /usr/lib/bit4id/libbit4xpki.so

Marcatura temporale - Timestamp

Una marcatura temporale si può apporre con File Protector. Quello di marcatura temporale è un servizio che viene fornito, tramite un server, da una TSA Time Stamping Authority (per dirla in modo grossolano un server terzo firma col suo certificato l'impronta del nostro file dopo averci aggiunto data e ora).

Le marcature devono essere acquistate (per esempio su pec.it).

FreeSigner

Basato su j4sign, è un programma che permette di effettuare e verificare firme digitali. E' multipiattaforma ed è possibile scaricarlo a questo indirizzo. Supporta i più recenti standard normativi di firma CADeS e la maggior parte delle smartcard compatibili con lo standard PKCS#11 e Linux.

Tessera Sanitaria

La cosiddetta Tessera Sanitaria non è altro che una Carta Nazionale dei Servizi.

Le prime tessere sanitarie non avevano il microchip, servivano soltanto perché funzionavano da codice fiscale (che poteva essere letto in automatico dal codice a barre stampato su di esse).

Tipologie

Tessera sanitaria.jpeg

Sigla Tipologia Carta Linux Driver
AT 2012 Siemens / ATOS OK OpenSC, Proprietario
AC 2013, 2014, 2018 Actalis OK OpenSC, Proprietario
ACx 2021 Actalis OK Proprietario
ACe 2021 Actalis OK Proprietario
OT 2015, 2016 OBERTHUR OK OpsnSC, Proprietario
ID 2019 IDEMIA OK Proprietario
ST 2021 STMICROELECTRONICS OK Proprietario

Nel caso la vostra carta non fosse supportata da questi driver provate: Ricerca, CIE, Infocert.

Portali Regionali

Carta d'Identità Elettronica

La CIE è una CNS identica alle altre. I driver proprietari per le varie piattaforme sono scaricabili qui.

Installazione SmartCard su Linux

Distribuzioni

Debian/Ubuntu/Mint

Installare i seguenti pacchetti

# apt install pcsc-tools pcscd opensc opensc-pkcs11

Il demone pcscd si avvierà automaticamente.

Le nuove carte ACx 2021 non sono ancora supportate da OpenSC, per poterle utilizzare occorrerà scaricare ed installare manualmente il pacchetto

Arch Linux

Installare i seguenti pacchetti, utili solo per smartcard del produttore Athena (libaseCnsP11)

# pacman -Sy ccid pcsclite pcsc-tools opensc

Abilitare e avviare pcscd

# systemctl enable pcscd.socket
# systemctl start pcscd.socket

Alcune recenti tessere sanitarie non sono ancora supportate da OpenSC, sarà necessario scaricare e compilare manualmente il pacchetto

NixOS

Aggiungere i seguenti pacchetti al file /etc/nixos/configuration.nix nella sezione environment.systemPackages = with pkgs;

pcsclite opensc openssl pcsctools ccid usbutils acsccid 

Abilitare demone per la gestione delle smartcard aggiungendo la riga seguente al configuration.nix

 services.pcscd.enable = true;

Effettuare il rebuild del sistema e riavviare

# nixos-rebuild switch

Alcune recenti tessere sanitarie non sono ancora supportate da OpenSC, per farlo create il file /etc/nixos/cns_ita_new.nix

{ lib, stdenv, fetchurl, dpkg, pcsclite, opensc, pcsctools, ccid }:
stdenv.mkDerivation rec {
 name = "bit4xpki";
 src = fetchurl {
   url = "https://swdownload1.agenziaentrate.gov.it/pub/sanita/libbit4xpki-idemia-amd64.1.4.10-622.deb";
   sha256 = "1mq6xng97d5s94h84p1clsnh56g245xcr1pbjm3ryjf43w7jlqlx";
 };
 unpackPhase = "dpkg-deb -x $src $out";
 meta = with lib; {
   description = "Libraries for the XPKI client used by the Italian CNS.";
   homepage = "https://sistemats1.sanita.finanze.it/portale/elenco-driver-cittadini-modalita-accesso";
   platforms = [ "x86_64-linux" ];
   license = licenses.unfree;
 };
   buildInputs = [ dpkg ];
   shellHook = 
   export PATH="${dpkg}/bin:$PATH"
 ;
}

Aggiungere una riga tra le import di /etc/nixos/configuration.nix

{
 imports =
   [ # Include the results of the hardware scan.
     ./hardware-configuration.nix
     ./bit4id.nix   #File nella directory /etc/nixos per caricare il driver 
    ];

Creare il file /etc/nixos/bit4id.nix

{ config, pkgs, ... }:
let
 bit4id = pkgs.callPackage /etc/nixos/cns_ita_new.nix {};
in
{
 environment.systemPackages = [ bit4id ];
}

Effettuare il rebuild del sistema

 # nixos-rebuild switch

Testare il funzionamento della carta

# pcsc_scan

Dovrebbe produrre un output di questo genere, contenente alcune informazioni sulla CNS, tra cui dovreste riconoscere le vostre generalità.

PC/SC device scanner
V 1.4.22 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.10
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR38U-CCID 00 00
Mon May  5 22:52:40 2014
Reader 0: ACS ACR38U-CCID 00 00
  Card state: Card inserted, 
  ATR: 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 81 01 11 01 43 4E 53 10 31 80 E8

Localizzare la libreria

Al termine dell'installazione, è necessario individuare la libreria opensc-pkcs11.so, che serve per configurare il browser e utilizzare la tessera con esso.

Generalmente può essere trovata in uno dei seguenti percorsi:

  • /usr/lib/opensc-pkcs11.so
  • /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

Oppure qua per i nuovi driver proprietari aggiornati al 2021

  • /usr/lib/bit4id/libbit4xpki.so

Se non si riesce a localizzarla, si può provare a cercarla col seguente comando:

$ find / -name "opensc-pkcs11.so" 2> /dev/null

Applicazioni

Molte applicazioni possono usare il certificato della CNS per autenticarvi, come il browser o ssh.

Browser

Attenzione: collegare sempre il lettore prima di aprire il browser!

Dopo la configurazione, è possibile verificare il funzionamento collegandosi alla pagina test di Aruba ed inserendo il PIN.

Firefox

  1. Collegare il lettore di smartcard
  2. Avviare Firefox
  3. Inserire la tessera sanitaria nel lettore
  4. In Firefox, selezionare ModificaPreferenzePrivacy e sicurezzaDispositivi di sicurezza
  5. Cliccare su Carica, inserire una descrizione (es: TesseraSanitaria) ed il percorso corretto del file opensc-pkcs11.so o libbit4xpki.so, come individuati precedentemente.

Chrome/Chromium

Chiudere il browser, quindi aprire un terminale e lanciare i seguenti comandi, modificando opportunamente il percorso del file opensc-pkcs11.so, come individuato precedentemente.

$ cd ~
$ modutil -dbdir sql:.pki/nssdb/ -add "OpenSC" -libfile /usr/lib/opensc-pkcs11.so


Nel caso dei driver del 2021 sarà invece necessario usare quest'altro comando

$ cd ~
$ modutil -dbdir sql:.pki/nssdb/ -add "CNS2021" -libfile /usr/lib/bit4id/libbit4xpki.so

SSH

Estrarre la chiave pubblica (il percorso della libreria dipende dalla distribuzione):

ssh-keygen -D /usr/lib/i386-linux-gnu/opensc-pkcs11.so

Oppure, se si usa una scheda con l'altro tipo di chip

ssh-keygen -D /usr/lib/bit4id/libbit4xpki.so

Dopo aver copiato la chiave pubblica sul sistema remoto (ad es. in ~/.ssh/authorized_keys), è possibile collegarsi fornendo il PIN quando richiesto:

ssh ­-I /usr/lib/i386­linux­gnu/opensc­-pkcs11.so indirizzo-del-server

Oppure

ssh ­-I /usr/lib/bit4id/libbit4xpki.so indirizzo-del-server

Utilità

Modificare PIN

$ pkcs15-tool --change-pin