Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Code Sign Zertifikat (https://www.delphipraxis.net/213729-code-sign-zertifikat.html)

freimatz 28. Aug 2024 17:46

AW: Code Sign Zertifikat
 
Bei uns geht der Build auf einer VM mit YubiKey. Ich meine dass dann aber für jede VM die builded ein solcher Key da sein muss.

himitsu 28. Aug 2024 18:10

AW: Code Sign Zertifikat
 
Ich wollte hier auch noch schnell so kurz vor knapp das ohne Stick hier bekommen,
aber wurde sich nicht ausgekekst und dann war's vorbei.


Zitat:

Zitat von Uwe Raabe (Beitrag 1540335)
aber ich muss erst sicher sein, dass die Signierung auch automatisch in meinem Build-Prozess stattfinden kann.

Im FinalBuilder/ContinuaCI ist da 'ne Action für drin.

Im Delphi leider nur im Windows-Store-Profil.
Aber es lässt sich ja auch problemlos via AfterBuildScript im Delphi, sowie MSBuild erledigen.
(vermutlich auch via CustomUserAction im MSBuild (UserTools.proj), aber ich vermute der InlineCompiler ignoriert das und dann müsste man es zusätzlich auch noch via OTA ans AfterBuild hängen)


Bei uns kommt dann noch dazu, dass die meisten Entwickler auf dem RDP arbeiten
und dann müsste der Stick oder die PCIe-Karte entweder bei Hetzner in den Server und dort in die WindowsVM
oder man müsste das irgendwie vom Büro aus (NAS) in den Server und möglichst auch bei 2-3 Rechnern/Schlepptops lokal oder gar von daheim/unterwegs aus.

Klar, für's lokale Arbeiten könnte man sich auch mit einem SelfSigned behelfen, aber dann kann man eben nicht mehr mal eben die TestVersion so zum Kunden geben.

Uwe Raabe 28. Aug 2024 18:47

AW: Code Sign Zertifikat
 
Zitat:

Zitat von himitsu (Beitrag 1540337)
Im FinalBuilder/ContinuaCI ist da 'ne Action für drin.

Na, die benutze ich ja auch schon. Die Frage ist nur, wie kommt die an den Stick und muss ich da irgendwie noch meinen Daumen drauf halten oder so?

himitsu 28. Aug 2024 19:37

AW: Code Sign Zertifikat
 
Es gibt bestimmt welche mit Daumen, aber ich glaub die Meisten sind ohne.
Und die interne Variante, z.B. als PCIe-Karte, da geht das mit dem Daumen eh nicht.

Für Daheim/Büro ginge es z.B. auch so (theoretisch), dass man den Stick an die Synology, QNAP oder USB-LAN-Adapter steckt, via VirtualHere den USB-Port/Device zum PC durch's LAN/WLAN reicht und es lokal über einen virtuellen USB-Treiber nutzen kann.
Wenn man danach trennt, kann anschließend der nächste Kollege.

Drum wollte ich aber auch das Zertifikat noch schnell ohne Stick, um überhaupt erstmal mit Signieren anfangen zu können, und dann dieser Scheiß noch bissl Zeit gehabt hätte. :cry:
Aber bevor das jetzt kommt, werde ich wohl vorher noch dazu kommen mit einem KurzzeitMiet-Cloud-MAC privat mal für iOS/MacOS kompilieren zu können.
:duck:

TomyN 28. Aug 2024 22:33

AW: Code Sign Zertifikat
 
Bei mir signiert Innosetup, das hat den Vorteil, dass auch der Installer und der Uninstaller gleich signiert ist.
Aktuell habe ich ein OV Zertifikat, das 'nur' eine Pin (nennt sich hier Token) braucht, den ich über eine App auf dem Smartphone erzeuge.
Es läuft glücklicherweise auch noch fast zwei Jahre ....

Harry Stahl 28. Aug 2024 22:36

AW: Code Sign Zertifikat
 
So, ich habe jetzt mal meine angedachte Lösung testweise implementiert, wobei ich mich freuen würde, wenn jemand sich das mal ansehen könnte. Könnte ja evtl. auch eine Blaupause für eine eigene Lösung sein. Oder Ihr macht mir klar, dass ich auf dem Holzweg bin ;-))

Ich habe jetzt mal ein Programm nicht als Setup.exe auf meine HP gelegt, sondern als Setup_HTMLEditor.zip.
Das ist kein offizieller Link, poste ich nur hier:

https://www.hastasoft.de/Setup_HTMLEditor.zip

Diese Datei runter laden, alles in einen Ordner entpacken und die "Setup.exe" starten. Die Setup.exe ist sozusagen meine "Ewigkeits-Setup.exe", weil ich die nie mehr ändern muss. Die habe ich jetzt noch mit dem KSoftware-Zertifikat signiert und mit dieser Datei hat ja Windows keine Probleme (auch wenn das Zertifikat zeitlich abgelaufen ist), sollte also ohne Probleme mit "blauem Schild" und verifiziertem Herausgeber starten.

Die Setup.exe holt sich aus der Setup_Resources.dll die benötigten Setupdateien. Die DLL ist mit meinem selbst ausgestelltem Zertifikat signiert, damit mir keiner da was anderes unterschieben kann (wird auch überprüft). Während des Setups bekommt der User das Angebot das Hastasoft Stammzertifikat auf seinem PC zu installieren (man muss die Checkbox aktivieren).

Wenn man den Hilfe-Schalter drückt, bekommt man auch den Hinweis auf die

https://www.hastasoft.de/Zertifikate.htm

(auch noch kein offizieller Link), wo man sich die Informationen zum Stamm- und zum Codesigning Zertifikat ansehen kann.

Das kann man dann vergleichen mit dem Fingerprint, den Windows bei seiner Warnung ausgibt, dass ein Stammzertifikat eines unbekannten Herstellers auf dem PC installiert werden soll.

Eigentlich alles ganz transparent und sicher.

Oder was meint Ihr?

Die Installation funktioniert auch ohne Installation des Stamm-Zertifkats, man kann auch alle Programme ausführen. Aber das eigene, selbst erstellte Zertifikat in "HTMLEd.exe" kann man eben nur verifizieren, wenn man das Hastasoft Stamm-Zertifkat auf dem PC installiert hat.

jaenicke 29. Aug 2024 07:29

AW: Code Sign Zertifikat
 
Kommt eigentlich die Smartscreen Warnung auch, wenn ein signiertes Programm ein unsigniertes startet? Sonst könntest du doch noch einen Launcher signieren, der das eigentliche Programm startet...

himitsu 29. Aug 2024 10:44

AW: Code Sign Zertifikat
 
signierte Explorer.exe -> unsigniertes Programm starten -> Peng :stupid:

dummzeuch 29. Aug 2024 12:23

AW: Code Sign Zertifikat
 
Zitat:

Zitat von Harry Stahl (Beitrag 1540344)
So, ich habe jetzt mal meine angedachte Lösung testweise implementiert, wobei ich mich freuen würde, wenn jemand sich das mal ansehen könnte. Könnte ja evtl. auch eine Blaupause für eine eigene Lösung sein. Oder Ihr macht mir klar, dass ich auf dem Holzweg bin ;-))

Ich habe jetzt mal ein Programm nicht als Setup.exe auf meine HP gelegt, sondern als Setup_HTMLEditor.zip.
Das ist kein offizieller Link, poste ich nur hier:

https://www.hastasoft.de/Setup_HTMLEditor.zip

Diese Datei runter laden, alles in einen Ordner entpacken und die "Setup.exe" starten. Die Setup.exe ist sozusagen meine "Ewigkeits-Setup.exe", weil ich die nie mehr ändern muss. Die habe ich jetzt noch mit dem KSoftware-Zertifikat signiert und mit dieser Datei hat ja Windows keine Probleme (auch wenn das Zertifikat zeitlich abgelaufen ist), sollte also ohne Probleme mit "blauem Schild" und verifiziertem Herausgeber starten.

Bei mir kommt dann erstmal der Virenscanner, der einen "vom Administrator geforderten" (oder so ähnlich) Scan durchführt. Dann kommt die Sicherheitsabfrage, die Dein Zertifikat anzeigt und dann der Installer und läuft problemlos durch. Der Editor lässt sich dann auch ohne irgendwelche Meldungen starten.

Ach ja: Windows 10 mit dem Defender als Snakeoil.

Sherlock 29. Aug 2024 15:39

AW: Code Sign Zertifikat
 
Einfachste Lösung: Magic Bytes rauslöschen und in einen msi-Installer packen. Keine Signatur nötig. Und keine meckernden Schlangen oder Öle. Quelle: https://www.heise.de/news/Malware-UU...r-9851699.html

paule32.jk 29. Aug 2024 19:02

AW: Code Sign Zertifikat
 
Moin Moin,
ich habe das nicht so tief verfolgt (den Thread hier) - nur so weit, das eine Executable signiert werden soll ?
Man kann ja erstmal ALLES lokal testen, bevor man bei "Code Sign" oder einer anderen CA seines Vertrauens ein Zertifikat für teuer bestellt - weil das geht fast problemlos auch ohne (also Eigene CA und Self Sign Cert).

Dazu muss/ist die im Microsoft SDK vorhandene signtool.exe erforderlich.
Und das Zertifikat muss dann dem Provider (der Lokale Rechner) bekannt gemacht werden.

Dazu verwende ich als Template folgendes PowerShell Script:

Code:
# ---------------------------------------------------------------------------
# File:  gencert.cmd - generate a certificate fot executable signing.
# Author: Jens Kallup - paule32
#
# Rights: (c) 2024 by kallup non-profit software
#         all rights reserved
#
# only for education, and for non-profit usage !!!
# commercial use ist not allowed.
#
# To create the certificate, copy lines 13, ..., 19 into the clipboard, and
# paste the copied text into powershell console. Press return, and voila:
# you have a self signed certificate into your local certification store.
# ---------------------------------------------------------------------------
New-SelfSignedCertificate `
    -Type Custom         `
    -Subject "CN=kallup non-profit" `
    -KeyUsage DigitalSignature     `
    -FriendlyName "chmFilter"      `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3","2.5.29.19={text}")

$password = ConvertTo-SecureString -String "mypassword" -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<fingerprint thumb>" -FilePath certificate.pfx -Password $password

# now, in the Visual Studio C++ Console:
# signtool sign /f ./certificate.pfx /p mypassword /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 observer.exe
muss natürlich angepasst werden.
HTH - Hope This Helps

Harry Stahl 29. Aug 2024 19:44

AW: Code Sign Zertifikat
 
Zitat:

Zitat von jaenicke (Beitrag 1540346)
Kommt eigentlich die Smartscreen Warnung auch, wenn ein signiertes Programm ein unsigniertes startet? Sonst könntest du doch noch einen Launcher signieren, der das eigentliche Programm startet...

Nein kommt nicht. Aber für spezielle Fälle hatte ich mir so etwas ähnliches auch schon überlegt.

Harry Stahl 29. Aug 2024 19:44

AW: Code Sign Zertifikat
 
Zitat:

Zitat von himitsu (Beitrag 1540350)
signierte Explorer.exe -> unsigniertes Programm starten -> Peng :stupid:

Von welcher Konstellation sprichst Du und was meinst Du mit "Peng"?

Harry Stahl 29. Aug 2024 19:46

AW: Code Sign Zertifikat
 
Zitat:

Zitat von dummzeuch (Beitrag 1540359)
Bei mir kommt dann erstmal der Virenscanner, der einen "vom Administrator geforderten" (oder so ähnlich) Scan durchführt. Dann kommt die Sicherheitsabfrage, die Dein Zertifikat anzeigt und dann der Installer und läuft problemlos durch. Der Editor lässt sich dann auch ohne irgendwelche Meldungen starten.

Ach ja: Windows 10 mit dem Defender als Snakeoil.

Danke Thomas fürs Testen.

Also eigentlich alles ganz normal. Programme lassen sich auch ohne Probleme auf einem eingeschränkten Benutzerkonto (nach Anforderung der Adminrechte) installieren und später ausführen.

Harry Stahl 29. Aug 2024 19:47

AW: Code Sign Zertifikat
 
Zitat:

Zitat von Sherlock (Beitrag 1540376)
Einfachste Lösung: Magic Bytes rauslöschen und in einen msi-Installer packen. Keine Signatur nötig. Und keine meckernden Schlangen oder Öle. Quelle: https://www.heise.de/news/Malware-UU...r-9851699.html

Bin natürlich nur an seriösen Lösungen interessiert... ;-)

Harry Stahl 29. Aug 2024 19:49

AW: Code Sign Zertifikat
 
Zitat:

Zitat von paule32.jk (Beitrag 1540390)
Moin,
ich habe das nicht so tief verfolgt (den Thread hier) - nur so weit, das eine Executable signiert werden soll ?

Es geht hier nicht darum, wie man selber ein eigenes Zertifikat erstellt...

paule32.jk 29. Aug 2024 20:34

AW: Code Sign Zertifikat
 
das mit dem Administrator ist so ne Sache...

angenommen Du hast ein (Windows)Programm, das Adim-Rechte fordert:
- dann kommt auf jeden Account eine Admin-Meldung, egal ob Du da nun
mit Benutzer oder mit Benutzer-Admin Account werkelst
- dann hast Du aber nur eine Leasing-Timeout, sprich: wenn Du nach 30 Minuten
das selbe Programm starten möchtest, erscheint die gleiche Meldung (mit Key
abfrage)

das ähnliche ist, wenn Du einen Virenscanner wie A-Vast oder dem Defender ein
neues Programm unterjubbeln willst - dann kommt einmalig eine Meldung, und in
der restlichen Zeit merkt sich Avast oder Defender den Ort + Datum + Hash der
Datei.

Sollte dann an dieser Datei eine Änderung vorgenommen werden, dann wird der alte
berechnete Hash überschrieben. Und beim (neu)starten der Anwendung erscheint wieder
die der Dialog mit Admin + Key ...

Man kann das aber auf den Entwicklungs-Rechner so lösen, das man spezielle Ausnahmen
dem Avast oder dem Defender beibringt.
Das können zum Beispiel nur einzelne Executable-Dateien oder aber auch ganze
Verzeichnisse sein.

Auf einen produktiv-System hingegen würde ich nicht mit den installierten Admin-Account
die Programme freischalten, weil es auch dort den Key erfordert.

Eine Möglichkeit wäre, sich in den Richtlinien des Computers sich:
1. eine Organization anlegen (OU = Orgranization Unit)
das hat den Vorteil, dass das vorliegende Setup nicht durch Experiemente an den
Richtlienen der jeweiligen Organization (hier: default) kaputt macht.
2. einen oder mehrere Admin-Benutzer-Account's anlegen (und ggf. abmelden und mit den
gewünschten Admin-Account weiter machen.
Passwort natürlich ändern.
3. eine oder mehrere Benutzergruppe anlegen
4. in den Benutzergruppen dann Mitglieder aufnehmen (normale Benutzer Account's)
5. den Benutzergruppen den Admin-Account als "Member of" hinzufügen

Dann könnte man sich an die Login-Zeiten und/oder Verzeichnis-Rechte heran tasten,
so dass nur bestimmte Gruppen oder Benutzer Zugriff auf veerbte oder statisch erstellte
Objekte zugreifen können.

Wenn sich nun ein Admin-Benutzer sich in das System einloggt, dann kann dieser Benutzer
mit seinen "Eigenen" Passwort das Programm starten, ohne dabei ab Super-Admin-Rechte zu
gelangen.

Das ganze kann man fast unendlich weiter treiben (zum Beispiel mit ActiveDirectory, wo
dann Domains mit Domains untereinander kommunizieren können (oder Beschränkungen unter-
liegen, die dann weiter eingeschränkt werden können,

ansonsten, das übliche weiter im Konzert (was bereits geschrieben wurde).
etc. pp... blah bla...

DeddyH 29. Aug 2024 20:47

AW: Code Sign Zertifikat
 
Egal, was Du nimmst, Du solltest weniger davon nehmen. Es geht darum, dass ein herunterladbares Setup beim Endanwender den Virenscanner anschlagen lässt, wenn es kein Zertifikat einer offiziellen Stelle enthält. Da hilft eine OU und dergleichen nicht unbedingt weiter.

paule32.jk 29. Aug 2024 20:54

AW: Code Sign Zertifikat
 
ich kann ja gut verstehen, das der kapitalistische Markt auf "rollendes Geld" aufgebaut ist.
Aber ich bin der Meinung:
- bevor man viel Geld in den Sand setzt, sollte man soviel wie möglich, erstmal lokal testen
- es gibt Tools für die gängigen drei Betriebsysteme, die das ermöglichen
- man muss nur mal nachfragen...

..und nicht damit kommen, das der Eine oder Andere damit angenörgelt wird, als würde dann dieser
als Kapitalfeind Nummer Eins angesehen.

ich bin halt noch ein ehrlicher Spitzbube/Gauner...

freimatz 30. Aug 2024 17:48

AW: Code Sign Zertifikat
 
Ich denke Du hast das Problem nicht verstanden. Ich wiederhole:
Zitat:

Zitat von DeddyH (Beitrag 1540401)
Egal, was Du nimmst, Du solltest weniger davon nehmen. Es geht darum, dass ein herunterladbares Setup beim Endanwender den Virenscanner anschlagen lässt, wenn es kein Zertifikat einer offiziellen Stelle enthält. Da hilft eine OU und dergleichen nicht unbedingt weiter.

(fett von mir)


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

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 by Thomas Breitkreuz