Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #59, ОКТЯБРЬ 2005 г.

SIM-SIM, откройся

Степан Ильин aka Step

Спецвыпуск: Хакер, номер #059, стр. 059-048-2


Аутентификация в GSM-сетях

Многие считают, что на SIM-карте хранится номер абонента, но это далеко не так. На самом деле SIM-карта выполняет защитную роль, ограждающую GSM-сеть от несанкционированного доступа. Естественно, никакого номера, как и любой другой информации в открытом виде, на SIM-карте не содержится - напротив, все данные тщательно зашифрованы. При этом обмен данными по радиоканалу между мобильником и базовой станицей также осуществляется исключительно в зашифрованном виде (за исключением тех случаев, когда шифрование намеренно отключается оператором связи, как это было во время терактов в Москве). Для того чтобы начать работу в сети, абоненту необходимо аутентифицироваться - для этого и используется SIM-карта. Процесс начинается во время ввода PIN-кода пользователем и продолжается идентификацией в сети, этот механизм сейчас рассмотрим подробнее, разделив его на четыре этапа:

1. В момент, когда абонент инициирует подключение, телефон устанавливает связь с ближайшей базовой станции и передает по зашифрованному каналу специальный IMSI-код (International Mobile Subscriber Identity - международный идентификатор мобильного абонента), хранящийся на SIM-карте.

2. Получив запрос на подключение, базовая станция сверяет полученный IMSI-код по своей базе данных и в случае совпадения отправляет мобильному устройству 128-разрядное случайное число (так называемое RAND), которое в свою очередь передается телефоном на SIM-карту. SIM-карта шифрует это число по алгоритму A3, используя при этом специальный Ki-ключ так же, как и IMSI, хранящийся на SIM-карте. В результате шифрования получается так называемый подписанный ответ (SRES), который сразу же отправляется на базовую станцию.

3. В базе данных оператора имеется информация обо всех парах IMSI – Ki. Поэтому, получив ответ, система идентификации пробивает по IMSI-номеру его Ki-код и производит точно такие же вычисления, которые выполнялись на SIM-карте. Если SRES, полученный от абонента, с точностью совпадает со SRES'ом, сгенерированным системой идентификации, абонент считается аутентифицированным и ему разрешается доступ в сеть. При этом Ki-код, без которого нереальна идентификация, не передается - перехватить его таким образом невозможно!

4. После этого SIM-карта на основе числа RAND, ключа карты Ki и алгоритма A8 генерирует временный ключ Kc, который используется во время шифрования данных при передаче.

Такой подход гарантирует, что звонки в сети могут осуществлять только законные абоненты, которые обладают SIM-картой, выданной оператором. Тем не менее, он не исключает использование краденых или клонированных симок. Для создания копии симки достаточно извлечь из нее уникальные IMSI- и Ki-коды и прописать их в другую карту. IMSI обычно слабо защищен и легко считывается специальными программами. В отличие от IMSI, "вытащить" Ki-код из SIM-карты существенно сложнее, так как для его защиты применяется специальный криптографический алгоритм COMP. Существует несколько версий этого алгоритма: COMP 128 v.1 (его используют большинство операторов сотовой связи), COMP 128 v.2 (уже пару лет его использует "Мегафон"), а также COMP 128 v.3, который не так давно был ратифицирован, но пока не используется на территории России.

Назад на стр. 059-048-1  Содержание  Вперед на стр. 059-048-3