Два месяца спустя. Что я понял, пока пытался сделать E2EE-мессенджер
Два месяца назад я опубликовал статью про свой pet-проект — E2EE-мессенджер.
Честно говоря, я не ожидал, что она вызовет такой интерес. Прилетели комментарии, замечания, вопросы и довольно полезная критика. Где-то меня поправили по делу. Где-то заставили пересмотреть решения, которые мне самому на тот момент казались нормальными.
И, что самое приятное, часть вещей, которые тогда были только в roadmap, за это время удалось реализовать.
Первая часть:
https://habr.com/ru/articles/1030854/
Проект:
https://github.com/vaazhen/chaos-e2ee-messenger
Вообще, за эти два месяца я понял одну простую вещь.
Написать чат оказалось не так сложно.
Написать E2EE-мессенджер — уже сложнее.
А вот понять, почему Signal делали столько лет, оказалось совсем другой историей.
Сначала кажется: ну есть же документация, есть X3DH, есть Double Ratchet, есть WebCrypto, есть статьи, есть спецификации. Осталось просто аккуратно всё собрать.
Примерно в этот момент где-то вдалеке начинает смеяться инженер из Signal.
Сразу оговорюсь: chaos messenger — это не замена Signal и не “готовый безопасный мессенджер”, а open-source pet-проект, на котором я разбираюсь, как E2EE-системы устроены изнутри.