Com o OpenSSL, existem duas maneiras no bash de usar uma variável de ambiente como senha:
pass:"${var}"
e env:var
.
Estou me perguntando qual método oferece mais segurança, já que a página de manual faz parecer que ps
é possível ler a senha quando passada como pass:"${var}"
, e que também pode ser possível com env:var
.
Seção relevante da página de manual do OpenSSL:
Argumentos de frase secreta
Vários comandos aceitam argumentos de senha, normalmente usando -passin e -passout para senhas de entrada e saída respectivamente. Isso permite que a senha seja obtida de diversas fontes. Ambas as opções utilizam um único argumento cujo formato é descrito abaixo. Se nenhum argumento de senha for fornecido e uma senha for necessária, o usuário será solicitado a inserir uma: ela normalmente será lida no terminal atual com o eco desativado.
senha: senha
a senha real é senha. Como a senha é visível para utilitários (como 'ps' no Unix), este formulário só deve ser usado onde a segurança não for importante.
env:var
obtenha a senha da variável de ambiente var. Como o ambiente de outros processos é visível em determinadas plataformas (por exemplo, ps em determinados sistemas operacionais Unix), esta opção deve ser usada com cautela.
Responder1
A página de manual é bastante explícita sobre o assunto, você deve usar oenv:varmétodo.
A página do manual está correta, todos os parâmetros da linha de comando são visíveis via ps paratodos os usuáriosno sistema.
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
Se você usar uma variável de ambiente, outro usuário (exceto root) só poderá ver o nome dessa variável, mas não seu conteúdo.
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