Важное предупреждение: Google и Yahoo будут требовать DMARC с апреля 2024 года.
PowerDMARC

Подпись DKIM: Краткая информация о том, что это такое, зачем она нужна и как она работает?

подпись DKIM

подпись DKIM

Время чтения: 6 мин

Идентифицированная почта с ключами домена (DKIM) это метод аутентификации электронной почты, позволяющий организации взять на себя ответственность за отправленное сообщение. Он использует криптографию с открытым ключом для цифровой "подписи" электронных писем, доказывая получателям, что сообщение было отправлено владельцем домена. Получатели могут сверить подпись с опубликованным открытым ключом своего домена для проверки подписи.

В этой статье мы подробно рассмотрим DKIM и дадим вам общее представление о том, как работает этот метод проверки подлинности электронной почты.

Что такое DKIM Signature?

DKIM расшифровывается как DomainKeys Identified Mail. Это система аутентификации электронной почты, которая обеспечивает целостность и неотказуемость с помощью криптографических подписей. Наряду с DMARC может помочь создать надежную инфраструктуру защиты от подделок для вашей электронной почты.

Протокол DKIM создает криптографическую подпись для каждого сообщения, отправляемого получателям, а также подпись домена, которая добавляется в заголовок сообщения.

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

Если они не совпадают, то либо:

  1. Сообщение было изменено во время передачи, или
  2. Сообщение отправляется от имени другого человека, имеющего доступ к закрытому ключу сервера-отправителя

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

Как работает DKIM-подпись?

Подписи DKIM работают путем вставки цифровой подписи в заголовок электронного письма. Эта подпись может быть проверена принимающим сервером и использована для определения того, не было ли письмо подделано во время пересылки.

DKIM использует криптографию с открытым ключом, которая опирается на пару ключей: один закрытый и один открытый. Открытый ключ распространяется среди всех желающих, в то время как закрытый ключ хранится в секрете (обычно владельцем).

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

Ключи подписи DKIM

Подписи DKIM генерируются с использованием двух криптографических ключей - открытого и закрытого. Открытый ключ публикуется в DNS, а закрытый ключ хранится в секрете.

Когда электронное письмо подписывается, закрытый ключ используется для создания хэша сообщения. Затем этот хэш шифруется открытым ключом и отправляется вместе с самим сообщением.

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

Части подписи DKIM

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

  1. Чтобы вычислить DKIM-подпись, вы сначала берете MD5-хэш вашего доменного имени (например, "example.com"), который является вашим открытым ключом.
  2. Затем вы объединяете свое доменное имя с хэшем SHA1 (например, "sha1(example.com)") и добавляете его к исходному сообщению, которое было отправлено.
  3. Затем вы берете другой MD5-хэш этой комбинированной строки (например, "md5(sha1(example.com))") и прикрепляете его в качестве заголовка в начале вашего сообщения перед отправкой его на доставку.

Шаги, связанные с подписанием DKIM

Начало работы с DKIM:

  1. Первым шагом является создание закрытого ключа, который используется для подписи сообщения.
  2. Второй шаг - создание открытого ключа, который используется при проверке подписи.
  3. Третий шаг заключается в создании двух записей DNS TXT: одна для открытого ключа, а другая для имени селектора.
  4. Четвертый шаг - публикация этих записей в файле зоны DNS.

Этапы подписания DKIM:

1. Отправитель генерирует сообщение с уникальным идентификатором, называемым криптографической хэш-функцией (обычно SHA-256). Этот уникальный идентификатор называется полем заголовка DKIM-Signature и содержит информацию о том, кто и когда подписал сообщение.

2. Отправитель добавляет в сообщение дополнительные поля заголовка, содержащие информацию о:

3. Наконец, получатели, которые хотят проверить эти подписи, будут использовать свою копию открытого ключа отправителя из своих записей DNS или промежуточного сервиса, такого как SenderID или Mailgun, а затем использовать его для проверки всех сообщений с прикрепленными заголовками DKIM.

Понимание тегов, используемых в подписи DKIM

Вот пример того, как может выглядеть запись подписи DKIM:

DKIM-Signature: v=1;

a=rsa-sha256;

s=jun2005.eng;

c= расслабленный/расслабленный;

d=example.com;

s=dkim;

t=1526555738;

bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=;

h=To:From:Subject:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding;

b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A

v= Этот тег сообщает нам версию DKIM.

a= Здесь указывается алгоритм, используемый подписывающим лицом для генерации своего открытого ключа. Это может быть один из RSA1_5, RSA-SHA1 или RSASSA-PSS. Если этот тег отсутствует, то предполагается RSA-SHA1.

c= Указывает алгоритм каноникализации, используемый для генерации хэшей полей заголовка в соответствии с требованиями [BCP14]. Далее следует список из 1 или более алгоритмов каноникализации, разделенных запятыми (например, "c=relaxed"). Если этот тег опущен, то предполагается расслабленная каноникализация.

d= Указывает, какое доменное имя должно использоваться при генерации подписей для сообщений, отправляемых этим сервером (или другим получателем).

s= Тег "s" - это строка селектора, которая используется принимающим сервером для определения того, какой открытый ключ должен быть использован для проверки подписи.

t= Метка timestamp используется для записи времени создания подписи и обычно представляется в виде временной метки Unix (количество секунд с 1 января 1970 года).

bh= Этот тег представляет хэш тела, который является зашифрованной версией содержимого вашего сообщения (включая заголовки). Это помогает предотвратить фальсификацию сообщений после того, как они были подписаны DKIM и до того, как они попали к адресатам.

h= Хеш-значение заголовка содержит все заголовки полностью (включая те, которые подписаны Sender Policy Framework или DomainKeys Identified Mail), за исключением тех, которые были явно исключены путем включения их в список исключений. Это значение должно быть вычислено с помощью SHA-1 или MD5.

b= Тег "b" - это base64-кодированное представление криптографической хэш-функции на канонизированном теле сообщения (т.е. после удаления MIME-кодировки).

Генерация подписи DKIM

  1. Сгенерируйте открытый и закрытый ключ.
  2. Сгенерируйте заголовок и нижний колонтитул DKIM.
  3. Подпишите содержимое электронной почты своим закрытым ключом с помощью выбранного алгоритма, например, RSA-SHA256 или RSA-SHA512.
  4. Сжать сообщение с помощью выбранного алгоритма, например, deflate или none.
  5. Вставьте заголовки DKIM в начало сообщения перед любыми заголовками MIME.
  6. Вставьте колонтитул DKIM после всех колонтитулов MIME.

Обеспечение достоверности подписи DKIM

Можно предпринять некоторые шаги, чтобы убедиться, что подпись DKIM действительна:

  1. Определите, хотите ли вы использовать традиционный алгоритм подписания DKIM или оптимизированный.
  2. Вычислите хэш-значение для заголовка и тела вашего сообщения (обычно это SHA-256).
  3. Выберите подходящий алгоритм подписи (например, RSA или ECDSA).
  4. Убедитесь, что ваш открытый ключ соответствует селектору, который вы указали ранее в шаге 1 (это делается с помощью DNS).
  5. Подпишите свое сообщение с помощью закрытого ключа и сохраните его как строку ASCII в формате Base64 в заголовке сообщения электронной почты (в дополнение к размещению в DNS).

Проверка подписи DKIM

Проверка подписи DKIM сложна. Она требует большого опыта для настройки и обслуживания, и часто используется в сочетании с другими системами, такими как SPF, которые также сложны.

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

Это важно по нескольким причинам: во-первых, это гарантирует, что ваши письма не будут помечены как спам провайдерами или клиентами провайдеров; во-вторых, это позволит вам избежать внесения вашего домена в черный список других доменов (это называется отравлением домена); наконец, это поможет гарантировать, что ваши письма не попадут под какую-либо атаку типа "человек посередине".

Заключение

DKIM - это перспективное решение, позволяющее организации проверять легитимность электронных писем, особенно от сторонних отправителей. При последовательном применении в среде обмена сообщениями он дает получателям высокую степень уверенности в том, что письмо было отправлено уполномоченным представителем домена отправителя. Однако важно отметить, что хотя DKIM обеспечивает механизм проверки, его недостаточно для защиты от атак мошенничества с электронной почтой, таких как спуфинг и фишинг. Для этого необходимо политика DMARC как отказ, является обязательной.

Нужна помощь?

Проверка подлинности электронной почты - необходимая часть стратегии цифрового маркетинга любого предприятия. С таким количеством электронных писем, отправляемых и получаемых каждый день, ваш бренд легко может затеряться в общей суматохе. Но с услугами аутентификации электронной почты от PowerDMARC вы можете быть уверены, что ваши письма увидят нужные люди. 

Наше решение для аутентификации электронной почты поможет вам:

Выход из мобильной версии