OpenSSH ha añadido soporte para autenticación de dos factores universal.

En la base de código de OpenSSH se ha añadido se ha añadido soporte experimental para la autenticación de dos factores utilizando dispositivos que cumplen con el protocolo U2F, desarrollado por la alianza FIDO. U2F permite crear tokens de hardware baratos para confirmar la presencia física del usuario, que interactúan a través de USB, Bluetooth o NFC. Estos dispositivos se promueven como un medio para la autenticación de dos factores en sitios web, ya son compatibles con los principales navegadores y son fabricados por varias empresas, incluyendo Yubico, Feitian, Thetis y Kensington.

Para interactuar con dispositivos que verifican la presencia del usuario, se ha añadido un nuevo tipo de clave en OpenSSH llamado «sk-ecdsa-sha2-nistp256@openssh.com» («ecdsa-sk»), que utiliza el algoritmo de firma digital ECDSA (Elliptic Curve Digital Signature Algorithm) con la curva elíptica NIST P-256 y un hash SHA-256. Los procedimientos de interacción con los tokens se han trasladado a una biblioteca intermedia que se carga de manera similar a la biblioteca para soporte de PKCS#11 y actúa como un envoltorio sobre la biblioteca. libfido2, que proporciona medios para la comunicación con los tokens a través de USB (soporta los protocolos FIDO U2F/CTAP 1 y FIDO 2.0/CTAP 2). La biblioteca intermedia libsk-libfido2 preparada por los desarrolladores de OpenSSH incluida está integrada en libfido2, al igual que el controlador HID para OpenBSD.

Para habilitar U2F, se puede usar la última versión de la base de código de [istio-mastery] OpenSSH y la rama HEAD de la biblioteca libfido2, que ya incluye la capa necesaria para OpenSSH.
Libfido2 admite la operación en OpenBSD, Linux, macOS y Windows.

Para la autenticación y generación de la clave, es necesario establecer la variable de entorno SSH_SK_PROVIDER, especificando la ruta a libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so), o definir la biblioteca a través de la configuración SecurityKeyProvider, después de lo cual se debe ejecutar «ssh-keygen -t ecdsa-sk» o, si ya se han creado y configurado las claves, conectarse al servidor usando «ssh». Al ejecutar ssh-keygen, el par de claves creado se guardará en «~/.ssh/id_ecdsa_sk» y puede ser usado de manera similar a otras claves.

La clave pública (id_ecdsa_sk.pub) debe copiarse en el servidor en el archivo authorized_keys. En el lado del servidor, solo se verifica la firma digital, mientras que la interacción con los tokens se lleva a cabo del lado del cliente (no es necesario instalar libsk-libfido2 en el servidor, pero el servidor debe soportar el tipo de claves «ecdsa-sk»). La clave privada generada (id_ecdsa_sk) es esencialmente un descriptor de clave, que forma la clave real solo en combinación con la secuencia secreta almacenada en el lado del token U2F.

Si el clave id_ecdsa_sk cae en manos de un atacante, también necesitará acceder al token hardware para completar la autenticación, sin el cual la clave privada almacenada en el archivo id_ecdsa_sk es inútil. Además, por defecto, se requiere una confirmación local de la presencia física del usuario al realizar cualquier operación con las claves (tanto al generarlas como al autenticar), por ejemplo, se solicita tocar el sensor en el token, lo que dificulta los ataques remotos en sistemas con el token conectado. Como otra medida de protección, en la etapa de inicio de ssh-keygen se puede establecer una contraseña para acceder al archivo con la clave.

La clave U2F puede ser añadida al ssh-agent mediante «ssh-add ~/.ssh/id_ecdsa_sk», pero el ssh-agent debe ser compilado con soporte para claves «ecdsa-sk», debe existir la capa libsk-libfido2 y el agente debe ejecutarse en el sistema al que se conecta el token.
Se ha añadido un nuevo tipo de clave «ecdsa-sk» ya que el formato de las claves ecdsa de OpenSSH difiere del formato U2F para firmas digitales ECDSA debido a la presencia de campos adicionales.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster