Mit OpenSSL gibt es in Bash zwei Möglichkeiten, eine Umgebungsvariable als Passwort zu verwenden:
pass:"${var}"
und env:var
.
Ich frage mich, welche Methode die größte Sicherheit bietet, da es auf der Manpage den Anschein erweckt, als ps
könne das Passwort gelesen werden, wenn es als übergeben wird pass:"${var}"
, und dass dies möglicherweise auch mit möglich ist env:var
.
Relevanter Abschnitt der OpenSSL-Manpage:
Passphrase-Argumente
Mehrere Befehle akzeptieren Passwortargumente, wobei normalerweise -passin und -passout für Eingabe- bzw. Ausgabepasswörter verwendet werden. Dadurch kann das Passwort aus verschiedenen Quellen bezogen werden. Beide Optionen akzeptieren ein einzelnes Argument, dessen Format unten beschrieben wird. Wenn kein Passwortargument angegeben ist und ein Passwort erforderlich ist, wird der Benutzer aufgefordert, eines einzugeben: Dieses wird normalerweise vom aktuellen Terminal gelesen, wobei das Echo ausgeschaltet ist.
pass:Passwort
Das eigentliche Passwort lautet password. Da das Passwort für Dienstprogramme sichtbar ist (wie „ps“ unter Unix), sollte diese Form nur verwendet werden, wenn Sicherheit keine wichtige Rolle spielt.
Umgebung:var
erhält das Passwort aus der Umgebungsvariable var. Da die Umgebung anderer Prozesse auf bestimmten Plattformen sichtbar ist (z. B. ps unter bestimmten Unix-Betriebssystemen), sollte diese Option mit Vorsicht verwendet werden.
Antwort1
Die Manpage ist diesbezüglich ziemlich eindeutig. Sie sollten denUmgebung:varMethode.
Die Manpage ist korrekt, alle Kommandozeilenparameter sind über ps sichtbar undAlle Nutzerauf dem System.
alice$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:16384 -aes-128-cbc -pass pass:123456
evil$ ps aux|grep openssl
alice 17594 115 0.0 17108 4424 pts/6 R+ 11:02 0:03 openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:16384 -aes-128-cbc -pass pass:123456
Wenn Sie eine Umgebungsvariable verwenden, kann ein anderer Benutzer (außer Root) nur den Namen dieser Variable sehen, nicht jedoch ihren Inhalt.
alice$ OPENSSLPW=123456
alice$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:16384 -aes-128-cbc -pass env:OPENSSLPW
evil$ ps aux|grep openssl
alice 17713 115 0.0 17108 4424 pts/6 R+ 11:02 0:03 openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:16384 -aes-128-cbc -pass env:OPENSSLPW