Что такое DomainKeys Identified Mail (DKIM)?
DomainKeys Identified Mail (DKIM) - это протокол для аутентификации сообщений электронной почты с использованием криптографии с открытым ключом для защиты от поддельных электронных писем. Использование DKIM-подписей в заголовках сообщений помогает повысить скорость доставки электронной почты и ее безопасность, отличая законную электронную почту от мошеннической, такой как компрометация деловой электронной почты и фишинг.
Организации, отправляющие электронные письма, могут использовать стандарт аутентификации, определенный DKIM, для добавления цифровой подписи к заголовку каждого отправляемого ими электронного письма, а организации, получающие электронные письма, могут проверять подлинность этих электронных писем. DKIM - это особенно эффективный метод аутентификации по электронной почте, поскольку он позволяет обнаруживать поддельные электронные письма, используя надежную криптографическую аутентификацию для каждого отдельного сообщения.
Протокол DKIM указан в документе Internet Engineering Task Force RFC 6376, DomainKeys Identified Mail (DKIM) Signatures. DKIM предоставляет организации, владеющей доменом для подписи, возможность брать на себя ответственность за сообщения, связывая их с доменом. Протокол позволяет отправляющему домену подписывать исходящие сообщения с помощью DKIM.
Подписи DKIM отличаются от протоколов подписи сообщений, таких как Pretty Good Privacy, защищенные/многофункциональные почтовые расширения для Интернета или S/MIME, которые позволяют конечным пользователям проверять подлинность сообщений. Эти цифровые подписи включены в текст сообщения. Хотя они проверяют подлинность текста сообщения, они ничего не говорят о системе, отправляющей сообщение.
В отличие от этого, подписи DKIM включаются в заголовки сообщений электронной почты, прошедших проверку подлинности, а не генерируются конечными пользователями. Вместо этого подписи DKIM генерируются отправляющим почтовым сервером и аутентифицируются принимающим почтовым сервером.
Наряду с протоколами Sender Policy Framework (SPF) и Domain-based Message Authentication, Reporting and Conformance (DMARC), DKIM помогает поставщикам услуг электронной почты и предприятиям проверять электронную почту и предотвращать перехват их домена электронной почты и его использование для фишинговых атак, подмены электронной почты и других вредоносных атак на основе электронной почты.
Протоколы проверки подлинности электронной почты SPF, DMARC и DKIM работают совместно следующим образом:
- Протокол SPF позволяет организации, отправляющей электронную почту, идентифицировать почтовые серверы, авторизованные для отправки электронной почты от имени домена организации. SPF записывает информацию об авторизованных почтовых серверах в записи системы доменных имен отправителя (DNS), которые доступны для любой системы, подключенной к Интернету. SPF особенно важен для поставщиков услуг электронной почты, в частности, для почтовых служб Google Gmail, Yahoo и других, которые отправляют и получают электронную почту для множества различных организаций.
- Протокол DKIM позволяет организации, отправляющей электронную почту, подписывать цифровой подписью каждое отдельное сообщение, отправляемое авторизованным почтовым сервером. DKIM использует SPF для определения того, было ли сообщение отправлено авторизованным почтовым сервером, и использует DMARC для определения соответствующей политики, когда сообщение электронной почты не проходит проверку подлинности.
- Протокол DMARC позволяет организации, отправляющей электронную почту, указывать процедуры, которые должны выполнять получатели при получении электронной почты, не прошедшей проверку подлинности. Когда почтовый сервер, не указанный в записи SPF, пытается отправить сообщение, или когда аутентификация DKIM завершается неудачно, политики DMARC предоставляют получателю рекомендации относительно того, следует ли доставить сообщение, поместить его в карантин, т.е. отправить в папку для нежелательной почты, или полностью отклонить.
DKIM, SPF и DMARC публикуют всю информацию, используемую для аутентификации электронной почты, в текстовых записях DNS. DKIM публикует открытый ключ, используемый для аутентификации отдельных электронных писем с помощью DKIM. SPF публикует информацию о почтовых серверах, авторизованных для отправки электронной почты для домена, а DMARC публикует свои политики в отношении электронной почты, не прошедшей проверку подлинности.
Что такое ключ DKIM?
DKIM позволяет отправителям электронной почты публиковать открытый ключ из пары открытых ключей владельца домена.
Отправители электронной почты, использующие DKIM, публикуют свой открытый ключ в текстовой записи DNS, связанной с доменом, с которого отправляется электронное письмо. Почтовый сервер-получатель использует этот открытый ключ для проверки подлинности цифровых подписей, добавленных в заголовки электронных писем из домена-отправителя.
Что такое запись DKIM?
DKIM, как и SPF и DMARC, использует записи DNS TXT для хранения данных, используемых для аутентификации электронной почты. Записи DKIM содержат версию протокола - 1, для DKIM версии 1 - и открытый ключ, который будет использоваться для аутентификации электронной почты, отправляемой владельцем домена.
В отличие от записей SPF и DMARC, записи DNS TXT DKIM также содержат селектор, который является значением, связывающим поставщика услуг электронной почты с доменом, из-за которого отправляется электронное письмо. Таким образом, организация, отправляющая электронную почту, может использовать несколько почтовых служб, каждая из которых имеет свой собственный открытый ключ.
Имена записей DKIM имеют следующую форму:
[selector]._domainkey.[domain]
К отправляющему домену добавляются следующие данные:
- _domainkey. Эта строка в имени текстовой записи DNS указывает, что это запись DKIM.
- [selector]. Селектор DKIM связывает запись DKIM с определенным открытым ключом, используемым почтовым сервером или поставщиком услуг электронной почты, который предоставляет услуги электронной почты для части базового домена.
Пример имени записи DKIM для домена example.net а почта, отправленная через службу электронной почты Gmail с использованием селектора gmail, может выглядеть следующим образом:
gmail._domainkey.example.net
Длина ключа затрудняет запись открытых ключей в DNS. Хотя современные рекомендации требуют, чтобы минимальная длина ключа превышала 256 бит, записи DNS не могут обрабатывать строки длиной более 255 бит. Решение состоит в том, чтобы разделить открытые ключи длиной более 255 бит на несколько строк длиной менее 255 бит каждая.
Что такое подпись DKIM?
Сообщения с подписью DKIM идентифицируются по наличию поля заголовка DKIM-Signature:, которое соответствует стандарту, определенному в RFC 5322, Формат интернет-сообщений. Любой почтовый сервер, поддерживающий DKIM, обрабатывает подпись DKIM надлежащим образом на основе данных, включенных в поле заголовка подписи DKIM.
Подписи DKIM включают в себя саму цифровую подпись, а также другую информацию, связанную с подписью.
Канонизация заголовка и тела
Одна из проблем, связанных с использованием цифровых подписей в электронной почте, заключается в том, что некоторые почтовые серверы изменяют передаваемую электронную почту. Примеры таких изменений включают следующее:
- изменения в способе переноса полей заголовка электронной почты, например, добавление возврата каретки для разбивки более длинных заголовков;
- изменения в том, как серверы обрабатывают пробельные символы, то есть пробелы, символы табуляции и возврата каретки.
Концепция канонизации, или указания того, какие части сообщения следует считать каноническими или официально входящими в состав подписанного сообщения, в DKIM позволяет владельцу домена указать, насколько строго должна интерпретироваться цифровая подпись, основываясь на полученном электронном письме. Канонизация может быть применена отдельно к заголовкам сообщений и к тексту сообщения. Возможны следующие два варианта:
- Простая канонизация означает, что никакие изменения в заголовке или тексте электронного письма недопустимы.
- Упрощенная канонизация означает, что общие изменения - в частности, изменения в способе переноса заголовков и способе обработки пробельных символов в тексте - являются приемлемыми.
Для упрощения канонизации серверы-получатели электронной почты должны использовать специальные алгоритмы для отмены любых изменений, которые могли быть применены к сообщению в период между моментом его подписания и моментом его получения.
Синтаксис подписи DKIM
Поле заголовка DKIM-Signature: содержит свои собственные теги. Теги - это компоненты заголовка DKIM, разделенные точкой с запятой.
Сообщения, подписанные DKIM, подписываются закрытым ключом, связанным с открытым ключом DKIM. Владельцы доменов могут авторизовать более одной пары открытых ключей для проверки подлинности электронной почты с разных поддоменов или делегированных серверов, но каждый домен, поддомен или делегированный сервер может использовать только одну пару открытых ключей.
Подписи DKIM начинаются со строки DKIM-Signature:, за которой следуют значения тегов, разделенные точкой с запятой.
Как работает DKIM?
Текстовая запись DNS DKIM - это запись доменного имени, которую организации, отправляющие почту, могут использовать для объявления своего открытого ключа. Этот открытый ключ используется для цифровой подписи почты, отправляемой от имени организации, отправляющей почту в домене. Записи DKIM используются совместно с SPF и DMARC:
- SPF позволяет организации указывать, какие IP-адреса связаны с авторизованными серверами электронной почты.
- Политики DMARC определяют следующее действие для сервера электронной почты-получателя.
Когда сервер электронной почты получает сообщение с подписью DKIM в заголовке, сервер-получатель выполняет следующие действия:
- В отправляющем домене выполняется DNS-запрос для получения текстовой записи SPF DNS для этого домена. В этой записи указаны доменные имена и IP-адреса почтовых серверов, которым разрешено отправлять электронную почту от имени владельца домена.
- Существует DNS-запрос для получения текстовой записи DNS DKIM, связанной с подписью DKIM. Этот открытый ключ используется для аутентификации цифровой подписи DKIM.
- Если сообщение было отправлено из домена, не авторизованного в соответствии с SPF, или если подпись сообщения не прошла проверку подлинности в соответствии с DKIM, получатель выполняет DNS-запрос, чтобы получить текстовую запись DNS DMARC, связанную с владельцем домена. Запись DMARC назначает политики.
Политики DMARC указывают получателю, какой следующий шаг следует предпринять, который может быть следующим:
- None. Никаких специальных действий не требуется. Этот параметр обычно используется при первом внедрении протоколов проверки подлинности электронной почты. Ошибка при отправке электронного письма в соответствии с этой политикой не отличается от проверки подлинности электронного письма, но отправителю может быть сообщено о сбое.
- Quarantine. Поместить не прошедшее проверку электронное письмо в папку "спам" получателя. Эта политика может применяться к электронным письмам, которые кажутся подозрительными, но могут быть законными. Она также может использоваться в качестве промежуточной меры при проверке подлинности электронной почты.
- Reject. Удалять электронные письма, не доставляя их. Эта политика применяется, когда проверка SPF и DKIM полностью внедрена и доказано, что они надежно предотвращают фишинговые атаки, спам и другие подозрительные или вредоносные электронные письма.
Хотя, вероятно, и возможно реализовать DKIM самостоятельно, общая эффективность подписей DKIM снижается без использования SPF и DMARC. DKIM зависит от записей SPF, чтобы определить, отправлено ли сообщение с авторизованного сервера электронной почты. Многие преимущества DKIM, такие как оповещение об атаках спамеров и других злоумышленников, зависят от использования DMARC для запроса отчетов об электронных письмах, которые не прошли проверку подлинности.
Оригинал: DomainKeys Identified Mail (DKIM)