· Tutoriales · 2 min read
Autenticación con Llaves U2F en Linux

🤔 ¿Qué es una Llave FIDO U2F?
Universal 2nd Factor (U2F) es un estándar abierto que fortalece y simplifica la autenticación de dos factores (2FA) utilizando dispositivos especializados de Universal Serial Bus (USB) o comunicación de campo cercano (NFC).
El uso principal de estas llaves es como medio de autenticación de dos factores en varios sitios web que las soportan. Sin embargo, en nuestros sistemas operativos también se pueden usar como método de autenticación de dos factores o como reemplazo directo de nuestras contraseñas en ciertas aplicaciones.
Esta vez, te mostraré cómo configurar estas llaves en Arch Linux.
¿Cómo instalar?
Instalación en Arch Linux
Necesitamos instalar el paquete llamado pam-u2f con nuestro gestor de paquetes
sudo pacman -S pam-u2f
# o usando yay
yay -S pam-u2f
Después de la instalación, necesitamos crear un archivo que contenga nuestra llave o llaves
touch u2f_keys
pamu2fcfg > u2f_keys
# puede solicitar el pin de nuestra llave o configurar uno si es una llave nueva
# si necesitas agregar más llaves antes del primer comando necesitas usar
pamu2fcfg -n >> u2f_keys
Debemos copiar ese archivo a un directorio de fácil acceso, si usas una partición home encriptada este archivo debe estar fuera de home para funcionar correctamente, en este caso copio el archivo al directorio /etc
sudo cp u2f_keys /etc/u2f_keys
⚙️ Configuración
Ahora necesitamos modificar algunos archivos en nuestro directorio pam.d para permitir usar nuestras llaves como reemplazo de nuestras contraseñas, lo configuré en 3 archivos
- /etc/pam.d/sudo (para usar sudo en todo nuestro sistema)
- /etc/pam.d/gdm-password (para permitir el inicio de sesión en GDM)
- /etc/pam.d/polkit-1 (para autorizaciones gráficas)
En nuestro editor de texto favorito, necesitamos pegar el siguiente texto después de la primera línea de cada archivo
auth sufficient pam_u2f.so authfile=/etc/u2f_keys cue
El texto anterior permite reemplazar la escritura de la contraseña en favor de la llave, si necesitamos agregar 2FA para más seguridad debemos cambiar la palabra sufficient por required siempre pidiendo nuestra contraseña y que insertemos y toquemos el dispositivo.
auth required pam_u2f.so authfile=/etc/u2f_keys cue
Ejemplo
Ahora si intentamos usar sudo
🐰🥕 Eso es todo amigos
Con esto, podrás usar tu(s) llave(s) u2f en lugar de tu contraseña para iniciar sesión y autorizar algunos procesos en tu sistema. El paquete está disponible en todas las distribuciones de Linux, quizás solo cambiando el nombre.
Esto funciona para gnome, en otros entornos de escritorio los archivos que necesitan ser modificados pueden cambiar.
🙋 Ponte en contacto
Si tienes alguna pregunta o sugerencia estaré feliz de leerlas, puedes enviarme un correo a [email protected]