Пароль учетной записи msmtp и smtp - как запутать
Я настроил MSMTP с моей учетной записью Gmail. Я, очевидно, хочу избежать записи моего пароля в текстовом формате в файле конфигурации. К счастью, MSMTP предлагает вариант passwordeval
который может быть использован для получения пароля из выходных данных исполняемого файла.
Вопрос: как мне это использовать?
Я нашел здесь следующее предложение: passwordeval gpg -d /some/path/to/.msmtp.password.gpg
Это не имеет особого смысла для меня: если кто-то сможет получить доступ к моему файлу конфигурации, ему непременно удастся запустить такую команду и получить пароль от gpg.
Поэтому я считаю, что у меня осталась единственная возможность запутать пароль в двоичном исполняемом файле, даже если я почти везде читал, что это плохо!
Моя реализация, которую невозможно взломать, такова: если процесс sendmail работает, выведите правильный проход, в противном случае выдайте поддельный проход.
Ваши предложения? Другие (более безопасные) уловки отличаются от хранения прохода в двоичном файле?
2 ответа
Из комментария Sukima:
Причина, по которой работает gpg -d, заключается в том, что для этого требуется закрытый ключ человека, которому зашифрован файл. Таким образом, просто размещая этот зашифрованный файл в открытом доступе, он все еще зашифрован, и только один человек (тот, кто имеет секретный ключ) может расшифровать его. Предполагается, что секретный ключ заблокирован на компьютере пользователя и не просочился. Также предполагается, что они не настроили агентов, которые кэшируют пароль разблокировки, в то время как хакер имеет прямой доступ к той же машине. Все это маловероятно в 99% всех атак.
Не существует стандартного решения о том, как сохранить учетные данные с ограничением
- необходимость использовать учетные данные в виде простого текста позже
- и без присмотра
- в системе, которая не полностью контролируется вами (если вы просто устанавливаете соответствующие права на файлы, хранящие секреты)
У вас есть несколько решений, но ни одно из них не решит полностью вашу проблему:
- шифруйте свои учетные данные симметричным способом: вам нужно ввести ключ, чтобы расшифровать их
- зашифровать асимметричным способом: вам нужно предоставить свой закрытый ключ, который нужно где-то хранить (без присмотра) или ввести ключ
- запутать: как вы упоминаете, это только защищает от некоторого населения
- получить его откуда-то еще - вам нужно определить путь или другой вашей системы
Вы должны принять во внимание, какой риск является приемлемым, и идти оттуда.