Cómo funciona Cyphr

Nuestros objetivos de diseño

Cyphr es una aplicación de mensajería segura. Los objetivos del principio de diseño de la aplicación incluyen:

  • La comunicación debe ser tan fácil como sea posible

    Idealmente, la aplicación es tan fácil de usar como cualquier app de mensajería normal sin cifrado. Los puntos donde se necesita el cifrado no deberían exigir al usuario conocimientos o actividad adicionales excepto cuando sea absolutamente necesario.

  • El usuario puede elegir su nivel de privacidad y seguridad estando informado

    Si se introduce una característica que necesite compartir información, el usuario tiene la opción de deshabilitar dicha característica. Esto permite al usuario controlar su experiencia y personalizar la aplicación logrando un equilibrio entre seguridad y funcionalidad.

  • Golden Frog no sabe nada sobre el contenido del mensaje

    Los datos del mensaje siempre se cifran de modo que sólo el remitente y el destinatario puedan ver los datos. Esto incluye cualquier servidor de Golden Frog o dispositivo de red entre el remitente y el destinatario.

  • Golden Frog almacena solamente la cantidad mínima de metadatos necesaria para poder transmitir el contenido del mensaje

    Para enviar y recibir mensajes a través de los sistemas de Golden Frog, se deben conocer ciertos metadatos. Además, por cómo funciona Internet, se deben conocer otros metadatos. Golden Frog sólo almacena los metadatos necesarios para entregar el mensaje a su destino final, y sólo almacena los metadatos el tiempo suficiente para garantizar dicha entrega.

Las tecnologías de cifrado explicadas

Cifrado de clave simétrica

Una clave es como una contraseña que puede usarse para abrir una caja fuerte. Para cifrar un mensaje, el remitente pone el mensaje en una caja fuerte y luego cierra la caja fuerte con una clave. Cuando la caja fuerte está cerrada, nadie puede leer el mensaje a no ser que tenga la llave. El destinatario usa una clave para abrir la caja fuerte y sacar el mensaje. Esto es el descifrado.

Con el cifrado por clave simétrica, el remitente y el destinatario tienen la misma clave. Deben compartir la clave entre ellos, lo que significa que deben confiar el uno en el otro. El cifrado por clave simétrica suele ser el preferido porque es más rápido, pero como dos personas tienen la misma clave, nunca se puede estar seguro de que la otra parte no haya compartido la clave.

Cifrado de clave pública

Con el cifrado de clave pública, se usan dos claves - una clave privada y una clave pública. Un remitente utiliza la clave pública del destinatario para abrir la caja fuerte e introducir mensajes en la caja fuerte del destinatario. La clave pública solo puede usarse para introducir mensajes en la caja fuerte del destinatario, por lo que aunque la caja fuerte esté "abierta," el remitente no puede acceder a nada de lo que haya dentro. La caja fuerte solo se abre por un lado. El remitente utiliza la clave pública del destinatario para cifrar el mensaje. Para leer el mensaje, el destinatario usa su clave privada para abrir la caja fuerte. La clave privada es lo que le permite sacar los mensajes. La llamamos clave privada porque solo el destinatario tiene acceso a ella, y como solo abre la caja fuerte del destinatario podemos estar seguros de que el mensaje solo puede ser leído por el destinatario. Por consiguiente, el destinatario utiliza la clave privada para descifrar el mensaje.

Las claves pública y privada se relacionan matemáticamente de forma compleja para que esto funcione. Lo importante es que con este método, mientras el remitente conozca la clave pública del destinatario, el remitente puede enviar mensajes que sabe que sólo el destinatario (o alguien que tenga la clave privada del destinatario) podrá leer.

Verificación de clave pública (Firmado)

Al usar las mismas claves como los usados para cifrar, el remitente puede sellar sus mensajes de tal manera de demostrar que los ha enviado. En este caso, el remitente sella el mensaje son su propia clave privada. Cuando el receptor recibe el menaje, puede encontrar la clave pública del remitente y la clave pública se alineará con el sello del remitente, demostrando que el receptor – y solamente el receptor – enviaron el mensaje. Llamamos a sello como una firma y llamamos al proceso de alinear el sello como una verificación.

Con este método, un remitente puede demostrar al destinatario que él envió el mensaje. Esto evita que alguien se haga pasar por otra persona y envíe mensajes falsos.

Proceso de transmisión del mensaje

Cyphr reúne los conceptos de cifrado mencionados anteriormente para crear una solución de cifrado de punta a punta. Cuando alguien envía un mensaje a otro, el mensaje se cifra en el dispositivo del remitente (teléfono, navegador web, ordenador, etc.) y no se descifra hasta que llega al dispositivo del destinatario. El proceso de enviar un mensaje a un alto nivel es:

  1. El remitente firma su mensaje con su clave privada para que el destinatario sepa que él lo envió
  2. El remitente crea una clave de un sólo uso
  3. El remitente cifra el mensaje y la firma con la clave de un sólo uso
  4. El remitente busca todas las claves públicas del destinatario
  5. El remitente cifra la clave de una sola vez con la clave pública de cada destinatario
  6. El remitente firma la clave cifrada de un sólo uso con la clave privada del remitente para que el destinatario sepa que él la creó
  7. El remitente envía tanto la clave cifrada como el mensaje cifrado al destinatario a través de los servidores Cyphr de Golden Frog

Todo el trabajo se realiza en el dispositivo del remitente, por lo que Golden Frog no tiene acceso al mensaje original. Como el mensaje está cifrado con una clave simétrica que Golden Frog no tiene, Golden Frog no puede descifrar el mensaje. Como la clave simétrica es cifrada por la clave pública de cada destinatario, sólo los destinatarios pueden acceder a la clave necesaria para descifrar el mensaje. En este punto, Golden Frog está almacenando datos cifrados que no se pueden descifrar hasta que un destinatario los lea.

El proceso de recibir un mensaje es:

  1. El destinatario descarga la clave cifrada y el mensaje cifrado de los servidores de Cyphr de Golden Frog
  2. El destinatario usa su clave privada para descifrar la clave simétrica cifrada
  3. El destinatario usa la clave simétrica para descifrar el mensaje cifrado
  4. El destinatario busca la clave pública del remitente
  5. El destinatario usa la clave pública para verificar que el mensaje y la clave simétrica cifrada fueron enviados por el remitente

Todo este trabajo se realiza en el dispositivo del destinatario, que es el único lugar en el que reside la clave privada. Siempre que el dispositivo esté bien protegido, sólo el destinatario podrá leer los mensajes. Incluso si alguien más descargara el mensaje, no dispondría de la clave privada del destinatario por lo que no podría leer la clave simétrica. Sin la clave simétrica, nadie más puede leer el mensaje cifrado.

Otras consideraciones

Además del uso del proceso de transmisión de mensajes indicado arriba, Cyphr también implementa lo siguiente:

  1. Cuando un destinatario lee un mensaje desde el servidor, su copia del mensaje se elimina del servidor
  2. Cuando es posible, el historial de mensajes en el dispositivo se cifra usando las opciones de cifrado disponibles localmente.
  3. Al almacenar los mensajes para su entrega, los servidores de Cyphr sólo almacenan la hora de recepción y metadatos del destinatario (los datos del remitente no se almacenan ya que no es necesario)

Más particularidades

  1. El algoritmo RSA probado de 30 años de antigüedad se usa tanto para el cifrado como para la verificación de la clave pública
  2. El cifrado AES de 256-bit se usa para el cifrado simétrico de mensajes
  3. TLS se usa para la transmisión segura de los datos del mensaje cifrado hacia y desde los servidores de Cyphr
  4. Los servidores de Cyphr están ubicados en Zúrich, Suiza, donde cumplen con las leyes de privacidad de Suiza