Post-analyse : que sait-on de la dernière attaque contre le réseau de serveurs de clés cryptographiques SKS Keyserver

Les pirates ont utilisé une fonctionnalité du protocole OpenPGP connue depuis plus de dix ans.

Nous vous expliquons quel est l’intérêt et pourquoi ils ne peuvent pas le fermer.

Post-analyse : que sait-on de la dernière attaque contre le réseau de serveurs de clés cryptographiques SKS Keyserver
/Unsplash/ Chunlea Ju

Problèmes de réseau

À la mi-juin, inconnu a mené une attaque à un réseau de serveurs de clés cryptographiques Serveur de clés SKS, construit sur le protocole OpenPGP. Il s'agit d'une norme IETF (RFC 4880), qui est utilisé pour chiffrer les e-mails et autres messages. Le réseau SKS a été créé il y a trente ans pour distribuer des certificats publics. Il comprend des outils tels que GnuPG pour crypter les données et créer des signatures numériques électroniques.

Les pirates ont compromis les certificats de deux responsables du projet GnuPG, Robert Hansen et Daniel Gillmor. Le chargement d'un certificat corrompu depuis le serveur entraîne l'échec de GnuPG : le système se bloque tout simplement. Il y a des raisons de croire que les attaquants ne s’arrêteront pas là et que le nombre de certificats compromis ne fera qu’augmenter. Pour l’instant, l’ampleur du problème reste inconnue.

L'essence de l'attaque

Les pirates ont profité d'une vulnérabilité du protocole OpenPGP. Elle est connue de la communauté depuis des décennies. Même sur GitHub peut trouver exploits correspondants. Mais jusqu’à présent, personne n’a pris la responsabilité de combler le « trou » (nous parlerons des raisons plus en détail plus tard).

Quelques sélections de notre blog sur Habré :

Selon la spécification OpenPGP, n'importe qui peut ajouter des signatures numériques aux certificats pour vérifier leur propriétaire. De plus, le nombre maximum de signatures n’est en aucun cas réglementé. Et ici, un problème se pose : le réseau SKS vous permet de placer jusqu'à 150 XNUMX signatures sur un certificat, mais GnuPG ne prend pas en charge un tel nombre. Ainsi, lors du chargement du certificat, GnuPG (ainsi que d'autres implémentations d'OpenPGP) se bloque.

Un des utilisateurs mené une expérience — l'importation du certificat lui a pris environ 10 minutes. Le certificat comptait plus de 54 17 signatures et son poids était de XNUMX Mo :

$ 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 <[email protected]>" 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

Pour aggraver les choses, les serveurs de clés OpenPGP ne suppriment pas les informations de certificat. Ceci est fait pour que vous puissiez retracer la chaîne de toutes les actions avec les certificats et empêcher leur substitution. Il est donc impossible d’éliminer les éléments compromis.

Essentiellement, le réseau SKS est un grand « serveur de fichiers » sur lequel n'importe qui peut écrire des données. Pour illustrer le problème, résident GitHub de l'année dernière créé un système de fichiers, qui stocke les documents sur un réseau de serveurs de clés cryptographiques.

Pourquoi la vulnérabilité n'a-t-elle pas été fermée ?

Il n’y avait aucune raison de fermer la vulnérabilité. Auparavant, il n’était pas utilisé pour les attaques de pirates. Bien que la communauté informatique demandé depuis longtemps Les développeurs SKS et OpenPGP doivent prêter attention au problème.

Pour être honnête, il convient de noter qu'en juin, ils lancé serveur de clés expérimental clés.openpgp.org. Il offre une protection contre ce type d’attaques. Cependant, sa base de données est remplie à partir de zéro et le serveur lui-même ne fait pas partie de SKS. Il faudra donc du temps avant de pouvoir l’utiliser.

Post-analyse : que sait-on de la dernière attaque contre le réseau de serveurs de clés cryptographiques SKS Keyserver
/Unsplash/ Rubén Bagües

Quant au bug du système d’origine, un mécanisme de synchronisation complexe empêche sa correction. Le réseau de serveurs clés a été initialement écrit comme preuve de concept pour la thèse de doctorat de Yaron Minsky. De plus, un langage assez spécifique, OCaml, a été choisi pour les travaux. Par СЃР »РѕРІР ° Рј responsable Robert Hansen, le code est difficile à comprendre, donc seules des corrections mineures y sont apportées. Pour modifier l'architecture SKS, il faudra la réécrire de zéro.

Quoi qu’il en soit, GnuPG ne croit pas que le réseau sera un jour réparé. Dans un article sur GitHub, les développeurs ont même écrit qu'ils ne recommandaient pas de travailler avec SKS Keyserver. En fait, c'est l'une des principales raisons pour lesquelles ils ont initié la transition vers le nouveau service key.openpgp.org. Nous ne pouvons qu'observer l'évolution des événements.

Quelques documents de notre blog d'entreprise :

Source: habr.com

Ajouter un commentaire