PyPI je službeni softverski repozitorij za aplikacije trećih strana u programskom jeziku Python.
Prije nekoliko dana objavljeno je da repozitorij Python paketa PyPI (Python Package Index) sada nudi novu sigurnu metodu za objavljivanje paketa , eliminirajući potrebu za pohranjivanjem fiksnih lozinki i tokena za pristup API-ju na vanjskim sustavima (npr. GitHub Actions).
Nova metoda autentifikacije naziva se 'Pouzdani izdavači' i osmišljena je kako bi riješila problem objavljivanja zlonamjernih ažuriranja kao rezultat kompromitiranja vanjskih sustava i dolaska unaprijed definiranih lozinki ili tokena u pogrešne ruke.
Počevši od danas, održavatelji PyPI paketa mogu usvojiti novu, sigurniju metodu objavljivanja koja ne zahtijeva dugotrajne lozinke ili API tokene za dijeljenje s vanjskim sustavima.
Spomenuto je da ova nova metoda provjere autentičnosti daje značajne upotrebljive i sigurnosne prednosti u usporedbi s drugim tradicionalnim metodama provjere autentičnosti PyPI:
- iskoristivost: Uz pouzdano objavljivanje, korisnici više ne moraju ručno stvarati API tokene u PyPI-ju te ih kopirati i lijepiti u svog CI providera. Jedini ručni korak je konfiguriranje uređivača u PyPI-ju.
- sigurnost: regularni PyPI API tokeni dugotrajni su, što znači da napadač koji kompromitira izdanje paketa može ga koristiti dok ga njegov legitimni korisnik ne primijeti i ručno opozove. Slično tome, učitavanje s lozinkom znači da napadač može učitati bilo koji projekt povezan s računom. Trusted Publishing izbjegava oba ova problema: Izdani tokeni automatski istječu i ograničeni su samo na pakete u koje su ovlašteni učitavati.
Što se tiče ove nove metode autentifikacije, spominje se da se temelji na standardu OpenID Connect (OIDC), koji koristi vremenski ograničene tokene za autentifikaciju razmijenjene između vanjskih servisa i PyPI direktorija za validaciju operacije objavljivanja paketa, umjesto korištenja tradicionalne prijave/lozinke ili trajnog API-ja generiranog ručno putem tokena za pristup.
"Pouzdana publikacija" je naš izraz za korištenje standarda OpenID Connect (OIDC) za razmjenu kratkotrajnih tokena identiteta između pouzdane usluge treće strane i PyPI-ja. Ova se metoda može koristiti u automatiziranim okruženjima i eliminira potrebu za korištenjem kombinacija korisničkog imena/lozinke ili ručno generiranih API tokena za autentifikaciju s PyPI-jem prilikom objavljivanja.
S druge strane, također se spominje da održavatelji paketa mogu, na strani PyPI-ja, vjerovati identifikatorima dostavljenim vanjskim pružateljima OpenID-a (IdP), koje će vanjska usluga koristiti za traženje neživih tokena PyPI-ja.
Generirani OpenID Connect tokeni potvrđuju odnos između projekta i upravljačkog programa, omogućujući PyPI-ju dodatnu provjeru metapodataka, poput provjere je li objavljeni paket povezan s određenim repozitorijem. Tokeni nisu trajni, vezani su za određene API-je i automatski istječu nakon kratkog vijeka trajanja.
Umjesto toga, održavatelji PyPI-ja mogu konfigurirati PyPI da vjeruje identitetu koji pruža određeni pružatelj identiteta OpenID Connect (IdP). To omogućuje PyPI-ju da provjeri i delegira povjerenje tom identitetu, koji je zatim ovlašten zatražiti ograničeni opseg, kratkotrajne API tokene od PyPI-ja. Ovi API tokeni nikada se ne moraju pohranjivati ili dijeliti, automatski se rotiraju nakon brzog isteka i pružaju provjerljivu vezu između objavljenog paketa i njegovog izvora.
Trenutno je mogućnost korištenja mehanizma Pouzdanih izdavača već implementirana i operativna za kontrolere pokrenute u GitHub Actions. Konačno, i važno, također se spominje da se buduća podrška za Pouzdane izdavače očekuje i za druge vanjske usluge.
Konačno, ako ste zainteresirani saznati više o ovome , detalje možete pronaći na sljedećoj poveznici.