¿Qué es Perfect Forward Secrecy?
Perfect Forward Secrecy (PFS) se da en un sistema criptográfico cuando no es posible que un atacante que obtenga la clave privada de un usuario en el presente utilice esta clave para descifrar los mensajes que el usuario ha enviado o recibido en el pasado.
Esta propiedad se consigue no utilizando siempre la misma clave, sino claves separadas para sesiones individuales o para periodos cortos de tiempo, que el sistema negocia automáticamente en segundo plano.
Threema soporta Perfect Forward Secrecy tanto en la capa de transporte como en la de extremo a extremo. Información técnica en el Cryptography Whitepaper.
Artículos relacionados
Threema utiliza cifrado asimétrico de eficacia probada para proteger los mensajes y las llamadas entre emisor y receptor, así como la comunicación entre la aplicación y los servidores. Threema utiliza la biblioteca de código abierto NaCl para el cifrado. Dado que las aplicaciones de Threema son de código abierto, cualquier persona con conocimientos suficientes puede confirmar por sí misma la seguridad de Threema.
Hay dos capas de cifrado: La capa de extremo a extremo entre los participantes de la conversación, y una capa adicional para proteger contra las escuchas de la conexión entre la aplicación y los servidores. Esto último es necesario para garantizar que un rival que capture los paquetes de la red (por ejemplo, en una red inalámbrica pública) no pueda saber quién se conecta y quién se comunica con quién.
Todo el cifrado y descifrado se realiza directamente en el dispositivo, y el usuario tiene el control del intercambio de claves. Esto garantiza que ningún tercero (ni siquiera los operadores del servidor) pueda descifrar el contenido de
los mensajes y las llamadas.
Nivel de protección del cifrado: El cifrado asimétrico basado en ECC que utiliza Threema tiene una fuerza de 255 bits. Según una estimación del NIST (página 54), esto se corresponde al menos con la fuerza proporcionada por RSA de 2048 bits. ECDH en Curve25519 se utiliza junto con una función hash y un nonce aleatorio para derivar una clave simétrica única de 256 bits para cada mensaje. El cifrado de flujo XSalsa20 se utiliza entonces para cifrar el mensaje. También se añade a cada mensaje un código de autentificación de mensajes (MAC) de 128 bits para detectar manipulaciones/falsificaciones.
Perfect Forward Secrecy: Threema proporciona Perfect Forward Secrecy. Para obtener más información, consulte esta entrada de las FAQ.Para obtener información técnica detallada sobre la criptografía de Threema, lea el Cryptography Whitepaper.
Para saber cómo se compara Threema con otros servicios de mensajería como WhatsApp, Signal o Telegram en términos de seguridad, privacidad y características, consulte nuestra comparación exhaustiva de servicios de mensajería y la comparación en profundidad de Threema y WhatsApp.
La protección integral de la privacidad requiere un sólido cifrado de mensajes, pero hay algo más.
Anonimato total
Threema puede utilizarse sin proporcionar ningún tipo de información personal. En lugar de un número de teléfono, se utiliza el ID de Threema (una cadena de ocho dígitos generada de forma aleatoria) como identificador único. Vincular un número de teléfono y/o una dirección de correo electrónico al ID de Threema es opcional.
Restricción de metadatos
Todos los datos involucrados en la comunicación, además del contenido propiamente dicho, son los metadatos. Una buena protección de la privacidad tiene que incluir tanto protección del contenido como protección de los metadatos. Proteger solo el contenido no es suficiente porque los metadatos permiten identificar de forma única a los individuos, analizar su comportamiento, determinar sus círculos de amigos, detectar los lugares que frecuentan y controlar su comportamiento de comunicación. En combinación con datos de otras plataformas, el panorama que se puede dibujar de una persona es mucho más detallado que el que se podría dibujar solo a partir del contenido de los mensajes. Es probable que muchos servicios de mensajería se dediquen a recopilar y analizar sistemáticamente los metadatos de sus usuarios. Threema, por su parte, genera la menor cantidad de datos técnicamente posible y solo los almacena durante el tiempo que sea estrictamente necesario.
Sincronización opcional de contactos
Sincronizar su agenda para recuperar los IDs de Threema de sus contactos (siempre que los hayan vinculado, consulte más arriba) es opcional. Si no quiere conceder acceso a su agenda, puede escanear los IDs de Threema de sus contactos o añadirlos manualmente.
En caso de que active la sincronización de contactos o vincule su ID con un número de teléfono o una dirección de correo electrónico, puede estar tranquilo porque Threema utilizará esa información solo temporalmente para el propósito especificado. La información personal está cifrada en todo momento, tanto cuando está en tránsito como en el disco.
Para saber cómo se compara Threema con otros servicios de mensajería en lo que respecta a la protección de la privacidad, consulte la comparación de servicios de mensajería.
El uso de Threema debería generar la menor cantidad de datos posible en nuestros servidores (esto es parte del concepto). Por ello, datos como, por ejemplo, los contactos o los chats de grupo se almacenan de forma descentralizada en los dispositivos de los usuarios, en lugar de en un servidor de Threema. Nuestros servidores asumen el papel de un conmutador; los mensajes y los datos se reenvían, pero no se almacenan permanentemente. Donde no hay datos, no hay nada a lo que se pueda acceder o que se pueda utilizar indebidamente. Sin embargo, si no hay algún tipo de almacenamiento de datos (temporal), no puede haber ninguna comunicación asíncrona. A continuación, explicaremos qué tipo de datos almacenamos, cómo lo hacemos y durante cuánto tiempo.
- Mensajes y chats de grupo: en cuanto un mensaje se entrega satisfactoriamente a su destinatario, se elimina inmediatamente del servidor. Todos los mensajes y archivos multimedia se transmiten cifrados de extremo a extremo en Threema. Esto significa que, aunque alguien interceptara un mensaje suyo, no podría hacer absolutamente nada con él. Solo el destinatario previsto puede descifrar y leer un mensaje.
- No se almacenan listas de contactos al sincronizarlos: las direcciones de correo electrónico y los números de teléfono de su agenda se anonimizan (hash) antes de llegar al servidor. Una vez terminada la comparación, se borran inmediatamente del servidor.
- Los pares de claves se generan de forma descentralizada en su dispositivo. Nosotros nunca llegamos a conocer su clave privada, y por lo tanto no podemos descifrar ningún contenido de los mensajes.
- Threema no registra quién se comunica con quién (qué IDs de Threema se comunican).
Más información en el Cryptography Whitepaper.
Sí, para garantizar una total transparencia, las aplicaciones de Threema son de código abierto.
Gracias a las compilaciones reproducibles, también hay una forma de verificar que el código publicado (de la aplicación para Android, por el momento) corresponde realmente a las aplicaciones disponibles para su descarga en las tiendas de aplicaciones.
Para saber cómo descargar, desarrollar y reproducir el código de la aplicación de Threema, consulte la subpágina de código abierto (en inglés).
Sí.
-
Android: Threema incluye su propio cifrado específico para la aplicación basado en AES-256 para proteger los mensajes almacenados, archivos multimedia y la clave privada de su ID. La clave utilizada para este cifrado se
genera aleatoriamente la primera vez que se inicia Threema, y puede protegerse opcionalmente estableciendo una frase de contraseña de clave maestra en los ajustes, lo cual recomendamos encarecidamente. Sin una frase de contraseña,
el cifrado solo añadirá oscuridad debido a la forma en que gestiona Android el cifrado de hardware. Si establece una frase de contraseña de clave maestra, tendrá que introducirla después de cada reinicio del dispositivo (y cada vez
que el sistema fuerce el reinicio de la aplicación por falta de memoria).
Nota: el bloqueo por PIN, que se puede activar independientemente de la frase de contraseña de clave maestra, no causa ningún cifrado adicional (es simplemente un bloqueo de la IU).
-
iOS: Threema utiliza la función de protección de datos de iOS para cifrar mensajes, imágenes, etc. en la memoria flash del dispositivo. La clave utilizada para este cifrado está vinculada al código de acceso del dispositivo.
Es necesario establecer un código de acceso en los ajustes del sistema para utilizar esta función. En los modelos más recientes, iOS también utiliza funciones de hardware para el cifrado (por lo tanto, incluso un simple código de
acceso de seis dígitos ofrece cierta protección). Para obtener la máxima protección contra ataques de fuerza bruta, opte por un código de acceso alfanumérico más largo.
Nota: el bloqueo por código de acceso que va integrado en la propia aplicación no ofrece ningún tipo de cifrado adicional. Esta función está pensada para evitar que personas entrometidas lean sus mensajes si les deja intencionalmente su teléfono un momento para otro propósito. Utilizar cifrado con un código de seis dígitos dentro de la aplicación no sería sensato, ya que los ataques de fuerza bruta serían triviales (ya que a diferencia de iOS, una aplicación no puede acceder a las funciones especiales del hardware para proteger la clave).
Para obtener información técnica detallada sobre la criptografía en Threema, lea el Cryptography Whitepaper.
Threema le permite verificar que el ID de la persona con la que se está comunicando es realmente el suyo escaneando el códico QR.
Si está seguro del ID del otro participante del chat, entonces no hay forma de que un atacante pueda falsificar o interceptar/descifrar un mensaje enviado o recibido por el otro participante del chat.
La conexión entre la aplicación y los servidores es segura contra los ataques MITM porque el servidor se autentifica a sí mismo con la aplicación basándose en una clave pública que se codifica en la aplicación y cuya clave secreta
correspondiente solo es conocida por los servidores legítimos.
Tenga en cuenta que Threema solo puede ser tan seguro como el dispositivo en el que se ejecuta. El malware que se ejecuta en segundo plano en su dispositivo puede interceptar y falsificar datos sin que usted se de cuenta. Recomendamos
encarecidamente instalar siempre las actualizaciones más recientes del sistema operativo y utilizar únicamente software de fuentes de confianza.
Threema GmbH gestiona sus propios servidores en dos centros de datos de alta seguridad de un socio con certificación «ISO 27001» en la zona de Zúrich (Suiza).
Estos centros de datos de última generación incluyen control de acceso biométrico, torniquetes de altura completa, videovigilancia, sistemas de alimentación de emergencia, protección contra incendios, aire acondicionado a prueba de fallos y una conexión a Internet totalmente redundante.
Llamadas de grupo
A excepción de (algunas) llamadas de grupo, toda la comunicación se gestiona a través de los servidores de Threema en Suiza. (En el caso de las llamadas individuales, se establece una conexión directa entre los participantes en la
llamada siempre que sea posible, de modo que no interviene ningún servidor una vez establecida la llamada). En el caso de las llamadas de grupo, los routers de medios de Threema en el extranjero pueden utilizarse por razones técnicas,
con el fin de garantizar una baja latencia y una comunicación fluida: si las llamadas de grupo tuvieran que enrutarse a través de los servidores en Suiza desde cualquier parte del mundo, los participantes de las llamadas de grupo
podrían tener dificultades para comunicar entre sí debido a la alta latencia.
Los routers de medios de Threema en el extranjero no conocen las identidades / los IDs de Threema de los participantes de una llamada de grupo, y todos los flujos de datos de audio/vídeo están cifrados de extremo a extremo. Sin embargo, es necesario que los routers de medios conozcan las direcciones IP de los participantes de una llamada de grupo mientras la llamada está en curso. Esta información no se registra y se borrará de la memoria de trabajo inmediatamente después de que la llamada de grupo haya terminado.
Eso es decisión suya: Threema se puede utilizar sin ningún tipo de acceso a la agenda.
Por defecto, la sincronización está desactivada y no se leerá ningún dato de la agenda. En este caso, puede añadir sus contactos de Threema manualmente (introduciendo sus IDs o escaneando códigos QR).
Si decide activar la sincronización, las direcciones de correo electrónico y los números de teléfono de su agenda solo se transmitirán al servidor en forma de cifrado unidireccional («hashed») y se protegerán adicionalmente mediante
cifrado TLS. Los servidores solo conservan estos hashes en la memoria volátil durante un breve periodo de tiempo para determinar la lista de IDs coincidentes, y después borran los hashes inmediatamente. En ningún momento se escriben en
disco los hashes ni los resultados de la sincronización.
Debido al número relativamente bajo de combinaciones posibles de números de teléfono, es teóricamente posible descifrar hashes de números de teléfono probando todas las posibilidades. Esto se debe a la naturaleza de los hashes y los números de teléfono, y no puede resolverse de otra manera (el uso de sales como para el hashing de contraseñas no funciona para este tipo de coincidencia de datos). Por lo tanto, tratamos los hashes de los números de teléfono con el mismo cuidado que si fueran números de teléfono sin procesar.
Las aplicaciones de Threema son de código abierto, lo que permite que cualquiera pueda auditar el código de Threema por su cuenta. Además, expertos externos realizan auditorías de seguridad exhaustivas de forma periódica. A continuación, se enumeran las auditorías más recientes.
- 2023: Análisis de seguridad del protocolo de comunicación «Ibex» por investigadores de seguridad de la Cátedra de Criptografía Aplicada de la Universidad Friedrich-Alexander de Erlangen-Nuremberg, consulte la publicación de blog (inglés) y el análisis (inglés)
- 2020: Auditoría de Cure53, consulte la publicación de blog (inglés) e informe de auditoría (inglés)
- 2019: Auditoría del Laboratorio de Seguridad Informática de la Universidad de Münster de Ciencias Aplicadas, consulte la publicación de blog (inglés) e informe de auditoría (inglés)
Para acceder a la documentación completa de los algoritmos y protocolos utilizados en Threema, consulte el Cryptography Whitepaper.
Hay un programa de recompensas por errores para los informes relativos a la seguridad de Threema. Si detecta un problema de seguridad, rellene un informe en GObugfree (con todos los detalles, incluyendo los niveles de recompensa) y siga el proceso de divulgación coordinada de vulnerabilidades.
Por favor, informe de los errores relacionados con las aplicaciones de Threema utilizando el formulario de asistencia.
Threema cumple con los requisitos del Reglamento General Europeo de Protección de Datos (RGPD). Como empresa suiza, Threema también está sujeta a la estricta Ley Federal de Protección de Datos (DSG) y a la Ordenanza de la Ley Federal de Protección de Datos (VDSG).
Threema no utiliza los números de teléfono para dirigirse a los usuarios y puede utilizarse de forma anónima sin necesidad de cargar los datos de la agenda telefónica. Por lo tanto, el servicio también es adecuado para menores de 16 años.
A diferencia de los servicios de mensajería convencionales, puede estar seguro de cumplir con las leyes de privacidad al utilizar Threema.
Para recuperar los datos de inventario de su ID que se almacenan en el servidor de Threema, solo tiene que enviar «info» al ID de Threema *MY3DATA
, y recibirá inmediatamente una respuesta en formato legible por máquina (JSON).
Si está leyendo esta página desde el dispositivo donde está instalado Threema, solo tiene que abrir el siguiente enlace y, a continuación, tocar «Enviar»: https://threema.id/%2AMY3DATA?text=info
Explicación de las claves JSON:
- identity: ID de Threema
- publicKey: codificada en Base64
- IssueDate: fecha de creación del ID
- lastLogin: fecha del último inicio de sesión
- mobileNoHash: hash del número de teléfono vinculado
- emailHash: hash de la dirección de correo electrónico vinculada
- featureMask: máscara de bits de las características soportadas por la versión de Threema en uso
- 0x01: mensajes de audio
- 0x02: chat de grupo
- 0x04: encuestas
- 0x08: transferencia de archivos
- 0x10: llamadas
- 0x20: videollamadas
- pushtoken/voippushtoken: token push de los servicios push en uso (GCM/FCM, APNS, WNS). Esta clave es obsoleta si la clave «pushtokens» está presente
- pushtokens: lista de dispositivos que tienen un token push asociado
- device_id: bytes codificados en Base64 del entero de 64 bits sin signo que identifica un dispositivo
- push_token/voip_token:
- data: token codificado en Base64
- timestamp: marca de tiempo unix en la que se estableció el token
- type: describe el tipo de token (HMS, Apple, FCM)
- pushsound/pushgroupsound: nombre del archivo de sonido elegido para los mensajes push (no se utiliza en todas las plataformas)
- revocationKey: información sobre la contraseña de revocación, si está establecida
Los datos editables del inventario pueden modificarse o eliminarse en cualquier momento en la aplicación de Threema (en la pestaña «Mi perfil» (Android) ou «Perfil» (iOS)) con efecto inmediato (consulte este artículo de preguntas frecuentes para obtener más información). Para eliminar definitivamente los datos del inventario de su ID de Threema, revoque su ID.
Android
Para notificar a los usuarios de Android sobre mensajes entrantes en segundo plano, puede usar el servicio push propio e independiente de Threema «Threema Push». Esto no causa metadatos para terceros.
En otro caso, Threema utiliza el servicio push Firebase Cloud Messaging (FCM) de Google preinstalado en el dispositivo (o el push kit (HMS) de Huawei). La aplicación recibe los mensajes directamente desde los servidores de Threema, los descifra y muestra una notificación local. Ni el contenido, ni los detalles de los mensajes se transmiten a través de FCM (la carga útil de FCM está vacía), y se han eliminado todos los componentes de seguimiento y análisis de Firebase.
iOS
Threema utiliza el servicio de notificaciones push de Apple (APNS) para informar a los destinatarios con iOS sobre nuevos mensajes mientras la aplicación está cerrada o en segundo plano. El mensaje APNS contiene una carga útil que se ha cifrado con una clave simétrica, que se negocia entre la app y los servidores de Threema y que Apple no conoce.
Dentro de esta carga útil cifrada, se transmiten el ID de Threema y el apodo del remitente, el ID del mensaje y el hecho de si es un mensaje directo o de grupo.
La aplicación de Threema se inicia en segundo plano para cada notificación push entrante, descifra la carga útil push, descarga el mensaje correspondiente directamente de los servidores de Threema, lo descifra y muestra una vista previa del mensaje local (si la opción está activada) y el nombre de contacto del remitente.