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
)
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