Autentificando un usuario a través de SMS

7

Estoy involucrado en un proyecto que está creando un chat-bot con el que los usuarios pueden comunicarse a través de SMS desde sus teléfonos móviles. Nos gustaría que los usuarios puedan usar el bot para realizar algunas tareas básicas de administración de cuentas a través de SMS para sus cuentas con nosotros: cambiando su plan base, comprando funciones adicionales, etc.

¿Nos preguntamos si hay alguna manera de (de manera razonable) identificar de forma segura que el usuario que envía el mensaje de texto es realmente el propietario de la cuenta? Las opciones que hemos considerado son 1) solicitar los últimos 4 de la tarjeta de crédito del usuario y 2) enviar un código de acceso de uso único al usuario por correo electrónico.

Obviamente, ninguno de los dos proporciona seguridad hermética, pero la responsabilidad aquí involucrada es bastante baja. Si alguien pierde su teléfono inteligente, los cargos que el ladrón podría hacer al usar este bot de chat serían la menor de las preocupaciones de la persona. En el raro caso de que el teléfono de alguien se haya visto comprometido, estaremos dispuestos a pagar los costos necesarios para que el usuario esté completo.

Sin embargo, todavía nos gustaría que este proceso de identificación sea lo más seguro posible. Problemas que vemos:

Con el escenario 1, los últimos 4 de la tarjeta de crédito quedan potencialmente en el historial de SMS, por lo que cualquiera que reciba el teléfono (o instale una aplicación maliciosa) tiene acceso a los últimos 4 de la tarjeta y ahora puede autenticarse.

Con el escenario 2, cualquier persona que tenga acceso al teléfono tiene acceso al correo electrónico, por lo que no es una gran mejora con respecto al 1.

¿Hay alguna otra técnica que podamos usar para autenticar que pueda proporcionar más seguridad que esos dos métodos? Soy consciente de que nada será hermético, pero estoy buscando buenas sugerencias.

He considerado algo como enviar sal, hacer que calculen un hash de su último 4 y enviarlo de vuelta, pero eso es prohibitivamente complejo, y aún no es una mejora de seguridad.

    
pregunta John Chrysostom 29.03.2016 - 17:05
fuente

3 respuestas

6

Parece que lo que estás buscando es un código o token "fuera de banda". Esto significa que desea algo que no sea accesible para alguien que tenga el teléfono físicamente. Así que cosas como correos electrónicos y Google Authenticator están fuera.

Supongo que los usuarios realizarán (al menos) la configuración de la cuenta por primera vez a través de un navegador web, ¿qué hay de hacer que ingresen un "PIN de SMS" que el chatbot más tarde les pedirá?

Esto es similar al uso de los últimos 4 dígitos de su número de tarjeta de crédito, ya que estará en su historial de SMS y un ladrón de teléfonos puede cobrarle a su bot de chat. Lo que me pone nervioso por los dígitos de CC es que, para la comodidad de su servicio, aumenta el riesgo de robo de identidad de sus usuarios.

Como señalaste en tu pregunta: si al usuario le roban su teléfono y el atacante pasa la pantalla de bloqueo, de todos modos se hundirá un poco. Contra lo que realmente está protegiendo es a alguien que se hace pasar por su usuario desde un teléfono diferente a través de spoofing por SMS la %número de código. En este sentido, ya sea una contraseña de un solo correo electrónico o un pin preestablecido le dará la seguridad que necesita.

    
respondido por el Mike Ounsworth 29.03.2016 - 17:44
fuente
2

¿Una pequeña aplicación móvil estaría fuera de discusión?

Manejaría todos los mensajes entrantes y salientes (para los mensajes relevantes, por supuesto) eliminaría todos los mensajes enviados y recibidos (desde la aplicación). Requeriría un número pin para acceder al cual el usuario tendría que ingresar cada vez. Tal vez algún cifrado básico del mensaje también?

Como beneficio adicional, aumentaría la facilidad de uso, ya que podría crear el SMS utilizando indicaciones en lugar de tener que recordar las abreviaturas correctas y el formato de los mensajes.

    
respondido por el Drifter104 30.03.2016 - 15:21
fuente
0

Salvo algo extraño, como cambiar a algo como llamar al robot en lugar de SMS, esto parece ser un problema con el que el usuario tiene que lidiar desafortunadamente. Si definitivamente está bloqueado usando SMS para autenticarse, hay muy poco que pueda hacer para lidiar con el acceso físico de un atacante.

Quizás, asegúrate de recordar a los usuarios después de cada mensaje de autenticación que usen contraseñas seguras del teléfono y que eliminen su historial de texto con el bot de chat.

No es realmente una solución, por ejemplo, pero si un atacante tiene acceso físico y puede pasar la contraseña en el teléfono, existe un problema mayor que el de cargarle a su bot de chat.

Y como Mike sugirió, trate de no usar los dígitos del cc para autenticarse, es una mala práctica.

    
respondido por el WorseDoughnut 29.03.2016 - 17:53
fuente

Lea otras preguntas en las etiquetas