Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Wie kann man Manifeste für die Windows UAC signieren? (https://www.delphipraxis.net/132886-wie-kann-man-manifeste-fuer-die-windows-uac-signieren.html)

Exceeder 21. Apr 2009 12:15


Wie kann man Manifeste für die Windows UAC signieren?
 
Hallo,

ich habe die UAC elevation für meine administrativen Programme nach der folgenden Anleitung umgesetzt:
http://www.delphipraxis.net/internal...t.php?t=130450

Wegen der fehlenden Signierung kommt der UAC Dialog im Modus "orange" mit der Meldung "Ein nicht identifiziertes Programm möchte auf den Computer zugreifen" daher. Schöner wäre es natürlich, wenn dort die "graue" Version auftauchen würde wo der Herausgeber des Programms eindeutig draus hervorgeht.

Ich habe bei meinen Google recherchen bereits die Erwähnung von "SignTool.exe", "MT.exe" und "Mage.exe" gefunden. Das sollen scheinbar alles MS Programme sein, welche für das erzeugen von Manifesten zuständig sind. Leider konnte ich noch nicht herausfinden, in welchen Paketen die Programme ausgeliefert werden bzw. welches denn nun das benötigte Programm ist.

Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.

Hat jemand eine Idee oder besser eine Anleitung parat, wo die Signierung der Manifest-Datei/eines Programm beschrieben wird?

Exceeder

Bernhard Geyer 21. Apr 2009 12:22

Re: Wie kann man Manifeste für die Windows UAC signieren?
 
Zitat:

Zitat von Exceeder
Ich habe bei meinen Google recherchen bereits die Erwähnung von "SignTool.exe", "MT.exe" und "Mage.exe" gefunden. Das sollen scheinbar alles MS Programme sein, welche für das erzeugen von Manifesten zuständig sind. Leider konnte ich noch nicht herausfinden, in welchen Paketen die Programme ausgeliefert werden bzw. welches denn nun das benötigte Programm ist.

z.B. im SDK des Windows 2003 Servers. Download-URL müsstest du im MSDN selbst suchen.


Zitat:

Zitat von Exceeder
Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.

Da heißt es Geld zahlen und bei üblichen Verdächtigen wie Verisign ein Zertifikat für 3 Jahre kaufen.

Apollonius 21. Apr 2009 12:49

Re: Wie kann man Manifeste für die Windows UAC signieren?
 
Schau dir doch mal das Tutorial vom Chef an.

Exceeder 21. Apr 2009 12:59

Re: Wie kann man Manifeste für die Windows UAC signieren?
 
Hi,

danke. Habe mir jetzt das SDK für Windows Vista runtergeladen. Da sind die von mir genannten Tools alle bei. Man braucht sich aber nur die Microsoft Windows Development Tools installieren, den Rest kann man getrost weglassen, sofern man es nicht benötigt. Habe davon auch nur die Win32 Version installiert.

Das Tutorial hilft mir sehr weiter. Habe ich bei meiner Suche wohl irgendwie übersehen. Danke auch hierfür.

Exceeder

SirTwist 21. Apr 2009 18:59

Re: Wie kann man Manifeste für die Windows UAC signieren?
 
Zitat:

Zitat von Exceeder
Außerdem fehlt mir für eine erfolgreiche Signierung noch eine Zertifikatsdatei. Leider weiß ich ebenfalls nicht, woher ich diese bekommen kann.

Hier musst Du unterscheiden, WO Du Deine Software einsetzen willst. Ein Zertifikat identifiziert irgendjemanden bzw. irgendetwas, also z.B. Dich! Ein Zertifikat wird von einer Zertifizierungsstelle ausgestellt (Certification Authority, CA). Microsoft trägt direkt bei der Windows-Installation eine ganze Reihe (kommerzieller) CAs als Vertrauenswürdig ein. Dies siehst du mit dem Tool "certmgr.msc", dort unter "Vertrauenswürdige Stammzertifizierungsstellen". Aber ein Personenzertifikat von diesen kommerziellen Anbietern kostet relativ viel Geld.

Mit geeigneter Software kannst Du Dir eine eigene CA erstellen. Aus dieser CA erstellst Du Dir dann ein Zertifikat, ausgestellt auf Deinen Namen. Im Endeffekt hast Du drei Dateien. Das Zertifikat der CA, Dein Zertifikat und Deinen privaten Schlüssel. Das CA-Zert importierst Du in den Zweig "Vertrauenswürdige Stammzertifizierungsstellen", sobald das dort eingetragen ist, vertraut Dein Windows Dir bedingungslos ;-) Dein eigenes Zert kannst Du auch unter "Eigene Zertifikate" installieren, dann kann SignTool.exe direkt darauf zugreifen.

Wenn Du also nur für Dich Software schreibst und ein paar Freunde, musst Du denen halt dein CA-Zert mitgeben und ihnen sagen, dass sie das einmal importieren müssen. Für einen größeren Nutzerkreis wirst Du um ein kommerzielles Zertifikat nicht herumkommen.

Wie bekommst Du nun Deine CA? Unter Linux gibt es eine TinyCA, eine kleine grafische Oberfläche für OpenSSL. Prinzipiell kann man auch alles direkt an der Kommandozeile mit OpenSSL machen, davon gibt es auch ein Windows-Binary. Man kann sich aber auch ins Knie schießen und danach Wiener Walzer tanzen. Ist genauso befriedigend. Man könnte auch einen Windows Server kaufen, den installieren und dort die Microsoft CA einrichten. Aber ich glaub, dann wäre ein kommerzielles Zertifikat billiger.

Soweit mal ein ganz kurzer Einblick in das Thema Zertifikate.

Gruß,
SirTwist

Exceeder 22. Apr 2009 07:15

Re: Wie kann man Manifeste für die Windows UAC signieren?
 
Hallo,

die Software soll im professionellen Umfeld eingesetzt werden. Ich werde also auf jedenfall ein Zertifikat kaufen. Die Installation eines eigenen Zertifikats könnte ja erst stattfinden, nachdem das Installations- und Administrationsprogramm das erste mal gestartet wurde, dass wäre ja ziemlich Sinnfrei. :)

Ich habe Webserverzertifikate bisher immer unter Linux auf der Kommandozeile mit dem Tool openssl erstellt (sind ja im Prinzip nur zwei Schritte). Ist an der Zertifikatsbeschreibung irgendwas anders als bei einem SSL Zertifikat oder ist das im Prinzip alles die selbe Brühe?

Exceeder


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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