Los técnicos deben conocer los riesgos de iniciar sesión con códigos de verificación de teléfonos móviles
El inicio de sesión con código de verificación móvil es un método de inicio de sesión de aplicación común. Es simple y conveniente, y no es necesario recordar una contraseña. Básicamente, todas las aplicaciones del mercado admiten este método de inicio de sesión y muchas aplicaciones también lo integran. inicio de sesión y registro Una vez que lleguemos allí, el registro y el inicio de sesión se pueden realizar de una sola vez, ahorrando a los usuarios muchos problemas y dándoles la sensación de tener el mundo al alcance de su mano.
El principio de inicio de sesión del código de verificación del teléfono móvil es muy simple. Para un proceso de inicio de sesión normal, basta con mirar la siguiente imagen:
En las aplicaciones reales, habrá algunos. Casos en los que no se puede recibir el código de verificación Las posibles razones son las siguientes:
Para el problema de no recibir SMS, el sistema agregará la función de reenviar el código de verificación si no se puede recibir el código de verificación. después de múltiples reenvíos, el sistema puede admitir métodos de código de verificación de voz o SMS de enlace ascendente, los cuales son variantes de los códigos de verificación de SMS.
El riesgo de seguridad de los códigos de verificación de teléfonos móviles es principalmente el uso malicioso y el robo.
Debido a que los códigos de verificación de teléfonos móviles se utilizan ampliamente, para tener una comprensión más completa, los riesgos de seguridad mencionados aquí no se limitan al inicio de sesión. Pueden existir todos los escenarios en los que se utilizan códigos de verificación de teléfonos móviles. La estrategia de respuesta aquí proviene principalmente de la perspectiva de los desarrolladores de sistemas, que utilizan diversas soluciones técnicas para resolver o reducir los riesgos de seguridad de los códigos de verificación de teléfonos móviles.
El estafador primero obtiene el número de teléfono móvil del usuario y luego se hace pasar por una institución financiera, una autoridad pública, un familiar o un amigo después de ingresar el número de teléfono móvil del usuario en la aplicación para solicitar un código de verificación. , el estafador solicita al usuario el código de verificación del teléfono móvil correspondiente. Un pequeño descuido puede provocar pérdidas monetarias.
Para abordar estos problemas, los desarrolladores de sistemas pueden considerar las siguientes soluciones:
También existe un método de fraude relativamente oculto: el estafador envía directamente la dirección de un sitio web de phishing falso al usuario. Al obtener el código de verificación en el sitio web de phishing, el estafador lleva el número de teléfono móvil del usuario al sitio web real para solicitar el código de verificación. En este momento, el usuario recibirá un código de verificación real. En el sitio web de phishing, el estafador puede utilizar este código de verificación en el sitio web real.
En este caso, el método anterior para identificar las características de inicio de sesión utilizadas habitualmente por los usuarios sigue siendo válido. Además, las plataformas de SMS y los operadores de telecomunicaciones también tienen la responsabilidad de controlar el contenido de los mensajes SMS. Las plataformas de SMS deben verificar la verdadera identidad del remitente, revisar el contenido de los mensajes SMS y proporcionar un mecanismo de control de tráfico dinámico, para que la mayoría. Los mensajes SMS fraudulentos se pueden filtrar.
De hecho, los operadores de telecomunicaciones pueden identificar la ubicación de los teléfonos móviles. Si los operadores de telecomunicaciones pueden proporcionar un servicio de autenticación de ubicación segura, también pueden resolver la mayoría de los problemas de fraude de códigos de verificación. lleva el código de verificación al enviar el código de verificación para la autenticación. El proveedor de servicios de la aplicación puede utilizar el identificador de ubicación proporcionado por el operador de telecomunicaciones para ir al operador de telecomunicaciones y verificar la ubicación. En realidad no existe tal método.
Puede haber dos escenarios de ataques de SMS:
Dichas operaciones primero desperdiciarán recursos de SMS y causarán pérdidas a los proveedores de servicios de aplicaciones. Los ataques maliciosos también enviarán una gran cantidad de mensajes SMS; Usuarios inocentes. Mensajes de texto, provocando ataques de acoso.
Para solucionar este problema, puede considerar las siguientes soluciones:
Sin embargo, este tipo de control debe intentar no afectar las operaciones comerciales normales de los usuarios, de lo contrario la ganancia será mayor. la pérdida.
Supongamos que el usuario recibe el código de verificación de inicio de sesión, lo ingresa correctamente y luego lo envía al servidor para su verificación. Durante el proceso de transmisión desde el teléfono móvil al servidor, pasará a través de muchos dispositivos de red y sistemas de servidor. El contenido enviado para iniciar sesión puede ser interceptado y obtenido. En este momento, el atacante puede bloquear la solicitud y tomar el teléfono móvil del usuario. número y código de verificación para iniciar sesión.
Para solucionar este problema, generalmente es necesario cifrar el contenido de la transmisión de la red. Por ejemplo, la comunicación https de uso común puede garantizar que el contenido de la transmisión entre los dos extremos sea seguro y no pueda ser interceptado. Para la seguridad de la transmisión, esto suele ser suficiente.
Sin embargo, https no es una solución milagrosa. Si un atacante importa en secreto su propio certificado en el cliente y luego permite que las solicitudes de red se envíen primero a través de él mismo y luego se envíen a la dirección de destino, el atacante. Todavía puedo obtener el contenido de la solicitud. Si desea experimentar este método, puede probarlo con Fiddler. También existe la posibilidad de que el certificado https se emita por error. Si el certificado de otra persona se emite al atacante, la transmisión segura no tendrá sentido en este momento.
Para mayor seguridad, el contenido de la transmisión se puede cifrar y descifrar en la aplicación. El cliente cifra los datos que se transmitirán de acuerdo con el acuerdo con el servidor y luego los envía a la red. lo intercepta, si Sin métodos de descifrado efectivos, se puede garantizar que los datos no serán escuchados a escondidas. El objetivo del cifrado es garantizar que la clave sea segura y no pueda ser robada ni reemplazada. Puede transmitirse a través de otros canales seguros o incluso fuera de línea. Para datos como códigos de verificación que solo se utilizan para verificación, también se pueden realizar operaciones de hash lentas agregando sal. Incluso si el atacante obtiene el contenido de la transmisión, será muy difícil de descifrar.
Si se instalan malware o versiones no oficiales de software en el sistema, especialmente en sistemas pirateados, sistemas de telefonía móvil rooteados o con jailbreak, los atacantes también pueden interceptar y robar fácilmente códigos de verificación SMS. Al mismo tiempo, cifran y; El descifrado en las escuchas ilegales de la red también puede perder su efecto, porque el software ya no es confiable y es difícil determinar si sucede algo sospechoso entre diferentes operaciones.
En los últimos años se ha introducido en los dispositivos móviles un concepto llamado Trusted Execution Environment (TEE), que es independiente del sistema operativo, una aplicación separada y algunos incluso tienen procesadores separados. almacenamiento, de difícil acceso y agrietamiento desde el exterior. Aquí se resumen algunas operaciones clave, como la recopilación de huellas dactilares, el registro y autenticación, la generación y uso de claves, la decodificación y visualización de videos protegidos por derechos de autor, etc. Si también se pone aquí el procesamiento de códigos de verificación por SMS, sin duda será mucho más seguro, pero esto tendrá que solucionar muchos problemas de comunicación, y los beneficios pueden no ser proporcionales a los costes. Esta tecnología no se ha visto mucho en computadoras de escritorio. Quizás el entorno de escritorio ya tenga un sistema de seguridad relativamente maduro, pero no debería ser difícil migrar desde el terminal móvil.
El rastreo de SMS también es una técnica de escucha, pero es una forma de atacar las comunicaciones de las redes de telecomunicaciones.
Hoy en día, los teléfonos móviles generalmente utilizan redes 4G y 5G, pero la tecnología de "rastreo de SMS" solo apunta a redes 2G. Los delincuentes utilizan equipos especiales para suprimir las señales de las estaciones base, eligen lugares con mala calidad de red o utilizan 4G. Las pseudoestaciones base engañan a los teléfonos móviles, lo que provocará una degradación de la frecuencia de la red y reducirá las comunicaciones 3G y 4G del teléfono móvil a 2G.
En la red 2G, solo la estación base puede verificar el teléfono móvil y el teléfono móvil no puede verificar la estación base. El atacante configura una estación base falsa para permitir que el teléfono móvil objetivo se conecte y. luego obtiene cierta información de autenticación de conexión y luego finge ser el teléfono móvil objetivo para conectarse. Después de conectarse a la estación base real, llama a otro teléfono móvil del atacante y obtiene el número de teléfono móvil objetivo a través del identificador de llamadas.
La estación base en sí no se comunica con cada teléfono móvil mediante señales en una dirección específica, sino que envía señales en forma de transmisiones en todas las direcciones. Por lo tanto, cada teléfono móvil puede recibir señales de otros teléfonos móviles. La red 2G transmite datos sin cifrado y el contenido del mensaje de texto se transmite en texto claro, por lo que se pueden detectar los mensajes de texto del teléfono móvil de destino. Además, el protocolo de comunicación 2G es de código abierto, por lo que el umbral técnico para este asunto no es alto.
Debido a que este tipo de ataque requiere que el teléfono móvil no se pueda mover, será inútil si se cambia la estación base, por lo que el ataque generalmente se lleva a cabo en plena noche. Para los usuarios comunes, pueden optar por apagar el teléfono o activar el modo avión cuando duermen, además, activar VoLTE puede permitir que las llamadas y mensajes de texto pasen por el canal 4G, pero la degradación de la red es difícil de evitar o comprar un móvil; teléfono que puede identificar pseudo estaciones base, pero no hay forma de garantizar el 100% de reconocimiento o solo puede esperar a que el operador de telefonía móvil apague la red 2G;
Los desarrolladores de sistemas de aplicaciones deben ser conscientes de la inseguridad de los canales de comunicación.
Cuando sea necesario, habilite la autenticación de dos factores Además de los códigos de verificación por SMS, también puede utilizar la verificación de enlace ascendente por SMS, la transmisión de llamadas de voz, la verificación de contraseña dedicada, la vinculación de dispositivos comunes, la identificación biométrica, la selección dinámica de métodos de verificación de identidad y otras verificaciones secundarias. métodos.
Supongamos que algunos servicios de transacciones requieren un código de verificación por SMS para verificar la identidad del usuario. Si un atacante intercepta el mensaje de solicitud de transacción y lo envía al servidor varias veces, y el servidor solo verifica si el código de verificación es correcto, es posible que se produzcan múltiples transacciones. En este punto, el atacante no necesita descifrar la transmisión.
En este momento, el código de verificación debe limitarse a un solo uso. Cuando el servidor recibe la solicitud de transacción, primero verifica el código de verificación. Después de pasar la verificación, el código de verificación se establece o elimina. y luego se procesa la transacción, independientemente de si la transacción es exitosa, el código de verificación no se puede volver a utilizar. Además, se debe establecer un período de validez más corto al generar el código de verificación. Si el usuario no lo envía, el atacante también debe usarlo dentro del período de validez, lo que dificulta el ataque.
Por supuesto, también puedes utilizar métodos anti-repetición más generales, como obtener un número aleatorio del backend cada vez que solicitas un código de verificación. Si se ha utilizado el número aleatorio, no se puede utilizar. nuevamente si el número aleatorio no existe y no puede manejar la solicitud. Por supuesto, el número aleatorio también se puede generar en el front-end. Si el servidor recibe un número aleatorio duplicado, rechazará la solicitud. Sin embargo, debe evitar que el número aleatorio sea manipulado durante el proceso de transmisión. realizarse mediante firma de clave.