Juniper retire enfin son algorithme made in NSA… sans s’expliquer

Quelques mois après la découverte d’une backdoor dans l’OS de ses équipements Netscreen, Juniper livre une mise à jour expurgeant la technologie incriminée, affaiblie par la NSA. Mais reste muet sur l’origine de cette troublante affaire.

Service minimum ? Cela y ressemble fort. Juniper annonce certes avoir retiré de son système d’exploitation ScreenOS le générateur de nombres aléatoires à l’origine d’une backdoor qui avait suscité bien des questions sur le fournisseur américain, la technologie en question étant connue pour avoir été affaiblie par la NSA. Mais l’équipementier ne s’explique pas sur les raisons qui justifient l’emploi de ce composant pendant des années. Rappelons que le générateur de nombre aléatoires joue un rôle clef dans le chiffrement du trafic transitant sur les systèmes qu’anime l’OS en question.

Dans un très bref message posté sur ses forums, l’équipementier explique que la dernière version de ScreenOS (6.3.0r22), un OS présent sur des pare-feu et passerelles VPN de marque Netscreen, est donc délestée de DUAL_EC_DRBG, l’algorithme incriminé, pour se baser sur le système de génération de nombres aléatoires de Junos l’OS principal de Juniper Networks.

Un générateur contrôlé par la NSA

Standardisé par l’Institut américain des standards et technologies (le NIST) en 2007, Dual_EC_DRBG doit beaucoup à son parrain, la NSA américaine. Dès la fin 2007, deux chercheurs de Microsoft alertent la communauté sur la « présence possible d’une backdoor » au sein du générateur. Ils montrent que l’algorithme peut être détourné par un assaillant, pour créer des nombres qui ne sont plus de tout aléatoires. Il suffit pour cela que l’attaquant en question parvienne à maîtriser une des constantes (Q), utilisée en entrée par l’algorithme. En 2013, les documents exfiltrés par le lanceur d’alerte Edward Snowden relancent l’affaire, en établissant que la NSA a volontairement affaibli le standard, y introduisant une backdoor. Tout simplement une valeur par défaut de Q choisie par l’agence lui ouvrant les portes d’un déchiffrement à la volée des communications ‘sécurisées’ par le générateur Dual_EC_DRBG.

Officiellement, Juniper se dit alors protégé, arguant du fait qu’il utilise deux générateurs de nombres aléatoires, l’un derrière l’autre (Dual_EC_DRBG puis ANSI X.9.31), dans ScreenOS. Donc que les failles du premier seraient sans danger, puisque le second suffirait à les gommer. Sauf que, comme le montreront des chercheurs en sécurité en janvier dernier, l’édifice imaginé par la société est bancal depuis 2008 – soit quatre ans après le rachat de Netscreen par Juniper -, Dual_EC_DRBG ayant alors été modifié pour créer des nombres trop longs pour bénéficier de la sécurité offerte théoriquement par le second générateur. Plus troublant encore, selon Stephen Checkoway, professeur d’informatique à l’Université de l’Illinois à Chicago, Juniper a ajouté le générateur contrôlé par la NSA après avoir implémenté ANSI X.9.31 ! Et non avant, ce qui aurait pu montrer la volonté de l’équipementier de sécuriser Dual_EC_DRBG, qu’il savait imparfait, via l’ajout d’un second générateur.

La question qui fâche pour Juniper

Dual_EC_DRBG a par ailleurs été greffé à ScreenOS après les premières alertes mettant en cause sa sécurité, alertes datant d’une conférence qui s’est tenue en août 2007. On peut dès lors se demander pourquoi Juniper a ajouté à ScreenOS un générateur de nombres aléatoires qu’il savait imparfait, alors que son firmware utilisait déjà un autre générateur, réputé plus sûr. Une question pour l’instant sans réponse.

Rappelons que, fin décembre 2015, les travaux de plusieurs chercheurs – notamment H.D. Moore de Rapid7, Ralf Philipp Weinmann et Willem Pinckaers – avaient montré que cette faille dans ScreenOS avait été réexploitée, à partir de 2012, par une organisation inconnue. Concrétement, cette organisation a utilisé la backdoor présente dans le firmware des équipements Netscreen pour modifier la valeur de Q, ce qui lui a permis de récupérer la vulnérabilité à son profit. Le tout sans effort démesuré, comme l’avait souligné fin décembre Matthew Green, un cryptographe de l’université John Hopkins. C’est d’ailleurs cette modification, découverte à l’occasion d’un audit du code mené par Juniper, qui est à l’origine de l’affaire, l’équipementier ayant pris la décision de donner l’alerte suite à la découverte de cette altération du code de ScreenOS.

Juniper avait livré en urgence un patch replaçant Q à sa valeur d’avant la modification de 2012. Face au tollé, l’équipementier avait annoncé qu’il irait plus loin en remplaçant totalement Dual_EC_DRBG, mais aussi ANSI X.9.31, par le générateur de nombres aléatoires de JuneOS, une technologie appelée HMAC-DRBG. C’est ce remplacement que propose précisément cette version 6.3.0r22 de ScreenOS.

A lire aussi :

Backdoor et NSA : de lourds soupçons pèsent sur Juniper

Juniper : une backdoor made in NSA… récupérée par une organisation inconnue

Crédit photo : Carsten Reisinger / Shutterstock