Зашифруйте пароль в Команде Openssl - PullRequest
0 голосов
/ 24 ноября 2018

В настоящее время я предоставляю пароль в формате открытого текста, как показано ниже:

openssl genrsa -aes128 -passout pass: foobar 3072

Где foobar - этопароль предоставляется в текстовом формате.

Я хочу предоставить пароль в каком-либо зашифрованном формате или любым другим способом, чтобы его было трудно прочитать.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Обычно пароль должен передаваться через приглашение openssl (т. Е. Удаление аргумента -passout pass:foobar).

Если вы передаете пароль через командную строку, потому что вам нужно использовать его в другой части скрипта, вы можете использовать приведенный ниже пример:

echo -n Password: 
read -s PASS
openssl genrsa -out keypair.pem -aes128 -passout pass:${PASS}
opnessl req -new -key keypair.pem -passin pass:${PASS}

Однако, если вы действительнонеобходимо генерировать ключи без взаимодействия с пользователем, вы можете использовать приведенный ниже пример, но я бы не рекомендовал его для любой производственной среды.

Создайте сценарий (например, auto_key_gen.sh), содержащий код ниже:

PASS=`openssl rand -hex 16`
openssl genrsa -out auto_keypair.pem -aes128 -passout pass:${PASS}
echo -n ${PASS} | openssl rsautl -encrypt -pubin -inkey $1 -out encrypted_pass.bin

Создайте личную пару ключей и извлеките открытый ключ:

openssl genrsa -out mykeypair.pem -aes128
openssl rsa -in mykeypair.pem -out mypubkey.pem -pubout

Храните личную пару ключей в надежном месте.Личный открытый ключ, который вы используете для запуска скрипта:

chmod +x auto_key_gen.sh
./auto_key_gen.sh mypubkey.pem

Сценарий генерирует случайный пароль и использует его для шифрования сгенерированной пары ключей (auto_keypair.pem).Пароль шифруется вашим личным открытым ключом и сохраняется в файле (encrypted_pass.bin).

Скрипт может хранить пароль в «памяти» для использования с другими командами openssl.

Youможет восстановить зашифрованный пароль, используя вашу личную пару ключей:

openssl rsautl -decrypt -inkey mykeypair.pem -in encrypted_pass.bin -out decrypted_pass.hex

И сценарий, и открытый ключ должны быть защищены от несанкционированного изменения.

0 голосов
/ 24 ноября 2018

Если вы действительно указали пароль в зашифрованном формате, как вы запрашиваете, как предоставить ключ шифрования, который использовался для шифрования указанного пароля в OpenSSL, чтобы OpenSSL мог расшифровать его и использовать правильный пароль?

Пароль, который вы предоставляете OpenSSL, я полагаю, используется OpenSSL для шифрования сгенерированного закрытого ключа RSA.Если это действительно пароль, который вы хотите использовать OpenSSL, то он должен быть задан в виде открытого текста.

Если вы беспокоитесь, что кто-то может его увидеть, вам нужно убедиться, что он введен безопасным способом.Но «зашифрованный пароль» не является решением, так как вы можете столкнуться со сложностью защиты ключа шифрования для самого пароля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...