Чтобы определить, какая из публичных записей 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. **Анализ результата:** Если проверка прошла успешно с одной из записей, это означает, что именно эта запись соответствует приватному ключу, который используется для подписания. Если проверка не прошла, значит, нужно попробовать вторую запись.
Таким образом, проверяя каждую запись по очереди, вы сможете определить, какая из них соответствует приватному ключу.