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 6 von 10   « Erste     456 78     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
 
Daniel

 
Delphi 10.4 Sydney
 
#51
  Alt 18. Mai 2007, 15:48
Zitat von mschaefer:
Wie ist das eigentlich: Wenn ich neue Programmversionen herausgebe.
Muß für die dann jedesmal ein neues Zertifikat beantragt werden?
Zum Glück nicht. Du musst Deine neuen Programmdateien dann lediglich mit Deinem bestehenden Zertifikat neu signieren. Das kannst Du beliebig oft wiederholen.
Daniel R. Wolf
  Mit Zitat antworten Zitat
Gandalfus

 
Delphi 2006 Professional
 
#52
  Alt 18. Mai 2007, 15:52
Zitat von sakura:
Wieso wieder?
gute frage ist ein Zitat von dir.

Zitat:
Ich weiß das Vista Geld kostet. Außerdem gibt es diese Zertifikate nicht erst seit Vista, schon mit Windows XP hat Microsoft diese empfohlen. Jetzt nur etwas auffälliger. Lade mal mit XP SP2 eine EXE aus dem Internet und starte die. Was passiert da wohl... genau, Du sollst den Start bestätigen. Und worauf prüft XP? Auf ein Zertifikat, halt nur nicht so auffällig.

Aber zurück zum Vista-Preis. Was erwartest Du alles für den Preis noch? Das MS kostenlos Deine Anwendungen für Vista zertifiziert? Wäre ja der nächste Schritt. Oder das Du alle MS Games kostenfrei bekommst, wenn diese Vista kompatibel sind. Hätten noch mehr was davon.
Ich erwarte ein Betriebsystem und alles was ich brauche um damit richtig arbeiten zu können. Patch und Updates sind doch auch kostenlos warum also die Zertifikate nicht? Das gehört doch quasi zum Produkt dazu.

Zitat:
Sorry, ich kann diese "ich will alles umsonst bzw. alles in einem" Einstellung nicht verstehen.
Das habe ich nicht gesagt ich werde nur nicht gerne abgezockt.
  Mit Zitat antworten Zitat
CCRDude
 
#53
  Alt 18. Mai 2007, 16:01
Zitat von Catbytes:
Dagegen habe ich nichts - doch es sollte bezahlbar bleiben. Nicht jeder kleine Hobby-Programmierer kann mal so eben 500 Euronen hinknallen. Stell' Dir vor, wie arm unsere Softwarelandschaft wäre ohne die ganzen kleinen Tools, die das (IT)Leben so erfreulich machen?
Ok, da bin ich ganz Deiner Meinung! Nur gegen das "ist nur sinnvoll um Microsofts Taschen zu füllen" hab ich etwas

Was mir dazu gerade noch einfällt: wenn man mit seinem Personalausweis Heise an nem Messestand besucht, kann man dort seinen PGP-Key von Heise signieren lassen, was wie ich finde ein gutes Beispiel dafür ist, wie seriöse Signierung auch kostenlos oder zumindest günstig stattfinden kann.
Sowas ähnliches für Entwickler, die Privatpersonen sind, wäre sicherlich nicht schlecht.

Wo übrigens noch viel mehr "abgezockt" wird: für Symbian oder Windows Mobile muss man jede Signatur einzeln bezahlen! für den Authenticode-Windows-normal-Jahrespreis bekommt man da gerade mal 10 Signaturen, ist nicht viel mit Ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

 
Delphi 12 Athens
 
#54
  Alt 18. Mai 2007, 16:45
Hm wenn ich dass so verfolge, dann warte ich auf "Delphi für Wine"... // Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 12 Athens
 
#55
  Alt 18. Mai 2007, 17:49
Zitat von Gandalfus:
Ich erwarte ein Betriebsystem und alles was ich brauche um damit richtig arbeiten zu können. Patch und Updates sind doch auch kostenlos warum also die Zertifikate nicht? Das gehört doch quasi zum Produkt dazu.
Gibt es für Dich, siehe erster Post im Thread (von Daniel). Wenn Du aber Deine Anwendung weitergeben willst, dann ist die nicht mehr für Dich sondern für andere. Und Microsoft macht die Zertifikate nicht selbst, da gibt es eine Menge anderer Anbieter. Somit können die Dir keine kostenfrei ausstellen

Egal, ich sehe, dass Du der "Geiz ist geil"-Meinung nach läufst, die hier gar nicht passt. Somit wirst Du auf Deinem Standpunkt bleiben und ich auf meinem.

......
Daniel Lizbeth
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#56
  Alt 19. Mai 2007, 16:27
Zitat von Catbytes:
Aber stell Dir mal vor, wenn es andersrum wäre: Ein anderer Global-Player (laß es Oracle oder SAP sein) verlangt von Microsoft, daß die das Betriebssystem für die Software lizenzieren - so nach dem Motto: "Windows Vista ist certified for SAP" oder "SAP Ready". Was meinste, was MS dazu sagen würde? Die wären dann genauso "arrogant".
So eine Zertifizierung gibt es. Jedoch Testet (i.d.R.) Oracle bzw. SAP selbst ob ihre (aktuellen) Versionen unter den neuen Windows-Versionen laufen und gibt diese erst danach frei.
  Mit Zitat antworten Zitat
SirTwist

 
Delphi XE Professional
 
#57
  Alt 19. Mai 2007, 16:57
Hanebüchend....

hier werden Zertifikate (für Signierung) mit dem Label "certified for" verwechselt. Bitte bitte informiert Euch doch mal vorher.

Ein Zertifikat, dass auf eine Person oder eine Firma/Organisation ausgestellt ist, stellt praktisch die digitale Identität dar. Wenn diese Person Programme schreibt, kann das Programm mit dem Zertifikat unterschrieben werden und ist somit dem Unterschreiber eindeutig zuzuordnen. Wenn das Zertifikat von einem der großen Anbieter ausgetstellt wurde, kann jedes Windows überprüfen, ob das Programm wirklich von dem Aussteller kommt und ob das Programm unverändert ist(!), also niemand falschen Programmcode eingeschmuggelt hat.

Wie oft ladet Ihr Programme von irgendeiner Webseite runter und habt keine Möglichkeit zu kontrollieren, ob das wirklich die Software ist, die der Webseiten-Inhaber Euch zur Verfügung stellen wollte? Trotzdem installiert Ihr die Software einfach, womöglich noch mit Adminrechten. Dass vielleicht ein Hacker schon längst das Programm ausgetauscht hat gegen einen Virus, Trojaner, ... bekommt Ihr gar nicht mit. Webserver-Hacks sind heute so alltäglich wie Verkehrsunfälle, selbst den ganz Großen passiert sowas.

Im Besten Fall würde man den Namen des Signierers mit dem DENIC-Eintrag der Domain vergleichen, dann kann man sicher sein, dass das Programm aus der angegebenen Quelle stammt. Ob man dieser Quelle vertraut, sei jedem selbst überlassen. Und ja, ich bin paranoid. Aber nur weil ich paranoid bin, heißt das noch lange nicht, dass SIE nicht trotzdem hinter mir her sind.

Ein Label "Certified for..." heißt dagegen, dass die Software einer Reihe von Tests unterzogen wurde und diese bestanden hat. Ohne jeden Zusammenhang mit (Signatur-)Zertifikaten.

Wartet einfach nur mal ein paar Jahre ab, dann wird eh jeder Internet-Bürger ein Zertifikat haben, für Online-Banking, für Behördengänge, für Mailversand/-empfang. Dann kann man damit halt auch Programme signieren.

Und wenn sich jemand wie im Orginalposting beschrieben, eine eigene Zertifizierungsstelle (Root-Zertifikat) erzeugt und damit seine Programme unterschreibt, ist das für den Privatgebrauch völlig ausreichend. Den öffentlichen Zertifikatsteil des Root-zertifikats (ohne den Private Key!!!) kann man ja an Freunde und Bekannte mitverteilen, dann können die alle weiteren Programmupdates überprüfen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#58
  Alt 19. Mai 2007, 17:01
Zitat von SirTwist:
hier werden Zertifikate (für Signierung) mit dem Label "certified for" verwechselt. Bitte bitte informiert Euch doch mal vorher.
Hast ja recht. Dieser Thread ist ja sehr aus dem Ruder gelaufen (und ich mach kräftig mit ). Evtl. sollte man den Tread aufteilen. Einen Teil mit Für und wieder nach "Klatsch und Tratsch" und hier nur noch wenn was zum Tutorial zu sagen ist (Ergänzungen, Korrekturen, Verbesserungen).
  Mit Zitat antworten Zitat
xxl1

 
FreePascal / Lazarus
 
#59
  Alt 19. Mai 2007, 17:47
Zitat von mschaefer:
Hm wenn ich dass so verfolge, dann warte ich auf "Delphi für Wine"... // Grüße // Martin
sowas in der Art gibt es schon von Borland mit Kylix
Kylix - Wikipedia
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

 
Delphi 10.4 Sydney
 
#60
  Alt 19. Mai 2007, 17:54
Zitat von xxl1:
sowas in der Art gibt es schon von Borland mit Kylix
Kylix - Wikipedia
Ich würde hier die Vergangenheitsform mit "gab es schon" verwenden. Ein Kylix auf aktueller Linux-Version zum laufen zu bekommen wird nicht gerade die einfachste Aufgabe sein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 10   « Erste     456 78     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 19:49 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