[Из песочницы] О безопасности в сети
Эта статья была написана несколько лет назад, когда блокировка мессенджера Telegram активно обсуждалась сообществом и содержит мои мысли на этот счет. И хотя сегодня эта тема уже почти забыта, я надеюсь что, возможно, это все еще будет кому-то интересно
Этот текст появился в результате моих размышлений на тему цифровой безопасности, и я долго сомневался, стоит ли его публиковать. Благо существует огромное количество специалистов, правильно понимающих всю проблематику, и уж им ничего нового я сообщить не могу. Однако, кроме них, существует еще огромное количество публицистов и других блогеров, которые не только заблуждаются сами, но и своими статьями порождают огромное количество мифов.
Ни для кого не секрет, что в последнее время на цифровом театре военных действий бушуют нешуточные страсти. Мы, конечно, имеем в виду одну из наиболее обсуждаемых тем Российской современности, а именно блокировку мессенджера Telegram.
Противниками блокировки это подается как противостояние человека и государства, свободы слова и тотального контроля над личностью. Сторонники, наоборот, руководствуются соображениями общественной безопасности и борьбы с криминальными и террористическими структурами.
Для начала представим себе, как именно работает мессенджер Telegram. Можем зайти на их главную страницу и прочитать о том, как они сами себя позиционируют. Одним из главных преимуществ использования именно этого решения будет указан бескомпромиссный упор в безопасность конечного пользователя. Но что именно подразумевается под этим?
Как и у любого другого современного мессенджера ваши данные передаются в зашифрованном виде, но только до центральных серверов, где они лежат во вполне открытом виде и любой админ, если сильно захочет, без труда увидит всю вашу переписку. Сомневаетесь? Тогда подумайте, как реализована функция синхронизации между устройствами. Если данные секретны, то каким образом они попадают на третье устройство? Ведь никаких специальных клиентских ключей вы не предоставляете для расшифровки.
Например, как это сделано в почтовом сервисе ProtonMail, где для работы с сервисом вам необходимо предоставить ключ, который хранится на вашей локальной машине и который используется браузером для расшифровки сообщений в вашем почтовом ящике.
Но не все так просто. Помимо обычных чатов, есть еще и секретные. Здесь переписка действительно ведется только между двумя устройствами и ни о какой синхронизации речь не идет. Эта функция доступна только на мобильных клиентах, причем скриншоты чата заблокированы на уровне приложения, а чат уничтожается через заданное время. С технической стороны поток данных все еще идет через центральные сервера, однако не сохраняется там. Причем само сохранение бессмысленно, поскольку ключами дешифровки обладают только клиенты, а зашифрованный трафик особой ценности не представляет.
Эта схема будет работать, пока клиенты и сервер ее честно реализуют и пока на устройстве нет разного рода программ, без вашего ведома отправляющих снимки вашего экрана к третьим лицам. Так может причину такой не любви к Telegram со стороны правоохранительных органов стоит искать в секретных чатах? Именно в этом, на мой взгляд, кроется корень непонимания основной массы людей. И мы до конца не сможем разобраться с причиной этого непонимания, пока не разберемся, что же такое шифрование вообще и от кого оно призвано защищать ваши данные.
Представим, что некий злоумышленник хочет передать секретное сообщение своим друзьям. Настолько важное, что стоит и заморочиться, и перестраховаться. Является ли Telegram таким уж удачным выбором с точки зрения специалиста по информационной безопасности? Нет, не является. Я утверждаю, что использовать для этого любой из популярных мессенджеров — это наихудший из вариантов, который можно выбрать.
Основной проблемой является использование системы сообщений, где вашу переписку будут искать в первую очередь. И даже если она защищена достаточно хорошо, сам факт ее наличия может вас скомпрометировать. Напомним, что соединение клиентов происходит все еще через центральные сервера и как минимум факт отправки сообщения между двумя пользователями все еще может быть доказан. Поэтому бессмысленно пользоваться электронной почтой, социальными сетями и любыми другими публичными сервисами.
Как же тогда организовать переписку, удовлетворяющую всем требованиям безопасности? В рамках нашего обзора мы сознательно отбросим все не легальные или спорные методы для того, чтобы показать, что задача может быть решена исключительно в рамках закона. Не понадобится никакого шпионского, хакерского или малодоступного программного оборудования.
Практически все инструменты входят в набор стандартных утилит, поставляемых с любой операционной системой GNU/Linux, и их запрет будет означать запрет компьютеров как таковых.
Всемирная сеть интернет напоминает огромную паутину из серверов, с как правило бегущей на них операционной системой GNU/Linux и правилами маршрутизации пакетов между этими серверами. Большинство этих серверов не доступны для прямого подключения, однако, кроме них, существуют еще миллионы серверов с вполне доступными адресами, обслуживающими всех нас с вами, пропуская через себя огромное количество трафика. И вашу переписку среди всего этого хаоса никто и никогда не будет искать, особенно если она на общем фоне ничем особым не выделяется.
Те, кто желает организовать секретный канал связи, просто купят VPS (виртуальную машину в облаке) у одного из сотен игроков, присутствующих на рынке. Цена вопроса, как не трудно убедится, несколько долларов в месяц. Конечно, анонимно это сделать не получится, и в любом случае эта виртуальная машина будет привязана к вашему платежному средству, а значит и к вашей личности. Тем не менее, большинство хостеров не волнует, что вы запускаете на их железе, пока вы не превысите их базовые ограничения, как, например, количество отданного трафика или соединений на 23 порт.
Хотя такая возможность и существует, ему просто не выгодно тратить те несколько долларов, что заработал на вас на то, чтобы еще и следить за вами.
А даже если он и захочет или будет вынужден это сделать, то сначала должен понять, какого рода программное обеспечение используется конкретно вами и, основываясь на этом знании, создать инфраструктуру слежения. В ручную это не составит труда, но автоматизировать этот процесс будет крайне сложной задачей. По этой же причине сохранять весь трафик, проходящий через ваш сервер, будет экономически не выгодно, только если вы заранее не попадете в поле зрения соответствующих структур, которые захотят это сделать.
Следующим этапом будет создание защищенного канала одним из множества существующих способов.
- Самым простым будет создание защищенного ssh соединения с сервером. Несколько клиентов подключаются по OpenSSH и общаются, например, используя команду wall. Дешево и сердито.
- Поднятие VPN сервера и подключение нескольких клиентов через центральный сервер. Как вариант ищите любую программу-чат для локальных сетей и вперед.
- Простая FreeBSD NetCat внезапно обладает встроенным функционалом для примитивного анонимного чата. Поддерживает шифрование по сертификатам и еще много чего.
Не нужно упоминать, что таким же образом, помимо простых текстовых сообщений, можно передавать любые файлы. Любой из этих способов реализуется за 5–10 минут и не является технически сложным. Сообщения будут выглядеть как простой шифрованный трафик, коего в интернете большинство.
Такой подход называется стеганография — прятать сообщения там, где их и не подумают искать. Само по себе это не гарантирует безопасность переписки, но снижает до нуля вероятность ее обнаружения. К тому же если ваш сервер еще и находится в другой стране, процесс изъятия данных может быть невозможен еще и по другим причинам. И даже если кто-то все же получит доступ к нему, то ваша переписка до этого момента, скорее всего, не будет скомпрометирована, так как она, в отличии от публичных сервисов, нигде локально не сохраняется (это, конечно, зависит от выбранного вами способа коммуникации).
Однако мне могут возразить, что я ищу не там, разведки мира уже давно все продумали и во всех протоколах шифрования уже давно есть дыры для внутреннего пользования. Вполне здравое утверждение, учитывая историю вопроса. Как же быть в этом случае?
Все системы шифрования, которые лежат в основе современной криптографии, обладают некоторым свойством — криптографической стойкостью. Предполагается, что любой шифр можно взломать — это лишь вопрос времени и ресурсов. В идеале необходимо достичь того, чтобы этот процесс был просто не выгоден взломщику, вне зависимости от того, насколько важными являются данные. Либо занимал так долго, что в момент взлома данные уже потеряют свою важность.
Это утверждение не совсем верно. Оно корректно, когда идет речь о самых распространенных протоколах шифрования, использующихся сегодня. Однако среди всего разнообразия шифров существует один, который является абсолютно стойким к взлому и одновременно является очень простым для понимания. Его теоретически невозможно взломать, если соблюдены все условия.
Идея, лежащая в Шифре Вернама, очень проста — заранее создаются последовательности случайных ключей, которыми будут шифроваться сообщения. Причем каждый ключ используется только один раз для зашифровки и расшифровки одного сообщения. В самом простом случае мы создаем длинную строку случайных байт и каждый байт сообщения преобразуем через операцию XOR с соответствующим ему байтом в ключе и отправляем далее по не зашифрованному каналу. Легко заметить, что шифр симметричный и ключ для шифрования и дешифрования тот же самый.
У этого способа есть недостатки, и он достаточно редко используется, однако достигаемое преимущество заключается в том, что если две стороны заранее договариваются о ключе и этот ключ не скомпрометирован, то можно быть уверенным, что данные не прочитают.
Как же это работает? Ключ генерируется заранее и передается между всеми участниками по альтернативному каналу. Его можно передать при личной встрече на нейтральной территории, если есть такая возможность, чтобы полностью исключить возможный досмотр, либо просто послать по почте USB флешкой. Мы все ещё живём в мире, где нет технической возможности досматривать все носители информации, пересекающие границы, все жёсткие диски и телефоны.
После того, как все участники переписки получили ключ, может пройти достаточно много времени, пока наступит непосредственно сеанс связи, что еще сильнее затрудняет противодействие данной системе.
Один байт в ключе используется только один раз для шифрования одного символа секретного послания и его расшифровки другими участниками. Отработанные ключи могут автоматически уничтожатся всеми участниками переписки после передачи данных. Один раз обменявшись секретными ключами, можно передавать сообщения общим объемом, равным их длине. Этот факт обычно приводят как недостаток данного шифра, куда приятнее, когда ключ имеет ограниченную длину и не зависит от размера сообщения. Однако эти люди забывают про прогресс, и если во времена Холодной войны это было проблемой, то сегодня не является таковой. Если исходить из того, что возможность современных носителей практически безгранична и в самом скромном случае речь идет о гигабайтах, то защищенный канал связи может действовать неограниченно долго.
Исторически Шифр Вернама, или шифрование с помощью одноразовых блокнотов, широко использовался во времена Холодной войны для передачи секретных сообщений. Хотя известны случаи, когда по невнимательности разные сообщения шифровались одними и теми же ключами, то есть процедура шифрования была нарушена и это позволило их расшифровать.
Сложно ли на практике использовать этот метод? Скорее тривиально, и автоматизация этого процесса с помощью современных компьютеров по силам начинающему любителю.
Так может цель блокировки — нанести ущерб конкретному мессенджеру Telegram? Если так, то опять мимо. Клиент Telegram из коробки поддерживает прокси сервера и протокол SOCKS5, что дает пользователю возможность работать через внешние сервера с не заблокированными IP адресами. Найти публичный SOCKS5 сервер для короткой сессии не сложно, а поднять такой сервер самому на своей VPS-ке еще проще.
Хотя удар по экосистеме мессенджера все же произойдет, так как для большинства пользователей эти ограничения все равно создадут непреодолимый барьер и его популярность среди населения пострадает.
Итак, подведем итог. Вся шумиха вокруг Telegram — это хайп и не более того. Блокировать его по соображению общественной безопасности — это технически безграмотно и бессмысленно. Любые структуры, жизненно заинтересованные в защищенной переписке, могут организовать свой канал, используя несколько дополняющих друг друга техник, и, что самое интересное, делается это чрезвычайно просто, пока есть хоть какой то доступ в сеть.
Фронт информационной безопасности сегодня проходит не по мессенджерам, а скорее по простым пользователям сети, даже если они этого не осознают. Современный интернет — это реальность, с которой нужно считаться и в которой перестают действовать еще недавно кажущиеся незыблемыми законы. Блокировка Telegram является еще одним примером войн за информационный рынок. Не первой и уж точно не последней.
Еще несколько десятков лет тому назад до массового развития интернета ключевой проблемой, стоящей перед всякого рода агентурными сетями, было налаживание безопасного канала связи как между собой так и координации своей работы с центром. Жесткий контроль за частными радиостанциями во время Второй Мировой Войны во всех странах-участницах (регистрация необходима и сегодня), номерные радиостанции Холодной Войны (некоторые действуют и сегодня), мини пленки в подошве ботинка — все это на новом витке развития цивилизации смотрится просто смешно. Как и инерция сознания, заставляющая государственную машину жестко блокировать любое не подконтрольное ей явление. Именно поэтому блокировка IP адресов не должна рассматриваться как приемлемое решение, и лишь показывает отсутствие компетенции у людей, которые принимают такие решения.
Основной проблемой современности является не хранение или анализ данных личной переписки третьими лицами (это вполне себе объективная реальность, в которой мы сегодня живем), а тот факт, что люди сами готовы предоставлять эти данные. Всякий раз, когда вы заходите в интернет со своего любимого браузера, на вас пристально смотрят с десяток скриптов, записывая, как и куда вы нажали и на какую страницу перешли. Устанавливая очередное приложение для смартфона, большинство рассматривает окно запроса на предоставление программе привилегий как на назойливый барьер перед началом ее использования. Не замечая того факта, что безобидная программа лезет в вашу записную книжку и хочет прочитать все ваши сообщения. Безопасность и конфиденциальность охотно размениваются на удобство использования. И человек сам зачастую совершенно добровольно расстается со своей персональной информацией, а следовательно со своей свободой, наполняя таким образом базы данных мировых частных и государственных организаций ценнейшей информацией о своей жизни. А те, несомненно, будут использовать эту информацию в своих целях. А так же в гонке за прибылью будут перепродавать ее всем желающим, игнорируя любые морально этические нормы.
Я надеюсь, что представленная в статье информация позволит вам по новому взглянуть на проблему информационной безопасности и, возможно, изменить некоторые из своих привычек при работе в сети. А специалисты сурово усмехнутся и пойдут дальше.
Мир вашему дому.