ClickOnce und Authenticode

Authenticode ist eine Microsoft-Technologie, die mithilfe von Industriestandard-Kryptografie Anwendungscode mit digitalen Zertifikaten signiert, die die Echtheit des Herausgebers der Anwendung bestätigen. Durch die Verwendung von Authenticode bei der Bereitstellung einer Anwendung reduziert ClickOnce das Risiko eines trojanischen Pferdes. Ein trojanisches Pferd ist ein Virus oder ein schädliches Programm, das ein böswilliger Drittanbieter als sicheres Programm aus einer bekannten und vertrauenswürdigen Quelle darstellt. Signieren von ClickOnce-Bereitstellungen mit einem digitalen Zertifikat ist ein optionaler Schritt, mit dem sichergestellt wird, dass die Assemblys und Dateien nicht manipuliert wurden.

In den folgenden Abschnitten sind die verschiedenen Typen von digitalen Zertifikaten beschrieben, die in Authenticode verwendet werden, wie Zertifikate durch Zertifizierungsstellen (CAs) überprüft werden, die Rolle des Zeitstempels in Zertifikaten und die Methoden des verfügbaren Speichers für Zertifikate.

Authenticode und Codesignatur

Ein digitales Zertifikat ist eine Datei, die ein öffentliches/privates kryptografisches Schlüsselpaar enthält sowie Metadaten über den Herausgeber, für den das Zertifikat ausgestellt wurde, und die Agentur, die das Zertifikat ausgestellt hat.

Es gibt viele verschiedene Arten von Authenticode-Zertifikaten. Jedes ist für unterschiedliche Arten von Signaturen konfiguriert. Für ClickOnce-Anwendungen benötigen Sie ein Authenticode-Zertifikat, das zum Signieren von Code gültig ist. Wenn Sie versuchen, eine ClickOnce-Anwendung mit einem anderen Typ von Zertifikat zu signieren, z. B. einem digitalen Zertifikat für E-Mail, funktioniert dies nicht. Weitere Informationen finden Sie unter Einführung in die Codesignatur.

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

  • Sie erwerben es von einem Zertifikatsanbieter.

  • Sie erhalten es von einer Abteilung in Ihrem Unternehmen, die für das Erstellen von digitalen Zertifikaten verantwortlich ist.

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

Wie die Verwendung von Zertifizierungsstellen Benutzern hilft

Ein Zertifikat, das mit New-SelfSignedCertificate oder dem Hilfsprogramm MakeCert.exe generiert wird, wird häufig als selbst signiertes Zertifikat oder Testzertifikat bezeichnet. Diese Art von Zertifikat funktioniert ähnlich wie eine SNK-Datei im .NET Framework. Es besteht ausschließlich aus einem kryptografischen öffentlichen/privaten Schlüsselpaar und enthält keine überprüfbaren Informationen zum Herausgeber. Sie können selbst signierte Zertifikate zum Bereitstellen von ClickOnce-Anwendungen mit hoher Vertrauenswürdigkeit in einem Intranet verwenden. Beim Ausführen dieser Anwendungen auf einem Clientcomputer werden sie jedoch von ClickOnce als von einem unbekannten Herausgeber stammend identifiziert. In der Standardeinstellung können ClickOnce-Anwendungen, die mit selbst signierten Zertifikaten signiert und über das Internet bereitgestellt werden, keine vertrauenswürdige Anwendungsbereitstellung nutzen.

Wenn Sie dagegen ein Zertifikat von einer Zertifizierungsstelle erhalten, zum Beispiel von einem Zertifikatsanbieter oder einer Abteilung in Ihrem Unternehmen, bietet dieses Zertifikat mehr Sicherheit für Ihre Benutzer. Es identifiziert nicht nur den Herausgeber der signierten Software, sondern überprüft dessen Identität durch Abgleich mit den Daten der Zertifizierungsstelle, die es signiert hat. Wenn die Zertifizierungsstelle nicht die Stammzertifizierungsstelle ist, wird Authenticode auch zurück zur Stammzertifizierungsstelle „verketten“, um zu überprüfen, ob die Zertifizierungsstelle zum Ausstellen von Zertifikaten autorisiert ist. Aus Sicherheitsgründen sollten Sie möglichst ein Zertifikat von einer Zertifizierungsstelle verwenden.

Weitere Informationen zum Generieren von selbst signierten Zertifikaten finden Sie unter New-SelfSignedCertificate oder MakeCert.

Zeitstempel

Die Zertifikate zum Signieren von ClickOnce-Anwendungen laufen nach einem bestimmten Zeitraum ab, in der Regel nach zwölf Monaten. Damit Anwendungen nicht ständig mit Zertifikaten neu signiert werden müssen, unterstützt ClickOnce Zeitstempel. Wenn eine Anwendung mit einem Zeitstempel versehen ist, wird ihr Zertifikat auch nach Ablauf der Gültigkeit des Zertifikats akzeptiert, vorausgesetzt, dass der Zeitstempel gültig ist. Dadurch können ClickOnce-Anwendungen mit abgelaufenen Zertifikaten, aber gültigen Zeitstempeln, heruntergeladen und ausgeführt werden. Außerdem können installierte Programme mit abgelaufenen Zertifikaten weiterhin Updates herunterladen und installieren.

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

Aktualisieren abgelaufener Zertifikate

In früheren Versionen von .NET Framework verursachte das Aktualisieren einer Anwendung, deren Zertifikat abgelaufen war, den Absturz dieser Anwendung. Sie können eine der folgenden Methoden verwenden, um dieses Problem zu lösen:

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

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

Speichern von Zertifikaten

  • Sie können Zertifikate als PFX-Datei im Dateisystem speichern oder in einem Schlüsselcontainer speichern. Ein Benutzer auf einer Windows-Domäne kann über mehrere Schlüsselcontainer verfügen. Standardmäßig werden Zertifikate von MakeCert.exe in Ihrem persönlichen Schlüsselcontainer gespeichert, es sei denn, Sie geben an, dass sie in einer PFX-Datei gespeichert werden sollen. Mage.exe und MageUI.exe, die Windows SDK-Tools zum Erstellen von ClickOnce-Bereitstellungen, ermöglichen es Ihnen, beide Arten von gespeicherten Zertifikaten zu verwenden.