«BASICSIM» - инструментальная SIM-карта

Каждый увлекающийся устройством чип-карт должен быть знаком с BasicCard - удивительным семейством карт, «открытая» операционная система которых программируется на Бейсике .

Прилагаемый к книге компакт-диск содержит различные варианты комплекта для разработки SIM-карт, позволяющие также легко программировать карты, как и при помощи любого считывающего устройства, совместимого с PC/SC (см. главу 5, разработанные мной прикладные программы в версии 3 и совсем новой версии 4).

Таким образом, была придумана BasicSIM, программируемая Ва-sicCard, предназначенная для воспроизведения основных функциональных возможностей SIM-карт (и не только). Например, BasicSIM приспособлена для записи всех команд GSM 11.11, которые она получает, в открытый файл памяти EEPROM (электронно перепрограммируемая постоянная память). Соответствующая утилита (SIMSPY.EXE) возвращает собранные таким образом данные, перед тем как стереть их для освобождения соответствующего места.

Все программное обеспечение, необходимое для создания и использования BasicSIM, находится в каталоге BASICSIM на компакт-диске и может запускаться даже без установки комплекта BasicCard. Отдельные подкаталоги зарезервированы для каждого варианта BasicCard, который можно преобразовывать в BasicSIM. Здесь вы также найдете несколько пакетных файлов для удобства использования различных считывающих устройств.

Например, для преобразования BasicCard ZC 3.3 в BasicSIM следует войти в папку ZC33. Затем следует выполнить файл MAKEPCSC.BAT, если совместимое считывающее устройство PC/SC подключено к ПК, или МАКЕСОМ2, если считывающее устройство CyberMouse из комплекта BasicCard подключено к последовательному порту COM2, и т.д. Теперь остается инициализировать BasicSIM при помощи утилиты BSUTIL.EXE, которой необходимо послать следующую команду ISO. С8 06 00 00 00. Будьте внимательны: отчет о правильном выполнении вернется только через несколько секунд, поэтому не вынимайте карту раньше времени!

Созданная таким образом BasicSIM предоставляет полный доступ ко всем файлам и директориям. Соответственно, различные защитные коды (не только PIN, но и даже ADM!) по желанию можно дезактивировать. При этом также нейтрализуется всякая возможность блокирования файлов, что позволяет осуществлять манипуляции, которые могут быть ограничены только фантазией экспериментатора (по умолчанию BasicSIM уже сконфигурирована как тест-карта Motorola).

Руководствуясь главой 5 данной книги, вы можете без каких-либо колебаний изменять содержимое того или иного файла в зависимости от предназначения BasicSIM, что собственно и составляет суть увлекательного исследования.

Поскольку карты BasicCard ZC 3.3 и ZC 3.9 используют протокол «Т = 1», вопрос об их подключении к мобильному телефону не рассматривается, так как спецификация GSM предусматривает работу по протоколу «Т = О».

Протокол «Т - 0» способна поддерживать только «профессиональная» карта BasicCard ZC 4.1 и, следовательно, она может быть при-лпана мобильным телефоном GSM. Эти карты имеются в продаже (http://www.hitechtools.com) и поддерживаются версией 4 комплекта разработки (см. прилагаемый компакт-диск). Версии, базирующиеся на ZC 3.3 или ZC 3.9, предназначены, главным образом, для использования со считывающими устройствами, работающими с программами управления SIM-картами и признающими карты протокола «Т = 1». В особенности, это касается устройств для считывания чип-карт CyberMouse, ACR 30, ACR 20, ChipDrive и т.п., которые работают с программами SIMSurf Profi, SIMmate 2000 (если не считать некоторых деталей), а также с разработанным мной программным обеспечением для PC/SC, описанным в главе 5.

Другие программы (PhoneFile, EDSIM 2000 и т.п.), наоборот, отвергают карты протокола «Т = 1», начиная сразу с анализа их ответа на сброс (точно так, как это сделала бы настоящая программа GSM), по, естественно, принимают карты версии «Т = 0».

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

При условии предварительного активирования режима «шпион» на карте BasicSIM (посредством BSUTIL.EXE или команды С8 АО 00 01 оо) можно будет даже проанализировать содержание диалога, возникшего между BasicSIM и испытываемым программным обеспечением, для чего достаточно запустить исполняемый файл SIMSPY.EXE (аутентичное приложение Windows в графическом режиме) или R.EXE (в консольном режиме).

Следует отметить, что пустая строка в потоке команд указывает на то, что карта подвергалась операции сброса (reset), например, если она вытаскивалась и вставлялась заново.

Два примера подобных диалогов приведены с целью сравнения, а именно: SIMSURF.LOG был записан с помощью карты BasicSIM «Т - 1» под управлением программного обеспечения SIMSurf Profi от фирмы Towitoko, а SIMMATE.LOG - после испытания программного обеспечения SIMmate 2000 от фирмы ACS. PH2.LOG и STK.LOG были собраны после установки карты BasicSIM «Т - 0» в два телефона GSM:

• RC712 Sagem, совместимый с «Фазой 2»;

• GD90 Panasonic, совместимый с «Фазой 2+» и, значит, с «SIM Toolkit* (STK).

Поскольку.байт «Фаза» (7F20: 6F7B) BasicSIM был заранее установлен на 03h (Фаза 2+), можно проверить, что второй аппарат передает команду «Terminal Profile» (АО ю 00 00 04 OF 03 FF F7), указывая SIM-карте, что он поддерживает практически весь арсенал функциональных возможностей «SIM Toolkit» и «Proactive SIM» (см. главу 5).

Для манипуляций, не требующих записи диалога в BasicSIM, необходимо дезактивировать эту функцию посредством BSUTIL.EXE или следующей командой ISO:

С8 АО 00 00 00

Это позволит избежать переполнения памяти карты и ускорит ее работу.

Независимо от работы программного обеспечения SIMSPY.EXE, полезно знать, что BSUTIL.EXE позволяет в любой момент очистить файл (но без сохранения), в котором были записаны команды (команда С8 А2 00 00 00).

В заключение следует отметить, что BasicSIM никоим образом не предназначена для целей аутентичного «клонирования» SIM-карт, поэтому криптографический алгоритм СОМР128 на ней не размещен. Вместо него используется элементарный алгоритм манипуляции байтами, который тем не менее позволяет проводить многочисленные эксперименты, связанные с функциями секретности и защиты. В принципе, это решение должцо привести к неудаче при любой попытке зарегистрироваться в сети, за исключением, конечно, вызовов срочной помощи путем набора номера 112.