android - recuperar - problemas al autenticar whatsapp
¿Cómo funciona la autenticación de Whatsapp? (2)
Hoy en día Whatsapp lo autoriza a usar la aplicación simplemente enviando un mensaje de texto a su teléfono. Si la tarjeta SIM de su teléfono tiene el mismo número que ingresó, Whatsapp toma automáticamente el código del mensaje de texto y autoriza su teléfono. De lo contrario, aún debe acceder al teléfono que usa ese número de teléfono e ingresar el código de verificación.
Quiero desarrollar una aplicación móvil y utilizar un registro de usuario como whatsapp. Ahora recuerdo los problemas de seguridad que se discutieron hace algunos años. Whatsapp solía autenticar usuarios simplemente por su número de teléfono e IMEI. Ahora, por supuesto, esto no es realmente seguro, pero realmente no sé cómo hacerlo de forma más segura.
Ahora no escuché nada sobre los problemas de autenticación de Whatsapp durante mucho tiempo, así que supongo que ahora tienen un método seguro. ¿Sabes cómo lo hace Whatsapp hoy?
Voy a dar una puñalada a esta pregunta.
Que yo sepa, Whatsapp todavía usa su número de teléfono como el identificador único principal. La primera vez que inicie sesión en Whatsapp, verifique que el número de teléfono sea el suyo.
Sin embargo, la segunda vez que Whatsapp proporciona una clave secreta al iniciar sesión. Esto ayuda a evitar algunos de los servicios de ataques como Telegram, donde se puede llamar e interceptar un SMS en cualquier momento para acceder a la cuenta (mire cómo funciona su inicio de sesión web).
De hecho, esta clave secreta que proporcionan es su identificador, que se almacena de forma segura localmente, que se debe usar en todas las solicitudes que procedan. Por supuesto, los usuarios cambian de teléfono. En tal caso, la cuenta debe ser reactivada a través de SMS donde se producirá una nueva identificación secreta, invalidando la anterior.
Por lo tanto, un atacante podría intentar el protocolo de intercepción de SMS del que hablé por medio de la reactivación. El problema con esto es que te darás cuenta de que alguien está interceptando tu tráfico de inmediato porque Whatsapp estaría deshabilitado en tu propio dispositivo. Por lo tanto, esto solo podría ser exitoso si no revisas Whatsapp por un tiempo o estás en medio de un corte de internet. En general, esto hace que su método sea seguro.
@Srinivas Lo que ha observado es nada más que el almacenamiento de Whatsapp que un número de teléfono particular no puede ser verificado durante las próximas dos horas, independientemente del origen de la solicitud, en su servidor de verificación.
EDITAR: En respuesta al comentario de @ Srinivas:
La última parte de tu respuesta es absolutamente correcta. Hice algunas pruebas y funciona como dijiste. Gracias. Pero no tengo claro el inicio de sesión por primera vez y el segundo inicio de sesión.
Me disculpo por no ser exhaustivo. Intentaré volver a explicar.
Como veo whatsapp, la pantalla inicial es el registro (pantalla de solicitud de código de sms) y el segundo inicio de sesión es verificar el código (verificar el código de sms). ¿Me puede dar más información para mi comprensión, por favor?
Lo que quise decir con el primer inicio de sesión es todo el proceso de verificación de SMS. Por lo tanto, lo dividiré en dos segmentos:
Inicio de sesión por primera vez : el usuario solicita un código de verificación de SMS. Deben ingresar el código correctamente si provienen de otro dispositivo o, como alternativa, Whatsapp reconoce la tarjeta SIM y completa la verificación automáticamente. A continuación, inician sesión y tienen acceso a sus mensajes no entregados o respaldados si se trata de una cuenta previamente existente.
Ingreso por segunda vez : Inmediatamente después de este proceso de verificación, Whatsapp entrega un token de acceso secreto que se almacena localmente en el dispositivo. Por lo tanto, cada vez que abren la aplicación e intentan conectarse al servidor, deben usar esta clave de acceso. Como ya expliqué, si desean reactivar su cuenta en otro dispositivo, deberán completar el paso 1 nuevamente desde el nuevo dispositivo, que luego generará una nueva clave secreta, invalidando la anterior y haciéndola solo es posible iniciar sesión con el nuevo dispositivo.
Aquí hay un poco de documentación que encontré que ha creado una api similar: github.com/mgp25/Chat-API/wiki/WhatsApp-Registration-Flow. por favor brinde su valioso aporte
Revisé la documentación y siguen el mismo patrón con precisión. Lo que puede confundirte es el "token de solicitud de código" inicial. Esta es simplemente una clave que verifica la validez del dispositivo que realiza una solicitud para completar el paso 1. Esto garantiza la legitimidad del origen del usuario que intenta registrar su dispositivo.
Así es como funciona eso:
El usuario desea completar el primer paso. Por lo tanto, envían un token de solicitud al servidor junto con su identidad (número de teléfono). Este es un código que se entregó en la carga a la aplicación.
Esto todavía no es suficiente para detener un intercepto de SMS durante el paso 1. Dado que el origen de la solicitud es una instalación de Whatsapp legítima, el código de verificación de SMS puede dar acceso a un atacante a la cuenta del usuario. Sin embargo, como señalé anteriormente, esto invalida la clave secreta generada previamente en el paso 2. Por lo tanto, el usuario se dará cuenta de que ha cerrado sesión localmente siempre que esté utilizando Whatsapp activamente y esté conectado a Internet.
Avísame si hay más confusión.