Хобрук: Ваш путь к мастерству в программировании

Как алгоритм Signal Double Ratchet справляется с несколькими клиентами?

У меня есть только самые базовые знания о методах безопасности и шифрования, и я хотел бы знать, как обрабатываются приложения с несколькими получателями в мессенджере Signal (в очень краткой форме, без необходимости читать спецификацию). Очень наивно и упрощенно я бы сказал, что отправитель сообщения владеет открытым ключом своего получателя, который он использует для шифрования симметричного ключа, который, в свою очередь, используется для шифрования фактической полезной нагрузки сообщения. Но как это работает, если у получателя есть, например, мобильное и десктопное приложение. Оба должны получить сообщение, но у них, скорее всего, разные пары ключей (если только они не обмениваются закрытым ключом каким-либо образом, что, в моем понимании, не очень хорошая идея). Наивным решением может быть отправитель, дважды шифрующий и отправляющий сообщение с двумя разными ключами.

02.05.2017

Ответы:


1

В подобных решениях при реализации шифрования на нескольких устройствах закрытые ключи либо переносятся на все устройства (общий закрытый ключ), либо все открытые ключи публикуются в каталоге для обнаружения. Чтобы обнаружение было заслуживающим доверия, оно должно быть построено на структуре журнала с защитой от несанкционированного доступа, например, такой, как Google Key Transparency.

02.10.2017
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..