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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Уточнение критериев)
Строка 13: Строка 13:
 
В настоящее время подавляющее большинство защищенных мессенджеров завязаны на существование третьей доверенной стороны, в качестве которой обычно выступает "поставщик сервиса". Например, в мессенджере Telegram доверенной стороной является сервераная часть системы. Аналогично в случае Signal.
 
В настоящее время подавляющее большинство защищенных мессенджеров завязаны на существование третьей доверенной стороны, в качестве которой обычно выступает "поставщик сервиса". Например, в мессенджере Telegram доверенной стороной является сервераная часть системы. Аналогично в случае Signal.
  
В рамках проекта предлагается разработать полностью децентрализованный мессенджер, в котором нужно реализовать наиболее востребованные функции (PFS), децентрализованное хранение пользовательского каталога, и схему установления отношения доверия между клиентами. В идеале реализацию выполнить в виде chrome app или js-приложения, которое можно запускать на десктопах и мобильных устройствах без переписывания кода под каждую платформу (см. Signal).
+
В рамках проекта предлагается разработать полностью децентрализованный мессенджер, в котором нужно реализовать наиболее востребованные функции (PFS, perfect forward secrecy или защита от чтения назад, при которой компрометация долговременных ключей шифрования не позволяет расшифровать ранее отправленные сообщения), децентрализованное хранение пользовательского каталога, и схему установления отношения доверия между клиентами. В идеале реализацию выполнить в виде chrome app или js-приложения, которое можно запускать на десктопах и мобильных устройствах без переписывания кода под каждую платформу (см. Signal).
  
 
=== Чему научатся студенты? Что самое интересное в проекте? ===
 
=== Чему научатся студенты? Что самое интересное в проекте? ===
Строка 46: Строка 46:
 
8 - работает обмен файлами через P2P
 
8 - работает обмен файлами через P2P
  
+2 бонус за user study на нескольких десятках человек (друзья, коллеги по курсу, знакомые)
+
+2 бонус за user study на нескольких десятках человек (друзья, коллеги по курсу, знакомые - порядка 15-20 человек)
  
 
+2 бонус за поддержку стриминга аудио
 
+2 бонус за поддержку стриминга аудио
Строка 52: Строка 52:
 
+1 бонус за кроссплатформенность
 
+1 бонус за кроссплатформенность
  
+1 бонус за публикацию проекта и привлечение независимых пользователей и user study на них
+
+1 бонус за публикацию проекта и привлечение независимых пользователей и user study на них (также 15-20 независимых пользователей)
  
 
=== Похожие проекты ===
 
=== Похожие проекты ===

Версия 14:45, 6 октября 2017

Компания 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