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
acfcf7e45e
commit
a3621507f6
1 changed files with 42 additions and 24 deletions
|
|
@ -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>
|
||||
Only you and the person you’re messaging can read the messages.
|
||||
Not even the server owner or your carrier has the keys
|
||||
needed to decrypt or modify them.
|
||||
Not even the server owner has the keys needed to decrypt or modify them.
|
||||
|
||||
**XMPP** is an extensible protocol for instant messaging.
|
||||
It's open, decentralized, and mature.
|
||||
|
|
@ -55,7 +54,6 @@ it on a <a
|
|||
|
||||
Here I'm going to explain some basic ideas behind e2e.
|
||||
|
||||
Вы можете пропустить этот раздел
|
||||
Если основные концепции и терминология вам знакомы,
|
||||
то можете смело пропустить этот раздел
|
||||
и перейти к особенностям их практического применения касательно XMPP.
|
||||
|
|
@ -104,48 +102,61 @@ is actually based on XMPP, but incompatibly altered and defederated.
|
|||
|
||||
### Keys, Fingerprints and Trust
|
||||
|
||||
Как и положено любому ассиметричному шифрованию,
|
||||
в OMEMO используются приватные и публичные ключи.
|
||||
OMEMO построен вокруг Double Ratchet Algorithm.
|
||||
Там внутри всё очень интересно,
|
||||
но нам для практического применения важно только то,
|
||||
что каждый клиент пользователя хранит в себе какие-то там ключи,
|
||||
и умеет получать из них какой-то там хэш,
|
||||
который принято называть fingerprint.
|
||||
|
||||
Приватные обычно как-то автоматически управляются XMPP клиентом
|
||||
Ключи обычно как-то автоматически управляются XMPP клиентом
|
||||
и в норме вам никогда не стоит трогать их руками.
|
||||
Возможно, вам лучше даже и не знать,
|
||||
как они выглядят.
|
||||
Возможно, вам лучше даже и не знать, как они выглядят.
|
||||
Единственное, что с ними нужно делать --
|
||||
держать в секрете и бэкапить при необходимости.
|
||||
|
||||
Публичные ключи принято называть отпечатками пальцев.
|
||||
Фингерпринт позволяет отличать конкретный
|
||||
клиент собеседника и быть уверенным, что его не подмененили.
|
||||
Список фингерпринтов для конкретного аккаунта
|
||||
не является чем-то секретным или важным.
|
||||
Клиентские приложения сами анонсируют свои фингерпнинты
|
||||
и обычно автоматически пополняют список чужих.
|
||||
Значение имеют только те фингерпринты, которые вы пометили как довереные.
|
||||
не является чем-то секретным:
|
||||
клиентские приложения сами анонсируют свои фингерпнинты на сервере
|
||||
и автоматически пополняют список чужих.
|
||||
Значение имеют только те,
|
||||
которые вы пометили как фингерпринты довереных клиентов.
|
||||
|
||||
В идеале, человек должен лично при встрече
|
||||
или по уже довереному и безопасному каналу связи
|
||||
сказать вам "Да, фингерпринт XXX принадлежит моему устройству"
|
||||
и только после этого вы помечаете XXX доверенным.
|
||||
Обычно в интерфейсе это просто проставление чекбокса или сканирование QR-кода.
|
||||
Политику доверия и недоверия можно поменять в настройках вашего клиента,
|
||||
некоторые клиенты для удобства довериют любым новым фингерпринтам по умолчанию,
|
||||
но я не стал бы рекомендовать использовать такую политику.
|
||||
|
||||
Некоторые клиенты для удобства пользователя
|
||||
довериют любым новым фингерпринтам контактов по-умолчанию,
|
||||
но я не стал бы рекомендовать использовать такую политику,
|
||||
это легкомысленно и небезопасно.
|
||||
Политики доверия или недоверия
|
||||
можно посмотреть или поменять в настройках вашего клиента.
|
||||
|
||||
Список доверенных фингерпринтов используется в момент отправки сообщения:
|
||||
OMEMO творит какую-то магию с жонглированием ключами и
|
||||
ни один клиент, кроме перечисленных в списке на момент зашифровки,
|
||||
не сможет его впоследствии расшифровать.
|
||||
Передать как-то доверие в прошлое невозможно.
|
||||
Передать как-то доверие в прошлое, увы, невозможно.
|
||||
|
||||
## Реалии OMEMO и XMPP
|
||||
|
||||
### Chat History and Synchronisation
|
||||
### Chat History
|
||||
|
||||
Вообще, XMPP поддерживает хранение истории переписок на сервере.
|
||||
За это отвечает `XEP-0313: Message Archive Management`.
|
||||
За это отвечает **XEP-0313: Message Archive Management**.
|
||||
|
||||
В реальности поддержка этого XEP,
|
||||
политика хранения истории и особенно сроки хранения сообщений
|
||||
зависят от конкретного сервера.
|
||||
Рассчитывать на бессрочное по-умолчанию хранение всех переписок не стоит.
|
||||
Рассчитывать по-умолчанию на бессрочное хранение всех переписок не стоит.
|
||||
|
||||
Чаще всего ответственность за хранение переписок лежит исключительно на вас
|
||||
В конечном счёте,
|
||||
ответственность за хранение переписок лежит исключительно на вас
|
||||
и это разумное место для применения 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, но не сможет её расшифровать.
|
||||
Да, даже ваши сообщения.
|
||||
Теоретически, перепаковка сообщений
|
||||
на старых доверенных клиентах вроде как возможна,
|
||||
но на практике, никто такое пока не имплементировал.
|
||||
но на практике, никто такое пока не имплементировал
|
||||
и важные вещи придётся пересылать вручную.
|
||||
|
||||
### Message Editing
|
||||
|
||||
Тут же стоит отметить, что такие простые и понятные на первый взгляд фичи
|
||||
как редактирование и удаление сообщений вообще-то полагаются на
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue