AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Code Signing - Grundsatzfragen

Ein Thema von Ares · begonnen am 12. Mai 2010 · letzter Beitrag vom 11. Mai 2011
Antwort Antwort
Seite 3 von 3     123   
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#21

AW: Code Signing - Grundsatzfragen

  Alt 12. Aug 2010, 12:42
Hallo,

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

Viele Grüße ...

  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#22

AW: Code Signing - Grundsatzfragen

  Alt 12. Aug 2010, 14:38
Gigne nicht theoretisch auch ein Zertifikat von Cacert.org? Weil die währen ja kostenlos, du brauchst nur einen Assurer mit genügen Punkten.
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#23

AW: Code Signing - Grundsatzfragen

  Alt 12. Aug 2010, 14:55
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.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#24

AW: Code Signing - Grundsatzfragen

  Alt 4. Nov 2010, 05:20
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 ).

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.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#25

AW: Code Signing - Grundsatzfragen

  Alt 4. Nov 2010, 11:48
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! Dort werde ich mir mal ein Zertifikat für privat gönnen.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#26

AW: Code Signing - Grundsatzfragen

  Alt 4. Nov 2010, 12:05
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.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott

Geändert von generic ( 4. Nov 2010 um 15:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#27

AW: Code Signing - Grundsatzfragen

  Alt 11. Mai 2011, 05:58
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.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (11. Mai 2011 um 06:21 Uhr)
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#28

AW: Code Signing - Grundsatzfragen

  Alt 11. Mai 2011, 10:52
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

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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:44 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