Как определить поддельное электронное письмо. Заголовки электронных писем


    В самом общем случае схема обмена электронными сообщениями (электронная почта, e-mail) выглядит следующим образом

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

В качестве одного из элементов электронной почты, почтовый ящик представляет собой обычный каталог файловой системы (папку), а электронные письма – файлы данных, находящиеся в данном каталоге. Естественно, вся технология приема и передачи электронных писем подчиняется определенным правилам, задаваемым протоколами и форматами данных. На стороне клиента (отправителя и получателя) используется специальное программное обеспечение – почтовый клиент, в качестве которого может использоваться, например, Microsoft Outlook для Windows или Mozilla Thunderbird для Linux. Даже если вы работаете со своим почтовым ящиком через веб-интерфейс (подключаясь к сайту, например mail.ru), то вы все равно используете почтовое клиентское программное обеспечение, выполняющееся в среде сервера. Почтовые серверы и почтовые клиенты, независимо от того, на каком оборудовании, и с каким программным обеспечением, они работают, реализуют, как минимум два прикладных протокола, без которых невозможен обмен почтой. Один из них служит для передачи электронных писем – это протокол SMTP (Simple Mail Transfer Protocol, простой протокол передачи почты), второй служит для приема POP3 (Post Office Protocol ver 3, протокол почтового офиса). Оба протокола на прикладном уровне реализованы в виде обмена текстовыми сообщениями в кодировке ASCII, т.е. являются телнетоподобными (telnet-like) протоколами. Так уж исторически сложилось с момента первых попыток обмена электронными сообщениями в 1960-х годах. Соответственно, сами электронные письма, тоже не могут содержать никаких служебных (неотображаемых) символов. Даже прикрепленный к электронному письму бинарный файл преобразуется перед передачей в последовательность стандартных отображаемых символов и при приеме перекодируется в исходный вид. Как процесс обмена данными, так и структура электронных писем подчиняются строго определенным правилам, о которых пойдет речь ниже.

Отправитель почтового сообщения подключается к своему почтовому серверу с использованием протокола прикладного уровня SMTP и передает ему данные, необходимые для доставки отправления конечному получателю, и собственно, само послание. После чего сеанс обмена завершается. На следующем этапе доставки почты (процесс Mail Delivery), почтовый сервер отправителя, используя данные электронного адреса получателя, находит его почтовый сервер, подобным же образом подключается к нему и передает письмо, которое помещается в почтовый ящик получателя. Структура адреса в виде [email protected] пределяют:

user - имя пользователя, оно же – имя каталога, используемого в качестве почтового ящика.

domain.ru - доменное имя "domain.ru", по которому определяется почтовый сервер, на котором находится данный почтовый ящик. Для определения почтовых серверов, обслуживающих конкретные домены используется служба разрешения имен DNS.

[email protected] – почтовый ящик пользователя "test" в домене mail.ru

Соответственно, когда отправитель неверно укажет первую часть адреса или такой почтовый ящик отсутствует, письмо не может быть доставлено, и отправителю отсылается сообщение об этом факте, содержащее "Mailbox does not exist" (почтовый ящик не существует):

SMTP error from remote mail server after RCPT TO: :

  ^nbsp   host mx01.mail.ru : 550 Mailbox [email protected] does not exist.

Обычно, сообщения об ошибках доставки электронной почты отправляются с темой:

Mail delivery failed: returning message to sender

В случае, когда ошибочно указана часть адреса после знака @ , то сообщение об ошибке будет сопровождаться текстом о том, что не найден домен (Domain . . . not found). В зависимости от разновидности серверов и их настроек, текст сообщений об ошибках доставки может незначительно отличаться.

Если же ошибок не возникло, получателю остается только подключиться к серверу с использованием своего почтового клиента и по протоколу прикладного уровня POP3 "забрать" из почтового ящика находящееся там послание.

Протокол SMTP был разработан еще в начале 80-х годов прошлого века (основные спецификации - RFC 821 RFC 822), однако, с некоторыми изменениями и дополнениями, широко используется до сих пор и, очевидно, будет использоваться в ближайшие несколько лет как основной протокол передачи электронных сообщений. Последнее обновление в 2008 г. RFC 5321 добавило масштабируемое расширение протокола - ESMTP (Extended SMTP). Однако в повседневной терминологии, по прежнему используется название SMTP

    При стандартной настройке, почтовый сервер ожидает входящие соединения на TCP порт 25 (слушает TCP порт 25). Клиентская почтовая программа выполняет подключение на данный порт, после чего, почтовый сервер передает свое приветствие, например:

220 fcgp03.nicmail.ru ESMTP CommuniGate Pro 5.2.3.

Информационные и управляющие сообщения, выдаваемые сервером, состоят из номера (числового идентификатора), в данном случае - 220 (сервер готов к работе) и поясняющего текста. Данные, передаваемые клиентом, не имеют номера и передаются в виде набора отображаемых символов (обычного текста).

Для начала сессии, в соответствии со спецификацией протокола SMTP клиент должен сообщить свое локальное имя хоста с использованием директивы HELO. Вместо HELO, может быть использована (и в большинстве почтовых программ, используется) директива EHLO , в ответ на которую сервер передает список поддерживаемых им команд протокола SMTP

EHLO MyComp.Mydomain

В качестве аргумента директивы EHLO передается имя компьютера.

В ответе сервера (идентификатор 250 - OK, выполнено успешно) будут перечислены поддерживаемые им команды протокола SMTP:

250-fcgp03.nicmail.ru domain name should be qualified MyComp.Mydomain
250-SIZE 31457280
250-AUTH LOGIN PLAIN CRAM-MD5 DIGEST-MD5 MSN
250-ETRN
250-TURN
250-ATRN
250-8BITMIME
250-HELP
250 EHLO

Список команд SMTP зависит от разновидности и конкретных настроек сервера. В связи с проблемой СПАМа, подавляющее большинство почтовых серверов настраивается только на работу с разрешением на подключение с заранее известных IP-адресов или с авторизацией пользователя. Поэтому почтовая клиентская программа выдает директиву AUTH, указывающую какую процедуру проверки подлинности пользователя она будет использовать:

AUTH LOGIN

В данном случае будет использоваться проверка подлинности пользователя по имени и паролю. После чего сервер выдает сообщение c номером 334 (выполнение процедуры аутентификации):

334 VXNlcm5hbWU6

В рассматриваемом примере SMTP-сессии, на данном этапе обмен данными между клиентом и сервером выполняется также в текстовом виде, но в кодировке Base64 . Данная кодировка широко используется в приложениях электронной почты для кодирования бинарных данных - программ, фото, видео и т.п. Весь диапазон кодируемых элементов данных может быть представлен набором символов английского алфавита, цифрами и некоторыми знаками. Для перекодировки данных, проще всего, воспользоваться онлайн-перекодировщиком base64.ru . Для перекодировки копируем строку Base64 в верхнее окно, и в нижнем получаем текст Username:

Строка символов VXNlcm5hbWU6 - это Username: в кодировке ASCII, т.е. запрос имени пользователя. Клиентская программа также отправляет его в кодировке Base64:

QmlsbEdhdGVzQG1pY3Jvc29mdC5jb20=

Подобным же образом, определяется, что строка

334 UGFzc3dvcmQ6

Означает запрос пароля - Password:

На что клиентская программа передает пароль, также в кодировке Base64:

YXNkYXRh

Если пароль принят, сервер отвечает сообщением с номером 235:

235 [email protected] authenticated

Если имя пользователя или пароль не опознаны, сервер ответит кодом ошибки из набора сообщений с номерами 4ХХ, 5ХХ

MAIL FROM: [email protected]

Одним из серьезных недостатков протокола SMTP является его слабая защита от подделки почтовых отправлений. Как в директиве HELO можно указать любой адрес хоста, так и в директиве MAIL FROM можно указать любой адрес отправителя, например,

Font color="blue"> MAIL FROM: [email protected]

Если почтовый адрес соответствует формату user@domain , сервер выдаст сообщение с номером 250 (OK, все хорошо):

250 [email protected] sender accepted

(А клиентская почтовая программа получателя именно этот адрес отобразит в принятом письме, т.е. от Билла Гейтса из домена microsoft.com)

Получив от сервера подтверждение, что адрес принят, клиентская программа передает адрес получателя с помощью директивы RCPT TO:

RCPT TO: [email protected]

Если адрес получателя соответствует формату user@domain , сервер ответит сообщением о готовности принять почтовое сообщение для доставки 250:

250 [email protected] will relay mail for an authenticated user

DATA

На что сервер отвечает сообщением с номером 354 ("начать ввод текста письма")

354 Enter mail, end with "." on a line by itself

В самом простейшем случае, письмо может быть набором вводимых с клавиатуры, отображаемых символов ASCII, например

Hello, World!!!

Признаком конца сообщения является отдельная строка, содержащая символ "точка".

На что, сервер выдает сообщение о принятии к доставке введенного сообщения:

250 message accepted for delivery

После чего программа почтового клиента завершает сессию:

В ответ почтовый сервер сообщает о закрытии соединения:

221 fcgp03.nicmail.ru CommuniGate Pro SMTP closing connection

    На начальном этапе использования протокола SMTP, когда передавался только простой текст, использовался именно такой способ передачи писем, однако со временем, появилась необходимость создавать красивое оформление отправлений, прикреплять файлы произвольного формата, использовать национальные алфавиты и т.п. Таким образом, в дополнение к документу RFC 821 был разработан документ RFC 822 , стандартизирующий основное содержание сообщений электронной почты и документы RFC 2045 и RFC 2046 , описывающие формат расширений MIME (Multipurpose Internet Mail Extensions - многоцелевое расширение электронной почты), предназначенный для обработки составных и нестандартных сообщений.

Формат электронного письма.

    В соответствии с современными стандартами, сообщение электронной почты состоит из 2-х частей - заголовка и тела . Заголовок письма формируется почтовым программным обеспечением и состоит из нескольких строк в кодировке ASCII. Заголовок содержит служебную информацию, необходимую для доставки и обработки электронного послания. Каждое поле заголовка состоит из названия, символа двоеточия, и данных поля. Некоторые поля заголовка имеют фиксированную структуру, например, поле From: (адрес отправителя), а некоторые - произвольную, как например, поле Subject: (тема письма).

Основные поля сообщения:

From: - адрес отправителя
To: - адрес получателя
Date: - дата отправки
Cc: - копия сообщения отправляется на указанный адрес
Bc - скрытая копия
Subject: - тема сообщения
Message-ID: - идентификатор сообщения, присвоенный почтовым ПО.
Reply-To: - адрес для ответа на сообщение.
Priority - Приоритет (важность) сообщения
X-Mailer: - почтовая программа, с помощью которой отправлено сообщение.
Received: - поле с адресами и временем обработки сообщения промежуточными серверами при доставке сообщения адресату.

    Минимальный заголовок сообщения должен содержать поля From: , To: (или Cc: ) и Date: . При доставке сообщения конечному адресату, к первоначальному заголовку письма могут быть добавлены поля, сформированные промежуточными почтовыми серверами. Так, например, при отправке сообщения от пользователя [email protected] пользователю [email protected] , письмо отправляется клиентским почтовым программным обеспечением на почтовый сервер, обслуживающий домен mail.ru, и затем пересылается им почтовому серверу, обслуживающему домен rambler.ru, откуда оно будет принято пользователем почтового ящика [email protected]. Пересылка может состоять из нескольких шагов и сопровождается добавлением полей промежуточных серверов в заголовок сообщения.

О формате содержимого письма сообщают поля:

MIME-Version: - версия расширения MIME. Означает, что в данном сообщении используется расширение MIME и указывается его версия.

Content-Type: - тип содержимого. Определяет содержание сообщения и алгоритм его обработки почтовым программным обеспечением (почтовым ПО). Так, например,

Content-Type:message/RFC-822 - указывает, что далее следует сообщение в формате RFC-822, т.е. простейшее текстовое сообщение без каких-либо расширений в кодировке ASCII.
Content-Type: text/plain; charset="windows-1251" - сообщение из последовательности символов в кодировке, определяемой значением параметра charset: (в данном случае, в кодировке Windows с кодовой страницей 1251)
Content-Type: text/html - используется текст, размеченный с использованием тегов языка HTML.
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_008D_01CC0FEF.CCB47280"
- сообщение состоит из нескольких частей различного содержания. Параметр boundary задает строку - разделитель между отдельными частями.

    Таким образом, поле Content-Type: может определять тип содержимого (audio, video, image), которое должно быть перекодировано при обработке почтового сообщения. Тип кодировки указывается полем Content-Transfer-Encoding: . Если указаны типы 7bit , 8bit или binary , то перекодировка не используется. Тип Base64 указывает на то, что кодирование данных выполнено с использованием упоминаемой выше кодировки Base64. Довольно часто встречается тип quoted-printable , предназначенный, как и Base64, для передачи символов, не входящих в состав отображаемой части ASCII (английского алфавита, цифр и некоторых знаков). Каждый символ преобразуется в последовательность из знака равенства = и двух символов задающих шестнадцатеричное значение кода преобразуемого символа. Так, например, заглавная русская буква Я , которой соответствует шестнадцатеричное значение 0xDF в старшей части таблицы символов, будет представлена как =DF , восклицательный знак - =21 и т.п. Правила кодирования данных описаны в документе RFC-1341

Как определить поддельное электронное письмо.

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

    Принятое письмо отображается почтовым клиентским программным обеспечением в виде, удобном для просмотра без лишней детализации, однако, при необходимости, можно изменить представление данных сообщения, и получить возможность просмотра полей заголовка. Для почтового клиента Microsoft Outlook Express (а также почтового клиента Windows Mail и прочих), например, нужно выбрать конкретное письмо, вызвать контекстное меню правой кнопкой мышки и выбрать пункт Свойства или нажать комбинацию клавиш Alt +ENTER . Откроется окно свойств сообщения с вкладками "Общие" и "Подробно" (в некоторых клиентах – "Общие" и "Сведения")

При выборе режима представления "Подробно" в окне свойств сообщения будут отображаться заголовки письма и, кроме того, появится возможность его просмотра в том виде, в каком оно было принято от почтового сервера при нажатии на кнопку Исходное Сообщение

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

В других почтовых программах или в веб-интерфейсе почтовых служб также имеется возможность просмотра заголовка, так, например, при чтении письма через веб-интерфейс почтовой службы mail.ru, заголовок можно просмотреть, нажав на иконку с надписью RFC , располагающейся в строке кнопок над письмом. В веб-интерфейсе почты Яндекса, нужно в правом верхнем углу экрана нажать на иконку Свойства письма . Названия кнопок могут различаться, но практически всегда существует возможность просмотра заголовка или полностью исходного вида электронного письма.

Для просмотра заголовка электронного письма в почтовом клиенте Microsoft Outlook 2010 нужно открыть письмо двойным щелчком и выбрать в меню "Файл" – "Сведения" - кнопка "Свойства". Поля заголовка отображаются в окне "Заголовки интернета"

    Для примера, рассмотрим заголовки письма, в качестве отправителя в котором значилось "Microsoft Corporation" и c темой "You Won (View Attachment)" , где сообщалось о крупном выигрыше в электронной лотерее и предлагалось для его получения заполнить анкету в присоединенном файле. Вроде бы речь идет о выигрыше в лотерее, проводимой корпорацией Майкрософт. Вообще-то, содержание явно подозрительное, но в данном случае это неважно. Задача заключается в том, чтобы получить максимум достоверной информации об отправителе данного электронного письма.

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

X-Mailer: YahooMailRC/420.4 YahooMailWebService/0.8.105.279950

Поля From:, To: и Reply-To: также говорят о поддельности письма.

From: Microsoft Corporation

Выводимое имя отправителя "Microsoft Corporation" а почтовый адрес " [email protected] " (реально присутствовавшие в сообщении адреса я изменил, сохранив структуру). В адресах электронной почты используется формат

user@domain - Имя пользователя знак @ имя домена . Имя пользователя (имя почтового ящика) в данном случае - microsoft491 , а имя домена - gmail.com , т.е. - это бесплатный почтовый ящик в домене Google . Не правда ли, это странно, когда крупная организация для официальной переписки использует публичную бесплатную почту? Имя пользователя можно завести любое, если оно свободно, и соответствует правилам почтового сервиса, а отображаемое имя не имеет отношения к реальному почтовому адресу. Очень часто мошенники используют формат почтового адреса в качестве отображаемого имени отправителя, и вместо "Microsoft Corporation" может присутствовать, например "[email protected]", которому будет соответствовать реальный адрес "[email protected]", который явно не имеет никакого отношения к корпорации Microsoft.

Имеет ли домен из адреса отправителя какое либо отношение к Microsoft или какой либо другой организации, можно проверить с использованием специального программного обеспечения, как например бесплатная утилита или с использованием онлайн-сервисов Whois (на сайте 2ip.ru, например), позволяющих получить реальные сведения о доменном имени.

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

Следующее поле, на которое следует обратить внимание

Message-ID: 306099.58326.qm@ web83802.mail.sp1.yahoo.com

Это внутренний идентификатор сообщения, присваиваемый почтовой системой, имя которой располагается после символа @ . Если вы получили, якобы письмо от Microsoft или администрации Яндекса, а в имени почтовой системы присутствует yahoo.com , то можно однозначно сделать вывод, что такое письмо - подделка. Но это еще не все. Следующее (снизу вверх) поле, Received: было сформировано первым в цепочке доставки почтовым сервером и дает нам адрес (адрес изменен мной), с которого было отправлено письмо

Received: from by web83802.mail.sp1.yahoo.com via HTTP;

C большой долей вероятности можно предположить, что это, как минимум адрес из пула адресов Интернет - провайдера отправителя или шлюза сети почтовой службы. Добавлю, что в большинстве случаев в сетях провайдеров клиентам выделяются динамические IP-адреса и, так называемые, "серые" IP, когда выход в Интернет выполняется с использованием технологии NAT (Network Address Translation) и в качестве IP в поле Received: будет адрес шлюза, через который производится выход в Интернет из внутренней сети провайдера. Для получения информации об IP-адресе можно воспользоваться тем же Win32Whois. Вместо имени домена заносим в поле DOMAIN интересующий нас IP-адрес

Анализ адреса может дать информацию, например, что письмо от якобы Microsoft , было отправлено из сети польского или новозеландского провайдера, а официальное письмо Федеральной службы России отправлено из Канады.

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

Сообщение электронной почты обычно состоит из двух частей:

    заголовка (header), содержащего служебную информацию, управляющую доставкой и обработкой сообщения;

    тела (body), содержащего непосредственно пользовательское сообщение: текст и прикрепленные данные (графические, звуковые файлы и т.п.).

Заголовок сообщения

Почтовое сообщение – это простой текст в формате ASCII. Поэтому заголовок сообщения представляет собой последовательность текстовых строк вида:

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

Message-ID – уникальный идентификатор сообщения. Уникальность значения этого поля гарантируется программным обеспечением узла-отправителя, поэтому оно генерируется автоматически.

Date – поле "Дата". Содержит дату отправки сообщения. Значение поля устанавливается автоматически почтовым клиентом при отправке сообщения.

From – поле "От". Содержит адрес, который отправитель сообщения указывает в качестве исходящего адреса.

Sender – поле "Отправитель". Содержит адрес, с которого было реально отправлено сообщение. Это поле может отсутствовать в заголовке, если поле "From" содержит адрес реального отправителя.

To – поле "Кому". Содержит адрес основного получателя сообщения.

Cc – поле "Копия". Содержит адреса дополнительных получателей сообщения.

Bcc – поле "Скрытая копия". Содержит адреса дополнительных получателей сообщения. Получатели, перечисленные в полях "To" и "Cc", не будут знать, что абоненты из списка "Bcc" получили копию сообщения.

Reply-to – поле "Ответить". Содержит адрес, по которому получатель должен направлять ответ. Это поле является необязательным: в случае его отсутствия ответы направляются по адресу, указанному в поле "From".

Subject – поле "Тема сообщения". В этом поле обычно указывается краткое описание (тема) сообщения.

Тело сообщения

Изначально предполагалось, что почтовые сообщения могут содержать только текст в формате ASCII. А поскольку возможность передачи нетекстовой информации не предусматривалась, то протоколы передачи электронной почты могут некорректно обрабатывать такие сообщения. В связи с этим в свое время был разработан специальный стандарт, определяющий принципы преобразования нетекстовых данных к текстовому виду. Этот стандарт получил название MIME (Multipurpose Internet Mail Extension, многоцелевое расширение почты Интернет).

MIME предполагает, что в теле сообщения могут передаваться следующие виды информации:

    текст – простой текст в формате ASCII, а также текст в формате RTF или HTML;

    графические изображения – файлы в формате JPEG и GIF;

    аудио и видео данные;

    данные в форматах различных приложений, например, документы Microsoft Office, а также данные произвольного формата (в том числе, различные исполняемые файлы).

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

Это широко используется при отправке сообщений с вложениями (attachments) – дополнительными "прикрепленными" файлами, которые могут содержать разнородную информацию. Например, к текстовому сообщению можно прикрепить графический файл c фотографией отправителя.

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

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

    алгоритм "Quoted-printable", предназначенный для замены байтов, не являющихся ASCII-символами, на группу из трех байт, представляющих собой только стандартные символы;

    алгоритм "Base64", осуществляющий преобразование трех произвольных байт в четыре ASCII-символа.

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

Content-type – поле "Тип содержимого". Отвечает за корректное определение типа данных, содержащихся в сообщении заголовка сообщения. Значение поля указывает на конкретный тип данных, или информирует о том, что тело содержит несколько разнотипных блоков.

Content-Transfer-Encoding – поле "Тип кодирования содержимого". Определяет способ преобразования (перекодировки) исходных данных в текстовый вид.

Технические заголовки

Согласно стандартам обмена электронными сообщениями, письма поддерживают некоторые заголовки, каждый из которых должен быть с новой строки. По умолчанию уже прописаны необходимые из них: MIME-Version, Content-Type, From, Reply-To, Subject, To. Записанные в поле заголовков новые, будут добавлены к имеющимся вшеуказанным.

Все почтовые агенты воспринимают эти стандарты по разному. Хотя эти заголовки email и указаны в официальных протоколах RFC, они могут быть ингорированы или неверно интерпретированы, по этому перед email рассылкой их стоит тестировать на себе.

Популярные RFC заголовки письма

Cc: (Carbon Copy) * Cc: [email protected]
Этот заголовок является расширением поля "To:", он указывает дополнительных получателей письма. Различий между "To:" и "Cc:" в сущности нет, если не считать, что некоторые почтовые программы рассматривают их по-разному, генерируя ответ на сообщение.
Bcc: (Blind Carbon Copy) * Bcc: [email protected]
Если вы видите этот заголовок в полученном сообщении - значит, что-то не так. Этот заголовок используется так же, как и "Cc:" (см. ниже), но не появляется в списке заголовков. Основная идея этого заголовка заключается в возможности посылать копии письма людям, которые не хотят получать ответы или появляться в заголовках. Слепые копии очень популярны среди спаммеров, поскольку многие неопытные пользователи оказываются сбитыми с толку, получив письмо, которое вроде бы не было им адресовано.
Comments: * Comments: Люблю книги
Этот заголовок не является стандартным, может содержать любую информацию. Подобные заголовки добавляются некоторыми почтовыми программами (в частности, популярной программой Pegasus) для идентификации отправителя, но часто прописывается и вручную спаммерами, так что относиться к нему следует с осторожностью.
Organization: * Organization: ОАО Костоправ
Абсолютно свободный заголовок, обычно содержащий название организации, через которую отправитель сообщения получает доступ к сети. Отправитель, как правило, контролирует этот заголовок, поэтому там вполне может быть что-то вроде "Королевское Сообщество Постановки Одного Над Другим".
Priority: (X-MSMail-Priority: Importance:) * Priority: 1
Заголовок, устанавливающий приоритет сообщения. Иногда указывается, как X-Priority:, X-MSMail-Priority:, Importance:, принимает значения "Higt", "Normal", "Urgent", "Non-urgent" или дляX-Priority "1", "3", "5". Большинство программ его игнорируют. Часто используется спаммерами с целью привлечения внимания к сообщению установив 1.
Precedence: * Precedence: bulk
Значения: "bulk", "junk", "list". Указывает принадлежность письма к массовой рассылке. Синонимы X-List:*, X-Mirror:*, X-Auto:*, X-Mailing-List:*.
List-Owner: * List-Owner:
Email адрес организатора массовой рассылки.
X-Mailer: * X-Mailer: ePochta Mailer Disposition-Notification-To: * Disposition-Notification-To: [email protected]
На указанные реквизиты будет отправлено уведомление о прочтении. Зачастую игнорируется почтовиками, в целях борьбы со спамом. Синонимы: X-Confirm-Reading-To:, Return-Receipt-To:
List-Unsubscribe: * List-Unsubscribe: или List-Unsubscribe:
По описанному функционалу, поле должно автоматически отписывать пользователя, если он нажал на кнопку "СПАМ", но зачастую под это поле выводится отдельная кнопака "Отписаться". Заголовок воспринимается не всеми почтовыми программами, т.к. это отличная возможнотсь проверить email адреса на используемость.
X-*** * X-List:, X-Mailer:, X-...
Как глосят стандарты RFC, заголовки начинающиеся на X - это собственные заголовки отдельных почтовых программ, носящие информативный характер. Но некоторые принимаются повсеместно, например X-Mailer. Ничего, кроме дополнительной информации в коде письма...

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

Однако мало кто обращает внимание на заголовки сообщений. Некоторые из них пользователи видят при чтении электронной почты постоянно, это строки, начинающихся с To:, From: и Subject:. Однако заголовки содержат не только дружественные подсказки почтовой программы, но и другую, весьма содержательную информацию. Из заголовков можно узнать название и номер версии вашего почтового клиента, а также тип операционной системы, наименование и номер версии почтового сервера, внутренние IP-адреса и тип используемого в вашей организации брандмауэра (если он используется).

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

СТАНДАРТЫ

Заголовки электронной почты, как и все компоненты Internet, должны соответствовать стандартам, в данном случае - стандарту RFC 822. Отдельный стандарт, RFC 821, определяет формат «конверта» и описывает протоколы передачи почтовых сообщений, но это не относится к теме данной статьи. Спецификация RFC 822 была предложена для замены более раннего стандарта (RFC 733), с целью обеспечения передачи сообщений электронной почты между различными сетями. Обсуждаемые в данной статье заголовки необходимы для пересылки любого почтового сообщения через Internet или же между двумя внутренними серверами электронной почты, если они используют для этого стандартные протоколы TCP/IP. Эти понятия пояснены на Рисунке 1.

Возможно, ваша почтовая программа позволяет просматривать заголовки сообщений. Например, в случае Outlook, выбрав в меню View подменю Show Fields, вы увидите диалоговое окно с наименованиями некоторых из возможных полей, которые могут появляться в почтовых сообщениях.

Каждый заголовок начинается с наименования поля, за которым всегда следует двоеточие и пробел, например To: или Received:. Длинные строки заголовков «свернуты», или представлены несколькими строками, причем каждая дополнительная строка начинается как минимум с одного пробела. На Рисунке 1 первым полем заголовка является Received:, которое в действительности распространяется на три строки, за ним следует другое трехстрочное поле Received:.

Некоторые из названий полей, такие, как Date:, To:, Subject: и From:, сами говорят о своем назначении. Например, после имени поля From: расположен обратный адрес, а после To: - адрес получателя. Протокол SMTP (RFC 821) не требует, чтобы помещенный в поле From: адрес точно представлял отправителя. SMTP не располагает реальными средствами проверки того, что отправитель использует свой собственный адрес, хотя большинство почтовых серверов проверяет, как минимум, факт существования домена отправителя. Отсутствие контроля облегчает фальсификацию адресов отправителей сообщений, характерную, в частности, для спама.

ПОЛУЧАТЕЛИ

С точки зрения получения реальной информации об отправителе почтового сообщения заголовки Received: представляют существенно больший интерес, чем заголовки From:, которые легко фальсифицируются. Вообще говоря, любая строка заголовка может быть в какой-то мере подделана, так как заголовки представляют собой лишь текстовые данные, и только те из них, которые формируются вызывающими доверие серверами, могут считаться достоверными. Заголовки Received: добавляются каждым почтовым сервером, ретранслирующим данное сообщение, причем самый последний в цепочке почтовый сервер находится на первой позиции, а первый сервер, ретранслировавший сообщение, - на последней. На Рисунке 1 первый заголовок Received: показывает, что сервер bear.spirit.com получил сообщение для адресата [email protected] от узла 0nus.l0pht.com.

Первый заголовок предоставляет и другую интересную информацию. Данные в скобках, например (0nus.l0pht. com ), воспринимаются в качестве комментариев совместимыми почтовыми серверами. В данном случае программа sendmail на узле bear.spirit. com проверила, что система отправителя на самом деле имеет имя 0nus.l0pht.com и IP-адрес 199.201.145.3. Просмотр параметров соединения TCP/IP дал sendmail возможность определить IP-адрес, а затем поиск в системе DNS позволил узнать доменное имя сервера.

Второй заголовок Received: более интересен. Заметьте, что сообщение получено от , т. е. указан абсолютный IP-адрес системы 0nus, причем он одновременно показан как 199.201.145.3. В соответствии со стандартом RFC 1918 адреса IP, начинающиеся с 172.16, зарезервированы для частных сетей, поэтому они не предназначены для передачи через Internet и могут повторяться. В нашем примере заголовок Received: говорит о том, что 0nus функционирует в качестве брандмауэра домена l0pht (или его части) и осуществляет преобразование сетевых адресов (Network Address Translation, NAT). Вместе с тем, этот заголовок Received: информирует о том, что в домене 0nus работает Postfix - новый почтовый сервер, который компания Wietse Venema разработала для обеспечения максимально возможного уровня безопасности.

В примере на Рисунке 1 сообщение содержит только два заголовка Received:. Иногда их бывает намного больше, и эти заголовки могут показать другие внутренние сетевые адреса и имена почтовых серверов, а также внутренние имена серверов. Важность строк Received: проявляется также в том, что они позволяют выявить случаи зацикливания, когда один почтовый сервер пересылает сообщение другому, а тот в свою очередь снова отправляет его обратно, создавая цикл. С другой стороны, строки поля Received: содержат также множество данных, которые могут заинтересовать внешнего злоумышленника.

К настоящему моменту по информации заголовков Received: мы определили два почтовых сервера: sendmail и Postfix. Другие почтовые серверы Unix, а также Microsoft Exchange и Lotus Notes тоже оставляют свои отметки в заголовках Received:.

С определенной долей вероятности 0nus.l0pht.com представляет собой брандмауэр домена l0pht. В некоторых случаях можно не только догадываться, но и точно определить факт присутствия брандмауэра. Иногда он будет называться «firewall», «eagle», «fw1» или каким-либо другим легко распознаваемым именем, что найдет отражение в заголовках Received:. Некоторые брандмауэры, например компании Interlock, явно заявляют о своем присутствии, добавляя комментарий к строке Received:. Брандмауэр другого производителя помещает в это поле гораздо менее информативную строку, указывая, что «частная информация была удалена». Тем не менее, так как только этот производитель использует данный специфический комментарий, присутствие его брандмауэра становится почти таким же очевидным, как и брандмауэра Interlock.

ИСЧЕЗАЮЩИЕ ЗАГОЛОВКИ

Заголовки Received: предназначены для анализа проблем доставки электронной почты. Удаление этих заголовков не считается в Сети признаком хорошего тона, но некоторыми брандмауэрами они все же удаляются по желанию администратора. Я считаю удаление таких заголовков в сообщениях, покидающих вашу организацию, обоснованным действием: если вы несете ответственность за проблемы с электронной почтой в пределах вашей организации, то у вас вряд ли появится желание предоставить посторонним лицам возможность анализировать структуру вашей почтовой системы (и сети). Пока еще не все брандмауэры позволяют это сделать. (Как правило, только межсетевые экраны со шлюзами приложений настолько «умны», чтобы корректно осуществлять подобные операции.)

Спецификация RFC 822 требует наличия в сообщении заголовков Received:, поэтому их удаление может расцениваться как противоречие стандарту Internet. В частной переписке по электронной почте с персоналом поддержки Web-узла sendmail.org консультант порекомендовал такой метод избирательного удаления заголовков Received: - модификацию sendmail и создание файла конфигурации, где содержатся удаляемые адреса серверов. В то же время служба поддержки sendmail признала подобную модификацию противоречащей духу стандарта RFC и порекомендовала скрывать частные данные в заголовках посредством их замены на хэшированные записи.

ЭТО ЕЩЕ НЕ ВСЕ

Некоторые из известных атак оказались возможны благодаря использованию ошибок синтаксического разбора заголовков. Совсем недавно Microsoft выпустила «заплатку» для модуля inetcomm.dll, к которому программы Outlook и Outlook Express обращаются для анализа, помимо прочего, заголовок Date:. При переполнении поля Date: в этих почтовых программах наблюдались сбои или даже выполнение произвольного кода (если переданные данные использовали переполнение буфера).

Как можно узнать, с какой программой работает данный пользователь: Outlook, Outlook Express или какой-либо другой? Посмотрите на заголовок x-mailer:. В случае, изображенном на Рисунке 1, отправитель Джолли пользовался почтовым клиентом Claris Emailer, что говорит также о том, что он работает на компьютере Macintosh (пакет прикладных программ Claris доступен только для Macintosh).

Почта Internet, как и большая часть его элементов, не разрабатывалась для отражения внутренних атак. Многие годы Internet был средством общения энтузиастов, объединяя компьютеры на основе общих протоколов, определенных стандартами RFC. Безопасность же и исходная цель Internet - обеспечение межсоединения - находятся в противоречии друг с другом.

Средства шифрования и цифровой подписи для электронной почты, такие, как, например, PGP (Pretty Good Privacy), не решают проблемы, так как они только обеспечивают конфиденциальность почтовых сообщений и аутентифицируют отправителя. Для предотвращения злоупотреблений, с которыми мы сталкиваемся сегодня, стандарты почтовых сообщений должны быть изменены радикально. Но уже сейчас заголовки исходящей электронной корреспонденции вашей организации можно фильтровать, удаляя из них внутреннюю информацию, которой может воспользоваться внешний злоумышленник.

Рик Фэрроу - независимый консультант по вопросам безопасности. С ним можно связаться по адресу: [email protected] .

Ресурсы Internet

Стандарт Internet на заголовки почтовых сообщений опубликован по адресу: http://www.faqs.org/rfcs/rfc822.html .

Почтовый сервер Postfix компании Wietse Venema расположен на странице http://www.porcupine.org/postfixmirror/start.html .

Рекомендации Microsoft относительно ошибок в модуле inetcomm.dll для разбора ряда заголовков почтового сообщения можно найти по адресу: http://www.microsoft.com/technet/security/bulletin/ms00-043.asp .

Полезные советы по использованию sendmail для маскировки (перезапись заголовков сообщений так, чтобы все они содержали адрес домена, а не адреса внутренних систем вашего домена) можно найти по адресу:

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

Просмотр заголовков сообщений Интернета

В Outlook для Office 365, 2016, 2013 или 2010 на Компьютере

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

    Выберите файл > свойства.

    Сведения заголовка будут отображены в поле Заголовки Интернета .
    Совет : выделять сведения в это поле, нажмите клавиши Ctrl + C , чтобы скопировать и вставьте в Блокнот или Word, чтобы увидеть весь верхний одновременно.

Содержимое заголовков сообщений электронной почты

Рассмотрим переписку по электронной почте между двумя пользователями: Сергеем Зайцевым и Ольгой Зуевой. Адрес электронной почты Сергея - [email protected] , адрес Ольги - [email protected] . Ольга использует Microsoft Office Outlook 2007. Заголовок Интернета из письма Ольги Сергею выглядит следующим образом:

Microsoft Mail Internet Headers Version 2.0Received: from mail.litwareinc.com () by mail.proseware.com with Microsoft SMTPSVC(6.0.3790.0);Wed, 12 Dec 2007 13:39:22 -0800Received: from mail ( RDNS failed) by mail.litware.com with Microsoft SMTPSVC(6.0.3790.0);Wed, 12 Dec 2007 13:38:49 -0800From: "Kelly J. Weadock" To: Cc: Subject: Review of staff assignmentsDate: Wed, 12 Dec 2007 13:38:31 -0800MIME-Version: 1.0Content-Type: multipart/mixed;X-Mailer: Microsoft Office Outlook, Build 12.0.4210X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165Thread-Index: AcON3CInEwkfLOQsQGeK8VCv3M+ipA==Return-Path: [email protected]: X-OriginalArrivalTime: 12 Dec 2007 21:38:50.0145 (UTC)

Когда Ольга отправляет сообщение на адрес [email protected] , она создает его на своем компьютере, который определяется как (i101-177.nv.litwareinc.com ). Текст сообщения передается с ее компьютера на сервер электронной почты mail.litwareinc.com. Больше Ольга не увидит своего сообщения - дальнейшая обработка выполняется почтовым серверами без ее участия. Когда почтовый сервер Ольги получит сообщение, отправленное на адрес [email protected] , он свяжется с почтовым сервером компании Proseware и доставит на него сообщение. Оно будет храниться на сервере proseware.com до тех пор, пока Сергей не проверит свою рабочую почту.

Интерпретация заголовки сообщений электронной почты

Ниже приведено описание стандартных полей заголовков сообщений электронной почты.

Microsoft Mail Internet Headers Version 2.0

Этот заголовок добавляется Outlook.

Received: from mail.litwareinc.com () by mail.proseware.com with Microsoft SMTPSVC(6.0.3790.0); Tue, 12 Dec 2017 13:39:22 -0800

Эта информация указано, что произошло передачи сообщения на вторник, 12 декабря 2017 г., в 13:39:22 (1: США) стандартному тихоокеанскому времени (это на 8 часов позже, чем по Гринвичу (по Гринвичу); таким образом «– 0800»).

Received: from mail ( RDNS failed) by mail.litware.com with Microsoft SMTPSVC(6.0.3790.0); Tue, 12 Dec 2017 13:38:49 -0800

Эта передача произошла в Вторник, 12 декабря 2017 г., в 13:38:49 (1: по) стандартному тихоокеанскому времени (это на 8 часов позже чем время по Гринвичу (UTC); таким образом «– 0800»).

From: "Kelly J. Weadock"

Сообщение отправила Ольга Зуева с адреса электронной почты [email protected] .

To:

Получатель сообщения.

Cc:

Получатели копий сообщения.

Примечание: Получатели скрытых копий (СК) в заголовке не указываются.

Subject: Review of staff assignments

Тема сообщения электронной почты.

Дата и время отправки сообщения электронной почты по часам компьютера отправителя.

MIME-Version: 1.0

Версия протокола MIME, использованная отправителем.

Content-Type: multipart/mixed;

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

X-Mailer: Microsoft Office Outlook, Build 12.0.4210

Сообщение отправлено с использованием Microsoft Office Outlook, версия сборки 12.0.4210.

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165

Почтовая программа (программное обеспечение MIME OLE), использованная отправителем.

Thread-Index: AcON3CInEwkfLOQsQGeK8VCv3M+ipA==

Этот заголовок используется для объединения нескольких сообщений в один поток. Например, в Microsoft Outlook эти сведения могут быть использованы в представлении беседы для поиска сообщений в рамках одного потока разговора.

Return-Path: [email protected]

Адрес отправителя сообщения.

Message-ID:

Номер, присвоенный сообщению сервером mail.litware.com в целях идентификации. Этот идентификатор всегда будет сопровождать сообщение.

Метка времени, которая добавляется в сообщение при его первом прохождении через сервер Microsoft Exchange.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: