I would like to get feedback on documentation and source code that I have put together at www(dot)novabitz(dot)com, which deals with the ongoing problem of how to protect passwords embedded into scripts.
The problem of storing cleartext secrets/passwords in scripts has been discussed at length. Obfuscating passwords within the script and/or reading credentials from config files with restricted permissions is the usual solution. Authentication using host keys is also another common method, however not every system or protocol supports key-based authentication.
The Secure Automation Tool method stores passwords in an encrypted file which is uniquely paired with an executable that passes decrypted secrets to scripts as environment variables. Access to the stored secrets within the encrypted file is not accessible to the system administrator, making this approach desirable for organizations that require role separation when automating tasks for managed systems. Both the script and its interpreter are hashed to ensure that the environment variable is not passed to an untrusted path of execution from which secrets could be recovered.
Thank you for your feedback.
The problem of storing cleartext secrets/passwords in scripts has been discussed at length. Obfuscating passwords within the script and/or reading credentials from config files with restricted permissions is the usual solution. Authentication using host keys is also another common method, however not every system or protocol supports key-based authentication.
The Secure Automation Tool method stores passwords in an encrypted file which is uniquely paired with an executable that passes decrypted secrets to scripts as environment variables. Access to the stored secrets within the encrypted file is not accessible to the system administrator, making this approach desirable for organizations that require role separation when automating tasks for managed systems. Both the script and its interpreter are hashed to ensure that the environment variable is not passed to an untrusted path of execution from which secrets could be recovered.
Thank you for your feedback.