Signieren eines Windows 10-App-Pakets
Das Signieren des App-Pakets ist ein erforderlicher Schritt bei der Erstellung eines Windows 10-App-Pakets, das bereitgestellt werden kann. Unter Windows 10 müssen alle Anwendungen mit einem gültigen Codesignaturzertifikat signiert werden.
Für die erfolgreiche Installation einer Windows 10-Anwendung muss das Paket nicht nur signiert, sondern auf dem Gerät auch als vertrauenswürdig eingestuft werden. Das bedeutet, dass das Zertifikat einem der vertrauenswürdigen Stämme auf dem Gerät zugewiesen sein muss. Unter Windows 10 werden Zertifikate von den meisten Zertifizierungsstellen, die Codesignaturzertifikate bereitstellen, standardmäßig als vertrauenswürdig eingestuft.
Wenn Sie ein MSIX-Bündel erstellen, müssen Sie außerdem nicht alle Pakete im Bundle einzeln signieren. Nur das Bündel muss signiert werden, und alle Pakete innerhalb werden rekursiv signiert.
Thema | Beschreibung |
---|---|
Voraussetzungen für die Signierung | In diesem Abschnitt werden die Voraussetzungen für die Signierung des Windows 10-App-Pakets beschrieben. |
Verwenden von SignTool | In diesem Abschnitt wird das Signieren des App-Pakets mithilfe von SignTool aus dem Windows 10 SDK beschrieben. |
Signieren eines MSIX-Pakets mit Device Guard-Signatur | In diesem Abschnitt wird erläutert, wie Sie Ihre App mit device Guard-Signatur signieren. |
Erstellen nicht signierter Pakete zu Testzwecken | In diesem Abschnitt wird erläutert, wie Sie ein nicht signiertes Msix-Paket erstellen. |
Verwendung von Zeitstempeln
Es wird dringend empfohlen, die Zeitstempelung beim Signieren Ihrer App mit einem Zertifikat zu verwenden. Die Zeitstempelung behält die Signatur bei, sodass das App-Paket von der App-Bereitstellungsplattform akzeptiert werden kann, auch nachdem das Zertifikat abgelaufen ist. Zum Zeitpunkt der Paketüberprüfung ermöglicht der Zeitstempel, dass die Paketsignatur mit Bezug auf den Zeitpunkt der Signierung überprüft werden kann. Dadurch können Pakete akzeptiert werden, selbst nachdem das Zertifikat nicht mehr gültig ist. Pakete, die nicht mit einem Zeitstempel versehen sind, werden anhand der aktuellen Zeit verglichen. Wenn das Zertifikat nicht mehr gültig ist, wird das Paket unter Windows nicht akzeptiert.
Nachfolgend sind die verschiedenen Szenarien für die App-Signierung mit und ohne Zeitstempel aufgeführt:
Szenario | App wird ohne Zeitstempel signiert. | App wird mit Zeitstempel signiert. |
---|---|---|
Zertifikat ist gültig. | App wird installiert. | App wird installiert. |
Zertifikat ist ungültig (abgelaufen). | App wird nicht installiert. | App wird installiert, da die Echtheit des Zertifikats bei der Signierung durch die Zeitstempelzertifizierungsstelle überprüft wurde. |
Hinweis
Wenn die App erfolgreich auf einem Gerät installiert wurde, wird sie auch nach Ablauf des Zertifikats ausgeführt, unabhängig davon, ob sie mit einem Zeitstempel versehen ist oder nicht.
Erzwingung der Paketintegrität
Zusätzlich zur Sicherstellung, dass nur vertrauenswürdige Anwendungen auf einem Gerät installiert sind, bietet das Signieren eines MSIX-Pakets zusätzliche Vorteile, dass Windows die Integrität Ihres Pakets und dessen Inhalte erzwingen kann, nachdem es auf einem Gerät bereitgestellt wurde. Durch Verketten mit appxBlockMap.xml und AppxSignature.p7x in einem signierten Paket kann Windows Überprüfungen der Integrität eines Pakets und seiner Inhalte zur Laufzeit und während der Windows Defender-Scans durchführen. Wenn ein Paket als manipuliert eingestuft wird, blockiert Windows den Start der Anwendung und startet einen Wartungsworkflow, um das Paket repariert oder neu zu installieren. Für Pakete, die nicht über den Microsoft Store verteilt werden, wird die Paketintegrität erzwungen, wenn das Paket das uap10:PackageIntegrity-Element deklariert und unter Windows 2004 und höher bereitgestellt wird. Nachfolgend finden Sie eine Beispieldeklaration der Erzwingung der Paketintegrität in der AppxManifest.xml:
<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
IgnorableNamespaces="uap10">
...
<Properties>
<uap10:PackageIntegrity>
<uap10:Content Enforcement="on" />
</uap10:PackageIntegrity>
</Properties>
...
</Package>
Gerätemodus
Unter Windows 10 können Benutzer in der App „Einstellungen“ den Modus auswählen, in dem ihr Gerät ausgeführt wird. Als Modi stehen „Microsoft Store-Apps“, „Apps querladen“ und „Entwicklermodus“ zur Verfügung.
Microsoft Store-Apps ist der sicherste Modus, da nur Apps aus dem Microsoft Store installiert werden können. Apps im Microsoft Store durchlaufen einen Zertifizierungsprozess, um sicherzustellen, dass sie für die Verwendung sicher sind.
Apps querladen und Entwicklermodus sind weniger einschränkend für Apps, die mit anderen Zertifikaten signiert werden, solange diese Zertifikate vertrauenswürdig sind und einem der vertrauenswürdigen Stämme auf dem Gerät zugewiesen sind. Wählen Sie „Entwicklermodus“ nur aus, wenn Sie Entwickler sind und Windows 10-Apps erstellen oder debuggen. Weitere Informationen zum Entwicklermodus und seinen Einstellungen finden Sie hier.
Hinweis
Ab Windows 10, Version 2004, ist die Option "Querladen" standardmäßig aktiviert. Daher ist der Entwicklermodus jetzt ein Umschalter. Unternehmen können das Querladen weiterhin über eine Richtlinie deaktivieren.