Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Разработка мобильного приложения для конфиденциальной передачи информации

Информационные технологии
12.05.2026
3
Поделиться
Библиографическое описание
Еськин, Н. С. Разработка мобильного приложения для конфиденциальной передачи информации / Н. С. Еськин. — Текст : непосредственный // Молодой ученый. — 2026. — № 19 (622). — С. 101-103. — URL: https://moluch.ru/archive/622/135107.


Современные мессенджеры обеспечивают сквозное шифрование (end-to-end encryption, E2E) канала связи, однако доступ к ключам шифрования, как правило, контролирует разработчик сервиса. Кроме того, мессенджер собирает метаданные: время отправки, адресаты, частота обращений. Для сценариев, где требуется верифицируемая конфиденциальность без доверия к третьей стороне, указанный подход является недостаточным.

Существующие офлайн-шифраторы, такие как S. S. E. или AxCrypt, не предоставляют встроенного механизма обмена ключами и не обеспечивают прямую секретность. Мессенджеры с открытым протоколом, например Signal, требуют наличия сервера и регистрации, что ограничивает применение в изолированных условиях.

Цель работы — разработать мобильное приложение, которое реализует полный цикл конфиденциальной переписки: обмен ключами, шифрование, передачу шифротекста через любой канал и расшифровку — без выхода в сеть и без зависимости от сторонних серверов.

Для обоснования необходимости разработки проведён сравнительный анализ шести решений: S. S. E., Cryptomator, AxCrypt, Signal, Telegram, WhatsApp. Результаты сведены в таблицу 1.

Таблица 1

Сравнительный анализ существующих решений

Параметры сравнения

Программные решения

S. S. E.

Cryptomator

AxCrypt

Signal

Telegram

WhatsApp

МП КПИ

Работа без разрешения INTERNET

+

+

+

Встроенный обмен ключами (ECDH)

+

+

+

+

Прямая секретность (forward secrecy)

+

+

+

Передача через произвольный канал

+

+

Открытый исходный код

+

+

+

+

Шифрование текста сообщений

+

+

+

+

+

Из таблицы 1 следует, что ни одно из рассмотренных решений не удовлетворяет одновременно всем критериям: работа без INTERNET-разрешения, встроенный обмен ключами ECDH, прямая секретность, поддержка произвольного канала передачи и открытый исходный код. Совокупность этих требований определяет необходимость разработки МП КПИ.

МП КПИ реализует следующий пользовательский сценарий. Два абонента устанавливают приложение на устройства под управлением Android. Каждый генерирует пару ключей ECDH (алгоритм X25519, RFC 7748 [1]). Публичные ключи передаются через любой канал — мессенджер, электронную почту или QR-код. Приложение вычисляет общий секрет и формирует корневой ключ с помощью HKDF (RFC 5869 [2]). Далее абонент вводит текст сообщения, приложение шифрует его по алгоритму AES-256-GCM (NIST SP 800–38D) и передаёт шифротекст в системный диалог Intent.createChooser для отправки через любое установленное приложение.

Прямая секретность обеспечивается ротацией ключей. После каждого сообщения корневой ключ обновляется: новый ключ вычисляется как HKDF-Expand(текущий ключ, «ratchet»||N), где N — порядковый номер сообщения. Компрометация текущего ключа не раскрывает ключи предыдущих сообщений.

Ключевой материал хранится в Android Keystore — защищённом аппаратном хранилище, реализованном в доверенной среде исполнения (TEE или StrongBox). Извлечение ключей из Keystore средствами ОС невозможно. Данные пользователя (история переписки, публичные ключи контактов) сохраняются в Jetpack DataStore с шифрованием через Google Tink AEAD.

Манифест приложения не содержит разрешения android.permission.INTERNET. На уровне ядра ОС (netfilter/eBPF) это блокирует все сетевые сокеты процесса вне зависимости от логики приложения. Данное ограничение верифицируемо: любой пользователь может убедиться в его наличии, просмотрев манифест APK.

Приложение разработано для платформы Android. Выбор платформы обусловлен её долей на рынке мобильных ОС (более 70 % устройств по данным за 2024 год [4]), открытостью экосистемы и наличием Android Keystore API, обязательного для безопасного хранения криптографических ключей.

В качестве языка программирования выбран Kotlin. Сравнительный анализ языков представлен в таблице 2.

Таблица 2

Сравнение языков программирования для Android-разработки

Критерий сравнения

Язык программирования

Java

Kotlin [3]

C++

Dart

Python

Нативная поддержка Android SDK

+

+

+/–

Встроенная защита от нулевых ссылок

+

+

+

Поддержка корутин

+

+/–

Прямой доступ к Android Keystore API

+

+

+

Официальный язык Android (с 2019)

+

Kotlin является официальным языком разработки для Android с 2019 года [5]. Встроенная система типов с поддержкой null-safety устраняет целый класс ошибок на этапе компиляции. Корутины (Kotlin Coroutines) обеспечивают неблокирующее выполнение криптографических операций без создания явных потоков.

Пользовательский интерфейс реализован на Jetpack Compose — декларативном UI-фреймворке, являющемся официальной рекомендацией Google для новых Android-проектов. Все экраны приложения защищены флагом FLAG_SECURE, запрещающим создание скриншотов и отображение содержимого в системном переключателе задач. Буфер обмена автоматически очищается через 30 секунд после расшифровки сообщения.

Криптографический стек состоит из трёх компонентов: Android Keystore (хранение ключей в TEE), Google Tink 1.20.0 (AEAD-шифрование локального хранилища) и Bouncy Castle 1.83 (поддержка X25519 и HKDF, доступная начиная с версии 1.57).

Для проверки корректности работы МП КПИ применялось функциональное тестирование методом чёрного ящика. Тест-кейсы охватывали полный жизненный цикл сообщения: генерацию ключевой пары, обмен публичными ключами, шифрование, передачу шифротекста, расшифровку и сверку с исходным текстом.

Корректность криптографических примитивов проверялась на тестовых векторах из RFC 7748 (X25519) и NIST SP 800–38D (AES-GCM). Все вычисленные значения совпали с эталонными, что подтверждает корректность реализации алгоритмов.

Дополнительно проверялась невозможность сетевого взаимодействия: при попытке установить TCP-соединение из кода приложения операционная система возвращала исключение SecurityException, что соответствует ожидаемому поведению при отсутствии разрешения INTERNET.

Разработано мобильное приложение для конфиденциальной передачи информации (МП КПИ), реализующее криптографический стек ECDH (X25519) + AES-256-GCM + HKDF с хранением ключевого материала в Android Keystore. Приложение работает без разрешения INTERNET, что на уровне ядра ОС исключает несанкционированную сетевую активность. В отличие от рассмотренных аналогов, МП КПИ обеспечивает одновременно: встроенный обмен ключами, прямую секретность, поддержку произвольного канала передачи и верифицируемое отсутствие сетевого доступа.

Литература:

  1. RFC 7748: Elliptic Curves for Diffie-Hellman Key Agreement. — Текст: электронный // IETF: [сайт]. — URL: https://datatracker.ietf.org/doc/html/rfc7748 (дата обращения: 07.04.2026).
  2. HMAC-based Extract-and-Expand Key Derivation Function (HKDF). — Текст: электронный // IETF: [сайт]. — URL: https://datatracker.ietf.org/doc/html/rfc5869 (дата обращения: 07.04.2026).
  3. Kotlin Documentation. — Текст: электронный // kotlinlang.org: [сайт]. — URL: https://kotlinlang.org/docs/home.html (дата обращения: 07.04.2026).
  4. StatCounter, G. S. Mobile OS Market Share / G. S. StatCounter. — Текст: электронный // StatCounter: [сайт]. — URL: https://gs.statcounter.com/os-market-share/mobile/ (дата обращения: 07.04.2026).
  5. First-party Android development: Kotlin. — Текст: электронный // developer.android.com: [сайт]. — URL: https://developer.android.com/kotlin/first (дата обращения: 07.04.2026).
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №19 (622) май 2026 г.
Скачать часть журнала с этой статьей(стр. 101-103):
Часть 2 (стр. 79-149)
Расположение в файле:
стр. 79стр. 101-103стр. 149
Похожие статьи
Сравнение и анализ приложений чата с точки зрения конфиденциальности и безопасности на основе шифрования
Разработка мобильного приложения «Путеводитель ЗабКЛИ»
Разработка мобильного приложения для координации деятельности сотрудников организации
Разработка мобильного приложения конвертирования валюты в криптоактивы при помощи технологии блокчейн
Кибер-коммуникации. Особенности мессенджера Telegram
Разработка мобильного приложения для агрегирования информации о сортировке и переработке твердых бытовых отходов
Особенности разработки мобильных приложений для Android
Разработка мобильного приложения для составления, выполнения и отладки схем алгоритмов в соответствии с государственным отраслевым стандартом
Мобильное приложение для искателей приключений: проектирование и разработка
Мобильное приложение для поиска и планирования мероприятий

Молодой учёный