Security Week 2303: проблемы шифрования данных в мессенджере Threema

Security Week 2303: проблемы шифрования данных в мессенджере Threema
В конце прошлого года исследователи из швейцарского университета ETH Zurich опубликовали работу , в которой описали семь уязвимостей в мессенджере Threema. Этот мессенджер при передаче сообщений использует сквозное шифрование, то есть содержание переписки в идеальных условиях должно быть доступно только отправителю и получателю. Threema позиционируется как одно из наиболее защищенных средств коммуникации в Сети. Естественно, что информация об уязвимостях в таком инструменте привлекла внимание. На прошлой неделе разработчики мессенджера опубликовали отзыв на исследование , в котором раскритиковали не обнаруженные проблемы, а, скорее, их интерпретацию.


В любом случае все обнаруженные уязвимости в протоколе шифрования закрыты. Более того, публикация исследования совпала с релизом нового протокола коммуникации в Threema — Ibex. Он предположительно решает фундаментальный недостаток старого протокола: в нем не была реализована концепция прямой секретности (forward secrecy), при которой взлом ключей для определенной сессии не позволяет расшифровать более раннюю или более позднюю переписку. Критика работы со стороны Threema отчасти обоснована, и оценить ее лучше всего на примере двух самых серьезных проблем, выявленных исследователями из ETH Zurich.

Разногласия между авторами исследования и компанией Threema в основном касаются практической эксплуатации уязвимостей. Исследователи утверждают, что из семи уязвимостей две теоретически можно эксплуатировать без компрометации приложения на телефоне пользователя или серверов Threema. Остальные пять в любом случае предполагают взлом либо того, либо другого, поэтому и ценность эти проблемы представляют скорее научную. Если у атакующего есть возможность контролировать работу приложения на телефоне, никаким шифрованием это уже не исправишь. Из двух серьезных проблем первая теоретически позволяет атакующему подключиться к серверам Threema от имени жертвы. Это становится возможно в случае кражи одного из временных ключей шифрования, которые используются для защиты конкретного сеанса связи.

Это действительно серьезный недостаток: временный ключ ни при каких обстоятельствах не должен служить средством перманентной авторизации пользователя. Да, но как украсть этот временный ключ? В Threema утверждают, что это возможно, только если злоумышленник имеет доступ к данным, которые мобильное приложение хранит в оперативной памяти смартфона. А если так, то мы опять получаем сценарий, когда телефон жертвы полностью скомпрометирован и про шифрование можно уже не переживать.

Вторая теоретическая атака выглядит еще интереснее, ее подробно (но простыми словами) описал разработчик Threema здесь . В ней используется платная фича мессенджера , позволяющая приобрести кастомизированный идентификатор. Это открывает возможность ассоциировать с этим новым идентификатором произвольный публичный ключ, который может совпадать с публичным ключом сервера Threema. Если заставить жертву отправить специально подготовленное сообщение (которое может выглядеть примерно так: u9j6ߓ'jjखԻ^߃1כW:-́;ܡRA) пользователю с кастомным идентификатором, аккаунт жертвы может быть частично скомпрометирован. А именно: атакующий сможет перехватывать метаданные сообщений (но не их содержимое) и не доставлять некоторые из них пострадавшему пользователю.

То странное сообщение, которое надо отправить жертве и заставить ее переслать подготовленному пользователю, — это и есть публичный ключ. Чтобы его узнать, нужна большая вычислительная мощность: потребуется арендовать примерно 8 тысяч процессорных ядер на 24 часа. Атака не всегда срабатывает, поэтому для надежности надо заставить жертву отправить «мусорное» сообщение больше 200 раз подряд. А также для атаки надо оплатить кастомизированный идентификатор, что еще больше усложняет проблему. Короче говоря, по всем разумным критериям эта атака на практике не реализуема.

Разница в интерпретации результатов работы понятна. У исследователей в принципе нет задачи найти обязательно работающий способ взлома Threema. Они скорее указывают на теоретические недостатки примененных в мессенджере протоколов шифрования, которые действительно имели место. Это важно: продукт, основным преимуществом которого является защита коммуникаций, должен соответствовать актуальным научным разработкам в области шифрования данных. Другого способа проверить истинность заявлений разработчика о «максимальной защите ваших данных» нет. У Threema при этом есть не менее очевидная претензия к исследователям: они подают результаты своей работы как серьезный недостаток защищенного мессенджера, что достаточно далеко от реальности. Ученые беспокоятся о правильной модели безопасности при шифровании данных — бизнесмены переживают из-за испорченной репутации. Средства защищенного общения должны подвергаться подобным аудитам. В идеале технологии шифрования должны оцениваться до внедрения в продакшн. Исследование не нашло каких-либо действительно серьезных дыр в Threema, но закрыты они были путем внедрения нового протокола, который пока никто не изучал.

Что еще произошло:

В роутере Asus RT-AX82U обнаружена и закрыта уязвимость, позволяющая обойти процесс авторизации пользователя.

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

Серьезный взлом произошел в компании CircleCI. В начале января компания сообщила об инциденте, а недавно стала известна его причина: компьютер сотрудника был заражен вредоносной программой, которая похитила куки для доступа к корпоративным ресурсам.
threema
Alt text

Мир сходит с ума, но еще не поздно все исправить. Подпишись на канал SecLabnews и внеси свой вклад в предотвращение киберапокалипсиса!