Size: a a a

2021 November 02

БГ

Бензофуран Гетероцик... in Distributed
чем более синхронизированно - тем лучше👌🏻
источник

БГ

Бензофуран Гетероцик... in Distributed
А так - я сейчас смотрю как работает механизм двойного храповика (в реализации, схожей с его реализацией в Signal) и наткнулся там на интересную такую штуку - выработка общего секрета через X3DH (расширенный тройной алгоритм Диффи-Хеллмана)
источник

БГ

Бензофуран Гетероцик... in Distributed
Вкратце суть - на пикче.
Проводится четыре выработки общего секрета через обычный DH, потом результаты конкатенируются и суются в KDF (функцию генерации ключей). Выхлоп KDF и есть результат X3DH.

Пояснение к пикче выше:
IKa - приватный ключ идентификации Алисы
EKa - эфемерный (одноразовый) приватный ключ
IKb - публичный ключ идентификации Боба
SPKb - многоразовый подписанный (ключом идентификации) публичный ключ Боба
OPKb - одноразовый публичный ключ Боба
источник

БГ

Бензофуран Гетероцик... in Distributed
Выглядит так будто это вполне можно применять, если ключ идентификации принять за собственно юзерский ключ, а эфемерный ключ принять за ключ конкретного устройства.
Только в такой вариации надо будет добавить источник рандома (которым в изначальном случае являются эфемерный ключ Алисы и одноразовый ключ Боба)
источник

PZ

Pavel Zlatovratskii in Distributed
А зачем в этой схеме сервер?
У него есть данные о своих нодах, есть данные о нодах респондентов. Попинговать - процедура недолгая.

Стоит ли синкаться с респондентами... не уверен.
источник

БГ

Бензофуран Гетероцик... in Distributed
Ну в принципе ниже я обозначил вариант с заменой сервера на меш-лайк сеть
источник

БГ

Бензофуран Гетероцик... in Distributed
Но сервер как однозначное место синхронизации лично мне кажется удобнее.
Возможно я ещё не полностью освоился в децентрализованных штуках)
источник

PZ

Pavel Zlatovratskii in Distributed
Сервер будет удобнее если туда всегда сливать всю историю. Но это кажется не очень секьюрно (даже если история шифрованная).
источник

БГ

Бензофуран Гетероцик... in Distributed
Не обязательно историю всю заливать на сервер
Да и какие могут быть проблемы с секурностью хранения шифрованной истории?
источник

PZ

Pavel Zlatovratskii in Distributed
Например  вместе с историей ты сливаешь метаданные - факты о том когда ты получал сообщения. Плюс мы обсуждали вопросы с компрометацией ключа....

А если ты не заливаешь всю историю на сервер, то как её восстанавливать?
источник

БГ

Бензофуран Гетероцик... in Distributed
Если мы допускаем что шифрование надёжно
источник

PZ

Pavel Zlatovratskii in Distributed
Если мы допускаем что шифрование надёжно то храповик не нужен...
источник

БГ

Бензофуран Гетероцик... in Distributed
Храповик защищает не от уязвимостей шифрования
источник

БГ

Бензофуран Гетероцик... in Distributed
Он усиливает защиту для случаев когда ключ скомпрометирован
источник

PZ

Pavel Zlatovratskii in Distributed
Ну так в этом и проблема: ты сначала используешь храповик для защиты от компрометации ключа... а потом расшифрованные сообщения кладёшь на не совсем твой сервер, зашифровав одним ключом.

И зачем тогда делали храповик?
источник

БГ

Бензофуран Гетероцик... in Distributed
а кто говорил про хранение расшифрованных сообщений на сервере? 0_о
источник

БГ

Бензофуран Гетероцик... in Distributed
точнее слабозащищённых
источник

PZ

Pavel Zlatovratskii in Distributed
Не расшифрованных. А зашифрованных ключом. Который может оказаться компрометированным.

Ну или хранение сообщений вместе с ключом храповика что то же самое.

А без этого вся синхронизация смысла не имеет - ты скачал сообщения, но не можешь их прочитать пока не состыкуешься с узлом, где хранится ключ храповика? И зачем тогда скачивал?
источник

БГ

Бензофуран Гетероцик... in Distributed
Синхронизировать стейты храповиков вместе с сообщениями, не?
источник

PZ

Pavel Zlatovratskii in Distributed
И? Тогда у тебя всё равно расшифрованный дамп с сервера выдаёт всё.

Мы защищаемся от компрометации ключа или нет?
источник