Code Signing Zertifikat

Beim Code Signing werden ausführbare Dateien bzw. Skripte mithilfe eines Signierwerkzeugs und eines digitalen Zertifikats digital signiert.
Die Unternehmen, die Software entwickeln bzw. Software-Entwickler können auf dieser Weise eigene Software schützen. Mit dieser Methode werden der Lieferant der Software als auch der Kunde, der die Software einsetzt, geschützt. Vor allem geht hier um die Software, die aus dem Internet geladen wird.
Wenn jemand versuchen, die Software zu manipulieren (ändern), wird die digitale Signatur ungültig.

In diesem Artikel wird praktisch beschrieben, wie man eigene Applikationen mit eigenem Zertifikat signiert.

Wir unterteilen hier die Signierung in zwei Bereiche.

  • Wir wollen eine Applikation im Internet veröffentlichen (Public Code Signing).
    In unserem Fall wäre das eine Anwendung, die wir auf eigener Homepage zum Download zur Verfügung stellen, die die Kunden später auf eigenen Windows-Rechner installieren können.
    Es wird hier ein kostenpflichtiges Zertifikat von einer Zertifizierungsstelle gebraucht. Ein Unternehmen bzw. ein Entwickler (auch wenn der Entwickler kein Unternehmen hat) kann so ein Zertifikat von einer Zertifizierungsstelle, kostenpflichtig, nach der Überprüfung bekommen.

  • Wir wollen eine Applikation in lokalem Domänen-Netzwerk in einem Pool zur Verfügung stellen (Private Code Signing). Einige Administratoren in Administrator-Gruppen mit beschränkten Rechten haben dann die Möglichkeit, die Anwendungen zu installieren. Die Gruppenrichtlinien sind so gesetzt, dass nur Signierte-Programme installiert werden dürfen.
    Für interne Zwecke können wir ein Zertifikat selbst erstellen und auch selbst bestätigen. Das ca.crt müssen wir dann auf alle Rechner in der Domäne verteilen, bzw. importieren.

Wie unterscheidet man eine ausführbare Datei, die mit einem Zertifikat signiert ist, von einer Datei, die nicht signiert ist? Die Antwort ist ganz einfach. Mit der rechten Maus-Taste auf die ausführbare Datei und dann auf Eigenschaften. Die signierte Datei hat einen Reiter mehr. Zu Vorschauzwecken nehme ich eine Datei (mein Programm),
z.B. schalies7_install.exe.

Punkt
Die Datei schalies7_install.exe ist noch nicht signiert. In der Eigenschaften der Datei gibt es noch keinen zusätzlichen Reiter "Digitale Signaturen".

 

Punkt
Die Datei schalies7_install.exe ist signiert. In der Eigenschaften der Datei gibt es einen zusätzlichen Reiter "Digitale Signaturen".

 

Wir haben ein Installationsprogramm signiert und im Internet zur Verfügung gestellt. Das Programm wird z.B. von einem Kunden heruntergeladen und der Kunde installiert es auf einem PC.

Punkt
Wenn das Programm nicht signiert ist, kommt von Benutzerkontensteuerung Meldung, dass die App von einem unbekannten Herausgeber ist. Unter Windows 10 ist es noch gelb gekennzeichnet.

 

Punkt
Wenn das Programm signiert ist, kommt von Benutzerkontensteuerung eine Meldung und unter "Verifizierter Herausgeber" steht der Unterzeichner. Unter Windows 10 ist es blau gekennzeichnet.

 

Um eine App zu signieren, brauchen wir auf jeden Fall ein Zertifikat. Wie wir ein Zertifikat beantragen bzw. wie wir ein geeignetes Zertifikat erstellen, wird in einem anderen Artikel beschrieben.

Public Code Signin
Private Code Signing