De Python Package Index (PyPI) ondersteunt voortaan digital attestations als manier om packages te signeren, zo is gisteren aangekondigd. Attestations zijn digitaal gesigneerde, publiek verifieerbare statements over Python-packages, waaronder de exacte source repository waarvandaan ze afkomstig zijn. Ze zijn gebaseerd op de Python-standaard PEP 740. Afhankelijk van verschillende voorwaarden, waaronder gebruik van GitHub Actions voor de publicatie van een package, worden de attestations automatisch gegenereerd en gepubliceerd. Iets wat volgens critici GitHub als publicatieplatform bevoordeeld.
De Python Package Index is een repository voor de Python-programmeertaal en bevat allerlei door de Python-community ontwikkelde packages. Om gebruikers meer zekerheid over de integriteit en authenticiteit van een package te geven konden ontwikkelaars via PGP hun package van een digitale handtekening voorzien. Hiervoor wordt gebruikgemaakt van private-public key cryptografie, waarbij er een public key beschikbaar moet zijn om de signature te verifiëren. Dergelijke keys zijn vaak via public key-servers te vinden.
Vorig jaar besloot PyPI de support voor PGP-signatures te stoppen. Uit onderzoek bleek dat een groot aantal keys niet beschikbaar was op een grote public key-server, waardoor het zo goed als onmogelijk was om de digitale handtekening te controleren. Een ander probleem waar ontwikkelaars volgens PyPI mee te maken kregen was het verliezen of de compromittering van hun keys.
Om ontwikkelaars toch de mogelijkheid te bieden hun packages te signeren ondersteunt PyPI nu digital attestations, dat samen met securitybedrijf Trail of Bits is ontwikkeld. Een verschil met PGP is dat attestations worden gesigneerd door een signing identity en niet een key pair. In het geval van PyPI wordt er gebruikgemaakt van Open ID Connect (OIDC) identities. "Door het signeren van attestations met identities, en niet een public/private key pair, mitigeren we de kans dat de key van een individu kwijtraakt of gecompromitteerd wordt", zegt PyPI-maintainer Dustin Ingram.
Volgens de omschrijving zouden attestations het lastiger voor een aanvaller moeten maken om een Python-package te kapen, aangezien de aanvaller dan ook toegang tot de signing identity moet krijgen. Attestations worden tijdens het uploaden geverifieerd en moeten verifieerbaar zijn om te worden geüpload. Alleen attestations met een verifieerbare signature worden toegestaan. Gebruikers kunnen daarnaast de attestations van een package controleren. Hiervoor is er een nieuwe API en een gebruikersinterface beschikbaar gemaakt.
Het genereren en publiceren van attestations gebeurt standaard voor Python-projecten die via GitHub Actions worden gepubliceerd. Dit is een platform voor het publiceren van software. Daarnaast moet de software via een Trusted Publisher naar PyPI worden gepubliceerd en moet de 'pypa/gh-action-pypi-publish action' voor het publiceren worden gebruikt. Alleen dan zullen de attestations standaard worden gegenereerd. Critici vinden dat deze werkwijze GitHub bevooroordeeld en de openheid van Python en PyPI niet ten goede komt.
Je bent niet ingelogd en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.