«Шпион» за SIM-картами

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

В большинстве случаев этот двухсторонний поток данных циркулирует со скоростью 9600 бод и проходит через контакт IS07 SIM-карты. Перехваченный электронной схемой, включенной в параллель, он может быть легко декодирован через UART последовательного порта ПК, если хитро «подогнать» параметры.

Для такой схемы можно использовать широко распространенную микросхему МАХ 232, как показано на рис. 4.15. Она осуществляет согласование уровней напряжения между чип-картой и линией последовательного интерфейса RS232. Не очень требовательная к электроэнергии, приведенная схема напрямую питается от мобильного телефона, при этом еще остается энергия для светодиода «высокой яркости», позволяющего визуализировать фазы активирования и дезактивирования карты. Кроме посылаемых и принимаемых картой и телефоном данных, микросхема МАХ 232 снимает также сигнал сброса (reset) карты, используемый программным обеспечением для точной самосинхронизации.

Топология печатной платы выполняется согласно рис. 4.16. Размещение элементов монтажа показано на рис. 4.17, а перечень элементов приведен в табл. 4.4.

Собранная плата этого интерфейсного модуля (см. рис. 4.18) соединяется затем с мобильным телефоном и его SIM-картой. Делается это при помощи четырех проводов, подключаемых к контактам ISOl (Vcc),TS02 (Reset), IS05 (земля) и IS07 (данные). Контакт сигнала тактовой частоты IS03 при этом не используется.

Таблица 4.4. Перечень элементов к рис. 4.17

Наименование | Обозначение Номинал Примечание
Резисторы R1 5,6 кОм (зеленый, синий, красный)
Конденсаторы О, С2, СЗ 2,2 мкФ х 16 В Вертикальное исполнение
С4 2,2 мкФ х 16 В Горизонтальное исполнение
С5 0,22 мкФ х 63 В
Интегральные микросхемы 01 МАХ 232
Диоды HL1 Красный светодиод высокой яркости
Прочее Разъем DB9 - розетка Разъем НЕ10 на 10 контактов или разъемная колодка

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

Затем надо изготовить специальный соединительный кабель. Для этого подойдет отрезок плоского 10-жильного кабеля длиной приблизительно 20 см, на котором закрепляются три ответных разъема НЕЮ, соединенных параллельно контакт в контакт (см. рис. 4.19).

Таким образом, автоматически обеспечивается совместимость не только с соединителем, изображенным на рис. 4.13, но и «фальш-кар-тами» из текстолита 8/10 мм, описанными в моей книге «Cartes a puce initiation et applications* («Чип-карты. Устройство и применение в практических конструкциях»).

Следует отметить, что SIM-карты формата «микро» могут вставляться в промышленно выпускаемые адаптеры, которые придают им полный формат «ISO». Можно также временно снова склеить куски карты при помощи клейкой ленты (или прикрепить к оставшейся настоящей карте).

Остается подсоединить телефон при помощи «фальш-карты», изготовленной из текстолита 8/10 мм, на одной стороне которой вытравлены соответствующие контактные дорожки. Разумеется, точная форма такого адаптера зависит от модели телефона.

«Фальш-карта», приведенная на рис. 4.20, подходит для некоторых моделей марки SAGEM, начиная с RC712.

Вставка «фальш-карты» в телефон требует съема и повторной установки нижней части корпуса, закрепленной только четырьмя винтами I una TORX №6 под миниотвертку. Провода должны быть достаточно тонкими и гибкими, чтобы их можно было пропустить между батареей и крышкой корпуса телефона (см. рис. 4.21). Теперь SIM-кар-га стала для телефона внешним устройством. Для подсоединения проводов (длиной от 10 до 20 см, не более) можно изготовить небольшой адаптер, представляющий собой печатную плату (см. рис. 4.22), которая имеет такую же ответную часть контактного разъема НЕЮ, как и другие части схемы.

Тщательно проверьте выполненные вами соединения. Если все сделано правильно, телефон должен работать как с обычной SIM-картой, гак и с SIM-картой для тестирования (то есть с любой SIM-картой, если она не заблокирована). Теперь можно подсоединить интерфейсный модуль к последовательному порту СОМ1 любого совместимого компьютера.


Обе программы, содержащиеся в каталоге ESPION на компакт-диске, являются приложениями DOS (SIMINV.EXE и SIMDIR.EXE). Это означает, что они могут работать даже на очень старых ПК (начиная с 386 SX 25). Если у вас более современный компьютер, необходимо полностью выйти из Windows, перед тем как запустить одну из программ. Можно также сразу включать компьютер со вставленной дискетой DOS. Действительно, некоторые версии Windows (например, NT или Millennium) препятствуют прямому доступу к портам ввода/вывода, которые как раз и необходимы. Исходный код программ находится в том же каталоге, так что при желании можно внести в него какие-либо изменения. Перед каждым использованием необходима также перекомпиляция файлов .ЕХЕ (см. мою книгу «BASIC pour microcontroleurs et PO).

Одна из программ (SIMINV) предназначена только для SIM-карт, работающих по обратному соглашению (ответ на сброс начинается с 3Fh). Вторая (SIMDIR) - для карт, работающих по прямому соглашению (ответ на сброс начинается с звь). ХЪтя использование несоответствующей программы и не приведет к каким-либо серьезным неполадкам, показания дисплея будут хаотичными до тех пор, пока программа не остановится по коду ошибки.

Отметим, что нажатие на клавишу ESCape позволяет выйти из программы.

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

1. Какие действия выполнять после получения данных: по умолчанию (или при набранной команде «CON») выводить их на дисплей по мере перехвата, на печать (при наборе «PRN») или, что, на мой взгляд, предпочтительнее, записать их в файл «ЮС» (набрав только его имя, без какого-либо расширения).

2. Надо ли вводить поправку, учитывая отклонение частоты тактового генератора от обычного значения 3,58 МГц, которое соответствует стандартной скорости передачи 9600 бит в секунду (следует по возможности проверить частоту при помощи цифрового частотомера, подключенного между контактом IS03 и землей).

Например, для мобильного телефона RC712, в котором установлена карта с тактовой частотой 3,25 МГц, необходимо применить коэффициент подстройки 13 вместо коэффициента 12, используемого по умолчанию. Правда, остается неясным вопрос, для чего применяется такой нештатный режим работы: из целей «конспирации» или же это просто следствие некоторого разгона встроенного процессора.

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

Когда обмен данными осуществляется в высокоскоростном режиме, а используемый ПК не обеспечивает быстрый вывод данных, происходит переполнение (overflow) буфера последовательного порта (код ошибки 69). В таком случае лучше перейти к записи данных в файл .LOG,, что будет рассматриваться позже. Отметим, что этот файл предпочтительнее размещать на виртуальном диске (RAMdrive), время доступа к которому очень мало. Интерпретация записанных таким образом сообщений предполагает хорошее знание прокола Т = О и спецификации GSM 11.11.

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

Затем телефон посылает карте стандартизованные команды. Они обязательно начинаются с заголовка, состоящего из пяти байт. Первый байт (AOh) - это класс ISO, присущий SIM-картам. Следующий байт - операционный код команды, и на этом этапе он часто равен A4h, что соответствует команде SELECT, используемой для выбора директории или файла с карты. Выбранный адрес занимает два байта, которые передаются сразу же после повторения картой операционного кода A4h, подтверждающего прием команды (этот байт называется байтом процедуры).

Очень часто телефон начинает с выбора директории 3F00h (это корневая директория SIM-карты). Если считать (вполне закономерно), что эта директория выбирается по умолчанию после сброса, то телефон, скорее всего, сразу же выберет поддиректорию 7F20h (GSM) или 7F2lh (DCS), ожидая условий для перехода в директорию 7Fi0h (Telecom).

После двух байтов отчета (9FXXh), которыми SIM-карта отвечает на любую действительную команду SELECT, почти всегда следует команда GET RESPONSE (COh), отправленная телефоном. Данная команда требует от SIM-карты передать один или несколько байтов, число которых должно быть равно значению ХХп предыдущего отчета. Интерпретация этого ответа позволяет детализировать характеристики директории или выбранного файла: размер, логическую организацию, а также прилагаемые права доступа.

В некоторых случаях команда STATUS (F2h) применяется с той же самой целью или в качестве подтверждения.

Это, в частности, относится к этапу, когда телефон запрашивает, активирован или нет конфиденциальный код карты (сокращенно PIN, или CHV). Если затребовано представление кода, диалог не будет продолжен до тех пор, пока набранный PIN-код не появится на экране. Тогда при помощи команды VERIFY CHV (операционный код 20h) код, набранный на клавиатуре, будет представлен карте, ко-торая ответит 9000п только в одном случае: если код будет признан правильным.

Появление на дисплее команды, начинающейся с АО 10 (Terminal Profile), означает, что SIM-карта совместима с «Фазой 2+» и мобильный Телефон поддерживает функции «SIM Toolkit* (STK), перечень которых уточняется в поле «данные» этой команды. Вот, например, результаты, полученные при включении нашей «шпионской» схемы между телефоном RC712 и картой предоплаты (просроченной), PIN-код которой активирован:

38 82 00 55 19 АО А4 00 00 02 А4 7F 20 9F 17

АО А4 00 00 02 А4 7F 20 9F 17

АО А4 00 00 02 А4 7F 20 9F 17

АО СО 00 00 0Е

СО 00 00 00 24 7F 20 02 00 00 44.44 01 09 13 90 00 АО F2 00 00 14

F2 00 00 00 24 7F 20 02 00 00 44 44 01 09 13 00 14 04 00 83 8А 90 00

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