Cyber Security

PowerShell: Dateien digital signieren

In diesem Beitrag wird ein Zertifikat für die digitale Signatur erstellt, um in PowerShell Dateien digital zu signieren. Ein digitales Zertifikat ist eine Identitätsbescheinigung, die meist von autorisierter Stelle, der Certification Authority (CA), ausgestellt wird, oder eben selbst erstellt wird.

Das Signieren einer Datei erfolgt mit einem Zertifikat. Mithilfe der Kryptografie kann die Echtheit überprüft werden. Dies erfolgt mithilfe des Schlüsselpaars Private-Key und Public-Key. Die Datei wird mit dem Private-Key digital signiert und mit dem Public-Key wird die Identität überprüft.

Wer eine interne CA zur Verfügung hat, oder ein Zertifikat von einer öffentlichen CA bezieht, der kann dieses (sofern es sich für die digitale Signatur eignet) verwenden. Mehr zu einer internen CA in meiner Serie Active Directory Zertifikatsdienste Active Directory Zertifikatsdienste (Teil 1): Installation einer Enterprise Root-CA.

In diesem Artikel wird ein Self-Signed Zertifikat erstellt.

Erstellen eines Self-Signed Zertifikats

PowerShell öffnen und folgenden One-Liner (OK, vielleicht Two-Liner) ausführen:

New-SelfSignedCertificate -DnsName patrick@sid-500.com -CertStoreLocation Cert:\CurrentUser\My\ -Type Codesigning

1.PNG

Das erstellte Zertifikat ist in den Eigenen Zertifikaten (certmgr.msc) zu finden.

2.PNG

Import in Vertrauenswürdige Herausgeber / Stammzertifizierungsstellen

Nun muss das Zertifikat exportiert werden um dann in den Vertrauenswürdigen Stammzertifizierungsstellen und in den Vertrauenswürdige Herausgebern importiert zu werden.

Dazu das Zertifikat öffnen und unter Details – In Datei kopieren … wählen.

4.PNG

Der private Schlüssel sollte nicht mitkopiert werden.

5.PNG

Als Dateiformat *.CER wählen.

6.PNG

Die Datei nun in einem geeigneten Speicherort speichern. (bei mir am Desktop)

7.PNG

Das exportierte Zertifikat muss nun in den Vertrauenswürdigen Stammzertifizierungsstellen und in den Vertrauenswürdigen Herausgebern importiert werden.

Beispiel:

8.PNG

Stellen Sie sicher, dass in beiden Ordnern das Zertifikat aufscheint.

9.PNG

10.PNG

Signieren einer Datei

Um eine Datei mit PowerShell zu signieren steht Set-Authenticodesignature zur Verfügung. In diesem Beispiel handelt es sich um eine .ps1 Datei, also eine PowerShell Datei.

Set-AuthenticodeSignature -FilePath C:\Temp\skript.ps1 -Certificate (Get-ChildItem -Path Cert:\CurrentUser\My\ -CodeSigningCert)

11.PNG

Cool. So jetzt noch in den Eigenschaften der Datei das Getane überprüfen und dann wars das.

12.PNG

Weiter Infos auf Technet im Beitrag New-SelfSignedCertificate oder in meinem Artikel Cyber Security – Pen Testing (Teil 4): Zertifikate und PKI.

2 replies »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.