İmzalanmış paketler

NuGet 4.6.0+ ve Visual Studio 2017 sürüm 15.6 ve üzeri

NuGet paketleri, üzerinde oynanmış içeriğe karşı koruma sağlayan bir dijital imza içerebilir. Bu imza, paketin gerçek kaynağına orijinallik kanıtlarını da ekleyen bir X.509 sertifikasından oluşturulur.

İmzalı paketler en güçlü uçtan uca doğrulamayı sağlar. İki farklı NuGet imzası türü vardır:

  • yazar imzası. Yazar imzası, paketin hangi depodan veya hangi aktarım yönteminden teslim edildiğinin önemi olmadan, yazarın paketi imzalamasından bu yana paketin değiştirilmediğini garanti eder. Ayrıca, imza sertifikasının önceden kaydedilmesi gerektiğinden, yazar imzalı paketler nuget.org yayımlama işlem hattına ek bir kimlik doğrulama mekanizması sağlar. Daha fazla bilgi için bkz . Sertifikaları kaydetme.
  • Depo imzası. Depo imzaları, bir depodaki tüm paketler için yazar imzalı olsun veya olmasın, bu paketler imzalandıkları özgün depodan farklı bir konumdan alınsa bile bütünlük garantisi sağlar.

Yazar imzalı paketi oluşturma hakkında ayrıntılı bilgi için bkz . İmzalama Paketleri ve nuget sign komutu. dotnet nuget verify veya nuget verify komutlarını kullanarak paketlerin imzalarını doğrulayabilirsiniz.

Önemli

Yazar imzalama paketleri şu anda yalnızca Windows'daki nuget.exe tarafından desteklenmektedir. Ancak, nuget.org yüklenen tüm paketler otomatik olarak depoya imzalanır.

Sertifika gereksinimleri

Paket imzalama, [RFC 5280 bölüm 4.2.1.12] amacıyla id-kp-codeSigning geçerli olan özel bir sertifika türü olan bir kod imzalama sertifikası gerektirir. Ayrıca, sertifikanın RSA ortak anahtar uzunluğu 2048 bit veya üzeri olmalıdır.

Zaman damgası gereksinimleri

İmzalı paketler, paket imzalama sertifikasının geçerlilik süresinin ötesinde imza geçerliliğini sağlamak için bir RFC 3161 zaman damgası içermelidir. Zaman damgasını imzalamak için id-kp-timeStamping kullanılan sertifika [RFC 5280 bölüm 4.2.1.12] amacıyla geçerli olmalıdır. Ayrıca, sertifikanın RSA ortak anahtar uzunluğu 2048 bit veya üzeri olmalıdır.

Ek teknik ayrıntılar paket imzası teknik belirtimlerinde (GitHub) bulunabilir.

NuGet.org'da imza gereksinimleri

nuget.org, imzalı paketi kabul etmek için ek gereksinimlere sahiptir:

  • Birincil imza bir yazar imzası olmalıdır.
  • Birincil imzanın tek bir geçerli zaman damgası olmalıdır.
  • Hem yazar imzası hem de zaman damgası imzası için X.509 sertifikaları:
    • RSA ortak anahtarı 2048 bit veya üzeri olmalıdır.
    • nuget.org paket doğrulama sırasında geçerli UTC saati başına geçerlilik süresi içinde olmalıdır.
    • Windows'ta varsayılan olarak güvenilen bir kök yetkiliye zincirleme gerekir. Kendi kendine verilen sertifikalarla imzalanan paketler reddedilir.
    • Amacı için geçerli olmalıdır:
      • Yazar imzalama sertifikası, kod imzalama için geçerli olmalıdır.
      • Zaman damgası sertifikası zaman damgası için geçerli olmalıdır.
    • İmzalama zamanında iptal edilmemelidir. (Bu, gönderim zamanında bilinmeyebilir, bu nedenle nuget.org iptal durumunu düzenli aralıklarla yeniden denetler).