Как определить, какая запись DKIM является правильной?

Здравствуйте! 

Я переехал на новый DNS-домен и неожиданно обнаружил у себя две публичные записи DKIM. Как мне определить, какая из них соответствует приватному ключу? Я отправил себе электронное письмо, и в заголовке есть поле DKIM-Signature, но не могу понять, какой из двух публичных ключей может подтвердить эту подпись. 

Какие шаги можно предпринять, чтобы проверить письмо с помощью обеих подписей по очереди? 

Подписи и заголовок выглядят следующим образом: 

<blockquote>
"k=rsa;p=MIGfMA0G.....AQAB"<br/>
"k=rsa; p=MIGfMA0G...AP85"<br/>
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=site.com;<br/>
s=dkim; h=Date:Message-Id:From:To:Subject:Mime-Version:Content-Type:Sender:<br/>
Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description:<br/>
Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:<br/>
In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:<br/>
List-Post:List-Owner:List-Archive;<br/>
bh=mNuvj ... QbMo=; b=fzcEmR .... S3A0=;<br/>
</blockquote>
  • 6 ноября 2024 г. 7:33
Ответы на вопрос 2
Чтобы определить, какая из публичных записей DKIM соответствует приватному ключу, используемому для подписи, следуйте этим шагам:

1. **Понимание DKIM подписями:** В заголовке DKIM-Signature находится несколько параметров, ключевым из которых является `d` (домен) и `s` (селектора). Эти параметры помогут вам определить записи DKIM в DNS.

2. **Запрос DKIM-записей из DNS:**
   - Используйте команду dig (или любой другой DNS-запрос) для получения соответствующей DKIM записи. Например, если ваш селектор равен "dkim" и домен "site.com", команда будет выглядеть как:
     ```
     dig TXT dkim._domainkey.site.com
     ```
   - Это покажет вам соответствующую запись DKIM для данного селектора.

3. **Сравните публичные ключи:** После выполнения запроса в DNS у вас должна быть одна запись для селектора "dkim". Сравните её с публичными ключами, которые вы уже имеете. Параметр `p` в записи содержит публичный ключ.

4. **Проверка DKIM подписи:** Вы можете использовать онлайн инструменты или локальные библиотеки, чтобы проверить DKIM-подпись. Для этого вам нужно:
   - Скопировать подпись DKIM из заголовка `DKIM-Signature` и адаптировать её для используемого инструмента.
   - Убедиться, что вы передали нужный публичный ключ из записи, соответствующей селектору "dkim".
   - Для проверки подписи можно использовать такие инструменты, как `dkimpy` или онлайн сервисы для проверки DKIM-подписей.

5. **Анализ результата:** Если проверка прошла успешно с одной из записей, это означает, что именно эта запись соответствует приватному ключу, который используется для подписания. Если проверка не прошла, значит, нужно попробовать вторую запись.

Таким образом, проверяя каждую запись по очереди, вы сможете определить, какая из них соответствует приватному ключу.
Селекторы разные (поле s= в DKIM-Signature, и левый поддомен в dkim._domainkey.site.com)? 
Несколько TXT записей по одному селектору не допускается .
Если наворотили в одной записи, можете попробовать по очереди убрать их из DNS и протестировать каким-нибудь валидатором (гугл "dkim validator").
Похожие вопросы