Архитектура и безопасность SDK Rivox AI

SDK Rivox AI — это лёгкий клиентский JavaScript-скрипт размером менее 45 КБ. Его задача — собирать анонимные поведенческие данные для ML-модели. В этом разделе — как устроена архитектура, как защищены данные и почему SDK безопасен для вашего сайта и пользователей.

Клиентский JavaScript-скрипт

SDK Rivox AI работает полностью на стороне браузера пользователя. Скрипт спроектирован так, чтобы быть максимально незаметным и не влиять на работу сайта.

  • Загружается асинхронно — не блокирует рендеринг и загрузку страницы
  • Инициализируется с задержкой 700 мс после загрузки документа, чтобы не конкурировать с основным контентом
  • Работает в фоновом режиме — пользователь не замечает его присутствия
  • Использует passive-слушатели событий, чтобы не замедлять прокрутку и взаимодействие
  • Размер скрипта — менее 45 КБ, что сопоставимо с одной маленькой картинкой
i SDK не модифицирует DOM, не вставляет элементы на страницу и не изменяет внешний вид сайта. Он только наблюдает за действиями пользователя.

Что SDK не собирает

Принципиально важно: SDK Rivox AI не имеет доступа к персональным данным пользователей. Вот полный список того, что SDK никогда не собирает:

  • Персональные данные: имена, email, телефоны, адреса
  • Содержимое полей форм — фиксируется только факт взаимодействия с полем
  • Cookie и идентификаторы третьих сторон
  • Геолокация и IP-адреса
  • Платёжная информация
  • Fingerprinting устройства и cross-site трекинг

SDK видит только действия пользователя, но не знает, кто он. Даже при желании по этим данным невозможно восстановить личность человека.

Хеширование и анонимизация

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

  • Названия кнопок → хеш
  • CSS-селекторы элементов → хеш
  • Названия товаров и категорий → хеш
  • Текст ссылок и заголовков → хеш

MurmurHash3 — это односторонняя функция. Восстановить исходный текст из хеша невозможно. После серверной обработки данные хранятся исключительно в хешированном виде.

i SDK не имеет доступа к cookie других сайтов, localStorage сторонних ресурсов и любым данным за пределами текущей страницы.

Передача данных

Все собранные данные передаются на серверы Rivox AI по защищённому каналу связи.

  • Протокол: HTTPS с шифрованием TLS 1.3
  • Данные передаются на собственные серверы Rivox AI по единственному защищённому каналу
  • Пакетная отправка: события буферизируются и отправляются пачками по 10–20 штук каждые 5–10 секунд
  • При закрытии вкладки — немедленная отправка оставшихся событий (flush)
  • Верификация Origin: сервер принимает запросы только с зарегистрированных доменов клиента
  • CORS строго настроен — запросы с неавторизованных источников отклоняются
  • Надёжность: 3 попытки повторной отправки с экспоненциальной задержкой (exponential backoff)

Серверная инфраструктура

Данные, полученные от SDK, хранятся и обрабатываются на серверной стороне с соблюдением строгих мер безопасности.

  • Все данные обрабатываются на собственных изолированных серверах Rivox AI с аппаратным шифрованием и Zero-Trust сетевой архитектурой
  • Каждый клиент имеет изолированное хранилище данных с уникальным токеном доступа
  • Смешивание данных между клиентами исключено на архитектурном уровне
  • Хешированные селекторы — невозможно восстановить структуру сайта клиента
  • Анонимные метрики — невозможно идентифицировать конкретных пользователей
  • Применяется принцип наименьших привилегий (least privilege) для всех компонентов системы
i Даже в случае утечки данных с сервера злоумышленник получит только набор хешей и числовых метрик — без возможности восстановить личности пользователей или структуру сайта.

Соответствие 152-ФЗ и GDPR

SDK Rivox AI собирает только анонимные поведенческие метрики, которые не являются персональными данными в соответствии с определением Федерального закона № 152-ФЗ «О персональных данных».

  • Согласие не требуется — SDK не собирает персональные данные, поэтому получение согласия пользователя не является обязательным
  • Минимизация данных — собираются только те метрики, которые необходимы для работы ML-модели
  • Анонимизация — идентификация пользователя по собранным данным невозможна
  • Целевое ограничение — данные используются исключительно для поведенческой аналитики и оптимизации рекламы
  • Шифрование — данные зашифрованы при передаче (TLS 1.3) и при хранении (encryption at rest)
  • Удаление данных — все данные клиента удаляются в течение 30 дней после завершения договора
i Подробнее о соответствии 152-ФЗ читайте в разделе Соответствие 152-ФЗ.

Влияние на производительность

SDK Rivox AI спроектирован для работы на высоконагруженных сайтах без какого-либо влияния на пользовательский опыт.

  • DOMContentLoaded — без изменений, SDK загружается асинхронно
  • TTI (Time to Interactive) — влияние менее 5 мс
  • FCP / LCP — без изменений, SDK не влияет на отрисовку контента
  • Использует requestIdleCallback для ресурсоёмких вычислений — они выполняются только когда браузер свободен
  • Throttling обработчиков событий — минимальная нагрузка на основной поток
  • SDK работает в фоновом режиме, не затрагивая основную функциональность сайта
i Подробные результаты тестирования производительности доступны в разделе Производительность сайта.

Обезличивание данных на уровне SDK

SDK применяет несколько уровней защиты данных ещё на этапе сбора — до отправки на сервер:

  • SDK собирает сырые поведенческие события (клики, скроллы, тайминги) и передаёт их на сервер по защищённому каналу HTTPS/TLS 1.3
  • На сервере все текстовые значения обрезаются до 120 символов и хешируются алгоритмом MurmurHash3 — быстрой односторонней функцией, из результата которой невозможно восстановить исходный текст
  • После обработки данные хранятся только в виде el_text_hash (хеш текста элемента) и el_structure_hash (хеш DOM-структуры) — сырой текст не сохраняется
  • SDK не собирает содержимое полей форм, cookie, геолокацию и любые персональные данные
i Передача данных между браузером и сервером защищена TLS 1.3. После серверной обработки все текстовые данные хешируются и хранятся только в обезличенном виде — восстановить содержимое сайта из хранилища невозможно.

Архитектура изоляции данных между клиентами

Каждая установка SDK идентифицируется уникальным client_token, который жёстко привязывает все собираемые данные к конкретному клиенту. Данные с сайта A физически не могут попасть в хранилище сайта B и не используются для обучения его модели.

Почему данные невозможно переиспользовать на другом сайте:

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

  • Кнопка сдвинута на 10px → другой el_structure_hash
  • Текст изменился с «Купить» на «В корзину» → другой el_text_hash
  • Различная DOM-структура, координаты элементов, CSS-селекторы — каждый сайт порождает уникальное пространство признаков

Даже намеренно «перенести» данные между клиентами технически невозможно:

  • SDK и серверная часть жёстко привязаны к client_token — запрос с чужим токеном отклоняется
  • Хеши элементов уникальны для каждого сайта — они бессмысленны вне контекста конкретного интерфейса
  • Система маршрутизации на уровне API исключает кросс-доменные операции с данными

Изоляция на уровне инфраструктуры:

  • 1.IAM-контроль — доступ к данным каждого клиента регулируется системой Identity and Access Management; сервисы получают только те права, которые необходимы для обработки данных конкретного клиента
  • 2.Изолированные датасеты — данные каждого клиента хранятся в отдельном защищённом хранилище, физически отделённом от данных других клиентов
  • 3.Уникальный технический ключ — доступ к данным возможен только по клиентскому ключу; без него данные недоступны даже внутренним системам
  • 4.Выделенные вычислительные контуры — каждая ML-модель обучается исключительно на данных своего клиента в изолированном вычислительном окружении
i Архитектура изоляции построена по принципу defense in depth: даже компрометация одного слоя защиты не даёт доступа к данным других клиентов, поскольку каждый слой независим.

Чек-лист проверки безопасности для корпоративных клиентов

Перед подключением SDK на критичные среды (банки, финансовые организации, крупные предприятия) рекомендуем пройти следующий чек-лист:

  • Код SDK открыт — скрипт размещён на GitHub, исходный код доступен для аудита вашей командой безопасности
  • Отсутствуют вызовы document.cookie и navigator.geolocation — код SDK не обращается к cookie и геолокации; это можно проверить поиском по исходному коду
  • Проверка через DevTools — во вкладке Network можно убедиться, что SDK отправляет только поведенческие события (клики, скроллы, тайминги); хеширование данных происходит на этапе серверной обработки
  • localStorage — содержит только служебные ключи SDK (session_id, tab_id); пользовательские данные не записываются
  • Единственный эндпоинт — все запросы SDK идут на один защищённый сервер Rivox AI, только HTTPS, шифрование TLS 1.3
  • Подходит для банков и финансовых организаций — SDK не собирает PII, не обрабатывает платёжные данные, не получает доступ к банковским формам
  • Совместим с CSP, CORS whitelist и dataLayer-контролями — SDK корректно работает с Content Security Policy, не конфликтует с CORS-политиками и не перехватывает dataLayer
i Если ваша служба безопасности требует дополнительных проверок или аудит исходного кода — свяжитесь с нами. Мы предоставляем исходный код SDK для ревью по NDA.