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
d56506351e
commit
32a4df554d
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>
|
**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.
|
Only you and the person you’re 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 <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
|
||||||
|
|
||||||
Тут же стоит отметить, что такие простые и понятные на первый взгляд фичи
|
Тут же стоит отметить, что такие простые и понятные на первый взгляд фичи
|
||||||
как редактирование и удаление сообщений вообще-то полагаются на
|
как редактирование и удаление сообщений вообще-то полагаются на
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue