Ok Google, publie tes clés DKIM privées





Internet était un endroit dangereux même dans ses meilleures années. Parfois, les architectes d'Internet ont trouvé des moyens d'atténuer les menaces, parfois ils ont échoué. Cependant, la situation se répète constamment lorsqu'une grande entreprise Internet trouve une solution qui aggrave la situation pour presque tout le monde. Aujourd'hui, je veux parler d'un tel cas, et aussi de la façon dont une grande entreprise comme Google pourrait trouver un moyen de le résoudre.



Cet article couvre Domain Keys Identified Mail (DKIM), un minuscule protocole anti-spam inoffensif qui s'est transformé en monstre. Ma demande est simple, elle peut se résumer comme suit:



Cher Google, veuillez mettre en place une rotation et une publication périodiques de vos clés privées DKIM. Cela rendra l'ensemble de l'Internet beaucoup plus sûr, car les criminels perdront une forte incitation à voler des e-mails et à orchestrer leurs fuites. Le correctif ne vous coûtera presque rien et fera tomber l'outil le plus puissant des mains des voleurs.



C'est la version courte. Des informations plus détaillées sont présentées ci-dessous.



Qu'est-ce que ce DKIM et comment protège-t-il mes e-mails?



Le courrier électronique a été créé à l'époque où Internet s'appelait encore ARPANET . C'étaient des jours beaucoup plus calmes, où les mesures de sécurité modernes, et pour être honnête, la notion même qu'Internet aurait besoin de sécurité, restaient un futur lointain de science-fiction.



Les premiers protocoles de messagerie (comme SMTP) fonctionnaient sur la base d'un système de confiance. Les e-mails peuvent être arrivés sur votre serveur de messagerie directement depuis le serveur de messagerie de l'expéditeur ou transmis par des intermédiaires. Quoi qu'il en soit, si la lettre déclare qu'elle vient de votre amie Alice, alors vous croyez qu'elle vient bien d'Alice. Pourquoi quelqu'un mentirait-il à ce sujet?



L'adoption généralisée du courrier électronique a montré que cette attitude a lamentablement échoué. En quelques années à peine, les internautes ont appris que de nombreuses personnes étaient prêtes à mentir sur qui elles étaient. La plupart d'entre eux étaient des spammeurs de courrier électronique qui étaient ravis que SMTP leur permette d'usurper l'identité de presque n'importe quel expéditeur - votre amie Alice, votre patron, le bureau des impôts, le sympathique prince nigérian. Sans un mécanisme fiable pour empêcher ce spam d'être envoyé, le courrier électronique est avéré être terriblement vulnérable à usurper.



Au crédit des fournisseurs de messagerie, ils ont rapidement réalisé que le courrier électronique sans authentification de l'expéditeur était intrinsèquement inutilisable. Pour filtrer correctement les e-mails, ils avaient besoinvérifiez au moins de quel serveur l'e-mail provient. Cette propriété a un nom technique et est appelée autorisation de source .



La solution au problème d'autorisation de la source, comme presque le reste des correctifs des protocoles Internet de base, ressemblait à une réparation avec du ruban adhésif. Les fournisseurs de services de courrier ont été invités à brancher un ( en option) nouvelle extension cryptographique appelée Domain Keys Identified Mail ou DKIM. DKIM intègre des signatures numériques dans chaque e-mail envoyé par le serveur de messagerie . Lorsque le serveur de messagerie du destinataire accepte une lettre signée DKIM indiquant qu'elle provenait par exemple de Google, il utilise d'abord le système de noms de domaine(DNS) trouve la clé publique de Google. Le destinataire peut maintenant vérifier la signature pour s'assurer que le message est authentique et non modifié, puisque la signature est associée au contenu et à la plupart des en-têtes. Cette connaissance peut ensuite être utilisée comme entrée pour filtrer le spam. (De telles garanties sont fournies par un protocole similaire appelé ARC.)



Bien entendu, une telle solution n'est pas idéale. Étant donné que DKIM est facultatif, les intermédiaires malveillants peuvent supprimer les signatures DKIM d'une lettre pour convaincre les destinataires qu'elle n'a jamais été signée par DKIM. Un protocole similaire, appelé DMARC , utilise DNS pour permettre aux expéditeurs de courrier de communiquer leurs préférences, ce qui forcevérifier les signatures de leurs e-mails. L'utilisation conjointe de ces deux protocoles devrait, en substance, éliminer complètement l'usurpation d'identité sur Internet.





Un exemple de signature DKIM pour l'un des e-mails automatisés que j'ai reçus aujourd'hui.



Quel est le problème avec DKIM / ARC / DMARC et qu'est-ce que le «défi»?



En tant que mesure anti-spam, DKIM, ARC et DMARC n'ont aucun problème particulier. La partie délicate est que la signature DKIM a un effet secondaire inattendu qui va plus loin que la tâche de filtrage anti-spam d'origine. En bref:



DKIM offre une garantie à vie de l'authenticité des e-mails, que tout le monde peut utiliser pour authentifier cryptographiquement les e-mails volés même des années après leur envoi.



Cette nouvelle fonctionnalité de non-révocation n'était pas initialement conçue comme une cible DKIM. Les concepteurs ne l'avaient pas prévu, personne ne s'est demandé si ce serait une bonne idée, et la plupart ont été pris par surprise. Pire encore, cette fonctionnalité inattendue a eu des conséquences très graves: elle nous rend plus vulnérables à l'extorsion et au chantage.



Pour comprendre quel est le problème, il convient de considérer les objectifs de DKIM.



Le principal objectif de DKIM était d'empêcher la falsification de lettres par des spammeurs lors de leur transmission . Cela signifie que les serveurs destinataires devraient réellement être en mesure de vérifier que l'e-mail a été envoyé à partir du serveur de messagerie source revendiqué, même si l'e-mail passe par de nombreux serveurs non approuvés en cours de route.



Cependant, une fois le transfert de courrier terminé, la cible DKIM est terminée. Autrement dit, la garantie d'authenticité ne doit être maintenue que pendant une courte période. Étant donné que les lettres ne prennent généralement que quelques minutes à recevoir (dans de rares cas, des heures), la garantie d'authenticité ne devrait pasdurent des années, et ces signatures ne devraient pas être exposées aux utilisateurs. Cependant, c'est ainsi que cela se produit.



Jusqu'à récemment, personne n'y pensait. En fait, les premières configurations de DKIM ressemblaient à une mauvaise blague: les fournisseurs de services de messagerie ont choisi des clés de signature DKIM qui étaient très faciles à pirater pour un attaquant motivé. En 2012, le chercheur en sécurité Zachary Harris a découvert que Google et de nombreuses autres entreprises utilisaient RSA 512 bits pour signer DKIM. Il a montré que de telles clés sur un équipement cloud loué peuvent être déchiffrées en quelques heures, puis utilisées pour falsifier les lettres de Larry et Sergey.



Il n'est pas difficile de prévoir comment Google et les autres fournisseurs de messagerie réagiront à cet embarras de «Larry et Sergey». Sans réfléchir attentivement aux implications, ils ont rapidement renforcé les clés, les convertissant en RSA 1024 bits ou 2048 bits. Cela a empêché la falsification, mais a transformé par inadvertance le protocole antispam inoffensif en un tampon d'authenticité cryptographique à vie qui peut être utilisé pour valider tout vidage d'e-mails, quelle que soit la manière dont il est entre les mains du vérificateur.



Vous êtes fou, personne n'utilise DKIM pour authentifier les emails.



Cependant, le tampon d'authentification DKIM a été largement utilisé par la presse, principalement dans le cadre du piratage des courriels de politiciens. C'est réel, important et significatif.



L'exemple le plus célèbre, qui a provoqué une vive polémique dans le même temps: en 2016, Wikileaks a publié un ensemble de lettres volées sur le compte Google de John Podest . La source de ces lettres étant trouble , WikiLeaks a dû faire face à la tâche ardue de vérifier l'authenticité de ces messages. DKIM est devenu une solution élégante: chaque lettre publiée sur les pages de Wikileaks indique publiquement l'état de confirmation des signatures DKIM attachées . Le site fournit également une page de ressources utiles aux journalistes expliquant comment DKIM prouve la réalité des lettres.



Cependant, l'histoire de DKIM ne s'est pas terminée avec les lettres de Podestà. En 2017, ProPublica utilisé DKIM pour vérifier l'authenticité des lettres qui auraient été envoyés à critique par l' avocat personnel du président Trump, Mark Kasovitz. En 2018, l'Associated Press l'a de nouveau utilisé pour authentifier les courriels divulgués liant un avocat russe à Donald Trump Jr. Et cela s'est encore produit cette année, lorsque les destinataires du prétendu «ordinateur portable de Hunter Biden» ont remis une lettre de 2015 à Rob Graham pour une vérification DKIM afin de surmonter le scepticisme des journalistes sur leurs sources.



Quelqu'un peut dire que la vérification DKIM n'est pas importante et que vous pouvez croire ou ne pas croire aux lettres divulguées uniquement sur la base de leur contenu. Cependant, le fait que de nombreuses agences de presse aient choisi de s'appuyer sur DKIM montre clairement à quel point cette hypothèse est erronée. Les organisations de presse, y compris Wikileaks, admettent implicitement que les sources controversées de réception de lettres suscitent des doutes - probablement si forts que cela rend impossible une publication convaincante dans une organisation de presse nationale. DKIM vous permet de contourner ce problème et d'éliminer ces interférences.



L'Associated Press a même publié un outil de vérification DKIM .



En bref, le protocole antispam, conçu à l'origine pour fournir une identification à court terme des lettres circulant entre les serveurs de messagerie, a changé de finalité (sans la moindre discussion ni le consentement des utilisateurs commerciaux de messagerie), devenant un outil qui fournit une authentification cryptographique indéniable de chacune de vos lettres entrantes ou sortantes. C'est une ressource formidable pour les journalistes, les hackers et les maîtres chanteurs.



Mais il ne donne aucun avantage à vous .



Que peux-tu y faire?



DKIM n'a jamais été conçu pour l'authentification de courrier électronique à long terme. Les garanties de sécurité qu'il fournit sont importantes, mais ne devraient exister que pendant quelques heures (éventuellement quelques jours) à partir du moment où la lettre est envoyée par le serveur de messagerie. Le fait même que DKIM puisse encore être utilisé pour prouver l'authenticité d'un e-mail volé, écrit en 2015 , est essentiellement un échec: le résultat d'une mauvaise utilisation et d'une mauvaise configuration par des fournisseurs de messagerie qui ont dû réfléchir avec leur tête.



Heureusement, il existe une solution simple.



DKIM permet aux fournisseurs de «faire pivoter» ou de remplacer périodiquement les clés utilisées pour signer les e-mails sortants. La fréquence de cette rotation est légèrement limitée par la mise en cacheInfrastructure DNS, mais ces restrictions ne sont pas très strictes. Même un grand fournisseur comme Google peut facilement changer les clés de signer au moins quelques semaines sans interférer avec le flux de messagerie. Changer de clé comme celui-ci est de toute façon une bonne pratique et fait partie de la solution.



Bien sûr, un simple changement de paires de clés DKIM à lui seul ne résoudra rien: les gens malins sur Internet archivent constamment les clés DKIM publiques. En fait, c'est exactement ce qui a été confirmé en 2020 par une lettre adressée à une boîte aux lettres Google de 2015: la clé que Google utilisait pour signer les e-mails DKIM dans cette période il y a longtemps (de 2012 à 2016, la même clé était utilisée - sérieusement, Google, quel bordel!) n'est plus utilisé, mais a été mis en cache dans de nombreux endroits sur Internet.



La solution à ce problème ne nécessite qu'un petit élément supplémentaire: Google doit publier un sous-ensemble des paires de clés avec une clé privée après rotation et retrait. L'entreprise doit publier cette clé secrète dans un lieu public facilement accessible afin que tout le monde puisse l'utiliser pour simuler d'anciens e-mails suspects de n'importe quel utilisateur de Google. La disponibilité publique de la clé de signature Google rendrait toute nouvelle fuite de courrier électronique sans objet cryptographiquement. Étant donné que n'importe quel étranger peut falsifier les signatures DKIM, elles deviennent pratiquement inutiles comme preuve d'authenticité.



(Ceux qui ont leurs propres serveurs de messagerie peuvent le faire automatiquement avec ce bon script .)



Google peut lancer ce processus dès maintenant en libérant ses anciennes clés privées de 2016. Étant donné que leur secret aujourd'hui ne sert littéralement à aucun objectif de sécurité autre que la confirmation par un tiers de la fuite de courrier, il n'y a aucune raison de garder ces valeurs secrètes. Disposez-les simplement.



(Un lecteur paranoïaque pourrait également envisager la possibilité que des attaquants motivés aient déjà volé d'anciennes clés privées DKIM à Google.... En fin de compte, les clés de signature DKIM ne sont pas les « bijoux royaux » de l'écosystème Google, Google va à peine de leur façon de les conserver de manière sécurisée. Dans ce cas, garder les clés secrètes par Google crée simplement une situation dans laquelle certains acteurs peuvent falsifier des lettres en toute impunité.)



Mais l'authentification DKIM est une bonne chose! Ne voulons-nous pas pouvoir vérifier les fuites de courrier des politiciens?



Les implémentations modernes de DKIM posent des problèmes car elles encouragent un type spécifique d'infraction: le vol de lettres privées à utiliser dans des campagnes publiques de chantage et d'extorsion. Au cours des dernières années, il s'est avéré que cette fonctionnalité a été principalement utilisée d'une manière que beaucoup de gens trouvent acceptable, soit parce qu'elle convient aux préférences de leurs adeptes, soit parce que les politiciens «attrapés» le méritent.



Mais de mauvaises choses arrivent aussi aux bonnes personnes. Si vous créez un mécanisme qui stimule le crime, alors tôt ou tard un crime sera commis contre vous.



Les fournisseurs de services de messagerie comme Google ont pris la décision (souvent sans demander à leurs clients) que toute personne qui récupère le mot de passe de messagerie d'un client ou qui l'hameçonne auprès d'un employé de l'entreprise peut fournir une preuve cryptographique indéniable qui peut être montrée à quiconque pour confirmer l'authenticité des résultats. crimes. Peut-être qu'une telle preuve sera inutile pour les tâches du criminel. Mais cela a certainement de la valeur. Éliminer une telle possibilité est une bénédiction dans sa forme la plus pure.



Le fait que je doive discuter de cela me rend très triste.



Horodatage, cryptographie améliorée et autres objections formelles



Chaque fois que je mentionne l'idée de publier d'anciennes clés secrètes, je reçois un tas d'objections formelles de la part de personnes avec de très bons commentaires . Mais ils pensent à un modèle de menace plus sérieux que celui auquel nous sommes habituellement confrontés.



L'objection la plus courante est que la publication de clés privées ne fonctionnera que si des e-mails signés ont été reçus après la publication des clés privées. Par cette logique, qui est correcte, toutes les lettres volées et publiées avant la publication de la clé DKIM privée sont indéniables. Par exemple, si quelqu'un pirate votre compte et commence immédiatement à publier les e-mails que vous recevez en temps réel, leur vérifiabilité cryptographique est toujours possible.



Quelqu'un a même suggéré la possibilité d'une attaque intelligente dans laquelle les destinataires (ou les pirates qui ont un accès constant à votre compte de messagerie) utilisent un service d'horodatage public, tel que la blockchain, pour «tamponner» en toute sécurité tout e-mail qu'ils reçoivent avec l'heure de réception. Cela permet à ces destinataires de prouver qu'ils ont signé la lettre avant de publier la clé DKIM secrète - check et checkmate.



Il s'agit d'un excellent hack théorique, mais il est essentiellement hors de propos pour notre sujet dans le sens où il aborde un modèle de menace plus fort. Le problème le plus critique avec DKIM aujourd'hui est que les signatures DKIM résident dans votre boîte aux lettres archivée. Cela signifie qu'un pirate informatique qui a piraté mon compte Gmail aujourd'hui pourra démontrer les signatures DKIM sur les e-mails que j'ai envoyés / reçus.il y a des années . La publication d'anciens DKIM privés résoudra instantanément ce problème. La solution au problème théorique d'un "hacker en temps réel" peut attendre son tour.



Une autre objection que j'entends parfois est que l'authentification cryptographique est une fonctionnalité utile . Et sous certaines conditions, je suis d'accord avec ça. Le problème avec DKIM est qu'aucun client n'a été demandé s'il souhaite cette fonctionnalité par défaut dans son compte de messagerie commercial . Si les gens souhaitent confirmer cryptographiquement leurs lettres, un ensemble d'outils pratiques peut être utilisé à cette fin .



En outre, se pose la question de savoir s'il sera possible de résoudre le problème du défi DKIM à l'aide d'une nouvelle cryptographie. En tant que cryptographe, je suis très enthousiaste à ce sujet. En fait, mes co-auteurs Mike Specter et Sanu Park et moi-même avons récemment écrit un article sur la façon dont une solution à long terme au problème DKIM pourrait fonctionner. (Mike a écrit un excellent article à ce sujet .) Je ne prétendrai pas que notre solution est nécessairement la meilleure, mais j'espère qu'elle inspirera quelqu'un à faire plus de recherche.



Cependant, la solution la plus simple est parfois la meilleure. Et pour le moment, Google, en tant que plus grand fournisseur de services de messagerie commerciale, peut avoir un impact énorme (et protéger ses clients contre les fuites futures) d'une manière très simple. Et c'est un mystère pour moi pourquoi l'entreprise n'a toujours pas fait cela.






La publicité



Un serveur virtuel de VDSina avec une protection contre les attaques DDoS vous permettra d'héberger n'importe quel projet - tout fonctionnera en douceur et avec une disponibilité élevée! Vous pouvez choisir vous-même les paramètres du serveur à l'aide d'un configurateur pratique.






All Articles