12 защищённых мессенджеров для безопасного общения
Как показывают мировые события, безопасность общения и защита личных данных в любой момент может коснуться каждого. Мессенджеры — одни из наиболее используемых приложений. Именно в них мы делимся самой частной и закрытой информацией. В этой статье я собрал 12 мессенджеров, которые заботятся о защите вашей личности, информации и безопасности общения.
Briar (Android)
Briar был создан для безопасного общения активистов, журналистов и всех остальных, с кого могут спросить за «базар». В отличие от аналогов (например, Telegram), у Briar нет центрального сервера. Вся переписка синхронизируется напрямую между устройствами пользователей.
В случае отсутствия соединения с интернетом Briar может использовать Bluetooth или Wi-Fi. А при наличии сети синхронизация работает на базе Tor. Исходники открыты.
Telegram (Windows, Mac, Android, iOS, веб)
Telegram от товарища Дурова — один из самых популярных мессенджеров на данный момент. И для многих он является синонимом приватности и анонимности. Однако не следует забывать, что возможности защиты ваших данных немного отличаются между платформами. А об анонимности речь вообще не идёт, хотя многие думают, что в Telegram она есть.
В Telegram можно делиться любым привычным контентом, создавать чаты (до 200 000 человек) и каналы. Не стоит забывать про ботов. Есть поддержка голосовых и видео звонков.
По умолчанию переписка не зашифрована, что позволяет синхронизировать общение между клиентами. Для активации end-to-end шифрования нужно использовать специальные секретные чаты.
Ключи шифрования и вся информация по умолчанию хранится на серверах компании. Секретные чаты являются исключением.
Исходный код клиентов открыт, а исходный код серверной части закрыт. Есть возможность использования API для собственных разработок.
Signal (Windows, macOS, Android, iOS)
В продвижении приватных мессенджеров, и в частности Signal, очень помог неуловимый Сноуден. Если он им пользуется и его до сих пор не поймали, значит, можно пользоваться и нам.
Signal создан на основе TextSecure и RedPhone. Здесь можно общаться тет-а-тет и создавать групповые чаты. Никакие данные никогда не передаются на сервера компании. End-to-end шифрование между устройствами включено по умолчанию. Можно совершать голосовые и видео звонки.
Весь исходный код открыт.
Wire (Windows, macOS, Android, iOS, веб)
В мессенджере доступны групповые чаты, видео и аудио звонки, конференции, и всё это с end-to-end шифрованием. Из дополнительных возможностей стоит выделить: возможность поделиться экраном, создание гостевых комнат (для общения с людьми извне), управление командными параметрами, синхронизация между устройствами.
Исходники клиентов и серверной части открыты.
Threema (Android, iOS, веб)
Threema разрабатывали с учётом безопасности данных пользователя. По умолчанию включено end-to-end шифрование, и ваша информация никогда не попадает на сервера компании.
В приложении можно делиться своим местоположением и использовать синхронизацию контактов. Есть голосовые и видео звонки.
Все исходные коды открыты.
Ricochet (Windows, macOS)
Ricochet считается экспериментальным проектом. Его суть заключается в том, что нельзя никому давать ни какие сведения о себе. То есть цель не только в безопасности ваших данных, но и анонимности.
Вы можете начать общение с кем угодно, не раскрывая свою личность и IP-адрес. Никто никогда не сможет узнать, с кем и когда вы переписывались. Серверная часть отсутствует, а соединение происходит с помощью P2P на базе сети Tor.
Ваш логин является секретным адресом сервера. Исходный код мессенджера открыт.
aTalk (Android)
По сравнению с остальными мессенджерами в этой статье, aTalk не такой уж и защищённый. Приложение работает на базе Jabber/XMPP, если вы ещё помните, что это такое. А соединение защищено end-to-end шифрованием с использованием протоколов OMEMO или OTR.
В остальном — это обычный мессенджер.
Session (Windows, macOS, Anroid, iOS)
Session — защищённый и анонимный мессенджер. Для регистрации не требуется указывать почту или номер телефона. Вместо этого вам назначается Session ID.
Серверов у компании нет. Вся работа происходит благодаря пользовательским серверам по всему миру. Вся информация передаётся в обезличенном виде, и никто не может получить к ней доступ или узнать, кому она принадлежит.
End-to-end шифрование, сокрытие IP, групповые чаты, открытые исходники.
Adamant Messenger (Windows, macOS, Android, iOS, веб)
Для работы Adamant Messenger использует блокчейн. Если быть совсем точным, то мессенджер работает на базе Ethereum. В комплекте идёт криптокошелёк для покупки и продажи валюты.
Общение зашифровано end-to-end с помощью таких алгоритмов, как Diffie-Hellman Curve25519, Salsa20, Poly1305, и подписано SHA-256 + Ed25519 EdDSA. Данные никогда не передаются на сервер.
Safe Text (Android, iOS, веб)
Safe Text разрабатывался с целью защиты данных и анонимности своих пользователей. Никто не может узнать, кто, с кем и когда переписывался.
Есть возможность удаления сообщений после отправки на устройствах получателя с поддержкой автоудаления. А снятие скриншотов запрещено приложением.
Status (Android, iOS)
Status работает на базе Ethereum. В приложении есть криптокошелёк и браузер с поддержкой децентрализации. Передача данных осуществляется на основе P2P-соединения между пользователями.
Olvid (Android, iOS)
Никакие данные пользователей Olvid не отправляются на сервер, а для использования приложения не нужно предоставлять личные данные.
Данные передаются через «безопасные каналы». К сожалению, из их описания на сайте мало что понятно.
Шифруйся грамотно! Выбираем мессенджер для безопасной и приватной переписки
Содержание статьи
Недавно на «Хакере» был опрос «Какой мессенджер ты считаешь самым надежным для хакера?», и самый популярный ответ (Telegram) серьезно настораживал. Насколько все далеко зашло, если даже средний читатель «Хакера» уже потерял связь с реальностью после атаки маркетинг-хедкраба (на картинке)?
Мы составили список мессенджеров, чтобы посмотреть, как у каждого из них обстоят дела с безопасностью. В подборку пошли как популярные, так и перспективные в плане безопасности программы. Предупреждаем, что углубляться в техническую сторону мы будем настолько, насколько это необходимо для среднего пользователя, не дальше.
Во многом мы повторили путь авторов серии статей Electronic Frontier Foundation под названием Secure Messaging Scorecard, но выбрали другие критерии — на наш взгляд, более важные.
Критерии
Распространяется ли исходный код мессенджера на условиях одной из свободных лицензий? Если да, то ведется ли разработка открытым методом? Насколько тесно разработчики взаимодействуют с сообществом? Принимают ли pull request’ы? Все это важно учитывать при выборе.
Степень централизации
Здесь возможен один из трех вариантов:
Возможность анонимной регистрации и использования
Для некоторых сервисов телефон может понадобиться только для защиты от спама при регистрации, соответственно, очень просто использовать сервисы аренды номеров для SMS.
В остальных случаях мессенджер плотно привязан к телефону. Это плохо тем, что если не включена двухфакторная аутентификация, то при получении доступа к этому номеру можно зайти в аккаунт и слить все данные. Но даже если двухфакторка включена, все равно остается возможность удалить все данные с аккаунта. Ну и конечно, это, считай, регистрация по паспорту (используем реалии РФ, других не завезли).
Но не все так плохо. Есть мессенджеры, которые позволяют регистрироваться с использованием почтового ящика или учетной записи в социальной сети. Есть и такие, где учетную запись можно создать в самом мессенджере без привязки к чему-то.
Наличие End-to-End Encryption (E2EE)
Некоторые мессенджеры имеют такую функцию по умолчанию, в других ее можно включить, но есть и те, где сквозного шифрования просто нет.
Синхронизация E2EE-чатов
Опять же эта функция пока что встречается не так часто, как хотелось бы. Ее наличие сильно упрощает жизнь.
Уведомление о необходимости проверки отпечатков E2EE
При старте E2EE-чатов некоторые мессенджеры предлагают проверить отпечатки собеседников, другие не предлагают это открыто. Но не все мессенджеры имеют функцию проверки отпечатков.
Запрет делать скриншот секретного чата
Не самая полезная функция, потому что для обхода запрета достаточно, например, иметь под рукой второй телефон.
Групповые E2EE-чаты
Групповые E2EE-чаты обычно не такая уж необходимая функция, но весьма удобная. Правило «больше двух — говори вслух» стоит оставить для детей.
Уведомление о необходимости проверки отпечатков E2EE в групповых чатах
При добавлении нового собеседника, с которым не сверены отпечатки, в секретный групповой чат не все мессенджеры предлагают проверить его отпечатки. Из-за такого упущения теряется смысл секретных чатов.
Защита социального графа
Некоторые мессенджеры собирают информацию о контактах пользователя и другие данные, например кому звонил пользователь, как долго разговаривал. На эту тему есть интересная заметка.
Мы выбрали лишь часть критериев, которые могут сыграть роль при выборе мессенджера. Существуют и другие, но не всегда они связаны с безопасностью. Группа ученых из европейских университетов неплохо разложила все по полочкам в работе Obstacles to the Adoption of Secure Communication Tools (PDF). Также всегда полезно знакомиться с результатами независимого аудита, если они есть. Например, в случае с Signal такой аудит проводился (PDF).
Telegram
Лицензия: формально — GPLv3. Однако важная часть разработки закрыта. Если взглянуть на репозитории, то видно, что в последнее время какое-то движение наблюдалось только в вебовой версии. Увы, в таком виде это скорее иллюзия открытости
Степень централизации: централизованный
Возможность анонимной регистрации и работы: нет
Наличие E2EE: реализованы, но как дополнение. По умолчанию чаты не шифруются
Синхронизация E2EE-чатов: нет. Секретный чат можно использовать только с одного устройства, с другого доступа к нему уже не будет
Уведомление о проверке отпечатков E2EE: нет. Пользователи могут сами зайти в настройки, чтобы сравнить отпечатки
Запрет на скриншоты секретных чатов: есть, но работает не на всех устройствах
Групповые чаты E2EE: нет
Защита социального графа: нет

Мессенджер, созданный командой Павла Дурова, построен на технологии шифрования переписки MTProto. На данный момент частично заблокирован на территории России, но эта блокировка — отдельная тема для разговора.
Мессенджер неоднозначный. Вокруг него много шума, но оправдан ли он? Доступа к исходникам нет, чаты по умолчанию не шифруются, нет защиты социального графа (все твои контакты хранятся на серверах Telegram), нет групповых E2EE-чатов, E2EE-чаты не поддерживаются в настольной версии программы, только в мобильной, мессенджер централизованный, сообщения хранятся на сервере (и они, как уже было отмечено, не зашифрованы), и при всем этом отсутствует возможность анонимной регистрации.
Если ты хочешь использовать Telegram, то для защиты переписки не забывай создавать секретные чаты. В мобильной версии для этого нужно выбрать команду New Secret Chat. Из настольных версий секретные чаты поддерживают только некоторые (например, один из двух клиентов для macOS).
В секретном чате сообщения шифруются и не хранятся на серверах мессенджера. Также нельзя сделать скриншот секретного чата, но ничто не мешает сфотографировать такой чат с экрана.
Signal
Лицензия: AGPLv3
Степень централизации: централизованный
Возможность анонимной регистрации и работы: нет. Кроме номера телефона, других вариантов нет
Наличие E2EE: есть
Синхронизация E2EE-чатов: есть
Уведомление о проверке отпечатков E2EE: нет. Пользователям предлагается сосканировать QR-коды друг у друга или сравнить отпечатки
Запрет на скриншоты секретных чатов: можно включить или выключить
Групповые чаты E2EE: есть
Уведомление о необходимости проверки отпечатков E2EE в групповых чатах: нет
Защита социального графа: есть

Мессенджер Signal разработан американским стартапом Open Whisper Systems, где, кроме двоих основателей, работает всего несколько человек. Для шифрования сообщений используется созданный специально для него криптографический протокол — Signal Protocol. Он применяется для сквозного (end-to-end) шифрования звонков (голосовых и видео), а также обычных сообщений. Протокол Signal с тех пор стали использовать и другие мессенджеры: WhatsApp, Facebook Messenger, Google Allo.
Казалось бы, в этом случае любой мессенджер может стать таким же безопасным, как и Signal. Но, как показывает практика, — нет. В отличие от Signal, где шифрование включено по умолчанию, в этих мессенджерах оно выключено. Для его включения в Facebook Messenger нужно активировать Secret Conversations, а в Google Allo — режим инкогнито (Incognito Mode).
Хоть Signal и централизованный, но код открыт и распространяется по свободной лицензии. У Signal есть поддержка групповых E2EE-чатов, защита социального графа, поддерживаются исчезающие по таймеру сообщения.
Однако не стоит путать защиту с анонимностью. Signal не анонимен: при регистрации нужно указывать номер телефона, к которому мессенджер и привязывается. Что касается исчезающих сообщений, то эта фишка встречается и в других мессенджерах, например в Viber и Telegram (в меню секретного чата нужно выбрать команду Set self-destruct timer).
Viber
Лицензия: проприетарная
Степень централизации: централизованный
Возможность анонимной регистрации и работы: только по номеру телефона
Наличие E2EE: есть, по умолчанию. Также есть секретные и скрытые чаты, которые обеспечивают дополнительную безопасность
Синхронизация E2EE-чатов: нет. Созданный в мобильной версии секретный чат не отобразился в десктопной версии
Уведомление о проверке отпечатков E2EE: нет
Запрет на скриншоты секретных чатов: есть
Групповые чаты E2EE: есть
Уведомление о необходимости проверки отпечатков E2EE в групповых чатах: нет
Защита социального графа: нет
Viber — интересный мессенджер. С одной стороны, он проприетарный, централизованный, привязывается только к номеру телефона, не обеспечивает защиту социального графа. С другой стороны, сквозное шифрование основано на протоколе Signal и включено по умолчанию, даже в настольной версии. Для дополнительной безопасности существуют секретные чаты с возможностью общаться группой.
Секретные чаты позволяют настроить таймер самоуничтожения для каждого сообщения: оно будет удалено через установленное время после просмотра — как с твоего устройства, так и со всех устройств получателей. Сообщения секретного чата защищены от пересылки, а скриншоты или запрещены, или оставляют уведомление на экране чата.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Валерия Губарева
Аналитик в компании Digital Security (@DSecRU)
Россиянам назвали самые безопасные мессенджеры
Почти все мессенджеры утверждают, что используют технологию сквозного шифрования, однако так ли это на самом деле, неизвестно. Об этом, а также о том, какой мессенджер можно назвать самым защищенным, эксперты по кибербезопасности рассказали «Известиям».
Основатель сервиса разведки утечек данных и мониторинга даркнета DLBI Ашот Оганесян отметил, что формально наиболее защищенным мессенджером считается Signal. Однако, по мнению Оганесяна, нельзя с уверенностью сказать, что представители мессенджера не будут расшифровывать трафик, если получат такое требование от американских властей.
«Все мессенджеры одинаково небезопасны, и выбор пользователя лежит в основном в плоскости выбора оператора, который будет или не будет продавать его данные рекламодателям», — констатировал специалист. Тем, кто хочет избежать продажи своих личных данных, он порекомендовал не пользоваться продуктами компании Facebook.
Сергей Калинин, руководитель отдела web-разработки TravelLine, отнес к числу безопасных мессенджеров Wickr Me, Threema и Twinme. «К примеру, у Wickr Me есть возможность, недоступная популярным мессенджерам: получатель сообщения не может сохранить текст — сообщение обязательно пропадет из памяти смартфона», — объяснил он и добавил, что время уничтожения устанавливает отправитель сообщения.
Ранее директор компании «ИТ-резерв» Павел Мясоедов назвал мессенджеры Telegram и Signal самыми безопасными. IT-эксперт также считает компромиссным вариантом между безопасностью и удобством мессенджеры со сквозным шифрованием.
Где переписываться, чтобы вас не прослушивали: последние мессенджеры с надёжным шифрованием
После европейских терактов в начале ноября, Совет Министров Европейского Союза принял решение, которое обязывает операторов мобильных сервисов WhatsApp, Signal и других создавать мастер-ключи для мониторинга чатов и сообщений с форматом шифрования E2E. Об этом говорится во внутреннем документе, датированном 6 ноября президентом Германии и направленном делегациям стран-членов в Совете, копию которого удалось получить австрийскому новостному изданию ORF.at.
Политики заговорили о запрете на безопасное шифрование этих мессенджеров под предлогом борьбы против «дальнейших шагов терроризма». Президент Франции Эммануэль Макрон обсудил это с канцлером Австрии, а само решение уже согласовано настолько, что его можно будет принять в видеоконференции министров внутренних дел и юстиции в начале декабря без дальнейшего обсуждения.
Впрочем, речь в этом документе идёт далеко не о полном запрете сквозного шифрования, как заявляли журналисты и пользователи социальных сетей, а только о доступе к сообщениям в отдельных случаях, но эти случаи описаны не очень точно. Предельно ясно, что утекший в сеть черновой вариант предложения пока что не имеет никакой юридической силы. Несмотря на это, в нем в первую очередь излагается политическая позиция стран-членов Европейского Союза.
Неудивительно, что ряд экспертов и простых пользователей социальных сетей высказали свое недовольство в отношение предлагаемых изменениях. По словам представителя федерального министерства внутренних дел Германии, «в текущем проекте нет предлагаемых решений или требований по ослаблению систем шифрования». Проект скорее предназначен для того, чтобы стать первым шагом к повышению уровня доверия, более широкому обсуждению этой проблемы и тесному сотрудничеству между политиками, бизнесом и наукой. В некотором плане это вопрос достижения баланса между защитой секретов компании и личных данных и потребностями органов безопасности.
Запретят ли шифрование формата E2EE, и знает ли Евросоюз, что он делает?
Казалось бы, вроде все предельно понятно: пообещать неприкосновенность переписок, а потом разрешить силовикам читать их и запретить “несогласные” мессенджеры на территории Европейского Союза. Но что же говорят независимые эксперты? Европейский исследователь Лукаш Олейник, занимающийся кибербезопасностью, считает, что предлагаемый проект начинается с утверждения полной поддержки ЕС «разработки, внедрения и использования надежного шифрования» — что было бы очень странно, если бы речь шла о полном запрете E2EE.
Кроме того, в проекте обсуждаются «проблемы» общественной безопасности, которые могут исходить от преступников, имеющих легкий доступ к тем же технологиям, которые используются обеспечения безопасности инфраструктуры операторов. Предполагается, что преступники не могут использовать формат шифрования E2EE, чтобы получить доступ к данным пользователей. Даже при наличии дыр в системе это должно быть чрезвычайно сложным или практически невозможным. Интересно то, что в резолюции содержится призыв к обсуждению того, как обеспечить сохранение полномочий компетентных органов безопасности и уголовного правосудия — при обеспечении полного уважения надлежащей правовой процедуры и прав и свобод ЕС (в частности, право на уважение частной жизни и коммуникации, а также право на защиту личных данных).
Получается, что гипотетический закон ждет широкое публичное обсуждение и множество дискуссий среди политиков, активистов, правозащитных активистов и экспертов из области информационной безопасности.
А в каком защищенном мессенджере общаться сейчас?
Думаю, большая часть из читателей уже давно перешла из крупных социальных сетей в Telegram, оставив ВКонтакте для переписок с бывшими одноклассниками или просмотра мемов, а WhatsApp используется для общения с родственниками и получения открыток на праздники, о которых вы даже не знали. Но помимо привычной нам “Телеги” есть еще несколько неплохих, а, главное, безопасных мессенджеров, которыми можно и нужно пользоваться.
Для начала повторим основные требования к “безопасному” мессенджеру:
Telegram, Signal, Wickr Me: выбираем самый безопасный мессенджер и разбираемся, существует ли он
Нас часто спрашивают, насколько хорошо те или иные популярные мессенджеры хранят тайны своих пользователей — переписку и пересылаемые файлы, существуют ли риски взлома самих сервисов, да и вообще, есть ли он — идеальный безопасный мессенджер? Команда департамента аудита и консалтинга Group-IB провела сравнительный анализ защищенности трех основных мессенджеров, которых чаще других называют в списке наиболее защищенных. В этой обзорной статье мы представим результаты независимого исследования и дадим свой ответ, какой мессенджер безопаснее.
О каких мессенджерах пойдет речь?
Сразу оговоримся, что отбор мессенджеров для нашего обзора производился на основе анализа существующих открытых исследований защищенности мессенджеров, их популярности в России и их позиционирования на рынке.
По итогам оценки и изучения мнений экспертов отрасли наша команда выбрала три мессенджера, ориентированные на защиту данных пользователей:
Мессенджеры устанавливались на смартфоны с iOS версии 13.3.1 и Android версии 7.1.2, при этом на смартфонах заранее были получены права суперпользователя (jailbreak для iOS и root-доступ для Android).
Как сравнивали мессенджеры?
Теперь вкратце расскажем о методике проведенного анализа защищенности. На рисунке ниже отображена схема формирования оценки по каждому мессенджеру.
Для проведения анализа мы выбрали три основные категории:
В категориях «Архитектура» и «Основная функциональность» оценка складывалась на основе результатов технических (инструментальных) проверок, которые проводились по стандарту OWASP Mobile Security Testing Guide.
В категории «Архитектура» после проведения инструментальных проверок мы получили оценку:
В категории «Основная функциональность» оценивалась корректность работы следующих функций мессенджеров:
Таким образом, максимальная итоговая оценка мессенджера может составить 332 балла и складывается в следующем отношении:
Если вам интересно узнать больше — полную информацию о методологии проведенного анализа защищенности можно найти здесь.
Сразу оговоримся, что в границы нашего исследования не вошли:
И что получилось?
Пришло время поделиться результатами исследования: как видно на диаграмме ниже, наибольшее количество баллов набрал Wickr Me — 304 из 332 возможных:
В таблице отражено, как складывалась оценка каждого мессенджера:
Давайте рассмотрим лидеров в каждой категории и найденные недостатки, после чего немного детальнее рассмотрим каждый из них.
Открытость сообществу
Лидеры в этой категории — Signal и Telegram — набрали одинаковое значение, 10 баллов. Репозитории мессенджеров содержат исходный код приложения и протоколы, доступные для исследования всем желающим. Однако мессенджеры держат закрытой серверную часть приложения, поэтому не получили максимальную оценку.
Wickr Me набрал меньше баллов, так как мессенджер не раскрывает исходный код.
Архитектура
В этой категории есть общий для мессенджеров недостаток — возможность обхода биометрической аутентификации. Эксплуатируя этот недостаток, можно получить доступ к данным пользователя мессенджера.
Лидером в категории «Архитектура» является Wickr Me, который содержит меньше выявленных недостатков, чем у конкурентов.
Signal и Telegram набрали меньше баллов, так как «небезопасно» хранят чувствительные данные мессенджера и профиля пользователя на клиентской стороне.
Из плюсов следует отметить, что все мессенджеры поддерживают E2EE-шифрование передаваемых данных, поэтому оценка Certificate pinning не проводилась.
Основная функциональность
Эту категорию можно расширять до бесконечности, но у нашей команды не было цели исследовать все реализованные фичи, и мы остановились на изучении основной функциональности мессенджеров и их безопасности:
Лидерами данной категории стали Wickr Me и Telegram, набрав максимальное количество баллов.
Версия мессенджера Signal под платформу Android содержит недостаток обработки исключений, который приводит к остановке приложения (то есть мессенджер сразу закрывается), поэтому Signal набрал меньше баллов в этой категории.
Информация о найденных недостатках
Мы описали общие результаты исследования, а теперь перейдем к более технической части. Ниже описаны некоторые детали выявленных недостатков мессенджеров.
Напомним, что все выявленные недостатки были обнаружены на устройствах с root-доступом (или к устройству применен jailbreak).
Первый недостаток, характерный для всех трех мессенджеров (для обеих платформ) — это возможность обхода описанной выше биометрической аутентификации. Дальше мы рассмотрим этот недостаток для каждой платформы.
Возможность обхода биометрической аутентификации
Современные смартфоны поддерживают несколько механизмов аутентификации, и один из возможных — это биометрическая аутентификация при помощи Touch ID или Face ID. При включенной функции биометрической аутентификации устройство сканирует отпечаток пальца (или лицо) и сравнивает с эталонным, заранее занесенным в систему.
У всех приложений, в том числе мессенджеров из нашего списка, для платформы iOS биометрическая аутентификация пользователя осуществляется при помощи Local Authentication Framework с использованием функции evaluatePolicy класса LAContext. Рассмотрим работу биометрической аутентификации немного подробнее.
Как выглядит биометрическая аутентификация для пользователя?
При нажатии на логотип мессенджера отображается диалоговое окно аутентификации, которое запрашивает у пользователя подтверждение действия, например, изменение настроек, покупку и т.д. с помощью биометрической аутентификации (Touch ID/Face ID).
В зависимости от того, как закончился процесс биометрической аутентификации, функция evaluatePolicy возвращает значение («true» или «false»), которое используется далее для управления приложением (например, открывается мессенджер или нет).
В чем заключается недостаток?
У всех исследуемых мессенджеров недостаток реализации биометрической аутентификации состоит в том, что пользователь аутентифицируется лишь на основе результата функции evaluatePolicy («true» или «false») и мессенджер не использует системные механизмы авторизации при доступе к значениям из защищенного хранилища Keychain. Более подробно о локальной аутентификации можно узнать в Mobile Security Testing Guide: здесь и здесь.
Как устранить недостаток?
Один из способов устранить описанный недостаток — создать в защищенном хранилище Keychain запись, которая будет содержать некоторый секрет (например, упомянутый ранее аутентификационный токен). При сохранении записи в Keychain необходимо задать соответствующие атрибуты, например, kSecAccessControlTouchIDAny или kSecAccessControlTouchIDCurrentSet.
Далее, чтобы получить значение этой записи, нужно будет обязательно успешно пройти локальную аутентификацию (в зависимости от заданных настроек доступа в Keychain — с помощью Touch ID/Face ID или ввода парольной фразы). Использование Keychain с необходимыми атрибутами сохраняемых в нем объектов позволит снизить возможность получения доступа к данным мессенджера.
Android
Описанный выше недостаток характерен и для мессенджеров платформы Android, поэтому мы рассмотрим работу биометрической аутентификации немного подробнее.
В приложении для платформы Android биометрическая аутентификация пользователя осуществляется с использованием классов FingerprintManager (не используется с Android 9), BiometricPrompt, BiometricManager.
Процесс биометрической аутентификации для пользователя на платформе Android выглядит абсолютно так же, как и на iOS.
В чем заключается недостаток?
Недостаток реализации биометрической аутентификации исследуемых мессенджеров для платформы Android аналогичен недостатку для iOS — не используются возможности операционной системы и устройства: мессенджеры не запрашивают системную авторизацию пользователя через KeyStore. Таким образом, потенциальный злоумышленник может подменять результат выполнения процедуры аутентификации для ее обхода.
Как устранить недостаток?
Для устранения данного недостатка в приложении рекомендуется использовать симметричные/асимметричные криптографические ключи (класс KeyGenerator), при инициализации которых вызывать функцию setUserAuthenticationRequired (true). Вызов данной функции позволяет получить доступ к значениям соответствующих криптографических ключей только после успешного прохождения процесса локальной аутентификации. Ключи при этом используются для шифрования некоторого секрета, например, аутентификационного токена в приложении.
Хранение чувствительной информации в локальном хранилище
Еще один обнаруженный недостаток — небезопасное хранение чувствительных данных в локальном хранилище — характерен для двух из трех мессенджеров.
Ниже мы привели примеры небезопасного хранения чувствительной информации в локальном хранилище, которые встречаются у некоторых мессенджеров платформы iOS:
Для устранения данного недостатка рекомендуется пересмотреть архитектуру и способы хранения чувствительных данных мессенджера.
Еще раз напомним, что вышеуказанные чувствительные данные мессенджера недоступны без использования root-доступа (или jailbreak) на устройстве.
Некорректная обработка исключений
Данная уязвимость относится только к платформе Android и мессенджеру Signal.
При исследовании основной функциональности мессенджеров осуществлялась отправка файлов разных форматов. В результате был найден один сценарий, при котором отправка файла вызывала остановку в работе мессенджера со следующей ошибкой: «Signal has stopped».
Исследование лог-файлов мессенджера показало, что у мессенджера есть необрабатываемое исключение. Информация об ошибке на внешние серверы не отправляется.
Как устранить недостаток?
Чтобы избавиться от данного недостатка, нужно реализовать проверку формата файла, который пользователь выбирает для отправки.
Ответы разработчиков
Обо всех описанных выше недостатках наша команда сообщила разработчикам мессенджеров. На момент публикации мы получили ответ от двух из трех мессенджеров (Signal и Telegram), третий на наши вопросы так и не ответил.
Разработчики поблагодарили нашу команду за предоставленную информацию и сообщили, что не считают выявленные недостатки уязвимостью, поскольку исследуемые версии мессенджеров используют для защиты данных мессенджера штатные механизмы защиты информации операционной системы. Используемые механизмы не позволяют эксплуатировать выявленные недостатки, а использование на устройстве root-доступа (или jailbreak) остается на усмотрение пользователя.
Тем не менее, мессенджеры могут реализовать проверку наличия root-прав на устройстве и уведомлять об этом пользователя устройства для снижения риска потенциальной компрометации данных.
Вывод
Мы провели сравнительный анализ защищенности трех мессенджеров, позиционирующих себя как безопасные, и выяснили, что все мессенджеры имеют ряд общих недостатков, а у Signal и Telegram также выявлены недостатки реализации хранения чувствительной информации в локальном хранилище.
Несмотря на то, что эксплуатация вышеуказанных недостатков возможна только при наличии физического доступа к смартфону, по оценке нашей команды, все эти недостатки снижают уровень защищенности данных пользователя.
По итогам всех проверок лидером нашего исследования стал мессенджер Wickr Me, который набрал 304 балла и у которого выявлено меньше всего недостатков.
Вывод прост: абсолютно безопасных мессенджеров нет, но мы надеемся, что благодаря этому исследованию вы сможете сохранить конфиденциальность и повысить безопасность своего общения, зная обо всех подводных камнях выбранного вами сервиса.





















