Ang PyPI ay ang opisyal na imbakan ng software para sa mga third-party na application sa Python programming language.
Ilang araw na ang nakalilipas ang balitang iyon ang Python PyPI package repository (Python Package Index) na nagbibigay ng kakayahang gumamit ng bagong secure na paraan ng pag-publish ng mga pakete, na nag-aalis ng pangangailangang mag-imbak ng mga hard password at API access token sa mga external na system (halimbawa, sa GitHub Actions).
Ang bagong paraan ng pagpapatunay ay may pangalan'Pinagkakatiwalaang Publisher' at idinisenyo upang lutasin ang problema ng mga nakakahamak na update na inilabas bilang resulta ng mga nakompromisong panlabas na system at mga paunang natukoy na password o mga token na nahuhulog sa mga maling kamay.
Simula ngayon, ang mga tagapanatili ng package ng PyPI ay maaaring gumamit ng bago, mas secure na paraan ng pag-publish na hindi nangangailangan ng mahabang buhay na mga password o mga token ng API upang ibahagi sa mga external na system.
Nabanggit na ang bagong paraan ng pagpapatunay na ito ay nagbibigay ng makabuluhang kakayahang magamit at mga pakinabang sa seguridad kumpara sa iba pang tradisyonal na pamamaraan ng pagpapatunay ng PyPI:
- Pagkakagamit: Sa pinagkakatiwalaang pag-publish, hindi na kailangan ng mga user na manual na gumawa ng mga token ng API sa PyPI at kopyahin at i-paste ang mga ito sa kanilang CI provider. Ang tanging manu-manong hakbang ay i-configure ang editor sa PyPI.
- Kaligtasan: ang mga regular na token ng PyPI API ay matagal nang nabubuhay, na nangangahulugan na ang isang umaatake na nakompromiso sa isang paglabas ng package ay maaaring gamitin ito hanggang sa mapansin ito ng lehitimong user at manu-manong bawiin ito. Katulad nito, ang pag-upload gamit ang isang password ay nangangahulugan na ang isang umaatake ay maaaring mag-upload ng anumang proyekto na nauugnay sa account. Iniiwasan ng Trusted Publishing ang parehong problemang ito: Awtomatikong mag-e-expire ang mga ibinigay na token at limitado lamang sa mga package kung saan sila awtorisadong mag-upload.
Tungkol sa bagong paraan ng pagpapatunay na ito, nabanggit na ay batay sa pamantayan ng OpenID Connect (OIDC), na gumagamit ng mga token sa pagpapatunay na limitado sa oras na ipinagpapalit sa pagitan ng mga panlabas na serbisyo at ng direktoryo ng PyPI upang mapatunayan ang isang pagpapatakbo ng pag-publish ng package, sa halip na gumamit ng tradisyonal na pag-login/password o isang patuloy na API na manu-manong binuo ng mga token ng pag-access.
Ang "Trusted Publication" ay ang aming termino para sa paggamit ng OpenID Connect (OIDC) na pamantayan upang makipagpalitan ng panandaliang mga token ng pagkakakilanlan sa pagitan ng isang pinagkakatiwalaang serbisyo ng third-party at PyPI. Maaaring gamitin ang paraang ito sa mga automated na kapaligiran at inaalis ang pangangailangang gumamit ng mga kumbinasyon ng username/password o manu-manong nabuong mga token ng API upang ma-authenticate gamit ang PyPI kapag nagpa-publish.
Sa kabilang banda, binanggit din na ang mga package maintainer ay maaaring, sa panig ng PyPI, ay magtiwala sa mga identifier na ibinigay sa mga external na OpenID Provider (IdP), na gagamitin ng external na serbisyo upang humiling ng mga non-live na token ng PyPI.
Kinukumpirma ng nabuong mga token ng OpenID Connect ang kaugnayan sa pagitan ng proyekto at ng controller, na nagpapahintulot sa PyPI na magsagawa ng karagdagang pag-verify ng metadata, tulad ng pag-verify na ang na-publish na package ay nauugnay sa isang partikular na repositoryo. Ang mga token ay hindi nagpapatuloy, ang mga ito ay nakatali sa mga partikular na API, at sila ay awtomatikong mag-e-expire pagkatapos ng maikling buhay.
Sa halip, maaaring i-configure ng mga tagapangasiwa ng PyPI ang PyPI upang magtiwala sa isang pagkakakilanlan na ibinigay ng isang ibinigay na tagapagbigay ng pagkakakilanlan ng OpenID Connect (IdP). Nagbibigay-daan ito sa PyPI na i-verify at italaga ang tiwala sa pagkakakilanlan na iyon, na pagkatapos ay pinahihintulutan na humiling ng limitadong saklaw, panandaliang mga token ng API mula sa PyPI. Ang mga token ng API na ito ay hindi kailanman kailangang i-store o ibahagi, awtomatikong i-rotate sa mabilis na pag-expire, at magbigay ng nabe-verify na link sa pagitan ng isang naka-publish na package at pinagmulan nito.
Ngayon ang kakayahang gamitin ang mekanismo "Mga Pinagkakatiwalaang Publisher" Ito ay ipinatupad at tumatakbo na. para sa mga controller na nagsimula sa GitHub Actions. Panghuli ngunit hindi bababa sa, nabanggit din na ang pagiging tugma sa Mga Pinagkakatiwalaang Publisher para sa iba pang mga panlabas na serbisyo ay inaasahan sa hinaharap.
Sa wakas kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye Sa sumusunod na link.