Какие проблемы возникают, когда мы используем самозаверяющий сертификат для протокола SMTP, то есть когда сервер SMTP использует самозаверяющий сертификат?
Пока пользователь принимает предупреждение об исключении из-за самозаверяющего сертификата (что может иметь место в почтовом клиенте Thunderbird), я думаю, что это не проблема.
Может кто подскажет, какие еще проблемы могут возникнуть?
На сервер на сервер при обмене данными проблем нет, потому что SMTP-серверы принимают любой сертификат и даже переключаются на незашифрованное соединение. В этом смысле нет инфраструктура открытого ключа для серверов MX. Против атак на понижение версии есть Аутентификация именованных объектов на основе DNS (DANE) (см. RFC 7672 на Безопасность SMTP с помощью оппортунистического DANE TLS), используя открытые ключи, опубликованные в DNS, поверх открытых ключей, подписанных центром сертификации. Самозаверяющие сертификаты подходят для этого.
Для клиент к серверу коммуникации, по крайней мере, удобнее иметь сертификат, подписанный доверенным центром сертификации. Если пользователи учатся принимать исключение, вероятность того, что они это сделают, гораздо выше, даже если существует атака MitM. Более того, например, Почтовый клиент Android позволяет запрашивать или принимать только доверенный сертификат, что делает атаку MitM еще проще. Вот почему я бы рекомендовал использовать сертификат, подписанный ЦС, для связи с клиентами.
Можно даже получить бесплатный сертификат Let's Encrypt для вашего SMTP / IMAP-сервера, поскольку он не ограничивается использованием одного и того же сертификата для нескольких протоколов. Это в значительной степени устраняет необходимость в самозаверяющих сертификатах с общедоступными почтовыми серверами. (Пример конфигурации для Postfix.)
Самоподписанный сертификат может сдерживать тривиальные попытки перехвата почты, но будет иметь ограниченную ценность, поскольку они могут быть MITM'd. Если вы действительно хотите пойти по этому пути, вам следует создать ЦС, и ваши пользователи должны принять ЦС. К сожалению, это, возможно, плохая идея для ваших пользователей (поскольку вы можете подписывать мошеннические сертификаты) и имеет ограниченную ценность, поскольку трафик все еще может быть перехвачен между другими MTA и вашим.
То, что никто не прокомментировал - хотя зашифрованная доставка не является частью протокола SMTP, некоторые поставщики (например, GMAIL) помечают электронное письмо как зашифрованное или нет - и я предполагаю (я не использую gmail, поэтому не не знаю наверняка), что MTA, использующие самоподписанные сертификаты, не будут считаться безопасными.
Как уже упоминали другие, использование LetsEncrypt, как правило, не является большим вопросом и является лучшим решением.
Та же проблема, что и с каждым самозаверяющим сертификатом, клиент не может и не должен доверять серверу. Если вы единственный клиент для своего smtp-сервера, вы можете добавить CA и даже не принимать исключение. Если я один из пользователей вашего сервера, я точно не буду им пользоваться. Нет гарантии, что я подключаюсь к правильному серверу, я предполагаю, что это мошеннический сервер.
P.S все еще часть шифрования в порядке, трафик зашифрован