SelfSignedCertificate: Dateien signieren

Hallo,
ich möchte aus Rechtlichen- und Datenschutzgründen div. Dokumente signieren (Firmenverträge und behördliche Berichte..Bilder ..ect..)

Leider schaffe ich es nicht, eine Datei zu signieren:

ich habe folgende Schritte durchgeführt:

1.) PowerShell:

2.) in certmgr.msc -> Eigene Zertifikate -> Zertifikate -> "Firmenname" -> Alle Aufgaben -> exportieren -> ohne privaten Schlüssel -> DER-codiert-binär X.509(.CER) - Dateiname "C:\zertifikat-test\firmenname.cer"

3.) in certmgr.msc -> Vertrauenswürdige Stammzertifizierungsstellen -> Zertifikate -> rechtklick -> Alle Aufgaben ->"Importieren" das "firmenname.cer" importiert

4.) PowerShell Versuch:

... und verschiedene Variationen versucht (Groß und Kleinschreibung habe ich immer beachtet). Leider ohne Erfolg.
Fehler sind teilweise: "das angegebene zertifikat ist für die codesignatur nicht geeignet", "zugriff verweigert" und so weiter..

Wie schaffe ich es als Beispiel das TXT File "C:\zertifikat-test\test2.txt" mit dem "C:\zertifikat-test\firmenname.cer" zu signieren?

Vielen Dank für Hinweise und Hilfe
Erich

for life:=1971 to lebensende do
begin
..

Content-Key: 535282

Url: https://administrator.de/contentid/535282

Ausgedruckt am: 21.06.2021 um 08:06 Uhr

18 Kommentare
Mitglied: StefanKittel
Hallo,

so sieht das bei mir aus.

sign.bat

Stefan
Mitglied: NetzwerkDude
bei 01:

und bei 02:
hier muss es natürlich zu einem cert MIT privatekey gehen, sonst macht das signieren mit einem pubkey (wie in deinem fall die Datei auf C:\zertifikat-test\firmenname.cer ) kaum sinn :) face-smile

Ach ja, wäre mir neu das es einen standard gäbe um .txt Dateien zu signieren
Mitglied: ErichWanker
Hallo und vielen Dank für die Tipps..

Jetzt bekomme ich einen "UnknownError" in der PowerShell Console..



Die Variable passt:

Das verwendete vertrausenswürdige Zertifikat hat "Codesignatur" ...

Auf die Datei "C:\zertifikat-test\test2.txt" hab ich Vollzugriff ..
Mitglied: Bitboy
Moin,

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...

The Set-AuthenticodeSignature cmdlet adds an Authenticode signature to any file that supports Subject Interface Package (SIP).

Ich schätze eine TXT kann dieses SIP nicht. Versuchs mal mit einer Powershelldatei.

Grüße
Mitglied: ErichWanker
Shit ... mit einer Powershell Datei funktionierts reibungslos ..


Aber das hilft mir nix - ich will ja div. Dokumente signieren

Hab es grade mit einem Word-Dokument versucht - funktioniert auch nicht :-( face-sad


hmmm ... gibt es da eine Möglichkeit wie ich (egal welche Dateiendung ein Dokument hat) signieren kann ?
Mitglied: Bitboy
Die Frage ist erstmal was genau das Ziel der Aktion sein soll "aus Datenschutzgründen" Dokumente signieren passt nicht recht zusammen.
Mitglied: ErichWanker
Ich würde gerne ein beliebiges Dokument digital Signieren - um Änderungen zu unterbinden ..

dann eine Checksumme erstellen (Kryptografisch sichere Checksummen durch SHA-3 )
Dann das Dokument als BLOB in einer Datenbank speichern: Timestamp, User, Dokument und Hash der Checksumme / bei der Checksumme immer die Checksumme des vorherigen Eintrags einbeziehen

01.01.2020 | 08:00 | Mustermann M. | 0f765b3
02.01.2020 | 08:00 | Andere Mitar. | 5g5646c = (checksumme(currentrow + 0f765b3))
02.01.2020 | 07:30 | Mustermann M. | 17ff904 = (checksumme(currentrow + 5g5646c ))


somit hätte ich ein "sicheres" System
Mitglied: Bitboy
Wenn das Dokument nicht geändert werden soll, kann in einem einem ersten Schritt über die Art der Speicherung nachgedacht werden, beispielsweise WORM. Soll das ganze mit Datenbanksuche und diversen Extras funktionieren sind wir bereits bei Dokumenten Management Systemen.

Digitale Signaturen unterbinden das Verändern nicht, du siehst hinterher nur, dass es nicht mehr die Originaldatei ist.
Mitglied: ErichWanker
Hallo Stefan ..

nach langem suchen hab ich endlich den Download gefunden, der dein "signtool.exe" enthält ..

https://developer.microsoft.com/de-de/windows/downloads/windows-10-sdk


Bis ich mal draufgekommen bin, das ich DANACH händisch "C:\Users\erich\Downloads\Windows Kits\10\WindowsSDK\Installers\Windows SDK Signing Tools-x86_en-us.msi" installieren musste - hat es ein wenig gedauert

Aber ich hab das gleiche Problem wie über die Powershell: Das Dateiformat ist nicht unterstützt ?? ..



Mitglied: ErichWanker
"Digitale Signaturen unterbinden das Verändern nicht, du siehst hinterher nur, dass es nicht mehr die Originaldatei ist."

Eine Digitale Signatur würde mir ja schon helfen - da ich ja damit "beweisen" kann - das es sich um eine unverfälschte Datei handelt ..

Wieso kann dieses SignaturTool nur PowerShell Scripte signieren???? ..

Ich will doch blos ein paar verschiedene Dateitypen signieren - wieso ist alles immer soooo schwierig ;-) face-wink


Danke und Ligrü
Erich
Mitglied: Bitboy
Zitat von @ErichWanker:

"Digitale Signaturen unterbinden das Verändern nicht, du siehst hinterher nur, dass es nicht mehr die Originaldatei ist."

Eine Digitale Signatur würde mir ja schon helfen - da ich ja damit "beweisen" kann - das es sich um eine unverfälschte Datei handelt ..

Dazu reicht es wenn du den Hash der Datei speicherst. Wird diese verändert, passt der nicht mehr.
Deswegen gibts auf jeder Linux Downloadseite neben der ISO-Datei den Hashwert, aber eben keine signierte ISO
Mitglied: ErichWanker
"Dazu reicht es wenn du den Hash der Datei speicherst."

Jein ;-) face-wink ... Die grad aus der Uni kommenden Personen, die dann das Audit durchführen sind das Problem: Wenn die "digitale Signatur" hören sind sie schon zufrieden - Prüfsummen und Co. sind keine Wörter die befriedigend wirken :-) face-smile



PS. ... irgendwie MUSS es doch möglich sein ;-) face-wink

Mitglied: StefanKittel
Zitat von @ErichWanker:
Wieso kann dieses SignaturTool nur PowerShell Scripte signieren???? ..
Das hat mit dem Dateiformat zu tun.
Du kannst nur Dateitypen signieren die das von sich aus unterstützen.
Z.B. PS oder EXE.

Bei einem Textdokument weiß Windows schlicht nicht wohin mit der Signatur.

Du kannst auch einen Hash des Inhaltes erzeugen und als dateiname.hash speichern.

Stefan
Mitglied: Bitboy
Naja es bleibt ja dir überlassen weiter zu versuchen eine Lösung einzusetzen die für diesen Zweck nicht gedacht ist um Leute zufrieden zustellen die offensichtlich nicht wissen was sie tun (grade die Uni Leute sollten doch den Unterschied zwischen Signatur und Hash kennen). Oder du hörst auf deine Zeit zu verschwenden und hörst auf die Leute die dir gesagt haben, dass es nicht geht.

PS: Wenn wir schon bei Audit Status sind, dann wäre es erst recht Aufgabe einer Software die entsprechend zertifiziert ist statt einer Selbstbaulösung...
Mitglied: 142232
142232 aktualisiert am 16.01.2020
Zitat von @ErichWanker:

"Dazu reicht es wenn du den Hash der Datei speicherst."

Jein ;-) face-wink ... Die grad aus der Uni kommenden Personen, die dann das Audit durchführen sind das Problem: Wenn die "digitale Signatur" hören sind sie schon zufrieden - Prüfsummen und Co. sind keine Wörter die befriedigend wirken :-) face-smile



PS. ... irgendwie MUSS es doch möglich sein ;-) face-wink
Ist es ja auch, nur gibt es das bei PlainText-Dateien so wie die Kollegen schon korrekt angemerkt haben keinen vorgesehenen Platz für eine eingebettete Signatur, ohne die Dateistruktur zu zerstören, deswegen bettet man die Signatur entweder wie bei PS1 Dateien als Klartext mit in die Datei ein, oder legt eine signierte Hash-Datei der Original Datei bei.
Dabei wird der Hash der Datei erstellt und dieser zusätzlich signiert so das dieser nicht ohne aufzufallen manipulierbar ist
https://raymii.org/s/tutorials/Sign_and_verify_text_files_to_public_keys ...
Damit ist ebenfalls wie bei eingebetteten Signaturen die Unversehrtheit der Datei eindeutig überprüfbar.
Hoffe jetzt ist dir das endlich klar, wenn schon drei Leute dir das gleiche verklickern wollen . :-) face-smile
Mitglied: ErichWanker
Hallo serial..

Den Hash signieren ist ja eine coooole Idee ...

Ich erstelle einen Hash von div. Dateien via:

und bekomme einen String als Ergebnis - den kann ich ja in ein Datei speichern - und diese dann signieren

ABER JETZT GEHTS JA WIEDER VON VORNE LOS .. FRAGE: Welche Dateiendung sollte ich dann da nehmen ? Ein Textfile (wo ich dann den Hash reinschreibe) kann ich ja nicht signieren?

Danke für Hinweise und Ligrü
Erich
Mitglied: 142232
142232 aktualisiert am 17.01.2020
Welche Dateiendung sollte ich dann da nehmen ?
Ich nehme immer den Original-Dateinamen + mit der Endung *.signature angehängt.
Ein Textfile (wo ich dann den Hash reinschreibe) kann ich ja nicht signieren?
Du hast das Prinzip offensichtlich noch nicht verstanden. Am einfachsten die Signatur direkt als Binary-File speichern. Oder eben die Plaintextsignatur in ein File. Das File selbst must du nicht signieren!!

Kann man auch alles mit der PS und dem Namespace System.Security.Cryptography.RSACryptoServiceProvider abfackeln, das bietet entsprechende Methoden zum erstellen und gleichzeitigen Signieren eines Hashes mit Zertifikaten.
https://docs.microsoft.com/de-de/dotnet/api/system.security.cryptography ...
Mitglied: StefanKittel
Hallo,
das mit dem Hash war nur ein Denkanstoss.

Eine Signatur ist ja ein Hash der Datei welche mit einem privaten Schlüssel signiert wird und dem öffentlichen Schlüssel zum überprüfen.
Nur den Hash kann ich nach der Manipulation der Datei ja auch neu erstellen.

Aber grundsätzlich funktionieren alle (rechtssicheren) Archive nach dem Prinzip.
Hash erstellen und so speichern dass dieser nicht manipulierbar ist. z.B. in der Blocklist.

Wenn Du die Hashes irgendwo noch getrennt speicherst kannst Du eine Datei ja jederzeit dagegen überprüfen.

Eine Signatur einer Datei ist genau das.
Heiß diskutierte Beiträge
Netzwerke
Kassen freezen ohne ersichtlichen Grund
Ronic1Vor 1 TagFrageNetzwerke12 Kommentare

Hallo Zusammen, ich schreibe heute zum ersten Mal in diesem Forum. Also weißt mich bitte auf etwaige Fehler meinerseits hin. Wie ich in anderen Beiträgen ...

Router & Routing
Deutsche Glasfaser. NT direkt an pfSense möglich oder besser Kaskade?
fnbaluVor 1 TagFrageRouter & Routing23 Kommentare

Hallo zusammen, am kommenden Mittwoch wird bei mir der Deutsche Glasfaser Anschluss aktiviert. Anfangs wird darüber kein Telefon laufen, aber vielleicht später. Mir stellt sich ...

Notebook & Zubehör
Alt-Laptop Vergleichsmeinungen
winlinVor 21 StundenFrageNotebook & Zubehör13 Kommentare

Hallo zusammen Habe zwei Laptops und einen mini pc und würde gerne wissen was ihr zu den beiden Laptops sagt??? Was dürfte ich Max an ...

Batch & Shell
Problem mit einer Batchdatei
stevie72Vor 1 TagFrageBatch & Shell11 Kommentare

Guten Abend zusammen! Ich habe ein problem eine Batch ans laufen zu bekommen. Folgende Problem Stellung: Wir haben etwa 20 Rechner in der Bibliothek. Darauf ...

TK-Netze & Geräte
Starface mit NGN verliert Gateway
FabezzVor 1 TagFrageTK-Netze & Geräte9 Kommentare

Guten Morgen zusammen, ich hoffe dass ich das richtige Thema getroffen habe. In unserer Firma wurde beschlossen dass die in die Tage gekommene Openscape ausgetauscht ...

Firewall
OpenVPN-Problem
gelöst ingorosVor 15 StundenFrageFirewall19 Kommentare

Hallo, habe gestern mit ipfire einen OpenVPN-Server aufgesetzt. Der läuft auch wunderbar. Sowohl Win7, wie auch Win10pro können sich problemlos anmelden. Ein Laptop mit Win10 ...

Windows 10
Remotedesktopzugang mit Openvpn sicher?
LegofrauVor 23 StundenFrageWindows 106 Kommentare

Guten Morgen, wie sicher ist es wenn man Remotedesktopzugang durch einen Openvpn Tunnel betreibt? Der Openvpn Tunnel ist mit aktuellen Zertifikaten abgesichert. Der Pc hat ...

Virtualisierung
Adobe Flash Player für Zugriff auf VMWare Horizon
Moenchengladbacher-ITVor 1 TagFrageVirtualisierung5 Kommentare

Liebes Support Team, unser Kunde verwendet eine "VMWare Horizon" Applikation, von dem aus Anwendungen/Browser/etc in einer virtuellen Sandbox gestartet werden. Alle Clients haben kein Zugriff ...