Hallo zusammen,
ich suche aktuelle Infos zum Thema "Software signieren". Also das Signieren von z.B. einem Setup, damit unter Windows der Hinweis des "unbekannten Herausgebers" unterbleibt und sichergestellt wird, dass die Software aus einer bestimmten Quelle stammt. Ich habe dazu im Web nicht so recht passende Infos gefunden.
Mir geht es dabei speziell um folgende Punkte:*Was für ein Zertifikat genau benötigt man dafür? *Wer sind "gute" Anbieter solcher Zertifikate? *Lässt sich der Signierungsvorgang im VS Buildprozess integrieren (ich nehme an, ja)?
Danke und Grüße!
Was für ein Zertifikat genau benötigt man dafür?
Du brauchst ein sog. "Code Signing Certificate".
Wer sind "gute" Anbieter solcher Zertifikate?
Alle Anbieter, die auch "normale" Zertifikate ausstellen, also Thawte, VeriSign etc. Günstig ist "StartSSL".
Lässt sich der Signierungsvorgang im VS Buildprozess integrieren (ich nehme an, ja)?
Yepp... Machst Du einen Rechtsklick auf Dein Projekt, wählst "Eigenschaften" und im folgenden Dialog den Tab "Signierung". Dort gibt es die Option "Assembly signieren". Alternativ "per Hand" mit dem Kommandozeilentool "signtool.exe".
Kochrezept: Code Signing Certificate von StartSSL
Code signing mit StartSSL – Teil 1
Code signing mit StartSSL – Teil 2
Code signing mit StartSSL – Teil 3
Alles klar?!? 😉
Bye,
Michael
Debuggers don't remove Bugs, they only show them in Slow-Motion.
Yepp... Machst Du einen Rechtsklick auf Dein Projekt, wählst "Eigenschaften" und im folgenden Dialog den Tab "Signierung". Dort gibt es die Option "Assembly signieren". Alternativ "per Hand" mit dem Kommandozeilentool "signtool.exe".
Vorsicht, der Punkt "Assembly signieren" im VS und die Signatur mit dem signtool sind zwei unterschiedliche paar Schuhe.
Erstere signiert das .NET Assembly mit einem starken Namen mit dem privaten Schlüssel des CodeSignatur-Zertifikates. Diese Assemblysignatur ist aber keine Authenticode Signatur die benötigt wird um z.B. die Meldung "Unbekannter Herausgeber" zu entfernen. Diese bekommt man nur mit dem signtool.
Grüße,
Max
Vorsicht, der Punkt "Assembly signieren" im VS und die Signatur mit dem signtool sind zwei unterschiedliche paar Schuhe.
Erstere signiert das .NET Assembly mit einem starken Namen mit dem privaten Schlüssel des CodeSignatur-Zertifikates. Diese Assemblysignatur ist aber keine Authenticode Signatur die benötigt wird um z.B. die Meldung "Unbekannter Herausgeber" zu entfernen. Diese bekommt man nur mit dem signtool.
Genau das war der Punkt bzgl. meiner Unsicherheit, WAS für ein Zertifikat ich benötige.
Ich hatte einen Anbieter gefunden, bei dem ich im ersten Step zwischen ca. 10 Zertifikatstypen wählen musste, und da war dann aus bei mir 😉
Wenn im Zertifikatstyp etwas von (Microsoft) Authenticode vorkommt, dann kannst du damit ordentliche Signaturen für Windows-Binaries (dll, exe, ocx, etc) erstellen.
Grüße,
Max
Eine gute Übersicht und Anleitung - was es ist und vor allem, was es nicht ist - gibt es auch noch unter Jeff Wilcox – Getting started with code signing for under $100.
Ansonsten schließe mich den Antworten von Maximilian voll und ganz an.
Worauf du außerdem achten solltest, ist die Zertifikatsausstellerkette. Also ob das Root-Zertifikat schon standardmäßig im Betriebssystem vorhanden ist - denn wenn dem nicht so ist, bekommst du weiterhin die "unbekannter Herausgeber"-Meldung.
Es gibt zwar Anbieter, bei denen du Zertifikate sehr kostengünstig oder sogar kostenlos bekommst, aber in der Regel muss man deren Root-Zertifikat erst nachinstallieren (z.B. bei CACert), oder aber es wird von vielen Betriebssystemen/Browsern/etc. akzeptiert, aber eben nicht von allen (afaik zählt StartSSL zu denen).
Relativ sicher, dass das Zertifikat auch als vertrauenswürdig anerkannt wird, sollte man sich bei den großen Anbietern (Thawte, VeriSign, Comodo) sein können - allerdings sind deren Zertifikate üblicherweise relativ teuer (mehrere Hunderter). Jedoch gibt es auch Reseller, die deren Zertifikate sehr günstig anbieten (wir nutzen z.B. K-Software: ab 73$ pro Jahr).
dN!3L