Estoy buscando un servicio o protocolo de mensajería instantánea seguro basado en la nube (es decir, no de extremo a extremo). Lo primero que me viene a la mente es el telegrama. Aquí hay una cita de la política de privacidad de telegram:
Chats en la nube
Telegram es un servicio en la nube. Almacenamos mensajes, fotos, videos y documentos de sus chats en la nube en nuestros servidores, para que pueda acceder a sus datos desde cualquiera de sus dispositivos en cualquier momento y utilizar nuestra búsqueda instantánea de servidores para acceder rápidamente a sus mensajes desde waaay back. Todos los datos se almacenan fuertemente encriptados y las claves de encriptación en cada caso se almacenan en varios otros DC en diferentes jurisdicciones. De esta manera, los ingenieros locales o los intrusos físicos no pueden acceder a los datos del usuario.
Mi entendimiento acerca de esta declaración es que, aunque los mensajes están cifrados, si el administrador / compañía del servidor quiere leer sus mensajes, puede hacerlo, porque tanto las claves como los mensajes están almacenados en su servidor, aunque no en el mismo servidor Entonces, ¿no es lo suficientemente seguro? ¿Mi entendimiento es correcto?
Si el protocolo anterior no es seguro, ¿es el siguiente protocolo (aproximado) lo suficientemente seguro, suponiendo que mis dispositivos no sean pirateados, pero todas las personas (ISP, corredores de servidores ...) en Internet son ladrones de privacidad? Esto es solo un cifrado asimétrico simple con solo las partes en negrita especiales.
Registro :
- El programa cliente genera un par de claves públicas-privadas.
- El programa cliente envía la clave pública (solo para cifrado) al servidor.
Estableciendo sesión de chat :
- A quiere comenzar una sesión hablando con B . A envía la solicitud al servidor.
- El servidor envía la solicitud y la clave pública de A a B .
- El servidor envía la clave pública de B a A .
Conversación :
- A envía el mensaje cifrado con A y la clave pública de B al RESPECTIVAMENTE al servidor. (es decir, envíe el mismo mensaje dos veces, cifrado con claves diferentes)
- El servidor guarda los mensajes cifrados y envía el mensaje cifrado con la clave pública de B a B .
- El programa cliente de B utiliza la clave privada de B para descifrar el mensaje
Iniciar sesión desde un nuevo dispositivo :
- A usa un método seguro (por ejemplo, una memoria USB, tarjeta SD, etc.) para copiar las claves del dispositivo original.
- El programa cliente de A recibe el historial de chat no en el dispositivo desde el servidor que está cifrado con la clave pública de A
- El programa cliente de A utiliza la clave privada de A para descifrar los mensajes
Creo que este llamado protocolo es realmente simple e incluso puede ser un trabajo escolar (porque simplemente funciona) ... Pero no puedo encontrar un servicio de mensajería instantánea que lo haga. ¿Me estoy perdiendo algo o este protocolo no es seguro en absoluto?