Kod İmzalama
Her EPPlus sürümü, GlobalSign tarafından EPPlus Software AB'ye verilen bir kod imzalama sertifikasıyla dijital olarak imzalanır. Bu, tüm dağıtık montajlar ve NuGet paketi için geçerlidir ve kullandığınız şeyin bizim tarafımızdan oluşturulup yayınlandığını bağımsız olarak doğrulamanızı sağlar.
Neden izin belgelerimizi imzaladık
Yazılım tedarik zinciri saldırıları — saldırganın yayıncı ile son kullanıcı arasındaki paketi bozduğu — büyüyen bir tehdit oluşturuyor. Dijital imza, indirdiğiniz dosyanın oluşturup yayımladığımızla aynı olduğuna dair kriptografik garanti sağlar. Ayrıca yayıncının kimliğini de doğrular: imza yalnızca EPPlus Software AB'ye güvenilir bir sertifika otoritesi tarafından verilen sertifikanın sahibi tarafından oluşturulmuş olabilir. Bir dosya imzalandıktan sonra değiştirildiyse veya hiç imzalanmadıysa, doğrulama başarısız olur.
Ne imzalanıyor
EPPlus sürümünde yer alan tüm montajlar, desteklenen tüm hedef çerçevelerde imzalanır. NuGet paketi, paket içeriğinin tamamını kapsayan paket düzeyinde bir imza olarak ayrı olarak imzalanır.
Belirli bir sürümde yer alan montaj ve hedef çerçevelerin tam seti, o sürüm için Yazılım Materyaller Listesi'nde listelenmiştir.
Sertifika
İmza sertifikası, küresel olarak güvenilir bir sertifika otoritesi olan GlobalSign tarafından verilir. Sertifika, donanım destekli bir anahtar deposunda güvenli bir şekilde saklanır ve yalnızca otomatik sürüm hattımızın bir parçası olarak erişilir — özel anahtar asla güvenli ortamdan ayrılmaz.
| Verilmiştir | EPPlus Software AB |
|---|---|
| Yayın | GlobalSign GCC R45 CodeSigning CA 2020 |
| Digest algoritması | SHA-256 |
| Zaman damgası yetkisi | GlobalSign TSA for Advanced - G4 |
Tüm imzalarda GlobalSign'tan güvenilir bir zaman damgası bulunur. Bu, imza sertifikası yenilendikten sonra bile imzaların doğrulanabilir kalmasını sağlar; imza sertifikanın geçerlilik süresi içinde oluşturulduğu sürece. Yukarıdaki sertifika detaylarının mevcut imza sertifikasını yansıttığını unutmayın — idimci ve zaman damgası yetkisi yenileme sırasında değişebilir.
NuGet depo karşı imzası
Kendi yazar imzamıza ek olarak, NuGet.org bir paket yayınlandığında otomatik olarak bir depo karşı imzası ekliyor. Bu karşı imza NuGet.org tarafından verilir ve paketin EPPlus paketinin kayıtlı sahipleri tarafından NuGet.org'de yüklendiğini doğrular. Bir paketi doğruladığınızda, her iki imzayı da göreceksiniz — EPPlus Software AB'den yazar imzası ve NuGet.org'den depo karşı imzası.
EPPlus paketinin kayıtlı sahiplerini bağımsız olarak nuget.org/packages/EPPlus üzerinden doğrulayabilirsiniz.
Doğrulama başarısız olursa
Başarısız bir doğrulama, dosyanın imzalandıktan sonra değiştirildiği, imzanın eksik olduğu ya da sertifika zincirine güvenilemeyeceği anlamına gelir. Doğrulamada başarısız olan bir paket veya montaj kullanmayın. Yayınlanmış bir EPPlus sürümüne müdahale edildiğine dair sebebiniz varsa, lütfen hemen bize bildirin.
Bizimle nasıl iletişime geçileceğine dair talimatlar için Güvenlik Güvenlik Açıklama Politikamıza bakınız.
Bir yayını kendiniz doğrulayın
Herhangi bir EPPlus sürümünde imzayı standart araçlarla bağımsız olarak doğrulayabilirsiniz, bize güvenmeden.
NuGet paketinin doğrulanması
EPPlus sürümünü doğrulamanın en basit yolu, .NET CLI kullanarak NuGet paket imzasını doğrulamaktır. Bu Windows, Linux ve macOS'ta çalışıyor.
dotnet nuget verify EPPlus.<version>.nupkg --verbosity detailed
Başarılı bir doğrulanmış paket, hem EPPlus Software AB'den gelen yazar imzasını hem de NuGet.org'den depo karşı imzasını gösterir:
X.509 certificate chain validation will use the default trust store selected by .NET for code signing.
X.509 certificate chain validation will use the default trust store selected by .NET for timestamping.
Verifying EPPlus.<version>
Signature Hash Algorithm: SHA256
Signature type: Author
Verifying the author primary signature with certificate:
Subject Name: CN=EPPlus Software AB, O=EPPlus Software AB, L=Stockholm, C=SE
Issued by: CN=GlobalSign GCC R45 CodeSigning CA 2020, O=GlobalSign nv-sa, C=BE
Signature type: Repository
Service index: https://api.nuget.org/v3/index.json
Owners: EPPlusSoftware, jankallman, swmal
Successfully verified package 'EPPlus.<version>'.
Bir montajın doğrulanması
Windows'ta, bireysel montajlar PowerShell kullanılarak doğrudan doğrulanabilir. Bu, hem kriptografik imzayı hem de sertifika güven zincirini Windows güven deposu kullanarak doğrular.
Get-AuthenticodeSignature "path\to\EPPlus.dll" | Format-List *
Geçerli bir imza, Durum: Geçerli ve GlobalSign tarafından EPPlus Software AB'ye verilen bir imzacı sertifikasını gösterecektir:
SignerCertificate : [Subject]
CN=EPPlus Software AB, O=EPPlus Software AB, L=Stockholm, C=SE
[Issuer]
CN=GlobalSign GCC R45 CodeSigning CA 2020, O=GlobalSign nv-sa, C=BE
...
Status : Valid
StatusMessage : Signature verified.
SignatureType : Authenticode
PowerShell ile assembly düzeyinde doğrulama yalnızca Windows'ta mevcuttur. Linux ve macOS'ta, yukarıda açıklandığı gibi tüm platformlarda çalışan dotnet nuget verify kullanarak NuGet paketini doğrulamanızı öneriyoruz.