Podpisywanie kodu
Każde wydanie EPPlus jest cyfrowo podpisane certyfikatem podpisu kodu wydanym przez GlobalSign dla EPPlus Software AB. Dotyczy to wszystkich rozproszonych asembli, jak również samego pakietu NuGet i pozwala niezależnie zweryfikować, czy to, czego używasz, zostało zbudowane i opublikowane przez nas.
Dlaczego podpisujemy nasze zgody
Ataki na łańcuch dostaw oprogramowania — gdy atakujący manipuluje pakietem między wydawcą a użytkownikiem końcowym — stanowią rosnące zagrożenie. Podpis cyfrowy gwarantuje kryptograficzną gwarancję, że plik, który pobrałeś, jest identyczny z tym, co stworzyliśmy i udostępniliśmy. Potwierdza również tożsamość wydawcy: podpis może zostać utworzony wyłącznie przez posiadacza certyfikatu wydanego EPPlus Software AB przez zaufany organ certyfikacyjny. Jeśli plik został zmodyfikowany po podpisaniu lub nigdy nie został przez nas podpisany, weryfikacja się nie uda.
Co jest podpisane
Wszystkie zestawy zawarte w wydaniu EPPlus są podpisane we wszystkich obsługiwanych ramach docelowych. Pakiet NuGet jest podpisywany osobno jako podpis na poziomie pakietu, który obejmuje całą zawartość pakietu.
Dokładny zestaw zestawów i ram docelowych zawartych w danej wersji jest wymieniony w Liście Materiałów Oprogramowania dla tej wersji.
Certyfikat
Certyfikat podpisu jest wydawany przez GlobalSign, globalnie zaufany organ certyfikacyjny. Certyfikat jest bezpiecznie przechowywany w sprzętowym magazynie kluczy i jest dostępny tylko w ramach naszego automatycznego procesu wypuszczania — klucz prywatny nigdy nie opuszcza bezpiecznego środowiska.
| Wydane do | EPPlus Software AB |
|---|---|
| Wydane przez | GlobalSign GCC R45 CodeSigning CA 2020 |
| Algorytm digest | SHA-256 |
| Uprawnienia do znaczników czasowych | GlobalSign TSA for Advanced - G4 |
Wszystkie podpisy zawierają zaufany znacznik czasu od GlobalSign. Zapewnia to, że podpisy pozostają weryfikowalne nawet po odnowieniu certyfikatu podpisu, o ile podpis został utworzony w okresie ważności certyfikatu. Należy zauważyć, że powyższe dane certyfikatu odzwierciedlają aktualny certyfikat podpisu — emitent i uprawnienia do znaczników czasowych mogą się zmienić podczas odnowienia.
Kontrsygnatura repozytorium NuGet
Oprócz własnego podpisu autora, NuGet.org automatycznie dodaje kontrasygnaturę repozytorium po publikacji pakietu. Ten podpis został wydany przez NuGet.org i potwierdza, że pakiet został przesłany przez zarejestrowanych właścicieli pakietu EPPlus na NuGet.org. Podczas weryfikacji pakietu zobaczysz oba podpisy — podpis autora z EPPlus Software AB oraz kontrasygnaturę repozytorium od NuGet.org.
Możesz niezależnie weryfikować zarejestrowanych właścicieli pakietu EPPlus na nuget.org/packages/EPPlus.
Jeśli weryfikacja się nie powiedzie
Nieudana weryfikacja oznacza, że plik został zmodyfikowany po podpisaniu, że podpis jest nieobecny, albo że łańcuch certyfikatów nie jest godny zaufania. Nie używaj pakietu ani asemblera, który nie przechodzi weryfikacji. Jeśli masz powody sądzić, że opublikowane wydanie EPPlus zostało zmanipulowane, prosimy o natychmiastowe zgłoszenie tego do nas.
Zobacz naszą Politykę Ujawniania Podatności , aby uzyskać instrukcje, jak się z nami skontaktować.
Samodzielnie zweryfikowaj zgodę
Możesz niezależnie zweryfikować podpis na dowolnym wydaniu EPPlus za pomocą standardowych narzędzi, bez polegania na nas.
Weryfikacja pakietu NuGet
Najprostszym sposobem weryfikacji wydania EPPlus jest weryfikacja sygnatury pakietu NuGet za pomocą CLI .NET. To działa na Windows, Linux i macOS.
dotnet nuget verify EPPlus.<version>.nupkg --verbosity detailed
Pomyślnie zweryfikowany pakiet pokaże zarówno podpis autora od EPPlus Software AB, jak i kontrasygnaturę repozytorium od NuGet.org:
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>'.
Weryfikacja montażu
Na Windows poszczególne zespoły można również bezpośrednio weryfikować za pomocą PowerShell. To weryfikuje zarówno podpis kryptograficzny, jak i łańcuch zaufania certyfikatów za pomocą magazynu zaufania Windows.
Get-AuthenticodeSignature "path\to\EPPlus.dll" | Format-List *
Ważny podpis pokaże status: Ważny oraz certyfikat podpisującego wydany przez GlobalSign do EPPlus Software AB:
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
Weryfikacja na poziomie asemblera za pomocą PowerShell jest dostępna tylko na Windows. Na Linuksie i macOS zalecamy weryfikację pakietu NuGet za pomocą dotnet nuget verify, jak opisano powyżej, który działa na wszystkich platformach.