Advertencia larga respuesta!
Desde 1990, he estado estudiando la confidencialidad de los sistemas de mensajería en computadoras y dispositivos móviles.
Era obvio que los foros electrónicos, correos electrónicos y mensajes SMS podían ser interceptados fácilmente por terceros. Esperar que el servicio que brindaba a las empresas desarrollara e implementara protocolos de confidencialidad no era realista. Nunca hubo un consenso general sobre la necesidad de confidencialidad o desarrollo de protocolos entre servicios.
- ¿Cuál es el virus más débil para las computadoras?
- ¿Es posible hacer que una computadora sea inquebrantable?
- ¿Crees en los hackers rusos?
- ¿Dónde puedo obtener más información sobre los seguros que puede comprar que protegen contra los ciberataques?
- ¿Hay verdad en las afirmaciones de que Estados Unidos está peligrosamente detrás de otros países en la guerra cibernética?
Con el desánimo de los gobiernos, muchos informáticos evitaron la creación de software para mantener la comunicación confidencial entre las partes.
Muchas películas de espías mostraron tecnologías avanzadas para mantener la comunicación entre los espías y sus organizaciones. La más famosa es la máquina Enigma utilizada por los alemanes durante la Segunda Guerra Mundial. El científico británico Alan Turing fue el que desarrolló una versión temprana de las computadoras actuales para resolver el misterio de la máquina Enigma. Como todo visionario, tuvo serios problemas con el establecimiento. Después de que el gobierno descubriera que era homosexual, le dieron 2 opciones. La primera opción era ir a la cárcel hasta que se volviera heterosexual o castración química. El pobre Turing eligió la segunda opción y después de un tiempo se suicidó. Todo criptólogo hoy recuerda lo que le sucedió al primer representante de esta ciencia.
Sin entrar en los términos tecnológicos (todos están disponibles en Wikipedia), la mejor manera de mantener la conversación confidencial es usar un libro de códigos entre 2 (o más, pero más sobre eso más adelante) partes. Un libro de códigos es una definición simple y una lista de códigos que se comparte entre las partes y cada código se usa solo una vez. A menos que el libro de códigos se vea comprometido, este método de comunicación de privacidad es a prueba de balas. No hay computadora en el mundo, y no habrá ninguna en el futuro que pueda descubrir cuál es la comunicación. El único método sería la vieja escuela espiando a las partes que se comunican entre sí.
Si necesito dar un ejemplo para el método anterior, sería como elegir un periódico que sea accesible para ambas partes. Esa será nuestra base de mensajes.
Definamos un libro de códigos ahora:
El primer código en el libro es
3–4,6–7,1–2 y se repite
el segundo código es
5–7,3–1,8–5,4–2 y se repite
Digamos que hoy te mando un mensaje como
20,42,15,5,8,67,23,56,12,43,13,11,10
Como es nuestro primer intercambio de mensajes, utilizará el primer código del libro. Además, nuestra base de mensajes solo la conocemos nosotros, lo que dificulta aún más que otros entiendan el mensaje secreto que acabo de enviarle.
Para entender el mensaje, esto es lo que debe hacer: elige el New York Times de hoy, que es el periódico que acordamos usar.
Tome el primer número en el mensaje secreto que es 20, luego busque en el libro de códigos el primer código que es 3–4. Vaya a la tercera página, encuentre el cuarto párrafo, obtenga el vigésimo carácter y repita este proceso para cada número en el mensaje secreto que envié.
Digamos que MI6 está tratando de interceptar el mensaje, lo cual hacen porque envié el mensaje por correo electrónico o SMS o evento con ambos.
Todo lo que tienen es 20,42,15,5,8,67,23,56,12,43,13,11,10 y no tienen idea de lo que significa. No saben qué fuente de texto usamos, cuál era el New York Times y no conocen el código que usamos para ese mensaje que era 3–4,6–7,1–2. Incluso podemos hacer que esto sea más difícil, para cada día de la semana usamos un periódico diferente en el que estamos de acuerdo.
Y digamos que MI6 descubre qué periódico usamos para cada día, digamos que incluso descubren nuestro mecanismo de código, que es la página, el párrafo y el carácter para decodificar el mensaje secreto.
Mientras usemos cada línea de código solo una vez y nunca repitamos los códigos usados, prácticamente no hay forma de que MI6 descubra nuestra conversación. Excepto, por supuesto, enviar su doble agente a uno de nosotros y golpearnos en la cabeza con una barra de hierro que nos haría cantar como un pájaro y revelar todos los secretos.
Como puede ver en el ejemplo, una barra de hierro, colocada estratégicamente en su cabeza con un golpe moderado, rompería todo el código que establecimos.
Dejando a un lado esa realidad, si le susurro al oído los nombres de los periódicos y le entrego un trozo de papel con una lista de códigos que también tengo la misma copia, hasta que se acaben los códigos, no hay forma de que nuestra comunicación pueda ser interpretada cuando es interceptada .
La dificultad en este tipo de confidencialidad de mensajes es compartir y mantener un papel con una lista de códigos y hacer el intercambio de códigos nuevamente cuando la lista de códigos se agota y nunca usar un código nuevamente.
Cuando esto no es posible por razones prácticas como la distancia entre las partes o el número de mensajes intercambiados es demasiado alto y frecuente, la metodología utilizada es el cifrado basado en computadora (que garantiza la confidencialidad de la comunicación entre las partes) de los mensajes.
Esto tampoco es muy diferente de lo que hicimos en el primer ejemplo. Para crear nuestros códigos interminables es que para cada mensaje que intercambiamos usamos 3 constantes. Tiene una clave maestra, una clave pública y estamos de acuerdo en una fórmula matemática que es muy difícil de resolver para la computadora. La dificultad aquí asegura que el tiempo para probar cada combinación de variables (sin la clave maestra) para la fórmula es tan largo que prácticamente hace imposible que otros adivinen nuestra lista de códigos.
En este método también tengo una clave maestra y una clave pública. Para resolver el problema de mantener una lista de códigos establecidos y comunicar que entre las partes intercambiamos libremente nuestras claves públicas con todos y cuando le envío un mensaje, utilizo su clave pública (cualquiera de mis claves excepto generar una firma especial con mi clave privada para que pueda validar con mi clave pública que garantiza que el mensaje se haya originado realmente en mí) para crear un mensaje confidencial. Cuando lo recibe por correo electrónico, SMS o correo postal normal, utiliza su clave privada que solo puede averiguar el contenido del mensaje confidencial. Y como estamos hablando de sistemas informáticos, protegemos nuestras claves privadas con contraseñas.
No me gusta usar nombres dados por ingenieros informáticos o cualquier otra persona técnica, pero en aras de la aclaración, esta clave maestra / pública y un algoritmo establecido para usar se llama criptología de clave pública privada.
Otro término que no me gusta es “cifrado de extremo a extremo”. Esto es para confirmar que el método de criptología utilizado no puede ser interceptado por otras partes y solo el destinatario puede entender el contenido del mensaje.
Una empresa que ha desarrollado una implementación de cifrado de extremo a extremo es Open Whisper Systems. Llamaron a su producto ‘Señal’, que es una plataforma y también el nombre de su aplicación en iOS y Android. Su producto utiliza esta criptología de clave pública privada para garantizar que las comunicaciones de texto y voz entre las partes se mantengan confidenciales. Supuestamente el infame denunciante de irregularidades de la NSA Edward Snowden usa su aplicación y la considera bastante buena.
Ahora volvamos al problema de seguridad de WhatsApp. WhatsApp está utilizando el protocolo establecido por Open Whisper Systems para sus comunicaciones públicas protegidas por clave privada (audio, video y mensajes de texto).
El problema es que la facilidad de uso de la aplicación Signal no es buena. Hay ciertos momentos en que estas claves públicas y privadas tienen que cambiarse. 2 ejemplo de esos momentos es si cambia su teléfono o desinstala / reinstala su aplicación (cualquiera que sea la aplicación que esté utilizando, Signal o WhatsApp)
Para probar la facilidad de uso de Signal App para manejar el cambio de los pares de claves (combinaciones de claves públicas privadas) utilicé mi conejillo de indias humano Riz. Fue muy difícil para mí explicar lo que tiene que hacer y también encontrar la ubicación de los elementos del menú fue terriblemente difícil. Después de maldecirme a mí y a los diseñadores de aplicaciones muchas veces, Riz completó la aprobación del nuevo intercambio de claves entre nosotros para que pudiéramos comunicarnos nuevamente.
Echemos un vistazo a cómo WhatsApp ha implementado esta renovación de pares clave entre usuarios. Dado que la autenticidad de un usuario solo puede identificarse confiando en su firma privada con clave firmada y, en el caso probable de que el usuario tenga un teléfono nuevo o haya reinstalado la aplicación WhatsApp, los servidores de WhatsApp conservan una copia del mensaje secreto hasta que el destinatario lo descargue. Ahora digamos que me enviaste un mensaje mientras estaba desconectado y mientras tanto cambié de teléfono. Cuando recibo ese mensaje de usted, lo que hace la aplicación Signal es que me advierte y no le permitirá comunicarse con usted hasta que apruebe su nueva clave pública (en el estilo de una clave pública combinada de ambas partes porque solo hay un código que necesita ser verificado en ambos extremos). En lugar de pedirle al usuario que verifique qué hace WhatsApp, vuelve a cifrar su mensaje con mi nueva clave (en su explicación, solicite a su WhatsApp que mantenga ese mensaje en la memoria en forma cifrada y primero descifre y luego vuelva a cifrar el mismo mensaje con mi nueva clave pública) sin pedirnos a ninguno de nosotros que vuelva a confirmar la identidad de ambas partes.
Esto técnicamente abre una puerta trasera para que las agencias de inteligencia descifren los mensajes entre las partes.
¿Cómo sucede eso? WhatsApp confirma la instalación de la aplicación mediante confirmación por SMS. Digamos que quiero interceptar sus mensajes de WhatsApp. Envío un equipo en una camioneta de reparto que parece una camioneta de reparación pero que tiene un bloqueador de señal de comunicación móvil a la dirección de su casa. El bloqueo es lo suficientemente inteligente como para hacer que su teléfono piense que todavía está en la cobertura de la red, por lo que no sospecha nada a menos que intente hacer una llamada que parecerá que la red móvil está llena y no está disponible. Mientras desconecto su teléfono de la red, puedo hacer 2 cosas, puedo interceptar cualquier mensaje SMS que se presente en mi camioneta de servicio o dar una orden judicial a la compañía de telefonía móvil para que me dé una copia de sus mensajes SMS en tiempo real.
Luego instalo WhatsApp en un nuevo teléfono, ingreso su número de teléfono como mi número y recibo una copia de la confirmación por SMS con el número de verificación y lo ingreso en WhatsApp. A partir de ese momento, recibiré cualquier espera (ya que lo desconecté de la red móvil) y cualquier mensaje de noticias que los usuarios de WhatsApp le envíen.
Intencional o no, esta es una puerta secreta que las agencias gubernamentales pueden usar fácilmente.
Si utilicé la técnica anterior para interceptar mensajes entre usuarios de Signal, lo que sucedería sería que primero no podría recibir ningún mensaje esperando en la nube porque Signal no mantiene los mensajes en la nube, cuando está desconectado, el mensaje espera en la aplicación de señal del remitente. Cuando el remitente intenta enviarte un mensaje nuevo o reenviado, mi nueva instalación de la aplicación Signal en el teléfono de mi agencia gubernamental informará a tu amigo, el remitente, que he cambiado nuestro código secreto compartido y le pregunta si / él quiere aprobar esta nueva instalación en el otro extremo confirmando el nuevo código secreto compartido con usted. Cuando él / ella te llama a tu teléfono fijo, dices que no has instalado un nuevo WhatsApp en tu teléfono o que has cambiado de teléfono, ambos entienden que hay otra parte que está tratando de interceptar tus mensajes.
Ahora, WhatsApp dice que hay una opción en su aplicación, en Configuración / Cuenta / Seguridad / Mostrar notificaciones de seguridad que está desactivada de forma predeterminada. Si activa esta opción, su reclamo es que recibirá notificaciones cuando el código de seguridad de un contacto haya cambiado. No dicen si los mensajes aún se entregarán a pesar de una notificación de seguridad o no. Añaden que ‘Los mensajes que envía sus llamadas están encriptados independientemente de esta configuración, CUANDO ES POSIBLE’. Utilicé las dos últimas palabras en mayúscula, ¿qué significa “CUANDO ES POSIBLE”? Tampoco dicen nada sobre los mensajes que va a recibir. Aunque active esta configuración de advertencia, si la configuración de su amigo no está activada, no se le notificará si los mensajes que le envían son interceptados.
WhatsApp llama a esta puerta secreta no intencional una ‘opción de diseño amigable para el usuario’. Es una opción de diseño tan fácil de usar que también es amigable para los agentes gubernamentales. No puedo imaginar cuántos diplomáticos ya entregaron mensajes confidenciales a agencias enemigas usando WhatsApp. Los diplomáticos en Bruselas se despiertan y huelen el café …