Podpisywanie kodu

Każda wersja EPPlus jest cyfrowo podpisana certyfikatem podpisu kodu wydanym przez GlobalSign dla EPPlus Software AB. Dotyczy to wszystkich rozproszonych asembli oraz samego pakietu NuGet i pozwala niezależnie zweryfikować, że to, czego używasz, zostało stworzone 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 zapewnia kryptograficzną gwarancję, że plik, który pobrałeś, jest identyczny z tym, co stworzyliśmy i udostępniliśmy. Potwierdza także tożsamość wydawcy: podpis może zostać utworzony tylko 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 powie.

Co jest podpisane

Wszystkie zestawy zawarte w wydaniu EPPlus są podpisywane 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 potoku wydania — 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 szczegóły certyfikatu powyżej odzwierciedlają aktualny certyfikat podpisu — emitent i uprawnienia do znaczników czasowych mogą się zmienić podczas odnowienia.

Kontrsygnatura repozytorium NuGet

In addition to our own author signature, NuGet.org automatically adds a repository countersignature when a package is published. This countersignature is issued by NuGet.org and confirms that the package was uploaded by the registered owners of the EPPlus package on NuGet.org. When you verify a package, you will see both signatures — the author signature from EPPlus Software AB and the repository countersignature from 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 wiarygodny. Nie używaj pakietu ani zespołu, który nie przeszedł weryfikacji. Jeśli masz powody sądzić, że opublikowana wersja EPPlus została zmanipulowana, natychmiast zgłoś to 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ą .NET CLI. Działa to 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 waliduje 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.