Труконф возглавил рейтинг ВКС-разработчиков 2023

Сквозное шифрование (E2EE)

Шифрование — это преобразование информации в целях сокрытия её от посторонних (неавторизованных) лиц. Такой способ защиты важных данных известен как минимум со времён Древнего Рима. Например, полководец Гай Юлий Цезарь (100 – 44 гг. до н.э.) использовал шифр сдвига для переписки со своими генералами.

Сквозное шифрование (E2EE) 1

Шифрование бывает трёх типов:

  1. Симметричное — для шифрования и расшифрования сообщений (трафика) используется один и тот же ключ.

    Широко применяемые алгоритмы: AES, ГОСТ 34.13-2018, ChaCha20-Poly1305.

    Преимущество симметричных шифров состоит в скорости их работы благодаря меньшей математической сложности по сравнению с асимметричными алгоритмами. Также в современных потребительских процессорах встроены блоки для ускорения AES на аппаратном уровне.

  2. Асимметричное использует два разных ключа: для шифрования сообщений (трафика) — открытый и известный всем публичный (public), который можно передать по открытому каналу, а для расшифрования — закрытый (private).

    RSA – широко применяемый алгоритм асимметричного шифрования.

    Преимущество ассиметричного шифрования состоит в возможности передачи открытого ключа по незащищенным каналам.

    Закрытый ключ (private key) — это битовый набор данных необходимой длины (например, для RSA состоянием на 2023 год используют числа длиной 2048 бит и даже больше), который в разрезе онлайн-коммуникаций зачастую:

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

    Публичный ключ (public key) передаётся всем, кто должен иметь возможность отправить сообщение. Невозможно за разумное время взломать закрытый ключ по открытому и расшифровать или подменить данные.

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

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

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

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

Что такое сквозное шифрование?

Сквозное шифрование (также известное как оконечное шифрование, end-to-end encryption, E2EE) — это такой метод защиты данных от несанкционированного просмотра и изменения, при котором доступ к сообщениям или данным имеют только те пользователи, которые участвуют в общении.

Сквозное шифрование гарантирует недоступность любой пользовательской информации (текст, потоковые видео и звук, передаваемые файлы) даже серверам, которые участвуют в передаче данных. Шифрование и расшифрование сообщений происходит непосредственно на тех устройствах пользователей, которые используются в данный момент в сеансе связи. Таким образом, никто кроме получателя не сможет прочитать или подменить передаваемые данные.

E2EE чаще всего использует гибридный подход: по асимметричной схеме шифруется ключ симметричного алгоритма, применяемый для кодирования передаваемых данных. Это позволяет снизить требования к оборудованию, т.к. они значительно выше при использование асимметричных ключей. Например, такую схему реализует протокол Диффи-Хеллмана.

Для чего нужно сквозное шифрование?

Сквозное шифрование защищает от:

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

    Чтобы предотвратить атаку “человек посередине” (MITM, man-in-the-middle), нужно аутентифицировать ключи, то есть сравнить отпечатки открытого ключа по внешнему каналу. Например, в Telegram в роли отпечатка выступают Emoji. Если они совпадают на двух устройствах, значит канал безопасен.
  • Фальсификаций. E2EE с применением алгоритма AES в режиме GCM обеспечивает целостность информации. Это означает, что изменить сообщение не представляется возможным, поскольку любая попытка внесения правок будет сразу заметна. При совершении крупных сделок, в случае фальсификации передаваемых данных (например, суммы или номеров счёта), есть вероятность возникновения больших рисков для бизнес-партнёров.

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

Что оконечное шифрование не защищает?

Защита не распространяется на метаданные, например, дата и время отправки сообщения сокрыты не будут. Также, если были взломаны конечные точки, используются уязвимые посредники (например, сервисы push-уведомлений или технологии для подтверждения аккаунта) или в системах находятся бэкдоры, то в таких случаях оконечное шифрование не принесет 100% защиты.

Оконечное шифрование на простом примере

Представьте себе службу доставки, которая открывала бы конверт и прочитывала письмо, прежде чем отправить его получателю. У нас и мысли не возникает, что такое может быть. А в действительности сотрудники почтовой службы могут не только удовлетворить своё любопытство, но и поделиться с кем-то прочитанным, и даже незаметно подменить письмо.

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

End-to-end шифрование является «сквозным», поскольку никто из провайдеров связи не может расшифровать сообщение. Представьте, что вместо того, чтобы отправить письмо в конверте, кто-то отправил его в запертом сейфе, PIN-код от которого был у отправителя. Теперь будет физически невозможно прочесть письмо кому-либо, кроме того, кому оно предназначалось. Это и есть настоящее шифрование.

Принцип работы

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

Сквозное шифрование работает по данному принципу:

  1. В начале, при создании сеанса связи, приложение-получатель генерирует два ключа: публичный и закрытый.
  2. Публичный ключ отправляется на сервер. Как говорилось выше, этот ключ используется только для шифрования и потому его наличие никаким образом не позволяет серверу прочитать сообщение отправителя. Тут важно чтобы сервер не мог подменить пару закрытого и публичного ключей на свою для исключения атаки MITM, о чём говорилось выше (надо убедиться, что сервер от вендора и что этому самому вендору можно полностью доверять).
  3. Приложение-отправитель скачивает с сервера публичный ключ для шифрования сообщения.
  4. Зашифрованное сообщение отправляется на сервер.
  5. Приложение-получатель скачивает сообщение, и расшифровывает его с помощью своего закрытого ключа.

Сквозное шифрование (E2EE) 2

Разница между E2EE и TLS

TLS (Transport Layer Security) — это криптографический протокол, предназначенный для обеспечения безопасной связи в сети Интернет. Он, аналогично E2EE, использует шифрование с открытым ключом на этапе аутентификации сервера и, если надо, клиента (TLS-рукопожатие).

Однако TLS обеспечивает защиту между пользователем и сервером, а не напрямую между пользователями. Это обеспечивает безопасность передачи данных на сервер и обратно, однако данные на самом сервере расшифровываются. Зачастую для нормального функционирования веб-приложений серверу необходимо иметь доступ к его данным. Такой подход нарушает принцип конфиденциальности информации и не применим в тех ситуациях, когда речь идет о “чувствительных данных”. Например, если пользователи хотят отправлять друг другу сообщения так, чтобы поставщик услуг (сервер) не имел возможность просматривать их переписку.

Оконечное шифрование в видеоконференцсвязи

MCU

Сквозное шифрование невозможно организовать в классической схеме MCU, ввиду того что видеосервер выступает не просто в роли посредника, а отвечает за следующие процессы:

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

Каждый из этих этапов требует работы с видеопотоком в расшифрованным виде предоставляя тем самым злоумышленникам простор для изучения и злоупотребления данными, т.е. чувствительные медиаданные находятся в какой-то момент процесса транскодирования в открытом и незащищенном виде.

Сквозное шифрование (E2EE) 3

Исходя из этого, оконечное шифрование не может быть реализовано в решениях, построенных на принципах MCU.

SVC

Технология масштабируемого видеокодирования (SVC) является передовой схемой передачи медиапотоков и позволяет передавать несколько подпотоков видео разного качества в одном (основном) потоке. Ниже рассмотрим как теоретически можно организовать видеоконференцию с использованием SVC и E2EE. Общий подход будет справедлив и для других технологий, например, Simulcast, но вместо разделения видео на слои шифроваться будет каждый медиапоток.

Для шифрования потоков с целью оптимизации вычислений можно использовать общий ключ для всех (симметричное шифрование, например, AES-256), который безопасно передаётся с помощью асимметричного шифрования (RSA).

Работает это следующим образом:

  1. При организации конференции клиент владельца получает открытые ключи от участников конференции.
  2. Владелец генерирует случайный сеансовый ключ и зашифровывает его полученным открытым ключом для каждого участника отдельно.
  3. Зашифрованный сеансовый ключ пересылается участникам конференции.
  4. Участники конференции расшифровывают полученный пакет своим закрытым ключом.

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

  1. На устройстве отправителя:
    • Оригинальный контент (исходный видеопоток) кодируется по технологии SVC “разделяясь” на слои с разным качеством.
    • Каждый слой шифруется с помощью сеансового ключа.
  2. Зашифрованные медиаданные отправляются на медиасервер.
  3. Сервер определяет полосу пропускания получателя и перенаправляет набор зашифрованных слоёв для получения видео в нужном качестве всем участникам встречи.
  4. Каждый получатель расшифровывает видеопоток с помощью сеансового ключа и может его воспроизвести.

Сквозное шифрование (E2EE) 4

Ограничения

По состоянию на 2023 год, во многих популярных мессенджерах, например, WhatsApp и Telegram, E2EE реализовано лишь в звонках точка-точка. Почему сквозное шифрование трудно реализовать в групповых звонках? Исходя из принципа работы оконечного шифрования, как было написано выше, его непросто реализовать в контексте видеоконференцсвязи. Ведь каждый отдельный (видео и аудио) поток должен быть зашифрован и расшифрован, а эта работа ложится только на устройство пользователя.

Заметим, что даже те вендоры, которые заявляют о внедрении “честного” (без участия сервера) E2EE в групповых конференциях, столкнулись с ограничением числа участников в мероприятии. Также становятся недоступными дополнительные функции, которые предоставляются сервером, например, запись и трансляция мероприятия.

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

Исходя из вышеизложенного выделим два важных момента:

  1. Либо медиаданные должны находиться в момент обработки и раскрытия на доверенном сервере (т.е. у вас, а не в облаке).
  2. Либо облачный сервис должен поддерживать сквозное шифрование для SVC – но нам о таких сервисах не известно, увы.

В итоге при использовании on-premise сервера видеосвязи (например, TrueConf Server), вы получите качественную видеосвязь с оптимизацией потоков благодаря SVC, и при этом не будете ограничены в функционале. А шифрование потоков не требуется, т.к. сервер находится внутри корпоративной сети и вы имеете полный контроль над данными.

Вывод

Сквозное шифрование по состоянию на 2023 год практически применяется в звонках точка-точка и при его использовании недоступны многие функции, например, в Zoom и Teams:

  • Облачная запись;
  • Трансляции;
  • Транскрибация;
  • Комнаты отдыха;
  • Опросы, и другое.

В видеоконференциях используется шифрование между клиентом и сервером, которое обеспечивает защиту трафика только до сервера. Злоумышленники, имеющие доступ к серверу, смогут просмотреть весь идущий через него трафик. А с учётом того, что большинство крупных вендоров продвигают именно облачные решения (Zoom, MS Teams, Webinar.ru, Яндекс.Телемост и пр.), то к отсутствию полной информации о методах шифрования добавляется риск утечки данных с неконтролируемых пользователями серверов.

В связи с вышеизложенным рекомендуем использовать сервер для корпоративной видеосвязи TrueConf Server. С ним вы получите такие преимущества в разрезе безопасной платформы для коммуникаций:

  1. AES-256 для шифрования медиапотоков по протоколу TrueConf, SRTP – для подключений по SIP и через браузер (WebRTC), и H.235 – для H.323.
  2. Протокол TLS 1.3 для согласования протоколов связи и обмена сеансовыми ключами (например, для HTTPS).
  3. Технология масштабируемого видеокодирования SVC на базе видеокодека VP8, что обеспечивает снижение требований к ширине каналов и к производительности клиентских устройств.
  4. Не требует постоянного подключения к интернету и работает в автономных сетях. О других преимуществах подробнее здесь.

СКАЧАТЬ TRUECONF SERVER

Желаем удачных конференций!

Автор:
Издание: trueconf.ru
Отрасль: Видеоконференцсвязь