Три слоя защиты, пять поверхностей, ни один бот не победит
Проверка - сердце Caputchin. Ворота работают вместе; поверхности - это то, как ты подключаешь их к своему стеку. Путь по умолчанию: виджет плюс вызов verify из твоего бэкенда. Остальные поверхности здесь на случай, когда умолчание не подходит.
Как идёт проверка.
Посетитель открывает твою страницу. Виджет прогоняет ворота. Подписанный токен переходит к твоему бэкенду. Твой бэкенд просит нас его подтвердить.
- ПосетительОткрывает твою страницу
- Виджет CaputchinЗагружается на твоей странице
- Античит как в играхРаботает в изолированном iframe
- Твой бэкендПолучает обёрнутый токен
- /siteverifyCaputchin подтверждает токен
Каждый слой повышает цену для своей атаки.
Ни один слой в одиночку не должен побеждать каждую атаку. Суть в композиции: к моменту, когда запрос доходит до игры, он уже уплатил пошлину каждых ворот перед собой. Честная карта ниже.
| Шаблон атаки | Proof of work | Инструментирование браузера | Античит как в играх |
|---|---|---|---|
Скрипты на curl и fetchГолые HTTP-скрипты, бьющие прямо в твой эндпоинт. | Отвечает на эту атаку | ||
Безголовые браузерыPuppeteer, Playwright или Selenium, работающие в фоне. | Отвечает на эту атаку | ||
Фермы ботов на настоящих браузерахНастоящие экземпляры Chrome на арендованных серверах, иногда за рулём люди. | Отвечает на эту атаку | Отвечает на эту атаку | |
Решатель как услугаПлатные фермы решателей, которые берут испытание и возвращают ответ, нередко дешёвым человеческим трудом. | Отвечает на эту атаку | Отвечает на эту атаку | |
Передовые ИИ-моделиМодели зрения и агентов, что читают сетки изображений, решают OCR-головоломки и проходят старые CAPTCHA за миллисекунды. | Отвечает на эту атаку |
- Скрипты на curl и fetchГолые HTTP-скрипты, бьющие прямо в твой эндпоинт.Слои, что отвечают на неё
- Инструментирование браузера
- Безголовые браузерыPuppeteer, Playwright или Selenium, работающие в фоне.Слои, что отвечают на неё
- Инструментирование браузера
- Фермы ботов на настоящих браузерахНастоящие экземпляры Chrome на арендованных серверах, иногда за рулём люди.Слои, что отвечают на неё
- Proof of work
- Античит как в играх
- Решатель как услугаПлатные фермы решателей, которые берут испытание и возвращают ответ, нередко дешёвым человеческим трудом.Слои, что отвечают на неё
- Proof of work
- Античит как в играх
- Передовые ИИ-моделиМодели зрения и агентов, что читают сетки изображений, решают OCR-головоломки и проходят старые CAPTCHA за миллисекунды.Слои, что отвечают на неё
- Античит как в играх
Больше, чем игра. Движок проверки.
Крошечная, разнообразная игра, в которую люди играют за секунды и получают удовольствие. Под капотом работает тот же античит-плейбук, которым соревновательные многопользовательские игры ловят читеров: наши серверы готовят каждый раунд до того, как ты сыграешь (авторитет сервера), и пересимулируют его после (детерминированное переигрывание), так что игру нельзя подделать, можно только сыграть. Это слой, которого нет ни у одной другой CAPTCHA, и причина, по которой Caputchin существует.
Авторитетная настройка на сервере
- Подписанный одноразовый билет (окно 30 минут) чеканит раунд. Потрать его раз, и переиграть его уже нельзя.
- Игра и её случайный сид выбираются на наших серверах, никогда в браузере, так что ничто на стороне клиента не может выбрать цель полегче.
- Каждый раз другая игра из пула. Решатель никогда не знает, какая ему достанется, поэтому не может натренироваться заранее.
Та же модель, что у соревновательного игрового сервера: клиент шлёт только ввод, никогда вердикт.
Детерминированное переигрывание
- Твой точный ввод переигрывается на наших серверах под тем же сидом, внутри запечатанного изолята без сети и с жёстким бюджетом времени.
- Прошёл или нет пересчитывается этим переигрыванием, никогда не берётся из браузера.
- Код каждой игры проверяется по хешу перед запуском, так что артефакт нельзя подменить у тебя под носом.
Построено на том же детерминизме, на который опирается синхронный (lockstep) мультиплеер: раунд пересимулируется из сида, чтобы подтвердить, что в него и правда сыграли.
В песочнице на твоей странице
Изолированный iframe без сети и без доступа к твоим cookie, хранилищу или DOM.
Разнообразие игр
Разные сайты получают разные игры, и каталог всё растёт.
Запечатанное переигрывание
Переигрывание идёт без сети и с жёстким бюджетом CPU. Ничто не входит и не выходит.
Код, защищённый от подмены
Каждый игровой артефакт проверяется по хешу прежде, чем отрисуется хоть один кадр.
Без профилирования
Мы не следим за твоей мышью или таймингом. Вместо этого мы переигрываем раунд.
Ещё двое ворот, сложенных рядом
Игровой античит никогда не работает в одиночку. Ворота proof of work и инструментирование браузера идут вместе с ним, каждое повышает цену для своего шаблона атаки. Сложенные последовательно, каждый слой, до которого добрался атакующий, уже уплатил пошлину.
Поверхности интеграции
Пять способов поставить проверку перед посетителем. Выбери тот, что подходит форме твоего кода, стека или команды.
Частые вопросы
Как Caputchin проверяет посетителя и поверхности, к которым ты его подключаешь.
- Что за три слоя проверки?
- Proof of work, инструментирование браузера и испытание античита как в играх. Они идут последовательно, так что к моменту, когда запрос доходит до игры, он уже оплатил стоимость каждых стоявших перед ним ворот.
- Должны ли настоящие посетители решать головоломку?
- Они играют в короткую игру, которая занимает пару секунд. Proof of work и инструментирование браузера незаметно работают в фоне, так что посетитель видит только игру.
- Может ли Caputchin останавливать безголовых ботов и ИИ-решателей?
- Да. Инструментирование браузера отсеивает безголовые инструменты и скрипты, proof of work облагает налогом вычисления на масштабе, а игра с авторитетом на сервере и детерминированным replay побеждает фермы решателей и передовые модели ИИ.
- Как проверить результат на моём сервере?
- Виджет выдаёт браузеру одноразовый токен. Твой бэкенд вызывает эндпоинт verify, чтобы подтвердить этот токен, прежде чем доверять запросу. Путь по умолчанию: веб-компонент плюс один вызов verify.
- А если элемент виджета не вписывается в моё приложение?
- Используй runtime API, чтобы вести проверку самому, размещённую проверку, чтобы направить форму к нам без кода бэкенда, или встраивание в мобильный WebView для нативных приложений iOS и Android.
Запусти проверку на одном ключе сайта. Бесплатно.
Зарегистрируйся, выпусти ключ сайта, помести виджет на одну форму. Перейди выше позже, когда понадобится возможность с более высокого тарифа.
Начать бесплатно