ANSI X9.9
ANSI X9.9 — это стандарт Американского национального института стандартов (ANSI), определяющий метод генерации и проверки кода аутентичности сообщения (MAC) для финансовых транзакций. Официальное название — «Financial Institution Message Authentication (Wholesale)». Стандарт был разработан в 1980-х годах для обеспечения целостности и подлинности электронных платежных сообщений, передаваемых между банками и финансовыми учреждениями, и стал основой для многих последующих протоколов безопасности в банковской сфере.
История и контекст создания
Стандарт ANSI X9.9 был впервые опубликован в 1982 году и пересмотрен в 1986 году. Его появление было вызвано ростом объемов электронных межбанковских переводов, особенно в системах, подобных SWIFT (Society for Worldwide Interbank Financial Telecommunication), и необходимостью защиты от подделки сообщений. До внедрения стандартов аутентификации финансовые учреждения полагались на физические подписи и бумажные документы, что было медленно и ненадежно для электронных транзакций.
Разработка велась под эгидой ANSI Комитетом по финансовым услугам (Accredited Standards Committee X9, Financial Services). В основе стандарта лежал алгоритм Data Encryption Standard (DES), который на тот момент был одобрен правительством США для защиты несекретной информации. ANSI X9.9 стал первым широко распространенным стандартом для MAC в финансовой индустрии, заменив устаревшие методы контроля целостности, такие как контрольные суммы (CRC).
Основные принципы работы
Стандарт ANSI X9.9 определяет процедуру, при которой отправитель сообщения вычисляет MAC — короткую строку фиксированной длины (обычно 4 или 8 байт) — на основе самого сообщения и секретного ключа. Получатель, используя тот же ключ, повторно вычисляет MAC и сравнивает его с полученным. Если значения совпадают, сообщение считается подлинным и не измененным в пути.
Алгоритм вычисления MAC (DES-CBC-MAC)
Стандарт предписывает использовать алгоритм DES в режиме сцепления блоков шифра (CBC — Cipher Block Chaining). Процесс выглядит следующим образом:
- Подготовка сообщения: Исходное сообщение разбивается на 64-битные (8-байтные) блоки. Если длина сообщения не кратна 8 байтам, оно дополняется (обычно нулями или пробелами) до нужной длины.
- Инициализация: Используется начальный вектор (IV), который в стандарте ANSI X9.9 часто принимается равным нулю.
- Шифрование: Первый блок сообщения XOR-ится с IV, затем шифруется ключом DES. Результат шифрования становится новым IV для следующего блока. Процесс повторяется для всех блоков.
- Формирование MAC: После обработки последнего блока получается 64-битное значение. Из него берется левая часть (первые 4 байта) или, в некоторых реализациях, все 8 байт. Это значение и является MAC.
Ключевые особенности
- Секретный ключ: Используется один симметричный ключ DES (56 бит эффективной длины, 64 бита с битами четности). Ключ должен быть известен только отправителю и получателю.
- Длина MAC: Стандарт допускает использование MAC длиной 4 байта (32 бита) или 8 байт (64 бита). Более короткий MAC снижает нагрузку на каналы связи, но увеличивает вероятность коллизии (случайного совпадения).
- Односторонность: MAC не является шифрованием сообщения. Он не скрывает содержимое, а только гарантирует его неизменность.
Применение в финансовой сфере
ANSI X9.9 широко использовался для защиты сообщений в системах межбанковских расчетов, таких как автоматизированные клиринговые палаты (ACH), системы денежных переводов и электронные платежные системы. Он применялся в протоколах, поддерживаемых SWIFT, и в ряде национальных платежных систем, включая российскую систему электронных расчетов (СЭР) в 1990-х годах.
Примеры использования
- SWIFT: До внедрения более современных стандартов, таких как ANSI X9.23 и ISO 16609, ANSI X9.9 был основным методом аутентификации сообщений в сети SWIFT.
- Банкоматные сети: Использовался для защиты транзакций между банкоматами и процессинговыми центрами.
- Внутренние банковские системы: Применялся для проверки целостности при передаче данных между серверами внутри одного банка.
Критика и недостатки
С течением времени стандарт ANSI X9.9 подвергся критике из-за ряда уязвимостей и ограничений, связанных с устаревшим алгоритмом DES:
- Короткий ключ DES (56 бит): Ключ DES может быть взломан полным перебором за приемлемое время с использованием современного оборудования (например, FPGA-массивов или специализированных ASIC). Уже в 1998 году проект EFF (Electronic Frontier Foundation) взломал DES за 56 часов.
- Уязвимость к атакам на основе длины: Поскольку MAC не зависит от длины сообщения, злоумышленник мог добавить или удалить блоки данных, если знал структуру сообщения.
- Отсутствие защиты от повторной передачи (replay): Стандарт не предусматривал механизмов для обнаружения повторной отправки ранее перехваченного сообщения. Для этого требовались дополнительные меры, такие как временные метки или порядковые номера.
- Атаки на основе выбранного текста: При определенных условиях, если злоумышленник мог получить доступ к MAC для известных ему сообщений, он мог вычислить ключ или подделать сообщения.
- Неэффективность для длинных сообщений: Алгоритм DES-CBC-MAC был медленным для больших объемов данных.
Наследие и современное состояние
В конце 1990-х и начале 2000-х годов стандарт ANSI X9.9 был признан устаревшим и заменен более современными стандартами. В 1999 году был опубликован ANSI X9.19, который использовал Triple DES (3DES) для повышения стойкости ключа. Позднее, в 2000-х годах, финансовый сектор перешел на стандарты, основанные на Advanced Encryption Standard (AES), такие как ANSI X9.24 (управление ключами) и ISO 16609 (MAC на основе AES).
Несмотря на это, ANSI X9.9 сыграл ключевую роль в развитии финансовой безопасности. Он заложил основы для использования симметричной криптографии в банковских системах и продемонстрировал необходимость стандартизации методов аутентификации. Многие устаревшие системы, особенно в странах с развивающейся экономикой, продолжали использовать ANSI X9.9 вплоть до 2010-х годов, прежде чем перейти на более защищенные протоколы.
Связанные стандарты
- ANSI X9.19: Стандарт, использующий Triple DES (3DES) для MAC, заменивший ANSI X9.9.
- ANSI X9.23: Стандарт для шифрования финансовых сообщений.
- ISO 16609: Международный стандарт, определяющий методы MAC на основе AES и 3DES.
- ISO 9797: Международный стандарт для MAC, включающий различные алгоритмы (M1-M6), часть из которых основана на DES-CBC.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →