![]() |
![]() |
![]() |
![]() |
Главная Чип-карты: устройство и применение 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 ОСНОВНЫЕ РАБОТЫ АСИНХРОННЫХ КАРТ
Самый первый байт (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 Конечно же, не стоит надеяться на то, что с помощью этих программ удастся определить конфиденциальный код карты, поскольку любая хорошо защищенная карта полностью блокируется после трех неудачных попыток. |
© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения |