Не знаю, что может быть приятнее, чем осознание того, что ты общаешься с кем-то: a) В своём собственном мессенджере; б) В мессенджере, где ты знаешь алгоритм шифрования и понимаешь, что в случае любой утечки твои данные физически почти невозможно скомпрометировать.
Это, наверное, одна из разработок, за которые я поистине горжусь. Столько времени и сил, не только моих, было вложено в этот проект. Трудно даже приблизительно оценить.
Благодарности: #
Всем неравнодушным, кто так или иначе помогал мне в создании этого проекта, выражаю большую благодарность. В частности, спасибо Celestian за участие в разработке мессенджера и протокола в частности. За интерес, проявленный к моей инициативе, и готовность тратить свои ресурсы на Cloudy. За терпение в выслушивании моих идей и их конструктивную критику. Наверное, если бы не она, я бы не имел ни такого протокола, ни приложения в целом.
Этот пост будет немного отличаться от других как своей структурой, так и содержанием, а также наличием не одной части. В первой я расскажу, как пришел к этой идее и почему решил взяться за её реализацию. А во второй, для тех энтузиастов, кому интересна айтишечка, я постараюсь изложить информацию более технически. Конкретно эта часть будет посвящена идее.
Интерес к криптографии. #
Этот проект скорее, не столько про разговоры, мессенджер, как способ обмена информацией, сколько про шифрование данных и в целом того, как это выглядит внутри. Еще давненько, ко мне начала приходить мысль, что в нашей жизни без шифрования очень туго, не конкретно в наше время, а в целом. Начиная с древних времен заканчивая нами. У всех бывало такое, когда хочется одному или нескольким людя сказать что-то, словно на ушко, не имея при этом физической возможности. Это далеко не новость. Куда интереснее, как это сделать. В каком-то году мне в рекомендации ютуба попалось видео, где рассказывали, что вообще такое энигма и что она делала во время 2-й мировой. На тот момент я слабо имел представление о том, что это такое, и ради интереса решил глянуть. В итоге она оказалось настолько хитрым механизмом, что даже сейчас она производит впечатление. К слову, во время 2-й мировой потребовалось несколько лет чтобы взломать этот механизм. После этого видео я начал копать дальше в этом направление статью за статей, видео за видео и так далее. Наверное, именно то видео положило начало моего интереса ко всему, что связанно с криптографией.
Идея создания Cloudy. #
После событий 24 августа 2024 года началась глобальная паника, что сервера откроют и прочитают все переписки. Вряд ли многие задумываются о том, как именно они защищены и почему доверяют этой защите. Порой достаточно лишь услышать: ‘Самый безопасный в мире’. Так вот, не мне, конечно, это объяснять, но отчасти это почти нереализуемо, так как сообщения, пусть и не зашифрованы сквозным шифрованием (в обычных чатах), они по-прежнему имеют вид нечитаемого текста. “В статье содержится утверждение, что Telegram хранит пользовательские данные в виде обычного текста. Это неправда. Всё, что хранится в облаке Telegram, надёжно зашифровано”. Как это ‘надёжно зашифровано’ сказать сложно, ибо в интернете об этом не так уж и много информации. Тем не менее, по умолчанию сквозное шифрование не применяется (шифрование, при котором прочитать содержимое могут только отправитель и получатель). И тут я задался вопросом: если не смотреть на коммерческую часть, почему никто не делает свои мессенджеры очень защищёнными? Это же просто приятнее, что ли? И тут я решил: а почему бы мне самому не создать свой продукт, свой же криптографически защищённый мессенджер? С этой мысли можно сказать, и начинается Cloudy. Мне как и другим, свойственно всему давать особое значение, ибо просто создать приложение было бы очень скучно. В названии Cloudy (от англ. ‘облачно’) скрыта не менее интересная история. Если представить ясно-облачную погоду, когда на небе видны лишь облака, а за ними прячется голубое небо и яркое солнце, мы понимаем, что за облаками происходит что-то важное, даже если мы этого не видим. Так и у меня: каждый пользователь, создавая свою связку ключей, образует облако, которое шифрует все данные, проходящие через него. Только он может видеть, что происходит за этими облаками. В результате все клиенты выстраивают большое, неприступное другим глазам небо.
Начало создания и первые трудности. #
Из-за того что ранее я не особо пересекался с real-time chat’ами, было непонятно вообще, что делать, откуда начать, как это вообще сделать. А ещё непонятнее было то, что мне нужно было не просто отправлять сообщения и где-то их хранить, а потом показывать. Их нужно было зашифрованными хранить -> расшифрованными показывать -> зашифрованными отправлять. Передо мной встала одна большая задача — создать рабочий продукт. 29 августа 2024 года были написаны первые строки кода, проект из идеи перешел на стадию реализации.
Финишная прямая и открытое бета-тестирование. #
Спустя ≈2 месяца у меня есть готовый мессенджер, пока что только с одной фичей — это личный диалог с собственным алгоритмом шифрования. Также по мелочи: возможность разрешать/запрещать добавлять себя в контакты через свою публичную ссылку, смотреть свои ключи шифрования… Согласен я бы сам себе не поверил, если бы прочитал аналогичный текст, поэтому счастливым обладателям телефонов на Android OS была доступна возможность попробовать его в действии своими руками. Так что любые желающие могли протестировать Cloudy в действии, эта акция была ограничена двумя-тремя неделями(старт с следующего понедельника), потом я отключил проект, ибо надо было платить.