Безопасен ли аргумент передачи openssl через bash? - PullRequest
2 голосов
/ 15 марта 2019

Страница man openssl сообщает, что опция -pass pass: [пароль] для команды openssl небезопасна, потому что она видна для таких утилит, как ps, но безопасна ли она через bash?

Как это:

#!/bin/bash

read -s psword

openssl enc -pass pass:$psword -aes-256-cbc -in text.plaintext -out text.encrypted

Я запустил такую ​​программу на своем компьютере, и все, что ps, похоже, видит "openssl". Смогут ли другие утилиты увидеть пароль?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

В любой операционной системе командную строку обычно легко получить из любого процесса. Посмотрите этот ответ , чтобы получить командную строку для процесса. Так что не имеет значения, что «запускает» процесс, будь то bash или какое-то другое приложение. Это причина, по которой дается этот совет.

С любой из этих вещей это сводится к риску. Если вы принимаете на себя риск, что это не так безопасно, то нет никаких причин не использовать командную строку (т. Е. Это ваш компьютер, и вы единственный, кто его использует). Если многие люди могут видеть ваши сеансы процесса и возможность увидеть чувствительный пароль, риск может не стоить того. Вам решать, является ли риск приемлемым.

0 голосов
/ 16 марта 2019

если вы хотите защитить пароль, то лучше записать его в файл, к которому имеет доступ только ваш процесс, и прочитать пароль из этого файла в вашей команде.Это скроет простой пароль в командной строке и сделает его невидимым для других процессов.

Вы можете проверить следующий ответ.Он связан с генерацией ключей openssl, но похож на этот раздел: Как сгенерировать ключ openSSL с помощью ключевой фразы из командной строки?

...