Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Code Signing - Grundsatzfragen (https://www.delphipraxis.net/151308-code-signing-grundsatzfragen.html)

Grolle 12. Aug 2010 11:42

AW: Code Signing - Grundsatzfragen
 
Hallo,

wie oben versprochen ein kleines Tutorial zum Thema Code signing mit startssl.

Viele Grüße ...

PhilmacFLy 12. Aug 2010 13:38

AW: Code Signing - Grundsatzfragen
 
Gigne nicht theoretisch auch ein Zertifikat von Cacert.org? Weil die währen ja kostenlos, du brauchst nur einen Assurer mit genügen Punkten.

generic 12. Aug 2010 13:55

AW: Code Signing - Grundsatzfragen
 
Zitat:

Zitat von PhilmacFLy (Beitrag 1041551)
Gigne nicht theoretisch auch ein Zertifikat von Cacert.org? Weil die währen ja kostenlos, du brauchst nur einen Assurer mit genügen Punkten.

Ich bezweifele, dass die Root-Zertifikate in Windows sind.

Assarbad 4. Nov 2010 04:20

AW: Code Signing - Grundsatzfragen
 
Zitat:

Zitat von Mschmidt (Beitrag 1040596)
Noch ein Tipp - wenn du deine Software bei Microsoft registrieren möchtest um z.b. Punkte im Partnerprogramm zu erhalten (nur relevant für Unternehmen) oder ein Logo wie "Compatible with Windows 7" u.a. musst du ein Verisign Zertifikat verwenden :-( Alle anderen werden komischweise nicht akzeptiert.

Guckste bei "signtool.exe verify /kp ..." nach. Auch die Kernel Signing Policy (KP) erfordert VeriSign plus cross-signing mit dem MS-VeriSign-Root-Cert. VeriSign-Zertifikate gibt's derzeit für $99 (ein Jahr, nur erstes Jahr und dennoch nicht für KP geeignet) über WinQual, aber generell nur für Firmen.

Um die Regeln der KP kommt man bspw. nicht herum wenn die eigene Anwendung/DLL für AppInit funzen soll, mit dem WSC kommunizieren soll usw. ... Treiber ja ohnehin (sagt ja schon der Name ;)).

Zitat:

Zitat von Bernhard Geyer (Beitrag 1020763)
4: Bei Verisign ist es möglich das bei Anwendungsabstürzen der Callsstack+Umgebung an MS gesendet wird und du es dort abholen kannst um den Fehler nachzuvollziehen. Haben wir bisher nicht gemacht.

WinQual wird meines Wissens nach für derlei Dienste kostenpflichtig. Und bei Delpianwendungen ist madExcept (usw) ohnehin die bessere Lösung.

Übrigens ist das mit "nur signtool" sei wichtig vermutlich dann hinfällig wenn man am Logo-Programm teilnimmt. Denn für diverse Methoden des Signierens muß das Zertifikat im "Certificate Store" (in der Registry) liegen und darf eben nicht als .pfx auf der Platte sein. Frag mich nicht warum, aber es geht dann wirklich nicht mehr mit .pfx ... signtool weigert sich dann nur noch.

divBy0 4. Nov 2010 10:48

AW: Code Signing - Grundsatzfragen
 
Zitat:

Zitat von Grolle (Beitrag 1041511)
Hallo,

wie oben versprochen ein kleines Tutorial zum Thema Code signing mit startssl.

Viele Grüße ...

Das ist ja mal gut beschrieben, danke hierfür! :thumb: Dort werde ich mir mal ein Zertifikat für privat gönnen.

generic 4. Nov 2010 11:05

AW: Code Signing - Grundsatzfragen
 
Ach das passt gerade schön. Hatte gerade neue Preise rausgesucht.

Preis pro Jahr bei jeweils der längst möglichen Laufzeit.

49USD (34,4421 EUR) / einmalig?
https://www.startssl.com/
s.h. auch https://forum.startcom.org/viewtopic.php?f=15&t=1654

75USD (52,665 EUR) / Jahr
https://secure.ksoftware.net/code_signing.html

118€ / Jahr
http://www.trustcenter.de/products/t...thenticode.htm

135€/ Jahr
http://www.certum.eu/certum/cert,offer_code_signing.xml

159€ / Jahr
https://globalsign.wis.de/certs/info/object/

167€ / Jahr
http://www.instantssl.com/code-signing/

264€ / Jahr
http://www.thawte.com/code-signing/index.html

432€ / Jahr
http://www.verisign.de/code-signing/...ode/index.html
oder per Promotion Code 99 USD für nur 1 Jahr (und nicht länger)
https://securitycenter.verisign.com/...Code=THEDEAL99



Nur mit dem Verisign Zertifikaten ist die Nutzung der zusätzlichen Dienste von Microsoft möglich.
http://www.microsoft.com/whdc/winlog.../StartWER.mspx


Erfahrungen:
Bei KSoftware war mein Browser beim Kaufvorgang damals (vor ca. 5 Jahren) ausgestiegen und ich musste viele Emails schreiben, bis ich den bezahlten Kauf bekommen hatte.

Bei StartSSL funktioniert ganz gut. Gekauft habe ich dort allerdings nie etwas. Unbedingt das Clientzertifikat sichern, wenn ihr euch dort angemeldet habt. Ohne dem Zertifikat könnt ihr euch dort nicht mehr anmelden!

Comodo und Thawte laufen auch problemlos. Bei den beiden kaufe ich SSL Zertifikate über die deutsche Firma PSW Group (http://www.psw.net/).

Von Thawte ist mein aktuelles Code Signing Zertifikat. Lief bis jetzt ohne Probleme.

Assarbad 11. Mai 2011 04:58

AW: Code Signing - Grundsatzfragen
 
Zitat:

Zitat von generic (Beitrag 1059592)
Ach das passt gerade schön. Hatte gerade neue Preise rausgesucht.

Preis pro Jahr bei jeweils der längst möglichen Laufzeit.

49USD (34,4421 EUR) / einmalig?
https://www.startssl.com/
s.h. auch https://forum.startcom.org/viewtopic.php?f=15&t=1654

Der Preis (derzeit 59 USD) wird für die Validierung fällig und das geht alles recht flott. Danach kann man ein Zertifikat erstellen welches zwei Jahre lang gültig ist.

So, und da alle Tutorials immer von den PFX-Dateien ausgehen, welche man signtool.exe füttert, hier die kurze Anleitung wie das Signieren auch ohne die PFX-Datei geht. Ich beziehe mich hier auf das Tutorial von Stefan (Grolle) und andere Tutorials. Hier nochmal der Link: http://blog.stefangöppert.de/?page_id=275

Außerdem ist diese Methode mal sicherer (siehe Hinweis ganz unten) und erklärt vielleicht auch jenen die nicht StartSSL benutzen die Hintergründe und Zusammenhänge der verschiedenen Dateien und Formate.

Ich setze hier mal voraus, daß man zuvor die Validierung durchführen lassen hat.

1.) Privaten Schlüssel und CSR (certificate signing request) mit OpenSSL erstellen. Hat man einen privaten Schlüssel, kann man auch einen existierenden benutzen.
Code:
openssl req -new -newkey rsa:4096 -keyout key.pem -out csr.pem
Hinweis: die Details sind irrelevant. Nur der öffentliche Schlüssel der im CSR mitgeschickt wird, wird auch von StartSSL benutzt. Sprich, man kann die Vorgaben von OpenSSL übernehmen. Die Daten aus der Validierung werden stattdessen benutzt. Ja, das schließt die folgenden Felder ein: E (Email), CN (Common Name, also euer Name), L (Location, also Stadt), S (State, also Bundesland) und C (Country, also Staat). Soweit ich es sehen kann ist die Telefonnummer und die exakte Adresse nicht enthalten, die man aber während der Validierung angeben muß.

2.) Unter "Object Code Signing" im zweiten Tab im "Control Panel" bei StartSSL den Inhalt des CSR einfügen und abschicken (siehe Link oben).

3.) Am Ende dieses Schrittes bekommt man das von StartSSL signierte Zertifikat in einem Textfeld. Dieses Zertifikat speichert man nun in einer Datei, bspw.: cert.crt

Bei Verisign (jetzt Symantec) war dies beim letzten Mal ein Download. Wenn ich mich recht entsinne, brauchte ich auch die Zwischenformate irgendwie nicht. Ist aber schon zwei Jahre her. Ich kann evtl. im Herbst nochmal schreiben wie das heute dort läuft.

4.) Nun benutzt man das Tool cert2spc.exe aus dem Windows SDK um das Zertifikat in eine SPC-Datei zu konvertieren:
Code:
cert2spc.exe cert.crt cert.spc
5.) Nun benutzt man pvktool um den privaten Schlüssel in eine PVK-Datei zu konvertieren (neuere OpenSSL-Versionen sollen diese Funktionalität auch von Haus aus bieten, hab's aber nicht probiert). Um pvktool zu kompilieren mußte ich aber "-ldl" in der Make-Datei anfügen, damit die "Dynamic Loader" Bibliothek von Linux mit eingelinkt wird. Ansonsten gibt's Linkerfehler (zumindest zusammen mit dem aktuellsten OpenSSL 1.0.0d).
Code:
pvk -in key.pem -topvk -strong -out key.pvk
6.) Jetzt benutzt man das Tool pvk2pfx.exe aus dem Windows SDK um die SPC und PVK zu einer PFX zusammenzuführen.
Code:
pvk2pfx.exe -spc cert.spc -pvk key.pvk -pfx cert.pfx
Hinweis: cert.pfx enthält jetzt die "Credentials" (also den privaten Schlüssel) und das Zertifikat. Ab hier kann man es genauso benutzen wie es in den vielen Tutorials beschrieben wird. Oder man nimmt die letzte Hürde.

7.) Man kann nun die PFX in den "Certificate Store" des Computers oder des aktuellen Benutzers importieren.
Aktueller Benutzer:
Code:
certutil -user -importPFX cert.pfx
Computer:
Code:
certutil -importPFX cert.pfx
So und ab hier kann man jetzt ganz bequem das installierte Zertifikat benutzen.

Hat man es für den Computer installiert, benutzt man "/sm":
Code:
signtool.exe sign /v /a /sm /ph /d "..." /du "http://..." /tr http://www.startssl.com/timestamp my.exe
Hat man es für den aktuellen Benutzer installiert, läßt man es weg:
Code:
signtool.exe sign /v /a /ph /d "..." /du "http://..." /tr http://www.startssl.com/timestamp my.exe
  • /v steht für verbose und wird nicht benötigt. Ist aber sinnvoll beim ersten Mal. So sieht man welches Zertifikat gewählt wurde (nächster Punkt).
  • /a wählt automatisch das am längsten gültige Zertifikat aus, welches für "Code Signing" tauglich ist. Meist ist ohnehin nur ein Zertifikat auf dem Rechner installiert.
  • /ph erstell Hashes über die einzelnen Sektionen der EXE (sicherer)
  • /d fügt eine Beschreibung hinzu - wird meines Wissens nach nirgends später angezeigt.
  • /du siehe /d, ist aber eine URL.
  • /t oder /tr ist die URL eines Timestamp-Servers. Das ist SEHR SEHR WICHTIG. Wenn ihr das nicht benutzt, läuft sowohl das Zertifikat als auch die damit erstellte Signatur einer EXE ab. Wenn ihr es benutzt, läuft die Signatur nicht ab, da der Dienst garantiert, daß vor Ablauf signiert wurde ...
  • /ac muß für Treiber benutzt werden um die Ausstellerzertifikate ebenso in die Binärdatei einzufügen.
  • /i und /n und /r können benutzt werden um das korrekte Zertifikat auszuwählen, sollte mehr als eines installiert sein.

Den Timestamp-Service sollte man immer jeweils vom Aussteller her benutzen. Rein prinzipiell könnte es auch gemischt gehen.

Hinweis: man kann auch die Schritte bis zur Erstellung der PFX über StartSSL machen, dann muß man aber die Passphrase zu seinem privaten Schlüssel an die weitergeben. Benutzt man bspw. einen existierenden Schlüssel ist dies schlecht. Daher läßt man das lieber und benutzt den oben beschriebenen Weg, wenn man's sicher mag.

mquadrat 11. Mai 2011 09:52

AW: Code Signing - Grundsatzfragen
 
Unser Cert ist von Entrust, aber die sind eindeutig auf Großkunden spezialisiert. Da immer mindestens zwei verschiedene Personen bestätigen müssen (beide werden per Telefon gecheck), kann man da als Ein-Mann-Firma nicht mal eins kaufen :lol:

Comodo-Zertifikate kann man reduziert über Tucows kaufen, nachdem man sich dort als Autor registriert hat. Ich meine das wäre auch recht günstig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.
Seite 3 von 3     123   

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