Installation mit Inno Setup: Setup.exe signieren

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Die Windows-internen Sicherheitsfunktionen und die verschiedenen Virenscanner von Drittanbietern werden immer aufmerksamer, wenn es um das Herunterladen oder Installieren von Dateien geht – insbesondere .exe-Dateien sind grundsätzlich suspekt. Das ist uns in letzter Zeit häufig beim Bereitstellen von Setups von Tools aufgefallen. Wir wollen dies umgehen und sicherstellen, dass der Benutzer die von uns bereitgestellten Tools ohne Probleme installieren kann und sich nicht verunsichern lässt. Da wir bereits im Artikel “Installation mit Inno Setup: Die Basics” erläutert haben, wie wir Setups mit Inno Setup erstellen, schauen wir uns auch gleich an, wir dieses Tool zum Signieren unserer Setups nutzen können. Außerdem brauchen wir noch ein

Signieren

Signieren bedeutet, dass wir nachweisen, dass unsere Software aus einer vertrauenswürdigen Quelle stammt und vor allem auf dem Weg von der Herstellung zum Rechner des Kunden nicht manipuliert wurde. Wir können Dateien mit Tools wie dem von Microsoft bereitgestellten signtool.exe signieren, aber es gibt auch noch eine Reihe anderer Möglichkeiten. Wir wollen uns jedoch zuerst einmal auf signtool.exe konzentrieren, da dies eine kostenlose Möglichkeit bietet.

Hier gibt es wiederum verschiedene Möglichkeiten. Wir können eine bereits vorhandene .exe-Datei zuerst erstellen und diese dann per Aufruf von signtool.exe über die Kommandozeile signieren. Wenn wir eine Setup-Datei signieren können, geht dieser Weg auch – aber noch praktischer ist es, die Signierung direkt in das Tool zum Erstellen des Setups zu integrieren. Das gelingt mit Inno Setup recht einfach. In diesem Artikel schauen wir uns beide Möglichkeiten an. Zunächst wollen wir jedoch das benötigte signtool.exe installieren.

Zertifikat

Neben signtool.exe benötigen wir noch ein Zertifikat. Zertifikatsanbieter gibt es viele, die meisten bieten Zertifikate für Webseiten an. Wir suchen nach einem Zertifikat, das explizit für das Code Signing geeignet ist. Solche gibt es zu Preisen ab 200 EUR pro Jahr. Wer seine Softwareprodukte Kunden über das Internet zur Verfügung stellen möchte, tut vermutlich gut daran, diese Investition zu tätigen. Anderenfalls werden die Kunden immer wieder durch Warnmeldungen verunsichert, die beim Download oder bei der Installation der Dateien angezeigt werden.

Das ist vermutlich der aufwendigste Schritt. Welches Zertifikat ist das Richtige? Worauf soll ich achten? Welchen Preis zahle ich für das Zertifikat? Wie erhalte ich es? Wie viele Anwendungen kann ich damit zertifizieren? Diese und andere Fragen werden wir in diesem Artikel beantworten.

Ein Zertifikat erwerben oder selbst erstellen?

Wie können ein Zertifikat kaufen oder eines selbst erstellen. Wenn wir eines kaufen, haben wir die Wahl zwischen verschiedenen Anbietern und zwischen zwei verschiedenen Arten von Zertifikat. Als Erstes sollte man sich nicht in die Irre führen lassen und ein kostenloses oder sehr günstig erscheinendes Zertifikat von Anbietern wir Let”s Encrypt et cetera kaufen. Diese sind in der Regel nicht für das Signieren von Code gedacht, sondern für die Verschlüsslung von Webseiten. Das sind jedoch zwei völlig unterschiedliche Dinge. Was wir suchen, nennt sich Code Signing Certificate und wird nach unseren Recherchen nur in den USA angeboten. Dort finden wir Anbieter wie Certera, Comodo, Sectigo oder digicert. Forschen wir etwas weiter, sehen wir, dass es verschiedene Code Signing Certificates gibt, deren Preise sich unterscheiden. In Bild 1 finden wir beispielsweise zwei verschiedene Produkte namens Certera Code Signing und Certera EV Code Signing. Ersteres ist ein Standard Validation Code Signing Certificate, während Letzteres ein Extended Validation Code Signing Certificate ist. Der Name ist Programm – die EV-Version hat zusätzliche Funktionen.

Verschiedene Zertifikate von unterschiedlichen Anbietern

Bild 1: Verschiedene Zertifikate von unterschiedlichen Anbietern

Bei den Standard Validation Certificates gibt es wiederum OV-Zertifikate (für Organizational) und individuelle Zertifikate. Hier ist der Unterschied, dass wir beim OV-Zertifikat ein Unternehmen angeben und validieren lassen müssen, während dies für ein individuelles Zertifikat nicht nötig ist – hier muss nur die Person, auf die das Zertifikat ausgestellt wird, validiert werden. Das gelingt in der Regel über den Personalausweis oder ein ähnliches Dokument.

Die wichtigsten Unterschiede schauen wir uns in den folgenden Abschnitten an.

Validierung des Identitätsnachweises

  • Standard Validation Code Signing: Bei der Standardvalidierung wird die Identität des Entwicklers oder Herausgebers des Codes auf Basis von grundlegenden Überprüfungen verifiziert, wie zum Beispiel das Überprüfen der Domaininhaberschaft oder des Organisationsnamens. Diese Validierung erfolgt schneller und erfordert weniger umfangreiche Dokumente.
  • Extended Validation Code Signing: Die erweiterte Validierung erfordert eine umfassendere Überprüfung der Identität des Herausgebers. Dazu gehören strengere Identitätsnachweise, wie zum Beispiel rechtliche Dokumente und eingehende Überprüfungen, um sicherzustellen, dass die Identität des Herausgebers verifiziert ist. Dies führt zu einem höheren Maß an Vertrauen, da die Benutzer sicher sein können, dass der Code von einem vertrauenswürdigen Quellen stammt.

Sichtbarkeit des Zertifikats

  • Standard Validation Code Signing: Zertifikate mit Standardvalidierung enthalten weniger ausführliche Informationen über den Herausgeber und die Organisation, was bedeutet, dass Benutzer weniger Informationen über die Authentizität des Codes haben.
  • Extended Validation Code Signing: Zertifikate mit erweiterter Validierung enthalten zusätzliche Informationen über den Herausgeber und die Organisation. Dies wird durch eine spezielle Kennzeichnung im Zertifikat selbst angezeigt, was dem Benutzer eine höhere Sicherheitsebene signalisiert.

Vertrauenswürdigkeit und Anzeige:

  • Standard Validation Code Signing: Code, der mit einem Standardvalidierungszertifikat signiert ist, wird oft als sicherer betrachtet als nicht signierter Code. Benutzer könnten jedoch weniger Vertrauen haben, da die Identität des Herausgebers nicht so stark überprüft wurde.
  • Extended Validation Code Signing: Durch die strengere Validierung und die sichtbaren Indikatoren wird der Code mit erweiterter Validierung gegebenenfalls als als vertrauenswürdiger und sicherer angesehen. Benutzer sind eher bereit, auf solchen Code zuzugreifen.

Kosten und Aufwand

  • Standard Validation Code Signing: Die Kosten und der Aufwand für die Erlangung eines Zertifikats mit Standardvalidierung sind in der Regel geringer, da die Anforderungen weniger streng sind. Außerdem ist die Standardvalidierung günstiger.
  • Extended Validation Code Signing: Die erweiterte Validierung erfordert mehr Dokumentation und Zeit, was zu höheren Kosten und einem größeren Aufwand führen kann. Die erweiterte Validierung ist auch in der Anschaffung teurer.

Technische Unterschiede beim praktischen Einsatz

 

Schreibe einen Kommentar