PyPI, Python programlama dilinde üçüncü taraf uygulamalar için resmi yazılım deposudur.
Birkaç gün önce şu haber çıktı Python PyPI paket deposu (Python Paket Dizini) zaten paketleri yayınlamak için yeni bir güvenli yöntem kullanma yeteneği sağlar, sabit parolaları ve API erişim belirteçlerini harici sistemlerde (örneğin, GitHub Eylemlerinde) depolama ihtiyacını ortadan kaldırır.
Yeni kimlik doğrulama yönteminin adı var'Güvenilir Yayıncılar' ve güvenliği ihlal edilmiş harici sistemlerin ve önceden tanımlanmış şifrelerin veya belirteçlerin yanlış ellere geçmesinin bir sonucu olarak ortaya çıkan kötü amaçlı güncellemeler sorununu çözmek için tasarlanmıştır.
Bugünden itibaren, PyPI paket koruyucuları, harici sistemlerle paylaşmak için uzun ömürlü parolalar veya API belirteçleri gerektirmeyen yeni, daha güvenli bir yayınlama yöntemini benimseyebilecek.
Bu yeni kimlik doğrulama yönteminin, diğer geleneksel PyPI kimlik doğrulama yöntemlerine kıyasla önemli kullanılabilirlik ve güvenlik avantajları sağladığından bahsedilmektedir:
- kullanılabilirlik: Güvenilir yayınlama ile, kullanıcıların artık PyPI'de manuel olarak API belirteçleri oluşturması ve bunları kopyalayıp CI sağlayıcılarına yapıştırması gerekmez. Tek manuel adım, düzenleyiciyi PyPI'de yapılandırmaktır.
- güvenlik: normal PyPI API belirteçleri uzun ömürlüdür, yani bir paket yayınını tehlikeye atan bir saldırgan, meşru kullanıcısı bunu fark edip manuel olarak iptal edene kadar paketi kullanabilir. Benzer şekilde, bir parola ile yükleme, bir saldırganın hesapla ilişkili herhangi bir projeyi yükleyebileceği anlamına gelir. Güvenilir Yayıncılık, bu sorunların her ikisini de önler: Düzenlenen belirteçlerin süresi otomatik olarak dolar ve yalnızca yüklemeye yetkili oldukları paketlerle sınırlıdır.
Bu yeni kimlik doğrulama yöntemiyle ilgili olarak, şundan bahsedilmektedir: OpenID Connect standardına dayalıdır (OIDC), hangi değiş tokuş edilen zaman sınırlı kimlik doğrulama belirteçlerini kullanır Geleneksel bir oturum açma/şifre veya erişim belirteçleri tarafından manuel olarak oluşturulan kalıcı bir API kullanmak yerine, bir paket yayınlama işlemini doğrulamak için harici hizmetler ve PyPI dizini arasında.
"Güvenilir Yayın", güvenilir bir üçüncü taraf hizmeti ile PyPI arasında kısa ömürlü kimlik belirteçlerini değiş tokuş etmek için OpenID Connect (OIDC) standardını kullanmak için kullandığımız terimdir. Bu yöntem, otomatikleştirilmiş ortamlarda kullanılabilir ve yayınlarken PyPI ile kimlik doğrulaması yapmak için kullanıcı adı/şifre kombinasyonlarını veya manuel olarak oluşturulmuş API belirteçlerini kullanma ihtiyacını ortadan kaldırır.
Öte yandan, paket koruyucuların, PyPI tarafında, harici hizmetin PyPI'nin canlı olmayan belirteçlerini talep etmek için kullanacağı harici OpenID Sağlayıcılarına (IdP'ler) sağlanan tanımlayıcılara güvenebileceği de belirtilmektedir.
Oluşturulan OpenID Connect belirteçleri, proje ile denetleyici arasındaki ilişkiyi onaylar, bu, PyPI'nin yayınlanan paketin belirli bir havuzla ilişkili olduğunu doğrulamak gibi ek meta veri doğrulaması gerçekleştirmesine olanak tanır. Belirteçler kalıcı değildir, belirli API'lere bağlıdırlar ve kısa bir kullanım ömründen sonra otomatik olarak sona ererler.
Bunun yerine, PyPI bakımcıları, PyPI'yi belirli bir OpenID Connect kimlik sağlayıcısı (IdP) tarafından sağlanan bir kimliğe güvenecek şekilde yapılandırabilir. Bu, PyPI'nin, daha sonra PyPI'dan sınırlı kapsamlı, kısa ömürlü API belirteçleri talep etme yetkisine sahip olan kimliği doğrulamasına ve bu kimliğe güven devretmesine izin verir. Bu API belirteçlerinin hiçbir zaman saklanması veya paylaşılması gerekmez, hızlı sona erme durumunda otomatik olarak döner ve yayınlanan bir paket ile kaynağı arasında doğrulanabilir bir bağlantı sağlar.
Şimdi mekanizmayı kullanma yeteneği "Güvenilir Yayıncılar" Zaten uygulandı ve çalışıyor. denetleyiciler için GitHub Eylemlerinde başlatıldı. Son olarak, gelecekte diğer harici hizmetler için Güvenilir Yayıncılar ile uyumluluğun beklendiğinden de bahsedilmektedir.
Nihayet onun hakkında daha fazla bilgi edinmekle ilgileniyorsanayrıntıları kontrol edebilirsiniz Aşağıdaki bağlantıda.