![]() |
![]() |
![]() |
![]() |
Главная Чип-карты: устройство и применение 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [ 26 ] 27 ЧИП-КАРТЫ. УСГРОЙСТВО и ПРИМЕНЕНИЕ ОСНОВНЫЕ РАБОТЫ АСИНХРОННЫХ КАРТ Следующий байт (INS) - собственно команда, посылаемая карте; можно сказать, что это код операции (opcode). Коды нижеперечисленных операшш уже стали классическнш! и используются во многих асинхронных картах: BOh Чтение байтов DOh Запись бантов 20h Ввод кода Три перечисленных кода позволяют проводить интересные эксперименты, хотя всегда выгоднее найти полную систему команд для каждого типа карт, с которым предполагается работать. Вот, например, список команд, используемых картами GSM: Ш change CHV 26h disable CHV 28h enable CHV COh get response 32h increase 04h invalidate BOh read binary B2h read record 44h rehabilitate 88h run GSM algorithm A2h seek Mh select FAh sleep F2h status 2Ch unblock CHV D6h update binary CDh update record 20h verify CHV Если система команд неизвестна, можно испытывать коды, заимствованные у другах карт и, если они воспринимаются исследуемой картой, применять их в дальнейшем. Байты А1 и А2, которые следуют за командой INS, составляют так называемое расширение команды. Это может быть физический адрес зоны памяти для чтения или записи, номер кода или ключа ПятьпЧ байт (L) устаггавливает длину следующего после него б.до-ка данных. Они передаются карте, если команда на запись , и принимаются из карты, если команда на чтешю . Значение CCh выделено для команд, которые не требуют операций записи пли чтения: аннулирование, реабилитация, перевод в режим ожидания, ратификация кода и т.п. Как только карта распознает заголовок действительной команды, она отвечает байтом процедуры. Сразу после этого следует блок данных, передаваемых картой по ко.маиде иа чтение*; если же команда па запись , этот бант служит для ycrpojicTBa чтеиия-заппси сигналом готовности карты к приему данных. В последнем случае устройство должно передать ровно столько байтов, сколько указано в байте L. В большинстве случаев бант процедуры идентичен коду операции (INS), но он может быть равен INS+1; это значит, что на карту следует подать напряжение Vpp (по командам записи или ввода кода). Карта квитирует завершение обработки команды двумя байтами SW1 и SW2 (иногда в виде исключения - одним), которые передаются устройству чтения-записи либо в конце блока выдаваемых данных, либо после получения последнего байта из принимаемых данных. Если все завершилось удачно, то ответ будет 90 00. Друше значения байтов SW1 и/или SW2 позволяют уточнить истинное положение дел. Отчет, начинающпйся с 6Eh или 6Dh, указывает на то, что команда не поддерживается картой. 6Eh означает, что бант CLA не соответствует классу карты, а 6Dh - что INS является недопустимым кодом операции. Друпге отчеты, начинающиеся с 6, показывают, что карта воспршшла команду, но она неверно сформулирована: некорректное расширение - 6Bh (например, попытка считывания по адресу, которого не существует), некорректная длина - 67h (при введении слишком длинного или слишком короткого кода). В подобных случаях байт SW2 часто содержит скорректированный код команды, что очень полезно для начинающих исследователей. Значение 6Fh зарезервировано для случаев, которые пока нигде не описаны. Значения отчетов, начинающихся с 9, так же как банты SW2, не определяются стандартом, а зависят от области примеиения. Тем не менее существует ряд неписаных соглашений по некоторым из них: 9010h Ввод неверного кода (1 попытка) 9020h Ввод неверного кода (2 попытка) . 9010h Ввод неверного кода (3 попытка) 9060h Ввод неверного кода (карта блокирована) 9CC1h Ошибка при записи в ЭППЗУ 9202h Ошибка при записи в ЭСППЗУ ЧИП-КАРТЫ. УСТРОЙСТВО и ПРИМЕНЕНИЕ 9B02h Неверный секретный код 9804h Некорректный ввод кода 9806h Код анн}лирован 9810h Не соблюдается условие безопасности 9820h Секретный код неактивен Большое количество операций требует введения того или иного кода, который обеспечивает безопасность карты, поэтому важно знать, что для разных типов карт предусмотрены разные способы представления кодов. Например, применительно к картам BULL СР8 код пользователя из четырех цифр надо преобразовать в одно слово из 4 байт по открытому алгоритму Код 4950, таким образом, должен быть представлен (вместе с расширением OOOOh) в виде 12543FFFh. После первого ввода он обязательно ратифицируется командой ВС 40 00 00 00. При работе с картами COS компании Gemplus коды из 4 байт перед вводом должны быть преобразованы в коды из 8 байт. Эта операция состоит в том, что к каждой половине байта в старшие разряды добавляк^тся 4 6irra, значения которых абсолютно произвольны. Код 45343F45h может быть преобразован в строку вида 04050304030F0405h или, что более удобно, - 54455354434F4445h (TESTCODE в символах ASCII), часто опознаваемый тестовыми чип-картами. ПРАКТИЧЕСКИЕ ПРИМЕРЫ Бессмыслеино познавать все тайны асинхронной карты неизвестного пша, не располагая хотя бы шшимумом информации о иен. Немало ценных сведений предоставляет опыт использования таких карт, как банковская карта или FRANCE TELECOM. В книге автора PC et cartes а puces (Чип-карты и ПК), вышедшей во Франщш, описывается множество интересных опытов, которые можно провести с картами семейства BULL СР8. Легче всего выдать команду ВС ВО 09 ЕО 02 - чтение двух байтов по адресу 09E0h, расположенном в зоне свободного чтения. При использовании банковской карты результат должен быть БО 3F Е5 90 00, а для карты FRANCE TELECOM (прежде называвшейся PASTEL) - ВО 3F Е2 90 00. В ответе четко виден байт процедуры ВО, два байта данньп! 3FE5h или 3FE2h и отчет 9000h.
русский перевод книги готовится к выпуску в издательстве ДМК . ЧИП-КАРТЫ, устройство и ПРИМЕНЕНИЕ Ниже перечислено программное обеспечение, которое может надоботься в процессе чтения книги: *TR 8AS 2 052 07/10/97 CLASSDIR 8AS 1 393 07/10/97 CLASSINV 8AS 1 666 07/10/97 DECATR BAS 1 B50 07/10/97 DMECT BAS eeo 07/10/97 INVERSE BAS 1 173 07/10/97 HANimG BAS 1 304 07/10/97 HANIPEUR BAS 1 301 07/10/97 GPM256 BAS 4 220 07/10/97 HANIFr2G BAS 1 25B OB/10/97 GPN416 BAS 1 240 19/10/96 GPMB9B BAS 1 240 19/10/95 LECTI2C BAS 1 921 07/10/97 PR0GRI2C BAS 1 BB4 07/10/97 CRED50 BAS 6B3 OB/03/95 CBE0120 8AS 884 06/03/95 SERRURE BAS 1 125 19/01/93 CABTOBOH BAS 447 Ol/01/вО ROHTDCAR BAS B17 01/01/80 ROKTOBIN BAS 426 01/01/80 BINTORON BAS 394 01/01/BO DEC416 BAS 1 B24 09/10/97 DECB98 BAS 2 224 09/10/97 ATR EXE 40 691 07/10/97 CUSSDIB EXE 39 136 07/10/97 CUSSINV EXE 39 584 07/10/97 DECATR EXE 42 516 07/10/97 DIRECT EXE 3B 320 07/10/97 INVERSE EXE 36 768 07/10/97 C0UPB4 HEX 6 179 IB/04/97 C0UP64 ASH 2 722 18/04/87 50 HEX 1 198 07/10/97 120 HEX 1 562 07/10/97 C0UPB4 OBJ 420 18/04/97 COUP PC8 3 242 17/04/97 FD2D00 PCB 690 08/10/97 AFNOR PCB 884 07/10/97 1DT021 PCB 634 09/10/97 Bin PCB 1 225 07/10/97 12T021 PCB E77 09/10/97 CARTEISO PCB B41 07/10/97 CLACPUCE PCB 1 341 07/10/97 DEVCARTE PCB 2 366 07/10/97 DIPCABTE PC8 1 137 07/10/97 NANOLECT PCB 1 074 07/10/97 ПРОГРАММЫ и ФАЙЛЫ SERRURE PCB 3 612 07/10/97 SWCARDA PCB 713 07/10/97 SIHLOCK PCB 61B 07/10/97 256 PCB 1 273 OB/10/97 DIPISO PCB 1 1B3 10/02/93 CREDIT PC8 3 006 16/01/93 MATRIX PCB 682 30/01/93 54 файла 312 347 байт О каталогов ЗВБ 096 байт сво&)Дно Здесь представлены все файлы, рассмотренные в книге. Они содержатся на сайте издательства <ДМК http: wwwdmk.ru. пароль DmkCartesaPuce. Программы написаны иа языке GWBASIC, совместимом с большинством ПК; при необходимости его можно заме-нть на BASICA или QBASIC. Некоторые программы из главы 6, которые перед запуском должны быть откомпил рованы представлены в виде файлов с расширением .ЕХЕ (ATR. EX., INVERSE. ЕХЕ, DIRECT. EXt, CLAbSlNV. EXE, CLASSDIR. EXE). Их запуск производится в DOS или в окне MS DOS, вызываемом из Windows 95. Для удобства предлагается использовать уже откомпилированную версию DECWT BAS (DECABT. ЕХЕ). Кроме того, добавлены четыре маленькие утилиты на языке В ASIC, с помощью которых выполняется преобразование форматов фаттлов, упомггнаемых в книге: CARTOROH.BAS.ROMT . , М IN. Sh М.ВА. Программное обеспечение, предназначенное для микроконтроллера Р1С16С84, который используется в устройстве чтения-записи, описанном в главе 6, представлено и в виде исходного текста (C0UP84.ASM), и в объектном коде, полностью совместимом со стандартными программаторами {CDUP84.0BJ и C0UP84.HEX). Этот код подходит и для самой последней версии - PIC16F84. Файлы для прошивки ЭППЗУ для тестера телекарт, описанного в главе 5, предлагаются в двух разных форматах: free format decimal (50. ROM и 120. ROM) и INTEL HEX (50. HEX и 120. HEX). Топологии печатных плат устройств, рассмотренных в книге, приводятся в файлах с расширением . РСВ, которые разработаны при помощи пакета программ Boardmaker. Демонстрациониая версия Boardmaker, позволяющая редактировать и распечатывать эти рисунки на обычном матричном принтере, содержится иа компакт-диске, прилагаемом к книге автора Logiciels PC pour Ielectronique , вышедшей во Франции. |
© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения |