posts: encrypted_XMPP: update draft

This commit is contained in:
He4eT 2026-04-12 11:44:39 +02:00 committed by Alexey
commit 32a4df554d

View file

@ -38,8 +38,7 @@ and the practical aspects of using it.
**End-to-end encryption** is a way to keep your chats truly private.<br> **End-to-end encryption** is a way to keep your chats truly private.<br>
Only you and the person youre messaging can read the messages. Only you and the person youre messaging can read the messages.
Not even the server owner or your carrier has the keys Not even the server owner has the keys needed to decrypt or modify them.
needed to decrypt or modify them.
**XMPP** is an extensible protocol for instant messaging. **XMPP** is an extensible protocol for instant messaging.
It's open, decentralized, and mature. It's open, decentralized, and mature.
@ -55,7 +54,6 @@ it on a&nbsp;<a
Here I'm going to explain some basic ideas behind e2e. Here I'm going to explain some basic ideas behind e2e.
Вы можете пропустить этот раздел
Если основные концепции и терминология вам знакомы, Если основные концепции и терминология вам знакомы,
то можете смело пропустить этот раздел то можете смело пропустить этот раздел
и перейти к особенностям их практического применения касательно XMPP. и перейти к особенностям их практического применения касательно XMPP.
@ -104,48 +102,61 @@ is actually based on XMPP, but incompatibly altered and defederated.
### Keys, Fingerprints and Trust ### Keys, Fingerprints and Trust
Как и положено любому ассиметричному шифрованию, OMEMO построен вокруг Double Ratchet Algorithm.
в OMEMO используются приватные и публичные ключи. Там внутри всё очень интересно,
но нам для практического применения важно только то,
что каждый клиент пользователя хранит в себе какие-то там ключи,
и умеет получать из них какой-то там хэш,
который принято называть fingerprint.
Приватные обычно как-то автоматически управляются XMPP клиентом Ключи обычно как-то автоматически управляются XMPP клиентом
и в норме вам никогда не стоит трогать их руками. и в норме вам никогда не стоит трогать их руками.
Возможно, вам лучше даже и не знать, Возможно, вам лучше даже и не знать, как они выглядят.
как они выглядят. Единственное, что с ними нужно делать --
держать в секрете и бэкапить при необходимости.
Публичные ключи принято называть отпечатками пальцев. Фингерпринт позволяет отличать конкретный
клиент собеседника и быть уверенным, что его не подмененили.
Список фингерпринтов для конкретного аккаунта Список фингерпринтов для конкретного аккаунта
не является чем-то секретным или важным. не является чем-то секретным:
Клиентские приложения сами анонсируют свои фингерпнинты клиентские приложения сами анонсируют свои фингерпнинты на сервере
и обычно автоматически пополняют список чужих. и автоматически пополняют список чужих.
Значение имеют только те фингерпринты, которые вы пометили как довереные. Значение имеют только те,
которые вы пометили как фингерпринты довереных клиентов.
В идеале, человек должен лично при встрече В идеале, человек должен лично при встрече
или по уже довереному и безопасному каналу связи или по уже довереному и безопасному каналу связи
сказать вам "Да, фингерпринт XXX принадлежит моему устройству" сказать вам "Да, фингерпринт XXX принадлежит моему устройству"
и только после этого вы помечаете XXX доверенным. и только после этого вы помечаете XXX доверенным.
Обычно в интерфейсе это просто проставление чекбокса или сканирование QR-кода. Обычно в интерфейсе это просто проставление чекбокса или сканирование QR-кода.
Политику доверия и недоверия можно поменять в настройках вашего клиента,
некоторые клиенты для удобства довериют любым новым фингерпринтам по умолчанию, Некоторые клиенты для удобства пользователя
но я не стал бы рекомендовать использовать такую политику. довериют любым новым фингерпринтам контактов по-умолчанию,
но я не стал бы рекомендовать использовать такую политику,
это легкомысленно и небезопасно.
Политики доверия или недоверия
можно посмотреть или поменять в настройках вашего клиента.
Список доверенных фингерпринтов используется в момент отправки сообщения: Список доверенных фингерпринтов используется в момент отправки сообщения:
OMEMO творит какую-то магию с жонглированием ключами и
ни один клиент, кроме перечисленных в списке на момент зашифровки, ни один клиент, кроме перечисленных в списке на момент зашифровки,
не сможет его впоследствии расшифровать. не сможет его впоследствии расшифровать.
Передать как-то доверие в прошлое невозможно. Передать как-то доверие в прошлое, увы, невозможно.
## Реалии OMEMO и XMPP ## Реалии OMEMO и XMPP
### Chat History and Synchronisation ### Chat History
Вообще, XMPP поддерживает хранение истории переписок на сервере. Вообще, XMPP поддерживает хранение истории переписок на сервере.
За это отвечает `XEP-0313: Message Archive Management`. За это отвечает **XEP-0313: Message Archive Management**.
В реальности поддержка этого XEP, В реальности поддержка этого XEP,
политика хранения истории и особенно сроки хранения сообщений политика хранения истории и особенно сроки хранения сообщений
зависят от конкретного сервера. зависят от конкретного сервера.
Рассчитывать на бессрочное по-умолчанию хранение всех переписок не стоит. Рассчитывать по-умолчанию на бессрочное хранение всех переписок не стоит.
Чаще всего ответственность за хранение переписок лежит исключительно на вас В конечном счёте,
ответственность за хранение переписок лежит исключительно на вас
и это разумное место для применения local-first подхода. и это разумное место для применения local-first подхода.
С практической точки зрения С практической точки зрения
@ -154,8 +165,10 @@ is actually based on XMPP, but incompatibly altered and defederated.
из непродолжительного офлайна из непродолжительного офлайна
или поможет с синхронизацей текущей переписки между разными устройствами. или поможет с синхронизацей текущей переписки между разными устройствами.
### Synchronisation
За бесшовное переключение между клиентами отвечает За бесшовное переключение между клиентами отвечает
`XEP-0280: Message Carbons`. **XEP-0280: Message Carbons**.
До его внедрения можно было переключиться с телефона на лэптоп До его внедрения можно было переключиться с телефона на лэптоп
и пялиться в загруженную историю переписки, и пялиться в загруженную историю переписки,
состоящей только из входящих сообщений от собеседника. состоящей только из входящих сообщений от собеседника.
@ -172,11 +185,16 @@ is actually based on XMPP, but incompatibly altered and defederated.
когда не получается прочитать своё же сообщение. когда не получается прочитать своё же сообщение.
Логичное, но неприятное следствие: Логичное, но неприятное следствие:
Новый клиент, который не был в списке доверенных на момент отправки сообщений, Новый клиент или старый,
который не был в списке доверенных на момент отправки сообщений,
получит историю из MAM, но не сможет её расшифровать. получит историю из MAM, но не сможет её расшифровать.
Да, даже ваши сообщения.
Теоретически, перепаковка сообщений Теоретически, перепаковка сообщений
на старых доверенных клиентах вроде как возможна, на старых доверенных клиентах вроде как возможна,
но на практике, никто такое пока не имплементировал. но на практике, никто такое пока не имплементировал
и важные вещи придётся пересылать вручную.
### Message Editing
Тут же стоит отметить, что такие простые и понятные на первый взгляд фичи Тут же стоит отметить, что такие простые и понятные на первый взгляд фичи
как редактирование и удаление сообщений вообще-то полагаются на как редактирование и удаление сообщений вообще-то полагаются на