# Contraseñas de un solo uso (OTP)

> Crear, usar, proteger y eliminar OTP de Ironchip como segundo factor: códigos TOTP RFC 6238, protección con hardware seguro y control del ITDR.

URL: https://docs.ironchip.com/identidad/protocolos/otp/

Los OTP (contraseñas de un solo uso) de Ironchip generan códigos TOTP conformes al RFC 6238. Sirven como segundo factor en cualquier servicio protegido por Ironchip, y son compatibles con la aplicación Ironchip y con cualquier aplicación autenticadora que implemente ese estándar.

## Requisitos

- Acceso a la consola de Ironchip con rol de administrador.
- La aplicación Ironchip (móvil o de escritorio) instalada en el dispositivo del usuario, o cualquier aplicación autenticadora compatible con RFC 6238.
- Para la protección de la semilla: un dispositivo con TPM (Windows), Android Keystore, o Secure Enclave y Keychain en iOS.

## Crear un OTP

1. Abre la aplicación móvil de Ironchip y ve al apartado de la barra inferior con el icono de un candado con una flecha.

2. Pulsa el botón **+** y selecciona una de estas opciones:
   - **Scan a QR code**: escanea con la cámara del teléfono el código QR del OTP.
   - **Enter URL**: introduce la URL de configuración del OTP.
   - **Enter setup key**: introduce manualmente la clave de configuración del OTP.

Una vez añadido, el OTP queda creado y la aplicación empieza a mostrar sus códigos.

La ventana de validez temporal del OTP se configura al generarlo y queda asociada a él. Para modificarla, elimina el OTP y crea uno nuevo con la ventana que quieras.

## Usar el OTP

Una vez dado de alta, el usuario usa el OTP como segundo factor en cualquier servicio protegido por Ironchip, como el acceso a dispositivos de red mediante [TACACS+](https://docs.ironchip.com/identidad/protocolos/tacacs/), una VPN o una aplicación web.

Cuando el servicio pide el segundo factor, el usuario abre la aplicación, lee el código vigente y lo introduce. Ironchip lo calcula de nuevo a partir de la clave del OTP y lo valida, aceptando los periodos incluidos en la ventana de validez configurada al crearlo.

En el acceso por SSH a un dispositivo con TACACS+, el código se introduce en el campo de contraseña. Para comprobarlo desde el propio dispositivo, ejecuta:

```text
test aaa group ironchip-group <usuario> <código OTP> legacy
```

La validación se rechaza en estos casos:

- **Código caducado**: ha pasado su periodo y queda fuera de la ventana de validez, o el reloj del dispositivo está desfasado. Espera al siguiente código y comprueba que la hora del dispositivo es automática.
- **Código ya utilizado**: cada código solo puede validarse una vez. Espera al siguiente código.
- **OTP eliminado**: un administrador lo ha revocado. Da de alta un OTP nuevo.
- **Contexto sospechoso**: el ITDR bloquea el intento por la localización, el dispositivo o el horario, aunque el código sea correcto.

Todas las validaciones, correctas o rechazadas, quedan registradas en el apartado **Events** de la consola y pueden exportarse mediante la [exportación de eventos](https://docs.ironchip.com/identidad/administracion/exportacion-de-eventos/).

## Protección del OTP

Los OTP de Ironchip están protegidos frente a la clonación de tokens, el phishing y la reutilización de credenciales.

La generación de los códigos se apoya en el hardware seguro de cada plataforma. La clave del OTP nunca se almacena en claro y queda protegida por ese hardware, de modo que no puede copiarse a otro dispositivo:

- **Windows (aplicación de escritorio)**: TPM (Trusted Platform Module). La clave se cifra con una clave generada y protegida por el TPM, ligada al equipo, y no puede descifrarse fuera de él.
- **Android**: Android Keystore, con StrongBox o TEE según el dispositivo. Es el equivalente al TPM en el teléfono: la clave que protege el OTP se genera dentro del hardware seguro y no es exportable.
- **iOS**: Secure Enclave y Keychain. Es el equivalente al TPM en el iPhone: la clave que protege el OTP se genera en el Secure Enclave y el OTP se guarda en el Keychain, accesible solo en ese dispositivo y con el dispositivo desbloqueado.

Al estar ligado al dispositivo, el OTP no se transfiere con una copia de seguridad ni con la migración a otro teléfono. En ese caso, da de alta un OTP nuevo.

Además, el [ITDR](https://docs.ironchip.com/identidad/administracion/itdr/) de Ironchip controla el uso de los OTP:

- **Anti-reutilización**: un código ya utilizado dentro de su ventana de validez se rechaza y el intento queda registrado.
- **Anti-phishing**: el ITDR evalúa la localización, el dispositivo, el horario y los patrones de uso de cada autenticación, y bloquea o exige una verificación adicional si el comportamiento es anómalo, aunque el código introducido sea correcto.
- **Anti-clonado**: si el mismo OTP se usa desde contextos incompatibles, por ejemplo localizaciones distantes en un intervalo corto, el ITDR lo detecta y permite revocarlo.

Puedes exportar estos eventos a tu SIEM mediante la [exportación de eventos del ITDR](https://docs.ironchip.com/identidad/administracion/exportacion-de-eventos/).

:::tip
Usa una ventana de validez reducida y combina el OTP con una política de autenticación que incluya la comprobación de localización y de dispositivo.
:::

## Eliminar y reasignar un OTP

1. Abre la aplicación móvil de Ironchip y ve al apartado de la barra inferior con el icono de un candado con una flecha.
2. Desliza el OTP hacia la izquierda y pulsa la papelera roja.

Una vez eliminado, la aplicación deja de mostrar los códigos de ese OTP.

Para reasignarlo a otro dispositivo, o para crear uno con otra ventana de validez, elimina el OTP anterior y da de alta uno nuevo en el dispositivo de destino siguiendo los pasos de [Crear un OTP](#crear-un-otp).

:::note
Los OTP solo se almacenan en el teléfono del usuario, por lo que se eliminan siempre desde la aplicación móvil.
:::
