Статьи Заголовки электронных писем [ спецификация ARPA (RFC-822) и MIME (RFC-1341) ]

Discussion in 'Статьи' started by makag, 21 Mar 2011.

  1. makag

    makag Staatsanwalt

    Joined:
    27 Sep 2009
    Messages:
    478
    Likes Received:
    564
    Reputations:
    98
    Заголовки электронных писем [ спецификация ARPA (RFC-822) и MIME (RFC-1341) ]

    Вместо предисловия. Все началось с заказа на взлом электронной почты одного предприятия. Поиск дополнительной информации посредством поисковиков дал нулевой результат. Единственной зацепкой был фотоальбом в соц. сети "Мой мир", в котором лежали фотографии комплектующих для производства пластиковых окон и дверей.
    Был зарегестрирован сайт на бесплатном хостинге, на ту же тематику, по электронной почте завязалась "деловая" переписка с предприятием "целью". Изучением заголовков в письмах-ответах установлено, что о почтовых программах на предприятии имели лишь смутное представление.
    [​IMG]
    Посему было принято решение ловить на "фейк". В очередной раз отправлено письмо с ссылкой на "прайс", а на самом деле фейк, с последующей переадресацией на настоящий прайс-лист. Финита ля комедия, дело сделано. :D
    В ходе выполнения такого заказа я заинтересовался, что же именно означают конкретные поля в заголовках писем. Об этом и статья.

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

    1. Вступление.
    1.1. Электронная почта в Internet.

    Электронная почта - один из важнейших информационных ресурсов Internet. Она является самым массовым средством электронных коммуникаций. Любой из пользователей Internet имеет свой почтовый ящик в сети. Если учесть, что через Internet можно принять или послать сообщения еще в два десятка международных компьютерных сетей, некоторые из которых не имеют on-line сервиса вовсе, то становится понятным, что почта предоставляет возможности в некотором смысле даже более широкие, чем просто информационный сервис Internet. Через почту можно получить доступ к информационным ресурсам других сетей. Хорошим примером может служить доступ к архивам сети BITNET

    1.2. Структура электронного письма.
    Электронное письмо состоит из следующих частей:
    - заголовков SMTP-протокола, полученных сервером. Эти заголовки могут включаться, а могут и не включаться в тело письма в дальнейшем, так что возможна ситуация, когда сервер обладает большей информацией о письме, чем содержится в самом письме. Так, например, поле RCPT TO указывает получателя письма, при этом в самом письме получатель может быть не указан.
    - самого письма.

    Непосредственно письмо в свою очередь, состоит из следующих частей, разделённых пустой строкой:
    - заголовков письма, иногда называемых по аналогии с бумажной почтой конвертом (англ. envelope).
    - тело письма. В теле письма находится, собственно, текст письма.

    Формат почтового сообщения был определен в документе RFC-822 ((Standard for ARPA Internet Text Message, опубликован в 1982 г.). Это довольно большой документ объемом в 47 страниц машинописного текста.



    2.1. Спецификация ARPA (RFC-822)

    Минимально необходимыми являются следующие поля "Date:«, »From:«, »Cc:" и/или "To:"

    Все возможные поля заголовка, согласно стандарту ARPA (RFC-822):

    Code:
    Date:		27 Aug 76 0932
    	From:		Ken Davis <[email protected]>
    	Subject:		Re: The Syntax in the RFC
    	Sender:		KSecy@Other-host
    	Reply-To:		[email protected]
    	To:			George Jones <[email protected]>
    	cc:			Important folks:
    				Tom Softwood <[email protected]>,
    				"Sam Irving"@Other-Host;,
    				Standard Distribution:
    				/main/davis/people/standard@Other-Host
    	Comment:		Sam is away on bisiness.
    	In-Reply-To:	<[email protected]>, George`s message
    	X-Special-action: This is a sample of user-defined field-	
    				names.
    	Message-ID:	<4331.629.XYzi-What@Other-Host
    
    Описание каждого из полей:
    Date: — назначение данного заголовка очевидно: он указывает дату и время отправки письма. Если этот заголовок не был создан на компьютере отправителя, то, возможно, его добавит почтовый сервер или какой-нибудь другой компьютер, через который пройдет письмо. Его ни в коем случае нельзя принимать за непреложную истину, и дело даже не в возможности подделки — в мире чудовищно большое количество компьютеров с неверно идущими часами;

    From: — указывает адрес отправителя;

    To: — адрес(а) получателя(ей). Поле "To:" не обязано содержать адрес получателя, а также может содержать адреса нескольких получателей;

    Cc: (Carbon Copy) — адресация копий, этот заголовок является расширением поля «To», он указывает дополнительных получателей письма (получатель «To» видит список всех «Cc»). Различий между заголовками «To» и «Cc», в сущности, нет, если не считать, что некоторые почтовые программы рассматривают их по-разному, генерируя ответ на сообщение.

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

    Message-Id: — уникальный идентификатор письма, присваиваемый каждому сообщению, — чаще всего первым почтовым сервером, который встретится у него на пути, либо же почтовым клиентом. Обычно он имеет форму "[email protected], где «abrakadabra» набор произвольных символов, а вторая часть "domain.ru" — имя машины, присвоившей идентификатор. Иногда, но редко, «abrakadabra» включает в себя имя отправителя. Message-Id используется программами доставки почты во избежание "зацикливания" письма;

    Bcc: (Blind Carbon Copy) — слепая/скрытая копия (получатели не подозревают о других получателях из поля «Bcc»). Скрытые копии очень популярны среди спамеров, поскольку многие неопытные пользователи оказываются сбитыми с толку, получив письмо, которое, вроде бы, не было им адресовано;

    Subject: — тема письма (наличие Re: означает ответ; Fwd: — переадресацию). Почтовый стандарт допускает наличие только латинских символов (US-ASCII) в поле «Subject» поэтому, несмотря на то, что многие пользователи заполняют данное поле по-русски, этого делать не рекомендуется. Нормальная ситуация — когда написанная по-русски тема письма при отправке перекодируется почтовой программой отправителя в 7-битную base64 с указанием языковой кодировки, а почтовая программа получателя декодирует тему письма в читаемый вид.

    Reply-To: — адрес для ответов. Несмотря на то, что этот заголовок имеет множество способов цивилизованного применения, он также используется спамерами для отведения удара от себя. Может быть, какой-нибудь наивный спамер и захочет собирать ответы на свои письма и укажет верный заголовок "Reply-to:", но большинство указывает там либо несуществующий адрес, либо адрес невинной жертвы;

    In-Reply-To: — показывает, что сообщение относится к типу "ответ на ответ";

    Comments: — означает комментарий. Этот заголовок не является стандартным, а потому может содержать любую информацию. Подобные заголовки добавляются некоторыми почтовыми программами для идентификации отправителя, но часто прописывается вручную спамерами, так что относиться к нему следует с осторожностью;

    Status: — статус письма (новое, прочитанное);

    Apparently-To: — эти заголовки нетипичны для нормальных сообщений, они обычно являются признаком массовой рассылки. В настоящее время для массовых рассылок используется программное обеспечение, достаточно "умное", чтобы не плодить гигантские списки из этих заголовков;

    Organization: — абсолютно свободный заголовок, обычно содержащий название организации, через которую отправитель сообщения получает доступ к сети. Отправитель, как правило, контролирует этот заголовок, поэтому там вполне может быть что-то вроде ЗАО "Рога и Копыта";

    Priority: — исключительно свободный заголовок, устанавливающий приоритет сообщения. Большинство программ его игнорируют.

    Errors-To: — указывает адрес для отсылки автоматически генерируемых сообщений об ошибке, таких как "нет такого пользователя".

    Стандарт RFC-822 — сильно устарел. Он был разработан для обмена текстовыми сообщениями. С момента опубликования стандарта возможности аппаратных средств и телекоммуникаций ушли далеко вперед. На смену ему пришел стандарт MIME (RFC-1341).

    2.2. Спецификация MIME (RFC-1341).
    Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных.


    Пример заголовка, согласно стандарту MIME (RFC-1341):

    Code:
    From [email protected] Mon Mar 21 02:04:43 2011
    Return-path: <[email protected]>
    Received: from [96.118.147.161] (port=45090 helo=pro)
    	by smtp6.mail.ru with asmtp 
    	id 1Q1Rfi-0003lN-00
    	for [email protected]; Mon, 21 Mar 2011 02:04:30 +0300
    Message-ID: <D5C74EF0126641769625669A1D6DA381@pro>
    Reply-To: =?koi8-r?B?79TL0tnUy8kgTWFpbC5SdQ==?= <[email protected]>
    From: =?koi8-r?B?79TL0tnUy8kgTWFpbC5SdQ==?= <[email protected]>
    To: <[email protected]>
    Subject: =?koi8-r?B?98HNINDSydvMwSDGzNzbLc/Uy9LZ1MvBIQ==?=
    Date: Mon, 21 Mar 2011 01:08:14 -1200
    Organization: =?koi8-r?B?79TL0tnUy8kgTWFpbC5SdQ==?=
    MIME-Version: 1.0
    Content-Type: multipart/related;
    	Type="multipart/alternative";
    	boundary="----=_NextPart_000_0000_01CBE764.746F7B00"
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Mailer: Microsoft Outlook Express 6.00.2900.5512
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
    X-Spam: Not detected
    X-Mras: Ok
    
    Остановимся подробнее на форме и назначении полей, определяемых стандартом.

    Поле версии MIME (MIME-Version). Поле версии указывается в заголовке почтового сообщения и позволяет определить программе рассылки почты, что сообщение подготовлено в стандарте MIME.
    Формат поля выглядит как:
    Code:
     MIME-Version: 1.0 
    Поле версии указывается в общем заголовке почтового сообщения и относится ко всему сообщению целиком. Здесь уместно отметить, что в отличие от стандарта RFC822, стандарт MIME позволяет перемешивать поля заголовка сообщения с телом сообщения. Поэтому все поля делятся на два класса: общие поля заголовка, которые записываются в начале почтового сообщения и частные поля заголовка, которые относятся только к отдельным частям составного сообщения и записываются перед ними.

    Поле типа содержания тела почтового сообщения (Content-Type)

    Поле типа используется для описания типа данных, которые содержатся в теле почтового сообщения. Это поле сообщает программе чтения почты какого сорта преобразования необходимы для того, чтобы сообщение правильно проинтерпретировать. Эта же информация используется и программой рассылки при кодировании/декодировании почты. Стандарт MIME определяет семь типов данных, которые можно передавать в теле письма: текст (text); смешанный тип (multipart); почтовое сообщение (message); графический образ (image); аудио информация (audio); фильм или видео (video); приложение (application). Общая форма записи поля выглядит как:

    Code:
    Content-Type:= type "/" subtype *[";" parameter]
            type :=    "application"     / "audio"
    		/ "image"           / "message"
    		/ "multipart"       / "text"
    		/ "video"           / x-token
            x-token := <Два символа "X-", за которыми без пробела
    		    следует последовательность любых символов>
    	subtype := token
            parameter:= attribute "=" value
            attribute:= token
    	value := token / quoted-string
    	token := 1*<любой символ кроме пробела и управляющего символа,
    	            или tspecials>
            tspecials:=  "(" /")" / "<" / ">" / "@"  ; Обязательно
    		 /  "," / ";" / ":" / "\" / <">  ; должны быть,
    		 /  "/" / "[" / "]" / "?" / "."  ; заключены в
    		 /  "="                          ; кавычки.
    
    Типы описания нетекстовой информации. Таких типов имеется четыре:

    * "image" для описания графических образов. Наиболее часто используются файлы форматов GIF и JPEG.
    * "audio" для описания аудио информации. Для воспроизведения сообщения данного типа требуется специальное оборудование.
    * "video" для передачи фильмов. Наиболее популярным является формат MPEG.
    * "application" для передачи данных любого другого формата, обычно используется для передачи двоичных данных для последующего промежуточного преобразования. Так если на машине стоит видео-карта с 512Kb памяти, а графика подготовлена в 256 цветах, то сначала ее следует преобразовать и здесь может помочь тип "application". Основной подтип данного типа - "octet-stream", но существуют "ODA" и "Postscript".

    В настоящее время полный перевод спецификации MIME на русский язык отсутствует. Ознакомиться с частичным переводом можно по адресу http://webi.ru/webi_files/26_15_f.html


    3. Вместо заключения.

    Чтение заголовков писем может быть полезным - как в случае "нападения", так и в случае "защиты" от атак недоброжелателей. Не пренебрегайте возможностью получить капельку дополнительной информации. ОБращайте внимания на детали ;)

    При подготовке статьи были использованы материалы:


    http://hostinfo.ru > заголовки e-mail стандарта RFC-822

    http://citforum.ru/ > Организация и администрирование почтовых и файловых серверов Internet

    http://webi.ru > Неполный русский перевод спецификации RFC 1521 "MIME"

    А также материалы с персонального сайта Кунегина С.В.

    Работа с сайта Кунегина С.В. на тему "Электронная почта: функционирование сервиса электронной почты. Основные почтовые стнадарты: Mime, IMAP4, LDAP и др. Обеспечение защиты электронной почты." будет полезна всем начинающим пользователям, которым интересен данный вопрос. Ссылка:
    Code:
     http://depositfiles.com/files/0jorimjkl  
    Статья написана для antichat.ru/ При копировании просьба указывать источник.
     
    #1 makag, 21 Mar 2011
    Last edited: 24 Mar 2011
    4 people like this.
  2. AnGeI

    AnGeI Elder - Старейшина

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Довольно интересно, начинающим в самый раз.
    Было бы еще интересно про шифрование почты прочесть.
     
    2 people like this.
  3. _xzer0

    _xzer0 Member

    Joined:
    28 Jun 2011
    Messages:
    28
    Likes Received:
    5
    Reputations:
    0
    Автор , спасибо вполне стоящая статья , так же хотел бы почитать о шифровании почты , извиняюсь что повторяюсь за AnGeI
     
    1 person likes this.
  4. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    Думаю любой человек слышавший про вики смог бы написать такую статью менее чем за 40 минут.
    Но все равно спасибо =)

    Надо было указать что mail.ru раньше содержала xss благодаря передачи даты =)
     
    1 person likes this.
  5. makag

    makag Staatsanwalt

    Joined:
    27 Sep 2009
    Messages:
    478
    Likes Received:
    564
    Reputations:
    98
    Написал все, что узнал сам, рыская в интернете по интересующему вопросу.
    Любые дополнения я думаю поприветствуются, их можно было бы впихнуть в пост AnGeI'a, в виде продолжения статьи
     
  6. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    Вообше-то думал тема сисек будет раскрыта, но нет :)))))
    чисто как мануал - не плохо.

    Только вот кому они нужны - если человек не знает это они из себя представляют?
    Лично я смотрю RFC только для того, чтоб выяснить хотябы предлизительные кординаты отправителя... есть еще толк от заголовка?
     
  7. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    1) Новорожденные почтовики часто упускают там защиту
    2) Подмена E-Mail =)
    3) Спамм...
     
  8. B1t.exe

    B1t.exe Elder - Старейшина

    Joined:
    6 Nov 2006
    Messages:
    1,020
    Likes Received:
    128
    Reputations:
    23
    - и какая там защита может быть ?
    - подмена - это понятно (с IP адресом смотрю уже)
    - а спам с каким боком относится с RFC ?
     
  9. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Можно как-то влиять на заголовки, изменять добавлять, есть атаки на заголовки ?