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, --passphrase
aber 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.
ps
etc sichtbar, es sei denn, Sie habenhidepid
an/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.Antworten:
Speichern Sie die Passphrase in einer Datei, die nur vom Benutzer des Cron-Jobs gelesen werden kann , und verwenden Sie die
--passphrase-file
Option, um anzugebengpg
, 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.
quelle
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.
quelle