PyPI este depozitul oficial de software pentru aplicații terțe în limbajul de programare Python.
Acum câteva zile, s-a anunțat că depozitul de pachete Python PyPI (Python Package Index) oferă acum o nouă metodă securizată pentru publicarea pachetelor , eliminând necesitatea stocării parolelor fixe și a token-urilor de acces API pe sisteme externe (de exemplu, GitHub Actions).
Noua metodă de autentificare se numește „Editori de încredere” și este concepută pentru a rezolva problema publicării actualizărilor rău intenționate ca urmare a compromiterii sistemelor externe și a parolelor sau token-urilor predefinite care ajung în mâini greșite.
Începând de astăzi, întreținerii pachetelor PyPI pot adopta o nouă metodă de publicare, mai sigură, care nu necesită parole cu durată lungă de viață sau jetoane API pentru a le partaja cu sisteme externe.
Se menționează că această nouă metodă de autentificare conferă avantaje semnificative de utilizare și securitate în comparație cu celelalte metode tradiționale de autentificare PyPI:
- gradul de utilizare: Cu publicarea de încredere, utilizatorii nu mai trebuie să creeze manual jetoane API în PyPI și să le copieze și să le lipească în furnizorul lor CI. Singurul pas manual este configurarea editorului în PyPI.
- de securitate: Tokenurile obișnuite PyPI API sunt de lungă durată, ceea ce înseamnă că un atacator care compromite o lansare a unui pachet îl poate folosi până când utilizatorul său legitim îl observă și îl revocă manual. În mod similar, încărcarea cu o parolă înseamnă că un atacator poate încărca orice proiect asociat contului. Publicarea de încredere evită ambele aceste probleme: jetoanele emise expiră automat și sunt limitate doar la pachetele în care sunt autorizați să le încarce.
În ceea ce privește această nouă metodă de autentificare, se menționează că se bazează pe standardul OpenID Connect (OIDC), care utilizează token-uri de autentificare cu limită de timp schimbate între servicii externe și directorul PyPI pentru a valida o operațiune de publicare a unui pachet, în loc să utilizeze un nume de utilizator/parolă tradițional sau o API persistentă generată manual prin token-uri de acces.
„Publicație de încredere” este termenul nostru pentru utilizarea standardului OpenID Connect (OIDC) pentru a schimba jetoane de identitate de scurtă durată între un serviciu terț de încredere și PyPI. Această metodă poate fi utilizată în medii automatizate și elimină necesitatea de a utiliza combinații nume de utilizator/parolă sau jetoane API generate manual pentru a se autentifica cu PyPI la publicare.
Pe de altă parte, se mai menționează că întreținătorii de pachete pot, din partea PyPI, să aibă încredere în identificatorii furnizați furnizorilor externi OpenID (IdP), pe care serviciul extern îi va folosi pentru a solicita token-uri non-live ale PyPI.
Jetoanele OpenID Connect generate confirmă relația dintre proiect și driver, permițând PyPI să efectueze verificări suplimentare ale metadatelor, cum ar fi verificarea faptului că pachetul publicat este asociat cu un anumit repository. Jetoanele nu sunt persistente, sunt legate de API-uri specifice și expiră automat după o scurtă durată de viață.
În schimb, întreținerii PyPI pot configura PyPI să aibă încredere într-o identitate furnizată de un anumit furnizor de identitate OpenID Connect (IdP). Acest lucru îi permite lui PyPI să verifice și să delege încrederea acelei identități, care este apoi autorizată să solicite de la PyPI token-uri API cu domeniu limitat și de scurtă durată. Aceste jetoane API nu trebuie să fie stocate sau partajate, se rotesc automat la expirarea rapidă și oferă o legătură verificabilă între un pachet publicat și sursa acestuia.
În prezent, posibilitatea de a utiliza mecanismul Trusted Publishers este deja implementată și operațională pentru controlerele inițiate în GitHub Actions. În cele din urmă, și important, se menționează, de asemenea, că este așteptat suport viitor pentru Trusted Publishers și pentru alte servicii externe.
În cele din urmă, dacă sunteți interesați să aflați mai multe despre acest subiect , puteți găsi detalii la următorul link.