Блог/Опубликовано: Обновлено:

Будьте первыми, когда Gaavala появится в Chrome Web Store. В список ожидания

Как Gaavala защищает аудио ваших встреч: архитектура приватности

Звук встречи идёт по зашифрованному соединению прямо из браузера в Soniox. Серверная часть Gaavala управляет входом, подпиской и расходом минут, но не получает звук встречи.

Аудио встречи идёт браузер → Soniox. Наших серверов на этом пути нет.
Аудио встречи идёт из браузера в Soniox — сервера Gaavala на пути нет

Основной принцип приватности

Большинство SaaS-инструментов перевода следуют знакомой схеме движения данных:

  1. Ваш браузер захватывает аудио встречи
  2. Аудио загружается на бэкенд вендора
  3. Бэкенд вендора проксирует аудио в движок распознавания речи
  4. Транскрипты возвращаются через бэкенд вендора
  5. По пути серверы вендора нередко логируют, кэшируют или хранят аудио

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

Gaavala полностью убирает шаг проксирования. Схема движения данных выглядит так:

  1. Ваш браузер захватывает аудио встречи из вкладки
  2. Ваш браузер открывает прямой WebSocket к Soniox
  3. Аудио передаётся напрямую по этому WebSocket
  4. Soniox возвращает транскрипты прямо в ваш браузер
  5. Бэкенд Gaavala не участвует вовсе

Расширение Chrome, работающее на вашей машине, — единственная часть нашего кода, которая вообще касается аудио вашей встречи, и она не отправляет это аудио нам.

Почему мы выбрали такую архитектуру

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

  • Прямая передача аудио в Soniox уменьшает число технических посредников, но не обнуляет обязанности по защите данных. Оценивайте Gaavala и его субобработчика Soniox вместе: цель обработки, сроки хранения и необходимые договоры. Сама архитектура не доказывает соответствие HIPAA или SOC 2.
  • Радиус поражения при взломе. Взлом сервера, который обрабатывает аудио, принципиально хуже взлома сервера, который обрабатывает текстовые метаданные. Мы предпочитаем, чтобы наши самые чувствительные системы работали с наименее чувствительными данными.
  • Задержка. Каждый переход через прокси добавляет время кругового обхода. Прямая передача из браузера в Soniox убирает целый переход и заметно улучшает задержку субтитров.
  • Издержки, совпадающие с приватностью. Собственный аудиопрокси означал бы плату за трафик и вычисления на каждой встрече. Его отсутствие экономит деньги и защищает клиентов. Когда стимулы совпадают, архитектура обычно остаётся честной.

Путь данных в деталях

Посмотрим, что на самом деле происходит, когда вы запускаете транскрипцию на встрече.

Шаг 1: Аутентификация

Когда вы впервые входите в Gaavala, расширение использует API chrome.identity.launchWebAuthFlow в Chrome, чтобы выполнить обмен OAuth Authorization Code с Google или Microsoft. Поставщик идентификации возвращает код авторизации в ваш браузер, а расширение обменивает его на нашем бэкенде на сессионный JWT Gaavala. Этот JWT хранится в chrome.storage.local и используется для аутентификации последующих вызовов нашего API.

Ничего из этого не связано с аудио. Поток OAuth — только текст: токены, claims, поля профиля.

Шаг 2: Временный ключ Soniox

Когда вы нажимаете "Start" (Начать) на встрече, расширение обращается к API нашего бэкенда за короткоживущим временным ключом Soniox. У этого ключа три важных свойства:

  • Он ограничен только распознаванием речи — ничем иным из поверхности API Soniox
  • Он истекает через минуты, а не дни
  • Он выдаётся один раз на сессию и не сохраняется на вашем устройстве

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

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

Шаг 3: Захват аудио вкладки

Вы подключаетесь к звонку в Microsoft Teams, Zoom, Google Meet или Webex во вкладке Chrome. Расширение Gaavala открывает боковую панель и предлагает начать захват аудио. Когда вы подтверждаете, расширение использует API tabCapture в Chrome — доступный только расширениям API, который позволяет захватывать аудио активной вкладки с явного разрешения пользователя и с видимым индикатором.

Chrome направляет захваченное аудио в offscreen-документ, который Gaavala держит в фоне. Offscreen-документ — это изолированная страница, которую расширение может использовать для обработки аудио, не удерживая на экране видимый интерфейс. Внутри этого документа Gaavala открывает MediaStream, подключает его к AudioContext и готовит к передаче.

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

Шаг 4: Прямой WebSocket к Soniox

Затем offscreen-документ открывает WebSocket-соединение напрямую к Soniox. Это соединение:

  • Использует TLS 1.2 или выше
  • Аутентифицируется короткоживущим временным ключом из шага 2
  • Исходит из сетевого стека вашего браузера — пакеты идут от вашей ОС к Soniox, а не к Gaavala

Аудиокадры, захваченные из вкладки, кодируются в PCM и отправляются по WebSocket. Soniox обрабатывает их в реальном времени и передаёт токены транскрипции обратно по тому же соединению. Эти токены — фрагменты текста с временными метками и метками спикеров — приходят прямо в offscreen-документ, который передаёт их в боковую панель для отображения.

Ни в одной точке всего этого цикла пакет с аудио встречи не достигает сервера под управлением Gaavala. Вы можете проверить это сами в Chrome DevTools: откройте вкладку Network с фильтром WS, пока Gaavala работает, и увидите ровно один WebSocket — к хосту soniox.com — и нулевой исходящий трафик с аудио встречи к gaavala.com.

Шаг 5: Отображение транскрипта и необязательное резюме

Расшифровки сохраняются на вашем устройстве в локальной базе расширения и автоматически удаляются через 7 дней. Скачанные вами файлы экспорта остаются под вашим управлением. AI-сводки создаются на устройстве. Серверы Gaavala не получают расшифровки, но локальную историю нужно учитывать при передаче или очистке устройства.

Если нужно отвечать без произнесения слов, прочитайте руководство по доступным встречам.

Какие данные видят серверы Gaavala

Вот основные виды данных, с которыми работает наш бэкенд во всех функциях:

ДанныеКогдаХранениеПримечания
Сессионный refresh-токен GaavalaПри входеСрок жизни токена — истёкшие записи удаляются ежедневноВаш OAuth-токен Google/Microsoft не сохраняется никогда
Профиль пользователя (email, имя)При входеСрок жизни аккаунтаДля биллинга и поддержки
Статус подпискиВсегдаСрок жизни аккаунтаТариф, состояние пробного периода
Записи о платежах (Pro)Когда вы платитеСтолько, сколько требует налоговое законодательство, в том числе после удаления аккаунтаСумма, налог, валюта, страна, дата и способ оплаты в том виде, в каком их передаёт наш платёжный партнёр; данные вашей карты остаются у платёжного партнёра
Запросы временного ключа SonioxНа каждую сессиюТолько лог запросаБез аудио
Счётчик минут транскрипцииНа каждую сессиюСрок жизни аккаунтаРазбит на месячные корзины, для контроля квоты
Эталонный образец для клона голоса (Pro)Только если вы его запишетеПока вы не удалите свой голос или аккаунтЗашифрован (AES-256-GCM), используется только для построения вашего голоса; это не аудио встречи
Отчёты о технических проблемахТолько когда вы отправляете отчёт180 днейДиагностические данные, которые вы решили отправить; текст транскрипта не включается
Язык интерфейсаКаждый раз, когда вы пользуетесь расширением, войдя в аккаунтСрок жизни аккаунтаЧтобы наши письма приходили на вашем языке
Адрес электронной почты в списке ожидания (веб-сайт)Только если вы запишетесь в список ожиданияПока вы не попросите нас его удалитьВместе с языком страницы и источником кампании; используется только для подтверждения адреса и объявления о запуске
Анонимная аналитика веб-сайтаТолько после того, как вы примете cookieХранится в Google Analytics, а не в нашей базе данныхТолько веб-сайт — расширение сообщает анонимные счётчики ошибок, не содержащие идентификатора пользователя

А вот точный перечень данных, которых наш бэкенд не видит:

  • Сырое аудио встречи (в любом формате, в любой момент)
  • Сжатые потоки аудио встреч
  • Буферы аудио встреч и промежуточные представления
  • Голосовые биометрические данные с ваших встреч (единственная запись голоса, которую мы храним, — описанный выше образец для клона голоса в Pro, и только если вы его запишете)
  • Идентичность спикера сверх анонимных идентификаторов спикеров, которые присваивает Soniox
  • Текст транскрипта — резюме генерируются на устройстве; транскрипты никогда не покидают вашу машину

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

Запись и удаление образца описаны в клонирование собственного голоса.

Проверьте сами

Одно из преимуществ работы в формате расширения Chrome в том, что вся среда выполнения доступна для инспекции. Ваша ИТ-служба может проверить наши заявления о приватности, не поверив ни единому слову этой статьи:

Способ 1 — инспекция сети. Откройте chrome://extensions, найдите Gaavala, нажмите "service worker" либо "inspect views > background page". В DevTools перейдите на вкладку Network и отфильтруйте по WS (WebSocket). Начните встречу. Вы увидите ровно один открытый WebSocket — к хосту soniox.com. К gaavala.com аудио встреч не уходит.

Способ 2 — инспекция манифеста. В chrome://extensions разверните "Details" (Подробнее) у Gaavala и изучите разрешения. Раздел host_permissions объявляет ровно те источники, к которым расширение может обращаться. Вы увидите эндпоинты Soniox для потоковой передачи и эндпоинты Gaavala для аутентификации и подписки. Ни одного host-разрешения с подстановочным символом и ни одного необъявленного сетевого доступа.

Способ 3 — инспекция исходников. Расширение поставляется с service worker, offscreen-документом, боковой панелью и content script'ами. Chrome предоставляет их все для инспекции через инструменты разработчика. Ваша служба безопасности может в любой момент подключиться к фоновой странице или к offscreen-документу и прочитать состояние среды выполнения — в том числе убедиться, что объект аудиопотока никогда не сериализуется в fetch или XHR в сторону нашего домена.

Мы публикуем манифест и host-разрешения в составе карточки в Chrome Web Store и приветствуем независимый аудит безопасности.

Соответствие требованиям

GDPR и минимизация данных

Статья 5(1)(c) GDPR устанавливает принцип минимизации данных: персональные данные должны быть «адекватными, относящимися к делу и ограниченными тем, что необходимо». Голосовые данные — это персональные данные по GDPR, а при использовании для идентификации — ещё и биометрические.

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

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

HIPAA и аудио, содержащее PHI

Согласно рекомендациям HHS о business associates, поставщик, который обрабатывает электронную защищаемую медицинскую информацию (ePHI) от имени организации, подпадающей под HIPAA, или другого business associate, может сам иметь статус business associate. Если такие отношения возникают, необходимы соответствующие условия соглашения BAA. Рекомендации HHS по облачным услугам объясняют применение этих правил к облачным сервисам. Оценивайте фактическую услугу, потоки данных и соглашения.

Бэкенд Gaavala никогда не получает аудио встречи, поэтому PHI, прозвучавшая на встрече, никогда не хранится на серверах Gaavala. При этом аудио встречи всё же передаётся в Soniox и обрабатывается там — поставщиком речевых сервисов, которого Gaavala привлекает по договору, — так что оценка по HIPAA должна охватывать этот путь как часть сервиса Gaavala: это не отношения только между вами и Soniox. Если вы генерируете AI-резюме, они создаются на устройстве встроенной AI-моделью Chrome — текст транскрипта остаётся на вашей машине, поэтому функция резюме не добавляет в цепочку обработки PHI ни серверы Gaavala, ни другого поставщика.

Риски поставщиков в SOC 2

Критерий CC9.2 в AICPA Trust Services Criteria касается оценки рисков, связанных с поставщиками и деловыми партнёрами, и управления этими рисками. Оценка зависит от определённых границ системы, услуг и обязательств, а также от роли поставщика в этих границах.

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

Почему формат расширения Chrome имеет значение

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

  • Серверный аудиопрокси. Реализуется просто, но заставил бы нас обрабатывать аудио каждого клиента на собственной инфраструктуре. Именно этого мы сознательно хотели избежать.
  • Веб-приложение со встроенным STT. Захват аудио вкладки со страницы требует getDisplayMedia, который каждую сессию показывает пользователю системный выбор источника и привязывает работу к выбранной им вкладке. Хуже того, у веб-страницы нет надёжного способа поддерживать фоновый аудиопоток, пока пользователь работает в других вкладках.
  • Нативное десктопное приложение. Дало бы больше контроля, но добавило бы трение при установке, расходы на подпись кода и разработку под каждую ОС. И оно всё равно не убрало бы нашу роль обработчика аудио, если бы мы не действовали крайне аккуратно, — то есть мы заново изобрели бы все те же проблемы.

Именно формат расширения Chrome сделал возможной ту архитектуру приватности, которую мы хотели. tabCapture, offscreen-документы и модель service worker из Manifest V3 вместе позволяют расширению захватывать аудио встречи на машине пользователя, передавать его по прямому соединению в движок распознавания речи и удерживать фоновое состояние, нужное для долгих встреч, — не пропуская аудио встречи через нас.

Что нам всё ещё нужно делать правильно

Архитектура приватности не заканчивается фразой «мы не касаемся аудио встреч». Есть смежные вопросы, к которым мы тоже относимся серьёзно:

  • Выпуск временных ключей. Короткоживущие ключи Soniox, которые мы выпускаем, можно было бы использовать во вред, если бы наш бэкенд выпускал ключи для злоумышленника. Мы аутентифицируем каждый запрос вашим JWT, ограничиваем частоту выдачи ключей и логируем аномалии.
  • Обновления расширения. Обновлённая версия расширения теоретически может изменить сетевое поведение. Мы версионируем манифест, публикуем списки изменений, а Chrome Web Store показывает любые новые разрешения до установки обновления.
  • Текст резюме. Резюме генерируются целиком на устройстве встроенной AI-моделью Chrome (Gemini Nano), поэтому транскрипт не доходит до нашего бэкенда — в текущей архитектуре этого риска не существует. Если для какой-то встречи даже локальная AI-обработка избыточна, функцией резюме можно просто не пользоваться: от неё ничего больше не зависит.
  • Эталонный образец для клона голоса (Pro). Если вы создаёте персональный клон голоса, ваш двухминутный образец хранится в зашифрованном виде (AES-256-GCM) на серверах Gaavala, используется только для построения вашего голоса и удаляется по запросу — см. Политику конфиденциальности.
  • Юридические запросы. Мы публично обязуемся отвечать на юридические запросы только по тем данным, которыми действительно располагаем. Применительно к аудио встреч ответ всегда будет один: «у нас его нет».

Сравнение с другими инструментами перевода встреч

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

Нет — согласно политике Zoom содержимое клиентов не используется для обучения AI-моделей.

Приватность — это стандарт, а не платный тариф

Бесплатный уровень Gaavala даёт ту же архитектуру с прямым подключением к Soniox, ту же диаризацию спикеров, то же покрытие в 60 языков. Pro открывает 120 минут в день, Speak Mode и клонирование голоса — но не приватность. Мы не считаем, что пользователи, заботящиеся о приватности, должны платить больше, чтобы их данные оставались в безопасности.

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

В список ожидания

Одноразовый бесплатный пробный период: 5 минут транскрипции, никогда не сбрасывается. Без кредитной карты. Без регистрации на сайте.


Читайте также