Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat? (https://www.delphipraxis.net/216576-wie-signiert-man-eine-anwendung-delphi-wenn-man-einen-usb-token-hat.html)

Sherlock 21. Jan 2025 13:36

Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
Angenommen ich möchte eine Windows Store Anwendung (APPX) in Delphi erstellen, was muss ich tun, wenn ich ein USB Token habe, auf dem das PFX liegt? Wie habe ich vorzugehen? Konkret habe ich ein Certum Token und m öchte eine "ad hoc" Distribution erzeugen.

TIA

Crosspost zu englischen DP

Michael II 21. Jan 2025 16:16

AW: Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
USB Stick einstecken und signieren.
Zum Beispiel so:
1. Starte den Certum Manager, Klick den Button "Read Card", Klick Tab "Common Profile". Hier siehst du dein Zertifikat. Merk dir den Wert von "Owner".

2. CMD
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" sign /n "Owner" /t http://time.certum.pl/ /fd sha256 /v "c:\meinefiles\meinfile.exe" - Wenn du neben meinfile.exe weitere Files signieren willst, dann gib auch gleich die anderen Files an. Vorteil: Du musst nur einmal den PIN eingeben.

Auf der Certum Seite gibt's auch ein Helpfile zu diesem Thema "in english".

User, welche InstallAware verwenden: "Project Settings", dann dort unter "Build > Events > Code Signing Hook" hinzufügen:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe" sign /n "Owner" /t http://time.certum.pl/ /fd sha256 /v %1

Michael II 21. Jan 2025 16:32

AW: Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
Hier noch der Link aufs Help File von Certum:
https://support.certum.eu/en/code-signing-certificates/

Sherlock 22. Jan 2025 09:19

AW: Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
Danke, Michael. Der Teil war mir bekannt, und das funktioniert auch soweit einwandfrei. Mir geht es konkret um die Möglichkeit sogenannte Store Apps "ad hoc" erzeugen zu können. Das benötigt laut Einstellungsdialog eine PFX, die man bekanntlich neuerdings nicht mehr hat.

Im übrigen soll man wohl im Zusammenhang mit dem Zeitserver die Option /tr und nicht nur /t nehmen. /t ist Microsoft Authenticode und /tr ist RFC 3161, und wenn es um standards geht ist alles was "RFC" heisst besser als Microsoft (persönliche Meinung).

Michael II 22. Jan 2025 11:28

AW: Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
Ah OK Sorry - zu viel Titel gelesen zu wenig genau deinen Text ;-). Danke für deinen RFC Tipp. (Da ich aber nach Zertifikatswechsel ausschliesslich Probleme mit "Smart"Screen habe oder hatte, ist grösstmögliche Ehrerbietung gegenüber microsoft doch auch wichtig.)

Ich habe rasch Delphi gecheckt. Aber nur 11. Falls es in 12 noch die gleiche eingeschränkte Möglichkeit gibt zu signieren, dann glaube ich nicht, dass es klappt - es wäre viel besser, wenn man in Delphi im Bereich Signieren einfach eine Kommandozeile eingeben könnte, welche dann von Delphi aufgerufen wird während dem Signieren. Vielleicht ist es ja in 12 so (?).

APPX bin ich seit vielen Jahren wieder raus.
Gibt es während dem APPX Buildprozess in Zwischenschritten Files, welche signiert werden?
Oder könntest du einfach zuerst deine Files signieren -> APPX unsigniert erzeugen -> Signieren? Hast du sicher alles bereits gecheckt...

Michael II 24. Jan 2025 12:52

AW: Wie signiert man eine Anwendung in Delphi wenn man einen USB Token hat?
 
Ich habe dies mit Windows/Certum/Delphi probiert; und es funktioniert:

signtool.exe aus dem WinKit austauschen durch eigenes Programm, welches die Parameter ausliest, welche Delphi beim Aufruf von signtool.exe verwendet. Parameter angepasst an das echte signtool.exe Programm weitergeben. Fertig.

Falls man PIN nicht immer eingeben will:
Beim Signieren mit Certum entweder
- CSP Treiber und PIN Cache aktivieren (funktioniert auf meinem System mit meiner Certum Karte (noch) nicht - in Abklärung)
ODER
- https://www.delphipraxis.net/216582-...ml#post1545515
ODER
- Eigenes Tool schreiben fürs automatische PIN Signieren auch via Minidriver.

Bei Lösung 2 frage ich mich, wieviel Sicherheit man (je nach Situation) verliert, wenn man Drittanbieter ans Zertifikat ran lässt.

Zu Lösung 3. Ich habe das auf meinem Win11Pro kurz getestet. Funktioniert. signtool.exe aufrufen => PIN Eingabefenster wird angezeigt => App sucht das Fenster, gibt via Sendmessage PIN+Enter ein.
Natürlich auch hier: PIN sicher aufbewahren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz