Безопасность
Что происходит с вашими данными
Whisperer стоит вплотную к вашей работе: созвоны, документы, задачи, календарь и контекст, который их связывает. Эта страница про то, чем эти данные защищены, куда они идут, кто до них дотягивается и как их удалить.
Чего мы не заявляем
У Whisperer нет ни SOC 2, ни ISO 27001, ни независимого аудита безопасности, и делать вид, что есть, мы не будем. Что мы можем — показать, как система устроена и где проходят её границы. Этим остальная страница и занята.
-
Минимум
Возможность получает те данные, без которых не работает, и не получает остальные. Сессия без логов не пишет в базу вообще ничего.
-
Изоляция
Каждый запрос ограничен владельцем на уровне данных, а не оставлен на память каждому обработчику.
-
Шифрование
TLS на всём, что передаётся. Доступы к подключённым сервисам шифруются до того, как попадут в базу.
-
Контроль
Каждый маршрут API требует аутентификации, если он не в явном списке публичных, — и тест падает, если новый проскочил мимо.
-
Прозрачность
Там, где данные покидают нашу инфраструктуру, страница называет получателя, состав и причину.
Куда идут данные
Пять участков между вашим микрофоном и ответом. Раскройте любой, чтобы увидеть, что он несёт.
-
01 Ваше устройство
Несёт: Микрофон и системный звук, снятые вами скриншоты, загруженные файлы.
Почему: Захват возможен только там, где идёт разговор. Панель исключена из захвата экрана, поэтому при демонстрации её не видно, а токены доступа лежат в системном хранилище секретов — Keychain на macOS, DPAPI на Windows, — а не в читаемом файле.
-
02 Соединение
Несёт: Всё, что идёт между вашим клиентом и Whisperer.
Почему: HTTPS с TLS 1.2 и новее. Токен сессии передаётся в заголовке Authorization, а не в адресе, поэтому он не оседает в логах сервера и прокси. Эдж отдаёт HSTS, запрет угадывания типа, запрет встраивания в рамку и строгую политику реферера.
-
03 API Whisperer
Несёт: Запросы — после аутентификации, ограничения темпа и проверки владения.
Почему: Авторизация работает на отказ по умолчанию: если право не подтверждено, запрос отклоняется, а не пропускается «на всякий случай». Лимиты темпа считаются на токен, а не на адрес, поэтому люди за одним общим соединением не делят одну корзину.
-
04 Хранилище
Несёт: Встречи, стенограммы, заметки, задачи и календарь — в управляемой базе; файлы и записи — в объектном хранилище; краткоживущее состояние — в управляемом кэше; векторы поиска — в векторной базе.
Почему: К базе приложение подключается с полной проверкой сертификата по закреплённому корню: подменённый узел не подключится, а откажет. Данные хранятся на серверах в России и/или ЕС — так же, как сказано в политике конфиденциальности.
-
05 ИИ-провайдеры и подключённые сервисы
Несёт: Для возможности, которой нужна модель — ответ, расшифровка, перевод, векторизация, — то содержимое, с которым она работает. Для сервиса, который вы подключили сами, — данные в рамках этой интеграции.
Почему: Своих моделей речи и языка у нас нет. Это и есть граница, за которой данные покидают нашу инфраструктуру, поэтому она названа прямо, а не оставлена подразумеваемой. Таблица ниже перечисляет всех и ведёт на их условия.
- Остаётся на вашем устройстве или внутри Whisperer
- В пути между ними
- Уходит третьей стороне
Шифрование
При передаче. Соединения между клиентами, API и инфраструктурой идут по HTTPS с TLS 1.2 и новее; прод-эдж сейчас договаривается на TLS 1.3. Строгая транспортная политика отдаётся сроком на год, поэтому браузер, однажды побывавший на сайте, не откатится на открытый HTTP.
При хранении. База, объектное хранилище и кэш — управляемые сервисы, и шифрование при хранении обеспечивают они, а не мы. Называть алгоритм для хранилища, которым мы не управляем, не станем: это была бы догадка в одежде гарантии.
Секреты. Доступы к подключённым сервисам — refresh-токены, ключи интеграций, токены ваших собственных инструментов — шифруются до записи в базу, кольцом ключей, которое позволяет сменить ключ без простоя и без разовой перешифровки всего. Отсутствующий или битый ключ приводит к отказу: ничего не пишется, вместо того чтобы записаться открытым текстом.
Безопасность аккаунта
Пароли. хранятся хэшами bcrypt на двенадцати раундах и никогда открытым текстом. Регистрация требует подтвердить почту шестизначным кодом с коротким сроком жизни, а вход и регистрация закрыты проверкой на бота.
Сессии. Токен доступа живёт 30 минут. Refresh-токен — 7 суток в cookie, которую не читает JavaScript, ограниченной путём аутентификации и защищённой от межсайтового использования парным токеном. Смена пароля или выход со всех устройств поднимает счётчик версии, и все ранее выданные токены перестают работать.
Десктоп и внешние клиенты. Привязка десктопа идёт одноразовым кодом, поэтому пароль в приложение не попадает. Внешние ИИ-клиенты проходят OAuth 2.1 с обязательным PKCE; неявной и парольной выдачи не существует. Эти токены хранятся хэшами и сравниваются за постоянное время, а refresh принимается только на эндпоинте токенов и никогда вместо токена доступа.
Пространство принадлежит вам
Каждая встреча, стенограмма, заметка, файл, задача, событие календаря и воспоминание принадлежат создавшему их аккаунту. Ограничение по владельцу стоит на уровне данных, поэтому запрос с чужим идентификатором отклоняется — гарантия не зависит от того, вспомнил ли обработчик про проверку.
Держат это не договорённость, а два архитектурных теста. Один падает, если у версионного маршрута API нет ни аутентификации, ни строки в явном списке публичных; второй — если в этом списке остались маршруты, которых больше нет. Доступ выдаётся по одному объекту и только по вашему решению: по умолчанию никому ничего не видно.
Встречи, записи и скриншоты
Во время созвона. Микрофон и системный звук идут на распознавание по ходу разговора. Панель не видно при демонстрации экрана — но слышимый звук собеседника распознаётся по-прежнему, и на групповом звонке об этом стоит помнить.
После созвона. Стенограмма, заметки, задачи и карта решений лежат в вашем пространстве: их можно править, выгружать и удалять. Запись, сделанная в видеокомнате Whisperer, пишется в объектное хранилище и возвращается встречей со стенограммой. Снятые вами скриншоты прикрепляются к сессии и уходят в модель зрения тогда, когда вы спрашиваете про то, что на экране.
Сессии без логов. Сессию можно вести в режиме, где стенограмма и ответы не пишутся в базу вовсе, а связанные данные удаляются по её завершении. Минуты при этом расходуются: вы экономите хранение, а не время. Включать заранее — не записать проще, чем потом стирать.
Файлы и знания
Загруженные документы индексируются, чтобы ответы могли на них опираться. Выдача ограничена владельцем: поиск, который собирает контекст под ваш вопрос, смотрит только на векторы вашего аккаунта, поэтому документ одного пространства не может всплыть в ответе другого.
Удаление документа убирает его и из поискового индекса, и из хранилища, поэтому он перестаёт появляться в подобранном контексте, а не остаётся там незаметно. На размер файла стоит потолок, а если объектное хранилище не настроено, раздел недоступен целиком, а не работает наполовину.
Память и личный контекст
Leo держит два вида контекста: профиль, который вы пишете сами, и устойчивые факты, которые он записывает по ходу работы, чтобы повторяющееся не приходилось объяснять дважды. И то и другое живёт в вашем аккаунте, видно в разделе Leo и там же правится и удаляется. Не запоминается ничего, чего вы не можете увидеть.
Контекст, который вы даёте, приходит в модель как справочный материал и не может переопределить системные инструкции. Но он становится частью промпта — поэтому пароли и токены в профиль, заметки и базу знаний класть не нужно.
Обработка моделями
Whisperer не обучает и не держит собственных моделей речи и языка. Возможность, которой модель нужна — ответ по ходу созвона, расшифровка, перевод, выжимка, векторизация для поиска, — отправляет содержимое, с которым работает, стороннему провайдеру и пользуется тем, что вернулось.
Состав отправки зависит от возможности. Ответ несёт текущую стенограмму, те части базы знаний, что подобраны под этот вопрос, и контекст вашего профиля. Расшифровка несёт звук. Для возможности, которой вы не пользуетесь, не уходит ничего.
| Провайдер | Для чего | Что уходит | Условия |
|---|---|---|---|
| OpenRouter | Текстовые модели: ответы, заметки, выжимки, векторизация, переранжирование | Промпт: фрагменты стенограммы, подобранные под вопрос знания, контекст профиля | Политика |
| OpenAI | Живое распознавание речи во время созвона | Звук разговора | Политика |
| Deepgram | Распознавание речи в записанных встречах | Звук встречи | Политика |
| Живой голосовой перевод и голосовой ассистент | Звук — идёт из браузера напрямую провайдеру, наши серверы его не проксируют | Политика | |
| pyannote.ai | Разделение говорящих в записи | Звук встречи | Политика |
| Cloudflare | Проверка на бота при входе и регистрации | Сигнал браузерной проверки. Данных пространства нет | Политика |
Как провайдер обращается с полученным, определяют его собственные условия и политика — ссылки выше. Мы не пересказываем их здесь и не обещаем за провайдера, что ваше содержимое никогда не пойдёт на обучение: это его обязательство, а не наше. Какая модель отвечает за какую роль — настройка в вашем кабинете, поэтому видно и меняется, куда уходят запросы.
Подключённые сервисы и MCP
Подключение сервиса — календаря, заметок, CRM, трекера — даёт Whisperer доступ к тому, что этот сервис открывает, в границах разрешений, которые вы подтвердили на его собственном экране согласия. Отключить можно в кабинете в любой момент, отозвать — ещё и на стороне самого сервиса.
MCP работает в обе стороны. У Whisperer есть MCP-сервер, чтобы внешние ИИ-инструменты читали ваши данные, и MCP-клиент, чтобы Leo пользовался подключёнными инструментами. Встреча видна внешнему клиенту, только если вы пометили её общей; архив целиком — никогда, а сессии без логов исключены безусловно. Доступ, который вы дали Whisperer к своим сервисам, дальше через MCP-сервер не передаётся.
Необратимые действия. требуют подтверждения человеком с собранным на сервере предпросмотром того, что именно будет затронуто, и внешним клиентам недоступны вовсе. Инструменты, принимающие учётные данные, наружу не выставляются никогда — это был бы канал, чтобы подложить секрет в чужую интеграцию. MCP-сервер, который вы приносите своим процессом, запускается на вашей машине, а не на нашей. Исходящие адреса проверяются против приватных, петлевых, link-local и операторских диапазонов до первого запроса.
Инфраструктура
Приложение работает в контейнерах за единственным эджем, который и завершает TLS. База, кэш и объектное хранилище — управляемые сервисы, доступные по аутентифицированным зашифрованным соединениям; база — с полной проверкой сертификата по закреплённому корню.
Выкат идёт без остановки сервиса: новый контейнер встаёт в балансировку прежде, чем уйдёт старый, и каждый выкат помечает заменяемый образ, поэтому откат — одна команда. Изменения схемы применяются до старта нового кода, а приложение отказывается стартовать на схеме, которой не ожидает, вместо того чтобы работать не с той.
Настройки и учётные данные приходят из окружения и в репозиторий не попадают. Имён хостов, бакетов, портов и кластеров на этой странице не будет: рассказывать про модель безопасности полезно, выдавать карту — нет.
Журналы и наблюдение
Журналы приложения и ошибок, метрики запросов и состояние сервисов собираются, чтобы продукт можно было эксплуатировать, с оповещением при сбое. Пароли, токены и ключи в журналы не пишутся — токен сессии идёт заголовком, а не адресом, именно поэтому он туда и не попадает.
Честно про пределы: круглосуточного центра мониторинга безопасности у нас нет, как нет и внешней службы обнаружения атак. Наблюдение здесь эксплуатационное. Оно сообщает, что что-то сломалось; это не система обнаружения вторжений, и называть её так значило бы заявить непроверяемое.
Удаление данных
Три разные операции, и все — из кабинета, а не письмом в поддержку: выгрузить всё, что с вами связано, файлом; стереть весь контент, сохранив аккаунт и подписку; удалить аккаунт целиком.
Удаление аккаунта стирает контент и служебные записи, а саму строку аккаунта обезличивает. Убрать её совсем нельзя: на неё ссылаются платёжные записи, а бухгалтерский закон велит хранить их пять лет. Это единственное исключение, и оно названо в согласии, которое вы принимаете при регистрации. Перечень таблиц, которые обязано вычистить удаление, — единый реестр в коде, и тест падает, если в схеме появилась таблица со ссылкой на аккаунты, не попавшая в него: забыть одну значит оставить персональные данные после запроса на удаление.
| Данные | Зачем | Сколько хранятся |
|---|---|---|
| Встречи и стенограммы | История и поиск | Пока вы их не удалите |
| Записи и файлы | Воспроизведение и обработка | Пока вы их не удалите |
| Сессии без логов | Только помощь по ходу | Не пишутся; удаляются по завершении сессии |
| Скриншоты | Ответы про то, что на экране | Пока вы не удалите сессию |
| База знаний и поисковый индекс | Подбор контекста в ответы | Пока вы не удалите документ |
| Память и профиль | Личный контекст для Leo | Пока вы не измените или не удалите |
| Доступы интеграций | Поддержание подключения | Пока вы не отключите сервис |
| Аккаунт и платёжные записи | Доступ и бухгалтерский учёт | Неактивные аккаунты стираются через 3 года после последнего входа; платёжные записи хранятся 5 лет |
Объекты в хранилище удаляются в рамках самого запроса, а не по расписанию. Резервные копии — свойство управляемых платформ, которыми мы пользуемся, поэтому удалённая запись может жить в их снимках столько, сколько эти снимки хранятся; мы этим окном не управляем и выдумывать для него число не будем. По запросу в рамках GDPR или 152-ФЗ пишите в поддержку — отвечаем в течение 30 дней.
Безопасность — это процесс
Whisperer — растущий продукт. У нас нет ни SOC 2, ни ISO 27001, ни другой независимой сертификации, мы не заказывали внешний тест на проникновение и не станем выдавать собственную проверку за него. Сказать это прямо — часть модели: непроверяемое заявление стоит меньше, чем архитектура, которую можно прочитать.
Часть мер здесь намеренно описана как неполная. Политика безопасности содержимого работает в режиме отчёта, пока настраивается: она сообщает о нарушениях, а не блокирует их. Двухфакторной аутентификации пока нет. Там, где на странице сказано там, где это обеспечивает платформа, имеется в виду ровно это и ничего сверх.
Куда идём
По мере роста Whisperer мы оцениваем дальнейшие меры безопасности и соответствия требованиям. Без дат: дата, которую нельзя сдержать, была бы ещё одним непроверяемым заявлением.
- Перевести политику безопасности содержимого из отчёта в применение
- Двухфакторная аутентификация аккаунта
- Независимая проверка безопасности и тест на проникновение
- Формальные политики безопасности и программа соответствия
Нашли уязвимость?
Сообщите нам до публичного раскрытия и дайте разумный срок на починку. Опишите, что нашли, как воспроизвести и в чём, по-вашему, последствия. Мы подтвердим получение и будем держать вас в курсе.
Платной программы вознаграждений у нас нет. Если хотите, чтобы находку записали на ваше имя, — скажите, и мы укажем автора.