Тепер PyPI дозволяє публікувати пакети без прив’язки до паролів і токенів

PyPI

PyPI є офіційним репозиторієм програмного забезпечення сторонніх програм на мові програмування Python.

Кілька днів тому було оголошено, що репозиторій пакетів Python PyPI (Python Package Index) тепер пропонує новий безпечний метод публікації пакетів , що усуває необхідність зберігати фіксовані паролі та токени доступу API на зовнішніх системах (наприклад, GitHub Actions).

Новий метод автентифікації називається «Довірені видавці» і розроблений для вирішення проблеми публікації шкідливих оновлень внаслідок компрометації зовнішніх систем та потрапляння заздалегідь визначених паролів або токенів у чужі руки.

Починаючи з сьогоднішнього дня, розробники пакетів PyPI можуть прийняти новий, більш безпечний метод публікації, який не потребує довготривалих паролів або маркерів API для обміну із зовнішніми системами.

Зазначається, що цей новий метод автентифікації надає значні переваги в зручності та безпеці порівняно з іншими традиційними методами автентифікації PyPI:

  • Юзабіліті: Завдяки довіреній публікації користувачам більше не потрібно вручну створювати маркери API в PyPI та копіювати та вставляти їх у свій постачальник CI. Єдиний крок вручну — налаштувати редактор у PyPI.
  • Безпека: звичайні токени API PyPI довгоживуть, а це означає, що зловмисник, який скомпрометував випуск пакета, може використовувати його, доки легітимний користувач не помітить і не відкличе його вручну. Подібним чином завантаження з паролем означає, що зловмисник може завантажити будь-який проект, пов’язаний з обліковим записом. Довірена публікація дозволяє уникнути обох цих проблем: термін дії виданих маркерів закінчується автоматично та обмежується лише пакетами, у які вони авторизовані для завантаження.

Щодо цього нового методу автентифікації, зазначається, що він базується на стандарті OpenID Connect (OIDC), який використовує обмежені в часі токени автентифікації, що обмінюються між зовнішніми службами та каталогом PyPI, для перевірки операції публікації пакета, замість використання традиційного імені користувача/пароля або постійного API, згенерованого вручну за допомогою токенів доступу.

«Надійна публікація» — це наш термін для використання стандарту OpenID Connect (OIDC) для обміну короткочасними маркерами ідентифікації між довіреною сторонньою службою та PyPI. Цей метод можна використовувати в автоматизованих середовищах і позбавляє від необхідності використовувати комбінації імені користувача та пароля або згенеровані вручну маркери API для автентифікації за допомогою PyPI під час публікації.

З іншого боку, також згадується, що розробники пакетів можуть, на стороні PyPI, довіряти ідентифікаторам, наданим зовнішнім постачальникам OpenID (IdP), які зовнішня служба використовуватиме для запиту неактивних токенів PyPI.

Згенеровані токени OpenID Connect підтверджують зв'язок між проектом та драйвером, дозволяючи PyPI виконувати додаткову перевірку метаданих, наприклад, перевіряти, чи опублікований пакет пов'язаний з певним репозиторієм. Токени не є постійними, прив'язані до певних API та автоматично закінчуються після короткого терміну дії.

Натомість супроводжувачі PyPI можуть налаштувати PyPI так, щоб він довіряв ідентифікатору, наданому певним постачальником ідентифікаторів OpenID Connect (IdP). Це дозволяє PyPI перевірити та делегувати довіру цьому ідентифікатору, який потім має право запитувати обмежені, короткочасні токени API від PyPI. Ці маркери API ніколи не потребують зберігання чи спільного використання, вони автоматично змінюються після швидкого закінчення терміну дії та забезпечують перевірений зв’язок між опублікованим пакетом і його джерелом.

Наразі можливість використання механізму Trusted Publishers вже реалізована та працює для контролерів, ініційованих у GitHub Actions. Нарешті, і це важливо, також згадується, що в майбутньому очікується підтримка Trusted Publishers для інших зовнішніх сервісів.

Зрештою, якщо ви зацікавлені дізнатися більше про це , ви можете знайти подробиці за наступним посиланням.


Додати як пріоритетне джерело в Google