April 7

Принцип действия банковских систем

Тинькофф
⚠️ Данный материал предназначен исключительно для образовательных целей, и демонстрирует не точные данные. Создание или использование взломов или абуз банковских систем наказывается уголовной ответственностью.

Руководство по банковским системам

1.1 Архитектура банковской карты

чип EMV содержит микропроцессор с SE (Secure Element) - изолированная среда для хранения крипто-ключей.

так же он генерирует динамические криптограммы (TC, AAC и т.д) на основе ключа эмитента (ICC), случайного числа от терминала (Unpredictable Number), от суммы транзакции, даты и времени.

поддерживает протоколы SDA, DDA, CDA для защиты от подделки.

технология NFC используется для передачи данных с определенным протоколом (ISO/IEC 14443 Type A/B)


1.2 Терминалы оплаты

Процессинг транзакций:

  1. Считывание данных (магнитная полоса, NFC или чипом)
  2. Проверка криптограммы для чипа (EMV)
  3. Онлайн авторизация через платежную систему (mir, visa, Mastercard)
  4. Оффлайн авторизация разрешена только для малых сумм, с последующей синхронизацией данных.

Защита терминала:

  1. шифрование данных для в передачи в банк (AES-256)

Принцип действия банковских приложений

2.1 Компоненты

Back-End система банка обрабатывает запросы через API защищённое через OAuth 2.0 или TLS сертификатами.

Также Back-End использует HSM (Hardware Security Module) для хранения крипто-ключей

Мобильное банковское приложение может использовать биометрический вход, Secure Enclave, TrustZone для изоляции данных, JWT токены для сессий.

2.2 Защиты

Защита от реверсинга, то есть защита от декомпиляции кода с помощью обусфикаций и SSL-пиннинг

Капчи и анализ поведения потребителя.

Мониторинг аномалий, то есть мониторинг измерений IMEI, IP и MAC-адрес устройства.

Защита от root пользователей, приложение отказывается работать для потребителей с root-тированным устройством.


Устройство банкоматов

3.1 Аппаратная часть устройства

Обычно в банкоматах стоит операционная система на базе linux или windows embedded

Банкоматы обычно используют эти протоколы связи:

  1. ISO 8583 для обмена данными с процессинговым центром.
  2. Triple DES для шифрования PIN-кода.

3.2 Защиты

Физические защиты:

  1. датчики
  2. краски-ловушки
  3. и т.д

Криптография:

  1. PIN-BLOCK - Формируется с использованием ZPK (Zone PIN Key)
  2. HSM для генерации ключей.

Теоретические уязвимости и обходы

4.1 Атака на банковские карты

В теории можно извлечь ICC MASTER KEY например через анализ электромагнитного излучения.

Генерация ARQC для поддельных транзакций.

Можно использовать атаку на NFC, банальный перехват через relay attack.

Проблемы при использовании данных методов:

извлечение ключа и генерация ARQC:

  1. Ключи уникальны для каждого чипа и хранятся в SE (Secure Element).
  2. Нужен физ. доступ к карте.

через NFC:

  1. Токен привязан к устройству.
  2. Проблемы с дистанцией NFC (10 см.)

4.2 Взлом банковских приложений

Можно декомпилировать приложение с отключением проверок SSL и последующим инджектом стороннего кода.

По логике можно атаковать API с подменой параметров (например: суммы перевода).

Возможные проблемы:

Для метода с внедрением кода:

  1. Сертификаты TLS-пиннинга.
  2. Серверная проверка целостности клиента (CRC, хеши).

Для метода с API:

  1. Подписи запросов с использованием HMAC-SHA256.

4.3 Атака на банкоматы

Можно использовать back box attack, подключение устройства к диспенсеру для принудительной выдачи денег.

Так же возможно в теории использовать jackpotting, внедрение стороннего кода через usb порт.

Проблемы при использовании:

black box attack:

  1. Датчики несанкционированного доступа.
  2. Шифрование команд.

jackpotting:

  1. блокировка запуска не подписанного кода.

Спасибо за чтение данной статьи ♥️