Les dĂ©veloppeurs du dĂ©pĂŽt de paquets Python PyPI ont publiĂ© un plan de migration vers une authentification Ă deux facteurs obligatoire pour les paquets classĂ©s comme critiques. La criticitĂ© est dĂ©terminĂ©e par le nombre de tĂ©lĂ©chargements et ce changement sera appliquĂ© aux comptes des mainteneurs et des propriĂ©taires de projets liĂ©s Ă 1 % des paquets les plus tĂ©lĂ©chargĂ©s au cours des 6 derniers mois. Ătant donnĂ© que le dĂ©pĂŽt PyPI comprend actuellement plus de 350 000 paquets, l'authentification Ă deux facteurs sera appliquĂ©e Ă environ 3 500 paquets. Une page spĂ©ciale a Ă©tĂ© mise en place pour vĂ©rifier si votre compte est concernĂ©. La date exacte de l'activation de l'authentification Ă deux facteurs obligatoire n'a pas encore Ă©tĂ© dĂ©terminĂ©e, mais il est prĂ©vu que cela se produise dans les mois Ă venir.
Contrairement Ă la transition vers l'authentification Ă deux facteurs des projets RubyGems, NPM et GitHub, PyPI mettra initialement en Ćuvre un schĂ©ma qui privilĂ©gie l'utilisation de jetons matĂ©riels avec des clĂ©s d'accĂšs. La recommandation d'utilisation des jetons et du protocole WebAuthn est justifiĂ©e par une sĂ©curitĂ© supĂ©rieure par rapport Ă la gĂ©nĂ©ration de mots de passe Ă usage unique (la possibilitĂ© d'utiliser TOTP au lieu de jetons sera disponible en option).
Les jetons pourront ĂȘtre obtenus gratuitement â Google a Ă©tĂ© le sponsor de l'initiative et a allouĂ© 4 000 clĂ©s Titan au projet. Chaque mainteneur peut demander deux jetons gratuits avec une interface USB-C ou USB-A. Le deuxiĂšme jeton est envoyĂ© en tant que secours en cas de panne ou de perte du principal, afin de minimiser le risque de perte d'accĂšs au dĂ©pĂŽt et de libĂ©rer les dĂ©veloppeurs de la nĂ©cessitĂ© de passer par un processus compliquĂ© de rĂ©cupĂ©ration d'accĂšs.
Malheureusement, les jetons ne peuvent ĂȘtre expĂ©diĂ©s qu'en Autriche, en Belgique, au Canada, en France, en Allemagne, en Italie, au Japon, en Espagne, en Suisse, au Royaume-Uni et aux Ătats-Unis. Les mainteneurs d'autres pays peuvent acheter eux-mĂȘmes des jetons compatibles avec la spĂ©cification FIDO U2F, tels que les jetons Yubikey et Thetis. En alternative, il est Ă©galement prĂ©vu d'utiliser des applications d'authentification basĂ©es sur des mots de passe Ă usage unique supportant le protocole TOTP, comme Authy, Google Authenticator et FreeOTP.
L'initiative n'a pas été sans incident. L'auteur du paquet Atomicwrites, qui compte 6 millions de téléchargements par mois et 38 millions en 6 mois, a refusé de passer à l'authentification à deux facteurs et a tenté de faire supprimer son paquet de la liste des paquets critiques en réinitialisant le compteur de téléchargements. Pour ce faire, il a d'abord supprimé le paquet, puis a téléchargé une nouvelle version. On s'attendait à ce que cette manipulation ne réinitialise que le compteur, mais, à la surprise du développeur, toutes les anciennes versions ont également été supprimées du dépÎt, ce qui a entraßné des problÚmes pour les projets dépendants de la bibliothÚque, que certains développeurs ont comparés à l'incident dû à la suppression du paquet left-pad dans NPM.
Le problĂšme a Ă©tĂ© aggravĂ© par le fait qu'aprĂšs la suppression, l'auteur d'atomicwrites n'a pas pu tĂ©lĂ©charger les anciennes versions, qui n'ont pu ĂȘtre restaurĂ©es que le lendemain, aprĂšs l'intervention des administrateurs de PyPI. AprĂšs ce qui s'est passĂ©, l'auteur du paquet a dĂ©cidĂ© d'arrĂȘter le dĂ©veloppement d'atomicwrites et de mettre le paquet dans la catĂ©gorie obsolĂšte. Comme raison, il est mentionnĂ© qu'il dĂ©veloppe le projet comme un hobby pendant son temps libre et que l'Ă©mergence de nouvelles exigences rendant le travail difficile ne justifie pas le temps passĂ© Ă maintenir gratuitement un paquet aussi populaire. L'auteur d'atomicwrites affirme qu'il prĂ©fĂ©rerait simplement Ă©crire du code pour le plaisir, et que la responsabilitĂ© d'une protection supplĂ©mentaire contre les attaques malveillantes peut ĂȘtre assumĂ©e par ceux qui sont prĂȘts Ă payer pour cela.
La bibliothĂšque atomicwrites contient environ 200 lignes de code et propose des fonctions pour l'Ă©criture atomique de fichiers. Les appels standards os.replace et os.rename peuvent ĂȘtre utilisĂ©s comme alternatives (l'opĂ©ration consiste Ă Ă©crire dans un fichier temporaire et Ă le renommer en fichier cible une fois terminĂ©).
Source : opennet.ru
