Los hackers aprovecharon una característica del protocolo OpenPGP, conocida desde hace más de diez años.
Vamos a explicar de qué se trata y por qué no se puede cerrar.
/ Unsplash /
Problemas en la red
A mediados de junio, desconocidos a la red de servidores de claves criptográficas , construida sobre la base del protocolo OpenPGP. Este es un estándar IETF (), que se utiliza para el cifrado de correos electrónicos y otros mensajes. La red SKS fue creada hace treinta años para la distribución de certificados públicos. Herramientas como se conectan a ella para cifrar datos y crear firmas digitales electrónicas.
Los hackers comprometieron los certificados de dos mantenedores del proyecto GnuPG: Robert Hansen y Daniel Gillmor. La descarga de un certificado corrupto del servidor provoca una falla en GnuPG: el sistema simplemente se cuelga. Hay razones para creer que los delincuentes no se detendrán aquí y que el número de certificados comprometidos solo aumentará. Hasta el momento, la magnitud del problema sigue siendo desconocida.
La esencia del ataque
Los hackers aprovecharon una vulnerabilidad en el protocolo OpenPGP. Esta es conocida por la comunidad desde hace varias décadas. Incluso en GitHub exploits correspondientes. Pero hasta ahora nadie ha asumido la responsabilidad de cerrar la 'brecha' (hablaremos de las razones más adelante).
Un par de recopilaciones de nuestro blog en Habr:
Según la especificación de OpenPGP, cualquiera puede agregar firmas digitales a los certificados para confirmar su propietario. Además, no hay un límite en el número máximo de firmas. Y aquí surge el problema: la red SKS permite colocar hasta 150 mil firmas en un certificado, pero GnuPG no admite tal cantidad. Así, al cargar un certificado, GnuPG (como, de hecho, otras implementaciones de OpenPGP) se congela.
Uno de los usuarios — la importación del certificado le tomó aproximadamente 10 minutos. El certificado tenía más de 54 mil firmas y su peso fue de 17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: clave F20691179038E5C6: 4 firmas duplicadas eliminadas
gpg: clave F20691179038E5C6: 54614 firmas no verificadas debido a claves faltantes
gpg: clave F20691179038E5C6: 4 firmas reordenadas
gpg: clave F20691179038E5C6: clave pública "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" importada
gpg: no se encontraron claves de confianza definitiva
gpg: Total procesado: 1
gpg: importado: 1
$ ls -lh pubring.gpg
-rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
La situación se agrava debido a que los servidores de claves de OpenPGP no eliminan la información sobre los certificados. Esto se hace para poder rastrear la cadena de todas las acciones con los certificados y evitar su sustitución. Por lo tanto, no se pueden eliminar los elementos comprometidos.
En esencia, la red SKS es un gran "servidor de archivos" al que cualquier persona puede escribir datos. Para ilustrar el problema, el año pasado un residente de GitHub , que almacena documentos en una red de servidores de claves criptográficas.
Por qué no se cerró la vulnerabilidad
No había motivo para cerrar la vulnerabilidad. Anteriormente, no se había utilizado para realizar ataques de hackers. Aunque la comunidad de TI a los desarrolladores de SKS y OpenPGP que presten atención al problema.
A fin de cuentas, hay que señalar que en junio ellos implementaron un servidor de claves experimental . Este servidor cuenta con protección contra este tipo de ataques. Sin embargo, su base de datos se llena desde cero, y el servidor no forma parte de SKS. Por lo tanto, pasará tiempo antes de que se pueda utilizar.

/ Unsplash /
En cuanto al bug en el sistema original, corregirlo es complicado debido a un mecanismo complejo de sincronización. La red de servidores de claves se escribió originalmente como prueba de concepto para proteger la disertación doctoral de Yaron Minsky. Además, se seleccionó un lenguaje bastante específico, OCaml. Según el mantenedor Robert Hansen, es difícil entender el código, por lo que solo se realizan pequeñas correcciones. Para modificar la arquitectura de SKS, tendría que reescribirse desde cero.
En cualquier caso, en GnuPG no creen que la red pueda corregirse alguna vez. En una publicación en GitHub, los desarrolladores incluso mencionaron que no recomiendan trabajar con el servidor de claves SKS. De hecho, esta es una de las principales razones por las que iniciaron la migración al nuevo servicio keys.openpgp.org. Solo nos queda observar el desarrollo de los acontecimientos.
Un par de artículos de nuestro blog corporativo:
Fuente: habr.com
