Ключ подписи, пришедший вместе с письмом

X-DKIM-Key header
Приватный ключ в заголовке письма

Крайняя форма передачи решения подающей стороне: приватный ключ приходит в самом письме, заголовком X-DKIM-Key. Узел подписывает им и удаляет заголовок перед отправкой — из соображений безопасности, как говорит руководство.

Работает только в связке. Нужны две строки у источника: обработка ключа и обработка настроек подписи. Плюс сам селектор: его передают отдельным заголовком, и без него письмо подписать нельзя.

Ключ занимает несколько строк, поэтому заголовок в письме сворачивают — как любой длинный заголовок.

Главная ловушка — приватный ключ путешествует в письме. Он проходит через всё, что стоит между подающим приложением и узлом: очереди, журналы, промежуточные хранилища. Удаление заголовка перед отправкой защищает получателя, а не путь до узла. Механизм оправдан только там, где этот путь целиком ваш.
Что делает Хаб. Не задействует и не планирует: ключи он держит у себя и раскладывает по узлам сам. Передавать приватный ключ письмом — противоположность тому, как устроено хранение ключей в Хабе.
Пример в конфигурации
# обработка обоих заголовков включается у источника
<source 10.0.0.0/8>
    process-x-dkim-key true    process-x-dkim-options true</source>
В самом письме нужны оба заголовка: один с ключом, второй с селектором. Без селектора подписать письмо нечем — это требование руководства.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Включают обработку на широком источнике

наш опыт

Чем чреватоЛюбой, кто может подать письмо, получает право подписать его произвольным ключом. Узел при этом выступает подписывающей стороной, и отвечать за подпись будет ваш домен в журналах приёмников.
Как заметитьОбработка включена в блоке источника со всей сетью.
Как правильноВключать только для источников, которым вы доверяете как себе.

Передают ключ без селектора

§ 10.3.5

Чем чреватоПодписать письмо нечем: селектор передаётся отдельным заголовком, и без него узел подпись не ставит. Ключ при этом уже прошёл весь путь до узла впустую.
Как заметитьПисьма с ключом в заголовке уходят без подписи.
Как правильноПередавать оба заголовка и включить обработку каждого.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Включена ли обработка, видно в конфигурации источника; сработала ли — по наличию подписи при отсутствии объявленных ключей:
grep -n 'process-x-dkim' /etc/pmta/config
grep -i 'DKIM-Signature' /var/log/pmta/pmta.log | tail -3
Заголовок с ключом до получателя не доходит: узел удаляет его перед отправкой. Хаб этот механизм не задействует.
В Хабе
Цена ошибки
опасно: последствия переживут откат
Сценарии
Подпись и аутентификация писем · Безопасность узла