Liberazione di OpenSSH 8.2 cù supportu per i tokens di autentificazione à dui fattori FIDO / U2F

Dopu quattru mesi di sviluppu prisentatu liberazione OpenSSH 8.2, una implementazione di cliente è servitore apertu per travaglià via i protokolli SSH 2.0 è SFTP.

Una mellura chjave in a liberazione di OpenSSH 8.2 era a capacità di utilizà l'autentificazione à dui fattori cù i dispositi chì supportanu u protokollu U2F, sviluppatu da l'alleanza Fido. U2F permette a creazione di tokens di hardware low-cost per verificà a presenza fisica di l'utilizatori, interagisce cun elli via USB, Bluetooth o NFC. Tali dispusitivi sò prumuvuti cum'è un mezzu di autentificazione à dui fattori in i siti web, sò digià supportati da i navigatori principali è sò pruduciuti da parechji pruduttori, cumpresi Yubico, Feitian, Thetis è Kensington.

Per interagisce cù i dispositi chì cunfirmanu a presenza di l'utilizatori, novi tipi di chjave "ecdsa-sk" è "ed25519-sk" sò stati aghjunti à OpenSSH, chì utilizanu l'algoritmi di firma digitale ECDSA è Ed25519, cumminati cù l'hash SHA-256. I prucedure per l'interazzione cù i tokens sò posti in una biblioteca intermedia, chì hè caricata in modu simili à a biblioteca per u supportu PKCS # 11 è hè un wrapper in cima di a biblioteca. libfido2, chì furnisce strumenti per cumunicà cù tokens per USB (i protokolli FIDO U2F / CTAP 1 è FIDO 2.0 / CTAP 2 sò supportati). Libreria intermedia libsk-libfido2 preparata da sviluppatori OpenSSH inclusu in u core libfido2, è ancu driver HID per OpenBSD.

Per autentificà è generà una chjave, deve specificà u paràmetru "SecurityKeyProvider" in i paràmetri o stabilisce a variabile di l'ambiente SSH_SK_PROVIDER, indichendu u percorsu à a biblioteca esterna libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2. cusì). Hè pussibule di custruisce openssh cù supportu integratu per a biblioteca di strati (--with-security-key-builtin), in questu casu avete bisognu di stabilisce u paràmetru "SecurityKeyProvider=internal".
Dopu avete bisognu di eseguisce "ssh-keygen -t ecdsa-sk" o, se e chjavi sò digià stati creati è cunfigurati, cunnette à u servitore cù "ssh". Quandu eseguite ssh-keygen, a coppia di chjave generata serà salvata in "~/.ssh/id_ecdsa_sk" è pò esse usata in modu simile à altre chjave.

A chjave publica (id_ecdsa_sk.pub) deve esse copiata à u servitore in u schedariu authorized_keys. Da u latu di u servitore, solu a firma digitale hè verificata, è l'interazzione cù i tokens hè realizatu da u latu di u cliente (ùn hè micca bisognu di stallà libsk-libfido2 nantu à u servitore, ma u servitore deve sustene u tipu di chjave "ecdsa-sk"). . A chjave privata generata (id_ecdsa_sk) hè essenzialmente un manicu di chjave, furmendu una chjave vera solu in cumminazione cù a sequenza secreta almacenata in u token U2F. Se a chjave id_ecdsa_sk cade in e mani di un attaccante, per passà l'autentificazione hà ancu bisognu di accede à u token di hardware, senza chì a chjave privata guardata in u schedariu id_ecdsa_sk hè inutile.

Inoltre, in modu predeterminatu, quandu eseguisce ogni operazione cù chjavi (sia durante a generazione sia durante l'autentificazione), a cunferma lucale di a presenza fisica di l'utilizatore hè necessaria, per esempiu, hè prupostu di toccu u sensoru nantu à u token, chì rende difficiule di fà. realizà attacchi remoti à i sistemi cù un token cunnessu. Cum'è una altra linea di difesa, una password pò ancu esse specificata durante a fase di startup di ssh-keygen per accede à u schedariu chjave.

A nova versione di OpenSSH hà ancu annunziatu a prossima deprecazione di l'algoritmi chì utilizanu hash SHA-1 per via di prumuzione l'efficacezza di l'attacchi di collisione cù un prefissu datu (u costu di selezzione di una collisione hè stimatu à circa 45 mila dollari). In una di e prossime versioni, pensanu à disattivà per difettu a capacità di utilizà l'algoritmu di firma digitale di chjave publica "ssh-rsa", chì hè citatu in u RFC originale per u protocolu SSH è ferma diffusa in pratica (per pruvà l'usu di ssh-rsa in i vostri sistemi, pudete pruvà à cunnette via ssh cù l'opzione "-oHostKeyAlgorithms=-ssh-rsa").

Per liscia a transizione à novi algoritmi in OpenSSH, in una futura liberazione, l'impostazione UpdateHostKeys serà attivata per automaticamente, chì migrarà automaticamente i clienti à algoritmi più affidabili. L'algoritmi cunsigliati per a migrazione includenu rsa-sha2-256/512 basatu in RFC8332 RSA SHA-2 (supportatu da OpenSSH 7.2 è utilizatu per difettu), ssh-ed25519 (supportatu da OpenSSH 6.5) è ecdsa-sha2-nistp256/384 basatu. nantu à RFC521 ECDSA (supportatu da OpenSSH 5656).

In OpenSSH 8.2, a capacità di cunnette cù "ssh-rsa" hè sempre dispunibule, ma questu algoritmu hè statu eliminatu da a lista CASignatureAlgorithms, chì definisce l'algoritmi permessi per a firma digitale di novi certificati. In listessu modu, l'algoritmu diffie-hellman-group14-sha1 hè statu sguassatu da l'algoritmi di scambiu di chjave predeterminati supportati. Hè nutatu chì l'usu di SHA-1 in i certificati hè assuciatu cù risicu supplementu, postu chì l'attaccante hà u tempu illimitatu per circà una collisione per un certificatu esistente, mentre chì u tempu d'attaccu à e chjave di l'ospiti hè limitatu da u timeout di cunnessione (LoginGraceTime). ).

L'esecuzione di ssh-keygen hè ora predeterminata à l'algoritmu rsa-sha2-512, chì hè supportatu da OpenSSH 7.2, chì pò creà prublemi di cumpatibilità quandu pruvate di processà i certificati firmati in OpenSSH 8.2 in sistemi chì eseguenu versioni OpenSSH più vechje (per travaglià annantu à u prublema quandu Quandu generando una firma, pudete specificà esplicitamente "ssh-keygen -t ssh-rsa" o aduprà l'algoritmi ecdsa-sha2-nistp256/384/521, supportati da OpenSSH 5.7).

Altri cambiamenti:

  • Una direttiva Include hè stata aghjunta à sshd_config, chì permette di include u cuntenutu di l'altri schedari à a pusizione attuale di u schedariu di cunfigurazione (i maschere di globu ponu esse aduprate quandu si specifica u nome di u schedariu);
  • L'opzione "no-touch-required" hè stata aghjunta à ssh-keygen, chì disattiva a necessità di cunfirmà fisicamente l'accessu à u token quandu genera a chjave;
  • Una direttiva PubkeyAuthOptions hè stata aghjunta à sshd_config, chì combina diverse opzioni relative à l'autentificazione di chjave publica. Attualmente, solu a bandiera "senza toccu" hè supportata per saltà i cuntrolli di presenza fisica per l'autenticazione di token. Per analogia, l'opzione "no-touch-required" hè stata aghjunta à u schedariu authorized_keys;
  • Aggiunta l'opzione "-O write-attestation =/path" à ssh-keygen per permette à i certificati di attestazione FIDO supplementari per esse scrittu quandu generanu chjave. OpenSSH ùn anu micca ancu aduprà sti certificati, ma ponu più tardi esse utilizati per verificà chì a chjave hè posta in un hardware di fiducia;
  • In i paràmetri ssh è sshd, hè avà pussibule stabilisce u modu di priorità di trafficu via a direttiva IPQoS LE DSCP (Comportamentu di Lower-Effort Per-Hop);
  • In ssh, quandu stabilisce u valore "AddKeysToAgent = sì", se a chjave ùn cuntene micca un campu di cumentu, serà aghjuntu à ssh-agent indicà a strada à a chjave cum'è un cumentu. IN
    ssh-keygen è ssh-agent anu ancu aduprà l'etichette PKCS#11 è u nome di u sughjettu X.509 invece di a strada di a biblioteca cum'è cumenti in a chjave;

  • Aggiunta a capacità di esportà PEM per e chjave DSA è ECDSA à ssh-keygen;
  • Aggiuntu un novu eseguibile, ssh-sk-helper, utilizatu per isolà a biblioteca di accessu à u token FIDO / U2F;
  • Aggiunta l'opzione di creazione "--with-zlib" à ssh è sshd per a compilazione cù u supportu di a biblioteca zlib;
  • In cunfurmità cù u requisitu di RFC4253, un avvisu annantu à u bloccu di l'accessu per u superamentu di i limiti MaxStartups hè furnitu in u banner affissatu durante a cunnessione. Per simplificà i diagnostichi, l'intestazione di u prucessu sshd, visibile quandu si usa l'utilità ps, mostra avà u nùmeru di cunnessione attualmente autentificate è u statutu di u limitu MaxStartups;
  • In ssh è ssh-agent, quandu chjamà un prugramma per vede un invitu nantu à u screnu, specificatu via $SSH_ASKPASS, una bandiera cù u tipu d'invitu hè avà trasmessa in più: "cunfirmà" - dialogu di cunferma (sì / no), "nimu". " - messagiu informativu, "blank" - dumanda di password;
  • Aggiunta una nova operazione di firma digitale "find-principals" à ssh-keygen per circà u schedariu di signers permessi per l'utilizatore assuciatu cù una firma digitale specifica;
  • Supportu migliuratu per l'isolamentu di u prucessu sshd in Linux utilizendu u mecanismu seccomp: disattivà e chjama di u sistema IPC, permettendu clock_gettime64 (), clock_nanosleep_time64 è clock_nanosleep ().

Source: opennet.ru

Add a comment