Децентрализованный крипточат (командный проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 10:40, 5 марта 2018; Gamajun (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Компания SolidSoft
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-3



Что это за проект?

Проект направлен на разработку децентрализованного мессенджера с PFS и возможностью отказа от авторства.

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

В рамках проекта предлагается разработать полностью децентрализованный мессенджер, в котором нужно реализовать наиболее востребованные функции (PFS, perfect forward secrecy или защита от чтения назад, при которой компрометация долговременных ключей шифрования не позволяет расшифровать ранее отправленные сообщения), децентрализованное хранение пользовательского каталога, и схему установления отношения доверия между клиентами. В идеале реализацию выполнить в виде chrome app или js-приложения, которое можно запускать на десктопах и мобильных устройствах без переписывания кода под каждую платформу (см. Signal).

Чему научатся студенты? Что самое интересное в проекте?

1) Как устроены современные мессенджеры, чем они отличаются друг от друга, в том числе с точки зрения протоколов.

2) Как создавать распределенные приложения.

Организация работы (Как студенты будут работать в команде?)

2-3 (до 4), распределение задача - по компонентам. Проектная работа с трекингом задач через gitlab.

Компоненты (Из каких частей состоит проект?)

Транспорт - транспортная абстракция поверх P2P топологии

Криптопротокол - вариант реализации mpOTR протокола

UI - интерфейс, который в том числе отвечает за contact management, trust management

Какие будут использоваться технологии?

Chrome API, JavaScript, также возможен другой (обоснованный) выбор технологического стека.

Какие начальные требования?

Знакомство с JavaScript, WebSockets, HTTP, базовыми криптографическими примитивами.

Темы вводных занятий

Почему миру нужен ещё один криптомессенджер.

Критерии оценки

4 - работает P2P, обмен сообщениями, регистрация новых контактов

6 - trust management, как верифицировать, что новый контакт именно тот, за кого он себя выдаёт

8 - работает обмен файлами через P2P

+2 бонус за user study на нескольких десятках человек (друзья, коллеги по курсу, знакомые - порядка 15-20 человек)

+2 бонус за поддержку стриминга аудио

+1 бонус за кроссплатформенность

+1 бонус за публикацию проекта и привлечение независимых пользователей и user study на них (также 15-20 независимых пользователей)

Похожие проекты

https://signal.org/

https://tox.chat/

https://wire.com/en/

Контактная информация

Денис Гамаюнов

Почта: gamajun собака gmail.com

Контакт в Tg: @jamadharma

Для выполнения проекта создайте приватный репозиторий в BitBucket или GitHub, и добавьте в collaborators ментора:

- BitBucket: jamadharma

- GitHub: jama-dharma