Telegram Шрёдингера: безопасен ли он

Тот, кто жертвует безопасностью ради удобства, не получит настоящей безопасности

Возможно, прочитав мою предыдущую статью про безопасность мессенджеров, вы ожидали увидеть сравнение приложений. Я не забыл эту тему, статья в разработке и она обязательно выйдет. Но в последнее время вопросов про Telegram я получил такое огромное количество и мне столько раз приходилось объяснять одни и те же вещи про него, что я просто решил это всё изложить в формате статьи.

Тема безопасности сейчас актуальна как никогда. Но что такое действительно защищённые системы? Во-первых, такие системы безопасны вне зависимости от компетенции пользователя, погоды или положения звёзд. Во-вторых, если ради удобства мы идём на компромиссы безопасности, то сложно говорить о действительно надёжном решении.

Безопасность и компромисс несовместимы

Возьмём для примера HTTPS. Вы открываете сайт, вы видите зелёный замочек в адресной строке и вы уверены, что данные от вас до сервера остаются в сохранности и не достаются третим лицам. При посторонних попытках вклиниться в этот механизм браузер будет истерить, показывать разные страшные сообщения об ошибках и держать пользователя за пушечный выстрел от возможной опасности. При этом особой грамотности от пользователя не требуется. Система безопасности просто работает.


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

Как быть, если вам требуется общаться с большим количеством таких людей, и вы хотите, чтобы переписка с ними оставалась конфиденциальной? Переучить всех этих людей крайне сложно. Большинству из них это сложно, не интересно, да и не понятно почему это важно, так что многие пользователи просто не будут ничего предпринимать. Как показывают исследования, когда от пользователя требуется предпринять серию действий, то до каждого последующего шага не доходит примерно одна пятая пользователей. А если от ваших пользователей для обеспечения безопасности ожидается предпринять 5 действий (или предпринимать их регулярно), то делать это будут только самые упёртые.

Приведу пример. Представьте, что есть некое лекарство, которое выпускается в форме таблеток. Но если просто выпить таблетку, у 3% больных случаются сильные отравления, некоторые даже с летальным исходом. Для того, чтобы избежать этого, таблетку нужно предварительно растолочь в порошок и запить большим количеством воды. Вопрос: много ли найдётся людей, кто не предпримет нужных шагов и пострадает? Можно ли считать такой препарат безопасным? Будет ли он допущен в производство и свободную продажу? Почему он сразу не был выпущен в форме порошка, капсул или суспензии? Оправдан ли компромисс безопасности в данном случае ради удобной упаковки или удешевления производства?

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

Автопилот Tesla предотвращает столкновения

Как показывает практика, компьютерные системы в этом вопросе гораздо надёжнее человека, потому что они не устают, не засыпают, не отвлекаются, всегда трезвые и просто реагируют быстрее. Вопрос: можно ли в 2017 году автомобиль без подобных систем рекламировать как «полностью безопасный» или «самый безопасный»?

Когда от пользователя ожидаются некие действия, то это уже можно назвать «безопасностью Шрёдингера». По умолчанию (пока пользователь ничего не предпринял), она одновременно и есть и её нет. В зависимости от дальнейших действий пользователя ситуация может либо проясниться и её существование подтвердиться, либо же нет.

Telegram Шрёдингера

Для начала оговоримся, что вы не можете быть уверены в уровне профессиональной подготовки ваших собеседников в Telegram, и будем исходить из худшего сценария, когда на том конце связи тот самый пользователь, общающийся с техникой на «извините, пожалуйста». К тому же, даже «продвинутый пользователь» не всегда хорошо себе представляет, как работает информационная безопасность.

Безусловно, разработчики приложили немало усилий, чтобы сделать Telegram защищённым, но одновременно с этим, как на уровне протоколов, так и на уровне интерфейса пользователя были приняты ряд решений, которые ставят под вопрос все остальные меры безопасности. В описании проблем ниже я исхожу из того, что вы знакомы с возможными векторами атаки на мессенджеры, о которых я писал в предыдущей статье и поэтому понимаете почему названные ниже вещи — реальные проблемы, а не придирки.

  1. Идентификация по SMS. Доступ к вашей учётной записи можно получить путём перехвата SMS-сообщений. И этим многократно пользовались спецслужбы. Из известных случаев можно назвать случай со взломом десятков учёток в Германии, нескольких учёток в России, и, вероятно, в Иране. Это только то, о чём стало публично известно. Для осуществления взлома совсем не обязательно быть спецслужбой, можно эксплуатировать уязвимость в ОКС-7 (SS7), или просто вытащить симку из аппарата, получив к нему доступ. Для защиты от подобного в Telegram есть…
  2. Двухфакторная аутентификация. Да, она есть, но она не совсем помогает: конечно, при её наличии взломщик не получит доступа к истории ваших сообщений или списку контактов, но получит доступ к той же учётной записи, а значит, может попытаться выудить какие-то сведения из заранее известных ему ваших контактов. А ещё помните, что для включения двухфакторки нужно как минимум четыре шага (один из них — придумать пароль), а желательно — шесть (с указанием email). Помните каков процент пользователей успешно выполняющих длинные последовательности действий? Если вы общаетесь по важным вопросам с «простыми смертными», а не продвинутыми пользователями, вероятность того, что как минимум у одного из них не будет включена двухфакторка стремится к единице. Почему это важно — смотрите ниже.
  3. Облачная история. Это крайне удобно — история сообщений, синхронизирующаяся со всеми устройствами, мгновенный поиск и вот это всё. Но в плане безопасности — это сплошная головная боль, особенно если вся её безопасность завязана просто на SMS. К тому же, вы не можете обезопасить облачную историю для выборочных чатов, временно отключив для них запись истории (как это сделано в том же Hangouts), или установив таймер жизни сообщений (как в Signal). Но ведь есть секретные чаты, где это доступно…
  4. Секретные чаты. Отличная функция, только вот беда: с кучей ограничений. Во-первых, секретные чаты работают только в режиме один-на-один. Все групповые чаты работают в обычном, «не-секретном» режиме, а это значит, с облачной историей, с отсутствием полноценного режима автоуничтожения сообщений. Задача: вам нужно что-то безопасно обсудить с десятью собеседниками. Как быть? Многие предпочтут один не секретный групповой чат десяти секретным. И в таком случае, коллективная безопасность группы будет равняться уровню безопасности самого слабого звена (вы ведь помните, какова вероятность, что в чате из 10 «простых смертных» у кого-то не включена двухфакторка?). Во-вторых, секретные чаты просто недоступны в Telegram для компьютеров. В-третьих, Telegram имеет дурацкую привычку перекидывать пользователей из секретных в обычные чаты. Например, вы общаетесь в секретном чате. Решили созвониться голосом. Поговорили голосом. И что-то продолжили писать в чате. Вы и не заметили, что вы уже в обычном чате. В последнем обновлении это починили, так что не актуально для тех, кто уже обновился. В-четвёртых, секретные и обычные чаты визуально слишком похожи (в отличие от тех же Facebook Messenger, Viber или Allo, где меняется цветовая окраска всего интерфейса). Ваши собеседники могут регулярно забывать выбрать секретный чат и отсылать вам важные документы в обычном, а вы можете тоже не отследить вовремя. В-пятых, ввиду всего вышесказанного, было бы неплохо иметь возможность выбирать режим секретного чата принудительно. Но нет, такой возможности тоже нет.
  5. Отсутствие должного информирования о взломах. Если вашего собеседника взломали, Telegram вас не предупредит должным образом (лишь сообщением, что он присоединился к Telegram). Более того, он позволит общаться как ни в чём не бывало, и если взломщик хорошо владеет техниками социальной инженерии, он может снять любые подозрения (например, приведя убедительную причину почему ему пришлось переустановить Telegram) и выудить нужные компрометирующие данные из ваших собеседников в новых секретных или даже старых обычных чатах.
  6. Синдром NIH. Работа над Telegram была начата в 2011 году. На тот момент существовали уже проверенные временем, открытые протоколы безопасного общения (например, OTR) вместе с открытыми же реализациями, причём как клиентской, так и серверной частей (например, TextSecure). В качестве причин для изобретения своего протокола авторы Telegram официально называют то, что их протокол очень шустрый и умеет легко передавать огромные файлы (до 1,5 Гб). Почему нельзя было доработать существующие решения — не понятно.

Итого, чтобы действительно сделать безопасным ваше общение в Telegram, нужно а) настроить двухфакторку, б) указать email, в) постоянно следить за режимом работы Telegram, но г) страдать от невозможности использовать секретные чаты на Windows или Linux и групповые секретные чаты или самоуничтожение сообщений в групповых чатах.

А вообще, отсутствие секретных чатов для Windows и Linux весьма симптоматично. На официальном сайте Telegram красуются обещания о том, что он даёт сквозное шифрование, самоуничтожение сообщений, полную приватность, вот это всё. И вот, вы скачиваете клиент для Windows (или для Linux) и не находите там ничего из перечисленного. Сотни пользователей просили разработчиков реализовать эту функцию, но прошло уже 3 года, а воз и ныне там, и разработчики не считают это критическим недостатком, а лишь Enchancment, то есть возможным улучшенем. Вот и думаешь после этого что же для них на самом деле важно?

А теперь сравните это с тем же Signal, где абсолютно все эти фишки безопасности есть из коробки (кроме двухфакторной аутентификации, так как вы и без неё получаете всё ровно то же самое, что и в Telegram) плюс групповые чаты со сквозным шифрованием, плюс интерфейс на более чем 30 языках, плюс чёткое информирование при взломе собеседника. При этом, всё, что требуется от пользователя — установить приложение и зарегистрироваться в нём.

В сухом остатке

Ошибка многих в том, что они поддаются на маркетинг Telegram, считая, что достаточно просто его установить и пользоваться и всё будет хорошо, никому их переписка не достанется. Увы, это не совсем так. Если вы работаете с повышенными рисками, Telegram можно использовать только с технически грамотными собеседниками при этом самому соблюдая постоянные меры предосторожности, либо заставить всех своих собеседников активировать двухфакторку.

Хочу ли я сказать, что Telegram плохой мессенджер? Ни в коем случае! Это отличный мессенджер, с замечательными, уникальными фишками. А реализация голосовых вызовов выше всяких похвал и просто работает и работает полностью безопасно, не требуя от пользователя дополнительных телодвижений.

Но вот в плане безопасности текстовых сообщений Telegram как та таблетка, которую надо предварительно растолочь. Нужно не забываться, постоянно следить за собой и другими, а также терпеть неудобства…