Passwort sicher an openssl über stdin übergeben

8

Wir wissen, dass wir eine Datei mit openssl mit diesem Befehl verschlüsseln können:

%Vor%

Das Passwort wird von stdin gelesen. Um das Passwort vorab anzugeben, müssen Sie lediglich

voranstellen %Vor%

zum obigen Befehl. Meine Frage ist: Wie kann ich das sicherer machen? Die obige Methode sieht nicht sicher genug aus.

Ich würde mich über einige Kommentare zu diesem Thema freuen, damit ich dieses Problem besser verstehen kann.

    
Enchilada 12.06.2011, 09:59
quelle

4 Antworten

13

so ziemlich jeder Mechanismus, den Sie verwenden, wird von root snoopable sein, also denken Sie daran.

Die Echo-Option wird in den ' ps ' - Einträgen angezeigt. Dies macht sie anfällig für gewöhnliche Benutzer, die nach dem Passwort suchen und es finden.

Sie können -pass file:filename verwenden, um eine Datei zu verwenden. Sie können also Folgendes verwenden:

%Vor%

Dies erstellt die Datei, die von anderen Konten nicht gelesen werden kann (aber immer noch von root lesbar ist). Man geht davon aus, dass das Skript nur einmal verwendet wird, um die Passdatei zu erstellen, als ob Sie den Prozess wiederholen würden. In der Regel befindet sich die Datei in chmod go-rwx , um sie für andere Benutzer unlesbar zu machen.

dann verwendest du:

%Vor%

um die Verschlüsselung mit der vordefinierten Passwortdatei durchzuführen.

Andere Mechanismen sind -pass env:ENVVAR , um eine Umgebungsvariable zu verwenden (es wieder zu bekommen, ohne es zu enthüllen, ist der Trick)

    
Petesh 12.06.2011, 10:53
quelle
11

Kurzversion

Verwenden Sie eine Named Pipe.

%Vor%

Lange Version

Verwenden Sie eine benannte Pipe. Sie können es in bash mit

erstellen %Vor%

z.B.

%Vor%

Es öffnet sich eine benannte Pipe, normalerweise eine FIFO-Warteschlange, und Sie werden in der Prozessliste etwas wie

sehen %Vor%

Es ist nur für den aktuellen Benutzer lesbar und wird nach dem Lesen automatisch geschlossen, so dass Sie sich keine Gedanken über die Berechtigungen machen müssen und die Festplatte bereinigen müssen (die Pipe wird geschlossen, wenn das Programm abstürzt, während a Datei erstellt von Ihnen, wie in einer anderen Antwort vorgeschlagen, würde auf der Festplatte bleiben).

Auf diese Weise wird es auf die schnellste Weise schließen, gleich nachdem der Befehl es gelesen hat und ohne darauf zu warten, dass er seine Aufgabe beendet (ich habe gerade einen Test gemacht: einige Gigabytes verschlüsseln und versuchen, die Named Pipe zu lesen Die Prozessliste): Die Named Pipe wird sofort geschlossen, auch wenn openssl lange braucht um zu verschlüsseln).

Über Ihre Kommentare

  

Wenn der Computer durch eine zweite App kompromittiert wurde, um dies zu erhalten   Passwort, dann hat der Benutzer einige ernsthafte Sicherheitsprobleme zu kümmern   Über. Eigentlich könnte es eine Software sein, die speziell dafür entwickelt wurde   attackiere meine eigene Software

Wenn Ihr Computer gehackt wurde und der Angreifer dieselben Benutzerrechte hat, sind Sie fertig. Zum Beispiel kann der Angreifer leicht Ihre .bashrc zu Alias ​​openssl ändern, so dass es eine hypothetische "bösen-openssl" startet, die Ihr Passwort und Daten kopieren, bevor Sie alles mit dem echten openssl behandeln, was Sie mit Ihrem falschen Gefühl der Sicherheit verlässt.

Das heißt, ich bin kein Sicherheitsexperte. Wenn also jemand mich in Vergessenheit geraten möchte (und mir sagen, warum), dann sind Sie herzlich eingeladen.

    
Riccardo Galli 18.06.2013 16:00
quelle
1

Setzen Sie das Passwort in bash oder in eine andere Skriptdatei und machen Sie 600 Berechtigungen dafür. Dadurch können Sie nur die Datei anzeigen, und das Kennwort wird nirgends angezeigt.

    
Nickolay Olshevsky 12.06.2011 10:03
quelle
0

Wenn ich richtig verstehe, dein Konzert über

%Vor%

bedeutet, dass das Passwort für eine kurze Zeit in der Prozessliste für alle Benutzer sichtbar sein wird. Das kann man einfach mit der% code_% -Reduzierung von bash umgehen (funktioniert aber nicht in der alten POSIX-Shell):

%Vor%

Dieses Konstrukt unterstützt die variable Interpolation ( <<< ) und die Befehlsausgabe kann wie gewohnt weitergeleitet oder in die Datei umgeleitet werden.

    
firegurafiku 05.08.2017 10:30
quelle

Tags und Links