mirror of
https://github.com/He4eT/oddsquat.git
synced 2026-05-04 12:27:23 +00:00
posts: encrypted_XMPP: update draft
This commit is contained in:
parent
755035f978
commit
59abfb674e
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'
|
||||
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.
|
||||
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".
|
||||
It's kinda ironic, considering that WhatsApp’s protocol
|
||||
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