Проекты

FedChat: чат с асимметричным шифрованием

Работа призёра конкурса проектов и исследований «Инженеры будущего» Открытой городской научно-практической конференции «Инженеры будущего» в секции «Информационные технологии, программирование, прикладная математика, социальный инжиниринг»

Направление работы: Инженеры
Авторы работы: ГБОУ Школа № 548 «Царицыно»
Предметы: Информатика
Классы: 10 класс
Мероприятия: Конкурс проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» 2021 года

Актуальность

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

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

Цель

Разработать и опубликовать защищённый многопользовательский чат с открытым исходным кодом.

Задачи

  1. Изучить необходимую теорию для создания проекта.
  2. Спроектировать модель опыта взаимодействия (UX).
  3. Спроектировать интерфейс пользователя (UI).
  4. Написать серверную часть проекта.
  5. Подключить к приложению базы данных.
  6. Написать приложение под Android.
  7. Провести тестирование всех частей проекта.

Оснащение и оборудование, использованное при создании работы

  • Персональный компьютер
  • Сервер
  • Тестирующее устройство (смартфон) на Android

Описание

Проект написан на языке программирования Java для мобильных устройств с операционной системой Android. Для написания серверной части проекта использовалась интегрированная среда разработки IntelliJ IDEA Community Edition. Для создания клиентской части использовалась IDE Android Studio. Серверная часть использует класс ServerSocket для обеспечения связи между клиентами по всемирной сети Интернет. Также приложение поддерживает многопоточность, необходимую для эффективной реализации Android-приложений.

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

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

Дизайн чата выполнен в RecyclerView, эффективном инструменте для отображения списков. Также XML-файлы выполнены с помощью ConstraintLayout.

Для общения в секретном чате реализуется асимметричное шифрование по алгоритму RSA с 4096-битными ключами.

Результаты работы/выводы

При разработке приложения использовался криптографический протокол MTProto, была подключена библиотека TDLib и реализованы многопоточность
и работа с сетью. Как результат – мобильное приложение, которое позволит людям общаться в чатах, зная, что их персональные данные надёжно защищены.

Перспективы использования результатов работы

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