Меню
Главная
Форумы
Новые сообщения
Что нового?
Новые сообщения
Вход
Регистрация
Что нового?
Новые сообщения
Меню
Вход
Регистрация
Соцсети заблокировали! Простой способ обхода блокировки Twitter и Facebook
здесь
-----
Форум блокируют за
антивоенную статью
-----
В связи с преследованиями за инакомыслие, теперь можно
анонимно
отвечать в темах.
-----
Обновлен
скрипт для определения IP госорганов
-----
Наш реестр запрещенных сайтов
с широким функционалом.
Главная
Форумы
Интернет-слежка
Анонимность в сети
Matrix, защищенный мессенджер
JavaScript отключён. Чтобы полноценно использовать наш сайт, включите JavaScript в своём браузере.
Ответить в теме
Сообщение
<p>[QUOTE="moder, post: 16763, member: 1"]</p><p>[ATTACH=full]3630[/ATTACH]</p><p></p><p>Матрикс это решение для тех, кого не устраивают существующие мессенджеры и соцсети, и кто хочет найти им лучшую замену.</p><p></p><p>Предполагается, что вы знаете самые основы безопасного общения: не приклеиваете пароли на мониторе и не боитесь ключей шифрования.</p><p></p><p>Погружение в матрицу стоит начать с понятия федерации.</p><p></p><p><span style="font-size: 22px"><strong>Что такое Федерация?</strong></span></p><p></p><p>Система считается централизованной тогда, когда данные пользователей обрабатываются только одной компанией. Например, сообщения «Вконтакте» хранятся только внутри «Вконтакте», «Телеграма» – только внутри «Телеграма» и так далее. Это и есть централизация.</p><p></p><p>Централизованные системы отказывают в обслуживании пользователям по всему миру. Компании хотят спокойно торговать нашими данными, а мы им в этом не помогаем. </p><p></p><p>Можно долго ругаться с администрацией условного «Твиттера» в поиске правды, но есть эффективный способ установить справедливость: дать возможность пользователям самостоятельно определять границы хорошего и плохого. Разрешить каждому пользователю стать администрацией своего Твиттера.</p><p></p><p>Для этого созданы децентрализованные системы. В таких системах нет главного узла обработки данных, тем более принадлежащего одной компании. Но существуют тысячи независимых обработчиков – серверов. В децентрализованной системе вы можете как примкнуть к существующему серверу, так и создать свой, включив его в общую сеть.</p><p></p><p>Это называется <a href="https://ru.wikipedia.org/wiki/Fediverse">Федерацией</a>. Пользователи Федерации с разных серверов могут беспрепятственно общаться.</p><p></p><p><span style="font-size: 15px"><strong>Сходство с электронной почтой</strong></span></p><p>Представьте себе Федерацию как общение через обычную почту. Вы пишете мне с <a href="mailto:reader@yandex.ru">reader@yandex.ru</a>, а я отвечаю вам с <a href="mailto:writer@google.com">writer@google.com</a>. Мы зарегистрированы на разных серверах, письма проходят через десятки независимых посредников, но общение возможно.</p><p></p><p>Для справки: это не всегда было так. На заре почты отправлять письма можно было только пользователям своего сервера.</p><p></p><p><span style="font-size: 15px"><strong>Сходство с мобильной связью</strong></span></p><p>Неважно, кто выпустил мою и вашу сим-карты: мы можем звонить друг другу, теперь даже без роуминга. Мы можем менять сим-карты, но сохранять номер телефона, чтобы наши знакомые не потеряли с нами контакт. Можем отправлять СМС с компьютера на телефон.</p><p></p><p>И вы ведь помните, что так было не всегда?</p><p></p><p><span style="font-size: 15px"><strong>Сходство с fido</strong></span></p><p>Федерация напоминает реинкарнацию Фидонета на новых технологиях и подходах. Пользователи общаются через сервера, администрируемые обычными людьми. Каждый сервер устанавливает свои правила и может служить для координации трафика.</p><p></p><p><span style="font-size: 15px"><strong>Сходство с RSS</strong></span></p><p>Вы можете читать RSS с любого клиента, так же, как и Федерацию. Но в Федерацию пользователи могут и писать с любого клиента.</p><p></p><p><span style="font-size: 15px"><strong>Сходство с Jabber, XMPP и IRC</strong></span></p><p>Федерация похожа на них, но не ограничена только текстовыми сообщениями и организована технически богаче.</p><p></p><p></p><p><span style="font-size: 22px"><strong>Преимущества</strong></span></p><p></p><ul> <li data-xf-list-type="ul">Федерация создана так, чтобы пользователи не ощущали границ. Представьте, что вы можете общаться в своём любимом мессенджере, не зная, откуда вам отвечает собеседник – из «Телеграма», с электронной почты, из комментариев на YouTube, VK или из другой Федерации. Вам не придётся хранить на телефоне десяток мессенджеров, помнить пароли от дюжин аккаунтов. Matrix позволяет связать между собой около тридцати соцсетей.<br /> <br /> </li> <li data-xf-list-type="ul">Пользователь может свободно выбирать сервера, правила которых его устроят – или создавать свои. Админ сервера – козёл? Да и чёрт с ним, переходите на другой сервер и общайтесь с теми же людьми, с кем общались и ранее. Все козлы? Создайте свой сервер – это требует минимальных знаний системного администрирования и крайне скудного финансирования.<br /> <br /> </li> <li data-xf-list-type="ul"><strong><span style="color: rgb(184, 49, 47)">В Федерации считается дурным тоном требовать от пользователя номер телефона или почту, равно как и собирать приватные данные вроде IP-адреса или отпечатка браузера. </span></strong>Администрация вашего сервера обычно знает о вас только то, что вы сами ей сообщили.<br /> <br /> </li> <li data-xf-list-type="ul">Некоторые ресурсы Федерации настроены на использование сквозного шифрования (E2EE). <strong><span style="color: rgb(184, 49, 47)">Администрация сервера не имеет доступа к E2EE-переписке пользователей, и это повышает безопасность общения. </span></strong>«Телеграм» <a href="https://www.roscenzura.com/threads/2618/">подвергался</a> блокировкам в России именно за применение E2EE.</li> </ul><p></p><p><span style="font-size: 22px"><strong>Недостатки</strong></span></p><p></p><ul> <li data-xf-list-type="ul">Федерации несколько лет от роду. С некоторыми ограничениями приходится мириться. Например, количество просмотров рассчитывается иногда приблизительно. Не полностью развиты интеграции со сторонними системами.<br /> <br /> </li> <li data-xf-list-type="ul">Ваш сервер администрируется просто человеком. Лишь его добрая воля поддерживает порядок. Если крупные компании связаны – хотя бы формально – договором (во что в 2022 году верится всё меньше), то администрация сервера Федерации вам вообще ничего не должна. Не нравится администрация – создавайте свой сервер, вот и весь разговор.<br /> <br /> </li> <li data-xf-list-type="ul">Качество работы сервера напрямую зависит от того, насколько хорошо администратор понимает техническую составляющую.</li> </ul><p></p><p></p><p><span style="font-size: 22px"><strong>Что такое Matrix</strong></span></p><p>Matrix – одна из децентрализованных федеративных систем общения. Способ передачи сообщений в Matrix лежит на <a href="https://matrix.org/">https://matrix.org/</a>. В чём-то она похожа на git. Сообщение – коммит, отправка – пуш и так далее.</p><p></p><p>В обычной речи “Matrix” – термин многозначный. Под ним могут подразумевать:</p><ol> <li data-xf-list-type="ol">Сеть: сервера и связи между ними.</li> <li data-xf-list-type="ol">Протокол: способ передавать сообщения через сервера, хотя протокол называется по-другому.</li> <li data-xf-list-type="ol">Мосты: способ забирать сообщения из одной чужой системы (например, из «Телеграма») и помещать их в другую чужую систему (например, VK).</li> <li data-xf-list-type="ol">Общение: мессенджера Matrix нет. Под «общаться в Matrix» имеется в виду «общаться через Matrix с помощью любого подходящего мессенджера».</li> </ol><p>Под кат я буду прятать техническую информацию. Также далее предполагается, что канал общения в Matrix переключен в режим полного шифрования (Е2ЕЕ), в режим приватного доступа, не индексируется поисковиками, не публикуется автоматом в чужие системы, словом, лично вы сделали всё со своей стороны, чтобы общение было защищённым.</p><p></p><p><span style="font-size: 22px"><strong>Как установить и настроить?</strong></span></p><p>Начать стоит с выбора клиента. С относительно полным списком можно ознакомиться на <a href="https://matrix.org/clients/">https://matrix.org/clients/</a>.</p><p></p><p>Каждый сервер Matrix может, но не обязан иметь веб-интерфейс. Если веб-интерфейса нет, то зайти на сервер можно через любой другой веб-интерфейс либо через клиент, например, Element.</p><p></p><p>Относительно полный список серверов лежит на <a href="http://joinmatrix.org/servers">http://joinmatrix.org/servers</a>.</p><p></p><p>Для первого знакомства вам подойдёт веб-версия одного из крупнейших серверов: <a href="https://app.element.io/">https://app.element.io</a>.</p><p></p><p>Веб не всегда подходит для постоянного использования, см. <a href="https://ruitunion.org/posts/2022-05-14-matrix/#dislogin">«Офлайн и дизлогин»</a>.</p><p></p><p><span style="font-size: 18px"><strong>Element (Riot)</strong></span></p><p>На все основные платформы выпущен Element (бывший Riot). Если не знаете, что выбрать, а веб-интерфейс вас не устраивает, берите Element.</p><p></p><p>Мультиаккаунт</p><p></p><p><span style="font-size: 18px"><strong>Регистрация аккаунта</strong></span></p><p><strong>Важно</strong>: нигде не указывайте свою почту, номер телефона, имя, город или иные личные данные. Особенно если вам предлагают это сделать. Если сервер требует указывать почту при регистрации, укажите временную почту.</p><p></p><p><img src="https://habrastorage.org/r/w1560/getpro/habr/upload_files/648/8fb/1ae/6488fb1aec421dcc1388e84e6221f362.png" data-url="https://habrastorage.org/r/w1560/getpro/habr/upload_files/648/8fb/1ae/6488fb1aec421dcc1388e84e6221f362.png" class="bbImage " style="" alt="Регистрация аккаунта matrix" title="Регистрация аккаунта matrix" /></p><p></p><p>Регистрация аккаунта matrix</p><p></p><p>При регистрации в Matrix надо заполнить три поля:</p><ol> <li data-xf-list-type="ol"><strong>Логин</strong>.</li> <li data-xf-list-type="ol"><strong>Пароль</strong> Сейчас <a href="https://habr.com/ru/company/ruvds/blog/521564/">считается</a>, что безопасный пароль – это предложение на вашем родном языке длиннее 20-25 символов. При такой длине включать в него знаки препинания или цифры необязательно (но допустимо).</li> <li data-xf-list-type="ol"><strong>Сервер</strong> По умолчанию вы регистрируетесь на сервере matrix.org. Этот сервер подключен к Федерации. Любой другой сервер в Федерации будет использовать ваш аккаунт как родной. Если сервер, на котором вы зарегистрировались, будет выключен, вы потеряете доступ к своему аккаунту. Но есть сервера, отключённые от Федерации. На таких серверах регистрироваться надо отдельно. Обычно это делается для большей безопасности: чтобы на сервере не было посторонних.</li> </ol><p>На некоторых серверах регистрация может быть отключена. Попасть на такие сервера можно только по личному приглашению одного из участников.</p><p>После регистрации сразу же перейдите в «Настройки» -> «Безопасность»-> Secure Backup your encryption keys -> сохраните бэкап в безопасном месте. Об этом будет подробнее будет рассказано в разделе <a href="https://ruitunion.org/posts/2022-05-14-matrix/#dislogin">«Офлайн и дизлогин»</a> ниже, а пока просто сделайте бэкап.</p><p></p><p></p><p><span style="font-size: 18px"><strong>Федеративность аккаунта</strong></span></p><p>В федеративных системах, в том числе в Matrix, вы можете использовать один аккаунт для доступа к разным серверам.</p><p></p><p>В следующем примере адреса серверов выдуманы для упрощения.</p><p></p><p>Предположим, вы создаёте аккаунт @user:matrix.vk.ru на matrix.vk.ru через веб-интерфейс element.vk.ru. Пока что это не будет отличаться от привычного подхода. Но тут вы решаете завести аккаунт на matrix.telegram.org.</p><p></p><p>Оба сервера – matrix.vk.ru и matrix.telegram.org – находятся внутри одной Федерации. Поэтому вы можете зайти наmatrix.telegram.orgчерезelement.telegram.org, введя логин и пароль от аккаунта @user:matrix.vk.ru.</p><p></p><p>Такой подход чем-то схож с OAuth: вы регистрируетесь на google.com, а потом заходите везде под своим гугл-аккаунтом.</p><p></p><p>Проверить, подключён ли конкретный сервер к общей Федерации можно на сайте <a href="https://federationtester.matrix.org/">https://federationtester.matrix.org/</a>.</p><p></p><p><span style="font-size: 18px"><strong>Доступ к аккаунту</strong></span></p><p>Доступ к аккаунту происходит по логину и паролю. Так как вы стараетесь быть хорошим человеком, вы не указываете при регистрации ни почты, ни телефона, ни ещё какого-либо способа связаться с вами. Если вы забудете логин или пароль, вы потеряете аккаунт навсегда.</p><p></p><p><span style="font-size: 22px"><strong>Использование ключей</strong></span></p><ol> <li data-xf-list-type="ol">Ключами подписываются все сообщения. Прочитать подписанное сообщение может только отправитель и получатель.</li> <li data-xf-list-type="ol">Получатель может быть уверен в том, что подписанное сообщение отправил именно отправитель.</li> <li data-xf-list-type="ol">Ключи хранятся только на клиенте (в ~/.config/Element%profileName%). Утрата ключа приводит к утрате доступа к содержимому сообщений.</li> <li data-xf-list-type="ol">Ключ можно восстановить для клиента из заранее созданного бэкапа.</li> <li data-xf-list-type="ol">Для обмена ключами клиенты должны быть залогинены (можно быть офлайн). Обменяться ключами с незалогиненным клиентом нельзя. Обменяться ключами заранее нельзя.</li> <li data-xf-list-type="ol">Ключи обладают свойством правдоподобности отрицания. Если вы свой ключ удалили, то невозможно доказать ваше участие в переписке, анализируя подписи сообщений.</li> <li data-xf-list-type="ol">Ключи, использованные на аккаунте, могут делиться между клиентами этого аккаунта.</li> <li data-xf-list-type="ol">Ключами шифруется содержимое сообщения, но не его метаданные. Метаданные хранятся в открытом виде: реакции, отправитель, получатель, время отправки и так далее. Точный список меняется со временем, например, в <a href="https://github.com/matrix-org/synapse/issues/4565">этом пулл реквесте</a> приводится пример удаления избыточных метаданных.</li> <li data-xf-list-type="ol">Ключи пересоздаются в нескольких случаях:<ul> <li data-xf-list-type="ul">спустя некое количество сообщений;</li> <li data-xf-list-type="ul">при дизлогине одного из участников беседы.</li> <li data-xf-list-type="ul">в других случаях</li> </ul></li> </ol><p>Клиенты, находящиеся онлайн, получат новые ключи. Залогиненные клиенты, находящиеся офлайн, получат новые ключи. Незалогиненные клиенты не получат новые ключи.</p><p></p><p>Предположим, вы переписываетесь с настольного компьютера. На вашем компьютере лежит ключ, которым подписано каждое сообщение. Если вы зайдёте на свой аккаунт с другого клиента – например, с планшета – вы увидите факт переписки, но сообщения прочитать не сможете, так как на планшете отсутствует ключ, которым были подписаны сообщения. Вы можете восстановить ключи тремя путями:</p><ol> <li data-xf-list-type="ol">Запросить ключи с другого клиента (клиент должен быть залогинен и онлайн).</li> <li data-xf-list-type="ol">Восстановить ключи из бэкапа с помощью заранее настроенного Secure backup. Ключи, защищённые паролем, в этом бэкапе хранятся на сервере. Они обновляются время от времени.</li> <li data-xf-list-type="ol">Восстановить ключи из бэкапа с помощью заранее созданного E2E room keys. Ключи, защищённые паролем, в этом бэкапе отдаются вам в виде файла. Они не обновляются, поэтому рано или поздно из-за ротации ключей потеряют свою актуальность.</li> </ol><p></p><p><span style="font-size: 18px"><strong>Офлайн и дизлогин</strong></span></p><p>Офлайн и дизлогин – очень разные вещи.</p><p></p><p>Если вы офлайн, но ваш аккаунт остаётся залогиненным, то всё будет работать примерно ожидаемым образом.</p><p></p><p>Но если вы разлогинитесь, уходя в офлайн, вся система расшифровки сообщений принудительно ломается. Например, сообщение, полученное, пока вы не залогинены, не сможет быть расшифровано никогда.</p><p></p><p><strong>Переписка с незалогиненным аккаунтом ломает расшифровку сообщений:</strong></p><p></p><p>Пееписка с незалогиненным аккаунтом ломает расшифровку сообщений</p><p><strong>Переписка с залогиненным офлайн-аккаунтом работает ожидаемо:</strong></p><p></p><p>Переписка с залогиненным офлайн-аккаунтом работает ожидаемо, дизлогин произойдет:</p><ul> <li data-xf-list-type="ul">при нажатии кнопки “log out”;</li> <li data-xf-list-type="ul">при закрытии инкогнито браузера;</li> <li data-xf-list-type="ul">при очищении данных браузера, например, CCleaner’ом;</li> <li data-xf-list-type="ul">на мобильных браузерах – автоматически, если системе не хватит памяти; поэтому клиент для мобилок важен.</li> </ul><p>Неудобство дизлогина – известная проблема, и её решение <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/2697">разрабатывается</a>. Предлагается каждому клиенту на сервере держать свою “копию”, которая в случае отсутствия других залогиненных клиентов будет получать ключи для расшифровки сообщений. Войдя в систему, клиент сможет скачать эти ключи для расшифровки новых сообщений.</p><p></p><p>Ключи для клиента так же важны, как и вода для жизни, поэтому:</p><ul> <li data-xf-list-type="ul">«дегидрированием» (dehydration) называется процесс загрузки ключей из клиента на сервер;</li> <li data-xf-list-type="ul">«перегидрированием» (rehydration) называется процесс загрузки ключей с сервера на клиент.</li> </ul><p><strong>ДИЗЛОГИН РАЗРУШИТЕЛЕН!</strong> Думайте о нём как об удалении аккаунта с текущего устройства, а так как аккаунт и существует только на устройствах, то думайте о нём как об удалении аккаунта вообще. Это крайне непривычно первое время, но клиенты Matrix при дизлогине обязаны удалить ключи, тем самым уничтожая доступ к переписке. Дизлогин эквивалентен удалению каталога ~/.config/Element%profileName%</p><p></p><p><strong>Нет доступа к содержимому сообщений после дизлогина:</strong></p><p></p><p>Нет доступа к содержимому сообщений после дизлогина</p><p>Без ключей получить доступ к переписке невозможно. Поэтому первым же делом сохраните свои ключи так, как это сказано в разделе <a href="https://ruitunion.org/posts/2022-05-14-matrix/#registration">«Регистрация аккаунта»</a>. Следите за тем, когда ваш клиент создаёт новые ключи, настройте Secure backup. О том, где хранится ваша резервная копия, должны знать только вы.</p><p></p><p>Когда вы захотите войти обратно в свой аккаунт, вам надо будет ввести логин и пароль. Если они введены верно, доступ к аккаунту будет разрешён. Вместо старых сообщений останутся надписи «Не удалось расшифровать». Если вы восстановите ключи шифрования из резервной копии, сообщения будут расшифрованы.</p><p></p><p><span style="font-size: 18px"><strong>Поиск</strong></span></p><p>Каждый аккаунт однозначно определяется логином и сервером, например,@alice:matrix.org. Комната определяется её именем и сервером, например,#room:matrix.org.</p><p></p><p>Если администратор включил identity server, то пользователя можно искать по адресу почты или номеру телефона (если они были указаны пользователями в процессе регистрации). Сам Matrix не хранит ни адрес почты, ни номер телефона, но хранит необратимые хеши и ищет именно по ним.</p><p></p><p><span style="font-size: 18px"><strong>Личные сообщения</strong></span></p><p>Личных сообщений в Matrix нет. Вместо этого Matrix создаёт приватную комнату и добавляет в неё только двух человек – вас и собеседника. Поэтому всё, что верно для комнаты, верно и для личных сообщений.</p><p></p><p>Поначалу вам покажется, что комнаты аналогичны каналам в Discord или чату в Skype. В чём-то это так, но есть отличия: – канал в Discord и чат в Skype принадлежат одному серверу; – в Matrix комната обслуживается несколькими серверами. Если в комнате находятся @alice:happy.ru, @bob:happy.ru и @eva:evil.corp, то доступ в комнату имеют два сервера.</p><p></p><p>Так реализуется та самая федеративность: именно в комнатах встречаются люди с разных серверов.</p><p></p><p>Комнаты могут быть публичными: в них может заходить кто угодно. Комнаты могут быть приватными: для доступа к ним нужно личное приглашение.</p><p></p><p>Комнаты могут быть как Е2ЕЕ, так и обычные. Всегда используйте Е2ЕЕ, если нет веских оснований делать иначе.</p><p></p><p>Важно: прежде чем общаться в новой комнате, проверьте, стоит ли в ней Е2ЕЕ. Так как федеративность реализуется на уровне комнат, любой сервер, имеющий доступ к комнате, получает полную копию всех данных. Если ваше общение в приватной комнате не Е2ЕЕ, то любой новый участник (даже без злого умысла) опубликует на своём сервере содержимое вашей комнаты, как только будет в неё добавлен. Поэтому лучше всего закрывать доступ к истории для новых участников. Механизм аналогичен git.</p><p></p><p><span style="font-size: 18px"><strong>Верификация</strong></span></p><p>Нигде нет никакого способа надёжно защититься от физического доступа. Верифицируется железо и данные, но не руки. Люди – самое слабое звено.</p><p></p><p>В Matrix существует механизм верификации клиента (не аккаунта).</p><p></p><p>Механизм Е2ЕЕ в Matrix можно грубо сравнить с доступом по SSH. Вы генерируете двойной ключ, публичную часть отправляете собеседнику, приватную часть храните у себя. Доступ к аккаунту можно получить, только введя пароль. В такой схеме есть известная проблема: кража пароля и приватного ключа предоставляет полный доступ к данным.</p><p></p><p>Чтобы решить эту проблему в SSH, на сервер прописываются IP-адреса потенциальных клиентов. Пароль и ключ будут приняты только от этих IP.</p><p></p><p>В Matrix реализован похожий механизм верификации:</p><ol> <li data-xf-list-type="ol">Верифицируются всегда клиенты (устройства). Уже не IP, но и не аккаунты.</li> <li data-xf-list-type="ol">Верификация происходит между двумя клиентами. Не между клиентом и сервером, не между клиентом и множеством клиентов.</li> <li data-xf-list-type="ol">Верификация нужна лишь единожды.</li> <li data-xf-list-type="ol">Если вы входите с нового устройства, другие пользователи будут видеть две ваших сессии: одну верифицированную, другую – нет.</li> <li data-xf-list-type="ol">Для удобства можно верифицировать новую сессию из своей старой сессии.</li> <li data-xf-list-type="ol">Клиент находится в одном из трёх статусов:<ul> <li data-xf-list-type="ul">ни одной верификации не было проведено (чёрный щит)</li> <li data-xf-list-type="ul">клиент был верифицирован и использует тот же клиент (зелёный щит)</li> <li data-xf-list-type="ul">клиент был верифицирован и использует другой клиент (красный щит)</li> </ul></li> </ol><p><strong>Верификация:</strong></p><p>Алгоритм верификации таков:</p><ol> <li data-xf-list-type="ol">Вы заходите в свой аккаунт.</li> <li data-xf-list-type="ol">Собеседник заходит в свой аккаунт.</li> <li data-xf-list-type="ol">Вы устанавливаете канал обмена информацией вне Matrix: личная встреча, звонок, другой мессенджер.</li> <li data-xf-list-type="ol">Вы открываете профиль собеседника и нажимаете кнопку «верифицировать».</li> <li data-xf-list-type="ol">Вы с собеседником получаете смайлики для сравнения или qr коды. Сравните их, используя вышеуказанные каналы для связи.</li> <li data-xf-list-type="ol">Если всё совпадает, подтверждайте верификацию.</li> </ol><p>Теперь верификация с собеседником закончена, ваши статусы друг для друга изменятся на «верифицировано». Это означает, что сообщения от собеседника отправлены именно с того устройства, с которым вы верифицировались.</p><p></p><p>Matrix позволяет общаться и без верификации. Предположим, что вы выполнили верификацию по предыдущему алгоритму. Но теперь:</p><ol> <li data-xf-list-type="ol">Собеседник заходит в свой аккаунт с другого устройства</li> <li data-xf-list-type="ol">Вы увидите, что статус собеседника сменился на «не верифицировано». Значит, вы не можете быть уверены, что сообщение было отправлено с того же устройства, что и предыдущие.</li> </ol><p>Пока что не существует способа верифицировать всех участников комнаты/сервера, а не тыкать лично каждого.</p><p></p><p>Следует ли верифицировать клиенты собеседника? Скорее да, чем нет: это однократная операция, немного повышающая безопасность.</p><p></p><p>Следует ли верифицировать свой аккаунт с кем попало? Скорее всего, нет. Вы должны быть уверены, что человек и его клиент – это именно тот человек, о котором вы думаете, и именно его клиент.</p><p></p><p>Когда заниматься верификацией? В спокойное время, когда вы никому не интересны.</p><p></p><p><span style="font-size: 22px"><strong>Общий вывод по Matrix</strong></span></p><p>Использовать Matix значительно сложнее, чем популярные мессенджеры. Тем не менее, он позволяет развернуть инфраструктуру полностью под своим контролем со сквозным шифрованием E2EE критически важных и приватных контактов. В ситуации, складывающейся в мире, это может быть определяющим фактором в выборе использовать Matrix вместо популярных мессенджеров.</p><p></p><p></p><p>[URL unfurl="true"]https://habr.com/ru/articles/665766/[/URL]</p><p>[/QUOTE]</p>
[QUOTE="moder, post: 16763, member: 1"] [ATTACH type="full"]3630[/ATTACH] Матрикс это решение для тех, кого не устраивают существующие мессенджеры и соцсети, и кто хочет найти им лучшую замену. Предполагается, что вы знаете самые основы безопасного общения: не приклеиваете пароли на мониторе и не боитесь ключей шифрования. Погружение в матрицу стоит начать с понятия федерации. [SIZE=6][B]Что такое Федерация?[/B][/SIZE] Система считается централизованной тогда, когда данные пользователей обрабатываются только одной компанией. Например, сообщения «Вконтакте» хранятся только внутри «Вконтакте», «Телеграма» – только внутри «Телеграма» и так далее. Это и есть централизация. Централизованные системы отказывают в обслуживании пользователям по всему миру. Компании хотят спокойно торговать нашими данными, а мы им в этом не помогаем. Можно долго ругаться с администрацией условного «Твиттера» в поиске правды, но есть эффективный способ установить справедливость: дать возможность пользователям самостоятельно определять границы хорошего и плохого. Разрешить каждому пользователю стать администрацией своего Твиттера. Для этого созданы децентрализованные системы. В таких системах нет главного узла обработки данных, тем более принадлежащего одной компании. Но существуют тысячи независимых обработчиков – серверов. В децентрализованной системе вы можете как примкнуть к существующему серверу, так и создать свой, включив его в общую сеть. Это называется [URL='https://ru.wikipedia.org/wiki/Fediverse']Федерацией[/URL]. Пользователи Федерации с разных серверов могут беспрепятственно общаться. [SIZE=4][B]Сходство с электронной почтой[/B][/SIZE] Представьте себе Федерацию как общение через обычную почту. Вы пишете мне с [email]reader@yandex.ru[/email], а я отвечаю вам с [email]writer@google.com[/email]. Мы зарегистрированы на разных серверах, письма проходят через десятки независимых посредников, но общение возможно. Для справки: это не всегда было так. На заре почты отправлять письма можно было только пользователям своего сервера. [SIZE=4][B]Сходство с мобильной связью[/B][/SIZE] Неважно, кто выпустил мою и вашу сим-карты: мы можем звонить друг другу, теперь даже без роуминга. Мы можем менять сим-карты, но сохранять номер телефона, чтобы наши знакомые не потеряли с нами контакт. Можем отправлять СМС с компьютера на телефон. И вы ведь помните, что так было не всегда? [SIZE=4][B]Сходство с fido[/B][/SIZE] Федерация напоминает реинкарнацию Фидонета на новых технологиях и подходах. Пользователи общаются через сервера, администрируемые обычными людьми. Каждый сервер устанавливает свои правила и может служить для координации трафика. [SIZE=4][B]Сходство с RSS[/B][/SIZE] Вы можете читать RSS с любого клиента, так же, как и Федерацию. Но в Федерацию пользователи могут и писать с любого клиента. [SIZE=4][B]Сходство с Jabber, XMPP и IRC[/B][/SIZE] Федерация похожа на них, но не ограничена только текстовыми сообщениями и организована технически богаче. [SIZE=6][B]Преимущества[/B][/SIZE] [LIST] [*]Федерация создана так, чтобы пользователи не ощущали границ. Представьте, что вы можете общаться в своём любимом мессенджере, не зная, откуда вам отвечает собеседник – из «Телеграма», с электронной почты, из комментариев на YouTube, VK или из другой Федерации. Вам не придётся хранить на телефоне десяток мессенджеров, помнить пароли от дюжин аккаунтов. Matrix позволяет связать между собой около тридцати соцсетей. [*]Пользователь может свободно выбирать сервера, правила которых его устроят – или создавать свои. Админ сервера – козёл? Да и чёрт с ним, переходите на другой сервер и общайтесь с теми же людьми, с кем общались и ранее. Все козлы? Создайте свой сервер – это требует минимальных знаний системного администрирования и крайне скудного финансирования. [*][B][COLOR=rgb(184, 49, 47)]В Федерации считается дурным тоном требовать от пользователя номер телефона или почту, равно как и собирать приватные данные вроде IP-адреса или отпечатка браузера. [/COLOR][/B]Администрация вашего сервера обычно знает о вас только то, что вы сами ей сообщили. [*]Некоторые ресурсы Федерации настроены на использование сквозного шифрования (E2EE). [B][COLOR=rgb(184, 49, 47)]Администрация сервера не имеет доступа к E2EE-переписке пользователей, и это повышает безопасность общения. [/COLOR][/B]«Телеграм» [URL='https://www.roscenzura.com/threads/2618/']подвергался[/URL] блокировкам в России именно за применение E2EE. [/LIST] [SIZE=6][B]Недостатки[/B][/SIZE] [LIST] [*]Федерации несколько лет от роду. С некоторыми ограничениями приходится мириться. Например, количество просмотров рассчитывается иногда приблизительно. Не полностью развиты интеграции со сторонними системами. [*]Ваш сервер администрируется просто человеком. Лишь его добрая воля поддерживает порядок. Если крупные компании связаны – хотя бы формально – договором (во что в 2022 году верится всё меньше), то администрация сервера Федерации вам вообще ничего не должна. Не нравится администрация – создавайте свой сервер, вот и весь разговор. [*]Качество работы сервера напрямую зависит от того, насколько хорошо администратор понимает техническую составляющую. [/LIST] [SIZE=6][B]Что такое Matrix[/B][/SIZE] Matrix – одна из децентрализованных федеративных систем общения. Способ передачи сообщений в Matrix лежит на [URL]https://matrix.org/[/URL]. В чём-то она похожа на git. Сообщение – коммит, отправка – пуш и так далее. В обычной речи “Matrix” – термин многозначный. Под ним могут подразумевать: [LIST=1] [*]Сеть: сервера и связи между ними. [*]Протокол: способ передавать сообщения через сервера, хотя протокол называется по-другому. [*]Мосты: способ забирать сообщения из одной чужой системы (например, из «Телеграма») и помещать их в другую чужую систему (например, VK). [*]Общение: мессенджера Matrix нет. Под «общаться в Matrix» имеется в виду «общаться через Matrix с помощью любого подходящего мессенджера». [/LIST] Под кат я буду прятать техническую информацию. Также далее предполагается, что канал общения в Matrix переключен в режим полного шифрования (Е2ЕЕ), в режим приватного доступа, не индексируется поисковиками, не публикуется автоматом в чужие системы, словом, лично вы сделали всё со своей стороны, чтобы общение было защищённым. [SIZE=6][B]Как установить и настроить?[/B][/SIZE] Начать стоит с выбора клиента. С относительно полным списком можно ознакомиться на [URL]https://matrix.org/clients/[/URL]. Каждый сервер Matrix может, но не обязан иметь веб-интерфейс. Если веб-интерфейса нет, то зайти на сервер можно через любой другой веб-интерфейс либо через клиент, например, Element. Относительно полный список серверов лежит на [URL]http://joinmatrix.org/servers[/URL]. Для первого знакомства вам подойдёт веб-версия одного из крупнейших серверов: [URL='https://app.element.io/']https://app.element.io[/URL]. Веб не всегда подходит для постоянного использования, см. [URL='https://ruitunion.org/posts/2022-05-14-matrix/#dislogin']«Офлайн и дизлогин»[/URL]. [SIZE=5][B]Element (Riot)[/B][/SIZE] На все основные платформы выпущен Element (бывший Riot). Если не знаете, что выбрать, а веб-интерфейс вас не устраивает, берите Element. Мультиаккаунт [SIZE=5][B]Регистрация аккаунта[/B][/SIZE] [B]Важно[/B]: нигде не указывайте свою почту, номер телефона, имя, город или иные личные данные. Особенно если вам предлагают это сделать. Если сервер требует указывать почту при регистрации, укажите временную почту. [IMG alt="Регистрация аккаунта matrix"]https://habrastorage.org/r/w1560/getpro/habr/upload_files/648/8fb/1ae/6488fb1aec421dcc1388e84e6221f362.png[/IMG] Регистрация аккаунта matrix При регистрации в Matrix надо заполнить три поля: [LIST=1] [*][B]Логин[/B]. [*][B]Пароль[/B] Сейчас [URL='https://habr.com/ru/company/ruvds/blog/521564/']считается[/URL], что безопасный пароль – это предложение на вашем родном языке длиннее 20-25 символов. При такой длине включать в него знаки препинания или цифры необязательно (но допустимо). [*][B]Сервер[/B] По умолчанию вы регистрируетесь на сервере matrix.org. Этот сервер подключен к Федерации. Любой другой сервер в Федерации будет использовать ваш аккаунт как родной. Если сервер, на котором вы зарегистрировались, будет выключен, вы потеряете доступ к своему аккаунту. Но есть сервера, отключённые от Федерации. На таких серверах регистрироваться надо отдельно. Обычно это делается для большей безопасности: чтобы на сервере не было посторонних. [/LIST] На некоторых серверах регистрация может быть отключена. Попасть на такие сервера можно только по личному приглашению одного из участников. После регистрации сразу же перейдите в «Настройки» -> «Безопасность»-> Secure Backup your encryption keys -> сохраните бэкап в безопасном месте. Об этом будет подробнее будет рассказано в разделе [URL='https://ruitunion.org/posts/2022-05-14-matrix/#dislogin']«Офлайн и дизлогин»[/URL] ниже, а пока просто сделайте бэкап. [SIZE=5][B]Федеративность аккаунта[/B][/SIZE] В федеративных системах, в том числе в Matrix, вы можете использовать один аккаунт для доступа к разным серверам. В следующем примере адреса серверов выдуманы для упрощения. Предположим, вы создаёте аккаунт @user:matrix.vk.ru на matrix.vk.ru через веб-интерфейс element.vk.ru. Пока что это не будет отличаться от привычного подхода. Но тут вы решаете завести аккаунт на matrix.telegram.org. Оба сервера – matrix.vk.ru и matrix.telegram.org – находятся внутри одной Федерации. Поэтому вы можете зайти наmatrix.telegram.orgчерезelement.telegram.org, введя логин и пароль от аккаунта @user:matrix.vk.ru. Такой подход чем-то схож с OAuth: вы регистрируетесь на google.com, а потом заходите везде под своим гугл-аккаунтом. Проверить, подключён ли конкретный сервер к общей Федерации можно на сайте [URL]https://federationtester.matrix.org/[/URL]. [SIZE=5][B]Доступ к аккаунту[/B][/SIZE] Доступ к аккаунту происходит по логину и паролю. Так как вы стараетесь быть хорошим человеком, вы не указываете при регистрации ни почты, ни телефона, ни ещё какого-либо способа связаться с вами. Если вы забудете логин или пароль, вы потеряете аккаунт навсегда. [SIZE=6][B]Использование ключей[/B][/SIZE] [LIST=1] [*]Ключами подписываются все сообщения. Прочитать подписанное сообщение может только отправитель и получатель. [*]Получатель может быть уверен в том, что подписанное сообщение отправил именно отправитель. [*]Ключи хранятся только на клиенте (в ~/.config/Element%profileName%). Утрата ключа приводит к утрате доступа к содержимому сообщений. [*]Ключ можно восстановить для клиента из заранее созданного бэкапа. [*]Для обмена ключами клиенты должны быть залогинены (можно быть офлайн). Обменяться ключами с незалогиненным клиентом нельзя. Обменяться ключами заранее нельзя. [*]Ключи обладают свойством правдоподобности отрицания. Если вы свой ключ удалили, то невозможно доказать ваше участие в переписке, анализируя подписи сообщений. [*]Ключи, использованные на аккаунте, могут делиться между клиентами этого аккаунта. [*]Ключами шифруется содержимое сообщения, но не его метаданные. Метаданные хранятся в открытом виде: реакции, отправитель, получатель, время отправки и так далее. Точный список меняется со временем, например, в [URL='https://github.com/matrix-org/synapse/issues/4565']этом пулл реквесте[/URL] приводится пример удаления избыточных метаданных. [*]Ключи пересоздаются в нескольких случаях: [LIST] [*]спустя некое количество сообщений; [*]при дизлогине одного из участников беседы. [*]в других случаях [/LIST] [/LIST] Клиенты, находящиеся онлайн, получат новые ключи. Залогиненные клиенты, находящиеся офлайн, получат новые ключи. Незалогиненные клиенты не получат новые ключи. Предположим, вы переписываетесь с настольного компьютера. На вашем компьютере лежит ключ, которым подписано каждое сообщение. Если вы зайдёте на свой аккаунт с другого клиента – например, с планшета – вы увидите факт переписки, но сообщения прочитать не сможете, так как на планшете отсутствует ключ, которым были подписаны сообщения. Вы можете восстановить ключи тремя путями: [LIST=1] [*]Запросить ключи с другого клиента (клиент должен быть залогинен и онлайн). [*]Восстановить ключи из бэкапа с помощью заранее настроенного Secure backup. Ключи, защищённые паролем, в этом бэкапе хранятся на сервере. Они обновляются время от времени. [*]Восстановить ключи из бэкапа с помощью заранее созданного E2E room keys. Ключи, защищённые паролем, в этом бэкапе отдаются вам в виде файла. Они не обновляются, поэтому рано или поздно из-за ротации ключей потеряют свою актуальность. [/LIST] [SIZE=5][B]Офлайн и дизлогин[/B][/SIZE] Офлайн и дизлогин – очень разные вещи. Если вы офлайн, но ваш аккаунт остаётся залогиненным, то всё будет работать примерно ожидаемым образом. Но если вы разлогинитесь, уходя в офлайн, вся система расшифровки сообщений принудительно ломается. Например, сообщение, полученное, пока вы не залогинены, не сможет быть расшифровано никогда. [B]Переписка с незалогиненным аккаунтом ломает расшифровку сообщений:[/B] Пееписка с незалогиненным аккаунтом ломает расшифровку сообщений [B]Переписка с залогиненным офлайн-аккаунтом работает ожидаемо:[/B] Переписка с залогиненным офлайн-аккаунтом работает ожидаемо, дизлогин произойдет: [LIST] [*]при нажатии кнопки “log out”; [*]при закрытии инкогнито браузера; [*]при очищении данных браузера, например, CCleaner’ом; [*]на мобильных браузерах – автоматически, если системе не хватит памяти; поэтому клиент для мобилок важен. [/LIST] Неудобство дизлогина – известная проблема, и её решение [URL='https://github.com/matrix-org/matrix-spec-proposals/pull/2697']разрабатывается[/URL]. Предлагается каждому клиенту на сервере держать свою “копию”, которая в случае отсутствия других залогиненных клиентов будет получать ключи для расшифровки сообщений. Войдя в систему, клиент сможет скачать эти ключи для расшифровки новых сообщений. Ключи для клиента так же важны, как и вода для жизни, поэтому: [LIST] [*]«дегидрированием» (dehydration) называется процесс загрузки ключей из клиента на сервер; [*]«перегидрированием» (rehydration) называется процесс загрузки ключей с сервера на клиент. [/LIST] [B]ДИЗЛОГИН РАЗРУШИТЕЛЕН![/B] Думайте о нём как об удалении аккаунта с текущего устройства, а так как аккаунт и существует только на устройствах, то думайте о нём как об удалении аккаунта вообще. Это крайне непривычно первое время, но клиенты Matrix при дизлогине обязаны удалить ключи, тем самым уничтожая доступ к переписке. Дизлогин эквивалентен удалению каталога ~/.config/Element%profileName% [B]Нет доступа к содержимому сообщений после дизлогина:[/B] Нет доступа к содержимому сообщений после дизлогина Без ключей получить доступ к переписке невозможно. Поэтому первым же делом сохраните свои ключи так, как это сказано в разделе [URL='https://ruitunion.org/posts/2022-05-14-matrix/#registration']«Регистрация аккаунта»[/URL]. Следите за тем, когда ваш клиент создаёт новые ключи, настройте Secure backup. О том, где хранится ваша резервная копия, должны знать только вы. Когда вы захотите войти обратно в свой аккаунт, вам надо будет ввести логин и пароль. Если они введены верно, доступ к аккаунту будет разрешён. Вместо старых сообщений останутся надписи «Не удалось расшифровать». Если вы восстановите ключи шифрования из резервной копии, сообщения будут расшифрованы. [SIZE=5][B]Поиск[/B][/SIZE] Каждый аккаунт однозначно определяется логином и сервером, например,@alice:matrix.org. Комната определяется её именем и сервером, например,#room:matrix.org. Если администратор включил identity server, то пользователя можно искать по адресу почты или номеру телефона (если они были указаны пользователями в процессе регистрации). Сам Matrix не хранит ни адрес почты, ни номер телефона, но хранит необратимые хеши и ищет именно по ним. [SIZE=5][B]Личные сообщения[/B][/SIZE] Личных сообщений в Matrix нет. Вместо этого Matrix создаёт приватную комнату и добавляет в неё только двух человек – вас и собеседника. Поэтому всё, что верно для комнаты, верно и для личных сообщений. Поначалу вам покажется, что комнаты аналогичны каналам в Discord или чату в Skype. В чём-то это так, но есть отличия: – канал в Discord и чат в Skype принадлежат одному серверу; – в Matrix комната обслуживается несколькими серверами. Если в комнате находятся @alice:happy.ru, @bob:happy.ru и @eva:evil.corp, то доступ в комнату имеют два сервера. Так реализуется та самая федеративность: именно в комнатах встречаются люди с разных серверов. Комнаты могут быть публичными: в них может заходить кто угодно. Комнаты могут быть приватными: для доступа к ним нужно личное приглашение. Комнаты могут быть как Е2ЕЕ, так и обычные. Всегда используйте Е2ЕЕ, если нет веских оснований делать иначе. Важно: прежде чем общаться в новой комнате, проверьте, стоит ли в ней Е2ЕЕ. Так как федеративность реализуется на уровне комнат, любой сервер, имеющий доступ к комнате, получает полную копию всех данных. Если ваше общение в приватной комнате не Е2ЕЕ, то любой новый участник (даже без злого умысла) опубликует на своём сервере содержимое вашей комнаты, как только будет в неё добавлен. Поэтому лучше всего закрывать доступ к истории для новых участников. Механизм аналогичен git. [SIZE=5][B]Верификация[/B][/SIZE] Нигде нет никакого способа надёжно защититься от физического доступа. Верифицируется железо и данные, но не руки. Люди – самое слабое звено. В Matrix существует механизм верификации клиента (не аккаунта). Механизм Е2ЕЕ в Matrix можно грубо сравнить с доступом по SSH. Вы генерируете двойной ключ, публичную часть отправляете собеседнику, приватную часть храните у себя. Доступ к аккаунту можно получить, только введя пароль. В такой схеме есть известная проблема: кража пароля и приватного ключа предоставляет полный доступ к данным. Чтобы решить эту проблему в SSH, на сервер прописываются IP-адреса потенциальных клиентов. Пароль и ключ будут приняты только от этих IP. В Matrix реализован похожий механизм верификации: [LIST=1] [*]Верифицируются всегда клиенты (устройства). Уже не IP, но и не аккаунты. [*]Верификация происходит между двумя клиентами. Не между клиентом и сервером, не между клиентом и множеством клиентов. [*]Верификация нужна лишь единожды. [*]Если вы входите с нового устройства, другие пользователи будут видеть две ваших сессии: одну верифицированную, другую – нет. [*]Для удобства можно верифицировать новую сессию из своей старой сессии. [*]Клиент находится в одном из трёх статусов: [LIST] [*]ни одной верификации не было проведено (чёрный щит) [*]клиент был верифицирован и использует тот же клиент (зелёный щит) [*]клиент был верифицирован и использует другой клиент (красный щит) [/LIST] [/LIST] [B]Верификация:[/B] Алгоритм верификации таков: [LIST=1] [*]Вы заходите в свой аккаунт. [*]Собеседник заходит в свой аккаунт. [*]Вы устанавливаете канал обмена информацией вне Matrix: личная встреча, звонок, другой мессенджер. [*]Вы открываете профиль собеседника и нажимаете кнопку «верифицировать». [*]Вы с собеседником получаете смайлики для сравнения или qr коды. Сравните их, используя вышеуказанные каналы для связи. [*]Если всё совпадает, подтверждайте верификацию. [/LIST] Теперь верификация с собеседником закончена, ваши статусы друг для друга изменятся на «верифицировано». Это означает, что сообщения от собеседника отправлены именно с того устройства, с которым вы верифицировались. Matrix позволяет общаться и без верификации. Предположим, что вы выполнили верификацию по предыдущему алгоритму. Но теперь: [LIST=1] [*]Собеседник заходит в свой аккаунт с другого устройства [*]Вы увидите, что статус собеседника сменился на «не верифицировано». Значит, вы не можете быть уверены, что сообщение было отправлено с того же устройства, что и предыдущие. [/LIST] Пока что не существует способа верифицировать всех участников комнаты/сервера, а не тыкать лично каждого. Следует ли верифицировать клиенты собеседника? Скорее да, чем нет: это однократная операция, немного повышающая безопасность. Следует ли верифицировать свой аккаунт с кем попало? Скорее всего, нет. Вы должны быть уверены, что человек и его клиент – это именно тот человек, о котором вы думаете, и именно его клиент. Когда заниматься верификацией? В спокойное время, когда вы никому не интересны. [SIZE=6][B]Общий вывод по Matrix[/B][/SIZE] Использовать Matix значительно сложнее, чем популярные мессенджеры. Тем не менее, он позволяет развернуть инфраструктуру полностью под своим контролем со сквозным шифрованием E2EE критически важных и приватных контактов. В ситуации, складывающейся в мире, это может быть определяющим фактором в выборе использовать Matrix вместо популярных мессенджеров. [URL unfurl="true"]https://habr.com/ru/articles/665766/[/URL] [/QUOTE]
Предпросмотр
Имя
Проверка
Ответить
Главная
Форумы
Интернет-слежка
Анонимность в сети
Matrix, защищенный мессенджер
Сверху