Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка

Как мы теряем конфиденциальность общения и как криптографы пытаются этому помешать

Многие говорят о том, как сохранить конфиденциальность. Почти никто — о том, что мы ее уже давно потеряли.

1К открытий1К показов

Прошлым летом крупнейших ИТ-гигантов — Facebook, Google, Apple, Microsoft — уличили в том, что их подрядчики имели доступ к голосовым сообщениям пользователей. Все это делалось, по их словам, исключительно из благих целей — усовершенствовать алгоритмы распознавания естественного языка. Информация об этом, появившаяся во многих СМИ, была на удивление воспринята достаточно спокойно, учитывая огромный масштаб прослушки. То, что новость о прослушивании личных сообщений, больше не вызывало массового отказа от этих сервисов или хотя бы громких общественных дискуссий, говорит о том, что пользователи в своем большинстве уже смирились: за удобство и комфорт они готовы платить конфиденциальностью.

Сейчас популярные сервисы обмена данными, понимая свое уязвимое положение перед давлением органов власти и силовых структур, делают ставку на маркетинг: самым частым термином, который встречается в описаниях мессенджеров и их уровня безопасности, стало «сквозное шифрование».

Сквозная панацея?

Сквозное, или end-2-end шифрование – это термин, который подразумевает, что сообщение шифруется на устройстве отправителя, доставляется в зашифрованном виде на устройство получателя и расшифровывается уже там. Как правило, подразумевается ассиметричное шифрование, когда каждая из сторон владеет так называемым общедоступным (публичным) ключом собеседника, а именно кодовой последовательностью, используя которую отправитель шифрует свое сообщение. Расшифровать это сообщение можно только приватным (тайным) ключом, который тоже есть у каждого из собеседников, но они не знают приватные ключи друг друга. Это достаточно надежный способ приватного обмена сообщениями через общедоступные каналы связи.

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

Так, сквозное шифрование между собеседниками в первую очередь необходимо организовать – это называется «инициированием сессии». Для этого собеседники должны, по крайней мере, обменяться своими публичными ключами. На первый взгляд, всё просто, однако здесь следует вспомнить об одном из самых распространенных типов атак против приватности — «человек посередине» (MITM, Man In The Middle). Представьте себе, что вы получаете сообщение от хорошо знакомого вам человека с просьбой, скажем, одолжить ему немного денег, а настоящим отправителем этого сообщения является злоумышленник. Это возможно даже в том случае, если мессенджер, в котором вы общаетесь, использует сквозное шифрование! Каким образом?

Поскольку базовые технологии и протоколы обмена данными, такие как TCP/IP, остаются практически неизменными на протяжении десятков лет, их уязвимости хорошо изучены. Получив каким-то образом доступ к операторским или магистральным каналам связи, злоумышленник может оказаться между отправителем и получателем в момент инициирования сессии, и, если обмен публичными ключами плохо защищен, завладеть ими. Конечно, это не позволит злоумышленнику читать чужую переписку, однако даст ему возможность отправлять сообщения от чужого имени. Так работает одна из множества уязвимостей, которым может быть подвержен мессенджер, использующий сквозное шифрование. В некоторых случаях причиной уязвимости может быть даже природная сложность алгоритма, например, при использовании протоколов, требующих перекрестной сверки и явного (пользовательского) подтверждения на этапе инициирования сессии.

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

Фокус на ключе

Один из инструментов, усиливающая безопасность общения в мессенджерах со сквозным шифрованием, — это алгоритм управления ключами Double Ratchet (DR), разработанный пять лет назад Тревором Перрином и Мокси Марлинспайком в Open Whisper Systems. В его реализации применяется алгоритм «тройной сверки ключей» Диффи-Хеллмана  (3DH), а в основе лежат быстрые функции на основе эллиптических кривых с размером ключа 256 бит – Curve25519, а также отлично себя зарекомендовавшие стандарты AES-256 и HMAC-SHA256. Как часть протоколов обмена сообщениями, он применяется в таких продуктах, как Gajim, Signal, Skype, Google Allo, Viber, WhatsApp и некоторых других. На основе Double Ratchet, а также Axolotl создаются различные реализации протоколов. Например, мы в Omega IM предпочитаем быстрый и безопасный протокол Proteus с открытым исходным кодом, включающий методы, предоставляемые библиотекой libsodium.

Выбор пал именно на libsodium, потому что это библиотека является открытой кроссплатформенной реализацией библиотеки NaCl (Networking And Cryptography Library). Она обеспечивает асимметричное шифрование на эллиптических кривых, симметричное шифрование с использованием Salsa20 и Poly1305, шифрование алгоритмами Salsa20 и AES, безопасную аутентификацию HMAC/SHA с длиной ключа 512/256 бит, хеширование строк SHA ключом 512/256 бит. Это открытая и современная библиотека для шифрования, цифровой подписи, хеширования и реализации других криптографических примитивов.

Усиление конфиденциальности, достигаемое благодаря росту надежности применяемых алгоритмов шифрования, приводит к целому ряду полезных следствий:

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

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

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов