Назад | Перейти на главную страницу

DKIM: Могу ли я просто изменить ключ RSA, используемый в DKIM, не меняя селектора DKIM?

Могу ли я просто изменить ключ RSA, используемый в DKIM (DNS TXT Record), не меняя селектор DKIM, или это приведет к каким-либо проблемам?

Если нет, то для чего нужен селектор DKIM?
Кстати: 20120113 это селектор, о котором я говорю 20120113._domainkey.gmail.com

Как вы можете прочитать Вот ".... К имени домена добавлен селектор, используемый для поиска информации об открытом ключе DKIM ...".

Также в Википедия условия: "... Принимающий SMTP-сервер использует доменное имя и селектор для выполнения поиска в DNS [...] селектор - это простой метод, позволяющий подписывающим сторонам добавлять и удалять ключи, когда они пожелают ..."

Другими словами, если вы отправляете электронное письмо, подписанное DKIM, вы должны сообщить внешним почтовым серверам КАК они могут получить ваш ключ RSA для проверки действительности вашей электронной почты. RSA-ключ опубликован в вашем DNS, хорошо, но ГДЕ? Какой DNS-запрос его получит? Как они узнают, какой DNS-запрос / запись разрешает? Здесь селектор играет свою роль: если вы отправляете почту с example.com домен и в своей почте вы указываете whatever в качестве селектора тогда:

  • в заголовке исходящей почты вам необходимо указать свой домен и связанный с ним селектор, например:

DKIM-подпись [...] d = example.com; [...] s = что угодно

  • в вашем DNS вы должны предоставить TXT запись для whatever._domainkey.example.com публикация вашего ключа RSA, например:

any._domainkey.example.com IN TXT "k = rsa \; t = s \; p = MIGfMA [...] AQAB"

Как видите, DNS-запрос имеет вид <selector> ._domainkey. <your_domain>

Исходя из этого, можно сказать, что:

  1. RSA-ключ можно заменить / обновить без какого-либо воздействия на селектор. Очевидно, очень важно, чтобы при обновлении одной стороны ключа (общедоступной, опубликованной в DNS) вы меняли и другую сторону (ту, которая использовалась для «подписи» исходящей почты);

  2. если вы оставите селектор без изменений при обновлении ключа RSA, побочным эффектом будет .... удаленные клиенты (не серверы; я говорю о MUA), которые по каким-либо причинам хотят проверить DKIM-подпись, включенную в их старые / заархивированные электронные письма, потерпят неудачу в процессе проверки (поскольку заархивированное электронное письмо было подписано закрытым ключом, открытый ключ которого, опубликованный на DNS, обновился и теперь другой!).

Хочу добавить, что по моему опыту я привык думать, что DKIM-подпись / проверка - это процесс, нацеленный на транспорт электронной почты, а не на клиентскую сторону проверки. Так что я готов поспорить, что обновлять KEYs, не трогая селектор, вполне безопасно.

Я также думаю, что .... если вы собираетесь обновить КЛЮЧИ, вы должны изменить как свой код подписи (который должен указывать на новый закрытый ключ), так и DNS (чтобы опубликовать новый общедоступный ключ). -ключ в записи TXT). Так почему бы не изменить также селектор (опять же, с обеих сторон?). Вы в конечном итоге получите ДВА селекторы, опубликованные в DNS: один указывает на старый ключ, а другой - на новый. Таким образом, во время SMTP-транспорта все будет в порядке, а также MUA смогут проверять старые / заархивированные электронные письма, поскольку старый ключ, связанный со старым селектором, все еще доступен.

Могу ли я просто изменить ключ RSA, используемый в DKIM (DNS TXT Record), не меняя селектор DKIM, или это приведет к каким-либо проблемам?

Да ты жестяная банка, но без уважительной причины Я бы настоятельно не советовал этого делать.

Вот некоторые причины, по которым повторное использование селектора не является хорошей идеей:

  • Для распространения изменений DNS может потребоваться некоторое время. Если селектор повторно используется после смены ключа, это может привести к сбою проверки для сообщений электронной почты, отправленных вскоре после смены ключа.
  • Вы не знаете, сколько времени пройдет между отправкой и проверкой. Это может привести к тому, что старые сообщения не пройдут проверку после смены ключа. Возможная причина задержки:
  • Из RFC: «Повторное использование селектора с новым ключом (например, изменение ключа, связанного с именем пользователя) делает невозможным отличить сообщение, которое не было проверено, потому что ключ больше не действителен, и сообщение это фактически подделано. По этой причине подписывающим лицам не рекомендуется повторно использовать селекторы для новых ключей. Лучшая стратегия - назначать новые ключи новым селекторам ».

Для чего нужен селектор DKIM?

«Для поддержки нескольких одновременных открытых ключей для каждого домена подписи». Вот несколько вариантов использования параллельных ключей:

  • «Помимо удобства администрирования, селекторы позволяют легко заменять открытые ключи на регулярной основе».
  • Разрешите различным организациям подписывать ваши электронные письма (с другим ключом и селектором) без необходимости совместного использования закрытого ключа. Это полезно для:
    • делегирование подписи внешней организации
    • административно распределенные организации
  • Сделайте возможным явный отзыв ключа (оставив данные открытого ключа (тег "p =") пустыми).

Все цитаты взяты из RFC 6376.

Вы жестяная банка сделай это. Однако это не обязательно BCP.

Причина наличия нескольких селекторов заключается в том, чтобы ключ мог оставаться действительным в течение определенного периода времени после вращения.

Например, если вы измените ключ RSA, используемый в селекторе 20120113, то любое сообщение, которое все еще было где-то в очереди и было доставлено позже, не сможет выполнить DKIM, потому что ключ изменился.

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

(Я предполагаю, что вы действительно не имеете в виду ключ 20120113._domainkey.gmail.com буквально? Если вы действительно говорите о ключе Gmail, остановитесь и поговорите с John RG внутри себя, прежде чем что-либо менять.)