AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Eigene Anwendungen digital signieren - eine Mini-Einführung
Tutorial durchsuchen
Ansicht
Themen-Optionen

Eigene Anwendungen digital signieren - eine Mini-Einführung

Ein Tutorial von Daniel · begonnen am 22. Apr 2007 · letzter Beitrag vom 5. Feb 2015
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    
Daniel
Registriert seit: 30. Mai 2002
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:
makecert.exe -$ individual -r -pe -ss "DP Certificate Store" -n CN="DP Signierung" "d:\my_certificate.cer"
2) Das frisch erzeugte Zertifikat In den Speicher vertrauenswürdiger Stammzertifizierungsstellen installieren:
Code:
certmgr.exe /add "d:\my_certificate.cer " /s /r localMachine root
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).

3) Eine Datei mit dem neuen Zertifikat digital signieren:
Code:
signtool.exe sign /v /s "DP Certificate Store" /n " DP Signierung " {DATEINAME}
4) Die Signatur der Datei verifizieren:
Code:
signtool.exe verify /pa /v {DATEINAME}
Das als Mini-Einführung. Als weitere Referenz seien die Dokumentationen der beiden genutzten Werkzeuge erwähnt.
mit Grüßen aus Hamburg
 
Benutzerbild von Jelly
Jelly

 
Delphi 2007 Professional
 
#11
  Alt 17. Mai 2007, 12:59
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
Tom Peiffer
  Mit Zitat antworten Zitat
romber

 
Delphi 10 Seattle Professional
 
#12
  Alt 17. Mai 2007, 13:02
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.
  Mit Zitat antworten Zitat
Daniel

 
Delphi 10.4 Sydney
 
#13
  Alt 17. Mai 2007, 13:03
@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]
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin
 
#14
  Alt 17. Mai 2007, 13:03
Zitat von Jelly:
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
Da geht es mir ähnlich Was wird denn da nun eigentlich zertifiziert? Die Software wird doch nicht geprüft Welche zusätzliche Sicherheit hat der User dadurch?

Leo S.
  Mit Zitat antworten Zitat
Daniel

 
Delphi 10.4 Sydney
 
#15
  Alt 17. Mai 2007, 13:06
Zitat von Meflin:
Welche zusätzliche Sicherheit hat der User dadurch?
Die Herkunft der Software steht zweifelsfrei fest. Darum sollte man seine Zertifkatsquellen auch nicht weitergeben.
Daniel R. Wolf
  Mit Zitat antworten Zitat
romber

 
Delphi 10 Seattle Professional
 
#16
  Alt 17. Mai 2007, 13:06
Zitat von Meflin:
Zitat von Jelly:
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
Da geht es mir ähnlich Was wird denn da nun eigentlich zertifiziert? Die Software wird doch nicht geprüft Welche zusätzliche Sicherheit hat der User dadurch?
Es geht nicht um Sicherheit für den Benutzer. Es geht darum, was Microsoft und VeriSign zusammen verdienen können.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

 
Delphi 2007 Professional
 
#17
  Alt 17. Mai 2007, 13:18
Zitat von Daniel:
@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.
Eben. Aber was bringt das dem Enduser. Denn der vertraut der Quelle. Und wenn das Programm dann Murcks macht, steht lediglich fest, wer dafür verantwortlich ist. Dann finde mal den Hacker aus den Philippinen (oder aus sonst einer Ecke der Erde) und fordere dein Recht bei dem ein.
Tom Peiffer
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#18
  Alt 17. Mai 2007, 13:32
Zitat von Jelly:
Dann finde mal den Hacker aus den Philippinen (oder aus sonst einer Ecke der Erde) und fordere dein Recht bei dem ein.
Seine rechtsgültige Adresse steht im Zertifikat Und die wird überprüft. Das heißt natürlich nicht, dass es es leichter macht einen auf den Philipinen zu erwischen. Aber dem musst Du ja auch nicht vertrauen. Aber wenn Deine Software z.B. aus Deutschland kommt, dann wird es einfacher Deine Rechte geltend zu machen.

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.

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

 
Delphi 2007 Professional
 
#19
  Alt 17. Mai 2007, 13:42
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.
Tom Peiffer
  Mit Zitat antworten Zitat
romber

 
Delphi 10 Seattle Professional
 
#20
  Alt 17. Mai 2007, 13:46
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:


Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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