Аутентификация и шифрование

Как видно из вышеизложенного, идентификационный номер IMSI нельзя считать полностью защищенным от всякого рода «пиратских» действий. Поэтому система безопасности GSM основывается на криптографической аутентификации SIM-карт их дистрибьюторами при помощи секретного алгоритма, называемого АЗ/А8, или А38.

Одновременно с номером IMSI оператор записывает на SIM-карте секретный ключ (Ki), который также будет храниться в центре аутентификации AuC (Authentification Centre).

Например, для карты GemXplore этот ключ, состоящий из 19 байт, записывается в файлы 7F20:0001 (КеуОр) или 7F20:0011 (KeyMan), где никто, как предполагается, не сможет его считать. Он может использоваться только в самых секретных глубинах карты во время выполнения команды Run GSM algorithm (операционный код 88h).

На практике, когда сети необходимо провести аутентификацию SIM-карты мобильного телефона, она генерирует случайное число (RND) из 16 байт (иными словами, 128 бит, откуда и пошло название СОМР128 повсеместно используемого алгоритма АЗ/А8). Центр аутентификации выполняет алгоритм по этому числу RNDc ключом, соответствующим идентификационному номеру IMSI SIM-карты, одновременно передавая RND на мобильный телефон.

SIM-карта последнего, со своей стороны, выполняет тот же алгоритм с теми же операндами, что дает следующие результаты:

• подпись (SRES) из 4 байт, которая передается в центр аутентификации с целью сравнения с подписью, рассчитанной в нем самом;

• временный ключ шифрования (Кс) из 8 байт, предназначенный для файла 7F20: 6F20 SIM-карты.

Если подписи, вычисленные с одной и другой стороны, идентичны, то сеть признает SIM-карту аутентичной и использует ключ Кс для шифрования поступающей информации при помощи более простого и, следовательно, более быстрого алгоритма. Этот алгоритм, называемый А5, по-видимому, обладает некоторыми недостатками, облегчающими прослушивание разговоров (легальное и нелегальное).

Когда речь заходит о роуминге, то центр аутентификации предоставляет иностранным сетям число RND вместе с соответствующими SRES и Кс, при этом никогда не раскрывая секретного ключа KL.

Ниже приводится пример использования этого механизма для конкретного образца карты GemXplore, предоставленного компанией Gemplus и снабженного демонстрационным секретным ключом Ki. Случайная величина RND представляет собой эквивалент в шестнадцатеричном формате текста ASCII из 16 знаков слова AUTHENTICATION.

Перед выполнением каждого алгоритма необходимо выбрать директорию GSM (7F20):

АО А4 00 00 02 7F 20

Карта отвечает, например, 9F 16. Для того чтобы запустить алгоритм GSM, надо набрать:

АО 88 00 00 10 41 55 54 48 45 4Е 54 49 46 49 43 41 54 49 4F 4Е

В ответ карта отправляет, например, 9F ОС. Такой отчет говорит о том, что результат содержится в 12 байтах (OCh). Чтобы с ним ознакомиться, следует применить команду Get Response (операционный код C0h) следующим образом:

АО СО 00 00 ОС

12 байт, инвертированных картой (абстрагируясь от отчета 90 00, свидетельствующего об успехе операции) состоят из подписи SRES (четыре первых байта) и ключа Кс (восемь последних байт). В рассматриваемом примере SRES имеет значение Е4 F0 F1 Е0. Ключ Кс конфиденциален, поэтому здесь не раскрывается.

Теперь становится понятно, что такой линейный процесс аутентификации, который сеть может периодически осуществлять по мере необходимости, потенциально надежнее, чем системы off-line, используемые, в частности, в области электронных расчетов.

И действительно, права владельцев SIM-карт записаны не на самих SIM-картах, а в базах данных у операторов, где их можно проверить и обновить в режиме реального времени.