Wie kann ich die GPG-Entschlüsselung automatisieren, bei der eine Passphrase verwendet wird, während diese geheim bleibt?

13

Ich habe die Aufgabe, eine gpg-Entschlüsselung mit cron (oder einem Ubuntu Server-kompatiblen Job Scheduling Tool) zu automatisieren. Da es automatisiert werden muss, habe ich es verwendet, --passphraseaber es landet im Shell-Verlauf, sodass es in der Prozessliste sichtbar ist.

Wie kann ich die Entschlüsselung automatisieren und dabei gute (möglichst gute) Sicherheitsstandards einhalten?

Ein Beispiel wird sehr geschätzt.

Zakk Coetzee
quelle
Argumente wie dieses sind in psetc sichtbar, es sei denn, Sie haben hidepidan /proc, aber eine Shell, die ein Skript (von cron oder anders) ausführt, ist nicht interaktiv und sollte keinen Verlauf schreiben, es sei denn, sie ist falsch konfiguriert.
Dave_thompson_085

Antworten:

23

Speichern Sie die Passphrase in einer Datei, die nur vom Benutzer des Cron-Jobs gelesen werden kann , und verwenden Sie die --passphrase-fileOption, um anzugeben gpg, dass die Passphrase dort gelesen werden soll.

Dadurch wird sichergestellt, dass die Passphrase in den Prozessinformationen im Speicher nicht sichtbar ist. Die Sicherheitsstufe wird durch die Zugriffsstufe auf die Datei bestimmt, in der die Passphrase gespeichert ist (sowie durch die Zugriffsstufe auf die Datei, die den Schlüssel enthält), einschließlich der Stelle, an der der Inhalt kopiert wird (achten Sie also auf Sicherungen). und Offline-Zugänglichkeit (Herausziehen der Festplatte aus dem Server). Ob diese Sicherheitsstufe ausreicht, hängt von Ihrer Zugriffskontrolle auf den Server ab, auf dem sich die Datei befindet, physisch und in der Software sowie von den Szenarien, die Sie abschwächen möchten.

Wenn Sie hohe Sicherheitsstandards wünschen, müssen Sie ein Hardware-Sicherheitsmodul verwenden, anstatt Ihren Schlüssel (und Ihre Passphrase) lokal zu speichern. Dies wird nicht verhindern, dass der Schlüssel in situ verwendet wird , aber es wird verhindert, dass er kopiert und an anderer Stelle verwendet wird.

Stephen Kitt
quelle
+1 für die Erwähnung des Hardware-Sicherheitsmoduls, der einzigen Lösung für dieses Rätsel.
MariusMatutiae
Stephen, danke für die Erwähnung des Hardware-Sicherheitsmoduls. Ich werde Nachforschungen anstellen. Vielen Dank, dass Sie mich in die richtige Richtung weisen.
Zakk Coetzee
@StephenKitt Hardwareschlüssel eignen sich hervorragend für die Arbeit. Wenn sie dies nicht tun, gut ...
Satō Katsura
@ SatōKatsura stimmt, obwohl ich darauf hinweisen möchte, dass der Yubikey kein HSM ist. (Das heißt natürlich nicht, dass HSMs nicht angreifbar sind .)
Stephen Kitt
"Wenn Sie hohe Sicherheitsstandards wünschen", können Sie keine automatisierten Jobs entschlüsseln oder signieren.
JimmyB
5

Das Automatisieren der Entschlüsselung bedeutet, dass Sie die Passphrase irgendwo speichern müssen oder keine Passphrase verwenden müssen (es sei denn, Sie verwenden zusätzliche Optionen, wie in der anderen Antwort von Stephen angegeben, als ich meine eingegeben habe)! Keiner von beiden entspricht Ihren Anforderungen an gute oder hohe Sicherheitsstandards.

Das heißt, Ihre Anforderung ist nicht mit der Sicherheit kompatibel.

Sie können sich auf Dinge verlassen, wie: Sie müssen root sein, ich habe der Datei, in der meine Passphrase gespeichert ist, einen sehr verwirrenden Namen gegeben, ich habe die zugrunde liegenden Dateisysteme usw. verschlüsselt, aber sie sind alle Ebenen die sind trivial zu umgehen, wenn Sie in erster Linie root sind.

Die Option, die verhindert, dass die Passphrase in der Prozessliste angezeigt wird, ist --passphrase-file <file-name>.

Dies ist jedoch nicht sicherer als das Entfernen der Passphrase.

EightBitTony
quelle
Danke, dass Sie Tony erklärt haben, Sie haben eine bessere Sicht auf die Sache gegeben. Ein Hardware-Sicherheitsmodul, wie von Stephen erwähnt, wird das Hauptziel sein.
Zakk Coetzee
@ZakkCoetzee: Wie ich in der anderen Antwort sagte, was hindert den Angreifer daran, das HSM zu verwenden, wenn er root ist?
Martin Bonner unterstützt Monica
@MartinBonner Wie oben von Stephen Kitt gesagt, hindert es sie daran, den Schlüssel zu bekommen, was definitiv besser ist als den Schlüssel zu bekommen.
Zakk Coetzee
Es ist aber nicht sehr viel besser. Fragen Sie Diginotar (der seinen Schlüssel in einem HSM hatte, den HSM jedoch verbunden und mit der entsprechenden Smartcard im Steckplatz belassen hat, damit ein Angreifer eine Reihe von Zertifikaten des Angreifers signieren kann.)
Martin Bonner unterstützt Monica