Inicio / Blog / End-To-End: el cliente web de Google para PGP está de camino

End-To-End: el cliente web de Google para PGP está de camino

Publicado el 11/06/2014, por Jesús Díaz (INCIBE)
logo_e2e

El pasado 3 de junio Google hizo público un nuevo proyecto: End-to-End. En forma de extensión para Chrome, End-to-End es la propuesta para integrar, de manera sencilla y usable, la funcionalidad de cifrado y firma digital en los correos electrónicos. La motivación de esta extensión es uno de los principales asuntos pendientes para conseguir comunicaciones seguras. Y es que, como indica Google en su Transparency Report, entre el 40% y el 50% de los emails (de los que pasan por sus servidores) no viajan cifrados. Esto se debe a que, aunque Gmail ya hizo obligatorio el uso de TLS para el envío y recepción de emails desde sus servidores, otras compañías pueden no seguir esa práctica.

End-to-End es, básicamente, un cliente web para PGP. Todavía está en fase alpha, y sólo se puede incluir en Chrome si uno mismo compila el código (disponible en Google Code) y lo añade a su navegador. No obstante, como ellos mismos indican, el motivo de esta estrategia es permitir que cualquiera pueda probarlo y ayudarles a mejorarlo. En esta entrada del blog, veremos brevemente cómo se configura y las funcionalidades principales que ofrece.

Compilación e instalación

Lo primero es descargar el código desde Google Code. En la pestaña Wiki, hay disponibles dos scripts para preparar el entorno en sistemas Linux. El primer script, bajo el epígrafe de "Setup Environment", además de descargar la propia extensión, obtiene el software adicional necesario para la misma. En concreto, los diferentes componentes de las Closure Tools para optimización y compilación de Javascript y zlib. Posteriormente, el script bajo el epígrafe "Compile Code" compila todo lo descargado con el script anterior, trabajando en el directorio actual. Una vez compilado, habrá que acceder a chrome://extensions y, activando el modo desarrollador, incorporar la extensión por medio del botón "Cargar extensión descomprimida".

Funcionalidad

Al instalar la extensión, aparece al lado de la barra de direcciones el botón con el logo de End-to-End, desde el que se maneja la funcionalidad de la extensión.

  Address bar and End-To-End button

Lo primero que salta a la vista, es que se puede acceder a la extensión desde cualquier sitio. Es decir, se podrá preparar un texto cifrado y firmado en cualquier momento, por lo que tal y como está ahora mismo, la extensión en realidad se puede utilizar para otros servicios de correo distintos a Gmail.

Pulsando el botón, se muestran las distintas acciones que permite la extensión. En concreto, Crear un email cifrado y (posiblemente) firmado, leer un email cifrado y (posiblemente) firmado, importar una clave, y más opciones de configuración.

Menu End-To-End

Generación y gestión de claves

Pulsando en "Options" se accede al menú principal de configuración, desde el que se pueden generar nuevas claves, importar un anillo de claves externo, exportar el actual, o cifrarlo.

Opciones End-To-End

Aunque para las claves que se generan desde la propia extensión se utilizan exclusivamente criptosistemas basados en curvas elípticas (por ejemplo, ECDH), es posible importar claves de otro tipo (por ejemplo, RSA) desde programas externos como GnuPG. La posibilidad de importar claves externas es, sin duda, una gran ventaja y garantía adicional de seguridad.

En cuanto a cómo almacena End-To-End las claves, según se dice en el FAQ, éstas son almacenadas en claro en la memoria (sandboxeadas por medio de Chrome), pero cifradas en localStorage. Es importante por tanto tener en cuenta que, tener activa la opción de "Automatically send usage statistics and crash reports to Google" puede implicar que se envíen porciones de nuestras claves privadas a Google como parte de los informes generados automáticamente.

Envio automatico de estadisticas 

Cifrado

Al igual que PGP/GPG, la extensión End-To-End permite enviar mensajes cifrados con o sin clave pública, dependiendo de si el destinatario dispone de una (y se conoce) o no. En concreto, eligiendo la opción "Compose an End-To-End message" (esta es la opción que se abre por defecto si la pestaña activa del navegador es la de Gmail) que se muestra al desplegar el menú de opciones de la extensión, se puede cifrar:

  • Haciendo uso la clave pública del destinatario. En realidad, en este caso se utiliza lo que se conoce como digital envelope o cifrado híbrido. Este método consiste en cifrar el mensaje con una clave simétrica, y ésta con la clave pública del destinatario. Como criptosistema simétrico, End-To-End utiliza AES256, como se observa en la siguiente imagen, donde se descifra y verifica usando GPG un mensaje generado con End-To-End (con claves generadas desde GPG):

    Descifrado 

  • O a través de una passphrase. Para un cifrar un mensaje dirigido a un destinatario cuya clave pública no se conoce, End-To-End solicita una passphrase. A partir de ella deriva una clave simétrica (AES256), con la que cifra el mensaje.

Firmado digital

Además de cifrar los emails, es posible firmarlos, activando la casilla que indica "Sign this message" en la ventana desplegable de End-To-End. Por supuesto, el algoritmo de firmado dependerá de la clave utilizada para firmar, aunque si es una clave generada desde End-To-End, será un criptosistema basado en curvas elípticas. Es llamativo que como función de resumen criptográfico utiliza SHA224 (como se puede observar en la imagen anterior).

Crear un email protegido con End-To-End 

Descifrado y verificación de firma

Para descifrar (y posiblemente también verificar) un mensaje protegido con End-To-End, en caso de que no lo haga automáticamente (en principio, lo hace si se activa la opción "Always try to anticipate End-To-End action" en la página de configuración, aunque parece que este aspecto no funciona aún muy bien), habrá que seleccionar el texto a procesar, pulsar en el botón de la extensión y después en "Read".

Si se trata de un email protegido con una passphrase, habrá que introducirla y, en caso de estar cifrado con nuestra clave pública conocida, End-To-End lo descifrará automáticamente. En caso de que esté firmado y tengamos la clave pública del remitente en nuestro keyring, también informará de si la firma es válida. En este aspecto, cabe destacar que no se aporta información relativa a la confianza que hay en la clave pública asociada.

Leer un email protegido con End-To-End 

Primeras impresiones

Después de haber probado la extensión, se nota que aún está en fase alpha y que cabe bastante mejora en ella (así lo reconoce el propio equipo de desarrollo en la primera pregunta de su FAQ). Por ejemplo, la herramienta no permite configurar los parámetros para la creación de claves criptográficas o gestionar la confianza de las claves en nuestro anillo de claves, ni muestra la confianza que tenemos en la clave pública asociada a un email firmado a la hora de verificar la firma (siguiendo las guías de la web of trust).

También, en algunos puntos, la interacción con la extensión es aún poco intuitiva. Aunque los aspectos relacionados con los parámetros criptográficos posiblemente no sean críticos para la gran parte del público objetivo (ya que End-To-End pretende instaurar el cifrado punto a punto para el público general), desde luego sí serían funcionalidades interesantes para usuarios avanzados.

No obstante, está claro que es una herramienta prometedora, principalmente viniendo de Google, por lo que no es arriesgado apostar por que mejorará mucho en los próximos meses.