(u.a. Symmetrisches) [Datei-]Verschlüsseln benötigt offene Ports? - Im Ernst?

Hallo allerseits.

Ich hab - OK, noch die alte Gpg4win-4.0.0 installiert. (gnupg 2.3.4)
Naja, in der neuen 4.0.2 das aber sicherlich noch nicht anders.

Gerne würde ich Dateien erstmal symmetrisch veschlüsseln.
Von Asymmetrischem (später auch) ganz zu schweigen. Wenn wenigstens schon mal das simple Symmetrische ginge.

Eigentlich eine ganz simple Aufgabe. Früher mit pgp 2.63ii tippte man pgp.exe -c foo.txt

Mit gpg.exe wäre das auch noch so.

(ob und wie ich jetzt den (optionalen?) Passwortparameter vergessen hab, weiß ich gerade nicht. Mir ist aber gerade auch nicht danach, danach zu suchen. Denn das kann ja eigentlich nicht so schwer sein, symmetrisch mit nem Passwort zu verschlüsseln, ohne 80-200 MB installieren zu müssen und dann noch sein System Scheuntor weit offen zu machen -
OK, OK, unter PGP hat man damals auch erst die globale Environment System-Variable setzen müssen . je nach DOS eine Frickelei … aber wir haben jetzt 2022 … gut 27 Jahre später)

Parameter wie -p blablabla
oder zusätzlich noch -a (ascii armor)
(ich erinnere mich so an pgp.exe -cas foo.txt, falls man auch noch signieren möchte, usw. - das volle Programm)

So, also versuch ich wenigstens mal, symmetrisch zu verschlüsseln:
in der Console erscheint:

gpg -c C:\test\neu.txt
gpg: can’t connect to the gpg-agent: IPC “connect” Aufruf fehlgeschlagen
gpg: Problem mit dem Agenten: Agent läuft nicht
gpg: can’t connect to the gpg-agent: IPC “connect” Aufruf fehlgeschlagen
gpg: Problem mit dem Agenten: Agent läuft nicht
gpg: Fehler beim Erzeugen des Passwortes: Verarbeitung wurde abgebrochen
gpg: Symmetrische Entschlüsselung von `C:\test\neu.txt’ fehlgeschlagen: Verarbeitung wurde abgebrochen

OK, auf meinem bevorzugten System sind die Ports nicht freigegeben.
Daher der Programmabbruch.

“ja, aber welcher Idiot sperrt denn alle Ports?”

Gegenfrage:
Ja, wieso denn nicht?
WIESO in aller Welt muß ein Programm zum symmetrischen Verschlüsseln von Dateien wahlfreien Zugriff auf allemöglichen Ports haben??
Ok, ja natürlich. Ich kann es auch lassen, das Programm zu verwenden. Problem gelöst.

Ja, meinetwegen kann ich verstehen, daß das Programm über - mir bisher nicht erläuterte Gründe - Ports besser mit anderen Komponenten (Schlüsselverwaltung; GUI, etc.was weiß ich) besser und sicher kommunizieren kann.

Aber WIESO muß ein Programm, daß viele eben auch obendrein noch zur Emailkommunikation einsetzen zum Starten/Laufen Zugriff auf allemöglichen Ports haben und irgendwas irgendwohin senden?? Jedes Mal andere (Ports).
Gibt es nicht für Emails nicht extra dafür standardisierte, penibel abgezählt freigegebene Ports? 110, 143, 993, 25, etc.

Und wieso überhaupt? Bei einem Programm, das ich zur Sicherheit [Emailverkehr], oder zur Absicherung (Linux update Pakete, Windows) einsetze, dem ich absolut vertraue …
das erfordert Ports unabdinglich zum Betrieb? Damit es nicht abstürzt? im Ernst?

OK, daß es eventuell (optional) zum Schlüsselholen vom Keyserver ins Internet funken muß, will ich gelten lassen. Das mag mancheiner wünschen.
PGP startete/ lief aber selbst auch ohne Portkommunkation. Holte dann eben keine Keys vom Server oder meldete “Server unerreichbar”

Warum wird der Anwender nirgends mal darauf hingewiesen?
Gefühlt war diese Portnutzung in den früheren gpg Versionen (1.x irgendwas) auch noch nicht vorhanden.

Muss ich jetzt vor/zum Betreiben von gpg.exe den Adminstrator anbetteln, auf meinem zugeteilten System, bitte alle Ports freizugeben?

Und diese Portwuselei herrscht ja unter allen anderen Programmen der Suite auch.
Vom GPA über Kleopatra durchweg bei allen.

und dann - obendrein bleibt der Agent bis zum Herunterfahren/Neustarten im RAM und läßt sich nicht beenden. …
Das nächste Unding.

Generell:
Da ich gerne portable Programme nutze, die ich auch ohne Installation betreiben kann und die nur begrenzt Spuren auf meinem System hinterlassen oder ich die einzeln von Hand auch zur Not finden und rückgängig machen kann, weiß ich natürlich, daß es gpg4usb gibt.

Beim Blick aber auf die Homepage wird einem bange …
https://gpg4usb.org/
2016-01-05 New stable release 0.3.3-2

da weiß ich gar nicht, ob der Zufallsgenerator (wird doch sicher für symmetrische Verschlüsselung für den IV auch gebraucht [oder nur für die großen Primzahlen?]) noch vertrauenswürdig ist.
Beim Blick auf das Releasedatum mit Sicherheit nicht.
Gut, meinetwegen - was der Betreiber der Page anbietet, damit hat hier keiner was zu tun. Das ist seine Sache. Aber darum würd ich ja gerne das Originale einsetzen.

Ich bin mir aber sicher, daß man auch das originale, aktuelle gpg.exe mit Parametern zur portablen Nutzung füttern kann. (z.B., daß man den Schlüsselbund in einem bestimmten Verzeichnis ablegt)

(ob, GPG4USB nun keine Ports oder doch braucht, weiß ich gerade nicht - nicht getestet, sorry - spielt aber auch keine Rolle)

OK, das ist jetzt viel Text. Spiegelt aber meinen Frust über die Umstände gut wieder.

Vielleicht kann mir ja mal jemand den unabdingbaren Nutzen/ Vorteil erläutern, oder mal an die Entwicklugn weiterleiten, daß es einen Fallback oder Modus geben sollte, sodaß man das auch portabel einsetzen kann.
Sicher bin ich da nicht der einzige, der sich sowas wünscht.
Von einem der absoluten Sicherheit dienenden Programm.

Hoffe auch, daß sich niemand angegriffen fühlt. Denn das ist keinesfalls meine Absicht.

Mit vielen Grüßen

Hallo Jan,

es tut mir leid, dass Gpg4win Dich frustriert hat. Wir geben uns Mühe,
die Software so zugänglich wie möglich zu gestalten und zu dokumentieren,
trotzdem gibt es viel zu verbessern.

Vielleicht kann ich Dir ein paar Hinweise geben:

== Aufteilung in Komponenten

Die Aufteilung in mehrere eigenständige Komponenten erfolgte bei
GnuPG schon vor vielen Jahren (mit dem großen Schritt Versionen 1 zu 2).
Der Grund sind Sicherheitsgründe, denn kleinere Komponenten die weniger
Aufgaben haben, können leichter überprüft und abgesichert werden.

Hier ist eine alte Grafik des Aufbaus:
https://www.gnupg.org/aegypten/tech.en.html
Die stimmt so schon lange nicht mehr, aber es ist sichtbar,
dass gpg-agent für alle Operationen mit geheimen Schlüsselmaterial zuständig ist.
Das macht das ganze System weniger angreifbar, weil die Angriffsfläche
verringert wird. GUI Teile, wie das pinentry laufen dann in einem eigenen
Prozess, enthalten oft viel Code zum Aufbau des GUIs, aber halt nie
den geheimen Schlüssel.

=== ICP auf Windows nutzt locale TCP-Verbindungen

Für die Prozesskommunikation (IPC) auf Windows werden locale TCP-Verbindungen
genutzt, weil Windows (damals) keine davon unabhängigen Sockets hat(te).
Ein Freigeben der Ports nach außen, ist also nicht nötig.
In normalen Windows-Installationen ist diese interne TCP Kommunikation wohl
möglich. (Ich weiß gerade auswendig nicht genau, wie die Einstellungen bei aktuellen
Firewall-Produkten dafür genau aussehen müssten, aber es wird feingranular gehen.
Über die Jahre und verschiedenen Installationen, ist das auch immer leicht anders.)

== Nur Dirmngr kommuniziert nach außen

Es ist richtig, dass der dirmngr die Verbindungen nach außen übernimmt.
Also Abrufe nach WKD, öffentliche Schlüsselservern, Sperrlisten oder Informationen,
Verzeichnisdienste und so weiter. Der ließe sich sperren, in einem System mit entsprechenden
Sicherheitsbedürfnissen.

== mkportable

Um eine portable Version von Gpg4win zu machen, gibt es mkportable, siehe Anleitung
https://www.gpg4win.org/download-de.html
(wir halten den Nutzen einer portablen Version für vergleichweise gering)

== Simple Installer (ohne GUI)

Es gibt auch eine Ausgabe der Krypto-Engine, die in Gpg4win enthalten ist, sie kann
in manchen Nutzungsszenarien passend sein:
(Auf https://gnupg.org/download/index.html nach Windows suchen,
zur Zeit für der Link auf https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.6_20220425.exe )
Das ist die gleiche Version, welche auch in Gpg4win enthalten ist.

== Korrektheit wichtiger als Downloadgröße

Die symmetrische Verschlüsselung ist deutlich einfacher, als die asymmetrische.
GnuPGs Schwerpunkt liegt bei der asymmetrischen, was einen Teil der Komplexität
erklärt. Aber auch die symmetrische Verschlüsselung in der Praxis braucht gute
Komponenten, Z.B.
a) Zufallsgenerator
b) Key derivation function
c) Verfahren
d) Container (mit Encoding, Archivfunktion)

Gpg4win und GnuPG möchten viel bieten, aber jedes Teilstück nur einmal pflegen.
Den meisten Nutzenden ist ein größere Paket mit viel Inhalt lieber, die heutigen
Internetverbindungen geben da auch viel her.

Hoffentlich konnte ich schon ein paar Fragen von Dir beantworten!

Viele Grüße
Bernhard