Рефераты. Управление смарт-картами с применением персонального компьютера

0V ___| |_______:_____| |________:______| : |__________ Clock

: : : : : : : :

+5V : : : : : :______:______: : _

0V ___:____:_______:_____:____:________| : |______:__________ R/W

: : : : : : : :

+5V : : :_____: :________: : : :__________

0V XXXXXXXXXXXXXXXXX_____XXXXXX________XXXXXXXXXXXXXXXXXXXXXX__________ Out

: : : : : :<–><–>:

: : : : : :10 – 10 – :

: : : : : :50ms 50ms :

Сброс Бит 1 Бит 2 Бит 3

карты чтение чтение Бит 2 Запись в 1 чтение


Примечание: контакт Reset условно инвертирован.

На первом этапе происходит сброс карты для того, что бы она установилась в изначальное состояние. При этом на контакте I/O появляется значение равное первому биту из цепочки памяти. После происходит чтение первых двух бит, после чего происходит запись второго бита и чтение третьего. При этом напряжение записи (Vpp) должно быть не менее 5В и не более 21В чтобы не спалить сам чип. Напряжение программирования зависит от самих параметров чипа.

В «чистом» виде ячейки памяти чипа типа – ISO 7816–1 содержат «0», операция записи прошивает в ячейку «1».

На следующей диаграмме приведена работа чипа типа ISO 7816–2 (сброс и чтение):


__________________

_____| |_____________________________________________ Reset

:

: _____ : _____ _____ _____ _____

_____:_______| |____:_| |_____| |_____| |_____| |_ Clk

: : : : : : : : :

_____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_

_____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Адрес)

Сначала происходит сброс карты, при этом Reset и Clk устанавливаются в «1». Затем подаются на контакт Clk импульсы, с помощью которых происходит перемещение по памяти карты. По фронту импульса Clk происходит увеличение на единицу внутреннего счетчика адреса. По спаду тактового импульса следующий бит данных появляется на выходе. Обычно удобнее представлять информацию в виде байтов. Для этого каждые 8 считанных бит группируют в байт, считая, что первым считывается наименее значащий бит. Таким образом, последовательно считывая 1,0,0,1,0,1,1,1, получим байт 0xE9. При этом счетчик может быть только увеличен.

Если нужно считать бит с адресом меньше текущего, то счетчик нужно сбросить в 0, а затем увеличить до необходимого значения.

Вся информация поступающая на карту производится через порт 0x378 принтера (базовый адрес). Записанный байт появляется на выходных контактах. Мы используем бит 0 (Data 0) для сигнала Reset и бит 1 (Data 1) для сигнала Clk. Чтение выполняется через порт 0x379. В самом старшем бите появится инвертированное значение с входного контакта 11 (Busy).

Основные управляющие команды карты

На рисунке 9 приведена команда сброса карты.

На рисунке 10 приведена команда стирания бита (установка бита в «0’).

На рисунке 11 приведена команда увеличения счетчика на один пункт.

На рисунке 12 приведена команда записи байта (установка битов в «1’).

          

Рис. 9                                          Рис. 10

Рис. 11                                        Рис. 12

Назначение полей данных

При чтении карты были выделены основные области (таблица 8):


Таблица 8

Байт

Биты

Значение / Описание

1

1–8

D8 старые карты DD новые карты

2

9–16

Код страны

5

33–36

Номинал карточки

5

37–40

Последняя цифра года выпуска

6

41–44

№ месяца выпуска

6–9

45–64

Серийный номер

9

65–72

4096* NBS единиц

10

73–80

512* NBS единиц

11

81–88

64* NBS единиц

12

89–96

8* NBS единиц

13

97–104

1* NBS единиц (NBS-число установленных битов)

14–40

105–320

FF – проверочная область


Итак, можно выделить следующие информационные области на карте: заголовок, счетчик. Заголовок содержит 40 бит информации, которые жестко программируются изготовителем карт. Обычно эта область содержит чисто служебные данные, которые в принципе нужны только для информативности. Следует иметь в виду, что некоторые производители в битах 36–64 пишут копию даты выпуска и серийного номера. Кроме этого первыми четырьмя цифрами серийного номера всегда будет дата выпуска, т.е., 0600 будет означать июнь 2000 года. Проверочная область – область, на которой производитель проверяет работоспособность чипа.


Пример дампа памяти карты


Ниже на рисунке 13 показан дамп (образ) памяти карты на котором условно цветами выделены различные области памяти по их назначению и свойствам.


Рис. 13


Чтение карты производится как 512-ти битного чипа, но это лишь внутреннее представление памяти.

В картах «Харьковский Метрополитен» биты 320–375 не защищены и их можно перезаписать, эти биты являются CRC кодом.

Эмуляторы смарт-карты

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

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

Реализацию эмулятора на этом принципе можно осуществить двумя путями. Первый состоит в том, что собирается логическая схема, осуществляющая всю логику работы схемы «аппарат-карта». Второй же способ основан на применении микроконтроллеров. В основном, используют микроконтроллеры из PIC-серии. Наиболее приемлемым является использование контроллера МС68НС705К1 фирмы Motorola. Во-первых, его довольно легко найти, во-вторых, он дешев, в-третьих, в этом контроллере огромное количество функций. Собираем программатор по схеме, приведенной на рисунке 14:


Рис. 14


Данная схема подключения контроллера к компьютеру через LPT порт очень удобна и не требует большой аппаратной реализации.

Для программирования контроллера нужен еще один источник напряжения 16,5 В. Этим напряжением и программируется контроллер.

Поведенческая программа записана в специальном формате фирмы Моторола, формат этот называется S19 и весьма хорошо описан на сайте этой фирмы.

После того как микросхема контроллера запрограммирована нужно собрать схему самого эмулятора (рисунок 15).


Рис. 15


Такой эмулятор размещается целиком собранным на таксофонной карте. При этом все сопротивления и конденсаторы подобраны таким образом, что бы «приемник» карты не смог различить подделку от реального чипа.

Еще один вариант схемы при которой сигнал «стирания» не сможет пройти через это устройство при условии, что карту не нужно сбрасывать (рис. 16).


Рис. 16


Когда схема на одном RS триггере принимает импульс по Reset то на выходе тригера появляется «1» и сигналы Clock не смогут дальше пройти.

Реализуется данная схема на 3-х микросхемах:

1.                             К555ТР2 – 4-ре RS триггера

2.                             К555ЛИ1 – 4-ре элемента И

3.                             К555ЛН1 – 6 элементов НЕ

Принципиальная схема с размещением элементов приведена на рисунке 17.


Рис. 17


Схема удобна тем, что питание микросхем совпадает с питанием которое подается устройством на карту.

Временные диаграммы приведенные на рисунке 18 показывают работу устройства.


Рис. 18



Список использованной литературы


1.     Smart Card Technology: Introduction To Smart Cards by Dr. David B Everett. «Technical Adviser to Smart Card News».1997 Smart Card News Ltd., Brighton, England. #"#">http://java.sun.com/products/javacard/

4.     Web-узел, посвященный применению Java в электронной коммерции #"#">#"#">http://www.bizcom.ru/cards/equipment/2001–02/tech_kart_tabl.html

7.     Демо-версия программы Smartlab Web-узел http://www.gsho.de/phonecard


Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.