📌 Описание задачи:

У вас есть кастомная система MITM-перехвата, построенная на базе Mockttp (Node.js), которая работает как прокси-сервер и перехватывает HTTP-запросы, отправляемые приложением DoorDash Dasher на сервис верификации WithPersona.

Система уже успешно работает в следующих случаях:

При первичной регистрации аккаунта (account creation) — верификация проходит с реальными фотографиями.

При повторной верификации (reverification) — механизм подмены изображений через Mockttp срабатывает, и Persona успешно принимает 3 заранее подготовленные фотографии.

Однако:

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

❌ "We can’t verify your selfie. Please retake."

Несмотря на то, что используется та же схема захвата и подмены 3-х изображений, что и при успешных попытках.

🧩 Цель работы:

Понять, в чём именно разница между этими двумя потоками верификации Persona (Schedule Dash и Bank Attachment), и почему один проходит успешно, а второй — нет.

📋 Что уже сделано:

Система на Node.js использует Mockttp как MITM-прокси.

Перехватывается запрос multipart/form-data с 3 изображениями, и содержимое подменяется заранее сохранёнными файлами.

EXIF-метаданные сохраняются от оригинальных фотографий.

Поведение воспроизводимо: одна и та же тройка фото проходит на одном этапе (reverification) и не проходит на другом (bank attachment).

🛠 Что нужно сделать:

🔍 1. Анализ HTTP-трафика:

Логировать и сравнить все запросы и ответы от Persona на разных этапах:

POST /api/v1/inquiries

POST /api/v1/inquiry_steps/.../complete

Выявить различия в:

template_id, step_id, inquiry_id

Флаги, связанные с liveness, face_match, reuse_policy

Требуемых параметрах (наличие session_token, device_id и т.д.)

🧪 2. Проверка реакций Persona:

Проверить, есть ли различия в JSON-ответах (например, "reason": "duplicate_face", "liveness_not_detected", "image_reused")

Убедиться, что сессия и шаги верификации соответствуют ожиданиям шаблона Persona

🧰 3. Дополнительные задачи:

При необходимости: отладка логики подмены изображений в Mockttp

Возможность предложить обходные пути (например, модификация изображений, смена метаданных)

📎 Требуемые навыки:

Опыт работы с MITM-прокси (желательно Mockttp или mitmproxy)

Уверенное знание HTTP, multipart/form-data, REST API

Опыт анализа мобильного трафика (желательно iOS/Android apps)

Желательно: понимание принципов лицевой верификации и антиспуфинговых механизмов

Плюсом: знание WithPersona, KYC/AML процедур

📁 Предоставляется:

Доступ к Mockttp-скрипту (Node.js)

Набор заранее сохранённых изображений

Видео/описание поведения Persona в приложении DoorDash

Возможность тестирования на реальном устройстве

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

5 часов назад
Джон
2 дня в сервисе
Был
час назад

Заявки фрилансеров

Назар
 
33 года
3 года в сервисе
Был
23 минуты назад
4 отзыва(-1)
час назад