PyPI ist das offizielle Software-Repository für Anwendungen von Drittanbietern in der Programmiersprache Python.
Vor ein paar Tagen brachte die Nachricht das das Python-PyPI-Paket-Repository (Python Package Index) bereits bietet die Möglichkeit, eine neue sichere Methode zum Veröffentlichen von Paketen zu verwenden, wodurch die Notwendigkeit entfällt, harte Kennwörter und API-Zugriffstoken in externen Systemen (z. B. in GitHub-Aktionen) zu speichern.
Die neue Authentifizierungsmethode hat den Namen„Vertrauenswürdige Publisher“ und wurde entwickelt, um das Problem zu lösen, dass böswillige Updates veröffentlicht werden, weil kompromittierte externe Systeme und vordefinierte Passwörter oder Token in die falschen Hände geraten.
Ab heute können Verwalter von PyPI-Paketen eine neue, sicherere Veröffentlichungsmethode anwenden, die keine langlebigen Passwörter oder API-Token für die gemeinsame Nutzung mit externen Systemen erfordert.
Es wird erwähnt, dass diese neue Authentifizierungsmethode im Vergleich zu den anderen traditionellen PyPI-Authentifizierungsmethoden erhebliche Benutzerfreundlichkeits- und Sicherheitsvorteile bietet:
- Benutzerfreundlichkeit: Mit vertrauenswürdiger Veröffentlichung müssen Benutzer API-Tokens nicht mehr manuell in PyPI erstellen und sie kopieren und in ihren CI-Anbieter einfügen. Der einzige manuelle Schritt besteht darin, den Editor in PyPI zu konfigurieren.
- Sicherheit: Reguläre PyPI-API-Token sind langlebig, was bedeutet, dass ein Angreifer, der eine Paketveröffentlichung kompromittiert, sie verwenden kann, bis sein legitimer Benutzer dies bemerkt und sie manuell widerruft. Ebenso bedeutet das Hochladen mit einem Passwort, dass ein Angreifer jedes mit dem Konto verknüpfte Projekt hochladen kann. Trusted Publishing vermeidet diese beiden Probleme: Ausgestellte Token laufen automatisch ab und sind nur auf die Pakete beschränkt, in die sie zum Hochladen berechtigt sind.
In Bezug auf diese neue Authentifizierungsmethode wird das erwähnt basiert auf dem OpenID Connect-Standard (OIDC), die verwendet zeitlich begrenzte Authentifizierungstoken, die ausgetauscht werden zwischen externen Diensten und dem PyPI-Verzeichnis, um einen Paketveröffentlichungsvorgang zu validieren, anstatt ein herkömmliches Login/Passwort oder eine permanente API zu verwenden, die manuell durch Zugriffstoken generiert wird.
„Vertrauenswürdige Veröffentlichung“ ist unser Begriff für die Verwendung des Standards OpenID Connect (OIDC), um kurzlebige Identitätstoken zwischen einem vertrauenswürdigen Drittanbieterdienst und PyPI auszutauschen. Diese Methode kann in automatisierten Umgebungen verwendet werden und eliminiert die Notwendigkeit, Benutzername/Passwort-Kombinationen oder manuell generierte API-Token zu verwenden, um sich bei der Veröffentlichung mit PyPI zu authentifizieren.
Andererseits wird auch erwähnt, dass Paketbetreuer auf der PyPI-Seite Identifikatoren vertrauen können, die externen OpenID-Anbietern (IdPs) bereitgestellt werden, die der externe Dienst verwenden wird, um nicht aktive Token von PyPI anzufordern.
Die generierten OpenID Connect-Token bestätigen die Beziehung zwischen dem Projekt und dem Controller, Dadurch kann PyPI zusätzliche Metadatenüberprüfungen durchführen, z. B. die Überprüfung, ob das veröffentlichte Paket einem bestimmten Repository zugeordnet ist. Token sind nicht persistent, sie sind an bestimmte APIs gebunden und laufen nach kurzer Lebensdauer automatisch ab.
Stattdessen können PyPI-Betreuer PyPI so konfigurieren, dass es einer Identität vertraut, die von einem bestimmten OpenID Connect-Identitätsanbieter (IdP) bereitgestellt wird. Dadurch kann PyPI das Vertrauen dieser Identität überprüfen und delegieren, die dann berechtigt ist, begrenzte, kurzlebige API-Token von PyPI anzufordern. Diese API-Token müssen niemals gespeichert oder geteilt werden, rotieren bei schnellem Ablauf automatisch und stellen eine überprüfbare Verbindung zwischen einem veröffentlichten Paket und seiner Quelle her.
Jetzt die Fähigkeit, den Mechanismus zu verwenden "Vertrauenswürdige Verlage" Es ist bereits implementiert und läuft. für Controller, die auf GitHub Actions gestartet wurden. Zu guter Letzt wird auch erwähnt, dass zukünftig eine Kompatibilität mit Trusted Publishers für weitere externe Dienste erwartet wird.
Schließlich wenn Sie mehr darüber wissen möchtenkönnen Sie die Details überprüfen im folgenden Link.