1. Начало
  2. Имейл (e-mail)
  3. DKIM (DomainKeys Identified Mail)

DKIM (DomainKeys Identified Mail)

DKIM (DomainKeys Identified Mail) е механизъм за удостоверяване на подателя и автентичността на съдържанието на изпратените от този подател имейл съобщения.

Както SPF, така и DKIM системата е създадена, за да защитава получателите и подателите, от измамни и спам имейл съобщения. Тези технологии помагат на легитимните податели да докажат, че изпращаните от тях имейл съобщения не са фалшифицирани, което може да предотврати попадането на легитимен имейл в папката Spam.

Активиране на DKIM: DKIM запис може да се добави за всеки домейн в cPanel, който използва нейм сървърите на СуперХостинг.БГ. За всички хостинг услуги при СуперХостинг.БГ DKIM записът се генерира автоматично. Единствено е нужно да се активира. Вижте как можете да активирате DKIM и SPF удостоверяването за Вашия домейн в статията: Активиране на SPF и DKIM в cPanel (имейл удостоверяване).

Как работи DKIM?

DKIM изисква изпращача да има генерирана двойка криптографски ключове. Това са частен ключ, за подписване на имейл съобщението при изпращане и публичен ключ, за валидиране на този подпис.

Частният ключ се ползва от изходящия мейл сървър на изпращача, за подписване на изходящите имейл съобщения. Към тези имейл съобщения се добавя допълнителен хедър DKIM-Signature, в който се съдържа подписа, хеш код на съдържанието на имейла (по който може да се разбере ако нещо е променено), кой е подписващия домейн и няколко други параметри.

Публичният ключ е поставен в TXT запис, от изпращача, в DNS зоната на неговия домейн. Това е домейнът, към който са създадени имейл адресите, от които ще се изпращат имейл съобщения.

При получаване на DKIM подписано имейл съобщение, входящият мейл сървър на получателя ще вземе от DKIM мейл хедъра домейн името и селектора, за да извърши DNS проверка за този TXT запис. След това ще използва публичния ключ от TXT записа, за да верифицира подписа на имейл съобщението.

Примерен хедър DKIM-Signature, присъстващ в имейл съобщение подписано с частния ключ:

DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mydomain.com; s=default;
h=Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version;
bh=VBzDnT2t7...7wIaobQ=; b=WDnta...s5fzCH18=;

DKIM-Signature: хедър (заглавна част) в имейл съобщението
v=1 : версията на DKIM
a=rsa-sha256 : алгоритъм, използван за подписването
q=dns/txt : метода за заявка
c=relaxed/relaxed : дали да се толерира минимална промяна в хедърите/съдържанието на съобщението; някои имейл системи, през които преминава съобщението, може да направят малки промени по хедърите; relaxed означава, че съвсем малки промени са приемливи и въпреки тях подписа ще остане валиден; другият вариант е simple, при който абсолютно никакви промени не са приемливи и ще доведат до невалиден подпис; възможно е да се зададе различен параметър за хедърите и за съдържанието, например c=relaxed/simple.
d=mydomain.com : подписващия домейн
s=default : селектор; по този параметър входящия мейл сървър ще потърси отговарящия му публичен ключ в DNS записите на домейна; този допълнителен параметър позволява един домейн да има множество частни/публични ключове (повече от един легитимен изпращач или периодична промяна на двойката ключове);
h=Message-ID:Subject:To:From:Date:Content-Transfer-Encoding:Content-Type:MIME-Version : хедърите, които са подписани
bh=VBzDnT2t7l4E7ujx7wIaobQ= : хеш кода на съдържанието в имейла;
b=WDntaGE...ds5fzCH18= : самият електронен подпис (на хедърите и съдържанието)

Примерен DKIM TXT запис в DNS зоната на домейна:

default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqG...YbiWDq1yESS5jSQbzpQIDAQAB;"

v=DKIM1 : версията на DKIM
k=rsa : типа на ключа p=;
p=MIGfMA0GCSqG...YbiWDq1yESS5jSQbzpQIDAQAB : публичния ключ, допълнително кодиран в base64

Детайлно описание на всички параметри на TXT записа и мейл хедъра можете да намерите в DKIM спецификацията: DKIM RFC 6376.

Имплементации на DKIM

Някои от системите, в които е имплементиран DKIM можете да видите на следната страница: DKIM Software and Services Deployment Reports

Ако верификацията на подписа не е успешна, писмото може да се маркира като спам. Такива съобщения не се изтриват автоматично. Към такива съобщения не се прилагат допълнителни действия, като например автоматично изтриване, това не е засегнато от спецификациите на DKIM. За допълнителна манипулация на имейл съобщенията, които не са преминали успешно валидирането, ще е необходимо допълнително приложение.

Едно такова приложение е SpamAssassin. SpamAssassin е филтър против спам, който извършва проверка на DKIM подписаните имейл съобщения. Освен DKIM проверката, този филтър прилага и множество други проверки върху всяко входящо имейл съобщение. Маркираните като спам имейл съобщения, може или да се изтриват автоматично или да се преместват в папка Spam.

Обновена: 24.03.2015

Беше ли Ви полезна тази статия?

Вижте още