Добрый день всем. Уже 3 недели бьюсь с подписанием исходящей почты подписью DKIM
Конфигурация FreeBSD+Postfix+OpenDKIM
Письма подписываются, но есть ньюансы...
Если письмо отправляется при помощи клиента Outlook Express, подпись проходит проверку dkim=pass
Если письмо отправляется при помощи Mozilla Thunderbird, проверку проходят только сообщения с пустым телом и темой или если тема на англ. языке. да и то не везде, mail.ru всегда говорит dkim=fail reason=bodyhash_mismatch header, yandex.ru признает сообщения с пустым телом и англ. темой.Проблема в том, что 90% пользователей как раз на Mozilla Thunderbird.
Подпись нужна т.к. не так давно google занес мой адрес в свои черные списки ) по причинам непонятным, в рекомендациях говорится, что DKIM нада.
Тема начиналась на http://www.postfix.ru/viewtopic.php?t=24875Может кто сталкивался с таким или есть идеи почему так и что делать. Заранее благодарен.
>[оверквотинг удален]
> с пустым телом и темой или если тема на англ. языке.
> да и то не везде, mail.ru всегда говорит dkim=fail reason=bodyhash_mismatch header,
> yandex.ru признает сообщения с пустым телом и англ. темой.
> Проблема в том, что 90% пользователей как раз на Mozilla Thunderbird.
> Подпись нужна т.к. не так давно google занес мой адрес в свои
> черные списки ) по причинам непонятным, в рекомендациях говорится, что DKIM
> нада.
> Тема начиналась на http://www.postfix.ru/viewtopic.php?t=24875
> Может кто сталкивался с таким или есть идеи почему так и что
> делать. Заранее благодарен.http://www.sergeysl.ru/freebsd-dkim-postfix-amavisd-new/
Ах да, RSA ключи-то настоящие или левак самоподписной?
> http://www.sergeysl.ru/freebsd-dkim-postfix-amavisd-new/спасибо, конечно, может попробую подписывать Amavisd-new. я делал по этим статьям:
http://www.prado.it/2012/04/26/how-to-run-postfix-with-opend.../
http://habrahabr.ru/post/151904/
> Ах да, RSA ключи-то настоящие или левак самоподписной?ключи генерировались opendkim-genkey как то так:
opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail
Только кажется мне, что ничего не поменяется от использования amavisd-new. Сообщения аутлука подписываются без проблем... Что-то с форматом сообщений мозилы, только что?
>> http://www.sergeysl.ru/freebsd-dkim-postfix-amavisd-new/
> спасибо, конечно, может попробую подписывать Amavisd-new. я делал по этим статьям:
> http://www.prado.it/2012/04/26/how-to-run-postfix-with-opend.../
> http://habrahabr.ru/post/151904/
>> Ах да, RSA ключи-то настоящие или левак самоподписной?
> ключи генерировались opendkim-genkey как то так:
> opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail
> Только кажется мне, что ничего не поменяется от использования amavisd-new. Сообщения аутлука
> подписываются без проблем... Что-то с форматом сообщений мозилы, только что?DKIM - защита от фишинга, если ты будешь генерировать ключи по 5 раз в день,
тебя точно забанят в черные списки. Поэтому нужен НАСТОЯЩИЙ RSA ключ, купленный
за пару тыщь баксов. С самоподписным ключём смысл DKIM становиться призрачным.
> за пару тыщь баксов. С самоподписным ключём смысл DKIM становиться призрачным.Ты так новичка тролишь или это Глобальная Шютка такая?
"" ~ http://www.dkim.org/info/dkim-faq.html
DKIM uses DNS-based self-certified keys. Because the scope of DKIM is limited, it does not need generalized, powerful and long-term certificates, issued by separate authorities.
>> за пару тыщь баксов. С самоподписным ключём смысл DKIM становиться призрачным.
> Ты так новичка тролишь или это Глобальная Шютка такая?
> "" ~ http://www.dkim.org/info/dkim-faq.html
> DKIM uses DNS-based self-certified keys. Because the scope of DKIM is limited,
> it does not need generalized, powerful and long-term certificates, issued by
> separate authorities.Все это конечно хорошо, но может есть идеи почему аутлуковские сообщения подписываются нормально, а мозиловские нет и как это исправить не переходя на аутлук?
> Все это конечно хорошо, но может есть идеи почему аутлуковские сообщения подписываются
> нормально, а мозиловские нет и как это исправить не переходя на
> аутлук?Блин, ну напиши два одинаковых письма в текстовом формате, прими их и сравни.
>>> за пару тыщь баксов. С самоподписным ключём смысл DKIM становиться призрачным.
>> Ты так новичка тролишь или это Глобальная Шютка такая?
>> "" ~ http://www.dkim.org/info/dkim-faq.html
>> DKIM uses DNS-based self-certified keys. Because the scope of DKIM is limited,
>> it does not need generalized, powerful and long-term certificates, issued by
>> separate authorities.
> Все это конечно хорошо, но может есть идеи почему аутлуковские сообщения подписываются
> нормально, а мозиловские нет и как это исправить не переходя на
> аутлук?использую dkim-filter, там у меня Mode sv + Canonicalization relaxed/relaxed . Деталей не помню, да и в DKIM не силен, но с "Canonicalization simple" были какие-то грабли, вроде "когда подпись заголовков верна, а тела - нет".
> использую dkim-filter, там у меня Mode sv + Canonicalization relaxed/relaxed .
> Деталей не помню, да и в DKIM не силен, но с
> "Canonicalization simple" были какие-то грабли, вроде "когда подпись заголовков
> верна, а тела - нет".Спасибо, но не помогло.
Может что-то по исходному тексту писем можно сказать? Письма с одинаковым содержанием, отправлены из разных почтовых клиентов, настроенных на одну учетную запись. Настройки почтовых клиентов "по-умолчанию"
Outlook
============================================================
From - Tue Nov 06 15:19:37 2012
X-Account-Key: account1
X-UIDL: 1352207939377
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <test@my-domen.com>
Authentication-Results: mxs.mail.ru; spf=pass (mx123.mail.ru: domain of my-domen.com designates xxx.xxx.xxx.xxx as permitted sender) smtp.mailfrom=test@my-domen.com smtp.helo=mx.my-domen.com; dkim=pass header.i=@my-domen.com
Received-SPF: pass (mx123.mail.ru: domain of my-domen.com designates xxx.xxx.xxx.xxx as permitted sender) client-ip=xxx.xxx.xxx.xxx; envelope-from=test@my-domen.com; helo=mx.my-domen.com;
Received: from [xxx.xxx.xxx.xxx] (port=51389 helo=mx.my-domen.com)
by mx123.mail.ru with esmtp (envelope-from <test@my-domen.com>)
id 1TVj3S-00063T-JM
for bmp@mail.ru; Tue, 06 Nov 2012 17:18:58 +0400
X-Mru-BL: 0:0:0
X-Mru-PTR: mx.my-domen.com
X-Mru-NR: 1
X-Mru-OF: unknown (GPRS, T1, FreeS/WAN)
X-Mru-RC: UA
Received: from lts043 (unknown [192.168.55.43])
by mx.my-domen.com (Postfix) with ESMTPA id 96ADD6D425
for <bmp@mail.ru>; Tue, 6 Nov 2012 15:18:09 +0200 (EET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=my-domen.com;
s=dkim; t=1352207889;
bh=15jI+7+rgf9y4OAf+E9UEbKC8CtPYrsHBc6uWXDjQ8g=;
h=From:To:Subject:Date;
b=pUvlmTzVOwSqJdZR/5S30wLb6X9iss4BctpN4Hs2pZZLx27IdQgOvdAdc2OrO3Bn/
ejGr0q0+JarupAbRUMmQqDlB0mrj7HAxYp3GTuyA726jIPrAPmjQPQzspa9+K+gk45
NA/VNvK4ugEY2OcVrsHCXADoJqA4kNICd0Xv/Q94=
Message-ID: <B46750749C3C4454BA3345D3A0496BEC@lts043>
From: <test@my-domen.com>
To: =?koi8-r?B?7cnIwcnMIOLF0sXHz9fTy8nK?= <bmp@mail.ru>
Subject: =?koi8-r?B?0NLP18XSy8Eg09fR2sk=?=
Date: Tue, 6 Nov 2012 15:17:52 +0200
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0003_01CDBC31.E413E1A0"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
X-Spam: Not detected
X-Mras: Ok
X-Mru-Authenticated-Sender: test@my-domen.comThis is a multi-part message in MIME format.
------=_NextPart_000_0003_01CDBC31.E413E1A0
Content-Type: text/plain;
charset="koi8-r"
Content-Transfer-Encoding: quoted-printable=D0=D2=CF=D7=C5=D2=CB=C1 =D3=D7=D1=DA=C9
------=_NextPart_000_0003_01CDBC31.E413E1A0
Content-Type: text/html;
charset="koi8-r"
Content-Transfer-Encoding: quoted-printable<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dkoi8-r" http-equiv=3DContent-Type>
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.19328">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2 face=3DArial>=D0=D2=CF=D7=C5=D2=CB=C1 =
=D3=D7=D1=DA=C9</FONT></DIV></BODY></HTML>------=_NextPart_000_0003_01CDBC31.E413E1A0--
============================================================Mozilla Thunderbird
============================================================
From - Tue Nov 06 15:19:37 2012
X-Account-Key: account1
X-UIDL: 1352208011269
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
Return-path: <test@my-domen.com>
Authentication-Results: mxs.mail.ru; spf=pass (mx87.mail.ru: domain of my-domen.com designates xxx.xxx.xxx.xxx as permitted sender) smtp.mailfrom=test@my-domen.com smtp.helo=mx.my-domen.com; dkim=fail reason=bodyhash_mismatch header.i=@my-domen.com
Received-SPF: pass (mx87.mail.ru: domain of my-domen.com designates xxx.xxx.xxx.xxx as permitted sender) client-ip=xxx.xxx.xxx.xxx; envelope-from=test@my-domen.com; helo=mx.my-domen.com;
Received: from [xxx.xxx.xxx.xxx] (port=20658 helo=mx.my-domen.com)
by mx87.mail.ru with esmtp (envelope-from <test@my-domen.com>)
id 1TVj4d-00038Z-G5
for bmp@mail.ru; Tue, 06 Nov 2012 17:20:11 +0400
X-Mru-BL: 0:0:0
X-Mru-PTR: mx.my-domen.com
X-Mru-NR: 1
X-Mru-OF: unknown (unknown)
X-Mru-RC: UA
Received: from [192.168.55.43] (unknown [192.168.55.43])
by mx.my-domen.com (Postfix) with ESMTPA id 942CC6D425
for <bmp@mail.ru>; Tue, 6 Nov 2012 15:19:22 +0200 (EET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=my-domen.com;
s=dkim; t=1352207962;
bh=X13Vxx71d4O3mesPsytsVVr9YapoiF0/GcuU1ro9Tvg=;
h=Date:From:To:Subject;
b=AlljKU0LJnnKe5WGpZ6HiFksjqsC19tXhSKO3ChUeGQWpQTIcktg+2WSwotBkzC8G
2URsWTyFvHrJeY+vSqxVNwm5j2u6Xm5kbKEriKx1gkFf+2nOQbPo4PO2Ck8wTDKi3d
xQvq4buD0a3BdzaahNMtzfGv2PuEDdFeraMnZay0=
Message-ID: <50990E49.70507@my-domen.com>
Date: Tue, 06 Nov 2012 15:19:05 +0200
From: test <test@my-domen.com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20121026 Thunderbird/16.0.2
MIME-Version: 1.0
To: =?KOI8-R?Q?=ED=C9=C8=C1=C9=CC_=E2=C5=D2=C5=C7=CF=D7=D3=CB=C9=CA?=
<bmp@mail.ru>
Subject: =?KOI8-R?Q?=D0=D2=CF=D7=C5=D2=CB=C1_=D3=D7=D1=DA=C9?=
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: quoted-printable
X-DKIM-FAIL: DKIM test failed: bad signature (address=test@my-domen.com domain=my-domen.com).
X-Spam: Not detected
X-Mras: OK
X-Mru-Authenticated-Sender: test@my-domen.com=D0=D2=CF=D7=C5=D2=CB=C1 =D3=D7=D1=DA=C9
.
============================================================
так, чисто на пообщаться:
когда я заморачивался цифровой подписью писем, отправляемых с сайта, было замечено, что один из почтовых клиентов, скорее всего outlook, неадекватно относится к нескольким переносам строки между boundary, которые несколько некорректно генерировались скриптом в отправляемом письме. Аутлук "оптимизировал" письмо, удаляя из него "лишний" перенос строки, но, естественно, цифровая подпись "билась", и аутлук же показывал что письмо при доставке было модифицировано =))
В ближайшее время буду настраивать DKIM на одном хосте, проверю там, как клиенты работать будут. )
> так, чисто на пообщаться:
> когда я заморачивался цифровой подписью писем, отправляемых с сайта, было замечено, что
> один из почтовых клиентов, скорее всего outlook, неадекватно относится к нескольким
> переносам строки между boundary, которые несколько некорректно генерировались скриптом
> в отправляемом письме. Аутлук "оптимизировал" письмо, удаляя из него "лишний" перенос
> строки, но, естественно, цифровая подпись "билась", и аутлук же показывал что
> письмо при доставке было модифицировано =))
> В ближайшее время буду настраивать DKIM на одном хосте, проверю там, как
> клиенты работать будут. )Да, но это не мой случай... Подпись показывается как битая и при просмотре письма через веб-морду, да и вряд ли проверяет outlook подпись на валидность. Она проверяется на сервере.
>[оверквотинг удален]
>> один из почтовых клиентов, скорее всего outlook, неадекватно относится к нескольким
>> переносам строки между boundary, которые несколько некорректно генерировались скриптом
>> в отправляемом письме. Аутлук "оптимизировал" письмо, удаляя из него "лишний" перенос
>> строки, но, естественно, цифровая подпись "билась", и аутлук же показывал что
>> письмо при доставке было модифицировано =))
>> В ближайшее время буду настраивать DKIM на одном хосте, проверю там, как
>> клиенты работать будут. )
> Да, но это не мой случай... Подпись показывается как битая и при
> просмотре письма через веб-морду, да и вряд ли проверяет outlook подпись
> на валидность. Она проверяется на сервере.отправляйте через IMAP, сравните тело письма сохраненного в "отправленные" и того, которое прошло через SMTP-сервер/
>[оверквотинг удален]
>>> в отправляемом письме. Аутлук "оптимизировал" письмо, удаляя из него "лишний" перенос
>>> строки, но, естественно, цифровая подпись "билась", и аутлук же показывал что
>>> письмо при доставке было модифицировано =))
>>> В ближайшее время буду настраивать DKIM на одном хосте, проверю там, как
>>> клиенты работать будут. )
>> Да, но это не мой случай... Подпись показывается как битая и при
>> просмотре письма через веб-морду, да и вряд ли проверяет outlook подпись
>> на валидность. Она проверяется на сервере.
> отправляйте через IMAP, сравните тело письма сохраненного в "отправленные" и того, которое
> прошло через SMTP-сервер/кажется понятно. СПАСИБО!!!
Mozilla в исходящих сообщениях русский текст в теме кодирует:
================
Subject: test dkim =?KOI8-R?Q?=C4=CB=C9=CD?=
================а тело письма нет, т.е. оставляет русский текст как есть:
================
проверка подписи DKIM
================Outlook кодирует и тело и тему:
================
=D0=D2=CF=D7=C5=D2=CB=C1 =D0=CF=C4=D0=C9=D3=C9 =
DKIM
================А вот почему так и как заставить Мозилу делать то же самое???
>[оверквотинг удален]
> а тело письма нет, т.е. оставляет русский текст как есть:
> ================
> проверка подписи DKIM
> ================
> Outlook кодирует и тело и тему:
> ================
> =D0=D2=CF=D7=C5=D2=CB=C1 =D0=CF=C4=D0=C9=D3=C9 =
> DKIM
> ================
> А вот почему так и как заставить Мозилу делать то же самое???для начала, надо проверить, что по сети в SMTP-отправке отправляется тоже некодированно.
В постфиксе еще есть:
disable_mime_output_conversion (default: no)
Disable the conversion of 8BITMIME format to 7BIT format. Mime output conversion is needed when the destination does not advertise
8BITMIME support.This feature is available in Postfix 2.0 and later.
но скорее всего это не то, что надо.
-----по результатам проверки, да, мозилла отправляет 8бит, но в моем случае отправки между моими серверами - до конечного клиента приходит неизменное сообщение, 8 бит. При этом сообщение проходит через amavis-ы )
В вашем случае, http://www.opennet.me/openforum/vsluhforumID1/93978.html#8 - получается что действительно, где-то в процессе доставки текст перекодируется в 7бит.
smtpd_discard_ehlo_keywords=8BITMIME в постфиксе - не влияет на отправляемое мозиллой.
В общем, надо до подписания явно перекодировать в 7бит. (ну проверить сначала, что "от нас" уходит 8бит, а бьется уже "не у нас"),
>[оверквотинг удален]
> В постфиксе еще есть:
> disable_mime_output_conversion (default: no)
> Disable the conversion of 8BITMIME
> format to 7BIT format. Mime output conversion is needed when
> the destination does not advertise
> 8BITMIME support.
> This feature is available in
> Postfix 2.0 and later.
> но скорее всего это не то, что надо.
> -----СПАСИБО, PavelR! disable_mime_output_conversion=yes то, что надо. ПОБЕДА!
Читаем: http://comments.gmane.org/gmane.mail.postfix.user/218962выход: либо сделать отдельный инстанс постфикса для подписания почты, чтобы первый отправлял второму, а второй не анонсировал 8bit - тогда первый сделает перекодировку перед отправкой второму.
либо отключить анонс 8бит opendkim, если это в принципе возможно.
> второму, а второй не анонсировал 8bit - тогда первый сделает перекодировку
> перед отправкой второму. либо отключить анонс 8бит opendkim, если это в принципе возможно.Уапрос, какого х...я он конвертирует после подписания?
Ну или на оборот - подписывает до конвертации?
:)
>> второму, а второй не анонсировал 8bit - тогда первый сделает перекодировку
>> перед отправкой второму. либо отключить анонс 8бит opendkim, если это в принципе возможно.
> Уапрос, какого х...я он конвертирует после подписания?
> Ну или на оборот - подписывает до конвертации?
> :)а вот хз. причем конвертируется только русский текст. но заморочился я с этим надолго и, что странно, нигде похожей проблемы не нашел.
>>> второму, а второй не анонсировал 8bit - тогда первый сделает перекодировку
>>> перед отправкой второму. либо отключить анонс 8бит opendkim, если это в принципе возможно.
>> Уапрос, какого х...я он конвертирует после подписания?
>> Ну или на оборот - подписывает до конвертации?
>> :)
> а вот хз. причем конвертируется только русский текст. но заморочился я с
> этим надолго и, что странно, нигде похожей проблемы не нашел.Не, ну на здоровье, только увидел DKIM-Signature: и поле h=Date:From:To:Subject;,
что значит - на основании полей Date, From, To и Subject сформирована эта сигнатура,
и не фига их трогать, другие - на здоровье.А ведь DKIM может подписывать на основании BODY и SIZE_OF_BODY,
сдаётся мне, что при их использовании вообще ни один сервис не пропустит,
ибо почти все сервера дописывают какую-нибудь свою хрень.
> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=my-domen.com;http://www.ietf.org/rfc/rfc4871.txt
Verifiers MAY ignore the DKIM-Signature header field if the domain
used by the signer in the "d=" tag is not associated with a valid
signing entity. For example, signatures with "d=" values such as
"com" and "co.uk" may be ignored. The list of unacceptable domains
SHOULD be configurable.
>> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=my-domen.com;
> http://www.ietf.org/rfc/rfc4871.txt
> Verifiers MAY ignore the DKIM-Signature header field if the domain
> used by the signer in the "d=" tag is
> not associated with a valid
> signing entity. For example, signatures with "d=" values
> such as
> "com" and "co.uk" may be ignored. The list
> of unacceptable domains
> SHOULD be configurable.Я так и не понял, зачем нужны i= tag и режим, прописываемый в DNS значением t=s?
Можешь пояснить?