Bir bashsenaryo yazıyorum ve kullanıcıdan şifresini sorup geçmesi gerekiyor openssl. İken opensslşifreyi kendisi okuyabilir, ben programın iki ishal için ihtiyaç ve iki kez kullanıcıyı sormak istemiyorum. İşte senaryo:
cp file{,.old}
read -sp 'Enter password. ' PASS; echo
export PASS
# decode | edit | encode
openssl enc -d -aes-256-cbc -k "$PASS" -in file.old | \
sed ... | openssl enc -e -aes-256-cbc -k "$PASS" -out file
unset PASS
Parola komut satırına bakarak kolayca elde edilebildiğinden bu güvenli değildir; psörneğin birisi bunu kullanarak okuyabilir .
opensslBen yerine, böylece bir ortam değişkeni bir şifreyi okuyabilir -k "$PASS"ile -pass env:PASS, ama yine de güvenli değil; herhangi bir işlemin ortam değişkenleri serbestçe okunabilir (yine psyapabilir).
Peki, şifreyi iki opensslörneğe nasıl güvenli bir şekilde aktarabilirim ?
psbir işlemin ortamını okur /proc/<pid>/environ, ancak bu dosyanın 0600izinleri vardır, bu nedenle yalnızca kök ve işlemi çalıştıran kullanıcı işlemin ortamını okuyabilir. Bunun oldukça güvenli olduğunu söyleyebilirim.