Paket yang ditandatangani
NuGet 4.6.0+ dan Visual Studio 2017 versi 15.6 dan yang lebih baru
Paket NuGet dapat menyertakan tanda tangan digital yang memberikan perlindungan terhadap konten yang dirusak. Tanda tangan ini dihasilkan dari sertifikat X.509 yang juga menambahkan bukti keaslian ke asal paket yang sebenarnya.
Paket yang ditandatangani memberikan validasi end-to-end terkuat. Ada dua jenis tanda tangan NuGet yang berbeda:
- Tanda tangan penulis. Tanda tangan penulis menjamin bahwa paket belum dimodifikasi sejak penulis menandatangani paket, tidak peduli dari repositori mana atau metode transportasi apa yang dikirimkan paket. Selain itu, paket yang ditandatangani penulis menyediakan mekanisme autentikasi tambahan ke alur penerbitan nuget.org karena sertifikat penandatanganan harus didaftarkan sebelumnya. Untuk informasi selengkapnya, lihat Mendaftarkan sertifikat.
- Tanda tangan repositori. Tanda tangan repositori memberikan jaminan integritas untuk semua paket di repositori apakah mereka penulis ditandatangani atau tidak, bahkan jika paket tersebut diperoleh dari lokasi yang berbeda dari repositori asli tempat paket tersebut ditandatangani.
Untuk detail tentang membuat paket yang ditandatangani penulis, lihat Paket Penandatanganan dan perintah tanda tangan nuget. Anda dapat memverifikasi tanda tangan paket menggunakan perintah verifikasi nuget dotnet atau verifikasi nuget.
Penting
Paket penandatanganan penulis hanya didukung oleh nuget.exe pada Windows saat ini. Namun, semua paket yang diunggah ke nuget.org secara otomatis ditandatangani repositori.
Persyaratan sertifikat
Penandatanganan paket memerlukan sertifikat penandatanganan kode, yang merupakan jenis sertifikat khusus yang valid untuk id-kp-codeSigning
tujuan [RFC 5280 bagian 4.2.1.12]. Selain itu, sertifikat harus memiliki panjang kunci umum RSA 2048 bit atau lebih tinggi.
Persyaratan tanda waktu
Paket yang ditandatangani harus menyertakan tanda waktu RFC 3161 untuk memastikan validitas tanda tangan di luar periode validitas sertifikat penandatanganan paket. Sertifikat yang digunakan untuk menandatangani tanda waktu harus valid untuk id-kp-timeStamping
tujuan [RFC 5280 bagian 4.2.1.12]. Selain itu, sertifikat harus memiliki panjang kunci umum RSA 2048 bit atau lebih tinggi.
Detail teknis tambahan dapat ditemukan dalam spesifikasi teknis tanda tangan paket (GitHub).
Persyaratan tanda tangan pada NuGet.org
nuget.org memiliki persyaratan tambahan untuk menerima paket yang ditandatangani:
- Tanda tangan utama harus berupa tanda tangan penulis.
- Tanda tangan utama harus memiliki tanda waktu yang valid tunggal.
- Sertifikat X.509 untuk tanda tangan penulis dan tanda tangan tanda waktunya:
- Harus memiliki kunci umum RSA 2048 bit atau lebih besar.
- Harus dalam periode validitas per waktu UTC saat ini pada saat validasi paket pada nuget.org.
- Harus ditautkan ke otoritas akar tepercaya yang dipercaya secara default pada Windows. Paket yang ditandatangani dengan sertifikat yang diterbitkan sendiri ditolak.
- Harus valid untuk tujuannya:
- Sertifikat penandatanganan penulis harus valid untuk penandatanganan kode.
- Sertifikat tanda waktu harus valid untuk tanda waktu.
- Tidak boleh dicabut pada waktu penandatanganan. (Ini mungkin tidak diketahui pada waktu pengiriman, jadi nuget.org secara berkala mengecek ulang status pencabutan).