По мере распространения информационных технологий важным становится вопрос безопасности. Причем прорабатывать приходится различные аспекты и относительно разных разработок. Вот, к примеру, IMAP безопасность – что это? Насколько надёжным является Internet Message Access Protocol? Какие он имеет преимущества, зачем разрабатывался, какие существуют версии и механизм работы – вот краткий пересказ содержимого статьи, с которой вы сейчас знакомитесь.
Что такое IMAP?
Безопасность переписки важна в связи с тем, что в ней могут содержаться ценные сведения. Этот протокол используется на прикладном уровне для обеспечения доступа к данным электронной почты только тем лицам, которые должны получить его. Разработан он был на основе ТСР и для своих нужд использует 143 порт. IMAP даёт пользователю возможность работать с почтой, которая находится на каком-то центральном сервере. Программа, использующая данный протокол, совершает необходимые действия таким образом, чтобы создавалось впечатление, что вся корреспонденция находится на компьютере пользователя. При большом объеме пересылок может использоваться специальный IMAP сервер. Манипуляция письмами не требует постоянной пересылки к получателю файлов, в которых есть содержимое. Но это не единственный протокол, который используется в почтовых сервисах. Так, для отправки письма применяют SMTP, поскольку команда отправки в IMAP безопасность полноценно гарантировать не может. Имеются известные уязвимости.Почему был разработан протокол IMAP?
Он разрабатывался в качестве альтернативы РОР3. Всё началось из-за недостатков последнего. Так, в нём нет возможностей управлять, перемещать и хранить сообщения на сервере. Вот из-за этого и был разработан протокол IMAP, который предлагает возможность получать электронную почту в разных местах благодаря сохранению данных на удалённом сервере.Преимущества по сравнению с POP3
Почему стал использоваться именно этот протокол? Дело в том, что почта IMAP предлагает, кроме вышеперечисленных, ещё ряд преимуществ:
- Не разрывается соединение, пока активен пользовательский интерфейс.
- Сообщения загружаются только в случае наличия соответствующих требований со стороны клиента.
- Может осуществлять одновременный доступ нескольких людей, при этом каждый из них сможет следить за всеми внесёнными изменениями.
- Клиент может создавать, изменять название и удалять ящики, а также перемещать сообщения между ними. Также, при наличии расширения IMAP 4 Access Control List, можно изменять права доступа.
- Можно отслеживать состояние самого сообщения (было прочитано, удалено, отправлен ответ и другое). Данные о таких действиях называются флагами и они храниться на серверах.
- Поиск сообщений всегда осуществляется на сервере и существует явный механизм расширения.
Сообщения и их атрибуты
IMAP безопасность предусматривает работу исключительно с сообщениями, и для них не нужны какие-либо пакеты со специальными заголовками. В каждом из них есть свои атрибуты. Они могут определяться индивидуально или вместе с другими. На данный момент существует шесть версий протоколов IMAP, но используется почти всегда только последняя из них.UID
Каждое сообщение получает свой 32-битный код. К нему добавляется уникальный идентификатор. Вместе они образуют 64-битную последовательность, которая необходима для идентификации сообщения. Вот такая IMAP безопасность. Чем позднее оно пришло, тем большее значение имеет UID. Этот параметр используется в виде кода отклика во время выбора почтового ящика. Он не изменяется во время одной сессии или между ними. Если технические условия требуют редактирования данного параметра, то UID обязательно должен быть больше, чем ранее. Для передачи данных используется всё тот же порт IMAP.
Порядковый номер сообщения
Он начинается с единицы. Номер каждого последующего сообщения увеличивается на 1, по сравнению с предыдущими. Важное отличие от почтового ящика в том, что он может меняться во время одной сессии подключения: к примеру, когда совершенно удаление письма.Флаги сообщения
Этот атрибут выглядит как список, в котором есть нуль или большее количество именованных лексем, которые соотнесены с основной информацией. В IMAP 4.1 было внедрено два типа флагов. Они могут действовать временно (на протяжении сессии), или быть постоянными. Системным называют тот флаг, имя для которого определяется в спецификации протокола. Все они обязательно должны начинаться с символа \. На данный момент были определены такие системные флаги:- \seen – сообщение прочитали;
- \answered – отправили ответ;
- \recent – сообщение появилось на протяжении текущей сессии;
- \draft – было отмечено как черновой вариант;
- \flagged – пользователь пометил данное сообщение как важное;
- \deleted – удалённое.
Внутренние дата и время сообщения
Как определяется, какие величины должны быть в этих параметрах? Если сообщение доставлялось с помощью протокола SMTP, то берётся время и дата конечного адресата. Если применяется команда копирования, то используются параметры отправителя. Можно задать и своё время, и дату – для этого следует применить команду append.
Взаимодействие клиента и сервера
При использовании IMAP происходит установление связи за принципом клиент-сервер. Так, первый от себя посылает все полученные команды, а второй шлёт запрошенные данные, а также информацию про выполнение запроса. Все сообщения обладают формой строк, которая завершается специальной последовательностью. Выполнение всех процедур начинается благодаря командам клиента. Их распознают благодаря специальному префиксу-идентификатору (в качестве которого выступает краткая буквенно-цифровая строка), который называется меткой. Каждая команда имеет свой уникальный номер.Может быть два случая, когда данные, отправленные клиентом, не являются законченными. Первый – аргумент команды снабжен кодом, что ранее определил число октетов, что есть в троке. Второй – необходим отклик от сервера. В обоих случаях клиент получает запрос на продолжение команды, который обязательно начинается с такого символа как +. В случае начала поступления определённого типа данных должна быть завершена передача, иначе не можно будет начать новый процесс. Чтение, разбор, выделение параметров и передача серверу данных осуществляется протокольным приемником. Когда обработка команды завершена, то клиенту посылается отклик с данным уведомлением. Информация, что не указывает на завершение выполнения инструкции, снабжается префиксом *. Называется она непомеченным откликом. Практикуется отправка данных серверов в качестве ответа на запрос клиента или по своей инициативе. Их формат не зависит от причины, почему они были посланы.
А что можно сказать про популярные сервисы, вроде Gmail? IMAP настройки простым пользователям недоступны, но их можно произвести, если отправлять письмо через специальный клиент. Но это сугубо только на выходящие письма.
А для чего собственно необходимы отклики? Они сообщают про успешное/неудачное выполнение информации. Отклик всегда применяет ту самую метку, что использовала команда клиента, которая запустила процедуру. Поэтому возможно многопоточность передачи данных, и они не будут перепутаны сами с собой. Для выяснения ситуации было разработано три вида отклика от сервера:
- Успешное выполнение.
- Неудача.
- Протокольная ошибка IMAP (возникает в случаях, когда применена неизвестная команда, или сервер распознал, что есть проблема с синтаксисом).
Особенность клиента в том, что он всегда должен быть готов обработать любой отклик, что поступает к нему. Данные обязаны быть записаны таким образом, чтобы клиент смог использовать их непосредственно, без необходимости посылать серверу уточняющие запросы. Увидеть подобное можно в Gmail. IMAP настройки могут быть отредактированы или изменены благодаря почтовым клиентам с широким функционалом.