Децентрализованный крипточат (командный проект) — различия между версиями
Gamajun (обсуждение | вклад) (Новая страница, с помощью формы Новый_командный_проект) |
Gamajun (обсуждение | вклад) (→Компоненеты (Из каких частей состоит проект?)) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 13: | Строка 13: | ||
В настоящее время подавляющее большинство защищенных мессенджеров завязаны на существование третьей доверенной стороны, в качестве которой обычно выступает "поставщик сервиса". Например, в мессенджере Telegram доверенной стороной является сервераная часть системы. Аналогично в случае Signal. | В настоящее время подавляющее большинство защищенных мессенджеров завязаны на существование третьей доверенной стороны, в качестве которой обычно выступает "поставщик сервиса". Например, в мессенджере Telegram доверенной стороной является сервераная часть системы. Аналогично в случае Signal. | ||
− | В рамках проекта предлагается разработать полностью децентрализованный мессенджер, в котором нужно реализовать наиболее востребованные функции (PFS), децентрализованное хранение пользовательского каталога, и схему установления отношения доверия между клиентами. В идеале реализацию выполнить в виде chrome app или js-приложения, которое можно запускать на десктопах и мобильных устройствах без переписывания кода под каждую платформу (см. Signal). | + | В рамках проекта предлагается разработать полностью децентрализованный мессенджер, в котором нужно реализовать наиболее востребованные функции (PFS, perfect forward secrecy или защита от чтения назад, при которой компрометация долговременных ключей шифрования не позволяет расшифровать ранее отправленные сообщения), децентрализованное хранение пользовательского каталога, и схему установления отношения доверия между клиентами. В идеале реализацию выполнить в виде chrome app или js-приложения, которое можно запускать на десктопах и мобильных устройствах без переписывания кода под каждую платформу (см. Signal). |
=== Чему научатся студенты? Что самое интересное в проекте? === | === Чему научатся студенты? Что самое интересное в проекте? === | ||
1) Как устроены современные мессенджеры, чем они отличаются друг от друга, в том числе с точки зрения протоколов. | 1) Как устроены современные мессенджеры, чем они отличаются друг от друга, в том числе с точки зрения протоколов. | ||
+ | |||
2) Как создавать распределенные приложения. | 2) Как создавать распределенные приложения. | ||
Строка 22: | Строка 23: | ||
2-3 (до 4), распределение задача - по компонентам. Проектная работа с трекингом задач через gitlab. | 2-3 (до 4), распределение задача - по компонентам. Проектная работа с трекингом задач через gitlab. | ||
− | === | + | === Компоненты (Из каких частей состоит проект?) === |
Транспорт - транспортная абстракция поверх P2P топологии | Транспорт - транспортная абстракция поверх P2P топологии | ||
+ | |||
Криптопротокол - вариант реализации mpOTR протокола | Криптопротокол - вариант реализации mpOTR протокола | ||
+ | |||
UI - интерфейс, который в том числе отвечает за contact management, trust management | UI - интерфейс, который в том числе отвечает за contact management, trust management | ||
Строка 38: | Строка 41: | ||
=== Критерии оценки === | === Критерии оценки === | ||
4 - работает P2P, обмен сообщениями, регистрация новых контактов | 4 - работает P2P, обмен сообщениями, регистрация новых контактов | ||
+ | |||
6 - trust management, как верифицировать, что новый контакт именно тот, за кого он себя выдаёт | 6 - trust management, как верифицировать, что новый контакт именно тот, за кого он себя выдаёт | ||
− | 8 - работает | + | |
+ | 8 - работает обмен файлами через P2P | ||
+ | |||
+ | +2 бонус за user study на нескольких десятках человек (друзья, коллеги по курсу, знакомые - порядка 15-20 человек) | ||
+ | |||
+2 бонус за поддержку стриминга аудио | +2 бонус за поддержку стриминга аудио | ||
+ | |||
+1 бонус за кроссплатформенность | +1 бонус за кроссплатформенность | ||
− | +1 бонус за публикацию проекта и привлечение независимых пользователей и user study на них | + | |
+ | +1 бонус за публикацию проекта и привлечение независимых пользователей и user study на них (также 15-20 независимых пользователей) | ||
=== Похожие проекты === | === Похожие проекты === | ||
https://signal.org/ | https://signal.org/ | ||
+ | |||
https://tox.chat/ | https://tox.chat/ | ||
+ | |||
https://wire.com/en/ | https://wire.com/en/ | ||
=== Контактная информация === | === Контактная информация === | ||
Денис Гамаюнов | Денис Гамаюнов | ||
+ | |||
Почта: gamajun собака gmail.com | Почта: gamajun собака gmail.com | ||
+ | |||
Контакт в Tg: @jamadharma | Контакт в Tg: @jamadharma | ||
Строка 57: | Строка 71: | ||
- BitBucket: jamadharma | - BitBucket: jamadharma | ||
+ | |||
- GitHub: jama-dharma | - GitHub: jama-dharma |
Текущая версия на 10:40, 5 марта 2018
Компания | 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 независимых пользователей)
Похожие проекты
Контактная информация
Денис Гамаюнов
Почта: gamajun собака gmail.com
Контакт в Tg: @jamadharma
Для выполнения проекта создайте приватный репозиторий в BitBucket или GitHub, и добавьте в collaborators ментора:
- BitBucket: jamadharma
- GitHub: jama-dharma