Twitter lanzó (hace algún tiempo) un nuevo kit llamado Digits que permite al cliente iniciar sesión con un número de teléfono y un código de autorización (recibido a través de sms). Me parece genial para la experiencia del usuario y estaba pensando en implementarlo en nuestra aplicación / sitio web también, pero ¿no es esto "muy" inseguro? Puedo imaginar varios problemas:
- el número de teléfono es fácil de adivinar : esto permite que el atacante ejecute campañas SPAM ciegas exitosas incluso en función de la ubicación (estado, ciudad según el prefijo). Si la mayoría de los usuarios de Internet usaran números de teléfono en lugar de direcciones de correo electrónico, estoy seguro de que la cantidad de correo no deseado que reciben será mayor. Los spammers no tendrán que preocuparse por la recolección de direcciones de correo electrónico. Solo generarían números de teléfono con una buena posibilidad de detectar números válidos / activos.
- el sms es inseguro : a diferencia del servicio de correo electrónico, el SMS no tiene un protocolo de autenticación (por lo que sé), DKIM, SPF, por lo que incluso los clientes experimentados no pueden verificar la integridad del remitente (es decir, si es Twitter o un número falso). Una vez que se registra / autentica con el número de teléfono, también establece SMS como canal de comunicación. Por lo tanto, no solo se envía el código de autenticación a través de SMS, sino que todas las comunicaciones (confirmaciones o lo que sea que envíe Twitter) se envían a través de un canal que no admite la autenticación. Esto es básicamente como el correo electrónico sin DKIM, SPF e incluso sin ningún filtro SPAM.
- perturbación: bruta obliga a la mayoría de los números de teléfono válidos solo por diversión a generar perturbaciones (es decir, hacer que Twitter envíe códigos de autenticación a todos los números de teléfono posibles). Puede haber restricciones de IP razonables, pero no puedo ver esto deteniendo al atacante.
recolección de datos - > malware : el atacante encuentra qué números de teléfono están registrados en Twitter (ver Brute Force), les envía SMS (que parecen notificaciones de Twitter) con enlaces maliciosos.- phishing : el cliente puede estar más dispuesto a revelar un código recibido a través de sms que una contraseña. Si un formulario de phishing solicita un SMS recibido de Twitter (MITM), creo que el cliente está más dispuesto a proporcionarlo que una contraseña, ya que el código se recibe a petición (no se espera que sea un secreto que el cliente está recordando) y el proceso (espere el SMS y cópielo / péguelo) distrae al cliente de la página de inicio de sesión. También vale la pena tener en cuenta que la notificación por SMS cubre el encabezado de la interfaz de usuario (barra de direcciones).