От мира криптографии я далёк, так что выискивать недостатки в протоколе для меня — гиблое дело. Однако, немного изучив механику работы Телеграма, я понял, что для его «взлома» их и не нужно. Как известно, информация считается достаточно защищенной, если затраты на получение доступа к ней у взломщика превысят её потенциальную стоимость. Если на мгновение поверить в утверждения создателей о том, что алгоритмы нерушимы, то становится очевидно, что с этой стороны информация защищена более чем. Следовательно, скорее всего, те же самые ФСБ не станут напрасно тратить силы на попытки взлома сервера и т.д., а попробуют найти какую-нибудь другую лайзеку. И, что самое интересное, лазейка настолько очевидна, что странно то, как мало людей замечают и обсуждают её.
Что же это за лазейка? Это идентификация устройства по SMS и возможность одновременного использования Телеграма на нескольких устройствах. Дело в том, что когда вы заходите на аккаунт телеграма с двух разных устройств, то сообщения вам будут приходить одновременно на оба устройства. То есть, фактически, спецслужбам достаточно лишь получить доступ к вашему аккаунту и они смогут читать все ваши логи. Эта мысль кажется очевидной, однако ведь есть множество способов изменить этот факт, но о них ниже. Сейчас — один довольно очевидный способ того, как спецслужбы могут этот доступ получить не ломая сервера и не применяя методы терморектального криптоанализа. И ответ очень прост — операторы мобильной связи. Ведь для первичной активации аккаунта на устройстве вам необходимо вести код из SMS, который присылается посредством сервисов этих операторов. Думаю, тому же ФСБ/АНБ/etc совершенно ничего не стоит немного надавить на операторов и заставить их хранить все SMS с кодами для активации телеграмма, если сохранение SMS, конечно, не выполняется у оператора автоматически, в этом случае им нужно лишь применить некий фильтр, чтобы отделить эти смс от прочей кучи. Кроме этого, ФСБ, конечно же, с большой вероятностью обладает информацией о том, какой номер вы используете для авторизации. Дальше всё элементарно: сотрудник спецслужб запускает телеграм с своего устройства и запрашивает авторизацию телеграма по вашему номеру. Оператор связи в этот момент отлавливает нужную СМС и делает так, чтобы она не дошла до вас и вы не узнали об этой попытки авторизоваться. Затем он просто сообщает сотруднику код идентификации и вуаля! — ФСБ сидит на вашем аккаунте одновременно с вами и читает все ваши логи. И никаких взломов не потребовалось.
И сразу же возникает вопрос: зачем так заострять внимание на непобедимости системы шифрования, выставлять огромные награды за поиск уязвимостей, если, по сути, существует настолько огромная дыра в защите, которую никто не собирается исправлять?
Теперь некоторые мои мысли о том, как же, собственно, можно устранить эту проблему без введения дополнительных вводов паролей, чего, как я понимаю, не желают создатели и что, впрочем, понятно, — ведь это достаточно удобно.
Я предлагаю дать возможность пользователям выбирать из двух режимов:
— Стандартный режим
— Режим «секретности»
Стандартный режим — это то, что из себя представляет телеграм сейчас. Удобный и быстрый месседжер для тех, кому просто нравится его скорость и прочие плюшки и кому ненужно супернавороченное шифрование.
«Секретный» — режим, включаемый тогда, когда вам нужно обсудить то, до чего не должны добраться даже спецслужбы.
В первую очередь, при включении этого режима, генерируется некий уникальный ключ устройства и «вшивается» в клиент телеграма, чтобы его никаким образом нельзя было узнать, а при каждом входе в телеграм во время работы «секретного» режима заново генерируется ключ устройства и сравнивается с уже имеющимся. Одновременно с этим запрещается вход на устройство с других компьютеров. Если же этот вход всё же совершается, то для того, чтобы получить доступ к аккаунту, необходимо указать «вернуться в стандартный режим». Это так же можно сделать и после завершения разговора, который вы скрываете. При возвращении в стандартный режим все ваши сообщения, отправленные за время работы в «секретном» режиме безвозвратно удаляются, причем и с вашего аккаунта и с аккаунта собеседника, и, таким образом, самое страшное, что может случиться — разговор оборвется посередине. Зато вы точно будете знать, что кто-то пытался вас подслушать.
Как вариант, при заходе со стороннего устройства можно и вовсе убрать всякую возможность выбора и в случае такого события все сообщения автоматически удалятся без предупреждения и зашедший даже не узнает о том, что вы были в секретном режиме и с кем-то переписывались, тогда как вам придет уведомление о попытке входа. А можно пойти по другому пути и просто сделать выбранные диалоги доступными лишь для устройства, чей ключ совпадает со сгенерированным ключом, а при входе с другого устройства так же посылать об этом уведомления.
В общем, как видно, вариантов реализации масса, а я не перечислил и малой части всего, что можно придумать. И только полное устранение данной проблемы стоит переходить к тестированию надежности шифрования. Буду рад вашим поправкам, если я в чем-то ошибаюсь.
Автор: Lelushak