Ich führe einen Software-Daemon aus, der für bestimmte Aktionen die Eingabe einer Passphrase erfordert, um einige Funktionen freizuschalten, die beispielsweise so aussehen:
$ darkcoind masternode start <mypassphrase>
Jetzt habe ich einige Sicherheitsbedenken auf meinem headless Debian-Server.
Wann immer ich zum Beispiel meine Bash-Historie mit durchsuche, Ctrl+R
kann ich dieses superstarke Passwort sehen. Jetzt stelle ich mir vor, mein Server ist kompromittiert und ein Eindringling hat Shell-Zugriff und kann einfach Ctrl+R
meine Passphrase im Verlauf finden.
Gibt es eine Möglichkeit das Passwort eingeben , ohne es in der Bash Geschichte gezeigt werden, ps
, /proc
oder anderswo?
Update 1 : Wenn Sie dem Dämon kein Kennwort übergeben, wird ein Fehler ausgegeben. Dies ist keine Option.
Update 2 : Sagen Sie mir nicht, dass ich die Software oder andere hilfreiche Hinweise wie das Aufhängen der Entwickler löschen soll. Ich weiß, dass dies kein Best-Practice-Beispiel ist, aber diese Software basiert auf Bitcoin und alle Bitcoin-basierten Clients sind eine Art von JSON-RPC-Server, der diese Befehle abhört. Ein bekanntes Sicherheitsproblem wird noch diskutiert ( a , b , c ) .
Update 3 : Der Daemon ist bereits gestartet und wird mit dem Befehl ausgeführt
$ darkcoind -daemon
Dabei ps
wird nur der Startbefehl angezeigt.
$ ps aux | grep darkcoin
user 12337 0.0 0.0 10916 1084 pts/4 S+ 09:19 0:00 grep darkcoin
user 21626 0.6 0.3 1849716 130292 ? SLl May02 6:48 darkcoind -daemon
Das Übergeben der Befehle mit der Passphrase wird daher in ps
oder überhaupt nicht angezeigt /proc
.
$ darkcoind masternode start <mypassphrase>
$ ps aux | grep darkcoin
user 12929 0.0 0.0 10916 1088 pts/4 S+ 09:23 0:00 grep darkcoin
user 21626 0.6 0.3 1849716 130292 ? SLl May02 6:49 darkcoind -daemon
Dies lässt die Frage offen, wo die Geschichte auftaucht. Nur in .bash_history
?