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

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

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

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

зарезч)внрован под улучшенный полудуплексный протокол, а Т - 2 и Т = 3 cooTBeTcTByKfT дуплексным протоколам, которые пока лишь разрабатываются. Т = 14 объединяет все остальные протоколы, не стандартизованные ISO. На рис. 6.6 представлен один из немногих известных протоколов такого типа.

Присутствие символа ТА1 может свидетельствовать о том, что карта работает с нестандартной тактовой частотой и/или на скорости обмена, отличной от 9600 бит/с. В подобных случаях следует обратиться к стандарту ISO 7816, чтобы определить, совместим ли этот протокол с используемым устройством чтения-затюи. При помощи символа ТС1 можно добавить защитную задержку, то есть определять промежуток времени, который следует вьщерживать между передачей двух последовательных байтов.

ДИАЛОГ С КАРТАМИ

Чтобы выйти за пределы простой расшифровки ATR, следует изучить программы, которые обеспечивают настояид-ш диалог с картой, помещенной в устройство чтения-записи. В INVERSE.EXE используется обратный формат передачи, а в DIRECT. EXE - прямой. Тип карт следует предварительно определить с помощью программ ATR. ЕХЕ и DECART. BAS. Стоит подчеркнуть, что INVERSE. BAS и DIRECT. BAS представляют собой только исходные тексты, которые следует обязательно откомшшировать (преобразовать в файлы с расШ1фением £ХЕ).

10 REH - INVERSE. BAS -20 KEY OFF :CLS

30 Рй1НТ Диэгог в обратном формате ISO 40 PfllHT -РПНТ

50 OPEN CDM1 :9600,0,в.2- AS 1

60 PRINT Вставить карту и ввести команду ISO

70 РгаиТЧЕЗО-. выход .PflWT

ВО BOSUB 110

90 PRIHT 1,Н$;

100 GOTO ВО

110 Н$=

120 A1=1HKEY$ :1F А$о THEM 150 130 IF LOCCDOO THEM GOSUB 230 110 GOTO 120

150 IF A$=CHR$(27) THEM EMD 160 PRINT A$;

170 B$=IMKEY$ -.IF B$= THEN 170 IBO PRIMT B$+ : 190 N=VAL( SH +A$tB$)

200 BOSUB 370 210 M}>CHR$(H) 220 RETURN 230 T$=TIHE$

240 IF T$=TIME$ THEM 240

250 IF L0CC1)=0 THEN RETURN

260 CJ=lNPUTtaOC(1), 1)-. PflWT : PBINT -

270 FOR K=1 TO LEN(C$)

2B0 M=ASC(MlD$(ra,K,1))

290 GOSUB 370

300 D$=HEX$(H)+

310 IF LEM(D$)<3 THEM D$= 0 +D$

320 PflINT OS;

330 ИЕХТ К

340 IF L0C(1)<>0 THEN C}=IHPUTI(L0C(1). 1):GDTO 270 350 PRIMT -360 RETURN 370 M=255

3B0 IF Ю127 THEM N=N-128 :M=M-1 390 IF M>63 THEN N=N-64 M=M-2 400 IF M>31 THEN N=N-32 .M=M-4 410 IF M>15 THEM N=M-16 :M=M-8 420 IF M>7 THEN N=M-e :M=M-16 430 IF M>3 THEM N=M-4 :M=M-32 440 IF N>1 THEM N=N-2 :M H-6/l 450 IF N>0 THEM H=H-12B 460 RETURN

470 REM (c)1997 Patrick GUEULLE

10 ВЕИ - DIRECT BAS -20 KEY OFF :CLS

30 PRINT- Диалог в обретном фсриате ISO 40 PRINT :PRINT

50 OPEN C0M1 :96(Ю,е,в,2- AS 1

60 РВ1МТ Вставить карту и ввести команду ISO

70 PRIMT <ESC>-. виход- .РВШ

80 GOSUB 110

90 PRINT JI.MS:

TO GOTO 80

110 M$= -

120 A$=1MKEY$ :1F AJo TBEM 150 ISO IF LOCdloO THEN G0SU6 210 140 GOTO 120

150 IF A$=CHR$(27) THEN EMD 160 PRIMT AJ;

170 B$=1NKP($ -.IF B$= THEN 170

180 PRIMT B$+ :

190 MJ=CHB$(VAL( SH +A$tB$))



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

200 RETURH 210 n=T ES

22(HF T$=TIME$ THEM 220

230 IF LDC(1)=0 THEM RETURH

240 C$=IHPUT$(L0C(1). 1): PRIMT : PRIMT

250 FOR K=1 TO LEN(C$)

260 D$=REX$(ASC(MID$(C$.K,1)))f

270 IF IEH(D$)<3 THEM D$= 0 +D$

280 PRIMT D$;

2SC NEXT К

ЗЮ IF L0C(1)<>C im C$=IMPUTt(LOC(1). 1)-.G0T0 250

310 PRm

320 RETURH

330 REM (c)1997 Patrick GUEULLE

Принцип работы программ крайне прост, все байты, которые выдает карта (начиная с ATR) выводятся на экран в шестнадцатеричном формате сразу после того, как они принимаются устройством чтения-записи. Блоки байтов, принятые из карты, для облегчения их дальнейшего распознавания помечаются звездочками (например, при копировании содержимого экрана). В любой момент можно передать в карту несколько байтов, набрав их в шестнадцатеричном формате на клавиатуре. Передача происходит немедленно, байт за байтом, без необходимости нажатия каких-тэбудь клавиш для подтверждения.

Это обусловлено тем, что обменом управляет устройство чтения-записи: именно оно должно посылать команды карте, которая может ответить или промолчать*>, согласно установленным для нее правилам безопасности (отсутствие реакции может рассматриваться как знак протеста ). Команды могут быть на запись или иа чтение . Команда на запись служит для того, чтобы послать блок данных в карту, команда на чтение требует выдачи ответа. В протоколе Т = О все команды должны применять блок из пяти байтов, называемый заглавным, или header; его структура показана ниже.

Структура команды стандарта ISO

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

, L

Самый первый байт (CLA) называют кяассо.и ISO команды. Это присвоенный карте код, расположенный в интервале от ODh до FEti. Он может быть DBCh для BULL СР8 (современной французской

банковской карты) или ТВ 100 компании Philips - либо же AOh для карты телефона GSM. Значение по умолчанию OOh также часто встречается, а спецификация EMV (Еигорау Mastercard Visa) пре-цусматривает для некоторых финансовых карт следующего поколения код BOh.

Программы CLASSINV.EXE и CLASSDIR.EXE позволяют на карте неизвестного типа провести систематическое исследование класса ISO, перебирая все возможные сочетания. Следует помнить, что речь идет соответственно о компилируемых версиях CLASSINV.BAS (д.тя карт с обратным форматам передачи) и CLASSDIR. BAS (для карг с прямым форматом передачи), и не следует пытаться запускать нижеприведенные исходные тексты в интерпретаторе GWBASIC.

10 REM - CLASSIMV.BAS -20 KEV OFF :CLS

30 PRWonpCfleneHMe класса ISO карт с обратни фориатов передачи 40 PRINT :PRIMT

50 OPEN COMI :96C0,0,8,2 AS 1

60 PRIMT Вставьте карту в картоприемник

70 IF L0C(1)<>0 THEN 1Ю

80 IF IMKEy$=CHRt(27) TREM 570

90 GOTO 70

100 T$=TIMEt :BEEP

110 IF Tt=T Et THEN 110

120 AJ=

130 WHILE NOT EOF(l) 140 А =АЯИРит$(1,В1) 150 WEND

160 IF LEF$(AJ.1) = CHR$(3) THEN 180

170 CLS : PRINT Карта не распознана :GOTO 570

IBO FOR R=0 TO 254

190 IF IMKEVS=CHR$(27) THEN 570

200 C$=HEXt(R)

210 IF LEH(C$)=1 THEN C$= 0 +C$

220 B$=C$t B008E090

230 CLS .PRINT Ct.

240 FOR F=1 TO 9 STTP 2

250 K$=HID$(BS.F,2)

260 Mt= Sh 4-K$

270 M=VAL(M$)

280 G0SU8 580

290 PRIMTel.CHRMH).

300 FOR T=0 TO 20 NEXT T

310 MEXT F

320 T$=TWE$

330 IF T$=TIME$ THEN 330



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

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

340 IF L0C(1)<>0 THEM 370

350 IF IHKEVS=CHB$(27) THEM 570

360 GOTO 340

370 A$=IHPUT$(L0C(1). 1)

380 D$=-

390 FOR F=1 TO LEN(AJ) 4Ю H$=HID$(AJ,F,1) 410 N=ASC(H$) 420 GOSUB 580 430 M$=HEX$(M)

440 IF LEN(H$)=1 THEM М$= 0-+И$ 450 D$=D$tM$ 460 NEXT F

470 IF LOCIDOO TBEN A$=1MPUTS(LOC(1), 1):GOTO 390 480 IF LEFT$(D$,2)<>6E- THEN 510 490 NEXT R 500 GOTO 570

510 PRIMT Класс распознан iPfilMT :PR1NT :6EEP

620 PRIMTПродолжить исследование-. <E TER>-

530 PRIMT Bыxoд: <ESC>

540 IF 1HKEV$=CHR$(27) THEM 570

550 IF IMKEyt=CHR$(13) THEM 490

560 GOTO 540

570 PRINT :PRIHT :END

580 M=255

590 IF M>127 THEM М=М-12в :M=H-1 600 IF M>63 THEN M=H-6/l :M=M-2 610 IF M>31 THEM M=N-32 :M=M-4 620 IF N>15 THEM M=N-16 :М=И-в 630 IF H>7 THEN l(=H-8 M-16 640 IF H>3 THEN N=H-4 :M=M-32 650 IF M>1 THEN M=N-2 :M=H-64 660 IF M>0 THEM М=М-12в 670 BETURN

680 REM (c)1997 Patrick GUEULLE

10 REH - CLASSDIR.BAS -20 KEY OFF :CLS

30 РВ1НТ Исследование класса ISO карты с пряный фориатом передачи 40 PRINT PRIMT

60 OPEN С0М1 :96С0,е.8,2 AS 1

60 PRlHT BcTaBbTe карту в картоприенник

70 IF LOCdJoO THEN 100

ВО IF 1MKEY$=CHR$(27) THEM 550

90 GOTO 70

100 T$=TIME$ -BEEP

110 IF T$=TIMEt THEM 110

120 AJ=-

130 WHILE HOT EOF(I)

140 AJ AJtIMPUTS(1. 1) 150 WEMO

160 IF LEFT$(AJ.1) = CHR$(59) THEM 180

170 CLS :РЯМТ Карта не распознана :GOT0 550

180 FOB R=0 TO 254

190 IF 1MKEY$=CHR$(27) THEN 550

2 C$=HEXt(R)

210 IF LEM(CS)=1 THEN C$= 0 +C$

220 В$=С$+ 600вЕ090

230 CLS iPRlMT C$.

240 FOR F=1 TO 9 STEP 2

250 К$=МЩ(В$,Е.2)

260 H$=ShtK$

270 H=VAL(H$)

280 PR1NT 1,CHB$(H);

290 FOR T=0 TO 20 :MEXT T

ЗЮ MEXT F

310 T$=TIHE$

320 IF T$=TIME$ THEM 320

330 IF LOC11)00 THEN 380

340 IF lNKE/t=CHB$(27) THEM 550

360 GOTO 330

360 AJ=lHPUT$(L0C(1),e1)

370 D$= -

380 FOR F=1 TO LEN(AJ) 390 H$=M1DMAJ,F,1) 400 H=ASC(Nt) 410 M$=HEX$(M)

420 IF LEN(M$)=1 THEN M$= 0 +Mt 430 D$=D$+M$ 440 MEXT F

450 IF LOCCDOO THEN AJ=1HPUT$(L0G(1). 1)-G0T0 380 460 IF LEFTUD$,2)o6E THEM 490 470 MEXT R 480 GOTO 550

490 PRINT Класс распознан :PRIMT :PRIMT :BEEP

500 РВШ Прсдолжить исследование: <ENTER>

510 РПИТ Выход: <ESC>-

520 IF IHKEY$=CHR$(27) THEM 650

530 IF IMKEYt=CHR$(13) THEM 470

540 GOTO 520

550 PBIMT : PRIMT :EMD

560 REM (c)1997 Patrick GUEULLE

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



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
Копирование материалов разрешено в случае наличия письменного разрешения