¿Qué tan seguro es el cifrado de extremo a extremo de Firefox Send?

¿Qué tan seguro es el cifrado de extremo a extremo de Firefox Send?

Firefox lanzó recientemente su servicio para compartir archivos,Enviar. Promete cifrado de extremo a extremo: el archivo a compartir se cifra en el navegador del remitente y se descifra en el navegador del destinatario mediante una clave incrustada en la URL compartida.

Una URL para compartir un archivo tiene el formato siguiente:

https://send.firefox.com/download/03837dac3928b1d1/#lIFX1W1S2oXSwJF0QgMe_A

Supongo que una parte de la URL representa la ubicación del archivo en los servidores de Mozilla y la otra es la clave de cifrado. Sin embargo, desde una URL válida, cualquier parte que cambie aparece el error "Ese enlace ha caducado". Por lo tanto, no pude determinar si mi suposición era correcta.

De todos modos, mi pregunta es qué tan seguro puedo estar con ese cifrado de extremo a extremo. Ese mecanismo es inteligente, pero me di cuenta de que podía recuperar el enlace de cualquiera de mis recursos compartidos desde mi cuenta de Firefox en cualquier dispositivo. Eso significa que el enlace completo está almacenado de alguna manera en mi cuenta en los servidores de Mozilla.

Si es así, es técnicamente factible que Mozilla descifre todos los archivos compartidos. ¿Me estoy perdiendo de algo? ¿Alguien comprende bien cómo funciona realmente Firefox Send y si es seguro confiar en ese mecanismo de cifrado de extremo a extremo?

Muchas gracias.

Respuesta1

Me preguntaba lo mismo y llegué a esta pregunta. Bueno, puedo intentar hacer mi propia investigación.

Mozilla documentó el cifrado utilizadoaquíy para explicarlo en términos más simples:

Subiendo

  1. Su aplicación/navegador genera una clave de cifrado
  2. La clave se utiliza para generar 3 claves adicionales: una para el cifrado del archivo, otra para los metadatos y una clave de firma.
    • Si establece una contraseña, la contraseña y la clave de cifrado se combinan de forma segura para crear la clave de firma.
  3. El archivo y los metadatos se cifran.
  4. Los datos cifrados y la clave de firma se envían a Mozilla
    • Tenga en cuenta que debido a la forma en que se generan las claves de firma, no es posible volver a calcular la clave de cifrado original utilizada para generar cualquiera de las claves.
  5. Mozilla te envía la URL del archivo (sin la parte después de #) y un token. Este token se puede utilizar para eliminar el archivo.
  6. Su aplicación agrega el signo # y la clave de cifrado

Descargando

  1. Entras en la página de descarga. Todos los navegadores no envían la parte después de # al servidor. (Suelen utilizarse para enlaces ancla que enlazan a otra sección de la misma página)
  2. Mozilla envía a su aplicación un "nonce" (número usado solo una vez) o básicamente algunos datos basura aleatorios
  3. Dado que tiene la clave de cifrado después del #, la aplicación genera las 3 claves como en el paso 2 de carga. Obtendrá exactamente las mismas claves que quien subió el archivo.
  4. La aplicación firma el nonce proporcionado por el servidor con la clave de firma
  5. La aplicación envía el nonce firmado a Mozilla.
  6. Dado que Mozilla también tiene la misma clave de firma, también realiza el paso 4 de su lado y espera que coincida con la que usted envía. Este paso garantiza que
    • Conoces la clave de cifrado correcta
    • o si el archivo está protegido con contraseña, usted conoce la contraseña
  7. Una vez que haya verificado que conoce la clave (sin siquiera revelarla al servidor), Mozilla le enviará los metadatos cifrados.
  8. La aplicación descifra estos metadatos en su computadora y le muestra detalles
  9. Haces clic en descargar
  10. La aplicación descarga los archivos cifrados y los descifra en su computadora.

Entonces, para responder a tus preguntas:

Supongo que una parte de la URL representa la ubicación del archivo en los servidores de Mozilla y la otra es la clave de cifrado. Sin embargo, desde una URL válida, cualquier parte que cambie aparece el error "Ese enlace ha caducado". Por lo tanto, no pude determinar si mi suposición era correcta.

Desde el paso 6 de la descarga, si no puede demostrar que conoce la clave de cifrado correcta, Mozilla se negará a enviarle el archivo.

De todos modos, mi pregunta es qué tan seguro puedo estar con ese cifrado de extremo a extremo. Ese mecanismo es inteligente, pero me di cuenta de que podía recuperar el enlace de cualquiera de mis recursos compartidos desde mi cuenta de Firefox en cualquier dispositivo. Eso significa que el enlace completo está almacenado de alguna manera en mi cuenta en los servidores de Mozilla.

Esta parte no está escrita en el documento que vinculé. Miro a mi alrededorla fuentey descubrió que subieron la lista de archivos cargados a su cuenta. Creo que estos datos están cifrados con un proceso similar al cifrado de archivos.

Miré a mi alrededor y parece que la clave de cifrado se genera localmente. Sin embargo, no estoy seguro de cómo se sincroniza la clave.

Si es así, es técnicamente factible que Mozilla descifre todos los archivos compartidos. ¿Me estoy perdiendo de algo? ¿Alguien comprende bien cómo funciona realmente Firefox Send y si es seguro confiar en ese mecanismo de cifrado de extremo a extremo?

Un gran descargo de responsabilidad aquí es que no soy un experto en cifrado y es posible que quieras preguntarcripto.seLa opinión sobre esto.

Si me preguntas, creo que el proceso de cifrado aquí es bastante sólido y los algoritmos utilizados son estándar de la industria. Mozilla no tiene forma de descifrar todos los archivos sin forzar todas y cada una de las claves utilizadas, una por archivo.

Sin embargo, debes tener en cuenta las funciones adicionales en las que debes confiar para que Mozilla esté haciendo su trabajo:

  • La contraseña es verificada únicamente por el servidor. Si obtiene los archivos cifrados y la clave de cifrado, podrá descifrar los datos sin conocer la contraseña. Normalmente, esto no sería un problema ya que el servidor no le envía los archivos cifrados a menos que haya demostrado que conoce la contraseña. Sin embargo, Mozilla tiene acceso al archivo cifrado, por lo que la clave de cifrado es la única protección aquí.
    • Teniendo en cuenta que la mayoría de las contraseñas proporcionadas por los usuarios son débiles, generar una clave de cifrado segura y aleatoria es mejor que usar la contraseña para cifrar los datos directamente.
  • La caducidad no es posible implementar de manera criptográficamente segura, ya que no se puede obtener la hora actual verdadera en una función matemática. Por lo tanto, tendrás que confiar en que Mozilla eliminará tus archivos caducados.

Tenga en cuenta que el servidor de código abierto Firefox Send admite AWS como backend de almacenamiento. No estoy seguro de qué usó Firefox en su servicio público, pero si es AWS, entonces tendrás que confiar en AWS también en los dos temas anteriores.

información relacionada