Все посты
3 мин чтенияglizzykingdreko

Akamai v3 Sensor Data: подробный разбор шифрования, дешифрования и инструментов обхода

Понять и обойти бот-защиту Akamai бывает по-настоящему мучительно из-за её сложности. Этот подробный разбор даёт ясное понимание процессов шифрования и…

Akamai v3 Sensor Data: подробный разбор шифрования, дешифрования и инструментов обхода

Понять и обойти бот-защиту Akamai бывает по-настоящему мучительно из-за её сложности. Этот подробный разбор даёт ясное понимание процессов шифрования и дешифрования в v3, практические инструменты для старта, а также несколько советов.

Подробный разбор шифрования и дешифрования v3

Процесс шифрования

Шифрование Akamai v3 состоит из хитроумного двухшагового алгоритма:

  1. Перемешивание элементов:
  • Данные JSON-payload сначала преобразуются в строку с разделителем-двоеточием.
  • Элементы внутри этой строки перемешиваются с помощью генератора псевдослучайных чисел (PRNG), инициализированного уникальным хешем файла, извлечённым из JavaScript Akamai.

2. Подстановка символов:

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

Процесс дешифрования

Чтобы обратить это шифрование:

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

Необходимость и содержимого скрипта, и хеша cookie для успешного шифрования и дешифрования значительно повышает сложность обхода Akamai v3.

Хеширование в Akamai v3

Хеширование cookie

Изначально первый запрос sensor_data использует хеш cookie по умолчанию — 8888888. Как только этот первый запрос возвращает валидный cookie bm_sz, последующие payload используют производный от cookie хеш, извлечённый из возвращённого cookie. Такая интеграция гарантирует, что каждый sensor-payload остаётся уникальным для сессии, повышая сложность replay-атак.

Хеширование файла

Akamai использует динамические JavaScript-файлы для генерации sensor data. Каждый файл скрипта включает сложные и динамические конкатенации функций, массивов и операций хеширования для вычисления фактического хеша файла. Этот хеш файла затем используется как seed для фазы перемешивания элементов при шифровании. Подробную логику извлечения можно изучить в реализации на основе AST в моём репозитории npm на GitHub — дайте знать, если пригодился бы отдельный подробный разбор по нему.
Таким образом, чтобы расшифровать sensor_data, потребуется исходный код его скрипта.

Главные изменения с v2 на v3

Значимые обновления и изменения в sensor data Akamai по сравнению с v2:

  • Интеграция cookie: v3 явно использует данные cookie для шифрования, повышая безопасность и уникальность каждого payload.
  • Хеширование, зависящее от скрипта: в отличие от v2, шифрование v3 сильно опирается на хеши JavaScript-файлов в реальном времени, что усложняет попытки статического реверс-инжиниринга.
  • Сложность и безопасность: общая сложность шифрования существенно возросла, обеспечивая более сильную защиту от автоматизированных атак.

Для исторической справки и сравнения загляните в репозиторий v2.

Практическое использование модуля-хелпера Akamai v3

Мой open-source хелпер для Akamai v3 (GitHub) упрощает работу с шифрованием и дешифрованием sensor data:

Установка

npm install akamai-v3-sensor-data-helper

Пример дешифрования

const akamaiHelper = require('akamai-v3-sensor-data-helper');
const fs = require('fs');

const scriptContent = fs.readFileSync('akamai_script.js', 'utf-8');
const encryptedSensorData = '{"sensor_data":"3;0;1;0;3753014;..."}';
const decryptedData = akamaiHelper.decrypt(encryptedSensorData, scriptContent);
if (decryptedData.success) {
    console.log(decryptedData.parsedData);
} else {
    console.error("Decryption failed:", decryptedData.message);
}

Веб-приложение: визуализация Akamai Sensor Data

Я разработал Akamai Tools Web App — интуитивный интерфейс, призванный упростить работу с sensor data:

  • Инструмент дешифрования payload: быстро превращает зашифрованный sensor_data в читаемый JSON.

  • Инструмент шифрования payload: без усилий создаёт валидный sensor_data из структурированных JSON-входных данных.

  • Экстрактор хеша cookie: быстро извлекает хеш из cookie bm_sz для использования в процессах шифрования.

Нужна помощь с антиботами?

Загляните в мою компанию по API обхода антиботов — TakionAPI. Мы предоставляем API для большинства антиботов/капч, а также кастомные решения для веб-скрейпинга под конкретные проекты.

Подписывайтесь и пишите мне

Понравилась статья? Поддержите меня через BuyMeACoffee.

anti-botakamaiabckencryptionsensordata

Пропустите реверс-инжиниринг.

Takion возвращает свежие cookie, заголовки и токены для любой крупной антибот-стены. Один POST, без браузера, первый вызов в течение часа.