Ingeniería

28 ago 2024

¿Qué es SMS OTP? Definición, beneficios y casos de uso

¿Qué es SMS OTP? Definición, beneficios y casos de uso

La guía completa para OTP por SMS

A medida que las empresas y los consumidores se desplazan más y más en línea, la necesidad de asegurar las cuentas e información en línea de sus usuarios se ha vuelto crucial para los negocios. Y la solución más popular se puede deletrear en solo seis letras: SMS OTP.

Pero, ¿qué es exactamente el SMS OTP y cómo funciona? En esta guía, cubriremos todo lo que necesitas saber sobre el SMS OTP, incluyendo sus beneficios y cómo implementarlo de manera efectiva.

¿Qué es SMS OTP?

SMS OTP (Contraseña de Un Solo Uso) es una contraseña temporal y segura enviada a través de SMS (Servicio de Mensajes Cortos) al teléfono móvil del usuario. Funciona como una medida de seguridad para autenticar la identidad del usuario.

El OTP generalmente toma la forma de un código de 4 a 8 dígitos que se genera aleatoriamente. Solo se puede usar una vez y expira después de un período muy corto (a menudo solo unos minutos).

Las empresas usan SMS OTPs para mejorar la seguridad en sus configuraciones de autenticación de dos factores (2FA).

¿Cómo funciona el SMS OTP?

Consideremos una aplicación de citas que busca proteger la privacidad de sus usuarios (especialmente aquellos que no quieren revelar sus frases más cursis al público).

Cuando uno de sus usuarios activa una acción que requiere un OTP, como un intento de iniciar sesión en un nuevo dispositivo, esto es lo que sucede:

  • La aplicación no reconoce el dispositivo. Sugiere enviar un código de verificación por SMS para confirmar la identidad del usuario.

  • La aplicación solicita automáticamente a su proveedor de SMS OTP que genere y envíe un OTP al número móvil del usuario.

  • El algoritmo del proveedor de SMS OTP genera un código aleatorio de 4 dígitos y lo envía al teléfono del usuario.

  • El usuario introduce el OTP en la aplicación de citas. El algoritmo generador de SMS OTP valida el código instantáneamente si es correcto.

  • ¡Y voilà! El usuario puede volver al juego de citas en su nuevo dispositivo.

Y lo mejor de todo es que todo sucedió automáticamente, en menos de un minuto. Todos están contentos: el usuario porque sus datos están claramente seguros y la aplicación de citas porque está a salvo de hackers.

Ejemplo de SMS OTP

Los SMS OTPs suelen seguir el mismo patrón:

{{Code}} es tu código de validación para {{Name of the app}}.

Algunos negocios querrán personalizar su mensaje para alinearlo con su identidad de marca y hacer que esta notificación forme parte de la experiencia general del usuario. Por ejemplo, BeReal, cliente y app social de Prelude, usa su eslogan al final de su mensaje OTP:

“7860 es tu código de validación para BeReal. Tus amigos de verdad.”

example of sms otp

TOTP o HOTP: ¿Cuál es la diferencia?

Los SMS OTPs generalmente se dividen en dos categorías diferentes, dependiendo del algoritmo usado para generarlos: HOTP (Contraseña de Un Solo Uso Basada en HMAC) y TOTP (Contraseña de Un Solo Uso basada en Tiempo).

La diferencia clave entre estos dos es el factor que cambia cada vez que el algoritmo genera un código.

  • El HOTP está basado en un contador. El contador aumenta cada vez que se solicita un OTP. Esto significa que el código sigue siendo válido hasta que se usa o el contador aumenta.

  • El TOTP está basado en el tiempo, válido solo por un intervalo específico. Una vez que el intervalo pasa, se puede generar un nuevo OTP.

Lee más sobre este tema en nuestro blog: TOTP vs HOTP: ¿Cuál es la diferencia (y cuál es mejor)?

Los (muchos) casos de uso de SMS OTP para empresas

Las empresas pueden usar SMS OTPs de muchas maneras para mejorar la seguridad y la confianza de sus usuarios. Los casos de uso más comunes incluyen:

  • Registro de usuarios: Verifica la identidad y número de teléfono de tus nuevos usuarios durante el proceso de creación de cuentas.

  • Autenticación de dos factores: Añade una capa extra de seguridad al proceso de inicio de sesión con nombre de usuario y contraseña.

  • Reinicio de contraseñas: Asegura el proceso de restablecimiento de una contraseña olvidada o comprometida para evitar que tus usuarios queden bloqueados fuera de sus cuentas.

  • Autenticación de nuevos dispositivos: Cuando los usuarios inician sesión desde dispositivos nuevos o no reconocidos, solicitar un SMS OTP puede ayudar a asegurar que están autorizados para hacerlo.

  • Autenticación sin contraseña: Si quieres permitir que tus usuarios se registren usando solo su número móvil, enviar un OTP te ayuda a asegurar su autenticación.

  • Verificación de transacciones: Para cualquier transacción, como una transferencia o un pago en línea, envía un SMS OTP para verificar la validez de la transacción.

  • Cambio de detalles de cuenta: Cuando un usuario desea cambiar información sensible de su cuenta, como su dirección de correo electrónico o contraseña, verifica su autenticidad con un OTP.

  • Activación de tarjetas de pago bancarias: Las tarjetas bancarias recién emitidas a menudo requieren activación a través de OTP para garantizar que estén en posesión de su propietario legítimo. Esto añade una capa extra de seguridad y asegura que solo el titular pueda activar y usar la tarjeta.

Podríamos mencionar muchos otros casos de uso, como asegurar el acceso a documentos o integrar terceros, pero para ahora deberías haber entendido que virtualmente cualquier acción sensible desencadenada por el comportamiento de un usuario podría beneficiarse de una capa extra de seguridad gracias a un SMS OTP.

¿Qué tan seguro es el SMS OTP?

Los SMS OTPs son muy eficaces para mitigar riesgos, debido a su aleatoriedad.

Para un código aleatorio de cuatro dígitos, un estafador necesitaría adivinar cada número correctamente en menos de cinco minutos. Eso son 10 posibilidades, cuatro veces. Matemáticamente, eso se traduce en una probabilidad de uno en 10,000 de acertar un OTP.

A esto se suma el hecho de que un OTP es válido solo una vez y es sensible al tiempo. Es como buscar una aguja en un pajar, ¡excepto que la aguja se mueve a un pajar diferente cada minuto!

Pero tenemos que abordar el elefante en la habitación: el SMS OTP no es infalible.

Debido a su medio, los SMS OTPs pueden estar sujetos a amenazas potenciales. El intercambio de SIM, las vulnerabilidades del protocolo SS7 y la ingeniería social son tácticas bien conocidas utilizadas por los hackers que pueden debilitar los SMS OTPs como un fuerte factor de autenticación.

Es un riesgo que las empresas pueden mitigar educando a sus usuarios, pero más importante aún, implementando un proveedor de OTP que prevenga activamente el fraude.

💡 Por ejemplo, en Prelude, bloqueamos el 99% de los ataques de spam y fraude para nuestros clientes usando una puntuación de riesgo de señales cruzadas para identificar spam con la mejor precisión. Nuestro API Watch analiza docenas de señales digitales, incluyendo la portabilidad de la tarjeta SIM, para prevenir ataques de intercambio de SIM dirigidos a tus usuarios. Nuestro objetivo final es que nuestros clientes solo envíen OTP a usuarios reales, sin tener que recurrir a bloquear países enteros.

Los beneficios de SMS OTP

Seguridad mejorada y reducción de fraudes

Como se discutió anteriormente, los SMS OTPs proporcionan una capa vital de seguridad al utilizar un código imposible de adivinar y sensible al tiempo. Esto ayuda a las empresas a combatir el fraude y proteger las cuentas e información de los usuarios del acceso no autorizado mientras se reducen los riesgos asociados a depender únicamente de las contraseñas de los usuarios.

Construir confianza del cliente

Más del 25% de los usuarios en línea han abandonado transacciones debido a preocupaciones sobre la seguridad de una aplicación o sitio web. Implementar SMS OTP en tu sistema de autenticación de dos factores puede ayudar a eliminar estas barreras a la conversión al asegurarles a los clientes que sus datos e información financiera están seguros con tu empresa.

Accesible para todos tus usuarios

El SMS es el tipo de 2FA más utilizado en todo el mundo. Es fácilmente accesible para todos los usuarios con un teléfono, ya que no requiere de aplicaciones adicionales o tecnología, y aprovecha un medio al que los usuarios ya están acostumbrados.

El SMS es universalmente soportado por operadores de redes móviles, lo que lo hace el canal ideal para llegar a usuarios a escala global.

Autenticación instantánea del usuario

Con altas tasas de entrega y apertura, los SMS permiten a tus usuarios recibir y usar sus OTPs al instante, facilitando una experiencia de autenticación del usuario fluida.

Facilidad de implementación

Implementar SMS OTP en tus sistemas es sencillo y no requiere cambios significativos en la infraestructura o recursos extensos. En Prelude, hemos visto a empresas lanzar sus sistemas OTP en menos de una hora con solo un miembro del equipo.

Escalabilidad

Siendo el SMS un canal mundial, tus necesidades de OTP pueden crecer al mismo ritmo que tu empresa lo hace. Puedes expandirte a nuevos mercados sin necesidad de depender de nuevos proveedores o canales, especialmente si trabajas con un servicio de OTP que ya integra múltiples proveedores.

¿Cómo implementar SMS OTP en tu aplicación?

Ahora que estás convencido de que tu empresa necesita SMS OTPs, ¿cuáles son los siguientes pasos? Desplegar este servicio puede ser bastante rápido y fácil.

1. Elige tu proveedor de servicio OTP

En un artículo anterior, listamos las características a buscar en un proveedor de SMS OTP.

Para elegir el mejor para tu empresa, necesitas tener en mente una lista clara de características imprescindibles, ya sea velocidad y fiabilidad, facilidad de implementación, integraciones o precios.

También asegúrate de verificar si el proveedor ofrece SDKs para tu lenguaje de programación preferido, para facilitar el proceso de integración. Por ejemplo, Prelude proporciona SDKs para muchos lenguajes populares como Node, Go o Python.

2. Integra la API de SMS del proveedor

Una vez que hayas hecho tu elección, puedes usar la API de SMS de tu proveedor para integrar la funcionalidad OTP en tu aplicación. Tu proveedor deberá compartir contigo una clave o token de API, para que puedas configurar el servicio.

3. Prueba la integración

Antes de seguir adelante con tu proveedor, asegúrate de probar la integración. Puedes hacerlo usando números de prueba para verificar que los mensajes se reciben correctamente, luego monitorizando los registros en el panel de control de tu proveedor para asegurarte de que tus usuarios reciban sus OTPs.

4. Monitorea y escala

Una vez que todo funcione sin problemas para tus usuarios, dedica algún tiempo a futuro a monitorear los costos y el volumen de SMS enviados para seguir el rendimiento de tu adquisición. Algunos proveedores como Prelude dan acceso a sus clientes a paneles de control y análisis en tiempo real para que puedan entender mejor sus KPI de autenticación de usuarios y oportunidades.


dashboard prelude

Comienza con SMS OTP con Prelude Verify

Puedes enviar y verificar un código en 2 minutos y 3 simples pasos integrando la API Prelude Verify desde cualquier lenguaje para comenzar a enviar mensajes OTP a tus usuarios en todo el mundo utilizando múltiples canales de mensajería.

Paso 1: Regístrate y obtén tu clave de API

Para usar los servicios de verificación de Prelude, necesitas una clave de API:

  1. Crea una cuenta en Prelude.

  2. Navega a la sección de Claves en tu configuración.

  3. Genera una nueva clave de API y guárdala de manera segura.

Tu clave de API es necesaria para autenticar solicitudes y debe mantenerse privada.

Paso 2: Enviar un código de verificación

Para verificar un número de teléfono, el primer paso es enviar una contraseña de un solo uso (OTP). Usa el endpoint /v2/verification para activar un mensaje con un código de verificación. Puedes ver todos los diferentes parámetros personalizables, como el tamaño del código o la ID del remitente, en nuestra documentación.

Ejemplo de solicitud:

import os
from prelude_python_sdk import Prelude

client = Prelude()

verification = client.verification.create(
    target={
        "type": "phone_number",
        "value": "+30123456789",
    },
)

print(verification.id)

Ejemplo de respuesta:

{
  "id": "vrf_01jc0t6fwwfgfsq1md24mhyztj",
  "status": "success",
  "method": "message",
  "metadata": {
    "correlation_id": "<string>"
  },
  "request_id": "<string>"
}

Paso 3: Comprobación del código de verificación

Una vez que el usuario recibe el OTP, lo introduce en tu app. Luego verificas el código usando el endpoint /v2/verification/check.

Ejemplo de solicitud:

import os
from prelude_python_sdk import Prelude

client = Prelude()

check = client.verification.check(
  target={
    "type": "phone_number",
    "value": "+30123456789",
  },
  code="123456",
)

print(check.id)

Ejemplo de respuesta:

{
  "id": "vrf_01jc0t6fwwfgfsq1md24mhyztj",
  "status": "success",
  "metadata": {
    "correlation_id": "<string>"
  },
  "request_id": "<string>"
}

En caso de errores, como número de teléfono no válido o solicitud no válida, averigua cómo solucionarlos aquí.

Paso 4: Envío de señales de fraude

¡Ya estás listo con Prelude! Este último paso es opcional (pero muy recomendado) ya que te ayudará a aprovechar al máximo nuestra API al habilitarla para mitigar ataques de fraude como el bombeo de SMS.

Puedes enviar más de 50 señales de usuario (modelo del dispositivo, versión de la app, nivel de batería y más) a Prelude a través de nuestros SDKs móviles (para iOS, Android y React Native) para el filtrado más preciso posible. Más información aquí.

También puedes comenzar abriendo nuevos países y nuevos canales de mensajería (como WhatsApp, RCS o Viber) dependiendo de tus necesidades de verificación de usuarios.

Mejores prácticas para SMS OTP

¿Cómo puedes asegurarte de que tu OTP impulse conversiones en lugar de perder usuarios? Aquí hay algunas mejores prácticas que recomendamos a nuestros clientes, basadas en nuestra experiencia enviando millones de OTPs cada mes.

  • Manténlo corto y dulce: Tu SMS debería comenzar con el código, permitiendo a los usuarios ingresarlo directamente en tu aplicación sin necesidad de abrir el mensaje. Si deseas agregar tu propio toque en el contenido del mensaje, puedes hacerlo después de que se mencione el código.

  • Implementa opciones de respaldo: Si tu usuario tiene una mala recepción de red celular, siempre es mejor tener opciones de respaldo como WhatsApp o Viber para enviar tu OTP. Apunta a un proveedor de OTP que pueda hacer esto automáticamente por ti.

  • Permite volver a intentar OTPs: Los usuarios que no reciban o utilicen su OTP a tiempo deben poder solicitar uno nuevo.

¿Cómo superar los desafíos del SMS OTP?

En Prelude, notamos que nuestros clientes vienen a nosotros cuando enfrentan uno de los dos desafíos comunes del SMS OTP:

  • facturas altas de sus proveedores de OTP debido a cargos por fraude,

  • o la necesidad de servicios de verificación SMS accesibles mientras desarrollan sus aplicaciones.

Abordamos estos problemas con un modelo de precios que puede reducir los costos de verificación SMS en 30-40% y mejorar las tasas de conversión. Nuestros servicios incluyen costos más bajos para la protección contra fraudes, opciones de enrutamiento múltiple y un panel de control transparente que muestra desgloses de costos de SMS y ahorros.

Con detección avanzada de fraudes y análisis en tiempo real, nuestros clientes pueden ahora conectarse efectivamente con usuarios genuinos mientras minimizan los gastos.

Mejora tu proceso de verificación SMS reservando una demostración de nuestra API o p ruebalo hoy mismo!