Udviklerne af Python-pakkerepositoriet PyPI har offentliggjort en plan for indførelsen af obligatorisk to-faktor-autentifikation for pakker, der klassificeres som kritiske. Betydningen defineres ud fra antallet af downloads, og ændringen vil blive anvendt på konti tilknyttet og ejere af projekter relateret til 1% af pakkerne, der topper listen over downloads de sidste 6 måneder. I betragtning af, at PyPI-repositoriet i øjeblikket indeholder mere end 350.000 pakker, vil to-faktor-autentifikation blive brugt på cirka 3.500 pakker. For at kontrollere, om en konto er på listen, er der oprettet en speciel side. Den præcise dato for indførelsen af den obligatoriske to-faktor-autentifikation er endnu ikke fastlagt, men det forventes at finde sted i de kommende måneder.
I modsætning til overgang til to-faktor-autentifikation for RubyGems, NPM og GitHub, vil PyPI oprindeligt implementere en model, der anbefaler brugen af hardware tokens med adgangsnøgler. Årsagen til den anbefalede brug af tokens og WebAuthn-protokollen nævnes som en højere sikkerhed i forhold til generering af engangskoder (muligheden for at bruge TOTP i stedet for tokens vil være tilgængelig som en valgmulighed).
Tokens vil kunne fås gratis – Google har sponsoreret initiativet og har afsat 4.000 Titan-nøgler til projektet. Hver vedligeholder kan ansøge om at modtage to gratis tokens med USB-C eller USB-A interface. Den anden token sendes som en backup i tilfælde af brud eller tab af den primære, for at minimere risikoen for at miste adgangen til repositoriet og undgå, at udviklere skal gennemgå en kompleks procedure for at genoprette adgangen.
Desværre kan tokens kun sendes til Østrig, Belgien, Canada, Frankrig, Tyskland, Italien, Japan, Spanien, Schweiz, Storbritannien og USA. Vedligeholdere fra andre lande kan selv købe tokens, der er kompatible med FIDO U2F-specifikationen, såsom Yubikey og Thetis tokens. Alternativt er der også mulighed for at anvende apps til autentificering baseret på engangskoder, der understøtter TOTP-protokollen, såsom Authy, Google Authenticator og FreeOTP.
Initiativet gik ikke uden hændelser. Forfatteren af pakken Atomicwrites, som har 6 millioner downloads om måneden og 38 millioner på seks måneder, ønskede ikke at overgå til tofaktorgodkendelse og forsøgte at nulstille downloadtælleren for at få sin pakke ud af listen over kritisk vigtige. For at nulstille, slettede han først pakken og uploadede derefter en ny version. Det var forventet, at en sådan manipulation kun ville nulstille tælleren, men til udviklerens overraskelse blev alle gamle versioner også fjernet fra repoet, hvilket førte til problemer for de projekter, der var afhængige af biblioteket, og som nogle udviklere sammenlignede med hændelsen forårsaget af sletningen af pakken left-pad i NPM.
Problemet blev forværret af, at efter sletningen kunne forfatteren af atomicwrites ikke uploade de gamle versioner, som kun blev gendannet den næste dag efter indgreb fra administratorerne på PyPI. Efter det, der skete, besluttede forfatteren af pakken at stoppe udviklingen af atomicwrites og klassificere pakken som forældet. Som årsag angives det, at han udvikler projektet som en hobby i sin fritid, og at de ekstra krav, der komplicerer arbejdet, ikke står mål med den tid, der bruges på gratis vedligeholdelse af en så populær pakke. Forfatteren af atomicwrites påstår, at han ville foretrække bare at skrive kode for sjov, mens bekymringer om ekstra beskyttelse mod overtagelse af ondsindede kan påtages af dem, der betaler for det.
Biblioteket atomicwrites indeholder omkring 200 linjer kode og tilbyder funktioner til atomar skrivning af filer. Som erstatning kan man bruge de indbyggede kald os.replace og os.rename (operationen involverer at skrive til en fil med et midlertidigt navn og omdøbe til målfilen, når den er klar).
Kilde: opennet.ru
