Verify

¿Cuánto tiempo debe ser válido un OTP y cuántos dígitos debe tener?

Usa seis o más dígitos aleatorios, acepta el código de verificación una sola vez y expíralo en un máximo de diez minutos limitando los intentos.

Un código de verificación debe durar lo suficiente para llegar y ser ingresado, limitando a la vez la oportunidad de adivinarlo o reutilizarlo. Mide el flujo completo de verificación antes de elegir su duración.

¿Cuánto tiempo debe permanecer válido el código de verificación?

No permitas más de diez minutos para un código de autenticación enviado, incluyendo la entrega y la entrada.

La guía de autenticación de NIST establece ese máximo para la autenticación a través de un canal separado. También requiere que el servidor acepte el código solo una vez, impidiendo su reutilización tras una autenticación exitosa.

Marca el código como usado cuando se valida correctamente. Rechaza otro envío de ese código aunque llegue antes de su expiración.

Diez minutos es un máximo, no un periodo de espera recomendado. Elige una ventana más corta cuando tus mediciones de entrega y entrada lo permitan.

Un código que tarda cuarenta segundos en llegar deja nueve minutos y veinte segundos en una ventana de diez minutos. Incluye el tiempo de lectura y escritura cuando uses tus mediciones de llegada.

Los códigos generados por autenticadores siguen un modelo de temporización distinto. Usa las reglas de TOTP o HOTP correspondientes cuando la aplicación genere el código localmente.

¿Cuántos dígitos debe tener?

Usa al menos seis dígitos generados aleatoriamente. Establece un límite de intentos fallidos.

NIST requiere al menos seis dígitos decimales de un generador aleatorio aprobado para secretos de autenticación enviados. Un contador o marca de tiempo predecible no cumple ese requisito.

Seis dígitos aleatorios dan un millón de códigos posibles. Cinco intentos distintos tienen cinco oportunidades en un millón, o una en doscientos mil.

Cuenta los intentos fallidos contra la cuenta. NIST requiere que un código nuevo conserve ese contador, de modo que reenviar no pueda crear intentos ilimitados.

Un límite de intentos también necesita un camino de recuperación para usuarios legítimos que lo agoten. Decide cómo recuperan el acceso sin restablecer el límite para un atacante.

¿Debería usar ocho dígitos en su lugar?

Usa ocho cuando la menor probabilidad de adivinación justifique dos dígitos más para que la persona los ingrese.

Ocho dígitos aleatorios dan cien millones de códigos posibles. Con cinco intentos, la probabilidad pasa a cinco en cien millones.

Eso es cien veces menor que cinco intentos contra seis dígitos. Mantén el mismo límite de intentos al aumentar la longitud del código.

Los códigos más largos no reparan la posibilidad de intentos ilimitados. Implementa el límite de intentos antes de tratar los dígitos adicionales como protección suficiente.

¿Qué puedo configurar en Bird?

Configura la política de códigos de verificación del espacio de trabajo. Inspecciona los ajustes resueltos que se devuelven para cada verificación.

CampoQué elegir
code_lengthBird acepta de 4 a 8 caracteres. Elige al menos seis para esta política
code_typeInspecciona el conjunto de caracteres devuelto, numeric o alphanumeric
ttl_secondsBird acepta de 1 a 59940 segundos. Mantén la ventana de autenticación en 600 segundos o menos
max_attemptsElige de 1 a 10 envíos incorrectos antes de que la verificación falle
resend_cooldown_secondsElige de 0 a 3600 segundos entre envíos al destinatario

La duración permitida de API se extiende más allá de esta recomendación de autenticación. Establece el valor deliberadamente en lugar de tratar el valor máximo aceptado como una expiración adecuada.

Una solicitud de verificación puede sobrescribir code_length para esa verificación. Consulta su política resuelta cuando investigues un comportamiento distinto al de la configuración del espacio de trabajo.

¿Qué debería elegir?

  1. Empieza con seis dígitos aleatorios y un límite de intentos pequeño y obligatorio.
  2. Dimensiona la ventana de validez a partir del tiempo medido de entrega y entrada, dentro de diez minutos.
  3. Usa ocho dígitos cuando la acción justifique una menor probabilidad de adivinación.
  4. Aplica el uso único y conserva el contador de intentos fallidos al emitir otro código.

En resumen

  1. No permitas más de diez minutos.

    La entrega y la entrada consumen la ventana de validez. Elige una duración más corta cuando tu flujo medido lo permita.

  2. Usa al menos seis dígitos aleatorios.

    Cuenta los intentos fallidos además de elegir una longitud de código. Los códigos más largos no sustituyen un límite de intentos.

  3. Acepta cada código solo una vez.

    Rechaza un código ya aceptado aunque su ventana de validez no haya terminado.

  4. Mantén el contador de intentos entre reenvíos.

    Emitir otro código no debe dar a la cuenta una nueva reserva de intentos.

Construye sobre la misma red.

Obtén una clave API de prueba de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

Empieza con un canal.
Añade los demás cuando estés listo.

Una clave API de prueba es tuya de inmediato. El acceso a producción se desbloquea cuando añades un método de pago y verificas un remitente.

¿Usas Claude Code, Cursor o Codex? Copia un prompt de configuración y tu agente instalará el Bird CLI y las habilidades por ti. Elige el tuyo:

Cursor