Python-pakettide PyPI arendajad avaldasid plaani, et teha kaksifaktori autentimine kohustuslik kriitilistele pakettidele. Kriitilise paketi määratlemine põhineb allalaadimiste arvul ja muudatus rakendatakse projektide hooldajate ja omanike kontodele, mis on seotud 1% enim allalaaditud paketist viimase 6 kuu jooksul. Arvestades, et hetkel sisaldab PyPI hoidlasse üle 350 000 paketi, rakendatakse kaksifaktori autentimine ligikaudu 3500 paketile. Konto kuuluvuse kontrollimiseks on loodud spetsiaalne leht. Kohustusliku kaksifaktori autentimise täpne kuupäev ei ole veel määratud, eeldatakse, et see juhtub järgmiste kuude jooksul.
Erinevalt RubyGems, NPM ja GitHubi kahefaktorilisest autentimisest, rakendatakse PyPI-s algselt skeemi, mis soovitab kasutada riistvara tokenit koos juurdepääsuvõtmetega. Soovitatud tokenite ja WebAuthni protokolli kasutamise põhjuseks on kõrgem turvataseme võrreldes ühekordsete paroolide genereerimisega (TOTP kasutamise võimalus tokenite asemel tuleb saadaval valikuna).
Tokenid saab olema tasuta — Google on algatuse sponsor ja eraldanud projektile 4000 Titan võtme. Iga saatja saab taotleda tasuta kahe USB-C või USB-A liidese tokeni saamist. Teine token saadetakse varuena juhuks, kui põhiline on katki või kadunud, et minimeerida juurdepääsu kadumise riski ja vabastada arendajad keerulisest taastamisprotseduurist.
Kahjuks saab žetone saata ainult Austriasse, Belgiasse, Kanadasse, Prantsusmaale, Saksamaale, Itaaliasse, Jaapanisse, Hispaaniasse, Šveitsi, Ühendkuningriiki ja Ameerika Ühendriikidesse. Teistest riikidest pärit saatjad saavad ise osta FIDO U2F spetsifikatsiooniga ühilduvaid žetone, näiteks sobivad Yubikey ja Thetis žetoonid. Alternatiivina on võimalus kasutada žetoni asemel ka ühekordsete paroolide autentimisrakendusi, mis toetavad TOTP protokolli, näiteks Authy, Google Authenticator ja FreeOTP.
Algatus ei möödunud ilma intsidentideta. Atomicwrites'i paketi autor, millel on kuus miljonit allalaadimist kuus ja 38 miljonit kuue kuu jooksul, ei soovinud kahefaasilisele autentimisele üle minna ning püüdis oma paketi kriitiliselt olulisest nimekirjast eemaldamiseks allalaadimise arvu nullida. Nullimiseks kustutas ta kõigepealt paketi ja seejärel laadis üles uue versiooni. Ootati, et selline manipulatsioon ainult nullib arvu, kuid arendaja üllatuseks eemaldati repole ka kõik vanad versioonid, mis tõi kaasa probleeme raamatukogust sõltuvates projektides, mida mõned arendajad võrdsustasid NPM-i paketi left-pad kustutamisest tingitud intsidendiga.
Probleem süvenes sellega, et pärast kustutamist ei suutnud atomicwrites autor vanu versioone laadida, mis õnnestus taastada alles järgmisel päeval pärast PyPI administraatorite sekkumist. Pärast juhtunut otsustas paketi autor lõpetada atomicwrites arendamise ja klassifitseerida paketi nagu aegunud. Põhjuseks toodi, et ta arendab projekti hobina oma vabal ajal ning täiendavate nõudmiste ilmumine, mis muudavad töö keerulisemaks, ei õigusta aega, mida kulutatakse sellise populaarsuse tasemega tasuta paketi hooldamisele. Atomicwrites autor väidab, et eelistaks lihtsalt koodi kirjutada lõbuks, ning mure lisakaitsete pärast pahatahtlike rünnakute eest peaks olema tasustatud, kui keegi selle eest maksab.
Teek atomicwrites sisaldab umbes 200 koodirida ja pakub funktsioone failide aatomkirjutamiseks. Asenduseks võib kasutada standardkõnesid os.replace ja os.rename (operatsioon seisneb ajutise nimega faili kirjutamises ja sihtfailiks ümbernimetamises pärast valmimist).
Allikas: opennet.ru
