Freigeben über


ClickOnce und Authenticode

Authenticode ist eine Microsoft-Technologie, die Branchenstandard-Kryptografie verwendet, um Anwendungscode mit digitalen Zertifikaten zu signieren, die die Echtheit des Herausgebers der Anwendung überprüfen. Durch die Verwendung von Authenticode für die Anwendungsbereitstellung reduziert ClickOnce das Risiko eines Trojaners. Ein Trojanisches Pferd ist ein Virus oder ein anderes schädliches Programm, das ein böswilliger Dritter irreführend als ein legitimes Programm darstellt, das ursprünglich von einer etablierten, vertrauenswürdigen Quelle stammt. Das Signieren von ClickOnce-Bereitstellungen mit einem digitalen Zertifikat ist ein optionaler Schritt, um zu überprüfen, ob die Assemblys und Dateien nicht manipuliert werden.

In den folgenden Abschnitten werden die verschiedenen Arten digitaler Zertifikate beschrieben, die in Authenticode verwendet werden, wie Zertifikate mithilfe von Zertifizierungsstellen (CAs), der Rolle des Zeitstempels in Zertifikaten und der für Zertifikate verfügbaren Speichermethoden überprüft werden.

Authenticode und Codesignatur

Ein digitales Zertifikat ist eine Datei, die ein kryptografisches Paar für öffentliche/private Schlüssel enthält, sowie Metadaten, die den Herausgeber beschreiben, für den das Zertifikat ausgestellt wurde, und die Agentur, die das Zertifikat ausgestellt hat.

Es gibt verschiedene Arten von Authenticode-Zertifikaten. Jede ist für unterschiedliche Signaturtypen konfiguriert. Für ClickOnce-Anwendungen müssen Sie über ein Authenticode-Zertifikat verfügen, das für die Codesignatur gültig ist. Wenn Sie versuchen, eine ClickOnce-Anwendung mit einem anderen Zertifikattyp zu signieren, z. B. ein digitales E-Mail-Zertifikat, funktioniert es nicht. Weitere Informationen finden Sie unter der Einführung zu Code-Signierung.

Sie können ein Zertifikat für die Codesignatur auf eine von drei Arten abrufen:

  • Kaufen Sie eines von einem Zertifikatanbieter.

  • Erhalten Sie eine von einer Gruppe in Ihrer Organisation, die für die Erstellung digitaler Zertifikate zuständig ist.

  • Generieren Sie Ihr eigenes Zertifikat mithilfe des New-SelfSignedCertificate PowerShell-Cmdlets oder mithilfe vonMakeCert.exe, das im Windows Software Development Kit (SDK) enthalten ist.

Die Verwendung von Zertifizierungsstellen kann Benutzern helfen

Ein zertifikat, das mit New-SelfSignedCertificate oder dem MakeCert.exe Hilfsprogramm generiert wird, wird häufig als Selbstzertifikat oder Testzertifikat bezeichnet. Diese Art von Zertifikat funktioniert ähnlich wie eine SNK-Datei in .NET Framework. Es besteht ausschließlich aus einem öffentlichen/privaten Kryptografieschlüsselpaar und enthält keine überprüfbaren Informationen über den Herausgeber. Sie können Self-Certs verwenden, um ClickOnce-Anwendungen mit hoher Vertrauensebene in einem Intranet bereitzustellen. Wenn diese Anwendungen jedoch auf einem Clientcomputer ausgeführt werden, identifiziert ClickOnce sie als aus einem unbekannten Herausgeber. Standardmäßig können ClickOnce-Anwendungen, die mit Selbstzertifikaten signiert und über das Internet bereitgestellt wurden, keine vertrauenswürdige Anwendungsbereitstellung verwenden.

Wenn Sie dagegen ein Zertifikat von einer Zertifizierungsstelle erhalten, z. B. einem Zertifikatanbieter oder einer Abteilung innerhalb Ihres Unternehmens, bietet das Zertifikat mehr Sicherheit für Ihre Benutzer. Er identifiziert nicht nur den Herausgeber der signierten Software, sondern bestätigt diese Identität, indem bei der Zertifizierungsstelle, die sie signiert hat, nachgefragt wird. Wenn die Zertifizierungsstelle nicht die Stammzertifizierungsstelle ist, wird Authenticode ebenfalls zur Stammzertifizierungsstelle zurückverfolgt, um zu überprüfen, ob die Zertifizierungsstelle berechtigt ist, Zertifikate auszustellen. Um mehr Sicherheit zu gewährleisten, sollten Sie nach Möglichkeit ein von einer Zertifizierungsstelle ausgestelltes Zertifikat verwenden.

Weitere Informationen zum Generieren von Selbstzertifikaten finden Sie unter New-SelfSignedCertificate oder MakeCert.

Zeitstempel

Die Zum Signieren von ClickOnce-Anwendungen verwendeten Zertifikate laufen nach einer bestimmten Zeitspanne ab, in der Regel zwölf Monate. Um die Notwendigkeit zu entfernen, Anwendungen ständig mit neuen Zertifikaten neu zu signieren, unterstützt ClickOnce den Zeitstempel. Wenn eine Anwendung mit einem Zeitstempel signiert ist, wird das Zertifikat auch nach Ablauf weiterhin akzeptiert, vorausgesetzt, der Zeitstempel ist gültig. Dadurch können ClickOnce-Anwendungen mit abgelaufenen Zertifikaten, aber gültigen Zeitstempeln heruntergeladen und ausgeführt werden. Außerdem können installierte Anwendungen mit abgelaufenen Zertifikaten weiterhin Updates herunterladen und installieren.

Um einen Zeitstempel in einen Anwendungsserver einzuschließen, muss ein Zeitstempelserver verfügbar sein. Informationen zum Auswählen eines Zeitstempelservers finden Sie unter How to: Sign Application and Deployment Manifests.

Aktualisieren abgelaufener Zertifikate

In früheren Versionen von .NET Framework konnte das Aktualisieren einer Anwendung, deren Zertifikat abgelaufen war, dazu führen, dass die Anwendung nicht mehr funktioniert. Verwenden Sie eine der folgenden Methoden, um dieses Problem zu beheben:

  • Aktualisieren Sie .NET Framework, Version 3.5 oder höher.

  • Deinstallieren Sie die Anwendung, und installieren Sie eine neue Version mit einem gültigen Zertifikat erneut.

Speichern von Zertifikaten

  • Sie können Zertifikate als PFX-Datei im Dateisystem speichern oder sie innerhalb eines Schlüsselcontainers speichern. Ein Benutzer in einer Windows-Domäne kann über eine Reihe von Schlüsselcontainern verfügen. Standardmäßig speichert MakeCert.exe Zertifikate in Ihrem persönlichen Schlüsselcontainer, es sei denn, Sie geben an, dass sie stattdessen in einer PFX-Datei gespeichert werden soll. Mage.exe und MageUI.exekönnen Sie mithilfe der Windows SDK-Tools zum Erstellen von ClickOnce-Bereitstellungen Zertifikate verwenden, die auf beide Weise gespeichert sind.