Ubuntu 22.04

Temo proprio che il problema sia quello. O certamente una parte del problema.

Io uso Bit4Id Air3 e funziona esattamente come deve. Legge CIE e TS nuova versione.

Se non riesci a trovare i driver, meglio fare uno di un lettore che effettivamente funzioni con Linux e questo possa essere garantito dal produttore. Ce ne dovrebbero essere diversi sul mercato.

Ti ringrazio @GiP, temo che per il momento mi arrangerò con la partizione Win, cercando i drivers per questo che ho preso… e per quando dismetteranno Spid definitvamente magari sarànno già usciti :slight_smile: nel frattempo so che grazie a te/voi ho la guida pronta per configurare firefox! grazie!

Ho seguito le istruzioni di @mavoga con una distro Xubuntu 22.04 fresca di installazione e per me e’ funzionato l’accesso via Chrome al sito dell’Agenzia Delle Entrate con CIE e autenticazione “vecchia” (senza la procedura OTP).

Riporto qui le cose che ho fatto per riuscirci dato che sembra che in alcuni casi usare Java 1.8 non sia abbastanza (vedi errore del comando java qui sotto), oppure dato che sembra che le versioni di Firefox e Chromium via Snap non funzionino.

TL;DR cose essenziali tipo eccezzioni Java e Chrome da pacchetto Deb che non ho trovato prima nel forum:

  • Il programma CieID non parte e non lancia alcun errore.
  • Il log di CieID nel file ~/.CIEPKI/CIEPKI_2023-06-06.log non contiene alcun riferimento a errori…

Ho provato a lanciare il comando contenuto nel file /usr/share/applications/cieid.desktop manualmente da terminale e ho scoperto questo:

$ java -Xms1G -Xmx1G -Djna.library.path=".:/usr/local/lib" -classpath "/usr/share/CIEID/cieid.jar" it.ipzs.cieid.MainApplication
Exception in thread "main" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
	at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)
	at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)
	at java.awt.Toolkit.getEventQueue(Toolkit.java:1736)
	at java.awt.EventQueue.invokeLater(EventQueue.java:1294)
	at it.ipzs.cieid.MainApplication.main(MainApplication.java:27)

Da una lettura su StackOverflow qui Exception in thread "main" java.awt.AWTError: Assistive Technology not found - Stack Overflow e qui gnome - Assistive technology not found AWTError - Ask Ubuntu sembra che quel file di properties /etc/java-8-openjdk/accessibility.properties:

  • non debba contenere assistive_technologies=org.GNOME.Accessibility.AtkWrapper
  • ma invece debba riferirsi al valore (di default?) com.sun.java.accessibility.AccessBridge
    (questo dovrebbe essere il default, quindi ho semplicemente commentato quello che ho trovato nel file di properties)

Ho fatto questo:

sudo vim /etc/java-8-openjdk/accessibility.properties
# qui dentro ho commentato la proprieta'
# assistive_technologies=org.GNOME.Accessibility.AtkWrapper

A questo punto il programma CieID e’ partito.

Sono quindi riuscito ad abbinare la CIE e questi sono i log della procedura

salvati al path ~/.CIEPKI/CIEPKI_2023-06-06.log:

2023-06-06 15:17:20:905 [INFO] ***** Starting AbbinaCIE *****
2023-06-06 15:17:20:905 [INFO] AbbinaCIE - Connecting to CIE...
2023-06-06 15:17:22:068 [INFO] AbbinaCIE - CIE Connected
2023-06-06 15:17:22:157 [INFO] TokenTransmitCallback - Resetting Card
2023-06-06 15:17:22:157 [INFO] ReadCIEType - cie_type() CIE Gemalto detected
2023-06-06 15:17:22:643 [INFO] AbbinaCIE - Reading data from CIE...
2023-06-06 15:17:23:526 [INFO] ***** Starting CardAuthenticateEx *****
2023-06-06 15:17:23:527 [INFO] CardAuthenticateEx - Selecting IAS and CIE AID
2023-06-06 15:17:23:564 [INFO] CardAuthenticateEx - Reading DH parameters
2023-06-06 15:17:23:804 [INFO] CardAuthenticateEx - Performing DH Exchange
2023-06-06 15:17:25:621 [INFO] CardAuthenticateEx - Verifying PIN
2023-06-06 15:17:25:720 [INFO] ***** CardAuthenticateEx Ended *****
2023-06-06 15:17:25:817 [INFO] AbbinaCIE - Reading certificate...
2023-06-06 15:17:26:816 [INFO] AbbinaCIE - Verifying SOD, digest algorithm: RSA-PSS/SHA512
2023-06-06 15:17:26:822 [INFO] AbbinaCIE - Saving certificate in cache...
2023-06-06 15:17:26:976 [INFO] AbbinaCIE - CIE paired successfully
2023-06-06 15:17:26:977 [INFO] ***** AbbinaCIE Ended *****

Chromium da Snap non funziona (autenticazione via CIE “vecchia”, senza codice OTP), neanche dopo aver usato NSS3 e il comando modutil:

# installare la libreria NSS3
$ sudo apt install libnss3-tools
# controllare i certificati gia' presenti
$ modutil -dbdir sql:.pki/nssdb/ -list
# aggiungere i certificati della CIE tramite il driver/middleware per CIE
$ modutil -dbdir sql:.pki/nssdb/ -add "CIE3" -libfile /usr/local/lib/libcie-pkcs11.so
# controllare che adesso la roba per CIE sia presente
$ modutil -dbdir sql:.pki/nssdb/ -list

Andare qui Google Chrome - Download the Fast, Secure Browser from Google

Scaricare Chrome

Installare Chrome

$ sudo dpkg -i Downloads/google-chrome-stable_current_amd64.deb

Qui l’accesso al sito dell’Agenzia Delle Entrate con CIE (senza OTP) funziona, inserendo SOLO LE ULTIME 4 CIFRE DEL PIN PER LA CIE.

VERSIONE LUNGA (da fare prima delle cose qui sopra :point_up: )

Controllare cosa c’e’ gia’

# pacchetti deb
$ apt policy libccid libpcsclite1 pcscd pcsc-tools opensc libnfc-bin | grep -A1 -B1 Installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libccid:
  Installed: (none)
  Candidate: 1.5.0-2
--
libpcsclite1:
  Installed: 1.9.5-3
  Candidate: 1.9.5-3
--
pcscd:
  Installed: (none)
  Candidate: 1.9.5-3
--
pcsc-tools:
  Installed: (none)
  Candidate: 1.6.0-1
--
opensc:
  Installed: (none)
  Candidate: 0.22.0-1ubuntu2
--
libnfc-bin:
  Installed: (none)
  Candidate: 1.8.0-2
# versione della distribuzione Ubuntu Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy
# nessuna versione di Java installata
$ java -version
Command 'java' not found, but can be installed with:
sudo apt install openjdk-11-jre-headless  # version 11.0.19+7~us1-0ubuntu1~22.04.1, or
sudo apt install default-jre              # version 2:1.11-72build2
sudo apt install openjdk-17-jre-headless  # version 17.0.7+7~us1-0ubuntu1~22.04.2
sudo apt install openjdk-18-jre-headless  # version 18.0.2+9-2~22.04
sudo apt install openjdk-19-jre-headless  # version 19.0.2+7-0ubuntu3~22.04
sudo apt install openjdk-8-jre-headless   # version 8u372-ga~us1-0ubuntu1~22.04

Installare i pacchetti Debian standard per Libccid, PC/SC e OpenSC

# installare i pacchetti ubuntu/debian
$ sudo apt install libccid libpcsclite1 pcscd pcsc-tools opensc libnfc-bin
# assicurarsi che il servizio/demone per PCSC sia up and running con SystemD
$ systemctl list-units | grep pcsc
  pcscd.service                                                                          loaded active running   PC/SC Smart Card Daemon
  pcscd.socket                                                                           loaded active running   PC/SC Smart Card Daemon Activation Socket
# assicurarsi che le mappature per il proprio lettore di SmartCard siano presenti
# ***se la mappatura del lettore non e' presente, allora il lettore non e' utilizzabile***
$ grep -niI bit4id.*air.*3 /etc/libccid_Info.plist 
1338:		<string>BIT4ID miniLector AIR NFC v3</string>
1339:		<string>BIT4ID mLector AIR DI V3</string>
# assicurarsi che il lettore di SmartCard sia visto a livello di porte USB
$ lsusb | grep -i bit4id
Bus 001 Device 006: ID 25dd:3403 BIT4ID miniLector AIR NFC v3
# prendere nota di vendor ID e product ID per controllare la porta USB anche via `dmesg`
$ sudo dmesg | grep -B1 -A3 '25dd.*3403'
[ 1404.086674] usb 1-1: new full-speed USB device number 6 using xhci_hcd
[ 1404.236396] usb 1-1: New USB device found, idVendor=25dd, idProduct=3403, bcdDevice= 3.53
[ 1404.236414] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1404.236422] usb 1-1: Product: miniLector AIR NFC v3
[ 1404.236429] usb 1-1: Manufacturer: BIT4ID
# controllare col comando `pcsc_scan` mentre si mette/toglie la CIE se i metadati vengono rilevati
# (controllare il nome del lettore, poi "Card inserted" e "Card removed")
$ pcsc_scan
# alternativa a `pcsc_scan` e' `pkcs11-tool`
# mettendo e togliendo la CIE si dovrebbe notare che il token (la SmartCard)
# viene rilevato, ma non viene riconosciuto
# perche' non ci sono i driver middleware CIE installati e la CIE non e' ancora stata abbinata con CieID
$ pkcs11-tool --show-info --list-slots

Installare i driver middleware per CIE

Controllare le versioni dei pacchetti Debian disponibili su

# scaricare il pacchetto Debian per i driver della CIE
$ wget https://github.com/italia/cie-middleware-linux/releases/download/1.4.3.5/CIE-Middleware-1.4.3.5.amd64.deb
# un po' di contesto su chi produce il pacchetto Debian
# (da notare che non dipende da Java Oracle/OpenJDK 1.8 oppure Java OpenJDK 17, come sottolineato in vari post)
$ dpkg -I CIE-Middleware-1.4.3.5.amd64.deb
 new Debian package, version 2.0.
 size 16262908 bytes: control archive=392 bytes.
     266 bytes,    10 lines      control              
 Package: CIE-Middleware
 Provides: CIE-Middleware
 Version: 1.4.3-4
 Section: libs
 Depends: pcscd, libpcsclite1, libccid, libc6 (>= 2.3.2.ds1)
 Maintainer: e.brienza@ipzs.it
 Architecture: amd64
 Priority: optional
 Description: CIE Middleware
 Installed-Size: 26000
# un po' di contesto su cosa andra' ad installare il pacchetto Debian
$ dpkg -c CIE-Middleware-1.4.3.5.amd64.deb
drwxr-xr-x root/root         0 2023-05-10 15:43 ./
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/local/
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/local/lib/
-rw-r--r-- root/root  37331320 2023-05-10 15:43 ./usr/local/lib/libcie-pkcs11.so
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/share/
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/share/CIEID/
-rw-r--r-- root/root   8293689 2023-05-10 15:43 ./usr/share/CIEID/cieid.jar
-rw-r--r-- root/root     19353 2023-05-10 15:43 ./usr/share/CIEID/logo_circle.png
drwxr-xr-x root/root         0 2023-05-10 15:43 ./usr/share/applications/
-rw-r--r-- root/root       302 2023-05-10 15:43 ./usr/share/applications/cieid.desktop
# installare Java OpenJDK 1.8 (...qui si vive nel passato...)
# (controllare anche il comando `update-alternatives` di Ubuntu)
$ sudo apt install openjdk-8-jre-headless
# assicurarsi di quale versione di Java e' in uso in Ubuntu
$ update-java-alternatives --list
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
# assicurarsi che il runtime del comando `java` versione 1.8 sia raggiungibile
$ /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~22.04-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
# nel caso in cui questa sia L'UNICA versione Java installata allora
# anche il normale comando `java` dovrebbe dare lo stesso output
$ java -version
openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~22.04-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)
# installare il driver middleware per CIE
$ sudo dpkg -i CIE-Middleware-1.4.3.5.amd64.deb 
Selecting previously unselected package cie-middleware.
(Reading database ... 166125 files and directories currently installed.)
Preparing to unpack CIE-Middleware-1.4.3.5.amd64.deb ...
Unpacking cie-middleware (1.4.3-4) ...
Setting up cie-middleware (1.4.3-4) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...
# a questo punto e' possibile controllare la SmartCard CIE con
# da notare che prima il campo "Library" usava OpenSC, mentre adesso usa "CIE PKCS11 (ver 1.0)"
$ pkcs11-tool --show-info --list-slots --module /usr/local/lib/libcie-pkcs11.so
1 Mi Piace

… e adesso, con la libreria /usr/local/lib/libcie-pkcs11.so installata, non vi stupite se alcune applicazioni (es. LibreOffice Calc, Okular) crashano quando le chiudete…

@IPZS-CIE Vediamo se riesco a capirci qualcosa su questo software.

  1. Ho installato una Virtualbox VM Ubuntu 20.04 e ho passato il lettore di smartcard via usb

Linux movirt 5.15.0-84-generic #93~20.04.1-Ubuntu SMP Wed Sep 6 16:15:40 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

  1. Ho installato i vari pacchetti accessori:

apt install libccid libpcsclite1 pcscd pcsc-tools opensc libnfc-bin

  1. Ho verificato che il lettore venisse visto dal sistema:

pcsc_scan

Thu Sep 28 11:14:02 2023
Reader 0: HID Global OMNIKEY 5422 Smartcard Reader [OMNIKEY 5422CL Smartcard Reader]
Event number: 1
Card state: Card inserted,

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):

Dutch driver licence (eID)
Italian electronic identity card (eID)
https://en.wikipedia.org/wiki/Italian_electronic_identity_card

Thu Sep 28 11:14:05 2023
Reader 0: HID Global OMNIKEY 5422 Smartcard Reader [OMNIKEY 5422CL Smartcard Reader]
Event number: 2
Card state: Card removed,

  1. Ho installato openjdk-1.8

java -version
openjdk version “1.8.0_382”
OpenJDK Runtime Environment (build 1.8.0_382-8u382-ga-1~22.04.1-b05)
OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode)

  1. Ho commentato in

/etc/java-8-openjdk/accessibility.properties

La riga:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

  1. Ho installato il software CIE.

dpkg -i CIE-Middleware-1.4.3.5.amd64.deb

Al momento dell’associazione, si blocca, crasha e nei log ho questo errore:


2023-09-28 10:18:03:204 [INFO] ***** Starting AbbinaCIE *****
2023-09-28 10:18:03:204 [INFO] AbbinaCIE - Connecting to CIE…
2023-09-28 10:18:03:398 [INFO] AbbinaCIE - CIE Connected
2023-09-28 10:18:03:401 [INFO] TokenTransmitCallback - Resetting Card
2023-09-28 10:18:03:401 [INFO] ReadCIEType - cie_type() CIE Gemalto detected
2023-09-28 10:18:05:140 [INFO] AbbinaCIE - Reading data from CIE…
2023-09-28 10:18:05:703 [ERROR] TokenTransmitCallback - SCardTransmit error: -2146435050
2023-09-28 10:18:05:704 [ERROR] Errore windows:(3148f070)
CIEPKI_2023-09-28.log (END)

A questo punto, mi pare di capire, mi sembra di avere un sistema operativo in una versione supportata, JDK in una versione supportata, lettore rfid supportato, tant’e’ che pcsc_scan lo rileva e il lettore aderisce agli standard richiesti per la lettura della CIE.

Ora, cosa rimane da fare per far funzionare questo software?

P.S.

Ho fatto alcuni tentativi. Non funziona in una macchina virtuale virtualbox con Windows 11, Non funziona su MacOS su un vecchio MacMini intel based, ha funzionato 1 sola volta dopo diversi tentativi finiti in crash su Windows 10.

C’e’ un qualche modo per estrarre l’abbinamento da Windows 10 e copiarlo su una macchina Linux?

1 Mi Piace

Interessante, se invece di usare l’RFID inserisco la CIE fisicamente nel lettore, tutto bene, funziona senza problemi. Certo che magari due messaggi di errori scritti correttamente non farebbero male a nessuno.

La CIE non ha contatti elettrici aperti, funziona solo per NFC (RFID). Cosa significa “inserirla nel lettore”?

Oppure si tratta della Tessera Sanitaria?

Ho detto CIE, non tessera sanitaria. Il lettore NFC OMNIKEY 5422CL e’ sia contactless che contact, per questo ha una fessura in cui inserire una carta a contatto. Se appoggio la CIE sopra il lettore, la lettura fallisce, se lo infilo nella fessura, va a buon fine. Probabilmente perche’ la CIE e’ piu’ vicina all’unita’ di lettura ma non e’ questo il punto. Il punto e’ che se fallisce non puo’ semplicemente bombare, l’errore va intercettato e gestito correttamente. Tant’e’ che senza l’errore in lettura, il programma prosegue, associa la carta e lo si puo’ utilizzare. Come dicevo, e ripeto, gli errori in fase di esecuzione, come per esempio l’impossibilita’ di leggere la carta o una lettura incompleta o malformata dei dati, va gestita e va fornito all’utente un messaggio di errore.

1 Mi Piace

Anche con le versioni più vecchie (Debian 10) riscontro gli stessi problemi.

Vedere che vanno avanti da un anno senza essere risolti mi inquieta non poco.

Da questa pagina però mi par di capire che forse la soluzione meno disgraziata è installarsi una ubuntu 20 su una chiavetta e configurarlo solo per far funzionare questo accrocco di CIE ID.

In ogni caso questi malfunzionamenti non dovrebbero passare in sordina… .

qualche referenza su questo lettore?

vedo che si parla di dispositivo autoinstallante…sarà vero anche per linux?

non riesco ad aprire il link

Fare funzionare una Smart Card su qualsiasi sistema, e a maggior ragione su Linux, e’ una scienza a se’. Dovrebbero aprire corsi di laurea dedicati.
Questo e’ uno dei riferimenti principali in materia
https://wiki.debian.org/Smartcards
I due package chiave sono pcsc e libccid
Nelle ultime versioni Debian il daemon per le smart card e’ pcscd, occorre verificare se e’ attivo con
$ sudo service pcscd status

…strano!!!

l’indirizzo è questo…prova a riscriverlo sulla barra di navigazione del browser

Grazie! Non riesco ad aprire, puo’ essere qualche setting di sicurezza o incompatibilita’ del mio provider o chissa’.
Con SmartCard su Linux/ Debian/ Ubuntu ho acquistato una certa esperienza, anche perche’ uso solo quello sia con CIE sia con TS. Se necessario, scrivete pure.

Installato e utilizzato su Ubuntu senza alcun problema

1 Mi Piace

Salve. Ho lo stesso problema. Anche nel mio caso (Ubuntu 22.04), il Trust Ceto (GHI NC001), restituisce il messaggio: “CIE non presente sul lettore”. Questo ogni volta che lancio il programma CIEID e cerco di abbinare la mia CIE.
Nessun problema per quanto riguarda invece l’uso dello stesso lettore su Windows.
Credo quindi si tratti di un problema di incompatibilità tra il Ceto e Ubuntu.
Da una ricerca in rete ho trovato questo driver: https://ccid.apdu.fr/ https://ccid.apdu.fr/ccid/shouldwork.html#0xAE680x8001 ma non l’ho provato. Avviso che il Ceto si trova all’interno della categoria: “Should work”.

Aggiornamento: installando il driver https://ccid.apdu.fr/ release: 1.5.3, come indicato nella pagina https://ccid.apdu.fr/ccid/shouldwork.html#0xAE680x8001, il Trust Ceto (GHI NC001) ha cominciato a funzionare con l’applicazione CIE ID sulla mia macchina Ubuntu 22.04. Non è il massimo della stabilità, però facendo diversi tentativi alla fine sono riuscito ad abbinare 2 CIE. Siccome sul sito l’ultima release è la 1.5.4, magari con questa il comportamento è più stabile, ma siccome al momento mi funziona tutto non mi metto di certo a provare.

Il 25/4 ci sara’ il release di Ubuntu 24.04. Conto di provarlo quanto prima con CIE e TS. Sto pero’ valutando di lasciare perdere Ubuntu e passare a altro sistema Debian causa “snap”. E’ la nuova funzione di Ubuntu che ostacola l’interazione diretta col sistema operativo, come per l’appunto i driver dei lettori di smart card. Va bene che vogliono offrire ambienti virtuali protetti, ma qui esagerano. Per una protezione assoluta occorre tenere il computer spento.

1 Mi Piace

Concordo a proposito di snap. Per abilitare l’accesso ai siti tramite Firefox ho dovuto re-installare Firefox fuori da snap, come descritto https://forum.italia.it/t/ubuntu-cie-firefox-insieme/38446. Firefox via snap non mi caricava la libreria PKCS#11 della CIE-ID.

@JuriB Proprio cosi’. Quello che troppi, dalla Pubblica Amministrazione agli sviluppatori SW e, purtroppo, anche nella community del software libero non capiscono e’ che numerose soluzioni avranno successo di pubblico e di mercato solo se sono semplici da usare. Non si puo’ reindirizzare la Sora Cesira che voglia usare la CIE a github o darle degli script per verificare le compatibilita’ di diversi moduli di sistema operativo. Qui, purtroppo, la comunita’ degli sviluppatori tende a essere troppo autoreferenziale, parla solo a se’ stessa. La CIE, la TS, il Bancomat con le loro chiavi private sono strumenti potentissimi e di sicurezza praticamente illimitata. Dobbiamo incentivare il loro uso, non inseguire sempre nuove frontiere, ora, ad esempio, con la lettura dell’iride o con il wallet.

2 Mi Piace