Как устроены SIM-карты. Часть вторая: атака клонов

Новости Спецпроекты

В первой части мы рассказывали про историю SIM-карт, теперь же начнем потихоньку разбираться с их безопасностью. Одной из первых уязвимостей SIM-карт стала возможность их клонирования, то есть чтения всего содержимого памяти одной симки и последующей записи этих данных в память другой карты. Напомним, что с точки зрения «железа» SIM-карта — это обычная смарт-карта, купить которую можно где угодно приблизительно по три рубля за ведро.

Как устроены SIM-карты. Часть вторая: атака клонов

Во времена, когда аппаратов на две, три или четыре SIM-карты еще не существовало, именно с помощью клонирования решали проблему наличия нескольких симок: чтобы не переставлять их в одном телефоне туда-сюда, придумали «мультисимку». MultiSIM — это смарт-карта с увеличенным объемом памяти, в которую можно было записывать данные сразу нескольких SIM-карт.

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

Пользы от такого решения было немного (да и сегодня по-прежнему удобнее купить под вторую SIM-карту отдельный дешевый телефон, чем использовать двухсимочный), однако определенным спросом лет десять назад «мультисимки» пользовались. Продавались даже комплекты из собственно «болванки», адаптера для чтения и записи смарт-карт, подключаемого к компьютеру, и ПО для проведения «операции».

Однако возможность клонирования SIM-карты могла быть использована не только в мирных целях. Получив на короткое время доступ к SIM-карте абонента, злоумышленник мог изготовить ее клон и использовать его для компрометации. Дело в том, что если вставить клон в телефон в то время, когда в сети зарегистрирован легитимный абонент, то тот «вывалится» из сети, даже не зная об этом. Все входящие звонки и сообщения в этом случае будут поступать злоумышленнику, а он, в свою очередь, сможет звонить, писать и выходить в Интернет от имени жертвы.

На телефоне жертвы в течение нескольких часов будут даже отображаться шкала приема и название оператора, создавая видимость нахождения в сети, однако звонить не получится до тех пор, пока жертва не догадается выключить и снова включить аппарат или же пока не произойдет принудительное обновление регистрации (обычно сети настроены на интервал в несколько часов).

Первое время клон вообще можно было зарегистрировать в сети где угодно, хоть на другом континенте. Впоследствии операторы внедрили примитивную защиту: если абонент вдруг внезапно регистрируется в сети очень далеко от того места, где он был недавно, то администраторы в центре управления получают уведомления об изобретении телепортации.

Однако злоумышленник может зарегистрироваться в сети и рядом с легитимным абонентом, и от этого подобная защита никак не поможет. И тут возникает вопрос: почему же вообще возможно клонирование SIM-карт — нельзя ли как-то отменить или запретить эту возможность?

Ключ KI (Key Identification, «индивидуальный ключ аутентификации пользователя»), на основе которого происходит авторизация в сети, на самом деле не предназначен для чтения из SIM-карты: ведь процессор SIM-карты работает с ним «внутри», и наружу передавать ключ не требуется. Он даже хранится в защищенной от чтения области памяти, и каких-либо API для его чтения не существует.

Однако тут на помощь нехорошим парням приходят методы криптоанализа. Если много-много раз при помощи специальной программы запустить на вставленной в считыватель SIM-карте алгоритм A3 (то есть «скармливать» ей случайный пароль RAND и получать на выходе отзыв SRES), то можно выявить определенные закономерности и в конечном итоге вычислить ключ KI.

Производительности компьютеров уже 10 лет назад хватало, чтобы совершить эту операцию за довольно-таки небольшое время — порядка нескольких минут. Правда, все не так однозначно. В SIM-карту встроен «таймер самоуничтожения», то есть счетчик количества запусков алгоритма преобразования с неким предельным значением. Например, 65 536 раз. Как только этот счетчик достигнет предела, процессор SIM-карты вообще перестанет выполнять запросы на вычисление SRES.

Если за лимитированное количество попыток вычислить KI не удастся, SIM-карта вообще превратится в тыкву, и нужно будет получать новую. Порой такое хотя и редко, но происходит и в обычной жизни: если SIM-карта выдана очень давно, использовалась активно, а значение счетчика изначально было задано небольшим.

Впрочем, не все так плохо. Методом криптоанализа можно получить KI и сделать клон только на SIM-картах, где используется самая старая версия алгоритма A3 под названием COMP128v1. Такие еще используются некоторыми операторами, и поэтому их можно клонировать. Более прогрессивные операторы уже перешли на усовершенствованные версии COMP128v2 и COMP128v3, которые гарантированно не позволяют вычислить ключ с помощью анализа такого количества пар RAND-SRES.

Тем не менее беспокоиться все-таки стоит. Дело в том, что злоумышленник может по-прежнему получить набор ключей сразу для большого количества SIM-карт, имея доступ к базе данных оператора, в которой они хранятся, либо получив доступ к таблицам соответствий, которые производитель SIM-карт передает оператору при отгрузке очередной партии. Для этого нужен коррумпированный сотрудник на той или иной стороне.

Кроме того, существует целая городская легенда о перехвате ключей из эфира — мол, современные компьютеры позволяют декодировать их буквально на лету. Однако напомним, что ключ KI не передается в эфир и хранится только в SIM-карте. Что же тогда перехватывают из эфира? Об этом расскажем в следующий раз.