menu di navigazione del network

Test autenticazione CIE via container docker

Ciao Nicola.
Ti ringrazio per l’apprezzamento. Il sistema che ho messo in piedi è indipendente dall’hardware, quindi dal lettore utilizzato e driver connessi. L’importante è che il certificato digitale sia passato al server per la verifica.

OpenSC supporta gran parte dei lettori in commercio ma non tutti. Al contrario il middleware CIE supporta correttamente il tuo lettore, conseguentemente il certificato digitale viene passato al server per la validazione.

Puoi trovare tutti i dettagli qui https://github.com/OpenSC/OpenSC/wiki/Italian-CNS-and-CIE

Io per esempio utilizzo l’hardware di Bit4Id e in particolare https://www.bit4id.com/wp-content/uploads/2019/05/minilector_cie.pdf utilizzando OpenSC.

Grazie Antonio,
approfitto della tua enorme disponibilità per chiederti un’ultima informazione: con il lettore che mi hai indicato, sarà necessario sempre registrare la CIE sul pc prima di poter accedere oppure sarà sufficiente inserire le 4 cifre finali del pin?

Ciao Nicola.
Non ricordo, è passato un pochino di tempo ed è stata in mio possesso per poco tempo, giusto per dei test. Credo però che fosse sufficiente l’inserimento del pin code.

Ciao a tutti, ho fatto una domanda correlata a questo post qui: Test Autenticazione tramite CNS/CIE

Ecco il contenuto della mia domanda… qualcuno può aiutarmi?

Ciao a tutti, ho seguito queste istruzioni per tirare su un docker per il test dell’autenticazione tramite CNS/CIE. Ho due domande:

1. Non sono in possesso nè di CIE, nè di CNS, ma mi servirebbe testare la corretta implementazione del flusso di autenticazione. Esistono dei certificati di test messi a disposizione su internet per fare questa tipologia di test?

2. Se io volessi replicare l’esperimento docker per una mia applicazione (ovvero implementare l’autenticazione tramite CNS/CIE su una mia applicazione), dove posso trovare tutti i requisiti da installare come nel docker? Esiste una procedura tecnica? Non ho trovato nulla online…

Grazie!

Ciao Patrizia.
Sono l’autore del progetto. Spero che le indicazioni sul README del progetto siano state esaustive.

Quando ho creato il progetto, per i test ho utilizzato la mia CNS che ho attivato (quella del codice fiscale per intenderci). Per il test della CIE ho fatto lo stesso, ho richiesto la CIE.

Questo progetto è fatto per funzionare con dati reali, quindi, CNS e CIE.

Che io sappia, online non sono disponibili certificati di test.

Il flusso di autenticazione è semplice, standard. Non è altro che una two-way authentication over SSL/TLS.

Ho creato un altro progetto parallelo di autenticazione basati su certificati digitali che puoi trovare sul mio repository GitHub https://github.com/amusarra/docker-apache-ssl-tls-mutual-authentication

Fammi sapere qualora ti servisse qualche altra informazione.

Spero di esserti stato utile.

Ciao Antonio, grazie mille per la risposta!
L’altro progetto che mi hai linkato in cosa serve per l’autenticazione con CNS? L’hai utilizzato all’interno dell’altro progetto? Scusa la domanda banale ma mi sto approcciando a questo argomento da pochi giorni.

Ciao Patrizia.
Il progetto che ho linkato è nella realtà il padre del progetto cie-cns-apache-docker, con la differenza che quest’ultimo è specializzato per il processo di mutua autenticazione utilizzando i certificati digitali che sono memorizzati all’interno della CNS o CIE ed in più verifica che i certificati siano rilasciati da una delle CA accreditate e che abbiano determinate policy.

Ti ringrazio ancora! Sto leggendo tutta la tua documentazione ed è molto dettagliata, ti ringrazio.
Ho una domanda. Ho visto che i certificati del server sono scaduti (perchè hai scritto nella doc: La scadenza prevista per questo certificato è il 20 Agosto 2019. ) Volevo provare a capire come funzionasse la verifica tramite OCSP, ma il comando all’interno della tua documentazione ( echo QUIT | openssl s_client -connect cns.dontesta.it:443 -status 2> /dev/null | grep -A 17 ‘OCSP response:’ | grep -B 17 ‘Next Update’) non mi restituisce nulla (considera che il docker è online e riesco a raggiungere correttamente https://cns.dontesta.it:10443/ ), in più il test su quel link ( ssllabs.com) non riesce a raggiungere l’url (Assessment failed: Unable to connect to the server ). Come posso fare questa verifica? (ovviamente so che nel caso dei tuoi certificati mi dovrebbe dire che sono scaduti) Mi piacerebbe inoltre impostarla in modo che sia periodica e non manuale, ma questo è un secondo passaggio.

Grazie ancora per la disponibilità!

Scusa, mi ri-cito. Ce l’ho fatta con il seguente comando: openssl s_client -connect cns.dontesta.it:10443 -status -servername cns.dontesta.it

Ottimo!

Considera che la versione demo che avevo messo su Google Cloud e che rispondeva all’indirizzo https://cns.dontesta.it non è più disponibile, forse più in la renderò nuovamente disponibile l’ambiente demo.

Vorrei provare a chiedere a Developer Italia di mettere su l’ambiente di test sui loro sistema, così come per lo SPID.

Ciao Antonio, torno nuovamente a disturbarti…
Ho acquistato il lettore miniLector AIR v3, installato OPENSC ver 0.19 ma continuo ad avere problemi. Il sistema continua a darmi l’errore "Verifica che il lettore sia correttamente collegato e funzionante, e che la carta CIE o TS-CNS sia correttamente inserita o appoggiata sul lettore nel momento in cui si procede con l’accesso. "
L’ho provato su Win7 x64 e WIN10 x64.
Se invece installo il middleware CIE funziona.
Dove sbaglio? Devo configurare in qualche modo OPENSC?
Potresti darmi una dritta?
Grazie in anticipo.

Ciao Nicola.
Personalmente non ho mai provato OpenSC su Windows. Non vorrei che ci fosse qualche incompatibilità.

Ti potrei consigliare di leggere questo mio articolo http://bit.ly/2VFMKq7 Come accedere al portale VETINFO tramite TS-CNS e Mac OS, dove puoi trovare una serie d’indicazioni per verificare il corretto funzionamento di OpenSC e lettore CNS e nel tuo caso CIE.

Una buona serata e spero di averti dato qualche informazione utile.

Ciao amusarra, stavo cercando di seguire questo tuo github. Ho provato l’autenticazione tramite certificati ma mi da errore e non mi fa autenticare. Ho anche provato a rigenerarli. Come mai?

Ciao Patrizia.
Con così poche informazioni non riuscirò a darti una mano.

Ciao Antonio, sto ancora lavorando sull’implementazione dell’autenticazione tramite CIE-CNS su un mio ambiente di test.
Avrei una domanda: serve una CA trustata (quindi non self-signed) per fare un test con una CNS reale? Perchè ho seguito tutte le tue istruzioni ma al momento della chiamata al file certificate_policy_check.php (che ti incollo di seguito in quanto ho modificato per fare un po’ di debug) è come se non riuscisse a leggere la variabile SSL_CLIENT_CERT (sembra sempre nulla!)

Di seguito lo script modificato (risulta sempre ‘match ok’):

<?php
$cnsCertificatePolicies = 'Policy: 1.3.76.16.2.1';
#$cieCertificatePolicies = 'Policy: 1.3.76.47.4';

$ssl = openssl_x509_parse(getenv('SSL_CLIENT_CERT'));

if((preg_match("/$cnsCertificatePolicies$/m", $ssl['extensions']['certificatePolicies']) == 0)) {
	echo "match ok";
} else {
	echo "NO match";
}

Ti ringrazio anticipatamente.

Patrizia

Ciao Patrizia.
Ti confermo che l’ambiente da me creato funziona esclusivamente con CNS e CIE reali con aggiornamento giornaliero dei certificati Trusted.

La variabile SSL_CLIENT_CERT è valorizzata solo nel momento in cui il processo di mutua autenticazione avviene con successo.

Nei prossimi giorni sperò di rimettere online l’ambiente di test.

Ciao,
Antonio

Grazie Antonio! Ci sono riuscita. Grazie mille per il supporto.
Volevo chiederti un’altra cosa, in generale per la mutua autenticazione… quando il browser mi chiede di scegliere il certificato per autenticarmi alla parte “protetta”, dopo la prima volta non me lo richiede più (non esce più il popup) come se l’avesse cachato… sai se c’è qualche configurazione affinchè il popup esca tutte le volte che io cerco di accedere alla parte “protetta”?

Ciao Patrizia.
Ottimo che sei riuscita nella tua impresa.

Per quel che riguarda la richiesta del PIN, il protocollo CSP prevede l’utilizzo di un sistema di cache per il PIN. Che io sappia da browser non è possibile evitare l’utilizzo della cache.

Qui puoi trovare maggiori dettagli https://docs.microsoft.com/en-us/windows/security/identity-protection/smart-cards/smart-card-architecture#pin-caching

Ciao,
Antonio

Ho letto la documentazione, grazie mille. Lascerò così com’è.
A questo punto mi sorge un’altra domanda… nel sistema che sto implementando c’è sia l’accesso tramite SPID (con shibboleth) che quello tramite CNS che ho implementato seguendo le tue istruzioni… ho un problema. Dalla mia “home” dove ci sono i due pulsantini -accedi con spid- e -accedi con CNS- io devo atterrare in un’area sicura che però è la stessa sia per CNS che per SPID. Il problema sorge perchè nelle configurazioni ssl per questa location ‘protetta’ io ho:

<Location "/protetto">
     SSLVerifyClient require
     SSLVerifyDepth 10
</Location>

Invece sulle configurazioni di shibboleth ho:

<Location "/protetto">
		AuthType shibboleth
        ShibRequestSetting requireSession 1
        Require shib-session
        ShibUseHeaders On
</Location>

quindi le due configurazioni vanno in conflitto…sai se c’è un modo per dire ad apache di richiedere l’autenticazione tramite certificato se clicco su un bottone e di richiedere quella tramite shibboleth (per spid) se clicco l’altro? O devo fare necessariamente due location diverse?

Grazie anticipatamente!

Ciao Patrizia.
Volendo potresti mantenere le due location e utilizzare le Expressions di Apache per risolvere il tuo problema.

Bye,
Antonio.