PyPI to oficjalne repozytorium oprogramowania dla aplikacji firm trzecich w języku programowania Python.
Kilka dni temu ogłoszono, że repozytorium pakietów Pythona PyPI (Python Package Index) oferuje teraz nową, bezpieczną metodę publikowania pakietów , eliminującą potrzebę przechowywania stałych haseł i tokenów dostępu API w systemach zewnętrznych (np. GitHub Actions).
Nowa metoda uwierzytelniania nazywa się „Zaufani Wydawcy” i ma na celu rozwiązanie problemu publikowania złośliwych aktualizacji w wyniku naruszenia bezpieczeństwa systemów zewnętrznych lub dostania się zdefiniowanych haseł lub tokenów w niepowołane ręce.
Od dziś opiekunowie pakietów PyPI mogą przyjąć nową, bezpieczniejszą metodę publikowania, która nie wymaga długotrwałych haseł ani tokenów API do udostępniania systemom zewnętrznym.
Wspomniano, że ta nowa metoda uwierzytelniania zapewnia znaczne korzyści w zakresie użyteczności i bezpieczeństwa w porównaniu z innymi tradycyjnymi metodami uwierzytelniania PyPI:
- Użyteczność: Dzięki zaufanemu publikowaniu użytkownicy nie muszą już ręcznie tworzyć tokenów API w PyPI oraz kopiować i wklejać ich do swojego dostawcy CI. Jedynym ręcznym krokiem jest skonfigurowanie edytora w PyPI.
- bezpieczeństwo: zwykłe tokeny API PyPI są długowieczne, co oznacza, że atakujący, który skompromituje wydanie pakietu, może go używać, dopóki jego uprawniony użytkownik nie zauważy i ręcznie go nie odwoła. Podobnie przesyłanie z hasłem oznacza, że osoba atakująca może przesłać dowolny projekt powiązany z kontem. Trusted Publishing pozwala uniknąć obu tych problemów: Wydane tokeny wygasają automatycznie i są ograniczone tylko do pakietów, do których są upoważnione do przesłania.
Jeśli chodzi o tę nową metodę uwierzytelniania, wspomniano, że opiera się ona na standardzie OpenID Connect ( OIDC), który wykorzystuje ograniczone czasowo tokeny uwierzytelniania wymieniane między usługami zewnętrznymi a katalogiem PyPI w celu weryfikacji operacji publikacji pakietu, zamiast stosować tradycyjne logowanie/hasło lub trwały interfejs API generowany ręcznie za pomocą tokenów dostępu.
„Zaufana publikacja” to nasze określenie na używanie standardu OpenID Connect (OIDC) do wymiany krótkotrwałych tokenów tożsamości między zaufaną usługą strony trzeciej a PyPI. Ta metoda może być używana w zautomatyzowanych środowiskach i eliminuje potrzebę używania kombinacji nazwy użytkownika i hasła lub ręcznie generowanych tokenów API do uwierzytelniania za pomocą PyPI podczas publikowania.
Z drugiej strony wspomniano również, że opiekunowie pakietów mogą, po stronie PyPI, zaufać identyfikatorom dostarczonym zewnętrznym dostawcom OpenID (IdP), których usługa zewnętrzna użyje do żądania nieaktywnych tokenów PyPI.
Wygenerowane tokeny OpenID Connect potwierdzają relację między projektem a sterownikiem, umożliwiając PyPI przeprowadzenie dodatkowej weryfikacji metadanych, na przykład sprawdzenie, czy opublikowany pakiet jest powiązany z konkretnym repozytorium. Tokeny nie są trwałe, są powiązane z określonymi interfejsami API i automatycznie wygasają po krótkim okresie ważności.
Zamiast tego opiekunowie PyPI mogą skonfigurować PyPI tak, aby ufał tożsamości dostarczonej przez danego dostawcę tożsamości OpenID Connect (IdP). Dzięki temu PyPI może weryfikować i delegować zaufanie do tej tożsamości, która jest następnie upoważniona do żądania od PyPI tokenów API o ograniczonym zakresie i krótkotrwałości. Te tokeny API nigdy nie muszą być przechowywane ani udostępniane, automatycznie obracają się po szybkim wygaśnięciu i zapewniają weryfikowalny link między opublikowanym pakietem a jego źródłem.
Obecnie możliwość korzystania z mechanizmu Trusted Publishers jest już zaimplementowana i działa dla kontrolerów zainicjowanych w GitHub Actions. Na koniec, co ważne, wspomniano również, że w przyszłości spodziewane jest wsparcie dla Trusted Publishers dla innych usług zewnętrznych.
Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat , możesz znaleźć szczegóły pod poniższym linkiem.