A8 (шифр)A8 — алгоритм формирования ключа шифрования, который впоследствии используется для обеспечения конфиденциальности передаваемой по радиоканалу информации в стандарте мобильной сотовой связи GSM. A8 является одним из алгоритмов обеспечения секретности разговора в GSM вместе с A5 и A3. Его задача — генерация сеансового ключа Kc для потокового шифрования информации в канале связи между сотовым телефоном (MS — Mobile Station) и базовой станцией (BTS — Basic Transmitter Station) после аутентификации. По причине безопасности формирование Kc происходит в Sim-карте. Обеспечение безопасностиПод «безопасностью» в GSM будем понимать невозможность несанкционированного использования системы и секретность переговоров абонентов. В этой статье рассматриваются некоторые механизмы безопасности:
Механизм аутентификацииДля исключения несанкционированного использования ресурсов системы связи вводятся механизмы аутентификации. У каждого подвижного абонента есть стандартный модуль подлинности абонента (SIM-карта), которая содержит:
Ключ аутентификации пользователя Ki уникален и однозначно связан с IMSI, оператор связи по значению IMSI «умеет» определять Ki и вычисляет ожидаемый результат. От несанкционированного использования SIM защищена вводом индивидуального идентификационного номера (PIN-код — Personal Identification Number), который присваивается пользователю вместе с самой картой. Рассмотрим процедуру проверки подлинности абонента. Сеть генерирует оказию — случайный номер (RAND) и передаёт его на мобильное устройство. В Sim-карте происходит вычисление значения отклика (SRES — Signed Response) и сеансового ключа, используя RAND, Ki и алгоритмы A3, А8. Мобильное устройство вычисляет SRES и посылает его в сеть, которая сверяет его с тем, что вычислила сама. Если оба значения совпадают, то аутентификация пройдена успешно и мобильное устройство получает от сети команду войти в шифрованный режим работы. Из-за секретности все вычисления происходят внутри SIM. Секретная информация (такая как Ki) не поступает вне SIM-карты. Ключ Kc также не передаётся по радиоканалу. Подвижная станция (ПС) и базовая станция (БС) вычисляют их отдельно друг от друга. Реализация алгоритмаФормат входных и выходных данных для алгоритма A8 строго определён консорциумом 3GPP. Но A8 не является стандартизованным, а определяется оператором. Алгоритмы A3 и А8 реализованы как единое вычисление, выходные данные которого (96 бит) трактуются так: 32 бита для образования SRES и 64 бита для образования Kc.[1] Длина значимой части ключа Kc, выданная алгоритмом А8 может быть меньше 64 бит. Тогда значимые биты дополняются нулями до количества 64, указанного в спецификации алгоритма. В настоящее время известны следующие стандартные реализации алгоритма A3/A8:
Хотя существуют альтернативы COMP128, но этот протокол по-прежнему поддерживается в подавляющем большинстве сетей GSM[1]. По данным SDA (Smarcard Developer Assosiation), большинство операторов связи не производит проверку на одновременное включение «одинаковых» абонентов, настолько они уверены в невозможности клонирования Sim-карт. ИсторияCOMP128 — ключевая хеш-функция, генерирующая за один проход SRES и Kc. А3, А5, А8 были разработаны в Великобритании, и изготовители мобильных телефонов, желающие реализовать эту технологию шифрования в своих продуктах, должны соглашаться на неразглашение тайны и получать специальные лицензии от британского правительства. Разногласия между изготовителями мобильных телефонов и британским правительством вокруг экспорта технологии шифрования в GSM были улажены в 1993. Но в 1998 году некоторые документы с описанием были опубликованы в Интернете. Несмотря на неполное описание, было установлено, какие именно криптографические методы используются в GSM. Дэвид Вагнер и Айан Голдберг буквально за день взломали алгоритм COMP128, так как его ключ был слишком коротким. Криптографический алгоритм COMP128 все ещё используется, но в улучшенной форме под названием COMP 128-2. Криптографические алгоритмы A3 и A8 специфицированы для сетевых операторов, хотя некоторые параметры стандартизованы для обеспечения взаимодействия между сетями. Общие утвержденияНа вход алгоритму подается 128-битный (16 байт) RAND, полученный от базовой станции и 128-битный Ki, прошитый в Sim-карте. Выходом является 96-битная (12 байт) последовательность. Спецификация стандарта[2] утверждает, что первые 4 байта являются SRES, который мобильный аппарат отправляет для аутентификации, а байты с 5-го по 12-й — это сессионный ключ Kc. Следует заметить, что биты ключа с 42 по 95, за которыми идут 10 нулей. То есть у 64-битного ключа Kc энтропия не превосходит 54 бита. Это представляет существенное ослабление криптостойкости шифра A5 более чем в 1000 раз. Ослабление криптостойкостиОдной из причин, объясняющих, почему разработчики GSM держали в секрете алгоритмы, возможно, является их сотрудничество со службами контроля.
— сказал директор SDA (Smartcard Developer Association[3]) Марк Брисено, —
. В архитектуре 3GPP (как и в GSM) всем операторам не обязательно использовать одинаковые алгоритмы аутентификации и генерации ключа. Конечно существуют рекомендации и в качестве примера приводится один алгоритм. Однако, как показывает практика, именно он становится повсеместно используемым. В 3GPP таким примером стал MILENAGE. MILENAGE построен на основе шифра Rijndael (победитель конкурса AES на лучший американский криптостандарт, сменивший DES). Что касается А5 — шифрования переговоров и обеспечения целостности сообщений, то он непременно должен быть одинаков у всех операторов, чтобы они могли предоставлять услугу роуминг. Этот алгоритм в 3GPP построен на основе блочного шифра KASUMI. Проблемы безопасности
См. такжеПримечания
СсылкиInformation related to A8 (шифр) |