Con Vaultwarden ya desplegado como bóveda central de contraseñas del homelab, la pieza que faltaba era reforzar el acceso a esa bóveda con algo más sólido que un segundo factor por app — si alguien compromete el dispositivo donde vive el generador de TOTP, la segunda capa de seguridad deja de servir de mucho. Una llave de seguridad hardware resuelve eso de raíz, así que integré una YubiKey como segundo factor tanto en Vaultwarden como en las cuentas críticas (GitHub, el propio proveedor del dominio).

Por qué hardware y no solo TOTP

El código TOTP de una app de autenticación sigue siendo vulnerable a phishing sofisticado — un atacante puede engañarte para que introduzcas el código en un sitio falso, y con eso le basta. Una llave FIDO2 hace criptografía real vinculada al dominio exacto que la solicita: es literalmente imposible que funcione en un sitio de phishing que imite a otro, porque el protocolo verifica el origen antes de responder. Es la diferencia entre "algo que puede copiarse" y "algo que no puede copiarse sin el objeto físico".

Un código TOTP se puede robar con un sitio falso convincente. Una YubiKey, no — el propio protocolo se niega a responder si el dominio no coincide.

El día a día

Tras la configuración inicial (un par de minutos por servicio compatible), el uso diario es tocar la llave físicamente cuando el sistema lo pide — sin escribir códigos, sin cambiar de app. La resistencia IP68 y la ausencia de batería significan que no hay mantenimiento real: la llave sigue funcionando años después sin degradarse, a diferencia de cualquier dispositivo con batería.

Dónde cojea

El coste de entrada (especialmente si compras dos, una de respaldo, que es lo recomendable) es más alto que cualquier alternativa de software. Y la compatibilidad, aunque amplia entre los servicios que más importan, no es universal — algunos servicios más pequeños o antiguos todavía no soportan FIDO2/WebAuthn, obligando a mantener TOTP como alternativa en esos casos.