Externe Projekte →
SAVE
Windows XP SP2 und Software-Signatur
Warnhinweise von Betriebssystem oder Internet-Browser schüchtern potentielle Download-Kunden übermäßig ein. Abhilfe schafft die digitale Signatur der Downloads.
UPDATE (Nov 2008):
Seit dieser Artikel im Jahr 2004 verfasst wurde hat sich auch bezüglich der Code-Signatur einiges getan. Windows Vista zeigt noch furchteinflößendere Meldungen an, und der im Artikel empfohlene Anbieter Thawte hat für gleichbleibende Leistung seine Preise um ein vielfaches erhöht. Ebenso hat Microsoft das "signcode"-Programm durch "signtool" ersetzt, welches mit anderen Parametern aufzurufen ist, als im Artikel genannt. Alles jedoch keine unbeherrschbaren Probleme.
Das Zertifizierungsunternehmen Comodo bietet Code-Signing-Zertifikate erheblich günstiger als Thawte und Verisign an - mit kaum einem Unterschied zu den überteuerten Alternativen. Microsoft hat Comodo zur vertrauenswürdigen Zertifikatquelle erklärt und die überwiegende Mehrzahl aller Windows-Installation mittels Windows Update, den neuen Service Packs und Windows-Versionen mit Comodo's Root-Zertifikat nach- bzw. ausgerüstet.
Noch günstiger gibt es die Comodo-Zertifikate über den Wiederverkäufer KSoftware. Mitchell Vincent von KSoftware ist auch Mitglied in der Association of Shareware Professionals (ASP) und für ASP-Mitglieder gibt es sogar einen weiteren Rabatt.
Zur Verwendung des neuen SignTool von Microsoft sei auf die Beschreibung der Parameter in MSDN oder einen CodeSigning-Artikel auf entwicklergemein.de verwiesen. Hervorzuheben ist, beim Signieren unbedingt einen Zeit-Server zum Erstellen eines "Time Stamp" anzugeben. Damit bleibt die Signatur auch über das Ablaufdatum des Zertifikats hinweg gültig.
Wer ein Build-Werkzeug, wie den sehr empfehlenswerten FinalBuilder einsetzt, spart sich übrigens den Umgang mit dem SignTool.
Nun zum "alten" Artikel über Code-Signatur...
Das von Microsoft im August 2004 veröffentlichte Sicherheitsupdate Service Pack 2 für Windows XP betrifft in speziell einem Aspekt auch Shareware-Entwickler. Neu ist der so genannte Attachment Execution Service (AES), mittels dem sich das Betriebssystem die Herkunft einer Datei, z.B. eines Downloads aus dem Internet "merkt" und später, beim Versuch, diese Dateien aus dem Windows Explorer heraus auszuführen, eine Sicherheitswarnung anzeigt.
Diese Sicherheitswarnung wird in den meisten Fällen bei heruntergeladener Shareware den folgenden Text anzeigen:
"Der Herausgeber konnte nicht verifiziert werden. Möchten Sie diese Software ausführen?" - "Herausgeber: Unbekannter Herausgeber"
"Diese Datei verfügt über keine gültige digitale Signatur, die den Herausgeber verifiziert. Sie sollten nur Software ausführen, die von Herausgebern stammt, denen Sie vertrauen."
Dies ist nur vermeidbar durch eine Code-Signatur seitens des Herstellers, hier also des Shareware-Autors. Eine solche Signatur stellt für den Endanwender sicher, dass die heruntergeladene Datei tatsächlich von dem, in der Signatur genannten Hersteller stammt, und nicht anderweitig manipuliert wurde. Natürlich stellt die Signatur nicht sicher, dass das signierte Programm irgendwelchen Qualitätsmaßstäben entspricht, viren- oder trojanerfrei ist, oder Ähnliches. Jedoch erwartet man offenbar in der Regel nicht, dass Virenautoren ihre Produkte signieren, insbesondere auch da die Vergabe von Zertifikaten, die die Signatur ermöglichen, mit bestimmten Kontrollen verknüpft ist. Insofern misst Microsoft der Signatur einen hohen Stellenwert bei und hat entschieden, oben angeführte Warnungen für nicht-signierte Downloads anzuzeigen. Für signierte Downloads sieht die Sicherheitswarnung dann so aus:
"Möchten Sie diese Datei ausführen?" - "Herausgeber: [Name des Herstellers]"
"Diese Datei kann auf dem Computer Schaden anrichten. Führen Sie nur Software aus, die von Herausgebern stammt, denen Sie vertrauen."
Inwiefern dies nun eine Verbesserung darstellt, muss natürlich jeder Hersteller selbst abwägen...
Der Weg zum eigenen Zertifikat
Entscheidet sich der Hersteller, seine Programm-Downloads digital signieren zu wollen, erfordert dies den Erwerb eines Zertifikats zur Software-Signatur. Microsoft "vertraut" dabei bestimmten Zertifizierungsstellen, die damit berechtigt sind, entsprechende Zertifikate auszustellen. Die beiden bekanntesten davon dürften die Firmen Verisign und Thawte sein, wobei letztere 1999 von ersterer akquiriert wurde. Die Kosten für ein einjährig gültiges Zertifikat liegen bei VeriSign bei ca. 400 USD, Thawte ist mit ca. 200 USD knapp um die Hälfte günstiger. Zudem vergibt VeriSign nur Zertifikate an ordentliche Firmen, also z.B. solche mit Eintrag im Handelsregister, nicht an Privatpersonen - zu denen hier auch der Einzelunternehmer zählt. Außerdem beglückt Thawte sogar mit deutschsprachigen Bearbeitern und einer kostenfreien deutschen Faxnummer, während VeriSign in erster Linie aus Kanada auf Englisch kommuniziert.
Die Bestellung eines Zertifikates ist ein Leichtes. Es ist lediglich darauf zu achten, tatsächlich ein "Code Signing Certificate" zu bestellen, kein SSL-Zertifikat für einen Webserver, was erheblich häufiger ausgestellt werden dürfte. Wesentlich schwieriger gestaltet sich dann der Beweis der eigenen Existenz. Bei VeriSign ist dieser am Einfachsten durch Angabe einer Duns and Bradstreet (DUNS) - Nummer zu erbringen. Andernfalls sind Unterlagen einzureichen, die die Richtigkeit des Firmennamens belegen, z.B. von Gewerbeamt oder Handelsregister. Eine einfache Gewerbeanmeldung ("Gewerbeschein") akzeptiert VeriSign nicht. Auch die Ausstellung auf eine Privatperson wird nicht geduldet. Insofern dürfte für die meisten Shareware-Autoren ohnehin eher das Zertifikat bei Thawte in Frage kommen. Hier genügt es, die Gewerbeanmeldung zu faxen, jedoch darf diese nicht älter als zwei Monate sein. Bei älterer Anmeldung ist es erforderlich, sich bei der ausstellenden Behörde (Ordnungs- oder Gewerbeamt) einen Datumsstempel aufdrücken zu lassen. Einige Behörden stellen evtl. eine Zweitschrift gegen geringe Gebühr aus, die bestätigt, dass das Gewerbe immer noch angemeldet ist. Weiterhin sollte der Antragsteller im deutschen Telefonbuch eingetragen sein, andernfalls ist noch eine Kopie der letzten Telefonrechnung einzusenden. Die Zertifizierungsstelle wird in der Folge versuchen, den Antragsteller telefonisch zu erreichen und dann, nach Zahlung der Gebühr, das Zertifikat ausstellen. Liegen alle Dokumente vor, ist mit einer Lieferung des Zertifikats innerhalb von 2-3 Geschäftstagen zu rechnen.
Ausführbare Dateien zertifizieren
Bereits bei der Bestellung wurde ein privater Schlüssel für das Zertifikat erstellt. Dieser wurde z.B. in der Datei C:\mykey.pvk gespeichert (Von einem Umbenennen der Datei mit dem privaten Schlüssel ist abzuraten.) und mit einem Passwort versehen. Dass es nun ungünstig ist, Schlüssel oder Passwort zu verlieren, liegt auf der Hand. Jedoch bietet z.B. Thawte bei Problemen mit dem privaten Schlüssel (und diese Probleme stehen in deren FAQ auf der obersten Position) unkompliziert und kostenlos eine Neuausstellung ("Reissue") von privatem Schlüssel und Zertifikat an. Die Sicherung des privaten Schlüssels durch ein Passwort erfordert nun natürlich bei jeder Signierung die Eingabe des Passwortes. Dies ist insbesondere bei automatischen oder unbeaufsichtigten Build-Läufen problematisch. Nach Auskunft des Thawte Supports soll dies jedoch unumgänglich sein, da Microsoft Authenticode auf Verwendung eines Passworts bestehe. Authenticode ist die von Microsoft angebotene Technologie zum Signieren ausführbarer Dateien. Die benötigten Programme sind in Microsofts Platform SDK enthalten. In erster Linie benötigt der Softwarehersteller das Programm "signcode.exe". Dieses kann über die Kommandozeile ausgeführt werden (Parameter mit "signcode -?"). Bei Start ohne Parameter bietet es eine Assistenten-basierte Oberfläche. Um z.B. die Datei MyProg.exe zu signieren ist einfach folgender Befehl einzugeben: "signcode -v C:\mykey.pvk -spc C:\mycert.spc MyProg.exe". Dabei ist mykey.pvk die Datei mit dem privaten Schlüssel und mycert.spc die Datei mit dem Zertifikat, die man nach erfolgter Ausstellung von der Zertifizierungsstelle erhalten (oder heruntergeladen) hat. Zusätzlich empfehlenswert ist die Verwendung des Parameters -t http://timestamp.verisign.com/scripts/timstamp.dll um die signierte Datei gleichzeitig mit einem Zeitstempel zu versehen. Andernfalls läuft mit dem Gültigkeitsdatum des Zertifikats auch die Vertrauenswürdigkeit der Signatur aus.
Fazit
Alles in Allem ist die Code-Signierung eine einfache Angelegenheit - wenn es erst einmal gelungen ist, die eigene Existenz einer Zertifizierungsstelle zu beweisen. Ob sich die Kosten in Höhe von erstmalig ca. 200 EUR und dann jährlich ca. 160 EUR (denn natürlich wird ein Zertifikat nicht zeitlich unbegrenzt ausgestellt!) lohnen, muss jeder Hersteller für sich entscheiden. Dass Anwender schon immer lax auf Sicherheitswarnungen reagieren und diese gerne schneller wegklicken, als sie erscheinen, dürfte sich auch durch Microsofts Update nicht ändern. So dürfte auch die neue Warnung schnell zur Routine werden. Für PC-unerfahrenere Anwender mag der Hinweis auf den zertifizierten Hersteller (wenn auch trügerisch) beruhigend und womöglich vertrauensbildend wirken. Im Geschäftsumfeld mag es zukünftig Firmen geben, die ihre Arbeitsstationen so vorkonfigurieren, dass unsignierte Programme überhaupt nicht ausgeführt werden können.
|