Los hackers han utilizado la función de protocolo OpenPGP, que se conoce desde hace más de diez años.
Te contamos cuál es la esencia y por qué no pueden cerrarla.
/ Unsplash / Chunlea JuProblemas de red
A mediados de junio, incógnitas
atacaron una red de
servidores de clave criptográfica
SKS Keyserver , construida sobre la base del protocolo OpenPGP. Este es el estándar IETF (
RFC 4880 ), que se utiliza para cifrar correos electrónicos y otros mensajes. La red SKS se creó hace treinta años para distribuir certificados públicos. Se conectan herramientas como
GnuPG para cifrar datos y crear firmas digitales electrónicas.
Los piratas informáticos comprometieron los certificados de dos encargados del proyecto GnuPG: Robert Hansen y Daniel Gillmor. La descarga de un certificado dañado del servidor hace que GnuPG se bloquee, el sistema simplemente se congela. Hay razones para creer que los atacantes no se detendrán allí, y la cantidad de certificados comprometidos solo aumentará. Actualmente, el alcance del problema sigue siendo desconocido.
Esencia del ataque
Los hackers explotaron una vulnerabilidad en el protocolo OpenPGP. La comunidad lo conoce desde hace décadas. Incluso en GitHub,
puedes encontrar los exploits apropiados. Pero hasta ahora nadie se ha atribuido la responsabilidad de cerrar el "agujero" (hablaremos más sobre los motivos a continuación).
Un par de selecciones de nuestro blog sobre Habré:
Según la especificación OpenPGP, cualquiera puede agregar firmas digitales a los certificados para confirmar su propiedad. Además, el número máximo de firmas no está regulado de ninguna manera. Y aquí surge un problema: la red SKS le permite colocar hasta 150 mil firmas para un certificado, pero GnuPG no admite dicho número. Por lo tanto, al cargar un certificado, GnuPG (como, por cierto, otras implementaciones de OpenPGP) se cuelga.
Uno de los usuarios
realizó un experimento : importar un certificado le llevó unos 10 minutos. El certificado tenía más de 54 mil firmas y su peso era de 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6 gpg: key F20691179038E5C6: 4 duplicate signatures removed gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys gpg: key F20691179038E5C6: 4 signatures reordered gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 $ ls -lh pubring.gpg -rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
La situación se ve agravada por el hecho de que los servidores clave con OpenPGP no eliminan la información del certificado. Esto se hace para que pueda rastrear la cadena de todas las acciones con certificados y evitar su sustitución. Por lo tanto, es imposible eliminar elementos comprometidos.
De hecho, la red SKS es un gran "servidor de archivos" en el que cualquiera puede escribir datos. Para ilustrar el problema, el año pasado un residente de GitHub
creó un sistema de archivos que almacena documentos en una red de servidores de claves criptográficas.
Por qué la vulnerabilidad no está cerrada
No había razón para cerrar la vulnerabilidad. Anteriormente, no se usaba para ataques de hackers. Aunque la comunidad de TI
siempre ha pedido a los desarrolladores de SKS y OpenPGP que presten atención al problema.
Para ser justos, vale la pena señalar que en junio todavía
lanzaron el servidor de claves experimental
keys.openpgp.org . Implementa protección contra este tipo de ataques. Sin embargo, su base de datos se rellena desde cero y el servidor en sí no forma parte de SKS. Por lo tanto, el tiempo pasará antes de que pueda usarse.
/ Unsplash / Rubén BagüésEn cuanto al error en el sistema original, el mecanismo de sincronización complicado impide solucionarlo. La red de servidores clave fue originalmente escrita como prueba de concepto para defender una disertación doctoral de Yaron Minsky. Además, se eligió un lenguaje OCaml bastante específico para el trabajo. Según el responsable
de mantenimiento Robert Hansen, entender el código es difícil, por lo que solo se realizan correcciones menores. Para modificar la arquitectura SKS, deberá volver a escribirla desde cero.
En cualquier caso, GnuPG no cree que la red se arregle nunca. En una publicación en GitHub, los desarrolladores incluso escribieron que no recomendaron trabajar con SKS Keyserver. En realidad, esta es una de las razones principales por las que iniciaron la transición al nuevo servicio keys.openpgp.org. Solo podemos ver el mayor desarrollo de los eventos.
Un par de materiales de nuestro blog corporativo: