Назад в библиотеку

Анализ требований и проектирование почтового клиента с поддержкой криптографических функций для мобильных устройств на базе Android ОС

Автор: Бердюкова С.С., Чернышова А.В.
Источник: Бердюкова С.С. Анализ требований и проектирование почтового клиента с поддержкой криптографических функций для мобильных устройств на базе Android ОС / С.С. Бердюкова, А.В. Чернышова // Информатика, управляющие системы, математическое и компьютерное моделирование в рамках VI форума Донецкой Народной Республики (ИУСМКМ–2020) / Донец. национал. техн. ун-т; – Донецк, 2020. – C. 70-76.

Аннотация

Бердюкова С.С., Чернышова А.В. Анализ требований и проектирование почтового клиента с поддержкой криптографических функций для мобильных устройств на базе Android ОС. Рассмотрены существующие почтовые клиенты для смартфонов. Выполнен обзор протоколов для работы с электронной почтой. Определены требования к создаваемому программному продукту.

Общая постановка проблемы

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

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

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

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

Обзор существующих мобильных почтовых клиентов

Были рассмотрены такие решения, как мобильные приложения Яндекс.Почта, Gmail, Samsung Email и BlueMail.

Во всех рассмотренных клиентах можно добавить адреса других почтовых ящиков (Яндекс и Gmail для выбора предлагают список из Яндекса, Mail.ru, Google, Outlook, Hotmail/Office 365, Yahoo и другая почта).

Интерфейс Яндекс.Почты для Android [10] практически полностью повторяет веб-вариант с учетом того, что эта версия для телефонных решений. Прямо из приложения можно зарегистрировать новый почтовый ящик. Есть возможность включения переводчика и «умных ответов» – небольших всплывающих окон под присланным письмом с вероятными вариантами ответа на присланное сообщение.

Интерфейс Gmail также, как и Яндекс, во многом повторяет свое веб-решение. Настроек самого приложения больше: можно выбрать, как будут выглядеть цепочки писем, настроить автомасштабирование и автопереход, выбор ответа по умолчанию (ответить всем или отправителю), а также настроить подтверждение действий для отправки, архивации и удаления. Благодаря глубокой интеграции Google-сервисов при совершении каких-либо действий с аккаунтом прямо в приложении можно управлять аккаунтом Google, а также вызывать (если установлены на телефоне) Google Контакты и Календарь. Также почтой поддерживается группировка писем по категориям, которую тоже можно настроить прямо из клиента. При написании самого письма возможно форматировать написанный текст.

Samsung Email [9] является стандартным (и предустановленным) почтовым клиентом телефонов одноименной компании. Для удобства обновлений приложение также предоставлено в Google Play Market. Помимо реализованных базовых функций, есть возможность гибкой настройки синхронизации почты – выбрать, какие папки необходимо синхронизировать, настроить интервал синхронизации или установить расписание, ограничить размер сообщений в обычном режиме сети и в роуминге. Также есть возможность разделения экрана в альбомной ориентации, тогда в левой половине будет располагаться список писем, в правой – содержимое выбранного письма.

В отличие от первых трех почтовых клиентов, поставляющих по большей части базовый набор функций (просмотр полученных сообщений, отправка сообщений, просмотр папок…), Blue Mail [7] предлагает куда больший спектр возможностей, таких, как добавление псевдонимов, создание подписи (от руки), широкие возможности управления папками и аккаунтами. Также в приложение встроены задачи и календарь. Это открывает широкие возможности для бизнес-планирования: прямо здесь можно создать список дел, связать дела с письмами и установить напоминания к некоторым задачам. Календарь синхронизируется с Google Calendar. Аккаунты можно добавлять, помимо других ящиков, и из iCloud, или же просто ввести свои адрес и пароль – клиент попытается автоматически обнаружить данные о сервере аккаунта. При создании писем также, как и в Gmail, возможно форматирование текста писем. Также преимуществом можно назвать поддержку Android Wear.

Обзор существующих почтовых протоколов

Простой протокол пересылки почты (SMTP – Simple Mail Transfer Protocol) определяет способ непосредственного перемещения почтового сообщения между хостами. Описан в RFC 821, последнее обновление – в RFC 5321. Является одним из наиболее часто используемых протоколов семейства TCP/IP.

Почта по протоколу SMTP посылается от клиента к серверу. Клиент запрашивает соединение с сервером. После успешного установления соединения сервер сообщает клиенту свое доменное имя. Ответ сервера о готовности к приему команд клиента служит сигналом к началу диалога, в котором клиент последовательно посылает серверу команды и ожидает ответы, либо подтверждающие исполнение команд, либо сообщающих о невозможности исполнения, либо содержащих информацию, запрошенную клиентом. Получатель использует порт 25. Завершение пересылки сообщения – строка, содержащая < CR > < LF >.

Сообщение может быть доставлено нескольким получателям хоста в одной транзакции, поскольку в нём допустимо указывать нескольких получателей. В конце транзакции отправитель может начать следующую транзакцию, либо завершить работу и закрыть соединение [2].

IMAP (англ. Internet Message Access Protocol) – протокол прикладного уровня для доступа к электронной почте. Базируется на транспортном протоколе TCP и использует, как правило, порт 143.

В IMAP есть возможность добавления сообщений в почтовый ящик. Протокол может работать со множеством почтовых ящиков (возможно даже иерархических). Поддерживает параллельный доступ к ящикам. Также может использовать офлайн-доступ для уменьшения времени соединения и используемого дискового пространства на сервере, позволяет осуществлять поиск писем на сервере. При использовании протокола есть возможность скачать часть письма [3].

POP3 – стандартный интернет-протокол прикладного уровня, используемый клиентами электронной почты для получения почты с удалённого сервера по TCP-соединению. Наряду с IMAP является распространённым интернет-протоколом для извлечения почты, практически все современные клиенты и серверы электронной почты поддерживают оба протокола. Работает с портом 110. Шифрование запрашивается после запуска протокола, с помощью либо команды STLS (если она поддерживается), либо POP3S, которая соединяется с сервером, используя TLS или SSL по TCP-порту 995.

В протоколе POP3 оговорены три стадии процесса получения почты: авторизация, транзакция, обновление. После того как сервер и клиент POP3 установили соединение, начинается стадия авторизации. На стадии авторизации клиент идентифицирует себя для сервера. Если авторизация прошла успешно, сервер открывает почтовый ящик клиента и начинается стадия транзакции. В ней клиент либо запрашивает у сервера информацию (например, список почтовых сообщений), либо просит его совершить определенное действие (например, выдать почтовое сообщение). На стадии обновления сеанс связи заканчивается [4].

Обзор криптографических средств для электронной почты

Система PGP (Pretty Good Privacy – довольно хорошая конфиденциальность) представляет собой полный пакет для электронной почты, обеспечивающий конфиденциальность, аутентификацию, цифровые подписи и сжатие. Является системой с открытым исходным кодом. PGP кодирует данные с помощью блочного шифра IDEA (International Data Encryption Algorithm – международный алгоритм шифрования данных), использующего ключи длиной 128 бит. Концептуально IDEA похож на DES/AES: производится смешивание разрядов в серии, однако детали реализации функций отличаются от DES и AES. Управление ключами происходит с помощью RSA, а для задач обеспечения целостности данных применяется MD5. В качестве хэш-функции PGP, помимо MD5, поддерживает ряд других функций: SHA-1, RIPEMD-160, SHA-256, SHA-384, SHA-512.

Система с названием S/MIME (Secure/MIME – защищенный MIME) описывается в RFC с 2632 по 2643. Она обеспечивает аутентификацию, целостность данных, секретность и проверку подлинности информации. Обладает неплохой гибкостью, поддерживает разнообразные криптографические алгоритмы.

S/MIME тесно связана с MIME: она позволяет защищать любые типы сообщений. Нет жесткой иерархии сертификатов, отсутствует единый центр управления, но вместо этого пользователи могут работать с набором доверительных якорей. До тех пор, пока сертификат может быть проверен по доверительному якорю, он считается корректным [5].

Система безопасности под названием SSL (Secure Sockets Layer – протокол защищенных сокетов) создает защищенное соединение между двумя сокетами, позволяющее клиенту и серверу договориться об используемых параметрах, затем провести аутентификацию сервера клиентом, организовать тайное общение и обеспечить защиту целостности данных. Можно сказать, что между прикладным и транспортным уровнями модели OSI появляется новый уровень, принимающий запросы от браузера и отсылающий их по TCP для передачи серверу. После установки защищенного соединения основная задача SSL заключается в поддержке сжатия и шифрования.

Стандарт TLS (Transport Layer Security – защита транспортного уровня) описан в RFC 5246. Был построен на третьей версии SSL. При создании TLS были внесены такие изменения, чтобы SSL-3 и TLS стали несовместимыми. Из-за этой несовместимости большинство браузеров применяют оба протокола, и TLS превращается обратно в SSL, если это необходимо. Это называется SSL/TLS [5].

Функциональные требования к приложению

После обзора вышеупомянутых почтовых клиентов и протоколов можно выделить такие требования для реализации:

С учетом этих требований были составлены диаграмма прецедентов и диаграмма классов приложения. Они показаны на рисунках 1 и 2 соответственно.

Рисунок 1 – Диаграмма классов проектируемого приложения

Рисунок 1 – Диаграмма классов проектируемого приложения

Рисунок 2 – Диаграмма прецедентов (Use Case)

Рисунок 2 – Диаграмма прецедентов (Use Case)

Как видно из диаграммы, в работе будут участвовать такие классы: DBAccess, в котором есть методы для создания и взаимодействия с базой для сохранения писем; классы протоколов, содержащие ключевые функции для работы с SMTP и IMAP/POP3; класс SocketIO, обеспечивающий работу с сокетами; класс Message, где реализованы функции отправки и приема писем; класс Crypto, где есть методы работы с системой PGP и шифрование/дешифрование писем; класс Settings, отвечающий за сохранение и применение настроек, заданных пользователем; класс Attachment, отвечающий за работу с прикрепленными файлами, и класс MyMail, представляющий собой ядро программы.

Нефункциональные требования к приложению

К нефункциональным относят требования к интерфейсу, производительности, удобству сопровождения, эксплуатации или расширяемости программного продукта. Можно выделить такие требования:

На основании этих требований были реализованы некоторые из окон приложения. Они предоставлены на рисунке 3.

Рисунок 3 – Экраны приложения: авторизация, просмотр писем, создание письма

Рисунок 3 – Экраны приложения: авторизация, просмотр писем, создание письма

Системные требования к приложению

Системные требования – требования, выдвигаемые как к аппаратному обеспечению (тип и частота процессора, объём оперативной памяти, объём жесткого диска…), так и к программному (тип и версия операционной системы, наличие установленных компонентов и сервисов, список разрешений для доступа к различным компонентам и т.д.). Для разрабатываемого клиента следует выдвинуть такие требования:

Требования к безопасности приложения

Выводы

В данной статье были проанализированы почтовые клиенты, представленные в Play Market. Благодаря анализу были сформированы основные требования к разрабатываемому мобильному приложению "Почтовый клиент с криптографической защитой", его интерфейсу и требования к безопасности. Основная задача приложения – работа с почтовым ящиком, отправка сообщения, поддержка прикрепления файлов, поддержка таких криптографических функций, как шифрование/дешифрование текста письма, использование электронно-цифровой подписи с использованием имеющихся ключей.

Литература

1. SMTP (Simple Mail Transfer Protocol) // Национальная библиотека им. Н. Э. Баумана [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://ru.bmstu.wiki/SMTP_(Simple_Mail_Transfer_Protocol). – Загл. с экрана.
2. RFC 5321 – Simple Mail Transfer Protocol // IETF [Электронный ресурс] – Электрон. дан. – 2019. – Режим доступа: https://tools.ietf.org/html/rfc5321. – Загл. с экрана.
3. RFC 3501 – INTERNET MESSAGE ACCESS PROTOCOL – VERSION 4rev1IMAP // IETF [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://tools.ietf.org/html/rfc3501. – Загл. с экрана.
4. RFC 1939 – Post Office Protocol – Version 3 // IETF [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://tools.ietf.org/html/rfc1939. – Загл. с экрана.
5. Таненбаум Э., Уэзеролл Д. Компьютерные сети. 5-е изд. – СПб.: Питер, 2012. – 960 с.: ил.
6. Android Manifest Permissions // Для разработчиков Android | Android Developers [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://developer.android.com/reference/android/Manifest.permission. – Загл. с экрана.
7. BlueMail – The Best Email Management App for Windows, Mac, Linux, Android, and iOS // Blue Mail [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://www.bluemail.me/. – Загл. с экрана.
8. Gmail // Google Play Market [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://play.google.com/store/apps/details?id=com.google.android.gm&hl=ru. – Загл. с экрана.
9. Samsung Email // Google Play Market [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://play.google.com/store/apps/details?id=com.samsung.android.email.provider&hl=ru. – Загл. с экрана.
10. Яндекс.Почта – Yandex.Mail // Google Play Market [Электронный ресурс] – Электрон. дан. – 2020. – Режим доступа: https://play.google.com/store/apps/details?id=ru.yandex.mail&hl=ru. – Загл. с экрана.