Llançament d'OpenSSH 8.2 amb suport per a fitxes d'autenticació de dos factors FIDO/U2F

Després de quatre mesos de desenvolupament presentat alliberament OpenSSH 8.2, una implementació oberta de client i servidor per treballar mitjançant els protocols SSH 2.0 i SFTP.

Una millora clau en el llançament d'OpenSSH 8.2 va ser la capacitat d'utilitzar l'autenticació de dos factors mitjançant dispositius compatibles amb el protocol. U2F, desenvolupat per l'aliança FID. U2F permet la creació de fitxes de maquinari de baix cost per verificar la presència física de l'usuari, interactuant amb ells mitjançant USB, Bluetooth o NFC. Aquests dispositius es promocionen com a mitjà d'autenticació de dos factors als llocs web, ja són compatibles amb els principals navegadors i són produïts per diversos fabricants, com Yubico, Feitian, Thetis i Kensington.

Per interactuar amb dispositius que confirmen la presència de l'usuari, s'han afegit nous tipus de clau "ecdsa-sk" i "ed25519-sk" a OpenSSH, que utilitzen els algorismes de signatura digital ECDSA i Ed25519, combinats amb el hash SHA-256. Els procediments per interactuar amb fitxes es col·loquen en una biblioteca intermèdia, que es carrega de manera similar a la biblioteca per al suport PKCS#11 i és un embolcall a la part superior de la biblioteca. libfido2, que proporciona eines per comunicar-se amb testimonis mitjançant USB (s'admeten els protocols FIDO U2F/CTAP 1 i FIDO 2.0/CTAP 2). Biblioteca intermèdia libsk-libfido2 preparada pels desenvolupadors d'OpenSSH inclòs al nucli libfido2, així com Controlador HID per a OpenBSD.

Per autenticar i generar una clau, heu d'especificar el paràmetre "SecurityKeyProvider" a la configuració o establir la variable d'entorn SSH_SK_PROVIDER, indicant el camí a la biblioteca externa libsk-libfido2.so (exportar SSH_SK_PROVIDER=/path/to/libsk-libfido2. tan). És possible crear openssh amb suport integrat per a la biblioteca de capes (--with-security-key-builtin), en aquest cas, heu d'establir el paràmetre "SecurityKeyProvider=internal".
A continuació, heu d'executar "ssh-keygen -t ecdsa-sk" o, si les claus ja s'han creat i configurat, connecteu-vos al servidor mitjançant "ssh". Quan executeu ssh-keygen, el parell de claus generat es desarà a "~/.ssh/id_ecdsa_sk" i es pot utilitzar de manera similar a altres claus.

La clau pública (id_ecdsa_sk.pub) s'ha de copiar al servidor al fitxer authorized_keys. Al costat del servidor, només es verifica la signatura digital i la interacció amb els testimonis es realitza al costat del client (no cal instal·lar libsk-libfido2 al servidor, però el servidor ha de suportar el tipus de clau "ecdsa-sk"). . La clau privada generada (id_ecdsa_sk) és essencialment un controlador de clau, formant una clau real només en combinació amb la seqüència secreta emmagatzemada al costat del testimoni U2F. Si la clau id_ecdsa_sk cau en mans d'un atacant, per passar l'autenticació també haurà d'accedir al testimoni de maquinari, sense el qual la clau privada emmagatzemada al fitxer id_ecdsa_sk és inútil.

A més, per defecte, quan es realitza qualsevol operació amb claus (tant durant la generació com durant l'autenticació), es requereix la confirmació local de la presència física de l'usuari, per exemple, es proposa tocar el sensor del testimoni, cosa que dificulta realitzar atacs remots a sistemes amb un testimoni connectat. Com una altra línia de defensa, també es pot especificar una contrasenya durant la fase d'inici de ssh-keygen per accedir al fitxer de claus.

La nova versió d'OpenSSH també va anunciar la propera desaparició dels algorismes que utilitzen hash SHA-1 a causa de promoció l'efectivitat dels atacs de col·lisió amb un prefix determinat (el cost de seleccionar una col·lisió s'estima en aproximadament 45 mil dòlars). En un dels propers llançaments, tenen previst desactivar per defecte la possibilitat d'utilitzar l'algorisme de signatura digital de clau pública "ssh-rsa", que s'esmenta a l'RFC original per al protocol SSH i segueix estès a la pràctica (per provar l'ús). de ssh-rsa als vostres sistemes, podeu provar de connectar-vos mitjançant ssh amb l'opció "-oHostKeyAlgorithms=-ssh-rsa").

Per suavitzar la transició a nous algorismes a OpenSSH, en una versió futura s'habilitarà la configuració UpdateHostKeys de manera predeterminada, que migrarà automàticament els clients a algorismes més fiables. Els algorismes recomanats per a la migració inclouen rsa-sha2-256/512 basat en RFC8332 RSA SHA-2 (admès des d'OpenSSH 7.2 i utilitzat per defecte), ssh-ed25519 (admès des d'OpenSSH 6.5) i basat en ecdsa-sha2-nistp256/384/521/5656. a RFC5.7 ECDSA (admès des d'OpenSSH XNUMX).

A OpenSSH 8.2, la possibilitat de connectar-se mitjançant "ssh-rsa" encara està disponible, però aquest algorisme s'ha eliminat de la llista CASignatureAlgorithms, que defineix els algorismes permesos per signar nous certificats digitalment. De la mateixa manera, l'algoritme diffie-hellman-group14-sha1 s'ha eliminat dels algorismes d'intercanvi de claus per defecte admesos. S'observa que l'ús de SHA-1 en certificats està associat amb un risc addicional, ja que l'atacant té temps il·limitat per buscar una col·lisió per a un certificat existent, mentre que el temps d'atac a les claus de l'amfitrió està limitat pel temps d'espera de la connexió (LoginGraceTime ).

L'execució de ssh-keygen ara fa servir per defecte l'algoritme rsa-sha2-512, que és compatible des d'OpenSSH 7.2, que pot crear problemes de compatibilitat quan s'intenta processar certificats signats a OpenSSH 8.2 en sistemes que executen versions anteriors d'OpenSSH (per solucionar el problema quan generant una signatura, podeu especificar explícitament "ssh-keygen -t ssh-rsa" o utilitzar els algorismes ecdsa-sha2-nistp256/384/521, compatibles des d'OpenSSH 5.7).

Altres canvis:

  • S'ha afegit una directiva Include a sshd_config, que us permet incloure el contingut d'altres fitxers a la posició actual del fitxer de configuració (es poden utilitzar màscares globus quan especifiqueu el nom del fitxer);
  • S'ha afegit l'opció "no-touch-required" a ssh-keygen, que desactiva la necessitat de confirmar físicament l'accés al testimoni quan es genera la clau;
  • S'ha afegit una directiva PubkeyAuthOptions a sshd_config, que combina diverses opcions relacionades amb l'autenticació de clau pública. Actualment, només s'admet la marca "no cal tocar" per saltar les comprovacions de presència física per a l'autenticació de testimoni. Per analogia, s'ha afegit l'opció "no-touch-required" al fitxer authorized_keys;
  • S'ha afegit l'opció "-O write-attestation=/path" a ssh-keygen per permetre que s'escriguin certificats d'acreditació FIDO addicionals quan es generen claus. L'OpenSSH encara no utilitza aquests certificats, però després es poden utilitzar per verificar que la clau està col·locada en un magatzem de maquinari de confiança;
  • A la configuració ssh i sshd, ara és possible establir el mode de priorització del trànsit mitjançant la directiva IPQoS LE DSCP (Comportament de baix esforç per salt);
  • A ssh, quan s'estableix el valor "AddKeysToAgent=yes", si la clau no conté un camp de comentari, s'afegirà a ssh-agent indicant el camí a la clau com a comentari. EN
    ssh-keygen i ssh-agent també utilitzen ara les etiquetes PKCS#11 i el nom del subjecte X.509 en comptes del camí de la biblioteca com a comentaris a la clau;

  • S'ha afegit la possibilitat d'exportar PEM per a claus DSA i ECDSA a ssh-keygen;
  • S'ha afegit un nou executable, ssh-sk-helper, utilitzat per aïllar la biblioteca d'accés al testimoni FIDO/U2F;
  • S'ha afegit l'opció de compilació "--with-zlib" a ssh i sshd per a la compilació amb suport de la biblioteca zlib;
  • D'acord amb el requisit de RFC4253, es proporciona un avís sobre el bloqueig d'accés a causa de la superació dels límits de MaxStartups al bàner que es mostra durant la connexió. Per simplificar el diagnòstic, la capçalera del procés sshd, visible quan s'utilitza la utilitat ps, ara mostra el nombre de connexions autenticades actualment i l'estat del límit de MaxStartups;
  • En ssh i ssh-agent, quan es crida a un programa per mostrar una invitació a la pantalla, especificada a través de $SSH_ASKPASS, ara es transmet un senyalador amb el tipus d'invitació: "confirmar" - diàleg de confirmació (sí/no), "cap " - missatge informatiu, "en blanc" - sol·licitud de contrasenya;
  • S'ha afegit una nova operació de signatures digitals "find-principals" a ssh-keygen per cercar el fitxer de signants permès per a l'usuari associat amb una signatura digital especificada;
  • Suport millorat per a l'aïllament del procés sshd a Linux mitjançant el mecanisme seccomp: desactivació de les trucades al sistema IPC, permetent clock_gettime64(), clock_nanosleep_time64 i clock_nanosleep().

Font: opennet.ru

Afegeix comentari