Re: Ancora CIE e middleware
Il 18/10/21 15:12, Piviul ha scritto: Il 18/10/21 11:54, G97 ha scritto: On Mon,18 Oct 07:41:17, Marco Ciampa wrote: On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: Non riesco però a far abbinare la CIE nel software middleware, inserisco il pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la libreria opensc. Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE italiana devi usare il binario fornito dal ministero. Che, come avevo scritto, purtroppo è solo a 64 bit! se ne sei sicuro potresti vedere se riesci a compilartelo a 32bit: https://github.com/italia/cie-middleware-linux Trattandosi di sw libero, in linea di principio dovrebbe essere possibile portare il supporto alla CIEv3 in OpenSC. OpenSC supporta molti hardware attraverso "card-driver" specifici: $ opensc-tool --list-drivers Configured card drivers: cardos Siemens CardOS flex Schlumberger Multiflex/Cryptoflex cyberflexSchlumberger Cyberflex gpk Gemplus GPK gemsafeV1Gemalto GemSafe V1 applet asepcos Athena ASEPCOS starcos STARCOS tcos TCOS 3.0 oberthur Oberthur AuthentIC.v2/CosmopolIC.v4 authenticOberthur AuthentIC v3.1 iasecc IAS-ECC belpic Belpic cards incrypto34 Incard Incripto34 akis TUBITAK UEKAE AKIS entersafeentersafe epass2003epass2003 rutoken Rutoken driver rutoken_ecp Rutoken ECP and Lite driver myeidMyEID cards with PKCS#15 applet dnie DNIe: Spanish eID card MaskTech MaskTech Smart Card atrust-acos A-Trust ACOS cards westcos WESTCOS compatible cards esteid2018 EstEID 2018 coolkey COOLKEY muscle MuscleApplet sc-hsm SmartCard-HSM mcrd MICARDO 2.1 / EstEID 3.0 - 3.5 setcos Setec cards PIV-II Personal Identity Verification Card cac Common Access Card (CAC) itacns Italian CNS isoAppletJavacard with IsoApplet gids GIDS Smart Card openpgp OpenPGP card jpki JPKI(Japanese Individual Number Cards) npa German ID card (neuer Personalausweis, nPA) cac1 Common Access Card (CAC 1) default Default driver for unknown cards Ad esempio itacns viene di solito selezionato in maniera automatica per le CNS (le tessere sanitarie regionali, ad esempio). Chi ha una CIEv3 potrebbe provare a forzare iasecc, che è il profilo dei documenti d'identità nazionali a cui CIEv3 (spero) dovrebbe aderire. rob
Re: eseguire software di un'architettura hardware diversa da quella del proprio sistema (ERA: Re: Ancora CIE e middleware)
Ciao, Il 2021-10-19 23:03 Alessandro Rubini ha scritto: Il trucco sta in binfmtmisc, che definisce interpreti per vari formati di file, in base al contenuto del file (il "magic number"): laptopo% ls /proc/sys/fs/binfmt_misc/ cli qemu-aarch64 qemu-mipsqemu-sh4 jar qemu-alpha qemu-mipsel qemu-sh4eb llvm-3.1.binfmt qemu-arm qemu-ppc qemu-sparc python2.6qemu-armeb qemu-ppc64 qemu-sparc32plus python2.7qemu-crisqemu-ppc64abi32 qemu-sparc64 python3.2qemu-m68kqemu-ppc64le register python3.4qemu-microblaze qemu-s390x status Non vedo una definizione per wine :-) Forse ritieni che sia troppo rischioso eseguire "inconsapevolmente" il codice che wine farebbe girare? In effetti concordo :-D Ĝis, m
Re: eseguire software di un'architettura hardware diversa da quella del proprio sistema (ERA: Re: Ancora CIE e middleware)
Il 19/10/2021 21:46, Davide Prina ha scritto: se devo essere sincero non ho mai approfondito più di tanto la questione di quale foreign architecture puoi installare sulla tua macchina e una volta fatto cosa effettivamente ci puoi fare. Io l'ho fatto tanti anni fa, per tentare di crearmi un sistema minimale che potesse avviarsi sia su x86 (32 e 64 bit) che su ARM. Un fallimento. L'unica cosa che ho fatto è installare l'architettura i386 su un'architettura amd64. E questo è tranquillamente supportato, infatti :) Però se si guarda il wiki di Debian relativo alla multiarchitettura[¹] prima indica con questa frase "either the kernel supports a compatibility interface, notably 64bit kernels often support running 32bit software (but most probably not the converse)" che non sembra escludere definitivamente questa possibilità, mentre io mi sarei aspettato, come hai indicato tu, una frase che escludesse categoricamente l'esecuzione di software a 64 bit su un'architettura hardware a 32 bit. In effetti un sistema c'è, ma l...e...n...t...o... Poi però offre una modalità per poter eseguire qualsiasi software di qualsiasi architettura hardware supportata da Debian sulla propria architettura hardware "nativa": "or a qemu-user instance is configured to act as an on-the-fly emulation layer, see QemuUserEmulation" che punta alla pagina di QemuUserEmulation[²] Beh, se metti di mezzo la virtualizzazione allora puoi eseguire di tutto. Certo che le prestazioni precipitano: per quanto qemu sia piuttosto efficiente, dover emulare un'architettura diversa ha un grosso impatto. Se poi aggiungi che x86 non prevedeva le estensioni di virtualizzazione che invece ci sono in amd64, sei costretto a rendere interpretato il linguaggio macchina dell'eseguibile. Da quello che ho capito, guardando rapidamente questa seconda pagina, sembra possibile installare software di una qualsiasi foreign architecture ed eseguirlo in modo trasparente, come se fosse dell'architettura "nativa". La cosa è molto interessante e, ad avere tempo, sarebbe da sperimentareSicuramente può essere utile in certi casi. Però non credo si possa applicare alle lib. -- Diego Zuccato DIFA - Dip. di Fisica e Astronomia Servizi Informatici Alma Mater Studiorum - Università di Bologna V.le Berti-Pichat 6/2 - 40127 Bologna - Italy tel.: +39 051 20 95786
Re: eseguire software di un'architettura hardware diversa da quella del proprio sistema (ERA: Re: Ancora CIE e middleware)
On Tue, Oct 19, 2021 at 11:03:09PM +0200, Alessandro Rubini wrote: > > notably 64bit kernels often support running > > 32bit software (but most probably not the converse)" che non sembra > > escludere definitivamente > > Se il mondo non e` cambiato nel frattempo, mi sentirei di escluderlo. > Un eseguibile a 64 bit usa puntatori a 64 bit e vuole una memoria > virtuale a 64 bit (non ricordo quanti, ma piu` di 32). Se il kernel > e` a 32 bit, offre una memoria virtuale a 32. > > > "or a qemu-user instance is configured > > to act as an on-the-fly emulation layer, see QemuUserEmulation" > > Questo funziona come un gioiellino. Ma ovviamente il codice viene > interpretato (da qemu), non eseguito, quindi va piu` lento. Qemu e` > straordinariamente efficente (e` Fabrice Bellard, mica l'ultimo > pistola) ma comunque siamo circa 10x piu` lento del nativo. > > > La cosa è molto interessante e, ad avere tempo, sarebbe da sperimentare > > E' banale. Si prende un eseguibile arm e si esegue. E` uno dei primi > esempi che faccio ai miei studenti, partendo da PC per andare su > micretto. > > Certo, se e` un eseguibile "serio" occorrono anche le librerie dinamiche > dell'architettura eccetera. Io lo faccio vedere senza libreria, > implementando le 2 chiamate di sistema che mi servono (write e exit): > >laptopo% make hell-arm >arm-none-eabi-gcc-c -o syscalls-arm.o syscalls-arm.S >arm-none-eabi-gcc -Wall -static -ffreestanding -c -o hell.o hell.c >arm-none-eabi-ld -e main -o hell-arm syscalls-arm.o hell.o > >laptopo% ./hell-arm >Hello > >laptopo% file hell-arm >hell-arm: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), > statically linked, not stripped > >laptopo% uname -m >x86_64 > > Il trucco sta in binfmtmisc, che definisce interpreti per vari formati > di file, in base al contenuto del file (il "magic number"): > >laptopo% ls /proc/sys/fs/binfmt_misc/ >cli qemu-aarch64 qemu-mipsqemu-sh4 >jar qemu-alpha qemu-mipsel qemu-sh4eb >llvm-3.1.binfmt qemu-arm qemu-ppc qemu-sparc >python2.6qemu-armeb qemu-ppc64 qemu-sparc32plus >python2.7qemu-crisqemu-ppc64abi32 qemu-sparc64 >python3.2qemu-m68kqemu-ppc64le register >python3.4qemu-microblaze qemu-s390x status Alex al solito sei stellare, questa mail me la salvo... Si lo so, dirai, banale, ok ... per te, e una volta che l'ho letta, anche per me. È questo il punto: è tutto semplice _dopo_ che lo sai. GRAZIE -- Saluton, Marco Ciampa
Re: eseguire software di un'architettura hardware diversa da quella del proprio sistema (ERA: Re: Ancora CIE e middleware)
> notably 64bit kernels often support running > 32bit software (but most probably not the converse)" che non sembra > escludere definitivamente Se il mondo non e` cambiato nel frattempo, mi sentirei di escluderlo. Un eseguibile a 64 bit usa puntatori a 64 bit e vuole una memoria virtuale a 64 bit (non ricordo quanti, ma piu` di 32). Se il kernel e` a 32 bit, offre una memoria virtuale a 32. > "or a qemu-user instance is configured > to act as an on-the-fly emulation layer, see QemuUserEmulation" Questo funziona come un gioiellino. Ma ovviamente il codice viene interpretato (da qemu), non eseguito, quindi va piu` lento. Qemu e` straordinariamente efficente (e` Fabrice Bellard, mica l'ultimo pistola) ma comunque siamo circa 10x piu` lento del nativo. > La cosa è molto interessante e, ad avere tempo, sarebbe da sperimentare E' banale. Si prende un eseguibile arm e si esegue. E` uno dei primi esempi che faccio ai miei studenti, partendo da PC per andare su micretto. Certo, se e` un eseguibile "serio" occorrono anche le librerie dinamiche dell'architettura eccetera. Io lo faccio vedere senza libreria, implementando le 2 chiamate di sistema che mi servono (write e exit): laptopo% make hell-arm arm-none-eabi-gcc-c -o syscalls-arm.o syscalls-arm.S arm-none-eabi-gcc -Wall -static -ffreestanding -c -o hell.o hell.c arm-none-eabi-ld -e main -o hell-arm syscalls-arm.o hell.o laptopo% ./hell-arm Hello laptopo% file hell-arm hell-arm: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped laptopo% uname -m x86_64 Il trucco sta in binfmtmisc, che definisce interpreti per vari formati di file, in base al contenuto del file (il "magic number"): laptopo% ls /proc/sys/fs/binfmt_misc/ cli qemu-aarch64 qemu-mipsqemu-sh4 jar qemu-alpha qemu-mipsel qemu-sh4eb llvm-3.1.binfmt qemu-arm qemu-ppc qemu-sparc python2.6qemu-armeb qemu-ppc64 qemu-sparc32plus python2.7qemu-crisqemu-ppc64abi32 qemu-sparc64 python3.2qemu-m68kqemu-ppc64le register python3.4qemu-microblaze qemu-s390x status
Re: eseguire software di un'architettura hardware diversa da quella del proprio sistema (ERA: Re: Ancora CIE e middleware)
On 19/10/21 10:42, Diego Zuccato wrote: Il 18/10/2021 22:21, Davide Prina ha scritto: On 18/10/21 08:49, Diego Zuccato wrote: Ovviamente: un sistema a 64 bit può gestire una lib a 32 bit ma non viceversa. in teoria, con Debian, puoi creare un sistema a più architetture hardware e quindi avere un sistema 64-32 bit... e probabilmente lo puoi ottenere sia partendo da un sistema a 32 che da uno a 64 (ho provato solo da amd64 aggiungere i386) Si, puoi forse partire da uno a 32 bit, ma se il kernel non è a 64 bit, il processore girerà solo a 32. In pratica il processore in modalità 64 bit riconosce il codice a 32 bit e va in modalità compatibile (sto semplificando al massimo). Ma se il processore è in modalità 32 bit, non sa nulla del codice a 64 bit e se va bene si blocca su un illegal opcode. se devo essere sincero non ho mai approfondito più di tanto la questione di quale foreign architecture puoi installare sulla tua macchina e una volta fatto cosa effettivamente ci puoi fare. L'unica cosa che ho fatto è installare l'architettura i386 su un'architettura amd64. Però se si guarda il wiki di Debian relativo alla multiarchitettura[¹] prima indica con questa frase "either the kernel supports a compatibility interface, notably 64bit kernels often support running 32bit software (but most probably not the converse)" che non sembra escludere definitivamente questa possibilità, mentre io mi sarei aspettato, come hai indicato tu, una frase che escludesse categoricamente l'esecuzione di software a 64 bit su un'architettura hardware a 32 bit. Poi però offre una modalità per poter eseguire qualsiasi software di qualsiasi architettura hardware supportata da Debian sulla propria architettura hardware "nativa": "or a qemu-user instance is configured to act as an on-the-fly emulation layer, see QemuUserEmulation" che punta alla pagina di QemuUserEmulation[²] Da quello che ho capito, guardando rapidamente questa seconda pagina, sembra possibile installare software di una qualsiasi foreign architecture ed eseguirlo in modo trasparente, come se fosse dell'architettura "nativa". La cosa è molto interessante e, ad avere tempo, sarebbe da sperimentare Ciao Davide [¹] https://wiki.debian.org/Multiarch/HOWTO [²] https://wiki.debian.org/QemuUserEmulation -- Sistema operativo: http://www.debian.org GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: Ancora CIE e middleware
Il 18/10/2021 22:21, Davide Prina ha scritto: On 18/10/21 08:49, Diego Zuccato wrote: Ovviamente: un sistema a 64 bit può gestire una lib a 32 bit ma non viceversa. in teoria, con Debian, puoi creare un sistema a più architetture hardware e quindi avere un sistema 64-32 bit... e probabilmente lo puoi ottenere sia partendo da un sistema a 32 che da uno a 64 (ho provato solo da amd64 aggiungere i386) Si, puoi forse partire da uno a 32 bit, ma se il kernel non è a 64 bit, il processore girerà solo a 32. In pratica il processore in modalità 64 bit riconosce il codice a 32 bit e va in modalità compatibile (sto semplificando al massimo). Ma se il processore è in modalità 32 bit, non sa nulla del codice a 64 bit e se va bene si blocca su un illegal opcode. -- Diego Zuccato DIFA - Dip. di Fisica e Astronomia Servizi Informatici Alma Mater Studiorum - Università di Bologna V.le Berti-Pichat 6/2 - 40127 Bologna - Italy tel.: +39 051 20 95786
Re: Ancora CIE e middleware
On 18/10/21 08:49, Diego Zuccato wrote: Ovviamente: un sistema a 64 bit può gestire una lib a 32 bit ma non viceversa. in teoria, con Debian, puoi creare un sistema a più architetture hardware e quindi avere un sistema 64-32 bit... e probabilmente lo puoi ottenere sia partendo da un sistema a 32 che da uno a 64 (ho provato solo da amd64 aggiungere i386) Però dalla mia scarsa esperienza ho visto che è meglio evitare di avere un sistema misto perché con gli aggiornamenti tende a installarti troppe cose che non ti servono dell'altra architettura hardware e alle volte puoi avere qualche piccolo problema. Inoltre, se non erro, puoi usare debootstrap per crearti un'installazione di un sistema a 64 bit a partire da uno di 32. Di sicuro l'ho usato a partire da amd64 installando "altro", ma quando lo usavo con i386 probabilmente installavo altro sempre i386. Notare che debootstrap dovrebbe qualche piccolo problema attualmente, che si può aggirare abbastanza facilmente smanettando un po'. Ciao Davide -- Sistema operativo: http://www.debian.org GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook
Re: Ancora CIE e middleware
Il 18/10/21 09:41, Marco Ciampa ha scritto: > On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: >> Non riesco però a far abbinare la CIE nel software middleware, inserisco il >> pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la >> libreria opensc. > > Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE > italiana > > devi usare il binario fornito dal ministero. > > > -- > > Saluton, > Marco Ciampa > Confermo, appena abilitato la mia CIE installando il software messo a disposizione del Ministero (cie-middleware_*.deb), previa installazione della libreria fornita dalla stessa bit4id per far funzionare il lettore minilector air3 (che ha installato i protocolli non presenti, bit4id-ccid-amd64.*.deb), lettore direttamente acquistato da loro (non mi è arrivato come ad altri la versione plus, probabile che ciò avvenga ordinando su Amazon, visto costicchia quasi 6€ o 7€ di più). -- _|_|_|_|_|_|_|_|_|_ |_|_|_|_|_|_|_|_|_|_| Simone Girardelli
Re: Ancora CIE e middleware
On Mon,18 Oct 15:12:07, Piviul wrote: > Il 18/10/21 11:54, G97 ha scritto: > > On Mon,18 Oct 07:41:17, Marco Ciampa wrote: > > > On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: > > > > Non riesco però a far abbinare la CIE nel software middleware, > > > > inserisco il > > > > pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce > > > > la > > > > libreria opensc. > > > Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE > > > italiana > > > > > > devi usare il binario fornito dal ministero. > > Che, come avevo scritto, purtroppo è solo a 64 bit! > > se ne sei sicuro Penso di si: /tmp/mc-user/vfsZHIHB1libcie-pkcs11.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=8d3592624ac9fd216dbdbab841c13deb2cd44971, not stripped >potresti vedere se riesci a compilartelo a 32bit: > https://github.com/italia/cie-middleware-linux E' stata una delle prime idee, compilo il tutto, poi uso solo la libreria, ma sembra che manchi qualcosa in quel coso.
Re: Ancora CIE e middleware
Il 18/10/21 11:54, G97 ha scritto: On Mon,18 Oct 07:41:17, Marco Ciampa wrote: On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: Non riesco però a far abbinare la CIE nel software middleware, inserisco il pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la libreria opensc. Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE italiana devi usare il binario fornito dal ministero. Che, come avevo scritto, purtroppo è solo a 64 bit! se ne sei sicuro potresti vedere se riesci a compilartelo a 32bit: https://github.com/italia/cie-middleware-linux Piviul
Re: Ancora CIE e middleware
On Mon, Oct 18, 2021 at 11:54:30AM +0200, G97 wrote: > On Mon,18 Oct 07:41:17, Marco Ciampa wrote: > > On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: > > > Non riesco però a far abbinare la CIE nel software middleware, inserisco > > > il > > > pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la > > > libreria opensc. > > > > Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE > > italiana > > > > devi usare il binario fornito dal ministero. > > Che, come avevo scritto, purtroppo è solo a 64 bit! Quindi non hai scelta.. -- Saluton, Marco Ciampa
Re: Ancora CIE e middleware
On Mon,18 Oct 07:41:17, Marco Ciampa wrote: > On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: > > Non riesco però a far abbinare la CIE nel software middleware, inserisco il > > pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la > > libreria opensc. > > Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE > italiana > > devi usare il binario fornito dal ministero. Che, come avevo scritto, purtroppo è solo a 64 bit!
Re: Ancora CIE e middleware
On Fri, Oct 15, 2021 at 11:21:58PM +0200, G97 wrote: > Non riesco però a far abbinare la CIE nel software middleware, inserisco il > pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la > libreria opensc. Opensc _non_ è compatibile (per ora) con il protocollo usato dalla CIE italiana devi usare il binario fornito dal ministero. -- Saluton, Marco Ciampa
Re: Ancora CIE e middleware
Il 15/10/2021 23:21, G97 ha scritto: Ho avuto (ovviamente) problemi con firefox per far digerire la libreria /usr/local/lib/libcie-pkcs11.so perchè è per sistemi a 64bit Ovviamente: un sistema a 64 bit può gestire una lib a 32 bit ma non viceversa. Sapete dove/come reperire la libcie-pkcs11.so a 32 bit?Hai provato https://github.com/italia/cie-middleware-linux ? Potrebbe essere utile anche questa guida: https://www.dontesta.it/2020/11/04/raspberry-pi-come-installare-minilector-cie-ubuntu-server-20-04-lts/ Seguita su un sistema a 32 bit dovrebbe generare una lib a 32 bit... -- Diego Zuccato DIFA - Dip. di Fisica e Astronomia Servizi Informatici Alma Mater Studiorum - Università di Bologna V.le Berti-Pichat 6/2 - 40127 Bologna - Italy tel.: +39 051 20 95786
Ancora CIE e middleware
Ho seguito su usenet le discussioni riguardo le configurazioni per leggere la CIE e far funzionare middleware. Ho un portatile con installato un vecchio win 8.1 lasciato solo per 'sport' in cui uso l'HD solo come archivio files. Uso invece pennette usb con varie versioni live persistenti di debian (attualmente stretch 32bit e buster 64bit) per far funzionare il computer. Sono riuscito con non pochi problemi a far funzionare un lettore bit4id (minilector-air duo) e tutto l'ambaradan per connettermi al sito inps con la chiavetta buster 64bit. Mentre con la chiavetta stretch 32bit, riesco a far funzionare il lettore, ma il software middleware no. Ho avuto (ovviamente) problemi con firefox per far digerire la libreria /usr/local/lib/libcie-pkcs11.so perchè è per sistemi a 64bit Ho quindi installato le opensc-pkcs11:i386 (0.16.0-3+deb9u1) e messo un link simbolico in /usr/local/lib come libcie-pkcs11.so, e firefox lo ha digerito. Non riesco però a far abbinare la CIE nel software middleware, inserisco il pin, mi visualizza 'progress' e non va oltre. Sicuramente non digerisce la libreria opensc. Sapete dove/come reperire la libcie-pkcs11.so a 32 bit? grazie.