Caso 03 — Olvid Messenger

Cuando una filtración
no es un fallo.

Olvid es un mensajero centrado en la privacidad. Encontré dos formas en las que puede exponer una dirección IP. Durante una revisión coordinada por ANSSI / CERT-FR, el fabricante explicó por qué considera ambas decisiones de diseño deliberadas y no vulnerabilidades. Tras estudiar sus argumentos, compartí su conclusión. Este análisis recoge las dos perspectivas.

Por Abbas Hoseiny·Coordinado con ANSSI / CERT-FR·Fabricante: Olvid SAS

No toda exposición de datos es un defecto. A veces un mensajero revela cierta información de forma deliberada para preservar otra propiedad que considera más importante. Olvid, diseñado en torno a la privacidad, lo hace en dos puntos que examiné de cerca. Esto es lo que ocurre y por qué el fabricante lo considera aceptable.

Una llamada pasa por un servidor de retransmisión que puede ver la dirección del destinatarioIP del destinatario
Fig. 1 — el servidor que retransmite una llamada

Las llamadas de Olvid pasan por un servidor de retransmisión TURN. En Android, quien llama puede elegir ese servidor. Si indica uno que controla, el dispositivo de la otra persona se conecta a él cuando acepta la llamada, y el servidor puede ver su IP.

La postura de Olvid. El fabricante dejó de imponer su propio servidor de retransmisión para preparar una función futura. También argumenta que iniciar una conversación en Olvid exige conocer datos del destinatario, como su nombre o teléfono, que considera más identificativos que el único dato expuesto aquí: la IP pública del teléfono. Por eso no considera significativa esta exposición ni la clasifica como vulnerabilidad.

Mi valoración. Una IP pública es un dato distinto de los datos de contacto: puede indicar una ubicación aproximada y cambiar con el tiempo. Conocer a alguien no implica conocer su IP. Aun así, la valoración depende del modelo de amenazas, y acepto la conclusión de Olvid de que el riesgo residual es admisible dentro de su modelo.

Un teléfono utiliza servidores fijos; el otro acepta los que indica quien llamaiOS — servidores propios fijosAndroid — los de quien llama
Fig. 2 — los dos clientes se comportan de forma distinta

El cliente de iOS utiliza direcciones fijas de sus propios servidores e ignora las proporcionadas por quien llama. El de Android las acepta. Olvid explica que retiró deliberadamente esa restricción en Android para una función prevista; no se trata de un descuido.

El segundo comportamiento

Vistas previas: el remitente,
no el destinatario.

Olvid genera la vista previa en el dispositivo del remitente e incluye el resultado en el mensaje cifrado. El destinatario la muestra sin descargar nada. Por tanto, a diferencia de muchos mensajeros, no hay una filtración sin clics en el lado receptor. Lo que sí ocurre es que el dispositivo del remitente accede directamente a la URL, sin proxy, y revela su propia IP a quien controla ese servidor.

La postura de Olvid. Un proxy en el servidor, como el de Signal, permitiría a Olvid ver todos los enlaces que comparten sus usuarios, algo que considera contrario a su objetivo de privacidad desde el diseño. Añade que normalmente el remitente ya ha abierto el enlace. Mantiene el diseño actual mientras no exista una solución que proteja la IP del remitente sin que una entidad central vea todos los enlaces.

Acepto ese razonamiento. Hay dos aspectos de la privacidad en tensión, y Olvid ha optado por el que encaja con su modelo.

Qué me llevo de este caso

Un desacuerdo bien resuelto.

Ambos comportamientos son reales y deliberados. Se comunicaron a través de ANSSI / CERT-FR y se revisaron con el fabricante. Tras estudiar sus argumentos, los acepté como decisiones de diseño, no como defectos. Durante el proceso retiré varias observaciones iniciales. Así debe funcionar la divulgación coordinada: no todos los hallazgos terminan en una corrección; una explicación clara del modelo de seguridad también puede ser un buen resultado.

Informe técnico

Olvid Messenger — análisis y postura del fabricante

Resumen

Se analizó Olvid, de Olvid SAS (Francia), en Android (v4.2.4), iOS/macOS (v4.0.3) y Desktop (v2.8.0), en parte a partir de su código fuente AGPL-3.0. A continuación se describen dos comportamientos que exponen una IP. Tras la revisión coordinada, el fabricante los clasificó como decisiones de diseño deliberadas, no como vulnerabilidades, y acepté esa conclusión. Olvid contó con una certificación ANSSI CSPN de 2020/2021, ya caducada y limitada principalmente al núcleo de cifrado; estos comportamientos no estaban necesariamente dentro de su alcance. Este informe solo aborda el uso general y comercial de Olvid.

Comportamiento 1 · elección del servidor de retransmisión

IP del destinatario visible para el servidor elegido por quien llama (Android)

Qué ocurre

Las llamadas de Olvid se retransmiten mediante un servidor TURN. En Android, el cliente acepta las URL de los servidores que proporciona quien llama: pickTurnServers() devuelve ese conjunto sin comprobarlo contra una lista de permitidos. Si quien llama indica un servidor que controla, puede observar la IP de origen del destinatario cuando este acepta. El cliente de iOS/macOS utiliza, en cambio, direcciones fijas propias e ignora las recibidas.

Postura del fabricante

Olvid dejó de imponer su propio servidor para preparar una función futura. Considera que la exposición es poco significativa porque iniciar una conversación ya exige conocer datos más identificativos, como el nombre o el teléfono. No la clasifica como vulnerabilidad.

Nota del investigador

Una IP pública aporta información distinta de los datos de contacto: ubicación aproximada y cambios a lo largo del tiempo. La valoración depende del modelo de amenazas; no cuestiono la conclusión del fabricante.

Comportamiento 2 · descarga de la vista previa

Exposición de la IP del remitente al generar una vista previa

Qué ocurre

La vista previa se genera en el dispositivo del remitente y se incorpora al mensaje cifrado. El destinatario la muestra sin realizar ninguna petición de red: no hay filtración en el lado receptor. El dispositivo del remitente sí accede directamente a la URL, sin proxy, y expone su IP al servidor que la aloja. Se observó en el lado emisor en las distintas plataformas; el lado receptor no presenta esta filtración.

MensajeroDescarga de la vista previaIP del remitente protegidaIP del destinatario protegida
Signalproxy en el servidorsísí
WhatsAppproxy en el servidorsísí
Olvidcliente (remitente)nosí

Postura del fabricante

Un proxy permitiría a Olvid ver todos los enlaces compartidos, algo que el fabricante considera incompatible con la privacidad desde el diseño. Señala también que el remitente suele haber visitado ya el enlace. Mantiene el diseño actual mientras no haya una alternativa que proteja la IP del remitente sin que una entidad central observe todos los enlaces. No se clasifica como vulnerabilidad.

Sobre la puntuación

Por qué aquí no hay etiquetas de gravedad Olvid no clasifica estos comportamientos como vulnerabilidades y acepté esa valoración. Solo como referencia: si se puntuaran con CVSS, ambos quedarían en el intervalo de gravedad baja a media, ya que el dato expuesto es una única dirección IP (C:Low), el mismo límite que corresponde a cualquier filtración exclusivamente de IP. No asigno una gravedad a un comportamiento que el fabricante y yo consideramos una decisión de diseño, no un defecto.

Coordinación y divulgación


Divulgación coordinada a través de los CERT nacionales. Posturas del fabricante reflejadas conforme a lo acordado durante la coordinación. Con fines de investigación y defensa.