mirror of
https://github.com/He4eT/oddsquat.git
synced 2026-05-04 20:37:22 +00:00
posts: encrypted_XMPP: update draft
This commit is contained in:
parent
05ac85af41
commit
e2cabe34dc
1 changed files with 100 additions and 1 deletions
|
|
@ -51,7 +51,18 @@ it on a <a
|
||||||
href='https://contrapunctus.codeberg.page/the-quick-and-easy-guide-to-xmpp.html'
|
href='https://contrapunctus.codeberg.page/the-quick-and-easy-guide-to-xmpp.html'
|
||||||
target='_blank'>dedicated page by Daniel Gultsch</a>.
|
target='_blank'>dedicated page by Daniel Gultsch</a>.
|
||||||
|
|
||||||
## Trade-offs Between Safety and Convenience
|
## Basic Concepts
|
||||||
|
|
||||||
|
Here I'm going to explain some basic ideas behind e2e.
|
||||||
|
|
||||||
|
Вы можете пропустить этот раздел
|
||||||
|
Если основные концепции и терминология вам знакомы,
|
||||||
|
то можете смело пропустить этот раздел
|
||||||
|
и перейти к особенностям их практического применения касательно XMPP.
|
||||||
|
|
||||||
|
Или даже сразу перейти к описанию workflow, которого я придерживаюсь сам.
|
||||||
|
|
||||||
|
### Trade-offs Between Safety and Convenience
|
||||||
|
|
||||||
Unfortunately, things that are truly secure are rarely convenient.
|
Unfortunately, things that are truly secure are rarely convenient.
|
||||||
They often require some initial efforts and a bit of ongoing attention.
|
They often require some initial efforts and a bit of ongoing attention.
|
||||||
|
|
@ -90,3 +101,91 @@ In general, the XMPP experience today
|
||||||
could be described as a "WhatsApp with benefits and frictions".
|
could be described as a "WhatsApp with benefits and frictions".
|
||||||
It's kinda ironic, considering that WhatsApp’s protocol
|
It's kinda ironic, considering that WhatsApp’s protocol
|
||||||
is actually based on XMPP, but incompatibly altered and defederated.
|
is actually based on XMPP, but incompatibly altered and defederated.
|
||||||
|
|
||||||
|
### Keys, Fingerprints and Trust
|
||||||
|
|
||||||
|
Как и положено любому ассиметричному шифрованию,
|
||||||
|
в OMEMO используются приватные и публичные ключи.
|
||||||
|
|
||||||
|
Приватные обычно как-то автоматически управляются XMPP клиентом
|
||||||
|
и в норме вам никогда не стоит трогать их руками.
|
||||||
|
Возможно, вам лучше даже и не знать,
|
||||||
|
как они выглядят.
|
||||||
|
|
||||||
|
Публичные ключи принято называть отпечатками пальцев.
|
||||||
|
Список фингерпринтов для конкретного аккаунта
|
||||||
|
не является чем-то секретным или важным.
|
||||||
|
Клиентские приложения сами анонсируют свои фингерпнинты
|
||||||
|
и обычно автоматически пополняют список чужих.
|
||||||
|
Значение имеют только те фингерпринты, которые вы пометили как довереные.
|
||||||
|
|
||||||
|
В идеале, человек должен лично при встрече
|
||||||
|
или по уже довереному и безопасному каналу связи
|
||||||
|
сказать вам "Да, фингерпринт XXX принадлежит моему устройству"
|
||||||
|
и только после этого вы помечаете XXX доверенным.
|
||||||
|
Обычно в интерфейсе это просто проставление чекбокса или сканирование QR-кода.
|
||||||
|
Политику доверия и недоверия можно поменять в настройках вашего клиента,
|
||||||
|
некоторые клиенты для удобства довериют любым новым фингерпринтам по умолчанию,
|
||||||
|
но я не стал бы рекомендовать использовать такую политику.
|
||||||
|
|
||||||
|
Список доверенных фингерпринтов используется в момент отправки сообщения:
|
||||||
|
ни один клиент, кроме перечисленных в списке на момент зашифровки,
|
||||||
|
не сможет его впоследствии расшифровать.
|
||||||
|
Передать как-то доверие в прошлое невозможно.
|
||||||
|
|
||||||
|
## Реалии OMEMO и XMPP
|
||||||
|
|
||||||
|
### Chat History and Synchronisation
|
||||||
|
|
||||||
|
Вообще, XMPP поддерживает хранение истории переписок на сервере.
|
||||||
|
За это отвечает `XEP-0313: Message Archive Management`.
|
||||||
|
|
||||||
|
В реальности поддержка этого XEP,
|
||||||
|
политика хранения истории и особенно сроки хранения сообщений
|
||||||
|
зависят от конкретного сервера.
|
||||||
|
Рассчитывать на бессрочное по-умолчанию хранение всех переписок не стоит.
|
||||||
|
|
||||||
|
Чаще всего ответственность за хранение переписок лежит исключительно на вас
|
||||||
|
и это разумное место для применения local-first подхода.
|
||||||
|
|
||||||
|
С практической точки зрения
|
||||||
|
проще всего рассматривать серверный архив сообщений
|
||||||
|
как некоторый кэш, который выручит вас по возвращении
|
||||||
|
из непродолжительного офлайна
|
||||||
|
или поможет с синхронизацей текущей переписки между разными устройствами.
|
||||||
|
|
||||||
|
За бесшовное переключение между клиентами отвечает
|
||||||
|
`XEP-0280: Message Carbons`.
|
||||||
|
До его внедрения можно было переключиться с телефона на лэптоп
|
||||||
|
и пялиться в загруженную историю переписки,
|
||||||
|
состоящей только из входящих сообщений от собеседника.
|
||||||
|
Отправка своих же сообщений ещё и самому себе -- это довольно неочевидная фича.
|
||||||
|
|
||||||
|
Важно, что при использовании e2e шифрования,
|
||||||
|
упомянутая выше концепция доверенных отпечатков пальцев
|
||||||
|
распространяется и на свои клиенты тоже!
|
||||||
|
|
||||||
|
Для бесшовной синхронизации исходящих сообщений
|
||||||
|
все ваши клиенты должны считать фингерпринты друг друга доверенными,
|
||||||
|
иначе можно столкнуться с ситуацией,
|
||||||
|
когда не получается прочитать своё же сообщение.
|
||||||
|
|
||||||
|
Логичное, но неприятное следствие:
|
||||||
|
Новый клиент, который не был в списке доверенных на момент отправки сообщений,
|
||||||
|
получив лог из MAM не сможет их расшифровать.
|
||||||
|
Теоретически, перепаковка сообщений
|
||||||
|
на старых доверенных клиентах вроде как возможна,
|
||||||
|
но на практике, никто такое не имплементировал.
|
||||||
|
|
||||||
|
Если вы хотите использовать больше чем одно клиентское приложение,
|
||||||
|
на одном или нескольких устройствах,
|
||||||
|
то прежде чем общаться с кем-либо,
|
||||||
|
нужно авторизоваться во всех своих клиентах
|
||||||
|
и добавить в каждый из них все фингерпринты всех остальных.
|
||||||
|
Так вы никогда не столкнётесь с раздражающей ситуацией,
|
||||||
|
когда не можете прочитать сообщения, которые сами же кому-то отправляли.
|
||||||
|
|
||||||
|
## Mindset
|
||||||
|
## Before the Start
|
||||||
|
## Checking the Keys
|
||||||
|
## In case of fire
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue