[Разработка веб-сайтов, JavaScript, Программирование, .NET] Рабочий прототип секретного мессенджера

Автор Сообщение
news_bot ®

Стаж: 6 лет 4 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
09-Фев-2021 14:33


Доброго времени суток, друзья!
Хочу поделиться с вами результатами небольшого эксперимента.
Суть эксперимента заключается в использовании Web Cryptography API для шифрования отправляемых в чате сообщений.
Я исходил из предположения, что по-настоящему приватный чат можно реализовать либо при наличии полного контроля над клиентом, сервером и базой данных, либо при условии отправки на сервер зашифрованных данных.
По разным причинам, я выбрал второй вариант.
Код проекта находится здесь.
Демо можно посмотреть здесь (база данных по понятным причинам отключена).
Чат выглядит так:

Клиент реализован на ванильном JavaScript (для более широкого охвата аудитории), сервер реализован с помощью Express, в качестве базы данных используется облачная MongoDB, для взаимодействия с ней — Mongoose.
Для обмена сообщениями и на клиенте, и на сервере используется Socket.io.
При запуске приложения пользователю предлагается заполнить два поля: имя и секретный ключ. Секретный ключ генерируется (выводится в консоль) при нажатии соответствующей кнопки. Он имеет примерно такой вид: 0A9sJbvjSJOjH5PY. Опционально, данные пользователя можно сохранить в локальном хранилище.
Ключ используется для шифрования и дешифровки сообщений. Зашифрованные сообщения имеют примерно такой вид: GfTbL+JpFEUPnb96OEz7YqOV~C85B2xPf4kk3PYqhw/QFcu7e7l+8klk3XXhFiocdED0=. Пользователи должны использовать одинаковые ключи, в противном случае, выбрасывается DOMException.
Возможности чата:
  • Отправка/получение зашифрованных сообщений
  • Регистрация подключения/отключения пользователя
  • Отображение списка подключенных пользователей
  • Регистрация количества подключений
  • Возможность удаления сообщений отправившим их пользователем и т.д.

Проект находится на начальном этапе и представляет собой рабочий прототип, а не полноценное приложение.
Дополнительный функционал включает в себя сервис-воркера и настройки безопасности для сервера.
Буду рад любой форме обратной связи.
Благодарю за внимание и хорошего дня.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_vebsajtov (Разработка веб-сайтов), #_javascript, #_programmirovanie (Программирование), #_.net, #_javascript, #_programmirovanie (программирование), #_razrabotka (разработка), #_private, #_messenger, #_secret, #_chat, #_webcryptographyapi, #_socket.io, #_razrabotka_vebsajtov (
Разработка веб-сайтов
)
, #_javascript, #_programmirovanie (
Программирование
)
, #_.net
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 04-Июл 12:32
Часовой пояс: UTC + 5