Con OpenSSL, hay dos formas en bash de utilizar una variable de entorno como contraseña:
pass:"${var}"
y env:var
.
Me pregunto qué método proporciona la mayor seguridad, ya que la página de manual hace que parezca que ps
se puede leer la contraseña cuando se pasa como pass:"${var}"
, y que también podría ser posible con env:var
.
Sección relevante de la página de manual de OpenSSL:
Argumentos de frases de paso
Varios comandos aceptan argumentos de contraseña, normalmente usando -passin y -passout para contraseñas de entrada y salida respectivamente. Estos permiten obtener la contraseña de una variedad de fuentes. Ambas opciones toman un único argumento cuyo formato se describe a continuación. Si no se proporciona ningún argumento de contraseña y se requiere una contraseña, se le solicita al usuario que ingrese una: esto generalmente se leerá desde el terminal actual con el eco desactivado.
pasar:contraseña
la contraseña real es contraseña. Dado que la contraseña es visible para las utilidades (como 'ps' en Unix), este formulario sólo debe usarse cuando la seguridad no sea importante.
entorno:var
obtenga la contraseña de la variable de entorno var. Dado que el entorno de otros procesos es visible en ciertas plataformas (por ejemplo, ps en ciertos sistemas operativos Unix), esta opción debe usarse con precaución.
Respuesta1
La página de manual es bastante explícita al respecto, debes usar elentorno:varmétodo.
La página de manual es correcta, todos los parámetros de la línea de comando son visibles a través de ps paratodos los usuariosen el 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
Si usa una variable de entorno, otro usuario (excepto root) solo podrá ver el nombre de esa variable pero no su contenido.
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