ClickOnce i podpis Authenticode

Dotyczy:yes Visual Studio Visual Studio nodla komputerów Mac noVisual Studio Code

Authenticode to technologia firmy Microsoft, która używa standardowej kryptografii w branży do podpisywania kodu aplikacji przy użyciu certyfikatów cyfrowych, które weryfikują autentyczność wydawcy aplikacji. Korzystając z aplikacji Authenticode do wdrażania aplikacji, ClickOnce zmniejsza ryzyko konia trojańskiego. Koń trojański to wirus lub inny szkodliwy program, który złośliwy podmiot trzeci wprowadza w błąd jako legalny program pochodzący z ustalonego, wiarygodnego źródła. Podpisywanie wdrożeń Technologii ClickOnce przy użyciu certyfikatu cyfrowego jest opcjonalnym krokiem umożliwiającym sprawdzenie, czy zestawy i pliki nie są naruszone.

W poniższych sekcjach opisano różne typy certyfikatów cyfrowych używanych w usłudze Authenticode, sposób weryfikacji certyfikatów przy użyciu urzędów certyfikacji, roli sygnatury czasowej w certyfikatach oraz metod przechowywania dostępnych dla certyfikatów.

Authenticode i podpisywanie kodu

Certyfikat cyfrowy to plik zawierający kryptograficzną parę kluczy publicznych/prywatnych wraz z metadanymi opisującym wydawcę, któremu wystawiono certyfikat, oraz agencję, która wystawiła certyfikat.

Istnieją różne typy certyfikatów Authenticode. Każdy z nich jest skonfigurowany dla różnych typów podpisywania. W przypadku aplikacji ClickOnce musisz mieć certyfikat Authenticode, który jest ważny do podpisywania kodu. Jeśli spróbujesz podpisać aplikację ClickOnce przy użyciu innego typu certyfikatu, takiego jak cyfrowy certyfikat poczty e-mail, nie będzie działać. Aby uzyskać więcej informacji, zobacz Wprowadzenie do podpisywania kodu.

Certyfikat do podpisywania kodu można uzyskać na jeden z trzech sposobów:

  • Kup go od dostawcy certyfikatu.

  • Odbierz jeden z grup w organizacji odpowiedzialnej za tworzenie certyfikatów cyfrowych.

  • Wygeneruj własny certyfikat przy użyciu New-SelfSignedCertificate polecenia cmdlet programu PowerShell lub przy użyciu MakeCert.exe, który jest dołączony do zestawu Windows Software Development Kit (SDK).

Jak korzystanie z urzędów certyfikacji pomaga użytkownikom

Certyfikat wygenerowany przy użyciu New-SelfSignedCertificate lub narzędzia MakeCert.exe jest często nazywany certyfikatem własnym lub certyfikatem testowym. Ten rodzaj certyfikatu działa w taki sam sposób, jak plik snk działa w programie .NET Framework. Składa się wyłącznie z publicznej/prywatnej pary kluczy kryptograficznych i nie zawiera żadnych weryfikowalnych informacji o wydawcy. Certyfikaty samodzielne umożliwiają wdrażanie aplikacji ClickOnce z wysokim zaufaniem w intranecie. Jednak po uruchomieniu tych aplikacji na komputerze klienckim funkcja ClickOnce będzie identyfikować je jako pochodzące z nieznanego wydawcy. Domyślnie aplikacje ClickOnce podpisane z certyfikatami własnymi i wdrożone przez Internet nie mogą korzystać z wdrożenia zaufanej aplikacji.

Jeśli natomiast otrzymasz certyfikat od urzędu certyfikacji, takiego jak dostawca certyfikatu lub dział w przedsiębiorstwie, certyfikat oferuje większe bezpieczeństwo dla użytkowników. Identyfikuje nie tylko wydawcę podpisanego oprogramowania, ale sprawdza, czy tożsamość została zweryfikowana, sprawdzając urząd certyfikacji, który go podpisał. Jeśli urząd certyfikacji nie jest urzędem głównym, authenticode będzie również "łańcuch" z powrotem do urzędu głównego w celu sprawdzenia, czy urząd certyfikacji jest upoważniony do wystawiania certyfikatów. Aby zapewnić większe bezpieczeństwo, należy użyć certyfikatu wystawionego przez urząd certyfikacji, jeśli to możliwe.

Aby uzyskać więcej informacji na temat generowania certyfikatów samodzielnie, zobacz New-SelfSignedCertificate lub MakeCert.

Znaczniki czasu

Certyfikaty używane do podpisywania aplikacji ClickOnce wygasają po pewnym czasie, zazwyczaj dwanaście miesięcy. Aby usunąć potrzebę ciągłego ponownego podpisywania aplikacji przy użyciu nowych certyfikatów, funkcja ClickOnce obsługuje znacznik czasu. Gdy aplikacja jest podpisana przy użyciu znacznika czasu, jego certyfikat będzie nadal akceptowany nawet po wygaśnięciu, pod warunkiem, że sygnatura czasowa jest prawidłowa. Umożliwia to aplikacjom ClickOnce wygasłe certyfikaty, ale prawidłowe znaczniki czasu pobierania i uruchamiania. Umożliwia również instalowanie aplikacji z wygasłymi certyfikatami w celu kontynuowania pobierania i instalowania aktualizacji.

Aby uwzględnić znacznik czasu na serwerze aplikacji, serwer sygnatury czasowej musi być dostępny. Aby uzyskać informacje o sposobie wybierania serwera sygnatury czasowej, zobacz Instrukcje: podpisywanie manifestów aplikacji i wdrażania.

Aktualizowanie wygasłych certyfikatów

We wcześniejszych wersjach programu .NET Framework aktualizacja aplikacji, której certyfikat wygasł, może spowodować, że aplikacja przestanie działać. Aby rozwiązać ten problem, użyj jednej z następujących metod:

  • Zaktualizuj program .NET Framework do wersji 2.0 z dodatkiem SP1 lub nowszej w systemie Windows XP lub w wersji 3.5 lub nowszej w systemie Windows Vista.

  • Odinstaluj aplikację i zainstaluj ponownie nową wersję z prawidłowym certyfikatem.

Przechowywanie certyfikatów

  • Certyfikaty można przechowywać jako plik pfx w systemie plików lub przechowywać je w kontenerze kluczy. Użytkownik w domenie systemu Windows może mieć wiele kontenerów kluczy. Domyślnie MakeCert.exe będzie przechowywać certyfikaty w kontenerze kluczy osobistych, chyba że określisz, że ma on zostać zapisany w pliku pfx . Mage.exe i MageUI.exe, narzędzia zestawu Windows SDK do tworzenia wdrożeń Technologii ClickOnce umożliwiają używanie certyfikatów przechowywanych w obu sposób.

Zobacz też