Сквозное шифрование в команде: ключи, вступление, исключение

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

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

В статье эти понятия разобраны на том уровне, который нужен руководителю команды или специалисту по безопасности. В качестве примера взят Speak-Y Teams — это схема, которую мы можем описать точно, — а там, где другие опубликованные схемы устроены иначе, приводится сравнение.

Три уровня ключей и зачем их три

Общий транскрипт встречи в командном пространстве со сквозным шифрованием защищён не одним паролем, а цепочкой ключей:

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

В Speak-Y пара ключей участника выводится из пароля шифрования аккаунта, поэтому один и тот же пароль даёт одни и те же ключи на всех устройствах. Строительные блоки — стандартные «запечатанные контейнеры» (sealed boxes) на открытых ключах и аутентифицированное шифрование, а не самодельная криптография.

Схема трёх уровней ключей в Speak-Y Teams: ключ записи, ключ канала и пара ключей участника
Ключ записи заперт ключом канала; ключ канала запечатан для каждого участника его открытым ключом.

Что хранит сервер и чего он не видит

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

Он видит структуру команды: сколько существует воркспейсов и каналов, кто в каком состоит, публичный канал или приватный, когда ключ был выдан или отозван, а также базовые метаданные каждого элемента — размер, длительность и время. Он не видит содержимое транскриптов и резюме, а в Speak-Y не видит и названия воркспейсов и каналов: они зашифрованы теми же ключами, что и содержимое. Канал с названием «Сделка по покупке — проект Falcon» сам по себе информация.

Точность в вопросе метаданных — часть честного заявления о сквозном шифровании. Почему ни одна схема не скрывает всё, объясняется в статье глоссария о E2EE.

Воркспейс Speak-Y Teams с выделенными названием воркспейса, публичным каналом и приватным каналом
1 — название воркспейса, 2 — публичный канал, 3 — приватный канал. Сервер знает, что они существуют и кто в них состоит; названия и содержимое зашифрованы.

Что происходит, когда человек вступает

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

Обойти это можно двумя способами. Первый — подождать, пока кто-то из команды откроет приложение и запечатает ключи для нового участника. Это работает, но оставляет разрыв, если пригласивший в отпуске. Speak-Y показывает этот разрыв как отдельное состояние, Ждём ключ доступа к каналу, а не как сетевую ошибку.

Второй — сделать так, чтобы приглашение несло всё, что нужно новичку. Ссылка-приглашение Speak-Y содержит ключ воркспейса во фрагменте — части URL после #, которая никогда не отправляется на сервер. Каналы хранят копию своего ключа, запертую ключом воркспейса, поэтому новый участник может открыть каналы воркспейса сразу после принятия приглашения, даже если никого больше нет в сети. Цена в том, что доступ даёт сама ссылка, поэтому приглашения одноразовые, истекают, и отправлять их стоит так, как вы отправили бы пароль.

Для приватных каналов есть ещё одно правило: ключ воркспейса их не открывает. Участник приватного канала добавляет человека, запечатывая ключ этого канала напрямую для него.

Что происходит, когда человека исключают

Здесь схемы различаются сильнее всего, и здесь вопрос «а это действительно сквозное шифрование?» получает конкретный ответ.

Отзыв доступа означает, что сервер перестаёт отдавать данные исключённому. Это обеспечивается политикой сервера, а ключи не меняются. Так описывает собственный механизм совместного доступа технический документ 1Password о безопасности (security white paper): в ней прямо сказано, что удаление человека из хранилища, группы или команды не обеспечено криптографически и ключи не меняются. Это задокументированный и осознанный компромисс; человек, заранее сохранивший ключ, сможет прочитать данные хранилища, если получит их позже.

Ротация ключа означает, что ключ исключённого перестаёт работать. В Speak-Y, когда участника исключают из воркспейса:

  1. Сервер сразу удаляет запечатанные копии ключей, принадлежавшие этому человеку.
  2. Приложение участника, который выполняет исключение, создаёт новые версии ключей каналов и ключа воркспейса и запечатывает их только для оставшихся — и для Recovery Kit воркспейса.
  3. Названия каналов и воркспейса перешифровываются новыми версиями.
  4. Копии ключей каналов, запертые старым ключом воркспейса, перезапираются новым, поэтому старая ссылка-приглашение ничего не открывает.
  5. Существующие элементы в фоне заново оборачиваются новой версией ключа.

Исключение человека из отдельного приватного канала точно так же ротирует ключ этого канала.

Протоколы обмена сообщениями следуют тому же принципу. В обзоре шифрования WhatsApp (редакция февраля 2026 года) сказано, что когда участник покидает группу, все участники удаляют групповой ключ и начинают заново. Стандарт IETF Messaging Layer Security, RFC 9420, опубликованный в июле 2023 года, при исключении переводит группу в новую эпоху с новым ключевым материалом, которого исключённый участник не знает.

Сравнение отзыва доступа и ротации ключа при исключении участника команды
Отзыв — это политика сервера при неизменных ключах; ротация выпускает новые версии ключей, которых исключённый никогда не получит.

Чего ротация не может вернуть

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

Из этого следуют два правила для работы команды:

Как решать, что в какой канал публиковать, разобрано в руководстве по командной базе знаний.

Когда человек забыл пароль

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

В Speak-Y для этого есть Recovery Kit: при создании воркспейса владелец сохраняет файл с ключом восстановления, и каждый ключ канала запечатывается ещё и для него. Если участник потерял пароль и задал новый, владелец Kit может заново выдать ключи каналов на его новую пару ключей. Kit восстанавливает доступ только к командным каналам и никогда не покрывает чьи-либо личные записи. Кроме того, это самый чувствительный файл команды, и хранить его стоит там же, где команда хранит другие критичные секреты.

Как поделиться с человеком вне команды

Иногда транскрипт нужно передать клиенту или коллеге без аккаунта. Публичная ссылка Speak-Y шифрует отдельную копию элемента собственным новым ключом и помещает этот ключ во фрагмент URL. Любой, у кого есть полная ссылка, может прочитать элемент в браузере; сервер хранит только шифротекст. Отзыв ссылки удаляет её на сервере. Как и в случае с приглашением, секрет — сама ссылка, а уже открытую кем-то копию вернуть нельзя.

Четыре вопроса любому вендору

  1. Что происходит с ключами, когда участника исключают? «Доступ отозван» — ответ про политику; «ключ ротирован» — ответ про криптографию.
  2. Может ли сервер прочитать названия каналов и воркспейсов? Названия часто говорят не меньше, чем содержимое.
  3. Если участник забыл пароль, кто может восстановить доступ? Если ответ — вендор, значит, у вендора есть ключ.
  4. Несёт ли ссылка-приглашение или ссылка для общего доступа ключевой материал и истекает ли она? Любой ответ может быть приемлемым — важно, чтобы вендор знал, какой из них верен.
Четыре вопроса вендору о совместной работе в команде со сквозным шифрованием
Ключи при исключении, названия на сервере, восстановление пароля и что несёт ссылка-приглашение.

В Speak-Y совместная работа в команде доступна в приложении для macOS. Создать воркспейс можно начиная с тарифа Pro, а коллеги присоединяются бесплатно на любом тарифе. На странице Speak-Y Teams показано, как общие каналы выглядят в повседневной работе, а в статье почему заметкам о встречах нужно сквозное шифрование объясняется, почему для всего этого транскрибирование должно происходить на вашем устройстве.

FAQ

Как команда может делиться файлами со сквозным шифрованием, если сервер не может их прочитать?

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

Что происходит с ключами шифрования, когда участника исключают из командного канала?

В схеме, где исключение обеспечено криптографически, сервер удаляет копию ключа канала, принадлежавшую исключённому, а приложение одного из оставшихся участников создаёт новую версию ключа и запечатывает её только для тех, кто остаётся. Старые элементы затем перезапираются новой версией. Так работает Speak-Y Teams; некоторые известные продукты только отзывают доступ на сервере и оставляют прежние ключи.

Может ли исключённый участник по-прежнему читать то, чем делились раньше?

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

Что делать, если участник забыл пароль в воркспейсе со сквозным шифрованием?

Провайдер не может восстановить доступ, потому что ключей у него никогда не было. В Speak-Y для этого есть Recovery Kit — файл, который владелец сохраняет при создании воркспейса. С его помощью можно заново выдать ключи каналов участнику, задавшему новый пароль. Личные записи Kit не покрывает.

Опасна ли ссылка-приглашение в зашифрованный воркспейс?

Может быть опасна. В Speak-Y ссылка-приглашение несёт ключ воркспейса в части URL после #, которую браузеры и приложения никогда не отправляют на сервер. Приглашения одноразовые и истекают, а исключение участника ротирует ключ воркспейса, но пока ссылкой не воспользовались, обращаться с ней нужно как с паролем.