Liveness Detection для KYC: защита от спуфинг-атак

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

Почему детекция живого лица ломается на реальных потоках

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

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

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

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

Что даёт проверка живости: измеримые эффекты на входе

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

  • Доля отсечённых атак — считаем отдельно по классам подмены: статичный снимок, снимок с экрана, видеопоток с экрана, маска, синтетически сгенерированное лицо. По презентационным классам отсечение выходит на уровень, подтверждаемый независимой сертификацией iBeta, и не размывается одним усреднённым показателем.
  • Конверсия регистрации — пассивная проверка без заданий «поверните голову» не срезает воронку: живые пользователи проходят шаг с первой попытки, а доля дошедших до конца растёт за счёт тех, кто раньше бросал сценарий на середине.
  • Время прохождения проверки — укладывается в 1-3 секунды вместе с захватом кадра и вынесением решения; отдельное приложение и ручная модерация для этого не нужны.
  • Число повторных попыток — снижается, когда подсказки по свету и положению лица в кадре возвращают человека в тот же сценарий, а не выбрасывают в начало.
  • Класс отказов — уходит ложный пропуск подмены; ложный отказ живого человека становится управляемой величиной через порог чувствительности и разбор спорных случаев по журналу решений.

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

Форматы детекции живого лица: пассивная, активная, гибридная

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

Вариант Когда подходит Ограничения
Пассивная проверка живости Массовый вход с мобильного: обычное селфи, без инструкций и лишних шагов Чувствительна к свету и качеству кадра; на слабых фронтальных камерах растёт доля ложных отказов, а причину отказа сложно объяснить пользователю
Активная проверка живости Повторная верификация, смена реквизитов, вывод средств — сценарии с повышенным риском Заметно удлиняет вход, зависит от понятности подсказок; недоступна части людей с ограничениями движения, выше доля брошенных попыток
Гибридная схема проверки Смешанный поток: незаметная проверка на входе с эскалацией в активную по уровню риска Сложнее в поддержке: нужны калибровка порогов, аналитика отказов и дисциплина обновления правил, дольше вывод в эксплуатацию

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

Этапы внедрения проверки живости: от схемы до передачи

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

  1. Аудит сценария верификации. Разбираем шаги пользователя: регистрация, вход, повторная проверка, эскалация на оператора. Фиксируем, на каком шаге нужна детекция и что считается провалом — отказ или запрос дополнительного подтверждения.

  2. Схема потоков данных. Определяем, где снимается кадр, где обрабатывается, что уходит во внешние сервисы, а что остаётся в вашем контуре. На схеме видно точки хранения и сроки жизни биометрических данных.

  3. Настройка порогов чувствительности. Порог — это компромисс между ложным пропуском подделки и ложным отказом живому человеку. Калибруем на вашей статистике: качество камер, освещение, типовые устройства пользователей.

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

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

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

Конфигурации, схемы и регламенты: что остаётся заказчику

Приложение проверки живости не должно оставаться чёрным ящиком, доступным только разработчику. Мы передаём команде заказчика полный набор артефактов — от профилей проверок до порядка действий при подозрительной попытке прохода. Этого достаточно, чтобы настраивать чувствительность под свой трафик, разбирать спорные случаи и развивать решение без нас.

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

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

Кейс: как ушёл класс атак с подменой лица на верификации

Что было до

Верификация держалась на сравнении селфи с фото документа, а признак «в кадре живой человек» не проверялся вовсе. Обход шёл тремя путями: фото с экрана, заранее записанное видео и виртуальная камера, подменяющая поток с устройства, — каждая такая попытка проходила как обычная заявка. Доля пропущенных подмен держалась около 9%, ложные отказы доходили до 12%, а ручной разбор подозрительных заявок забирал у операторов почти половину смены.

Что изменили

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

Что стало

Доля пропущенных подмен упала с ~9% до 0.4%, ложные отказы — с 12% до 3%, успешных прохождений с первой попытки стало больше на четверть. Очередь ручной проверки сократилась примерно вчетверо: операторы смотрят только пограничные случаи. Устойчивость к новым схемам подмены подтвердили независимым тестом по методике iBeta — это внешняя проверка, а не наша внутренняя оценка.

Чем пассивная проверка живости отличается от активной?

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

Активная проверка построена как запрос-ответ: систему просят повернуть голову, моргнуть по подсказке, приблизить или отдалить лицо. Действие пользователя при проверке становится частью протокола — запись экрана или подложенный снимок такое задание не воспроизведут, потому что оно генерируется заново для каждой попытки. Но появляется зависимость от поведения: человек не понял подсказку, отвлёкся, торопится на этапе оплаты — и сценарий не закрыт.

Доля ложных отказов у двух режимов различается по источнику. Пассивная даёт меньше отказов на потоке — провалить нечего, нет шага, который можно выполнить неправильно. Зато она чувствительнее к качеству кадра: слабая камера, контровой свет, очки с бликом съедают часть признаков. Активная устойчивее на слабых каналах, но получает собственную долю отказов от поведения пользователя, а не от качества съёмки.

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

Ограничения и технические сомнения по проверке живости

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

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

Что делать, если у клиента слабый свет или старая камера?

Сценарий перестраиваем под условия: просим короткое движение, добавляем подсветку и запасной маршрут снимков. Если качество кадра ниже рабочего диапазона, система сообщает о невозможности проверки, а не выдаёт случайный вердикт.

Храните ли вы изображения пользователей?

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

Как часто придётся заново настраивать пороги?

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

Обсудим задачу: с чего начинается проект

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139