Поиск автомобиля

Как найти автомобиль по госномеру и защитить данные

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

Инженерный материал5 минутПроверено 01.09.2026

Коротко

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

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

Какие данные нужны

Минимальный поток:

  1. камера подтверждает, что место занято;
  2. готовый ANPR-результат связывается с этим местом;
  3. система хранит текущий статус, нормализованный ГРЗ и время;
  4. топология знает уровень/зону;
  5. опубликованный пешеходный граф при наличии строит маршрут.

Если номер был распознан только на въезде, а внутри нет per-space наблюдения, сервис может показать лишь факт присутствия, но не точное место.

Нормализация номера

Пользователь может вводить кириллицу или визуально похожую латиницу, пробелы и дефисы. Нормализация должна:

  • привести регистр;
  • удалить допустимые разделители;
  • сопоставить визуально эквивалентные символы по правилам региона;
  • проверить допустимую длину/формат;
  • не превращать слишком короткий фрагмент в массовый поиск.

CShark использует общий normalize_plate из contracts и отдельный query fingerprint.

Полный номер или фрагмент

Полный номер точнее, но пользователь может помнить не всё. Фрагмент улучшает UX и увеличивает риск совпадений/перебора.

Безопасная политика задаёт:

  • минимальную длину;
  • максимальное число результатов;
  • маскирование ответа;
  • scope одного объекта;
  • rate limit;
  • CAPTCHA или доверенный kiosk channel;
  • нейтральный ответ, не позволяющий различить чувствительные состояния.

Модель угроз

Перебор

Злоумышленник пробует номера и узнаёт, находится ли машина на объекте. Защита: rate limit, CAPTCHA, минимальная длина, throttling по нескольким ключам, audit/fingerprint.

Наблюдение за конкретным автомобилем

Публичный сервис не должен выдавать точное место/время без достаточного основания. Возможно, на объекте нужен только kiosk внутри закрытой зоны или подтверждение дополнительного признака.

Утечка через URL и логи

Не помещайте полный ГРЗ или bearer token в query. Query попадает в access logs, history и referrer. В CShark персональный QR bearer передаётся во fragment и затем меняется на HttpOnly cookie.

Слишком подробный ответ

Фото, полный номер соседних автомобилей, история посещений и точное время не нужны для задачи «дойти до своей машины».

Кража kiosk secret

Managed kiosk может подписывать запрос серверным HMAC, но секрет не должен попадать в браузер. Подпись формирует доверенный proxy/edge.

Два режима доступа

Публичный браузер

Требует CAPTCHA, rate limit, privacy notice, безопасный origin и согласованную выдачу.

Управляемый киоск

Стоит внутри объекта, запросы подписываются доверенным контуром и получают повышенную квоту. Это не делает выдачу безусловно безопасной: физический доступ и shoulder surfing тоже учитываются.

В CShark режимы разделены настройками find_car_public_enabled, CAPTCHA provider и find_car_kiosk_secret.

Что показывать пользователю

Минимально полезный результат:

  • «автомобиль найден»;
  • зона/этаж/сектор;
  • маскированный label, если нужен выбор из нескольких;
  • понятная ссылка «построить маршрут»;
  • время актуальности без лишней истории;
  • нейтральная ошибка, если данные устарели.

Не показывать:

  • полный список совпадений;
  • исходный кадр по умолчанию;
  • полный ГРЗ;
  • ФИО/пропуск/сессию;
  • технический camera ID;
  • точный внутренний URL storage.

Маршрут к автомобилю

Поиск и маршрут — разные функции. Для маршрута нужны:

  • опубликованный pedestrian graph;
  • физическая QR-точка/точка старта;
  • доступность рёбер;
  • ограниченная client session;
  • offline snapshot/деградация.

CShark хранит client QR points, client sessions и offline snapshot. Маршрут допустим только после публикации и объектовой приёмки графа.

Как провести пилот

Техническая часть

  • 50–100 тестовых сессий;
  • exact и partial query;
  • кириллица/латиница;
  • несколько совпадений;
  • устаревший статус;
  • CAPTCHA timeout;
  • rate-limit и distributed attempts;
  • kiosk signature expiry;
  • отсутствие утечки в logs/referrer.

Пользовательская часть

  • время от открытия до результата;
  • доля успешных поисков;
  • ошибки ввода;
  • отказ/обращение к оператору;
  • время маршрута;
  • доступность на 390px и kiosk screen.

Privacy часть

  • DPIA/оценка угроз;
  • legal basis и notice;
  • минимизация/retention;
  • penetration/abuse test;
  • письменное утверждение владельца данных.

KPI

  • search success rate;
  • time to result p50/p95;
  • no-match/ambiguous rate;
  • help-desk requests before/after;
  • false match;
  • blocked abuse attempts;
  • доля запросов с безопасным object scope;
  • доля статусов старше TTL.

FAQ

Нужен ли полный номер?

Это безопаснее и точнее. Фрагмент можно поддержать с минимальной длиной, лимитом результатов и anti-enumeration.

Зачем CAPTCHA, если сервис находится внутри ТЦ?

Публичный URL остаётся доступным автоматизированным запросам. Для управляемого киоска можно использовать отдельный подписанный контур.

Можно ли показать фото машины?

Технически возможно при правах, но публичному поиску оно обычно не нужно и повышает риск. Решение принимает владелец данных после правовой оценки.

CShark строит маршрут?

В коде есть клиентские сессии, QR points и навигация. Для конкретного объекта нужен опубликованный и принятый пешеходный граф.

Является ли госномер персональными данными?

Правовой статус зависит от контекста обработки и возможности связать данные с человеком. Для проекта следует исходить из повышенной чувствительности, провести оценку по 152-ФЗ и получить заключение юриста; эта статья не является юридической консультацией.

Граница применимости к CShark

Материал описывает проверяемый инженерный подход. Конкретный состав CShark зависит от версии, подключённых источников данных, прав, конфигурации и приёмки оборудования на объекте.

Посмотрите, какие возможности CShark доступны водителю и оператору и как они применяются на парковке, на странице возможностей системы.

Возможности CShark

Выберите возможности для вашего объекта

Посмотрите, как CShark помогает водителю, оператору и управляющей компании на парковке.

Посмотреть возможности