# YubiKey

YubiKey es un dispositivo de autenticación de hardware fabricado por Yubico para proteger el acceso a computadoras, redes y servicios en línea que admite contraseñas de un solo uso (OTP), criptografía de clave pública y autenticación, y los protocolos Universal 2nd Factor (U2F) y FIDO2. desarrollado por la Alianza FIDO. Permite a los usuarios iniciar sesión de forma segura en sus cuentas emitiendo contraseñas de un solo uso o utilizando un par de claves pública/privada basada en FIDO generada por el dispositivo. YubiKey también permite almacenar contraseñas estáticas para usar en sitios que no admiten contraseñas de un solo uso. Google, Amazon, Microsoft, Twitter y Facebook utilizan dispositivos YubiKey para proteger las cuentas de los empleados y las cuentas de los usuarios finales. Algunos administradores de contraseñas admiten YubiKey. Yubico también fabrica Security Key, un dispositivo similar de menor costo que solo admite FIDO2/WebAuthn y FIDO/U2F.
YubiKey implementa el algoritmo de contraseña de un solo uso (HOTP) basado en HMAC y el algoritmo de contraseña de un solo uso basado en tiempo (TOTP), y se identifica como un teclado que proporciona la contraseña de un solo uso a través del protocolo USB HID. Una YubiKey también puede presentarse como una tarjeta OpenPGP utilizando RSA de 1024, 2048, 3072 y 4096 bits (para tamaños de clave superiores a 2048 bits, se requiere GnuPG versión 2.0 o superior) y criptografía de curva elíptica (ECC) p256, p384 y más. Según la versión, permite a los usuarios firmar, cifrar y descifrar mensajes sin exponer las claves privadas al mundo exterior. También se admite el estándar PKCS#11 para emular una tarjeta inteligente PIV. Esta característica permite la firma de código de imágenes de Docker, así como la autenticación basada en certificados para Microsoft Active Directory y SSH.
Fundada en 2007 por la directora ejecutiva Stina Ehrensvärd, Yubico es una empresa privada con oficinas en Palo Alto, Seattle y Estocolmo. El CTO de Yubico, Jakob Ehrensvärd, es el autor principal de la especificación de autenticación fuerte original que se conoció como Universal 2nd Factor (U2F).
YubiKey lanzó la serie YubiKey 5 en 2018, que agrega soporte para FIDO2.

## Historia

Yubico se fundó en 2007 y comenzó a ofrecer una Caja Piloto para desarrolladores en noviembre de ese año. El producto YubiKey original se mostró en la conferencia anual RSA en abril de 2008, y en 2009 se lanzó un modelo YubiKey II más robusto La explicación de Yubico del nombre "YubiKey" es que deriva de la frase "tu llave ubicua", y que "yubi" es la palabra japonesa para dedo.
YubiKey II y modelos posteriores tienen dos "ranuras" disponibles para almacenar dos configuraciones distintas con secretos AES separados y otras configuraciones. Al autenticar, la primera ranura se usa presionando solo brevemente el botón en el dispositivo, mientras que la segunda ranura se usa cuando se mantiene presionado el botón durante 2 a 5 segundos.
En 2010, Yubico comenzó a ofrecer los modelos YubiKey OATH y YubiKey RFID. YubiKey OATH agregó la capacidad de generar contraseñas de un solo uso de 6 y 8 caracteres utilizando protocolos de la Iniciativa para la Autenticación Abierta (OATH), además de las contraseñas de 32 caracteres utilizadas por el propio esquema de autenticación OTP de Yubico. El modelo YubiKey RFID incluía la capacidad OATH y también incluía un chip de identificación por radiofrecuencia MIFARE Classic 1k, aunque era un dispositivo separado dentro del paquete que no se podía configurar con el software normal de Yubico a través de una conexión USB.
Yubico anunció el YubiKey Nano en febrero de 2012, una versión miniaturizada del YubiKey estándar que fue diseñado para que encajara casi por completo dentro de un puerto USB y solo expusiera un pequeño panel táctil para el botón. La mayoría de los modelos posteriores de YubiKey también estuvieron disponibles en tamaños estándar y "nano".
En 2012 también se presentó YubiKey Neo, que mejoró el producto YubiKey RFID anterior al implementar tecnología de comunicación de campo cercano (NFC) e integrarla con el lado USB del dispositivo. YubiKey Neo (y Neo-n, una versión "nano" del dispositivo) pueden transmitir contraseñas de un solo uso a lectores NFC como parte de una URL configurable contenida en un mensaje de formato de intercambio de datos NFC (NDEF). El Neo también puede comunicarse utilizando el protocolo de tarjeta inteligente CCID además de la emulación de teclado USB HID (dispositivo de interfaz humana). El modo CCID se utiliza para la tarjeta inteligente PIV y la compatibilidad con OpenPGP, mientras que USB HID se utiliza para los esquemas de autenticación de contraseña de un solo uso.
En 2014, YubiKey Neo se actualizó con compatibilidad con FIDO Universal 2nd Factor (U2F). Más tarde ese año, Yubico lanzó la clave de seguridad FIDO U2F, que incluía específicamente soporte U2F pero ninguna de las otras funciones de contraseña de un solo uso, contraseña estática, tarjeta inteligente o NFC de las YubiKeys anteriores. En el lanzamiento, se vendió correspondientemente a un precio más bajo de solo $ 18, en comparación con $ 25 para YubiKey Standard ($ 40 para la versión Nano) y $ 50 para YubiKey Neo ($ 60 para Neo-n). Algunos de los dispositivos de prelanzamiento emitidos por Google durante el desarrollo de FIDO/U2F se informaron como "Yubico WinUSB Gnubby (gnubby1)".
En abril de 2015, la compañía lanzó YubiKey Edge en formato estándar y nano. Esto se ubica entre los productos Neo y FIDO U2F en cuanto a características, ya que fue diseñado para manejar la autenticación OTP y U2F, pero no incluía soporte para tarjetas inteligentes o NFC.
La familia de dispositivos YubiKey 4 se lanzó por primera vez en noviembre de 2015, con modelos USB-A en tamaños estándar y nano. YubiKey 4 incluye la mayoría de las características de YubiKey Neo, incluido el aumento del tamaño de clave OpenPGP permitido a 4096 bits (frente a los 2048 anteriores), pero eliminó la capacidad NFC de Neo.
En CES 2017, Yubico anunció una expansión de la serie YubiKey 4 para admitir un nuevo diseño USB-C . El YubiKey 4C se lanzó el 13 de febrero de 2017. En el sistema operativo Android a través de la conexión USB-C, el sistema operativo Android y YubiKey solo admiten la función de contraseña de un solo uso, y otras funciones no son compatibles actualmente, incluido el segundo factor universal (U2F). Una versión 4C Nano estuvo disponible en septiembre de 2017.
En abril de 2018, la compañía lanzó Security Key de Yubico, su primer dispositivo que implementa los nuevos protocolos de autenticación FIDO2, WebAuthn (que alcanzó el estado de Recomendación Candidata del W3C en marzo) y el Protocolo de Cliente a Autenticador (CTAP). En el lanzamiento, el dispositivo sólo está disponible en el factor de forma "estándar" con un conector USB-A. Al igual que la llave de seguridad FIDO U2F anterior, es de color azul y utiliza un icono de llave en su botón. Se distingue por un número "2" grabado en el plástico entre el botón y el orificio del llavero. También es menos costoso que los modelos YubiKey Neo y YubiKey 4, ya que cuesta $ 20 por unidad en el lanzamiento porque carece de las funciones OTP y de tarjeta inteligente de esos dispositivos anteriores, aunque conserva la capacidad FIDO U2F.

## Características del producto

Una lista de las principales características y capacidades de los productos YubiKey.
| Modelo | Fabricación | OATH | SSP | YOTP | HOTP | TOTP | PIV | OPGP | U2F | FIDO2 | FIPS 140-2 | NFC | USB-A | USB-C | Lightning |
| YubiKey VIP | 2011-2017 | X | | | | | | | | | | | X | | |
| YubiKey Plus | 2014-2015 | | | | | X | | | X | | | | X | | |
| YubiKey Nano | 2012-2016 | X | X | X | X | | | | | | | | | | |
| YubiKey NEO-n | 2014-2016 | | X | X | X | X | X | X | X | | | | | | |
| YubiKey 4 Nano | 2016-2017 | | X | X | X | | X | X | X | | | | | | |
| YubiKey Edge-n | 2015-2016 | | X | X | X | | X | X | X | | | | | | |
| YubiKey Standard | 2014-2016 | | X | X | X | | | | | | | | X | | |
| YubiHSM 1 | 2015-2017 | | | | | | | | | | | | | | |
| Llave de seguridad FIDO U2F | 2013-2018 | | | | | | | | X | | | | X | | |
| Llave de seguridad FIDO2 de Yubico | 2018-2020 | | | | | | | | X | X | | | X | | |
| YubiKey NEO | 2012-2018 | | X | X | X | X | X | X | X | | | X | X | | |
| YubiKey 4C Nano | 2017-2018 | X | X | X | X | X | X | X | X | | | | | X | |
| YubiKey 4C | 2017-2018 | | X | X | X | X | X | X | X | X | | | | X | |
| YubiKey 4 | 2015-2018 | | X | X | X | X | X | X | X | | | | X | | |
| YubiKey C Nano FIPS | 2018-2021 | | | | | | | | | | X | | | X | |
| YubiKey C FIPS | 2018-2021 | | | | | | | | | | X | | | X | |
| YubiKey Nano FIPS | 2018-2021 | | | | | | | | | | X | | | | |
| YubiKey FIPS | 2018-2021 | | | | | | | | | | X | | X | | |
| YubiHSM 2 | 2018-presente | | | | | | | | | | | | | | |
| Llave de seguridad NFC de Yubico | 2017-presente | | | | | | | | | | | | | | |
| YubiKey 5C Nano | 2019-presente | | | | | | | | | | | | | | |
| YubiKey 5C | 2018-presente | | X | X | X | X | X | X | X | X | | | | | |
| YubiKey 5 Nano | 2018-presente | | X | X | X | X | X | X | X | X | | | | X | |
| YubiKey 5 NFC | 2018-presente | | X | X | X | X | X | X | X | X | | X | X | | |
| YubiKey 5Ci | 2019-presente | | X | X | X | X | X | X | X | X | | | | X | X |
| YubiKey 5C NFC | 2020-presente | | X | X | X | X | X | X | X | X | | | | X | |

## ModHex

Cuando se utiliza para contraseñas de un solo uso y contraseñas estáticas almacenadas, YubiKey emite caracteres utilizando un alfabeto hexadecimal modificado que pretende ser lo más independiente posible de la configuración del teclado del sistema. Este alfabeto se denomina ModHex y consta de los caracteres "cbdefghijklnrtuv", correspondientes a los dígitos hexadecimales "0123456789abcdef".
Dado que YubiKeys usa códigos de escaneo de teclado sin formato en modo USB HID, puede haber problemas al usar los dispositivos en computadoras que están configuradas con diferentes diseños de teclado, como Dvorak . ModHex fue creado para evitar conflictos entre diferentes diseños de teclado. Solo usa caracteres que se encuentran en el mismo lugar en la mayoría de los teclados con alfabeto latino, pero aún tiene 16 caracteres, lo que permite usarlo en lugar del hexadecimal. Alternativamente, este problema se puede solucionar utilizando funciones del sistema operativo para cambiar temporalmente a una distribución de teclado estándar de EE. UU. (o similar) cuando se usan contraseñas de un solo uso. Sin embargo, YubiKey Neo y dispositivos posteriores se pueden configurar con códigos de escaneo alternativos para que coincidan con diseños que no son compatibles con el juego de caracteres ModHex.
Este problema sólo se aplica a los productos YubiKey en modo HID, donde debe emular la entrada del teclado. La autenticación U2F en los productos YubiKey evita este problema mediante el uso del protocolo alternativo U2FHID, que envía y recibe mensajes binarios sin formato en lugar de códigos de escaneo del teclado. El modo CCID actúa como un lector de tarjetas inteligentes, que no utiliza ningún protocolo HID.

## Temas de seguridad
### Preocupaciones de abastecimiento cerrado de YubiKey 4

La mayor parte del código que se ejecuta en YubiKey es de código cerrado. Si bien Yubico ha publicado algún código para funcionalidad estándar de la industria como PGP y HOTP, se reveló que a partir de la cuarta generación del producto este no es el mismo código con el que se envían las nuevas unidades. Debido a que las nuevas unidades tienen firmware bloqueado permanentemente en la fábrica, no es posible compilar el código fuente abierto y cargarlo en el dispositivo manualmente, el usuario debe confiar en que el código de una nueva clave es auténtico y seguro.
El código para otras funciones como U2F, PIV y Modhex es de código completamente cerrado.
El 16 de mayo de 2016, el CTO de Yubico, Jakob Ehrensvärd, respondió a las preocupaciones de la comunidad de código abierto con una publicación de blog que decía que "nosotros, como empresa de productos, hemos adoptado una postura clara contra las implementaciones basadas en componentes disponibles en el mercado y además creemos que algo como un controlador AVR o ARM de calidad comercial no es apto para ser utilizado en un producto de seguridad".
El fundador de Techdirt, Mike Masnick, criticó duramente esta decisión y dijo: "El cifrado es complicado. Casi siempre hay vulnerabilidades y errores, algo que hemos estado insistiendo mucho últimamente. Pero la mejor manera de solucionarlos tiende a ser conseguir la mayor cantidad de ojos expertos". en el código como sea posible. Y eso no es posible cuando es de código cerrado".

### Vulnerabilidad de ROCA en ciertos dispositivos YubiKey 4, 4C y 4 Nano

En octubre de 2017, investigadores de seguridad encontraron una vulnerabilidad (conocida como ROCA ) en la implementación de la generación de pares de claves RSA en una biblioteca criptográfica utilizada por una gran cantidad de chips de seguridad de Infineon, como se usa en una amplia gama de claves de seguridad y productos de tokens de seguridad (incluidos YubiKey). La vulnerabilidad permite a un atacante reconstruir la clave privada utilizando la clave pública. Todos los dispositivos YubiKey 4, YubiKey 4C y YubiKey 4 Nano dentro de las revisiones 4.2.6 a 4.3.4 se vieron afectados por esta vulnerabilidad. Yubico solucionó este problema en todos los dispositivos YubiKey 4 de envío cambiando a una función de generación de claves diferente y ofreció reemplazos gratuitos para las claves afectadas hasta el 31 de marzo de 2019. En algunos casos, el problema se puede solucionar generando nuevas claves fuera de YubiKey e importándolas al dispositivo.

### Protección con contraseña OTP en YubiKey NEO

En enero de 2018, Yubico reveló una vulnerabilidad moderada en la que la protección con contraseña para la funcionalidad OTP en YubiKey NEO podría evitarse bajo ciertas condiciones. El problema se corrigió a partir de la versión de firmware 3.5.0 y Yubico ofreció claves de reemplazo gratuitas a cualquier usuario que afirmara estar afectado hasta el 1 de abril de 2019.

### Aleatoriedad inicial reducida en ciertos dispositivos de la serie FIPS

En junio de 2019, Yubico publicó un aviso de seguridad que informaba una aleatoriedad reducida en dispositivos con certificación FIPS con versiones de firmware 4.4.2 y 4.4.4 (no existe la versión 4.4.3), poco después del encendido. Las claves de seguridad con aleatoriedad reducida pueden hacer que las claves sean descubiertas y comprometidas más fácilmente de lo esperado. El problema afectó sólo a la serie FIPS, y luego sólo a ciertos escenarios, aunque el uso de FIPS ECDSA estaba "en mayor riesgo". La empresa ofreció reemplazos gratuitos para las llaves afectadas.

## Activismo social

En 2018, Yubico regaló YubiKeys con logotipos grabados con láser a los nuevos suscriptores de WIRED y ArsTechnica.
Yubico proporcionó 500 YubiKeys a los manifestantes durante las protestas de Hong Kong de 2019-2020 . La compañía afirma que la decisión se basó en su misión de proteger a los usuarios vulnerables de Internet y trabajar con los partidarios de la libertad de expresión.