Французский защищенный госмессенджер взломан сразу после запуска
Французский правительственный мессенджер Tchap, созданный как альтернатива Telegram и WhatsApp, был взломан исследователем безопасности в течение двух дней после запуска. Преимущество мессенджера в том, что он защищает сквозным шифрованием все чаты и хранит данные на французских серверах.
Взлом французского Telegram
Французское правительство запустило собственный мессенджер под названием Tchap, который должен защитить переписку госслужащих от взлома иностранными хакерами, а также от манипуляций с данными со стороны технологических компаний. Исходный код мессенджера был опубликован на GitHub, а в магазинах для iOS и Android появились соответствующие приложения. Через два дня в Tchap была обнаружена серьезная уязвимость, которую нашел исследователь безопасности Батист Робер (Baptiste Robert), в интернете известный также как @fs0c131y или Elliot Alderson.
Доступ к мессенджеру имеют только правительственные служащие — для регистрации требуется наличие электронного почтового ящика, который оканчивается на @gouv.fr или @elysee.fr. Но Робер сумел создать себе аккаунт в мессенджере несмотря на то, что не является госслужащим. Он просто добавил @elysee.fr в конце своего адреса, и этого оказалось достаточно для регистрации. После этого исследователь получил возможность просмотреть групповые публичные чаты — так называемые «залы» — в мессенджере, а также увидел информацию профилей сотрудников различных министерств.
Техника взлома
В процессе регистрации нового пользователя в Tchap указанный им электронный адрес сверяется со списком существующих правительственных почтовых ящиков. Проанализировав код пакета Tchap в магазине Google Play, Роберт с помощью прокси-инструмента Frida изменил запрос на регистрацию аккаунта таким образом, чтобы указать в нем специально созданный адрес. Этот адрес представлял собой формулу fs0c131y@protonmail.com@presidence@elysee.fr, где presidence@elysee.fr — это официальный ящик Елисейского дворца, резиденции президента Франции.
Второй части оказалось достаточно, чтобы служба каталогов успешно соотнесла этот адрес со списком правительственных почтовых ящиков. Но код, который анализировал адрес для проверки на стороне сервера, был создан с помощью модуля Python email.utils. Поэтому он обрезал все символы после первого действительного адреса. В итоге Роберт получил письмо для проверки учетной записи на fs0c131y@protonmail.com — сервер решил, что данный адрес является официальным правительственным аккаунтом.
Реакция властей
Роберт связался с Елисейским дворцом, который, в свою очередь, связался с Межведомственным управлением цифровых информационных систем и коммуникаций (DINSIC), создателем Tchap. Разработчики заморозили регистрацию новых учетных записей в мессенджере примерно на час. Они развернули патч и полностью восстановили сервис чуть более трех часов спустя. DINSIC подчеркнуло, что у Робера был доступ только к общедоступным «залам», то есть к видимым для всех пользователей сообщениям, но не к частным диалогом или конфиденциальной информации.
Робер сообщил об уязвимости разработчикам протокола Matrix, который используется в Tchap. Чтобы решить проблему, они перестроили код аутентификации. Как выяснилось, уязвимость существовала с июля 2018 г. Французское правительство уже успело объявить баунти-программу по поиску «дыр» в новом мессенджере.
Сквозное шифрование
Вопрос о разработке защищенного мессенджера стал ребром после предвыборной кампании нынешнего президента страны Эмманюэля Макрона (Emmanuel Macron), во время которой его команда усиленно пользовалась Telegram. Французское правительство до сих пор использует Telegram и WhatsApp для многих конфиденциальных бесед. Проблема в том, что Telegram не применяет сквозное шифрование по умолчанию, то есть сотрудники компании легко могут читать переписку президента Франции. Кроме того, сервера WhatsApp и Telegram не находятся на территории Франции.
Преимуществом Tchap, разработка которого началась летом 2018 г., является то, что в нем предусмотрено сквозное шифрование, и сообщения хранятся на французских серверах. В то же время он представляет собой не решение из области спецсвязи, а обычное приложение для Android, для работы которого можно использовать общественный интернет. Французские власти отмечают, что мессенджер до сих пор находится в стадии бета-тестирования.
Мессенджер был создан не с нуля. DINSIC использовало в качестве основы открытый проект Riot, основанный на также открытом протоколе Matrix. Этот протокол и позволил обеспечить в Tchap сквозное шифрование. Riot — это клиент Matrix для десктопов и мобильных устройств, который позволяет присоединяться к коллективным беседам, вести приватные разговоры, делиться изображениями и т. д.
Matrix не единственный протокол с такими возможностями — ему приходится конкурировать, например, с Signal Protocol который используется в мессенджерах WhatsApp и Signal, а также в секретных чатах Messenger и Google Allo. В последних двух мессенджерах сквозное шифрование не используется по умолчанию, оно распространяется только на секретные чаты, как и в Telegram.