Code Signing

Es ist eine Frage der Glaubwürdigkeit und der Seriosität. Und das kostet. Das ist sinnvoll, lässt aber Dritte ganz gut mitverdienen.

 

Wenn man selbst entwickelte Software verkaufen möchte, dann muss diese digital signiert sein. Digitale Signatur bedeutet, dass eine Datei zweifelsfrei von einem bestimmten Anbieter kommt und nicht etwa in dessen Namen von Anderen publiziert wurde. 

Bei Visual Studio von Microsoft ist es so, dass jeder Code, der in den Release geht, digital signiert werden kann, sofern ein Zertifikat in Dateiform vorliegt. Digitale Signatur muss nicht sein – ein Programm oder ein AddIn läuft auch ohne digitale Signatur – ist aber eine stillschweigende Voraussetzung, die nahezu unbemerkt hinter jeder Software steckt.

 

Ist ein Code nicht signiert, dann passiert während der Installation folgendes:

Bei der Installation einer Office-Erweiterung erscheint dieser Warnhinweis:

In beiden Fällen muss der Nutzer ein tiefes Vertrauen in den Entwickler setzen und die Installation einfach fortsetzen. Wer aber würde das machen, wenn die Software von einer Web-Page heruntergeladen wurde und man den Autor eben nicht persönlich kennt?

 

Ich umgehe das derzeit z.B. bei meinem XcelPack1, in dem ich ein VB-Script als Installations-Routine nutze. Das zeigt dann keine Fehlermeldungen, setzt aber voraus, dass diese Scripts auf dem Rechner ausgeführt werden dürfen. Oft kommt auch hier ein allgemeiner Warnhinweis. Und es gibt nichts, was so umständlich und unseriös wirkt, wie ein solches VB-Script.

 

Ich habe mich daher heute entschieden, ein Zertifikat für das Code-Signing zu erwerben. Diese Zertifikate werden von namhaften Firmen ausgestellt - teilweise bieten Re-Seller verschiedene Zertifizierungen an. VeriSign oder Thawte sind sehr bekannt.

Technisch läuft das so ab, dass die Zertifizierung nach einer Identitätsprüfung als Datei zur Verfügung gestellt wird. Diese Datei funktioniert dann wie eine elektronische Unterschrift. Der Verfasser ist dann eben nicht mehr unbekannt und Windows akzeptiert die Validierung des Codes durch einen vertrauenswürdigen Herausgeber des Zertifikats.

 

Dieses Prinzip lässt diese Herausgeber und die Re-Seller der Zertifikate mächtig verdienen. Der Gründer von Thawte, der Unternehmer Mark Shuttleworth, hat seine Firma für eine halbe Milliarde Dollar verkauft und mischt nun als Chef von Canonical (bekannt durch die führende Linux Distribution „Ubuntu“) seit einigen Jahren bei den ganz Großen der Branche mit. Wenn man sich überlegt, wie wenig Aufwand die Ausstellung eines solchen Zertifikates verursacht und wie viel so etwas kostet, dann war das sehr schlau, wenn sich jemand wie Shuttleworth schon sehr früh darauf spezialisiert hat. Die Aussteller der Zertifikate sind unverzichtbare Firmen – eine Art globaler, notarieller Service.

 

Drei Jahre verbriefte Glaubwürdigkeit und Seriosität, bestätigt durch den Anbieter „Comodo“, kosten mich 260,- EUR. So ist das nun Mal. Vertrauen im Kleinen erwirbt man durch Charakter – globales Vertrauen ist käuflich. Das hört sich kritischer an, als ich es eigentlich meine. Ich wüsste nämlich nicht, welche Lösung eine bessere wäre. 

 

Falls jemand auf diese Seite gelangt und Infos zu Code Signing sucht und davon gelesen hat, dass man seinen Code auch selbst signieren kann (z.B. mit OpenSSL) – das funktioniert nur in der eigenen Domain. Fehlermeldungen beim Kunden liessen sich bei selbstsigniertem Code nur vermeiden, wenn das selbst erzeugte Zertifikat als gültiges Zertifikat in der Domain des Kunden installiert wäre. Und das würde niemand machen. Die Zertifizierungsinstanz ist zwingend notwendig.