Рубрика «e2ee»

Скопировали пароль от прода и синхронизировали его между ноутбуком и телефоном. Где он теперь лежит и кто может его прочитать? Я сделал сервис, где честный ответ — «нигде в открытом виде и никто, включая меня». И сейчас покажу строку из живой базы, чтобы это доказать.

Это первая статья про Copy Sync — приватный кроссплатформенный обмен буфером обмена. Я не собираюсь его вам продавать. Я хочу разобрать одну инженерную задачу: как построить сервер, которому физически нечего у вас украстьЧитать полностью »

Привет.

Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.

В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза “end-to-end encryption”? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?

Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.

Читать полностью »

Когда смотришь на существующие self-hosted мессенджеры, часто видишь одно из двух: либо сложную инфраструктуру, которую непросто развернуть (Matrix/Synapse), либо минимализм без шифрования. ONYX — это попытка найти середину: простой в развёртывании сервер, полноценное E2E-шифрование и режим работы в локальной сети без интернета вообще.

Архитектура проекта

Компонент

Технология

Клиент

Flutter (Android, Windows, macOS, Linux)

Сервер

Node.js — Express + express-ws + ws

База данных

MariaDB + Redis (сессии, кэш)

Читать полностью »

Ад — это чересчур уверенные в себе разработчики, пишущие собственную криптографию - 1


Чересчур уверенные в себе разработчики, пишущие собственный криптографический код, были проклятием отрасли информационной безопасности ещё до того, как она вообще стала отдельной отраслью.

Само по себе это необязательно плохо, несмотря на то, что одна из аксиом информационной безопасности запрещает делать именно это. Написание криптографического кода (но не его развёртывание или публикация!) — важный первый шаг в обучении алгоритмам.

Я заметил такую тенденцию (как в примере с Session): разработчики некорректно утверждают, что не реализуют собственную криптографию, ведь они используют низкоуровневую криптографическую библиотеку.

Эта ошибка свойственна не только сомнительным приложениям, форкающим мессенджеры со сквозным шифрованием, чтобы вырезать прямую секретность (forward secrecy).Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js