Рейтинг:2

Как диагностировать подписи opendkim RSA

флаг cv

У меня проблема, когда мои подписи DKIM не работают везде. Был вопрос по этому поводу здесь, но оригинальный плакат ответил на его собственный вопрос, и ответ кажется несвязанным.После некоторых копаний я подумал, что это может быть проблема канонизации с OpenDKIM и что Исправить CRLF Настройка конфигурации может исправить это, но, похоже, этого не произошло. Теперь я думаю, что могут быть проблемы с моей реализацией openssl (см. почему ниже). Как мне перейти отсюда, чтобы продолжить диагностику и исправить это?

Мои диагностические шаги на сегодняшний день

Первоначально это всплыло, когда я заметил, что электронные письма с моих собственных доменов на мою учетную запись gmail имели сбои DKIM в заголовке. Погуглив, как это проверить, я обнаружил, что README OpenDKIM включает раздел по тестированию. Это кажется немного устаревшим, так как пара ресурсов на самом деле не работает ([email protected], похоже, не существует, а [email protected] отбрасывает сообщение как спам, что... на самом деле не идеально подходит для службы тестирования :)); тем не менее, верификаторы Port25 поначалу казались действительно полезными, потому что они не просто сообщают вам, что вы терпите неудачу, они включают канонизированные заголовки. Итак, мой первый тест вернулся с этим:

Канонизированные заголовки:
   from:My'20'Name'20'<[email protected]>'0D''0A'
   Тема:Port25'20'check-auth'20'1'0D''0A'
   Дата:Пт,'20'1'20'Окт'20'2021'20'07:10:19'20'+0200'0D''0A'
   to:[email protected]'0D''0A'
   dkim-signature:v=1;'20'a=rsa-sha256;'20'c=расслабленный/расслабленный;'20'd=mydomain.com;'20's=по умолчанию;'20't=1633065019;'20' bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=;'20'h=От:Тема:Дата:Кому:От;'20'b=

я включил Сохранить временные файлы в opendkim.conf, а сохраненные конанизированные заголовки на стороне моего сервера выглядят так:

от: Мое имя <[email protected]>
Тема:Порт25 проверка авторизации 1
дата:Пт, 1 окт 2021 07:10:19 +0200
to:[email protected]
dkim-подпись:v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633065019; bh=2ZDQvBeN3kIWoOxg0Ccz1E/Pi+j4hDPFKwXDhxotTAA=; h=От:Тема:Дата:Кому:От; б=

На мой взгляд, они выглядели одинаково, но я начал задаваться вопросом о «0D» «0A» на стороне Port25. Я отправляю исходное сообщение с Mac и на самом деле не знал, что MacOS использует для EOL. Еще немного гугления, и я наткнулся на это вопросы и ответы по стеку. Это побудило меня сначала попытаться отправить электронное письмо в виде простого текста, но возникла та же проблема с ошибкой. Выбирая другой вариант, я включил Исправить CRLF в OpenDKIM. Действительно, открывая локальный временный файл с помощью vim в двоичном режиме, кажется, что настройка работает:

от:Мое имя <[email protected]>^M
тема:Тест с фиксированным CRLF(?)^M
Дата:Пт, 1 Окт 2021 07:40:52 +0200^M
to:[email protected]^M
dkim-подпись:v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633066853; bh=tt5a2hZTsPGjeXhj9bcF3Kt9N5uk4aYb/j8ciXTYUZA=; h=От:Тема:Дата:Кому:От; б=

К сожалению, до сих пор нет любви от верификатора Port25.

В качестве последней попытки я решил попробовать это на своем собственном сервере — отправить электронное письмо между двумя разными доменами, которые оба размещены локально. Это стало хоть немного интересно.

Журнал почты говорит:

...
1 октября, 05:50:27 ip-10-0-200-157 opendkim[22246]: 654F98004C: добавлено поле DKIM-Signature (s=default, d=mydomain.com)
...
1 октября, 05:50:27 ip-10-0-200-157 amavis[21845]: (21845-06) Проверка: hRgGGArUlLf0 [88.101.121.213] <[email protected]> -> <[email protected]>
...
1 октября, 05:50:29 ip-10-0-200-157 amavis[21845]: (21845-06) hRgGGArUlLf0 FWD от <[email protected]> -> <[email protected]>, BODY=7BIT 250 2.0.0 от MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 OK: в очереди как 5248A80051
1 октября, 05:50:29 ip-10-0-200-157 amavis[21845]: (21845-06) Пройдено CLEAN {RelayedInbound}, [88.101.121.213]:63859 [88.101.121.213] <[email protected] > -> <[email protected]>, идентификатор очереди: 654F98004C, идентификатор сообщения: <[email protected]>, mail_id: hRgGGArUlLf0, число обращений: -0,799, размер: 3683, queued_as: 5248A80051, 1878 мс

ОДНАКО, в реальных заголовках полученной почты я вижу

...
Статус X-Spam: Нет, оценка = -0,799 тестов = [ALL_TRUSTED = -1, DKIM_INVALID = 0,1, DKIM_SIGNED = 0,1, HTML_MESSAGE = 0,001] autolearn = нет autolearn_force = нет
Dkim-подпись: v=1; а=rsa-sha256; c=расслабленный/расслабленный; д=мойдомен.com; с=по умолчанию; т=1633067427; bh=+FsxBlX8LDcIVqvq7tKOtml1vsfEjh0rYTRVokBgmQ4=; h=От:Тема:Дата:Кому:От; b=yDkI63wnvN8deIU4AtruGu4r/ybCTBLzmdwkTEhSYNCU56oGp0lP8n4FnXW7H67TL DFtlw/U9/MZPhR0Jeorl3gBdLebBV02v60wpLlFKXF5N4NL/cZbp8/U0liGZGVPoWj PP+OV/uOwNMDUhLG2I8jN88Zi9sHduo8xr7DOmy4=
...
Dkim-Filter: OpenDKIM Filter v2.11.0 ip-10-0-200-157.eu-central-1.compute.internal 654F98004C
...
Результаты аутентификации: mx.mymaildomain.com (amavisd-new); dkim=fail (1024-битный ключ) Reason="fail (ошибка OpenSSL: данные слишком велики для модуля)" header.d=mydomain.com

Эта последняя строка — моя единственная оставшаяся подсказка. Я ... не могу себе представить, что какие-либо данные на самом деле слишком велики, но, может быть, у меня проблемы с OpenSSL? В частности, даже если он применяет подпись, подпись какая-то неправильная? Я действительно совершенно в недоумении, куда идти отсюда.

Любые предложения о том, что не так или что делать дальше, очень ценятся.

Это с OpendKIM, AmavisD, Postfix:

# opendkim -V
opendkim: Фильтр OpenDKIM v2.11.0
    Скомпилировано с помощью OpenSSL 1.0.1e-fips 11 февраля 2013 г.
    СМФИ_ВЕРСИЯ 0x1000001
    либмильтер версии 1.0.1
    Поддерживаемые алгоритмы подписи:
        rsa-sha1
        rsa-sha256
    Поддерживаемые алгоритмы канонизации:
        расслабленный
        просто
    Варианты активного кода:
        QUERY_CACHE
        USE_DB
        USE_LDAP
        USE_ODBX
    libopendkim 2.11.0: query_cache

# амависд -V
amavisd-новый-2.12.0 (20190725)

# postconf mail_version
почтовая_версия = 2.10.1
dave_thompson_085 avatar
флаг jp
«слишком большой» при проверке (или расшифровке) RSA может быть вызван, если вы не используете половинки одной и той же пары ключей; разные ключи RSA имеют разные значения модуля (n), и подпись или криптограмма, действительная для одного n, может быть недействительной для другого n. Убедитесь, что открытый ключ, который вы отправляете (и извлекаете) для проверки, совпадает с закрытым ключом, используемым для подписи.
флаг us
Я заметил, что у вас версии OpenSSL и Postfix старые, 2013 года. Может быть, попробовать сначала обновить систему и компоненты, если это вообще возможно?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.