OpenSSH ha aggiunto il supporto per l'autenticazione universale a due fattori

Nel codice sorgente di OpenSSH aggiunta supporto sperimentale per l'autenticazione a due fattori utilizzando dispositivi che supportano il protocollo U2F, sviluppato dall'alleanza FIDO. U2F consente la creazione di token hardware economici per confermare la presenza fisica dell'utente, che interagiscono tramite USB, Bluetooth o NFC. Questi dispositivi sono promossi come mezzo per l'autenticazione a due fattori su siti web, sono già supportati dai principali browser e sono prodotti da diversi produttori, tra cui Yubico, Feitian, Thetis e Kensington.

Per interagire con i dispositivi che confermano la presenza dell'utente, in OpenSSH è stato aggiunto un nuovo tipo di chiave "sk-ecdsa-sha2-nistp256@openssh.com" ("ecdsa-sk"), che utilizza l'algoritmo di firma digitale ECDSA (Elliptic Curve Digital Signature Algorithm) con la curva ellittica NIST P-256 e l'hash SHA-256. Le procedure di interazione con i token sono state spostate in una libreria intermedia, che viene caricata in modo simile a una libreria per supportare PKCS#11 e funge da wrapper sopra la libreria libfido2, fornendo mezzi di comunicazione con i token tramite USB (supporta i protocolli FIDO U2F/CTAP 1 e FIDO 2.0/CTAP 2). La libreria intermedia libsk-libfido2 è stata preparata dagli sviluppatori di OpenSSH. è inclusa nel pacchetto principale di libfido2, come anche il driver HID per OpenBSD.

Per abilitare U2F, puoi utilizzare l'ultima versione del codice sorgente da del repository OpenSSH e il ramo HEAD della libreria libfido2, che già include il layer necessario per OpenSSH.
Libfido2 supporta il funzionamento su OpenBSD, Linux, macOS e Windows.

Per l'autenticazione e la generazione della chiave, è necessario impostare la variabile d'ambiente SSH_SK_PROVIDER, specificando il percorso a libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), o definire la libreria tramite la configurazione SecurityKeyProvider, dopo di che puoi eseguire "ssh-keygen -t ecdsa-sk" o, se le chiavi sono già create e configurate, connetterti al server utilizzando "ssh". All'avvio di ssh-keygen, la coppia di chiavi generata verrà salvata in "~/.ssh/id_ecdsa_sk" e può essere utilizzata come le altre chiavi.

La chiave pubblica (id_ecdsa_sk.pub) deve essere copiata sul server nel file authorized_keys. Dalla parte del server viene solo verificata la firma digitale, mentre l'interazione con i token avviene dalla parte client (non è necessario installare libsk-libfido2 sul server, ma il server deve supportare il tipo di chiave "ecdsa-sk"). La chiave privata generata (id_ecdsa_sk) è fondamentalmente un descrittore della chiave, creando la chiave reale solo in combinazione con la sequenza segreta memorizzata sul token U2F.

Se la chiave id_ecdsa_sk finisce nelle mani di un attaccante, per completare l'autenticazione dovrà anche avere accesso al token hardware, senza il quale la chiave privata memorizzata nel file id_ecdsa_sk è inutile. Inoltre, per impostazione predefinita, qualsiasi operazione con le chiavi (sia durante la generazione che durante l'autenticazione) richiede una conferma locale della presenza fisica dell'utente, ad esempio, si può essere invitati a toccare il sensore sul token, il che rende difficili gli attacchi remoti su sistemi con il token collegato. Come ulteriore livello di protezione, in fase di avvio di ssh-keygen, può anche essere impostata una password per accedere al file con la chiave.

La chiave U2F può essere aggiunta a ssh-agent tramite "ssh-add ~/.ssh/id_ecdsa_sk", ma ssh-agent deve essere compilato con supporto per chiavi "ecdsa-sk", deve essere presente il layer libsk-libfido2 e l'agente deve essere eseguito sul sistema a cui si collega il token.
Il nuovo tipo di chiavi "ecdsa-sk" è stato aggiunto poiché il formato delle chiavi ecdsa di OpenSSH differisce dal formato U2F per firme digitali ECDSA per la presenza di campi aggiuntivi.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster