Eigene Anwendungen digital signieren - eine Mini-Einführung
Selbst Code signieren
Das ist die absolute Kurzfassung für diejenigen, die mal eben mit digitalen Signaturen herumspielen möchten. In diesem Beispiel wird ein eigenes digitales Zertifikat erzeugt und dann lokal auf dem Rechner installiert. Warum selbst signieren? Wird eine nicht signierte Anwendung unter Vista als Administrator ausgeführt, so erscheint das Fenster der Benutzerkonten-Steuerung in recht hässlicher Art und Weise: Eine digital signierte Anwendung lässt dieses Fenster schon etwas angenehmer ausschauen: Im professionellen Einsatz wird man um den Erwerb eines Zertifikates nicht umhin kommen, doch für erste Gehversuche auf dem lokalen Rechner kann diese „Spar-Variante“ ausreichen. Kleiner Bonus am Rande: Man kann hiermit auch Treiber signieren und damit zum Beispiel die Vista-Varianten zufriedenstellen, die auf digital signierte Treiber bestehen. Eine weitere Einsatzmöglichkeit für dieses Zertifikat wäre das digitale Signieren einer Anwendung, die nur haus-intern eingesetzt wird, wo der Erwerb eines Zertifikates also nicht zwingend notwendig wäre. Mit den folgenden zwei Befehlen wird ein Minimal-Zertifikat erstellt und auf dem lokalen Rechner installiert. In meinem Beispiel wird das Zertifikat in der Datei „d:\my_certificate.cer“ gesichert, diesen Pfad müsst Ihr ggf. an Euer System anpassen. Für die Installation des Zertifikates in Schritt #2 werden administrative Rechte benötigt. Die beiden verwendeten Werkzeuge „makecert“ und „signtool“ sind Bestandteile des .NET SDK von Microsoft und finden sich im .\BIN-Verzeichnis der .NET-SDK-Installation. 1) Zertifikat erzeugen:
Code:
2) Das frisch erzeugte Zertifikat In den Speicher vertrauenswürdiger Stammzertifizierungsstellen installieren:
makecert.exe -$ individual -r -pe -ss "DP Certificate Store" -n CN="DP Signierung" "d:\my_certificate.cer"
Code:
Nun können wir dieses Zertifikat auf unserem lokalen Rechner nutzen. Soll das Zertifikat auch auf anderen Rechnern genutzt werden, so muss die Zertifikatsdatei auf den anderen Rechner kopiert werden und danach der Schritt #2 auf diesem Rechner ausgeführt werden (ebenfalls mit Admin-Rechten).
certmgr.exe /add "d:\my_certificate.cer " /s /r localMachine root
3) Eine Datei mit dem neuen Zertifikat digital signieren:
Code:
4) Die Signatur der Datei verifizieren:
signtool.exe sign /v /s "DP Certificate Store" /n " DP Signierung " {DATEINAME}
Code:
Das als Mini-Einführung. Als weitere Referenz seien die Dokumentationen der beiden genutzten Werkzeuge erwähnt.
signtool.exe verify /pa /v {DATEINAME}
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Ich habe mein Programm digital signiert, wie oben beschrieben. Mein Vista erkennt das Programm nun als vertrauenswürdig. Nun habe ich die signierte Datei auf einen anderen Vista-Rechner kopiert und ausgeführt. Und hier wieder das selbe: unbekannter Herausgeber. In den Eingenschaften der Datei kann man lesen, das eine digitale Signatur zwar gefunden wurde, gehört aber nicht zu den vertrauenswürdigen Herausgebern.
Wie lässt sich ein Zertifikat auf einen anderen Rechner übertragen? |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Moin romber,
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Nett :)
Aber wo bekommt man dann eigentlich echte Zertifikate her, wer überprüft deren Authentizität, und was kostet der Spass :? ? |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
VeriSign www.verisign.com Es sind Jahreslizenzen. Ab 499,- USD/Jahr. Nicht ganz so billig, aber wer die Software kommerziell entwickelt, sollte (leider) eine digitale Signatur besorgen, um den Kunden das Leben ein bißchen leichter zu machen. Besonders unter Vista ist es extrem. Da starten nicht mal Autostart-Programme, wenn diese unsigniert sind. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
[... Link entfernt, da nicht mehr gültig ...] VeriSign ist übrigens der Mercedes unter den Authorities (was den Preis angeht) - Thawte gibt's für 199$/Jahr und Comodo schon für 179$/Jahr - schon ein Unterschied zu den 499$/Jahr, die VeriSign haben will.
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
warum überhaupt ein solches Zertifikat von verysign etc.? Man kann doch mit der normalen Installation des Programmes auch gleich das eigene Zertifikat mit installieren.
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
VeriSign - selbst nutze ich Comodo - ist der einzige Anbieter, welcher vollständig von MS unterstützt wird. Das merkt man beim Fehlerberichtreporting, welche auf http://winqual.microsoft.com hinterlegt werden, das geht leider ausschließlich mit VeriSign. Gleiches gilt für Vista-Certification, unterstützt MS nur mit VeriSign :roll: ...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Was ich nicht verstanden habe: muss man für jedes Produkt eine neues Zertifikat erwerben oder reicht ein Zertifikat?
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Ich versteh den Sinn nicht von diesen Verisign Zertifikaten. Wenn ich dafür 500 € ausgeb, dann sind meine Programme vertrauenswürdig und ich kann damit machen was ich will :wall:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Merkt der Benutzer des Softwareproduktes schließlich, ob ich das Zertifikat selbt erstellt habe (z.B. mit der oben beschriebenen Methode ) oder über einen Anbiete wie VeriSign erworben habe?
Ein Teil meines Programms soll bereits beim Windows-Start gestartet werden und mein Ziel ist ledeglich, dass es auch normal startet. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
@Jelly: Nein, nicht die Programme sind vertrauenswürdig, sondern die Quelle der Programme authentisch. So ein Zertifikat bescheinigt nur, bei wem Du Dich für etwaige Programmfehler bedanken darfst. Nicht mehr und nicht weniger.
[edit] @Romber: Der Punkt ist, dass Vista von Haus aus die Zertifikate von VeriSign und Konsorten als gültig anerkennt. Unsere eigenen Zertifikate logischerweise nicht. Und das macht einen signifikanten Unterschied aus. [/edit] |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Zertifikate bescheinigen nicht die Qualität oder gar Harmlosigkeit der Software, sie geben Dir lediglich die Möglichkeit zu bestimmen, wer der Urheber ist und an wen Du Dich im Zweifel wenden kannst. Bei systemkritischer Software wird es um so interessanter, da Du sichergehen willst, wer Dir die letzte Version gegeben hat. Ist diese nicht signiert, dann setzt Du die nicht ein, wenn sonst immer alle Versionen signiert sind. ...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Das stimmt schon. In Europa wird das Verfolgen sicherlich leichter.
Bei systemkritischer Software stimme ich Dir absolut zu, dass solche Zertifkate Sinn machen. Aber im Grunde gibt es doch nur 2 grobe Kategorien von Softwareentwicklern. Die ganz Grossen (Borland, Codegear, Oracle, Microsoft...): für die braucht man auch nicht wirklich Zertifikate, denn die sollten eh vertrauenswürdig sein. Und solange ich die Software direkt von denen beziehe, bin ich auch sicher, Originalsoftware in der Hand zu halten. Dann gibt es noch die ganz Kleinen, die mit ihrem Spass am Programmieren mit einigen Shareware Programmen bischen Geld verdienen wollen. Aber ob es sich für die lohnt, solche teuren Zertifikate zu kaufen ist fraglich. Ok, der Anwender kennt die Quelle des Programms. Aber dennoch muss er entscheiden, ob er dem vertraut oder nicht. Meine Quelle ist auch zertifiziert, denn ich musste bei der Registrierung meiner Homepage auch meine Daten angeben. Und die werden auch von denic auf ihre Richtigkeit geprüft. Also hab ich auch so eine vertrauenswürdige Quelle, in sofern ich die Software auf meiner Homepage anbiete. Ich halte also diese ganze Zertifizierungsgeschichten für etwas übertrieben und vor allem für viel zu teuer. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Nehmen wir an, ich gabe einen digitalen Zertifikat und möchte mein Programm auf einem fremden Rechner installieren. Soll ich jedesmal die Zertifikat-Datei mit übertragen und dann die Installation des Zertifikates selbst ausführen (Schritt 2) oder wie geht das?
Normalerweise erstelle ich mit InstallShield Express die Installationspakete für meine Progtamme. Im InstallShield Express gibt es leider keine Optionen für automatische Installation von Zertifikaten. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Ich habe auch irgendwo gelesen, dass gegen Microsoft und deren UAC bereits mehrere Sammelklagen der mittleren Softwareentwilkungunternehmen bei europäischen Gerichshof eingegangen sind. Denn diese Zertifizierungen sind angeblich nicht das letzte "geschenk", der Microsoft & Co für die Software-Entwickler vorbereitetet haben.
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Zitat:
Vorteile von "richtigen" per offizieller Zertifizierungsstelle zertifiziertes Zertifikat: - Installer von ActiveX-Controlls werden vom IE automatisch zur installation angeboten. Ohne Zertifikat macht der IE gar nichts (bzw. man müßte die Sicherheitseinstellungen gaaaanz weit herunterdrehen - Eigene .NET-Custom Controls ("neue Art von ActiveX) können von einem Domänenadmin zentral vertraut werden - Man kann sehr einfach kaputte oder modifizierte Exe's bzw. DLLs feststellen (z.B. ob Kopier oder Lesefehler von CD/DVD bei CD/DVD-Anwendungen aufgetreten sind) - Man bekommt nicht nur unter Vista "nettere" Warnmeldungen. @ Daniel: Könntest Du noch bitte einen Hinweis auf den sinnvollerweise anzuwendenden Timestamper-Service Angeben (Siehe auchCode Signing, Seite 10. Damit wird verhindert das die eigene Anwendung mit dem ablaufen des Zertifikats auch ungültig wird. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Erstmal kurz zum Preis bei VeriSign: wenn ich mich nicht täusche, gibts da in Zusammenarbeit mit Microsoft bzgl. Vista aber auch einen Preis von 199 statt 499 €. Irgendwo auf der WinQual-Seite könnte das gestanden haben...
Außerdem gabs glaub ich auch mal einen israelischen(?) Lowcost-Anbieter, der selbst für den kleinsten Shareware-Macher noch im Rahmen läge. Dann noch ein Vorteil: sollte ein Virus eine signierte Datei verändern, wird deren Ausführung verweigert, da die Signatur an den Hashwert der Datei geknüpft ist (es sei denn der Virus entfernt die Signatur ganz, das würde aber auch auffallen). Insofern auch bei den "Großen" ein Vorteil, und Sicherheit für den Anwender. Übrigens: wer sein Programm "Certified for Vista" bekommen möchte, muss jede ausführbare Datei signieren, da geht kein Weg herum (was übrigens zu der Annahme verleitet, Vista selber wäre nicht Certified for Vista, weil Microsoft selber immer noch nur einen Bruchteil seiner Dateien signiert). |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zertifikate können sich auch gegenseitig zertifizieren, und diesen Zertifizierungspfad kann man zurückverfolgen.
Kaufst Du ein Zertifikat von VeriSign, gibts da irgendwo ein VeriSign-Root-Zertifikat, das wahrscheinlich ein VeriSign-Authenticode-Zertifikat unterschrieben hat, das wieder dein gekauftes Zertifikat unterschrieben hat. Windows prüft dann die ganze Kette entlang, ob alle Zertifikate gültig sind und auf ein Root-Zertifikat zurückzuführen sind, dessen öffentlicher Teil bei Windows bereits mitgeliefert wird. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Da kann man sagen, was man will, im Prinzip ist klar, was diese Maßnahme mal abgesehen von der Sicherheit bringt: Ein paar Firmen verdienen viel Geld und die kleinen Entwickler, Freeware und vor allem OpenSource stehen dumm da, weil sie sich diese Zertifikate nicht leisten können. Dem einfachen Benutzer wird eingeredet, dass unzertifizierte Programme sehr sehr gefährlich sind und auf keinen Fall vertrauenswürdig und, wer weiß, Microsoft könnte in Zukunft sogar ohne Probleme ein Zertifikat zur Pflicht erklären.
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Zitat:
...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Ich habe das ganze bei mir noch nicht getestet. Aber auf der ersten Seite steht doch auch, wie ich per Befehlszeile mir mein selbstgeneriertes Zertifikat auf nem anderen Rechner installiere, oder nicht?
Wenn ich im Installer jetzt dieses Zertifikat mit installieren lasse, gilt meine Anwendung als signiert. Geht das so? Irgendwo muss noch ein Haken sein, sonst wäre das ganze System ja hinfällig |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Und der Haken ist weiter oben auch erwähnt - fremde Zertifikate werden in Firmennetzen oft per GP blockiert.
Außerdem sieht der Benutzer, der das nachschlägt (Rechtsklick auf Datei, Eigenschaften...) ja auch, welches "Root"-Zertifikat da benutzt wurde. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Warum sollte Microsoft sich derart ins Bein schneiden? Ein guter Teil derart ausgeschlossener Hobbyprogrammierer würde dann doch in Richtung Linux abhauen, das auch noch herauszufordern, so dumm ist Microsoft auch wieder nicht.
Außerdem zeigt das auch die Vergangenheit - in einem Betriebssystem 100% auf nur noch vertraute Anwendungen zuzulassen wird schon seit Ewigkeiten diskutiert, und jede Ankündigung diverser reiner Trusted Platform-Hardware oder -Software ist bisher wieder ohne viel Aufheben untergegangen. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Bin gerade im Entscheidungsfindungsprozess :???: (auch ein schönes Wort...), darum noch ein paar Fragen:
Vorab: Zitat:
Weiter: 1. Comodo gibt es ja schon relativ günstig bei diesem Reseller für 85$/Jahr. Kennt einer von euch vielleicht auch günstige VeriSign oder Thawte Reseller? 2. Sehe ich das aber richtig, dass Comodo nur für die Authenticode-Signierung ab Windows XP aufwärts und anderen Windows-Systeme mit Stammzertifikatsupdate funktioniert (da nur dort das entsprechende Root-Zertifikat bereits vorhanden ist)? (...) und dass dagegen ein Zertifikat von Thawte, das ja offiziell mit 199$/Jahr nur 20$/Jahr teurer ist als eines von Comodo, zur Authenticode-, Java-, Macro-, Apple- und Marimba-Signierung ab Internet Explorer 4.0, Netscape 2.0, Java Virtual Machine 1.1 bzw. MacOS 9 benutzt werden kann? |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
...:cat:... |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
|
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Aber: Zertifikate haben auch etwas mit rechtlicher Haftung zu tun. Würdest Du für jemanden Dir unbekannten z.B. mit Deinem Bankkonto haften - ohne eine gewisse Sicherheit? Anderes Beispiel: Ein Pastor muß ja auch einen kostenpflichtigen Personalausweis haben und der ist doch auch in einer sehr ehrenwerten Sache unterwegs ;) Ich sehe auch mehr das Problem in den "Works with Vista" und "Certified for Vista" Programmen, die suggerieren wirklich das das kostenlose "Works with..." schlechter sei. Das Logo ist nur schwarzweiß und MS schreibt was von Basisfunktionalität unter Vista. Das stimmt nun wirklich nicht. |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
...:cat:... P.S.: Und zurzeit ist die Signierung noch immer eine freiwillige Sache, welche lediglich für mehr Transparanz sorgen soll, keine Pflicht! |
Re: Eigene Anwendungen digital signieren - eine Mini-Einführ
Zitat:
Sind die bei Windows 95 bis ME bzw. NT bis 2000 dabei? Werden die vielleicht mit irgendeinem IE-Update ausgeliefert? In diesem Fall wären die Zertifikate von K-Software für 85$/Jahr ja schon ein Schnäppchen. Zitat:
Heißt also auf deutsch: ein Code-Signing-Zertifikat für Authenticode kann man noch nicht einmal zum signieren von VBA-Makros benutzen (dafür bräuchte man noch eines), oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz