¿La función para compartir el número de teléfono del bot de Telegram es una manera suficiente de autenticar a un usuario?

3

Necesito integrar la aplicación web en Telegram usando telegram bot. Necesito realizar una autenticación para el cliente, y el usuario de la aplicación web para autenticar con su número de teléfono + contraseña. He encontrado un método interesante para obtener el número de teléfono del usuario a través del botón especial

Este método parece ser suficiente para realizar la autenticación sin la contraseña del usuario, ya que el usuario no puede enviar a nadie excepto a su número de teléfono, y toda la autenticación ya realizada por Telegram. Pero es un poco vergonzoso para mí, ya que no sé cómo funciona la función de compartir el teléfono y lo difícil que es evitarlo o engañarlo.

* Como precaución, creo que solo se debe realizar la autenticación (puede ser incluso una identificación) a través de Telegram bot. Y para acciones sensibles se requerirá una autorización adicional (pero no sé cómo, por ahora))

    
pregunta Максим Романюк 25.01.2018 - 15:54
fuente

2 respuestas

1

Bien, puede parecer inseguro a primera vista, pero, si el bot realiza la verificación de usuario correctamente, dará 100% de confianza en la autenticidad del número de teléfono del usuario. Y su autenticidad se prueba mediante el mecanismo de autenticación de Telegram (que es la verificación de SMS).

Como comentó ximaera:

  

Asegúrese de verificar si la identificación del usuario con el que se está comunicando coincide con el valor user_id del contacto que ha recibido

Cualquier aplicación de telegramas que envíe cualquier contacto como objeto con las propiedades first name , last name y phone number . No hay otras formas en que la API de Telegram permita hacerlo. Y el bot recibe este objeto con user_id añadido por el servidor de telegramas. Esta propiedad adicional es igual a chat_id de usuario con este número de teléfono. Entonces, parece que es suficiente comparar user_id del contacto con chat_id del usuario que envió este contacto.

K.B. dijo:

  

Los números de teléfono son muy fáciles de falsificar

Nuestra aplicación web utiliza la verificación por SMS del número de teléfono durante el registro. Lo mismo se hace por telegrama. Por lo tanto, nuestro mecanismo de autenticación no es más seguro que el de Telegram.

  

Si el dispositivo del usuario es robado / perdido / comprometido de otra manera, el token puede ser revocado

Si el teléfono es robado / perdido y no está protegido con PIN / huella digital / otro, el nuevo propietario del teléfono tendrá todos los recursos para recuperar el control de la cuenta de cualquier usuario.

Por supuesto, las medidas de seguridad no son superfluas, especialmente cuando se extiende la zona de confianza a un servicio de terceros. Pero creo que la seguridad de Telegram está muy por delante de la seguridad de las aplicaciones normales, por lo que, una vez integrada, puede utilizarse aún más como mecanismo de autorización, en lugar de códigos de verificación de SMS.

    
respondido por el Максим Романюк 26.01.2018 - 07:19
fuente
0

No tengo ninguna experiencia específica con telegram, pero en general:

  • Los números de teléfono son muy fáciles de falsificar. Así que usar eso para la autenticación es bastante débil.
  • Requerir solo un número de teléfono sería la autenticación de un solo factor en general, no es bueno si potencialmente estás tratando con algún tipo de información sensible / valiosa.

Un enfoque mejor (y una vez más, no sé si esto es factible en su instancia específica) es hacer que el usuario se autentique con el número de teléfono / nombre de usuario / contraseña una vez, luego dé a la aplicación un token que pueda usar para autenticar en el futuro. Esto da los beneficios:

  • El usuario no tiene que ingresar la contraseña cada vez.
  • El atacante que puede falsificar el número de teléfono no puede acceder a la cuenta del usuario, tendrían que tener el token que está almacenado en el dispositivo del usuario.
  • Si el dispositivo del usuario es robado / perdido / comprometido de otra manera, el token puede ser revocado.
  • Los tokens no se pueden robar en tránsito mientras esté usando SSL.
respondido por el K.B. 25.01.2018 - 16:44
fuente

Lea otras preguntas en las etiquetas