PyPI ir oficiālā programmatūras repozitorijs trešo pušu lietojumprogrammām Python programmēšanas valodā.
Pirms dažām dienām tika paziņots, ka Python pakotņu repozitorijs PyPI (Python Package Index) tagad piedāvā jaunu drošu metodi pakotņu publicēšanai , novēršot nepieciešamību glabāt fiksētas paroles un API piekļuves žetonus ārējās sistēmās (piemēram, GitHub Actions).
Jaunā autentifikācijas metode tiek saukta par “Uzticamiem izdevējiem” , un tā ir izstrādāta, lai atrisinātu ļaunprātīgu atjauninājumu publicēšanas problēmu, ja kompromitētas ārējās sistēmas un iepriekš definētas paroles vai žetoni nonāk nepareizās rokās.
Sākot ar šodienu, PyPI pakotņu uzturētāji var pieņemt jaunu, drošāku publicēšanas metodi, kuras kopīgošanai ar ārējām sistēmām nav nepieciešamas ilgstošas paroles vai API pilnvaras.
Tiek minēts, ka šī jaunā autentifikācijas metode sniedz ievērojamas lietojamības un drošības priekšrocības salīdzinājumā ar citām tradicionālajām PyPI autentifikācijas metodēm:
- Izmantojamība: Izmantojot uzticamu publicēšanu, lietotājiem vairs nav manuāli jāizveido API marķieri PyPI un jākopē un jāielīmē tie savā CI nodrošinātājā. Vienīgais manuālais solis ir redaktora konfigurēšana PyPI.
- Drošība: parastie PyPI API marķieri ir ilgmūžīgi, kas nozīmē, ka uzbrucējs, kurš apdraud pakotnes izlaidumu, var to izmantot, līdz tā likumīgais lietotājs to pamana un manuāli atsauc. Tāpat augšupielāde ar paroli nozīmē, ka uzbrucējs var augšupielādēt jebkuru ar kontu saistīto projektu. Izmantojot Trusted Publishing, tiek novērstas abas šīs problēmas: izsniegto marķieru derīguma termiņš beidzas automātiski, un tie attiecas tikai uz tām pakotnēm, kurās tie ir pilnvaroti augšupielādēt.
Attiecībā uz šo jauno autentifikācijas metodi tiek minēts, ka tā ir balstīta uz OpenID Connect ( OIDC) standartu, kas pakotnes publicēšanas darbības validēšanai izmanto laika ziņā ierobežotus autentifikācijas tokenus, ar kuriem apmainās ārēji pakalpojumi un PyPI direktoriju, nevis tradicionālu pieteikšanās vārdu/paroli vai pastāvīgu API, ko manuāli ģenerē piekļuves tokeni.
“Uzticama publikācija” ir mūsu termins OpenID Connect (OIDC) standarta lietošanai, lai apmainītos ar īslaicīgiem identitātes marķieriem starp uzticamu trešās puses pakalpojumu un PyPI. Šo metodi var izmantot automatizētās vidēs, un tādējādi publicēšanas laikā nav jāizmanto lietotājvārda/paroles kombinācijas vai manuāli ģenerētas API pilnvaras, lai autentificētos ar PyPI.
No otras puses, ir arī minēts, ka pakešu uzturētāji PyPI pusē var uzticēties ārējiem OpenID nodrošinātājiem (IdP) sniegtajiem identifikatoriem, kurus ārējais pakalpojums izmantos, lai pieprasītu PyPI neaktīvus marķierus.
Ģenerētie OpenID Connect tokeni apstiprina saistību starp projektu un draiveri, ļaujot PyPI veikt papildu metadatu pārbaudi, piemēram, pārbaudīt, vai publicētā pakotne ir saistīta ar konkrētu repozitoriju. Tokeni nav pastāvīgi, ir piesaistīti konkrētiem API un automātiski zaudē spēku pēc īsa laika perioda.
Tā vietā PyPI uzturētāji var konfigurēt PyPI, lai uzticētos identitātei, ko nodrošina noteikts OpenID Connect identitātes nodrošinātājs (IdP). Tas ļauj PyPI pārbaudīt un deleģēt uzticību šai identitātei, kas pēc tam ir pilnvarota pieprasīt ierobežotas darbības jomas īslaicīgas API pilnvaras no PyPI. Šie API marķieri nekad nav jāuzglabā vai jākopīgo, tie automātiski pagriežas pēc ātras derīguma termiņa beigām un nodrošina pārbaudāmu saiti starp publicēto pakotni un tās avotu.
Pašlaik iespēja izmantot uzticamo izdevēju mehānismu jau ir ieviesta un darbojas kontrolleriem, kas inicializēti GitHub darbībās. Visbeidzot, un tas ir svarīgi, tiek arī minēts, ka nākotnē ir paredzēts atbalsts uzticamajiem izdevējiem arī citiem ārējiem pakalpojumiem.
Visbeidzot, ja vēlaties uzzināt vairāk par šo tēmu , sīkāku informāciju varat atrast , izmantojot šo saiti.