Для создания копии симки достаточно извлечь из нее уникальные IMSI- и Ki-коды и прописать их в другую карту. IMSI обычно слабо защищен и легко считывается специальными программами. В отличие от IMSI, "вытащить" Ki-код из SIM-карты существенно сложнее, так как для его защиты применяется специальный криптографический алгоритм COMP. Существует несколько версий этого алгоритма: COMP 128 v.1 (его используют большинство операторов сотовой связи), COMP 128 v.2 (уже несколько лет его использует "Мегафон", а также COMP 128 v.3, который не так давно был ратифицирован, но пока не используется на территории России.
COMP 128 v.1 довольно долгое время считался защищенным, но, как это обычно бывает, его все-таки взломали. Это удалось инженерам из Калифорнийского университета: в 1998 году они считали Ki-ключ из SIM-карты. Это стало возможным за счет анализа большого количества триплетов Rand - SRES - Kc. После 5-25 тысяч попыток обращений к SIM-карте можно с большой достоверностью вычислить Ki-ключ, что сейчас успешно выполняется на практике. Что касается второй и третьей версий COMP 128, то с ними такой фокус не пройдет. Ошибки первой версии были устранены, алгоритмы были значительно усовершенствованы и практически исключают подбор Ki-кода. Впрочем, это не повод для отчаяния: большинство применяемых сегодня симок (за исключением "Мегафона" и некоторых региональных ОпСоСов) по-прежнему используют COMP 128 v.1, так что их симки могут быть клонированы. Правда, здесь стоит упомянуть еще об одной защите, которая интегрирована в любую SIM-карту.
Для того чтобы ограничить возможности пользователя, многократно пытающегося авторизоваться, операторы задают для SIM-карт предел количества неудачных попыток. После каждой попытки счетчик авторизации (команда RUN GSM ALGORITHM) увеличивается на единицу и, как только он достигает значения верхней грани, SIM-карта блокируется и становится полностью неработоспособной. Понятно, что значение этого предела можно подобрать таким образом, чтобы оно было недостаточным для возможности перебора, но при этом вполне успешно обеспечивать работоспособность SIM-карты на протяжении всего срока эксплуатации. В самом деле, не все так печально: значение предела обычно довольно высоко, и его вполне хватает, чтобы единожды извлечь из него Ki-код. Удастся ли сделать это второй раз - спорный вопрос. По этой же причине никогда не стоит браться за взлом уже клонированной SIM-карты, который, скорее всего, приведет к ее блокировке.
Пытка SIM-карты.
Итак, задача ясна: нужно вытащить из симки IMSI- и Ki-коды, записать их на специально заготовленную "чистую" SIM-карту, дополненную специальным софтом для переключения между номерами, а также функцией задания их параметров. К счастью, все это давно уже сделали за нас. Народные умельцы сварганили так называемые SIM-эмуляторы - специальные программы, которые прошиваются в SIM-карту, хранят значение IMSI- и Ki-кодов и предоставляют функцию удобного переключения между ними. С их помощью можно хранить на одной карте несколько других симок, номера центров SMS-сообщения, задавать для каждого номера PIN- и PUK-коды. Что касается переключением между ними, то оно осуществляется через удобное меню (SIM Menu) или же во время включения телефона.
Теперь нужно определиться с тем, каким образом можно считать идентификационные коды с SIM-карты. Понятно, что с помощью обычного телефона, каким бы навороченным он ни был, этого сделать нельзя. Понадобится, как минимум, специальный считыватель, предназначенный для сканирования SIM-карт. Это довольно примитивный девайс, который подключается к COM-, реже, к USB-портам компьютера и имеет огромное количество реализаций. При желании все необходимые схемы можно найти на сайтах и форумах радиотематики. Но, как мне кажется, шутить с SIM-картами не стоит, поэтому рекомендую покупать все-таки готовые изделия, тем более что они стоят всего 500-600 рублей. Слово "считыватель" неслучайно: девайс умеет только считывать данные и не записывает их. В этом случае чистую SIM-карту нужно покупать с уже прошитой программой эмуляции, а данные об IMSI- и Ki-кодах заносить уже через телефон.
Пустая симка - это та же самая SIM-карта в нашем привычном понимании, но с возможностью перезаписи.
Если есть желание производить запись эмуляторы на смарт-карты самостоятельно, то придется раскошеливаться на специальный программатор. Большинство из них является одновременно и считывателями, поэтому покупать два различных девайса, по сути, незачем. Цены на программаторы несколько выше: достойный вариант можно найти за 1100-1200 рублей.
Ближе к делу!
Думаю, в теории теперь все более чем понятно. Предлагаю перейти к практике. Первый этап, считывание IMSI- и Ki-кодов, можно выполнить с помощью программы Sim Scan или же Woron Scan. По опыту могу сказать, что последняя работает несколько быстрее, поэтому лучше будет использовать именно ее. Так или иначе, обе представляют собой вполне обычные программы, так что проблем возникнуть не должно. Просто вставь считыватель/программатор (я использую USI v2.0) в свободный порт компьютера и запусти Woron Scan. После запуска необходимо провести кое-какую настройку, для которой в меню Card Reader выбери тип устройства для считывания Phoenix Card и переходи в меню Card Reader–> Setting. После этого должно появиться окошко с настройками, в котором пользователю предлагается обозначить номер COM-порта (COM Port Selection), а также частоту кварцевого генератора (Speed/Frequency). Любой программатор и любая симка совершенно точно будет читать на частоте 3,57 МГц, однако это самая маленькая скорость. Мы использовали программатор USI v2.0, который способен опрашивать SIM'ку на частоте 3,57, 7,14 и даже 14,28 МГц. Тем не менее, это не значит, что с его помощью любая SIM'ка может считать на высокой частоте. Нет! Например, в Москве SIM-карты "Билайна" сканируются исключительно на частоте 3,57 МГц, а симки "МТС" (кроме "Джинса" на 7,14 МГц.
Теперь, когда все готово, можно приступать к сканированию. Для этого в панели инструментов программы кликни по кнопке Ki и в появившемся окне, не изменяя опции и настройки, нажимай кнопку Start. В случае если выбранная частота и COM-порт были указаны верно, программа предложит ввести PIN-код, установленный на SIM'ке (если он, конечно, не отключен). После успешного ввода начнется процесс сканирования SIM-карты и поиск Ki-кода. Время окончания процесса сильно зависит от случая: бывает, конечно, ключ находится буквально за 10-15 минут, но чаще всего приходится ждать час или даже два-три. Как только процесс будет завершен, IMSI- и Ki-коды будут отображены в окне сканирования и главном окне программы. Главное - не забыть сохранить эти коды в отдельный файл. Если программе не удалось найти Ki-ключ (это если ты решишь поэкспериментировать и подсунуть ей "неклонируемую" симку "Мегафона", то Woron Scan автоматически прекратит сканирование на 60 000-м обращении к SIM-карте. Только так можно гарантировать, что SIM-карта не будет заблокирована, ибо в противном случае ее останется разве что выбросить или повестить на брелок от ключей. Каждый оператор выставляет свой верхний предел по количеству обращения. Например, умельцы утверждают, что карты "Мегафона" блокируются после 90 000 обращений, так и не выдав свой Ki-код.
Программатор в дело! (это верно для Silver, Green и Gold карт с прошивками sim-emu)
Как я уже говорил, можно приобрести либо уже прошитую чистую SIM-карту, либо непрошитую. В последнем случае ее придется прошивать самостоятельно - разберем этот процесс подробнее. Для каждого программатора существуют свои инструкции, свои режимы и свое программное обеспечение, однако в общих чертах все схоже. Я использую USI v2.0, поэтому буду описывать соответствующий процесс прошивки. При этом важном заметить, что в качестве "болванки" я использовал Silver Card - для других заготовок некоторые параметры могут отличаться.
Первое, что нужно сделать, - перевести программатор в нужное положение. Для этого на программаторе необходимо активировать режим JDM: SIM CLOCK - в положение PROGRAM PIC, SIM RESET - в положение PROGRAM PIC, SIM DATA - в положение PROGRAM PIC.
Далее пускаем в бой программу-прошивальщик. В принципе, можно использовать совершенно разные программы, однако производитель девайса рекомендует JGPROG (www.vgj.pl/index.php?pokaz=pap2&m=1). Указываем программе параметры Silver карты (Pic Card 2 - 16F876 + 24Cxx) и переходим к настройкам самого прошивальщика (меню Setup). Здесь всего два важных параметров: порт, к которому подключен программатор, и тип операционной системы. Помимо этого, нужно отключить опции WDT, PWRT, BODEN, LVP, CPD, WRT и поставить галку напротив 24С64. После этого программа будет полностью готова к работе.
Работа с картой начинается с программирования внешнего EEPROM, которое выполняется в два этапа. Первым делом записывается специальный загрузчик, а затем, уже с его помощью, загружается EEPROM. Загрузчик входит в состав JGPROG по умолчанию, поэтому достаточно открыть файл loader_PIC16F876.hex через меню (Load File-> Load Flash-> loader_PIC16F876.hex) и нажать на кнопку Write Flash/Eep_int/Cfg_bit. Программа выдаст сообщение, что загрузчик был загружен в карту, и будет ожидать следующих инструкций. Для следующего действия программатор необходимо перевести в режим Phoenix: SIM CLOCK - в положение 3.579 MHz, SIM RESET - в положение HIGH RESET. SIM DATA - в положение SIM READER.
Теперь можно загружать непосредственно EEPROM: открой Load File-> Load Eeprom ext и выбирай SIM_EMU_EP_6.00s_RUS.hex из комплекта прошивки SIM EMU 6.00. Внимательно проверь все и дави на кнопку Write Eeeprom ext, через некоторое время загрузка будет завершена. Все! Теперь остается залить прошивку, и карточка будет полностью готова к работе. Прошивание выполняется в режиме JDM (параметры смотри выше) и аналогично загрузке EEPROM'а. Для этого нужно открыть файл SIM_EMU_FL_6.00s_RUS.hex из прошивки SIM EMU 6.00 (Load File-> Load Flash-> SIM_EMU_FL_6.00s_RUS.hex), затем кликнуть все по той же кнопке Write Flash/Eep_int/Cfg_bit. Даже если на карте уже была какая-то прошивка, JGPROG загрузит прошивку заново. Для того чтобы проверить правильность выполнения всех этих действий, существует специальная функция - нажми на кнопку Verify и смотри результат.
Атака клонов! (это верно для карт с прошивкой sim-emu)
После того как Sim Emu будет записана на карту, можно будет приступать непосредственно к ее настройке. Никакого дополнительного софта не требуется (хотя это и не возбраняется), все отлично выполняется на обычном сотовом телефоне с помощью появившегося Sim Menu. Просто вставь полученную SIM-карту в телефон и включи его. Если телефон потребует PIN (а он должен!), то введи 1111 - прошивка устанавливает этот код по умолчанию. Далее в меню телефона ищи новый пункт SIM Emu, выбери его и переходи к настройке: Configure-> Config.Pos. На этом этапе необходимо ввести PIN2 (по умолчанию 1234) и указать параметры непосредственно клонируемой симки. А именно, позиция, на которую будет записан номер (от 0 до 9 - понятно, что она выбирается произвольно), IMSI- и Ki-коды, а также PUK- и PIN-коды, которые нужно придумать от балды и запомнить. Собственно, все. Остальные SIM-карты клонируются и заносятся в базу данных аналогично.
Переключение между номерами на большинстве телефонов осуществляется через меню. Но, к сожалению, есть модели телефонов, которые не поддерживают эту функцию. Если нарвался на такую неприятность, для каждого номера нужно прописать отдельный PIN-код (например, для первого - 1111, для второго – 2222 и т.д.). Теперь, для того чтобы переключиться между номерами, достаточно выключить-включить телефон и ввести нужный PIN-код нужной симки. SIM Emu самостоятельно определит, какие параметры соединения нужно использовать.
А почему бы нет?
По-моему, довольно глупо не использовать возможность создать универсальную симку для каждого оператора сотовой связи. Затраты можно свести к минимуму, скинувшись на считыватель/программатор с друзьями. Пустые SIM-карты можно также прикупить оптом. И самое главное - все затраты в любом случае окупятся, когда все твои знакомые начнут взахлеб задавать вопрос: "А как ты это сделал?! А можешь и мне?"
Будь осторожен!
Покупая "чистую" карту, проверь ее на физическое повреждение контактной площадки: если таковые имеются, немедленно обращайся к продавцу и трбан
й замены. SIM-карты очень чувствительны к любым повреждениям. По этой же причине будь крайней осторожен, когда будешь выламывать карту из "коробочки". Лучше сделать это с помощью канцелярского ножика или другого режущего предмета.
Важно!
Бытует мнение, что PIN- и PUK-коды можно легко восстановить в сервис-центре. Помни: это не так! Если ты случайно забыл PIN-код, то тебе поможет только твой оператор сотовой связи. Никакой профи даже с самым навороченным программатором и другими чудо-девайсами не сможет восстановить его. Это практически невозможно!
Необходимое оборудование продается в специализированных салонах связи и радиорынках. Все те, у кого нет возможности попасть в подобные места, могут заказать "болванки", считыватели и программаторы в интернете.
===========================
оригинал статьи -
_http://omut.ru/news/a-1159.html
____________________
Как это работает
Для эмуляции SIMки нужно сначала достать из нее регистрационные данные - это так называемые международный идентификатор абонента - IMSI (International Mobile Subscriber Identity) и индивидуальный ключ аутентификации абонента KI (Key Individual). Если эти самые KI и IMSI известны и у вас есть Multi-SIM карта, прошитая SIM-EMU версии 6 или 5, (Рекомендую покупать уже прошитую и обрезанную карту - сэкономите на программаторе и нервных клетках, которые не восстанавливаются), то вставляйте Multi-SIMку в сотовый и, следуя пунктам меню симки, вводите KI, IMSI для каждой симки, которую хотите эмулировать и какие хотите PIN, PUK коды, а также номера SMS центров. Все, карта готова. Основную трудность представляет нахождение этих самых KI&IMSI.
Немного теории
Ключ KI хранится на СИМ-карте в закрытой области памяти, т.е. внешнего доступа к нему нет. Остальные данные, типа телефонной книги, sms-ок и прочего хранится в защищенной области памяти, которая может быть защищена только PIN кодом. Шифрованием занимается алгоритм A3-A8, который реализован на аппаратном уровне в СИМ-карте. Примерно так все происходит: базовая станция (БС) посылает случайное число (возможно 32-х разрядное), соответственно телефон получает его, передает в SIM-ку, она шифрует по алгоритму A3-A8 с использованием KI, и далее результат передается обратно на БС, таким образом KI никогда не передается в эфир в открытом виде (из этого по идее следует, что его невозможно вычислить через эфир), далее базовая станция делает то же самое, и в конце этого события сравнивает свой результат с присланным, и если он сходится, то можно звонить - доступ к коммутатору разрешен.
Добываем KI&IMSI
Однако, разработчики этого алгоритма (алгоритм шифрования COMP128-1) допустили серьезную ошибку, благодаря которой можно вычислить KI и IMSI. Для того, чтобы считать эти данные необходимо специальное устройство, называемое GSM SIM Card Reader (считыватель, программатор), которое нужно либо самому собрать, либо купить.
Получение ключа из SIM
Знание секретного ключа Ki является ключевым в шифровании сообщений стандарта GSM, таким образом получение этого ключа дает криптоаналитику возможность безпрепятственного получения открытого текста. Получить ключ с сервера является достаточно сложной задачей, однако есть и другая возможность – получение этого же ключа, но зашитого в Sim-карте. Исследовательской группой ISAAC была обнаружена ошибка в алгоритме COMP128 которая позволяла при физическом контакте с картой проводить атаку. Также утверждалось что подобная атака возможна и в эфире. С помощью PC и SmartCardReader было произведено около 150000 запросов к SIM на которые ушло около 8 часов. (6.25 запросов SIM в секунду). Карта генерировала SRES и сеансовый ключ, из этих данных путем дифференциального криптоанализа был вычислен секретный ключ. Т.О. клонирование сим-карт производителем с целью передачи их 3-им лицам, практически оставляет законных абонентов безоружными.
_______________________
Получение ключа из SIM карты в эфире
Провести эту атаку групее ISAAC не удалось, т.к. необходимое оборудование является незаконным в США. Заключается она в следующем: Когда сигнал BTS злоумышленника превышает сигнал базовой станции абонента, криптоаналитик может бомбардировать MS запросами нужного формата и получать соответствующий отклик. Возможно провести атаку в местах слабого сигнала базовой станции или местах его отстутствия, например в метро. Предположительное время атаки: 8-13 часов. Возможно разбить атаку на интервалы по неск. минут, что упрощает проблему физической реализации данного метода.
Получение ключа из AuC
Основана на ислледовании информации которая поступает от базового оператора к оператору осуществляющим роуминг в другой точке планеты в случае,конечно, если абонент использует роуминг в данный момент.
Взлом алгоритма A8
Заключается в поиске RAND, который производит заданный ключ Ki. Это представляется сделать возможным, т.к. RAND и SRES передаются по эфиру открытым текстом.
|