ClickOnce i podpis Authenticode
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. Przy użyciu aplikacji Authenticode do wdrażania aplikacji ClickOnce zmniejsza ryzyko konia trojańskiego. Koń trojański jest wirusem lub innym szkodliwym programem, który złośliwy inny podmiot błędnie przedstawia 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 parę kryptograficznych 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 polecenia cmdlet New-SelfSignedCertificate programu PowerShell lub przy użyciu narzędzia MakeCert.exe, który jest dołączony do zestawu Windows Software Development Kit (SDK).
Jak korzystać z urzędów certyfikacji, pomaga użytkownikom
Certyfikat wygenerowany przy użyciu polecenia 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. Możesz użyć certyfikatów własnych do wdrożenia aplikacji ClickOnce z wysokim zaufaniem w intranecie. Jednak po uruchomieniu tych aplikacji na komputerze klienckim firma ClickOnce zidentyfikuje je jako pochodzące z nieznanego wydawcy. Domyślnie aplikacje ClickOnce podpisane przy użyciu certyfikatów własnych i wdrożone przez Internet nie mogą korzystać z wdrożenia zaufanej aplikacji.
Natomiast jeśli otrzymasz certyfikat od urzędu certyfikacji, takiego jak dostawca certyfikatu lub dział w przedsiębiorstwie, certyfikat zapewnia większe bezpieczeństwo dla użytkowników. Identyfikuje nie tylko wydawcę podpisanego oprogramowania, ale weryfikuje ją, sprawdzając, czy jest ona podpisana przez urząd certyfikacji. 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 autoryzowany do wystawiania certyfikatów. W celu zwiększenia bezpieczeństwa należy użyć certyfikatu wystawionego przez urząd certyfikacji, jeśli jest 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ąć konieczność 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. Dzięki temu aplikacje ClickOnce z wygasłymi certyfikatami, ale prawidłowymi znacznikami czasu, mogą pobierać i uruchamiać. Umożliwia również instalowanie aplikacji z wygasłymi certyfikatami w celu dalszego pobierania i instalowania aktualizacji.
Aby uwzględnić znacznik czasu na serwerze aplikacji, musi być dostępny serwer sygnatury czasowej. 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 w wersji 3.5 lub nowszej.
Odinstaluj aplikację i ponownie zainstaluj 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 program 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.