Freigeben über


ClickOnce-Bereitstellung und Authenticode

Aktualisiert: November 2007

Authenticode ist eine Technologie von Microsoft, bei der Kryptografie nach Industriestandard eingesetzt wird, um Anwendungscode mit digitalen Zertifikaten zu signieren, die die Echtheit des Herausgebers der Anwendung bestätigen. Durch die Verwendung von Authenticode in der Anwendungsentwicklung verhindert ClickOnce so genannte trojanische Pferde, bei denen böswillige Dritte Viren oder andere schädliche Programme als legitime Programme ausgeben, die aus bekannten und vertrauenswürdigen Quellen stammen. Alle ClickOnce-Bereitstellungen müssen mit einem digitalen Zertifikat signiert werden.

In den folgenden Abschnitten wird erläutert, welche Arten digitaler Zertifikate in Authenticode verwendet werden, wie Zertifikate mithilfe von Zertifizierungsstellen validiert werden, welche Rolle Zeitstempel bei Zertifikaten spielen und welche Speichermethoden für Zertifikate verfügbar sind.

Authenticode und Codesignaturen

Ein digitales Zertifikat ist eine Datei, die ein öffentliches/privates kryptografisches Schlüsselpaar sowie Metadaten über den Softwareherausgeber, dem das Zertifikat ausgestellt wurde, und den Herausgeber des Zertifikats enthält.

Es gibt verschiedene Arten von Authenticode-Zertifikaten, die jeweils für unterschiedliche Arten von Signatur konfiguriert sind. Bei ClickOnce-Anwendungen müssen Sie ein Authenticode-Zertifikat verwenden, das für Codesignaturen gültig ist. Wenn Sie versuchen, eine ClickOnce-Anwendung mit einer anderen Art von Zertifikat zu signieren, z. B. einem digitalen Zertifikat für E-Mail, funktioniert dies nicht. Weitere Informationen finden Sie in Introduction to Code Signing (https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp; nur auf Englisch verfügbar).

Es gibt drei mögliche Quellen für Zertifikate zum Signieren von Code:

  • Erwerb von einem Zertifikatsanbieter.

  • Bezug von einer Abteilung in Ihrer Organisation, die für das Erstellen von digitalen Zertifikaten verantwortlich ist.

  • Generieren eines eigenen Zertifikats mit MakeCert.exe, das in .NET Framework SDK (Software Development Kit) enthalten ist.

So hilft die Verwendung von Zertifizierungsstellen den Benutzern

  • Ein mit dem Dienstprogramm MakeCert.exe generiertes Zertifikat wird im Allgemeinen als selbst signiertes Zertifikat oder Testzertifikat bezeichnet. Diese Art von Zertifikat funktioniert ähnlich wie eine SNK-Datei in .NET Framework: Sie besteht lediglich aus einem öffentlichen/privaten kryptografischen Schlüsselpaar und enthält keine Informationen über den Herausgeber, die überprüft werden können. Sie können selbst signierte Zertifikate verwenden, um ClickOnce-Anwendungen mit hoher Vertrauenswürdigkeit in einem Intranet bereitzustellen. Wenn diese Anwendungen jedoch auf einem Clientcomputer ausgeführt werden, meldet ClickOnce, dass sie von einem "Unbekannten Herausgeber" stammen. In der Standardeinstellung kann die Bereitstellung vertrauenswürdiger Anwendungen bei ClickOnce-Anwendungen, die mit selbst signierten Zertifikaten signiert sind und über das Internet bereitgestellt werden, nicht verwendet werden.

  • Wenn Sie hingegen ein Zertifikat von einer Zertifizierungsstelle erhalten, z. B. von einem Zertifikatsanbieter oder einer Abteilung in Ihrem Unternehmen, bietet es den Benutzern weitaus mehr Sicherheit. Es wird nicht nur der Herausgeber der signierten Software identifiziert, die Identität wird darüber hinaus bei der signierenden Zertifizierungsstelle überprüft. Wenn die Zertifizierungsstelle nicht die Stammzertifizierungsstelle ist, verfolgt Authenticode dies zurück bis zur Stammzertifizierungsstelle, um sicherzustellen, dass die Zertifizierungsstelle die Berechtigung zum Ausgeben von Zertifikaten besitzt. Aus Sicherheitsgründen sollten Sie möglichst immer Zertifikate verwenden, die von Zertifizierungsstellen ausgegeben wurden.

Weitere Informationen über das Generieren von selbst signierten Zertifikaten finden Sie unter Certificate Creation-Tool (Makecert.exe).

So verhindern Zeitstempel ein unbeabsichtigtes Ablaufen

Auch wenn Zertifikate die Sicherheit steigern, kann es vorkommen, dass sich ein unberechtigter Dritter ein Zertifikat und das entsprechende Kennwort vom rechtmäßigen Besitzer beschafft. In der Standardeinstellung ist ein von einer Zertifizierungsstelle ausgegebenes Zertifikat 12 Monate gültig. Deshalb muss der Eigentümer des Zertifikats seine Identität vor der Zertifizierungsstelle erneut nachweisen. Dies stellt sicher, dass ein unberechtigt verwendetes Zertifikat nur für eine kurze Zeit eingesetzt werden kann.

Normalerweise würde das Ablaufen eines Zertifikats bedeuten, dass Sie eine ClickOnce-Anwendung alle 12 Monate erneut signieren müssen. Authenticode gleicht dies durch die Unterstützung von Zeitstempeln aus. Wenn Sie eine ClickOnce-Anwendung mit einem Zertifikat signieren, zeichnet ClickOnce das Datum und die Uhrzeit der Signatur auf und speichert diese Angaben in der digitalen Signatur der Bereitstellung. Sofern die Bereitstellung signiert wurde, während das Zertifikat gültig war, lässt ClickOnce das Ausführen der Anwendung zu, auch wenn das Zertifikat seitdem abgelaufen ist.

Sowohl Visual Studio als auch die Windows Software Development Kit (SDK)-Tools zum Erstellen von ClickOnce-Bereitstellungen, Mage.exe und MageUI.EXE, unterstützen Zeitstempel.

Speichern von Zertifikaten

  • Sie können Zertifikate als PFX-Datei in Ihrem Dateisystem oder in einem Schlüsselcontainer speichern. Ein Benutzer in einer Windows-Domäne kann mehrere Schlüsselcontainer besitzen. In der Standardeinstellung speichert MakeCert.exe Zertifikate in Ihrem persönlichen Schlüsselcontainer, sofern Sie nicht angeben, dass diese in einer PFX-Datei gespeichert werden sollen. Für die Windows SDK-Tools zum Erstellen von ClickOnce-Bereitstellungen, Mage.exe und MageUI.exe, können Sie Zertifikate verwenden, die auf beide Arten gespeichert sind.

Siehe auch

Konzepte

Übersicht über die ClickOnce-Bereitstellung

ClickOnce-Bereitstellung und Sicherheit

Überblick über die Bereitstellung vertrauenswürdiger Anwendungen

Referenz

Tool zum Generieren und Bearbeiten von Manifesten (Mage.exe)