Мне пришлось реализовать автоматическую передачу файлов SFTP, для которой требуется имя пользователя и пароль.
Не желая оставлять пароль в текстовом файле / пакетном сценарии, чтобы мир мог наткнуться на него, я решил сохранить имя пользователя и пароль в переменных среды конкретного пользователя из соображений безопасности.
При запуске автоматизированного сценария WinSCP он работает, как указано.
Теперь, естественно, любой пользователь с соответствующими административными правами может редактировать реестр и находить в нем учетные данные. Хотя это более безопасно, чем стандартный пакетный файл, я все же не совсем доволен этим.
Я хочу знать, есть ли более безопасный способ хранения чувствительных переменных, чем этот, и есть ли лучший подход, о котором думали другие?
Как упоминалось в Статья WinSCP о безопасности учетных данных (хотя в несколько ином контексте):
Невозможно надежно зашифровать пароли таким образом, чтобы их можно было использовать автоматически.
Хотя вы можете скрыть / запутать их лучше, чем хранить их в виде обычного текста в реестре Windows.
Например, вы можете использовать «защищенную строку» из сценария оболочки PowerShell (см. ConvertTo-SecureString
). Или используйте PowerShell для всего переноса с использованием сборки WinSCP .NET.
См. Другую статью WinSCP о Защита учетных данных, используемых для автоматизации.