Сквозное шифрование для чата

Продолжение обсуждения из темы Представляем Discourse Chat (BETA):

Хотел бы выделить это как отдельную просьбу о добавлении функции: внедрение сквозного шифрования в новом чате.

Я считаю, что это может стать прорывом: как для меня в роли администратора, который не хочет иметь доступ к личным сообщениям участников, так и для меня в роли участника, не желающего, чтобы другие администраторы имели доступ к моим личным чатам. Кроме того, это выгодно отличает нас от Discord, Slack и большинства других платформ, которые не предлагают такой возможности.

Понимаю, что это может быть не первоочередной задачей, но надеюсь, что она будет реализована в течение следующих 7 месяцев :slight_smile: Спасибо за всё, что вы делаете для Discourse и новой функции чата.

17 лайков

Это уже полностью реализовано с помощью Discourse Encrypt (deprecated)

Работает отлично.

Могу подтвердить: плагин Encrypt делает личные сообщения между пользователями невозможными для прочтения без ключей расшифровки. Никакого подслушивания со стороны администраторов не возможно.

Matrix, Signal, Rocket.chat и Wire поддерживают сквозное шифрование и являются открытым исходным кодом. Также есть WhatsApp и Telegram. Просто для ясности для всех, кто читает это.

Обязательно попробуйте Discourse Encrypt. Работает превосходно! Полное шифрование, которое вы добавляете к своей сессии для доступа к зашифрованным сообщениям между вами и другими участниками. Никакой зависимости от категорий или другого функционала, в отличие от работы чата. Ни одной жалобы!!!

4 лайка

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

Я тоже мог бы выразиться яснее. Я имел в виду, что, по моему мнению, сквозное шифрование личных сообщений не так широко распространено на платформах, ориентированных на сообщества или форумы: Discord, Circle, Slack, Teams, Guilded, Zulip и т. д. Да, многие платформы, предназначенные в первую очередь для чата один на один или в группах, имеют такую функцию, как вы упомянули. Возможно, Matrix, Rocket.chat и Wire также используются для управления сообществами, но, на мой взгляд, у них меньше функций для сообществ.

В любом случае, мне это тоже нравится для личных тем, и я с нетерпением жду её появления в личных чатах :slightly_smiling_face:

5 лайков

Я бы обожал сквозное шифрование в реальном чате!

:star_struck:

Но вот в чём дело: шифрование для личных сообщений резко сокращает возможности их использования.

Сразу это не всегда очевидно. Вы можете добавлять и удалять участников из личных сообщений, использовать их в редакционном процессе (я использую их для записи заметок, прежде чем делиться ими шире!) и многое другое. Зашифруйте их — и внезапно многое из того, что мы можем делать, становится неуместным из-за природы применяемого шифрования.

Хорошо, теперь примените это к чату в реальном времени.

Ой! Мы внезапно потеряем не только то, что делает канал чата интересным, но и то, что делает чат в Discourse интересным: передовые функции, которые развиваются по мере того, как мы выясняем, как интегрировать чат в процессы захвата знаний, для которых люди уже используют Discourse; добавление шифрования к этому резко снизит полезность чата в данном случае.

Я сторонник принципа «шифруй всё!» Я использую OMEMO для всех своих личных чатов на сервере, которым управляю сам. Но есть компромиссы, и они не те, которые я бы хотел применить к чату в Discourse. То, что у нас есть, само по себе будет очень крутым. :sunglasses:

Кроме того, зашифрованные личные сообщения, по сути, уже являются каналами чата в реальном времени, так что это тоже факт!

2 лайка

Я вижу Discourse разделённым на следующие части:

Похожие на электронную почту — «Темы»

  • Публичные — «Тема» (с настройками безопасности категории по умолчанию «все», полностью публичные, если для сайта не требуется вход)
  • Полупубличные — «Тема» (с настройками безопасности категории, ограниченными группами)
  • Приватные — «Личное сообщение» (доступно только приглашённым лицам, насколько я понимаю)

Похожие на чат — «Чаты»

  • Публичные — «Каналы» (открыты для регистрации, но скрыты по умолчанию; не являются полностью публичными, так как недоступны пользователям без входа в систему)
  • Полупубличные — «Каналы» (с настройками безопасности категории, ограниченными группами, как мне кажется)
  • Приватные — «Личный чат» (доступен только приглашённым лицам, насколько я понимаю)

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

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

Я по-прежнему сильно хочу сквозное шифрование (e2ee) для приватного чата (личного чата). Я редко, если вообще когда-либо, буду добавлять другого человека в конкретный чат, вместо этого создавая новую групповую беседу. Я редко использую их как черновики или хочу преобразовать их во что-то в публичном/полупубличном канале чата. Я думаю, что вижу их как самую интимную форму общения, которую мы имеем в интернете, и у Facebook и других платформ нет сквозного шифрования по умолчанию для их личных чатов, и многим людям это не мешает. Я думаю, что риск намного выше в небольших сообществах, поскольку там сложнее скрыться в толпе из миллионов/миллиардов людей.

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

Так что да, я понимаю, почему это может ограничивать другие функции приватных тем и публичных/полупубличных каналов чата, но я действительно хочу, чтобы самое приватное пространство на платформе было настолько приватным, насколько это возможно.

7 лайков

Продолжаем обсуждение из поддержки федерации в Discourse и из бета-версии чата Discourse:

Возможно, чат Discourse стоит рассмотреть возможность поддержки федерации Matrix и сквозного шифрования (на базе Signal). См. этот пост о том, что Rocket.chat официально объявил о поддержке стандартов Matrix в будущем.

Лично я считаю Matrix отличным решением. Так что определённо стоит рассмотреть возможный путь развития; хотя бы ради интересного обсуждения. :smile:

5 лайков

Есть ли какие-либо обновления по поводу того, что шифрование E2EE для сообщений чата всё ещё находится в плане разработки?

1 лайк

Это пока не входит в наши планы на ближайшее время.

6 лайков

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

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

3 лайка

Один из вариантов, который может решить вашу задачу, — установить срок хранения на очень низком уровне

3 лайка

Это может обойти проблему в некоторых случаях. Сохранение сообщений по-прежнему является настройкой на уровне всей системы? Или пользователи могут выбирать свой собственный срок хранения для каждого личного чата, как в WhatsApp или Signal?

2 лайка

Это всё ещё настройка общего характера. Есть одна настройка для каналов и одна для личных сообщений.

Я считаю, что в будущем имеет смысл сделать это настройкой для каждого канала, но на данный момент это не является для нас приоритетом.

3 лайка

Ага, понял. Тогда я всё же думаю, что отключу прямые сообщения (личные чаты). Если установить срок хранения очень коротким, некоторые пользователи могут сильно разозлиться из-за того, что их личные переписки постоянно исчезают, и у них не будет контроля над этим, как на других чат-платформах.

Также мне очень интересно развитие плагина чата. Есть ли где-то, где можно узнать, какие функции находятся в приоритете для разработки? Есть ли какая-то публичная дорожная карта, даже если она скрыта в GitHub? :slight_smile:

2 лайка

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

Вы можете попытаться понять, на что уделяется внимание, просто наблюдая за репозиторием discourse/discourse и тегом chat здесь.

С радостью обсудим более неформально, каковы наши текущие приоритеты для чата, в отдельной теме.

5 лайков

Я проверю те три места, которые вы упомянули, спасибо!

Также я создам отдельную тему, посвященную текущим приоритетам чата.

Наконец, что касается сквозного шифрования (e2ee) для чата: есть ли у вас предложения, как можно создать плагин для этого? И теоретически, насколько сложно и дорого может быть его разработка и поддержка? Стоит ли предложить адаптировать плагин Discourse Encrypt или какой-то другой плагин/библиотеку?

2 лайка

Мы тоже хотели бы видеть шифрование в групповых чатах. Это помогло бы нам отказаться от использования сторонних приложений, когда нужно обсудить что-то очень конфиденциальное и нежелательно, чтобы данные в открытом виде попадали на какие-либо серверы. Нам всё равно приходится это делать, будь то в Discourse или где-то ещё. Возможность отказаться от стороннего приложения, когда мы уже используем Discourse, стала бы для нас большим плюсом.

Сообщения чата удаляются из базы данных полностью, на 100%?

Также стоит упомянуть, что незашифрованные сообщения чата будут сохраняться и в резервных копиях.

1 лайк

Я не видел, чтобы Discourse Encrypt для личных сообщений покрывал этот случай использования. На самом деле я не вижу смысла в сквозном шифровании (e2e) для чата в реальном времени, так как это противоречит самой идее обсуждения на форуме и дублирует существующий плагин Encrypt.

Точно.

Но почему бы не решить это с помощью существующей системы доверия и групповых ограничений в Discourse?

Нам удалось решить эту проблему с помощью групп с опциональным участием (opt-in / opt-out). Это действительно помогло и позволило остальным пользователям никогда не видеть такие сообщения при использовании форума.

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

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

1 лайк

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

Для меня же дело скорее в том, чтобы скрыть чаты от администраторов и сервера. Учитывая это, я не думаю, что права доступа для групп/доверенных лиц подойдут, так как чаты на сервере всё равно будут храниться в виде обычного текста.

Почему это важно? В моём случае, если Алиса обсуждает с Бобом глубокие эмоциональные проблемы в её жизни в личном чате, я как администратор не хочу иметь возможность подглядывать за таким разговором и хочу, чтобы и Алиса, и Боб чувствовали себя в безопасности, зная, что я не подглядываю. По той же причине я предпочитаю WhatsApp или Signal и действительно не люблю Instagram или Facebook Messenger, так как мне важно знать (и я твёрдо верю), что администраторы не могут просто прочитать всё, что я пишу.

1 лайк

Если быть справедливым, опыт использования сильно отличается. Чат:

  • визуально более компактен, что именно и нужно для чатов
  • работает быстрее
  • может открываться во всплывающем окне, пока вы просматриваете какую-то тему — так что вы можете редактировать темы долгосрочной памяти, одновременно обсуждая их с кем-то в чате на том же экране

:bulb: Философия развития Discourse, судя по моим наблюдениям с самых первых дней, заключается в том, что темы, ЛС и чаты постепенно сближаются, становясь всё более похожими и обмениваясь всё большим количеством функций (это может быть как запланированным и осознанным, так и бессознательным). Так что, если мы сможем получить ЛС, которые «плавают» как окна чата, становятся более компактными в этом «чат-режиме» и работают супербыстро, то да, нам не нужен отдельный чат с шифрованием — мы просто будем использовать зашифрованные ЛС.

3 лайка