On Fri, Oct 06, 2017 at 10:03:39PM +0300, Artem Chuprina wrote: > С DKIM, насколько я понимаю, ситуация сходна с SPF: если домен > утверждает, что он подписывает, то письмо с From: из этого домена должно > быть подписано ключом этого домена.
Насколько я понимаю DKIM, в отличие от SPF он не имеет механизмов для анонсирования политик со стороны владельца домена. Насчёт толерантности в RFC 6376 есть пункт 6.3: In general, modules that consume DKIM verification output SHOULD NOT determine message acceptability based solely on a lack of any signature or on an unverifiable signature; such rejection would cause severe interoperability problems. > Если рассылка меняет какой-то из подписанных заголовков (в моем случае > добавляет Reply-To, отсутствие которого было подписано), то подпись > становится невалидной. И не надо говорить, что это не дело > рассылки. Если бы все почтовые клиенты, начиная с гмейла, были в курсе, > как реагировать на рассылочные заголовки, то да, а так нет. Угу. Причём подписывать Reply-To настоятельно рекомендуется (п.5.4). > Прибить DKIM я могу. Но From: (не envelope from) хотелось оставить > прежним. А он, зараза, из домена, которому положен DKIM, и его считают > спамом. Думаю, это нарушает упомянутый п.6.3, то есть приёмник ведёт себя "антисоциально", выражаясь словами RFC 6376. Я нигде не встречал требования подписывать письмо, если в dns присутствуют dkim-овские записи. К тому же вопрос: какой домен проверять, который во From? Ведь содержимое d= в DKIM-Signature может отличаться от домена во From, в частности, d= может содержать домен верхнего уровня. Так что предположение получателя об их тождественности это лишь догадка, а использовать домыслы -- плохая практика. > Отсель мораль: верно ли я понимаю, что (вменяемый) DKIM-aware софт > рассылок может только добавлять всякие List-*, а больше ничего делать он > не может? Ну, если исходящий MTA настроен разумно, т.е. подписывает, в > числе прочего, то, что видит получатель, т.е. тело, From и Subject. Вменяемый софт может: 1. отодрать подпись от входящего письма -- перед этим её можно проверить, если хочется, а можно и не проверять; 2. если подпись не удаляется, то перед вставкой каждого заголовка проверять, не упомянут ли он в h=. Что касается рассылок, проверять подпись разумно на входе в рассылку, после чего подпись можно удалить, а на выходе подписать письмо заново. При этом возможны любые модификации, в том числе Subject'a и тела письма (добавление футеров и т.п.). Конечному получателю ведь без разницы, какой рилей подписал письмо: DKIM служит для защиты от спама, а не для аутентификации автора (для последнего есть SMIME и PGP). -- Eugene Berdnikov