Рекомендуется хранить пароль веб-службы


Сценарий:

    Веб-приложение (RoR 3.2) должно взаимодействовать с удаленным веб-сервисом (SOAP, использующим Savon gem).
  • веб-службе требуются имя пользователя и пароль.
  • связь-это SOAP, трафик - через VPN (без SSL для SOAP).
  • мне нужно сохранить пароль, который мне дает администратор удаленной веб-службы.
  • администратор веб-службы требует, чтобы я сохранял пароль безопасным способом.
  • Когда мой веб-сервер вызывает веб-службу, которую мне нужно использовать исходный пароль в ясном виде.
  • Bcrypt-лучший способ хранения паролей, но это "один из способов". Я не могу отправить зашифрованный пароль, мне нужен способ расшифровать его, чтобы иметь возможность отправить его в веб-сервис.

Похоже, что это проблема "курицы и яйца".

Есть ли способ надежно хранить пароль и иметь возможность расшифровать его для использования в автоматизированном сервисе?

Есть намек?

2 3

2 ответа:

Если зашифрованная информация должна быть отправлена в виде обычного текста, как насчет использования сильного обратимого шифра, это, вероятно, то, что имел в виду администратор веб-службы.

Вы можете добавить другую информацию в виде соли (используя все, что вам хорошо известно и может быть применено алгоритмически, например, имя) перед шифрованием с использованием (например) шифрования AES.
Затем вы можете хранить зашифрованный пароль в выбранном вами месте.

Я бы сохранил этот пароль в переменной окружения (обычный текст, запутанный, не имеет значения), чтобы не помещать его в VCS.

Также чтение безопасно ли хранить пароли в конфигурационных файлах в виде переменных окружения (а не в виде обычного текста)? может помочь.