Debilidades en el nuevo servicio Telegram passport

El 26 de julio, Telegram anunció el lanzamiento de Telegram Passport, diseñado para encriptar la información de identificación personal de los usuarios y permitirles compartir sus datos de identificación con terceros, tales como ofertas iniciales de monedas ICOs, cripto monederos y cualquier persona que cumpla con conozca a su cliente (KYC).

Los datos de los usuarios se guardan en la nube de Telegram mediante encriptación de extremo a extremo (E2E), y posteriormente se trasladan a una nube descentralizada, que no puede descifrar los datos personales ya que se considera "ruido aleatorio". Sin embargo, en su investigación reciente Virgil Security planteó preocupaciones sobre la protección de contraseñas en el servicio.

Como de costumbre usa los servidores de su nube para guardar los datos privados de los usuarios y luego existen unos cuantos SDKs libres para usar este servicio. Aunque, como este servicio es para subir datos personales (DNI, pasaporte, domicilio, ...). Telegram ha hecho que este servicio use tecnología E2E, es decir, que los datos guardados en la nube están totalmente cifrados y solo el usuario con su contraseña puede acceder a ellos.

La recientemente lanzada herramienta de autorización de identificación personal Telegram Passport de la aplicación de mensajería Telegram es vulnerable a los ataques de fuerza bruta, según un informe del 1 de agosto del desarrollador de software y servicios criptográficos Virgil Security, Inc.
Como comenta el usuario Scratch en otro post en la web Habr (en ruso), puede que la implementación que ha hecho Telegram de esta tecnología sea insegura. Como de costumbre Telegram ha usado sus propias herramientas en vez de usar estandares como HMAC, pero parece que esta vez si ha metido la pata.

¿Como funciona el E2E de Telegram Passport?

Subida de datos:
  • Se cifran localmente (En el movil, PC, etc del usuario) los datos personales y los metadatos en formato JSON.
  • Se suben los datos cifrados a la nube de Telegram.
Obtención de los datos
  • El cliente baja los datos de la nube.
  • Se descifran los datos a través de una contraseña.
  • Se recifran los datos con la llave publica RSA de 2048 bits del servicio que solicita los datos.
  • Se envían los datos cifrados al servicio.

Algoritmo de cifrado

Lo primero que realiza es añadirle un salt delante y detrás de la contraseña para luego generar un Hash SHA-512 de esta. Aquí encontramos el primer problema, ya que a día de hoy, a estos hash ya se le pueden realizar ataques de fuerza bruta viables, de hecho si suponemos que la contraseña es de 8 caracteres, con 100 GPUs se tardaría más o menos una semana. Parece difícil tener 100 GPUs, aun hay que destacar que las granjas de estas son más comunes gracias a las criptomonedas. En 2018 se pueden romper 1.5 billiones de hashes SHA-512 por segundo.

Luego se genera una clave casi aleatoria, ya el algorimo se asegura que el modulo de la llave por su suma de bits, equivalga a 239. Este diseño permite calcular la cantidad de bits, pero con muchos falsos positivos, en un ataque de fuerza bruta. Por otro lado, usan una función para generar la clave, que es pseudoaleatoria. Finalmente cifran esta clave con el hash de la contraseña antes obtenido.

A continuación, se mezcla los datos no cifrados con un paddin de entre 32 a 255 Bits. Para despues generar un hash Sha256 de estos datos, concatenarlo a la clave casi aleatoria y generar asi la llave de cifrado.

Finamente, se cifran los datos con AES, para así trasmitir a la nube lo siguiente: Hash de los datos personales mezclados con bits aleatorios, las clave semialeatoria cifrada, el salt y los datos cifrados.

Algoritmo de comprobación

Para comprobar que la clave de descifrado es correcta, se comprueba el primer bit de alineación, debido a que sera siempre la misma porque está en formato JSON. Esto acelera un ataque por fuerza bruta.

El ataque de fuerza bruta

Scratch plantea: Generar un hash de la contraseña y salt; intentar descifrar la clave, filtrando las contraseñas invalidas por la cantidad de bits; generar la llave de cifrado; y por último, comprobar si es correcta.

Fuente: Virgil Security

Via: feedproxy.google.com
Debilidades en el nuevo servicio Telegram passport Debilidades en el nuevo servicio Telegram passport Reviewed by Anónimo on 9:21 Rating: 5