Code Signing Zertifikat – für was?
Code, welcher aus dem Internet heruntergeladen und lokal ausgeführt wird, beinhaltet immer ein gewisses Risiko. Um besser einstufen zu können, von wem das Programm stammt, welches heruntergeladen wurde, gibt z.B. Windows vor der Ausführung der Datei den Herausgeber dieser an:
Ohne Signierung dieser Datei wird nun „unbekannter Herausgeber“ angezeigt – wenig vertrauenserweckend. Das Alleine wäre jedoch kein zwingender Grund für ein Object Code Zertifikat.
Seit Windows Vista hat Microsoft jedoch die Spielregeln verschärft und bewertet Dateien, welche durch Windows heruntergeladen werden anhand eines eigenen Reputationssystems namens „Authenticode“ Jeder Download wird von Microsoft registriert und in der Reputationsdatenbank mit Bewertungskritierien versehen, die im Detail nur Microsoft bekannt sind. Die Anzahl der Downloads und Installationen ohne Nutzerbeschwerden sind laut offiziellen Aussagen von Microsoft jedoch eines der Kriterien. Hat eine Datei nicht genügend Reputation, tritt der ab Windows Vista eingebaute „Smartscreen Filter“ zum Vorschein:
Hat ein Programm genügend Reputation, erscheint diese Meldung zwar nicht mehr, die Meldung „Unbekannter Herausgeber“ besteht jedoch noch. Zusätzlich kann es, je nach Downloadanzahl der Datei, sehr lange dauern bis eine Datei genügend Reputation bekommt.
Update der Dateien? Goodbye Reputation
Übel wird es allerdings, wenn man diese Datei verändert, wie z.B. bei einem Update. Alle Reputation der Datei geht verloren und das Spiel fängt von vorn an. Ebenso verhält es sich mit jeder anderen Datei, welche der Smartscreen Datenbank von Microsoft unbekannt ist.
Die Lösung: Object Code Sigining Zertifikate
Um als Herausgeber – statt nur dateibasiert – Reputation bei Microsoft zu sammeln, ist eine Zertifizierung notwendig. Damit wird die erworbene Reputation an einem Zertifikat gespeichert. Neue oder veränderte Dateien werden vom Smartscreen-Filter sofort anhand der Reputation des Zertifikats bewertet – und werden somit vom Smartscreen Filter verschont.
Ebenso erscheint bei der Installation nun der zertifizierte Herausgeber, das Icon sowie die Farbe des Dialogs haben mehr den Charakter einer Frage denn einer Warnung:
Ein Object Code Signing Zertifikat erhält man bei allen CAs, die am WindowsRoot Certificate Program teilnehmen. Gerade bei renommierten CAs ist der Zertifzierungsprozess ein heillos teure Angelegenheit und für kleinere Independence Entwickler fast unerschwinglich und nicht lohnenswert.