Home » Tutorials » VCL » Einstieg in die Entwicklung für Windows Vista

Einstieg in die Entwicklung für Windows Vista

Signaturen

Was früher schon bei ActiveX-Controls von Bedeutung war, wird jetzt auch für Windows-Applikationen wichtig: die Code-Signierung (Microsoft Authenticode). So werden beispielsweise alle Anwendungen, die „Setup“ oder „Install“ im Namen haben oder bereits von sich aus sagen, dass sie Administratorrechte benötigen, vom Betriebssystem sehr argwöhnisch behandelt:

Dieser Dialog, der auf ein „nicht identifiziertes Programm“ hinweist, kann einen Anwender erst einmal verschrecken. Signiert man seine Anwendung, sieht der Dialog schon deutlich harmloser aus und trägt auch nur die Überschrift „Zur Fortsetzung des Programms ist Ihre Zustimmung erforderlich“.
Eine Signatur scheint also eine sinnvolle Sache zu sein. Doch woher bekommt man so etwas?
Zuerst muss man sich verdeutlichen, wie so ein Zertifikat funkioniert. Es kommt das Private/Public-Key-Verfahren zum Einsatz. Dabei wird das zu verschlüsselnde Objekt (hier ein Programm) mit einem privaten Schlüssel verschlüsselt bzw. signiert. Mit Hilfe des öffentlichen Schlüssels kann der Empfänger überprüfen, ob die Verschlüsselung wirklich mit dem privaten Schlüssel vorgenommen wurde. Dadurch ist sichergestellt, dass die Datei von einer bestimmten Person stammt und in der Zwischenzeit nicht verändert worden ist. Genau das ist auch das Ziel der Zertifikate unter Windows: Es wird damit nicht sichergestellt, dass ein Programm keinen schädlichen Code enthält. Es ist dadurch nur klar, von wem das Programm stammt und dass es niemand manipuliert hat.
Die Frage ist jetzt nur: Woher bekommt Windows den Public-Key, um die Signatur überprüfen zu können? Die Antwort ist einfach: Microsoft liefert einige Public-Keys mit Windows aus. Zwangsläufig muss zum Signieren ein Key einer dieser Firmen (Certificate Authority) verwendet werden. Das kostet natürlich. Weitere Informationen sind bei den Anbietern (z.B. VeriSign, Comodo) zu finden.
Um selbst ein Zertifikat zu erstellen und anschließend Anwendungen zu signieren, gibt es Kommandozeilen-Tools im Bin-Verzeichnis des .NET-SDKs (makecert.exe und signtool.exe). Die genaue Vorgehensweise ist bei Microsoft beschrieben.