OpenSSH afegeix suport per a l'autenticació universal de dos factors

A la base de codi OpenSSH afegit suport experimental per a 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'ha afegit un nou tipus de claus a OpenSSH "[protegit per correu electrònic]” (“ecdsa-sk”), que utilitza l'algoritme de signatura digital ECDSA (Elliptic Curve Digital Signature Algorithm) amb corba el·líptica NIST P-256 i 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 habilitar U2F, podeu utilitzar una nova part de la base de codi des repositori OpenSSH i la branca HEAD de la biblioteca libfido2, que ja inclou la capa necessària per a OpenSSH.
Libfido2 és compatible amb OpenBSD, Linux, macOS i Windows.

Per autenticar i generar una clau, cal establir la variable d'entorn SSH_SK_PROVIDER, indicant-hi el camí a libsk-libfido2.so (exportar SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), o definir la biblioteca mitjançant SecurityKeyProvider i, a continuació, executeu "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 clau U2F es pot afegir a ssh-agent mitjançant "ssh-add ~/.ssh/id_ecdsa_sk", però ssh-agent s'ha de crear amb suport per a les claus "ecdsa-sk", la capa libsk-libfido2 ha d'estar present i la L'agent s'ha d'executar al sistema, al qual està connectat el testimoni.
S'ha afegit un nou tipus de clau "ecdsa-sk" ja que el format de les claus ecdsa d'OpenSSH és diferent del format U2F per a signatures digitals ECDSA en presència de camps addicionals.

Font: opennet.ru

Afegeix comentari