Ich habe mit openssl gespielt, um einen Pub- / Prv-Schlüssel zu erstellen, eine Signatur einer Datei zu erstellen und diese zu validieren. Ich spielte mit Cryptophane (Windows Gnupg Frontend) und hörte von Keyservern +, die mit dem Signieren von Text gespielt wurden.
Ich habe jedoch noch nie ein Dateiarchiv signiert. Wenn ich ein Archiv veröffentlichen möchte (7z, rar oder zip, ist es egal) und ich möchte, dass meine Benutzer oder meine Software überprüfen können, ob DIESES Archiv signiert wurde, wie soll ich das tun? Der öffentliche Schlüssel müsste natürlich öffentlich verfügbar sein. Aber das Hinzufügen der Signatur zum Archiv stört mich. Kann ich mit Software + Archiv eine komprimierte Archivdatei signieren und überprüfen?
Antworten:
Eine übliche Methode besteht darin , eine getrennte Signatur in einer
.sig
Datei zu erstellen (normalerweise eine PGP-Signatur mitgpg -b
- X.509 ist sehr ungewöhnlich) und beide Dateien am selben Speicherort bereitzustellen. Beispielsweise:Dies kann für jede Art von Datei verwendet werden, der Benutzer muss die Signatur jedoch manuell mithilfe von überprüfen
gpg --verify
.Leider unterstützt von den derzeit verwendeten kein (mir bekanntes) Archivformat integrierte Signaturen mit PGP oder X.509. (Dies schließt CAB aus, das von Windows intern, aber praktisch nirgendwo sonst verwendet wird und dessen Signierung ziemlich kompliziert ist.) WinRAR 4 konnte einen "Authentizitätsüberprüfungs" -Datensatz in einem proprietären Format hinzufügen, verwendet jedoch Ihre WinRAR-Lizenz als Signaturschlüssel, der wiederholt geknackt wurde. (Update: Diese Funktion wurde aus Sicherheitsgründen aus WinRAR 5 entfernt .)
Unter Windows (und bald auch unter Mac OS X) ist es möglich, ein "selbstextrahierendes Archiv" zu erstellen - eine digital signierte ausführbare Datei, die ein Archiv aus sich selbst extrahiert. So funktionieren beispielsweise Software-Installer unter Windows. SFXs sind jedoch auf ein einziges Betriebssystem beschränkt, sodass sie nur zum Verteilen von Programmen geeignet sind , nicht von Dokumenten oder Bildern. (Java-Programme können signiert werden und sind plattformübergreifend, aber nur wenige Systeme haben noch eine Java-Laufzeit.)
quelle
Jar-Archive, die mit Javas jar-tool erstellt wurden, sind praktisch zip-Archive, und es gibt ein Tool, den jarsigner, um sie zu signieren.
Hier sind einige nützliche Links:
Zunächst sieht es etwas kompliziert aus ("Was, ich brauche Keeytool? Was noch?"), Aber es ist einfach, die Schritte zu befolgen, um es auf einfache Weise zu lösen. Es klappt. Dann können Sie tiefer in die Materie eintauchen.
quelle
manual verification
? Was ist die Alternative? Ein Autopopup, das sich alle 10 Minuten selbst überprüft? Soll das Betriebssystem das Archiv beim Booten automatisch überprüfen? Wenn ein Archiv empfangen wird - sei es von CD, E-Mail-Anhang, Download, ...? Sollte es ein Plugin in Ihrem Virenscanner sein?.deb
werden Paketsignaturendpkg
vor der Installation des Pakets überprüft , ohne dass der Benutzer zusätzliche Maßnahmen ergreift.Sicher, jedes Mal, wenn Sie signierte Software installieren, überprüfen Sie ein signiertes Archiv. Um eines zu erstellen, sollten Sie dieselben Verpackungstools verwenden, die Entwickler verwenden. Es gibt einige Kompromisse zwischen Benutzerfreundlichkeit und plattformübergreifender Kompatibilität. Ich kann mir keine Möglichkeit vorstellen, ein plattformübergreifend signiertes selbstextrahierendes Archiv zu erstellen.
Erstellen Sie für Windows ein selbstextrahierendes Archiv mit dem Tool iexpress und signieren Sie es dann mit signtool.exe, wie hier beschrieben . Wenn Ihre Benutzer auf die Datei doppelklicken, wird das vertraute Dialogfeld angezeigt, in dem Sie als Herausgeber des Archivs identifiziert werden.
quelle
Mit diesen beiden Befehlen können Sie Dateien mit jarsigner signieren:
Sie müssen Java JDK in Ihrem PC installieren.
-Der erste Befehl erstellt den Schlüsselspeicher im aktuellen Verzeichnis (sofern er noch nicht vorhanden ist). Es generiert ein öffentliches / privates Schlüsselpaar mit dem Algorithmus SHA-256.
-Der zweite signiert die Datei mit demselben Algorithmus, dem Keystore und dem Alias, der vom ersten generiert wurde.
Um eine mit einem Schlüsselspeicher signierte Datei zu überprüfen, können Sie den folgenden Befehl ausführen:
quelle