Construye un USB U2F seguro: guía DIY para llaves de autenticación

  • Las llaves U2F/FIDO2 aportan un segundo factor fĆ­sico muy resistente al phishing gracias a la criptografĆ­a de clave pĆŗblica.
  • Es posible usar un pendrive comĆŗn como llave local de bloqueo, aunque no sustituye a un token U2F dedicado y certificado.
  • Servicios como Google, GitHub o Dropbox permiten registrar llaves USB de seguridad como mĆ©todo principal de verificación en dos pasos.
  • Alrededor de las llaves surgen numerosos dispositivos y proyectos DIY que refuerzan privacidad, cifrado y seguridad de red.

Construye un USB U2F seguro: guía DIY para llaves de autenticación

Si te preocupa la seguridad de tus cuentas online y te apetece trastear un poco con tecnología, crear tu propia llave USB de seguridad puede ser un proyecto tan entretenido como útil. Hoy vas a ver cómo pasar de un simple pendrive corriente, con herramientas como Rufus y Ventoy, a una llave de autenticación fuerte basada en U2F o en mecanismos equivalentes, entendiendo antes qué es exactamente lo que hace segura a una llave de este tipo y qué limitaciones tiene la opción DIY frente al hardware profesional.

A lo largo del artículo vamos a repasar qué es una llave de seguridad USB y el estÔndar U2F/FIDO, qué alternativas comerciales existen, cómo funcionan por dentro, y varias formas de convertir un USB normal en una llave de bloqueo, inicio de sesión o segundo factor usando software en Windows, Linux y otros sistemas. También verÔs proyectos de código abierto y dispositivos paranoicos muy curiosos para llevar tu ciberseguridad al siguiente nivel.

QuƩ es una llave de seguridad USB y por quƩ es mƔs segura

Cuando inicias sesión en un servicio online lo habitual es usar correo electrónico y contraseña como primer factor. El problema es que las contraseñas se roban, se reutilizan y se adivinan con mÔs facilidad de la que nos gustaría, así que desde hace años se recomienda activar la verificación en dos pasos (2FA) o autenticación multifactor (MFA).

Ese segundo paso suele llegar en forma de código por SMS, llamada automÔtica, app de autenticación o notificación push. Todos mejoran la seguridad, pero muchos se han quedado cortos frente a ataques de phishing avanzados, intercambio de SIM o pÔginas falsas que capturan tus códigos en tiempo real.

Las llaves físicas U2F y FIDO2 dan una vuelta de tuerca a este esquema: son pequeños dispositivos USB, NFC o Bluetooth que realizan un reto criptogrÔfico con el servidor. En lugar de introducir un código, conectas tu llave, tocas un botón y el navegador completa de forma segura el segundo factor. No hay nada que puedas escribir mal, ni código que alguien pueda robarte engañÔndote con una web falsa.

En el caso de U2F, el estÔndar creado por la FIDO Alliance (con Google y Yubico a la cabeza) define cómo se genera un par de claves, cómo se registra la llave en cada servicio y cómo se realiza la autenticación mediante criptografía de clave pública. La clave privada nunca sale del dispositivo, el servidor solo guarda la clave pública y verifica firmas, lo que reduce muchísimo la superficie de ataque.

AdemÔs, las llaves bien diseñadas generan pares de claves distintos por servicio, de modo que un proveedor no puede usar tu clave pública para rastrearte entre webs ni correlacionar tus inicios de sesión.

tipos de llaves usb u2f

Tipos de llaves de seguridad: comerciales vs DIY

En el mercado puedes encontrar dos grandes familias de dispositivos: por un lado las llaves comerciales certificadas U2F/FIDO2, y por otro lado soluciones caseras o semi‑DIY que convierten pendrives, microcontroladores o incluso Raspberry Pi en llaves de seguridad o dispositivos de bloqueo.

Entre las comerciales destacan modelos como las YubiKey, la familia Titan de Google, SoloKey, NitroKey, OnlyKey, LibremKey, Secalot o Thetis. Muchas de ellas soportan varios protocolos a la vez: U2F/FIDO2 para login web, OTP, tarjetas inteligentes OpenPGP, administración de claves GPG, inicio de sesión SSH, etcétera.

Estas llaves se diferencian también por el tipo de conexión: hay versiones con USB-A clÔsico, USB-C, formatos nano que apenas sobresalen del puerto, NFC para móviles, e incluso variantes con Bluetooth. La compatibilidad suele abarcar Windows, macOS y Linux, y funcionan en navegadores que entienden FIDO U2F/FIDO2 como Chrome, Edge, Firefox y Safari reciente.

En el lado DIY hay enfoques muy variados. Algunos consisten en usar un USB convencional con software que bloquea o desbloquea el PC (por ejemplo USB Raptor, Predator, KeyLock o Logon Key), otros convierten un microcontrolador tipo ESP8266 o una Raspberry Pi Zero en un autƩntico token U2F, o incluso compartir el dispositivo usando VirtualHere, y otros te permiten montar gestores de contraseƱas o monederos de criptomonedas en hardware propio.

Conviene entender bien que una llave de seguridad DIY basada solo en software no es lo mismo que un token U2F dedicado. La primera depende de la configuración del sistema, de tu disco y de tu USB, mientras que la segunda lleva un chip seguro que protege la clave privada incluso ante malware o acceso físico.

Cómo funciona U2F por dentro: claves públicas y desafíos

El corazón de U2F y FIDO2 estÔ en la criptografía de clave pública. Cuando registras una llave en Google, Dropbox, GitHub, Facebook u otro servicio compatible, el dispositivo genera internamente un par de claves (pública y privada) distinto y exclusivo para ese sitio.

La clave privada se queda sellada dentro de la llave y no hay forma de extraerla sin romper físicamente el dispositivo, algo que se diseña precisamente para ser inviable. Lo que el servidor almacena es la clave pública, asociada a tu cuenta y a un identificador de la llave.

Al iniciar sesión, tras introducir usuario y contraseña correctos, el servidor envía un desafío al navegador, que lo pasa a la llave conectada. Esta firma el desafío con la clave privada correspondiente al dominio, y devuelve la firma. El servidor, con la clave pública, verifica que todo cuadra y completa la autenticación.

Si un atacante intenta repetir la comunicación capturada, no le sirve de nada: el desafío es único cada vez. Si intenta registrar tu llave en un dominio falso, la propia especificación impide que la firma sea reutilizable en otra web, reduciendo al mínimo la posibilidad de phishing, incluso aunque te engañen para visitar una URL que parece auténtica.

Otra ventaja importante es que la llave nunca revela tu clave privada ni secretos reutilizables. Solo entrega firmas especĆ­ficas para cada reto, por lo que incluso un servidor comprometido no podrĆ­a hacerse con un material que le permita suplantar tu llave en otros servicios.

proyecto diy usb u2f

Crear una pseudo‑llave con un pendrive normal (enfoque software)

Si lo que buscas es algo rƔpido para bloquear y desbloquear tu ordenador usando un USB convencional, puedes apoyarte en software que convierte un pendrive en una especie de llave local: mientras el USB estƔ conectado, el equipo funciona; si lo retiras, se bloquea.

En Windows uno de los programas mĆ”s populares es USB Raptor, un proyecto de código abierto que cifra un archivo ā€œk3yā€ en tu memoria USB y monitoriza su presencia. Cuando activas el sistema, si el archivo no estĆ” disponible, la sesión se bloquea automĆ”ticamente.

El proceso bÔsico con USB Raptor consiste en descargar el ejecutable, descomprimirlo, conectar el pendrive que vas a usar como llave y ejecutar USB Raptor.exe para generar la contraseña y el archivo k3y. Luego marcas la opción de activar el sistema y configuras que se inicie con Windows para que el bloqueo sea efectivo desde el arranque de sesión.

Programas como Predator o KeyLock operan con una lógica similar: vinculan un identificador único del USB con tu sesión y, si el dispositivo desaparece del sistema, activan el bloqueo. Es cómodo para ordenadores de sobremesa o portÔtiles de uso personal, y puede complementarse con atajos para bloquear Windows rÔpidamente, aunque hay que recordar que no se trata de un segundo factor criptogrÔfico para servicios web, sino de una protección local.

En macOS existen soluciones como Logon Key o USB Lock que permiten usar un USB como llave de inicio de sesión o de bloqueo de pantalla. De nuevo, el principio es el mismo: la presencia física del USB en un puerto concreto se convierte en una condición necesaria para mantener la sesión activa.

Dar el salto a U2F real en Linux con YubiKey u otras llaves

Si quieres meterte en harina y usar U2F como segundo factor para inicios de sesión de sistema (TTY, sudo, SSH, GDM, etc.), en Linux puedes apoyarte en el módulo PAM de U2F, muy popular con llaves como YubiKey 4 y modelos posteriores, así como con otros tokens compatibles con la especificación de la FIDO Alliance.

El flujo típico pasa por instalar el paquete correspondiente (por ejemplo libpam-u2f desde los repositorios), y después registrar tus llaves en un archivo de configuración que PAM utilizarÔ para asociar cuentas locales con dispositivos físicos concretos.

Con herramientas como pamu2fcfg generas las asociaciones: insertas tu llave, ejecutas el comando, tocas el dispositivo cuando parpadea y rediriges la salida a un fichero tipo /etc/u2f_keys. Es recomendable registrar al menos dos llaves de seguridad, una principal y otra de respaldo, por si pierdes o se estropea la primera.

El siguiente paso es modificar los archivos de PAM. Por ejemplo, puedes empezar aplicando U2F únicamente a sudo, añadiendo una línea como auth required pam_u2f.so authfile=/etc/u2f_keys debajo de la inclusión de common-auth. Así pruebas que todo funciona: sin la llave insertada, sudo falla tras la contraseña; con ella, te pedirÔ tocar el dispositivo y, si todo va bien, ejecutarÔ el comando.

Una vez comprobado, puedes llevar esa misma configuración a common-auth o a otros servicios PAM para que toda autenticación de sistema requiera la llave. Opciones como nouserok permiten que cuentas sin llave asociada sigan entrando solo con contraseña, algo útil para no dejarte fuera si olvidas configurarlo para determinados usuarios.

Compatibilidad de las llaves U2F con servicios online y navegadores

La utilidad prÔctica de estas llaves se multiplica cuando las integras con servicios online que soportan U2F o FIDO2. Hoy en día Google, GitHub, Dropbox, Facebook, Twitter, Nextcloud y muchas otras plataformas permiten registrar una llave física como método preferente de verificación en dos pasos.

En el Ômbito de los navegadores, el soporte es bastante amplio. Chrome y otros navegadores basados en Chromium llevan tiempo ofreciendo compatibilidad nativa con FIDO U2F/FIDO2. Firefox también incluyó soporte, primero vía complemento y después integrado, mientras que Safari se ha ido poniendo al día en las versiones recientes de macOS.

En sistemas operativos de escritorio, las llaves funcionan en Windows 10 y posteriores, macOS moderno y la mayorĆ­a de distribuciones Linux, siempre que el navegador entienda el estĆ”ndar. En móviles, puedes usar llaves con NFC o USB‑C junto con navegadores compatibles y apps que se integren con la API de WebAuthn.

Cada fabricante indica en su ficha de producto la matriz de compatibilidad, porque no todos los modelos soportan los mismos protocolos ni las mismas plataformas. Antes de comprar, merece la pena revisar quĆ© quieres proteger (cuentas Google, GitHub, logins Windows, SSH, correo cifrado…) y elegir el dispositivo en consecuencia.

Ejemplo prƔctico: registrar una llave FIDO U2F en tu cuenta de Google

Configurar una llave de seguridad con Google es un proceso rƔpido que permite que tu USB se convierta en el segundo factor principal para entrar en Gmail y el resto de servicios asociados. El procedimiento, con variaciones mƭnimas, es similar en otros proveedores que implementan la misma tecnologƭa.

El primer paso es comprar una llave compatible con U2F o FIDO2. Una vez la tengas, accede a tu Cuenta de Google > Seguridad > Verificación en dos pasos. Si aún no la tienes activa, el sistema te pedirÔ configurar un método inicial (por ejemplo SMS o app de autenticación).

Cuando tengas 2FA habilitado, en esa misma pantalla encontrarÔs la opción de añadir una llave de seguridad. Pulsa en ella, sigue las instrucciones del asistente, conecta la llave cuando te lo pida y, si tu modelo lleva botón, tócala cuando la luz parpadee.

En llaves sin botón físico el flujo puede consistir en retirar y volver a insertar el dispositivo para completar el registro. Al terminar, verÔs la llave listada como método de verificación adicional, y en los próximos inicios de sesión Google te pedirÔ conectarla para completar el acceso.

Si en algún momento ya no quieres usar esa llave con tu cuenta, puedes regresar a Verificación en dos pasos y, desde el icono de edición, retirar la llave asociada. Es buena idea mantener siempre otra opción de recuperación habilitada (otra llave, teléfono, códigos de respaldo) para no quedarte bloqueado.

Ventajas y desventajas frente a otros mƩtodos 2FA

En el mundo real vas a encontrarte varios tipos de segundo factor: SMS y llamadas, apps de autenticación, notificaciones push y llaves físicas. Cada uno tiene sus pros y contras, y no es raro combinarlos para escenarios distintos.

Los SMS y las llamadas son muy fÔciles de usar y no requieren instalar nada, pero hoy se consideran uno de los métodos mÔs débiles: sufren ataques de intercambio de SIM, redirecciones de línea y phishing. Un atacante puede lograr que introduzcas el código en una web falsa y, con eso, entrar en tu cuenta.

Las aplicaciones tipo Google Authenticator o Authy generan códigos TOTP offline y son mÔs robustas que el SMS, pero siguen siendo vulnerables al phishing: si introduces el código en una web maliciosa, el atacante puede reutilizarlo de inmediato.

Las notificaciones push mejoran la experiencia de usuario, ya que solo tienes que aceptar o rechazar un aviso en el móvil, pero no estÔn exentas de riesgos: si aceptas sin fijarte o si el atacante logra emular la interacción, podría superar esa capa.

Las llaves U2F/FIDO2, en cambio, ofrecen una protección muy alta contra el phishing, porque el dispositivo firma desafíos específicos para el dominio correcto y el navegador. No introduces códigos, no escribes nada reutilizable y el atacante necesita físicamente la llave para progresar.

Qué pasa si pierdes la llave USB y cómo prepararte

Uno de los miedos habituales al usar llaves de seguridad fĆ­sicas es: ā€œĀæquĆ© ocurre si la pierdo?ā€. La respuesta depende de si has sido previsor, pero todos los grandes proveedores de servicios online incluyen mecanismos de recuperación y llaves de respaldo.

En Google y plataformas similares puedes asociar mƔs de una llave a la misma cuenta. Es altamente recomendable registrar una segunda llave como copia de seguridad y guardarla en un lugar seguro (una caja fuerte, un sobre sellado, etcƩtera), o cifrarla con VeraCrypt. Asƭ, si se te rompe la llave del llavero, siempre tienes la de reserva.

AdemÔs de las llaves, puedes configurar correos alternativos de recuperación, teléfonos de respaldo y códigos estÔticos que te permiten recuperar el acceso en caso extremo. El proceso suele ser mÔs lento y con comprobaciones adicionales, precisamente para evitar que cualquiera se salte tu seguridad con una simple llamada.

Si has perdido una llave y todavía tienes acceso a la cuenta con otro método, lo sensato es entrar cuanto antes a la configuración de seguridad y revocar o eliminar el dispositivo perdido. De este modo, aunque alguien lo encuentre, no podrÔ registrarlo ni usarlo en tu nombre.

Otros dispositivos y proyectos DIY para elevar tu seguridad

Si te engancha el tema de la seguridad fĆ­sica y la privacidad, alrededor de las llaves U2F hay todo un ecosistema de gadgets y proyectos DIY pensados para blindar tu vida digital. Muchos son baratos y algunos se pueden construir en casa con hardware sencillo, y otros permiten crear un Live USB con Tails para navegar sin ser rastreado.

Uno de los mÔs útiles cuando viajas son los bloqueadores de datos USB. Se conectan entre el cargador y el cable de tu móvil y deshabilitan las líneas de datos, permitiendo solo la carga eléctrica. Esto evita ataques que aprovechan puertos USB públicos para inyectar malware o robar información.

También tienes dispositivos como bolsas de Faraday, tarjetas de bloqueo RFID, cubiertas de webcam, bloqueadores de micrófono y filtros de privacidad para pantallas. Todos se basan en una idea simple: si no quieres que te espíen, corta las vías físicas de entrada de datos o de observación.

En el Ć”mbito del almacenamiento puedes recurrir a USB y discos externos con cifrado de hardware, muchos de ellos con teclado fĆ­sico para introducir un PIN o con certificaciones como FIPS 140-2. Y si prefieres soluciones low‑cost, VeraCrypt permite crear volĆŗmenes cifrados en casi cualquier pendrive comercial.

Para la parte de red existe un arsenal de firewalls y routers avanzados (Firewalla, BitdefenderBox, InvizBox, Turris Omnia, Anonabox…), asĆ­ como proyectos DIY con Raspberry Pi como Pi‑hole para bloquear publicidad y rastreadores a nivel de red, PiVPN para montar tu propia VPN domĆ©stica u OnionPi para enrutar tu trĆ”fico por Tor.

Llaves U2F, monederos de criptomonedas y hardware especializado

El mismo concepto de mantener las claves privadas fuera del alcance de software potencialmente malicioso estÔ detrÔs de los monederos de criptomonedas de hardware como Trezor, Ledger o Prokey. Estos dispositivos guardan las claves en un entorno aislado y firman transacciones sin exponer nunca el secreto al ordenador o móvil anfitrión.

Algunos fabricantes han dado un paso mÔs y ofrecen dispositivos multifunción que combinan autenticador U2F, gestor de contraseñas y monedero cripto en una sola llave (por ejemplo QUANTUM, Secalot, OnlyKey o ciertos modelos de NitroKey). En estos casos conviene revisar bien que el hardware y el firmware sean de código abierto o al menos auditados.

Si eres especialmente celoso con tu privacidad, incluso puedes construir soluciones caseras, como carteras de almacenamiento en frĆ­o en placas metĆ”licas, generadores de nĆŗmeros aleatorios de hardware (TrueRNG, FST‑01) o nodos completos de Bitcoin en una Raspberry Pi combinados con billeteras hardware.

MÔs allÔ del mundo cripto, encontrarÔs equipos como PCs autodestructivos tipo ORWL, teléfonos reforzados como Librem 5 o terminales orientados a comunicaciones cifradas, que demuestran hasta qué punto se puede llevar al extremo la seguridad física y lógica de los dispositivos. No son imprescindibles para el usuario medio, pero ilustran bien el abanico de posibilidades.

Después de todo este recorrido, la idea que se impone es clara: combinar una buena higiene de contraseñas con llaves de seguridad U2F o FIDO2, sistemas de doble verificación bien configurados y algunos dispositivos físicos clave marca una diferencia enorme frente a los ataques actuales, y poner en marcha un proyecto DIY con un USB, una Raspberry Pi o un simple bloqueador de datos es una forma muy prÔctica de aprender mientras refuerzas de verdad tu protección digital.

como usar VeraCrypt para el cifrado de archivos
ArtĆ­culo relacionado:
Cifrado de archivos y contenedores con VeraCrypt