Главная страница Комод Кухня Компьютерный стол Плетеная мебель Японский стиль Литература
Главная  Чип-карты: устройство и применение 

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

ЧИП-КАРТЫ УСГРОЙСТВО И ПРИМЕНЕНИЕ

530 B$=M1D$(D$,F,1) 540 B=ASC(B$)

550 IF(B AND 128)= 128 THEM PfllHT 1,-1 ; ELSE РАШЛ.О 560 1F(B AND 64)= 64 THEM PflIMT 1,-1 ; ELSE РПГ)Т 1.-0 570 1F(6 AND 32)= 32 THEN PflIMT 1,-1 ; ELSE PfllHTel/O -, 580 IF(B AND 16)= 16 THEN PflIMT 1.-1 ; ELSE РЯМТЛ.-О ; 590 1F(B AND 8)= 8 THEM РгаМТВ1, 1 : ELSE PfllMT 1.-0 600 1F(B AND 4)= 4 THEN PflINT 1,-1 -; ELSE PfllNTB1,-0 -: 610 IF(B ANO 2)= 2 THEN РПНТ 1.-1 ; ELSE PfimTel.O 820 IF(B AND 1)= 1 THEM PflIMT 1, 1 ELSE PfllMTBI. 0 630 K=Kt1

640 IF K>3 THEN PRmel. l K=C 650 NEXT F

660 PRINT -.РЯМТ ;EMD

670 REM (c)1997 Patrick GUEULLE

Программа ATR. BAS была написана для того, чтобы обрабатывать посылку ATR любой асинхронной карты, помещенной в устройство чтения-записи, определять ее стандарт (тип) и создавать файл (ATR.CAR), полностью повторяющий в кодах А5СП содержание ответа на сброс. Так же, как и все остальные программы управления блоком чтения-записи, описанным в этой книге, она снабжена защитой, исключающей всякий риск несвоевременной подачи напряжения на карту, и организована следующим образом:

до тех пор, пока программа не запущена, устройство не может подать напряжение на карту, даже если ее неоднократно помещали в картоприемник;

вставлять карту в картоприемник следует только после того, как программа запущена. Если во время запуска программы карта уже была в устройстве, необходимо вынуть ее и вставить вновь;

сразу после завершения работы (или прерывания ее пользователем) Программа полиостью отключает питание, в том числе снимает его с карты;

есл!т карта выдергивается из картопрнемника до завершения цикла, устройство тем не менее обеспечивает нормальнъп ! порядок выключения питания.

Важно отметить, что все программы, работающие с устройством чтения-записи напрямую, должны обязательно компилироваться в фаг1л с расширением .ЕХЕ перед их запуском (который выполняется непосредственно из командной строки DDS). Действтельно, используемый режим работы последовательного порта (8 бит данных

ОСНОВНЫЕ РАБОТЫ АСИНХРОННЫХ КАРТ

плюс бнт контроля четности) не поддерживается интерпретатором GWBASIC. При попытке иепосредственного запуска исходной программы интерпретатор BASIC сразу же прервет работу и выведет сообщение об ошибке.

Соответствующая директория на сайте www.dmk.ru содержит откомпилированные версии программ, начиная с ATR. ЕХЕ. В случае, если вы захотите внести в них изменения (например, чтобы сменить последовательный порт, если СОМ1: занят), следует использовать компилятор, подобный TURBO-BASIC.

В рассматриваемом случае после того, как карта закончила передачу ответа на сброс, программа выводит иа экран применяемый Протокол (тип) и весь ATR в шестнадцатеричном формате. Например, при работе с французской банковской карточкой, выпущенной несколько лет назад, можно получить результат вида: 3F 65 25 ОВ 31 04 6С 90 00

Карточка сотового телефона GSM с прямым форматом передачи может выдать примерно такой ответ:

ЗВ 7В 11 00 00 29 С1 01 05 00 1Е 55 00 Ю 90 00

Карта DOSCARD компании Gemplus, принадлежащая к семейству COS и запрограммированная так, что ее можно использовать в качестве обычной дискеты, могла бы ответить*>:

3F 6С 00 00 24 АО 13 00 FF DO СА 01 00 ОС SO 00

В табл. 6.2 приведено несколько элементов, позволяющих частично расшифровать ATR, но д.та более подробного изучения этого вопроса необходимо обратиться к стандарту ISO 7816-3. Символ ТО, который следует за TS, является признаком формата и выполняет двойную роль:

уточняет, какие из символов ТА1, TBI, TCI, и TD1 последуют за ним. Эти символы, называемые интерфейсными, описывают некоторые основные характеристики карты;

уточняет количество истортеских символов, расположенных в конце сообщения. Значения этих символов не стандартизованы, поэтому у карт разных изготовителей они могут отличаться. Как правило, в них содержится информация о номере или дате выпуска карты, а также некоторые данные об ее ис-пользовашш.

Часто (хотя не всегда) два последних исторических символа имеют значение 90 00; эта пара байтов свидетельствует о том, что все



ЧИП-КАРТЫ УСТРОЙСТВО и ПРИМЕНЕНИЕ

Тобтща 6.7. Расшифровка некоторых элементов ответа на сброс

ОСНОВНЫЕ РАБОТЫ АСИНХРОННЫХ КАРТ

W 1 TBI 1 ТС1 1 TD1 1 ТА2 1 ТВ2 1 ТС2 1 TD2 1 1М...

Т1...ТХ

тек

в

TS = 3ni

TS = 36h

IS01177-прямой формат IS01177-обратный формат

8 К 2 1

Количество

символов

ё

Р

ё

в истории

т

т

т

т

(0-161

2 1

16 е к 2 1

Максимальный ток по линии Vpp

Tpa6yeMoeVpp (5-25 В) 0-* Vpp равно Vcc

0: 25 мА 1: 50мА 2: 100 мА 3: гООмА

Vpp = 0,1xTB2

В58 И г 1

ТС1: Доподотельнаязащиттия задержка

Тип протокола

Г=0 т-1

Т=2 Т=3 Т = 1 Г=Н

Т=16 Резерв Т = 5-13 набудущес

Асинхронная полудуплексная связь Асинхр. п/дуплексная связь блоками

Резера для дуплексной связи

Рвзере для улучшенной полудуплексной связи

Протокол, не нор№шизованный ISO

Рвзере Прим.:еслиТ=0,

то тек не передается

в порядке. Символы TD информируют о типе протокола, на котором должен вестись диалог, ТСК является контрольным символом, не всегда присутствующим в сообщении. Он определяется так, чтобы результат операции Исключающее ИЛИ над всеми символами от ТО до ТСК был равен нулю.

В качестве примера в табл. 6.3 приведены результаты частичной расшифровки ответа двух распространенных карт: DOSCARD и простой банковской карточки, недействительной уже в течение нескольюге лет.

РАСШИФРОВКА ОТВЕТА НА СБРОС

Автоматическая расшифровка полезной информации из ATR может быть выполнена с помошью второй программы - DECART. BAS, использующей данные, которые сохранены в файле ATR. CAR, сгенерированном первой программой (текст ASCII, соответствующий ATR

Таблица 6.3. Расшифровка ответов на сброс

Пример I: карга COS

24 АО 13 00 FF DO СА 01 00 ОС 90 00

История - 12 символов

Старт

1100

оно

0 Защитная задержка

В долях Vcc - внутреннее

Передается история нз 12 символов Передаются байты ТВ1ЯС1

эвый символ - определяет формат

Пример 2: банковская карта

Старт

0101

оно

10101 Vpp = 21 В

01 Максимальный ток 50 мА

Передается история из 5 символов Передаются байты TBI/ТС 1

звый символ - определяет формат

в двоичной форме). Значение TBI определяет величину внешнего напряжения Vpp, которое должно быть подано на карту для осуществления операции записи в память, а также задает тип протокола (Т), который следует использовать для продолжения диалога.

10 ВЕН - DECATB.6AS -20 КЕГ OFF :CLS

30 РВИГРасшифровка ответа на сброс (АТВ.САВ)

40 ОРЕМ ATR.CAfl FOB INPUT AS 1

50 DIH B(LCF(1)/2)

60 F=1PflIHT :РПНТ

70 WHILE HOT EOF(l)

BO INPUTBl.H :B(F)=H

90 F=Ft1

100 WENO



ЧИП-КАРТЫ. УаРОЙСТВО и ПРИМЕНЕНИЕ

ОСНОВНЫЕ РАБОТЫ АСИНХРОННЫХ КАРТ

110 v=o

120 FDR F=1 ТО 8

130 IF B(F)=1 THEN V=V+r(8-F)

140 NEXT F

150 IF V=SH3F THEN PfimКарта с обратным форматом связи (3Fh) .GOTO 180 160 IF V=SH3B THEM PRIMT-Карта с прямым форматом связи (3Bh)- :G0TD 180 170 PRlNTteto не соответствуот IS07816 :BEEP :PRIHT PRIMT END 180 PRIMT :K=0 190 FOR F=0 TO 3

200 IF B(13tF)=1 THEN K=Kt2-(3-F) 210 MEXT F 220 Z=17

230 IF B(12)=1 THEN GOSUB 290

240 IF B(11)=1 THEN GOSUB 350

250 IF B(10)=1 THEM GOSUB 620

260 IF B(9)=1 THEN GOSUB 580 ELSE GOSUB 680

270 PRm :РИНТ-В ATfi исторических символов :К

280 PRINT :PRINT :PRINT :END

290 BEN - ТД1 -

ЭЮ PRIHTTAl = ;

310 FOR F=Z TO Z+7

320 PRINT B(F); :NE)CT F

330 PRINT (Воэмотые пределы: тактовая частота, скорость свози)

340 Z=Z+B:RETURM

360 REM - Т81 -

360 PBIMFTBI

370 FOB F=Z TO Zt7

380 PRINT B(F): :NEXT F

390 PP=0

400 FOR F=Z+3 TO Z+7

410 IF B(F)=1 THEN PP=Ppt2-(Z4-7-F)

420 MEXT F

430 PRINT (Vpp ;

440 IF PP=0 THEN РВ1 Т анутренний) :GOT0 510

450 PRINT = :PP; вольт ;

460 M(Zt2)+8.B(Z+1)

470 IF 1=0 THEN PBINT 25 мА)

4B0 IF 1=1 THEN PRIMT 50 нА)

490 IF 1=2 THEN PRIMT 100 нА)

500 IF 1=3 THEN PRINT 200 мА)

510 Z=Z+8:BETUBM

520 REN - TCI -

530 PR1MT TC1 = :

540 FOR F=Z TO Z+7

550 PRINT B(F); ;NEXT F

560 PRIMT (Защитная временная задержка)

670 Z=Zt8:RFrURN

580 REM - TD1 -590 PRlNr TD1 = , 600 FOR F=Z TO Z+7 610 PRINT B(F)::NEXT F 620 T=0

630 FOR F=Z+4 TO Z+7

640 IF B(F)=1 THEN T=Tt2-(Z+7-F)

650 NEXT F

660 PRINT (Основной протокол : Т = ;Т;)

670 Z=Z+8:RETURM

680 PRIMT :PRINT Рротокол Т=0

890 RETURN

7(Ю REK (c)1997 Patrick GUEULLE

Наиболее распространенный случай - Т = О, что вполне естественно, так как это первый полудуплексный протокол, полностью определенный стандартом ISO 7816-3 (условие 8). Т - О принято применять по умолчанию (то есть тогда, когда не указывается другой тип протокола), и позтому он поддерживается описываемыми программами. Его особенность - осуществление передачи байт за байтом.

В последних разработках предпринимаются попытки использования протокола Т - 1, основанного на передаче информации блоками, а стало быть, потенциально более быстродействующего. Т - 4

-V ZIXDC)OOCXDOCT .

start DBO DB1 DB2 DB3 DB4 DBS DB6 DB7 Четн. Stop 1 Stop 2

бит бит

Старт-бит

Блок, не более чем 64 символа

Аорес

Команда

Длина

БайтМ

CKSUM (контр, сумма)

Класс Инструкция

Данные от О до 59 символов Проверочный символ CKSUM формируется функцией Исключающее ИЛИ-

Рис. 6.6. Пример протокопа Г = М



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

© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения