Применение смарт-карт
Основные сведения о смарт-картах. Описание принципиальной схемы ридера и схемы источника питания. Чтение и запись смарт-карты через параллельный порт компьютера. Ведущие управляющие команды карты. Назначение областей данных. Описание интерфейса программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.11.2011 |
Размер файла | 230,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ
Кафедра АПВТ
Курсовой проект
по курсу «Программирование»
на тему
«Основные сведения о смарт картах»
Харьков 2003
Реферат
Смарт-карта (Smart Card) -- это пластиковая карточка с встроенным микропроцессором, по виду похожая на обычную кредитную карту.
Смарт-карта, по своим размерам напоминающая кредитную, способна хранить и обрабатывать информацию с помощью полупроводниковых электронных схем, спрятанных внутри пластикового корпуса.
Интеллектуальная смарт-карта похожа на крошечный микрокомпьютер. Она содержит микропроцессор и может считывать и записывать информацию, а также производить определенные вычисления. Карта памяти не имеет микропроцессора и предназначена только для хранения информации. В карту памяти встроены некоторые механизмы обеспечения безопасности, ограничивающие доступ к хранимой в ней информации. Смарт-карты могут быть снабжены микросхемами памяти трех типов: постоянной не перезаписываемой, постоянной перезаписываемой и оперативной. Чаще всего для реализации этих трех типов памяти в смарт-картах применяются микросхемы ROM, EEPROM и RAM. Постоянную память также называют не разрушаемой (постоянной и не разрушаемой памятью понимается одно и то же). смарт карта схема ридер
Впервые такого рода карта была предложена французским инженером Роланом Морено в середине 70-х годов. Через несколько лет, и компания Bull (Франция) разработала и запатентовала смарт-карту со встроенным микропроцессором. Но лишь в конце 80-х технологические достижения сделали ее достаточно удобной и недорогой для практического использования. На сегодня существует несколько видов карт, которые отличаются способом изготовления, интерфейсом, степенью защищенности данных на ней, стандартом (ISO).
Объемы производства смарт-карт на ведущих фирмах мира, таких как GEMPLUS, SCHLUNBERGER, BULL, DATACARD, ORGA и других составляют сотни миллионов карт в год.
Введение
Смарт-карты в наше время нашли широкое применение в метро, таксофонах, банках, в секретных объектах, в программах для ПК, где нужен физический ключ для её запуска, также для удаленного администрирования компьютерами, хранения ключей шифрования. Так как смарт-карты имеют малые размеры то их удобно переносить, во-вторых, подделка карты невозможна без прямого контакта с оригиналом. Также карты служат не менее 5 лет. Если карта теряется можно всегда сделать дополнительную проверку вторым паролем.
В ПК можно подсоединить до 4-х картридеров (через порт LPT) без аппаратных затрат и обработка будет вестись независимо. Но одна проблема, возникающая, если нужно обрабатывать информацию, хранящуюся в карте в больших размерах в очень короткое время. Так, например что бы перебрать все комбинации одного байта в карте нужно затратить 1 мин. Также время доступа к ячейке памяти прямо пропорционально зависит от её положения в памяти. В стандартных смарт-картах частота кристалла достигает 4 МГц.
У каждой из типов карт есть свои функции и методы доступа к ним. У исследуемого нами типа карт есть определенный набор функций, к которым нам дает доступ чипы SLE4436/SLE5533.
1. Основные сведения о смарт-картах
Все карты, использующиеся на сегодняшний день, соответствуют международному стандарту ISO 7816.
Стандарт ISO 7816 состоит из следующих разделов:
· физические характеристики;
· размеры и расположение контактов;
· электронные сигналы и протоколы передачи;
· команды для обмена информацией для межотраслевого взаимодействия;
· идентификаторы приложений;
· межотраслевые элементы данных;
· межотраслевые команды SCQL.
Объектами наблюдения будут выступать наиболее применяемые карты «Укртелеком», карты FRANCE TELECOM, TELEFON KARTE, BRITISH TELECOM, а также «Харьковский Метрополитен» так как они являются наиболее доступными и легко дешифруемы.
На рис. 1 представлены физические характеристики смарт-карт, определенные в первой части стандарта ISO 7816.
Рис. 1
У смарт-карт нет источника питания, дисплея и клавиатуры. Взаимодействие с окружающим миром производится с помощью последовательного коммуникационного интерфейса, имеющего восемь контактов. Расположение и размеры контактов описываются во второй части стандарта ISO 7816. На рис. 2 показаны контакты смарт-карты.
Рис. 2
Внешне карточки разных типов можно различить по форме контактов чипа изображенных на рисунках 3 и 4, 5.
Рис. 3 Рис. 4 Рис. 5
Первая и вторая карточки отвечают стандартам ISO 7816-1 и ISO 7816-2 соответственно.
У карточек данного типа есть также тип AFNOR, который отличается лишь тем, что его чип развернут на 180°. На рис. 5 изображено нормальное расположение, на рис. 7 типа AFNOR.
Рис. 6 Рис. 7
Карточки содержат электрически программируемое ПЗУ емкостью 256 * 1 бит с последовательной побитной выдачей информации и внутренним инкрементным счетчиком адреса. Операция записи производит изменение состояния ячеек памяти "в одну сторону", обратное изменение (стирание) интерфейсом карточки не предусмотрено (на защищенных типах). Память можно было бы стереть ультрафиолетом, но чип закрыт контактной панелью и специальной смолой. Можно применить для стирания чипа жесткое излучение. Казалось бы, можно запрограммировать заново всю карточку, однако первые 96 бит памяти, где прошиты тип карточки и код производителя, защищены от записи предохранителем, пережигаемым на заводе после прошивки чипа. По этим причинам использованную карточку нельзя "перезарядить", чтобы она работала, как новая. Единственный способ обмануть смарт-карту - использовать электронный эмулятор. Но есть и карты, которые позволяют переписывать некоторые области памяти, например карты «Харьковский Метрополитен» позволяют перезаписывать 56 бит памяти, в которой хранится CRC код.
На карточке используются только 16 байт. Все остальные равны 0xFF или 0x00.
Все карты должны придерживаться единому стандарту: размер носителя, положение и размеры контактов. Нижеуказанных параметров, в соответствии со стандартом ISO 7816, придерживаются все производители смарт-карт.
Карточки типа ISO 7816-2 совместимы сверху вниз с карточками типа ISO 7816-1. Для распознавания типа карточки таксофон начинает работать по стандарту ISO 7816-2, и если вместо данных идут только одни единицы, переходит на тип ISO 7816-1.
Внутри карточки находится счетчик адреса разрядностью 9 бит. То есть после чтения каждых 512 бит все начинается сначала.
Обычно на картах второго типа вся важная информация храниться в защищенной части памяти 9-13 байты (65-104 биты). Что бы выяснить сколько “юнитов” осталось на карте (поездок, времени) нужно посчитать, сколько единиц в каждом из байтов (9-13 байты), и воспользоваться формулой
,
где S - количество юнитов.
2. Принципиальная схема ридера
Смарт-карта вставляется в приемное устройство (Card Acceptance Device, CAD), которое соединяется с компьютером. Кроме того, в состав приемного устройства может входить терминал, считыватель и интерфейсный механизм (interface device, IFD). В числе его основных функций - обеспечение смарт-карты энергией и установление соединения для обмена данными. В процессе взаимодействия два компьютера обмениваются пакетами данных, которые создаются на основе определенного набора протоколов (I2C, T2G, …). Смарт-карты общаются с окружающим миром при помощи собственных пакетов данных, которые называются APDU (Application Protocol Data Units). Пакеты APDU содержат либо команду, либо ответное сообщение. Технология смарт-карт моделирует широко известный интерфейс "ведущий-ведомый" (master-slave), в котором самой смарт-карте отводится пассивная роль. Другими словами, смарт-карта всегда ждет от терминала команду APDU. Затем она выполняет указанное действие и посылает терминалу ответный пакет, подтверждающий выполнение команды. Между картой и терминалом происходит непрерывный обмен пакетами APDU, содержащими команды и ответы на них. Микросхема в телефонной карточке имеет 8 выводов, но реально используются только 5. Наиболее простым вариантом является сборка «ридера» для подключения его к LPT-порту компьютера (рис 8).
Рис. 8
В таблице 1 приведены соответствия номеров контактов LPT порта и их обозначений, но можно изменять по желанию пользователя.
Таблица 1
Номер контакта |
Обозначение |
|
2 |
D0 |
|
3 |
D1 |
|
4 |
D2 |
|
5 |
D3 |
|
11 |
BUSY |
|
10 |
ACK |
|
25 |
GND |
3. Принципиальная схема источника питания
Смарт-карта питается от внешнего источника питания.
Для этого необходим блок питания, состоящий из понижающего трансформатора с напряжением на вторичной обмотке от 7,5 до 15 В.
Схема стабилизатора напряжения изображена на рисунке 9.
Рис. 9
Для питания карты нужно напряжение диапазона 4,75 - 5,25 В. Для этого используется интегральный стабилизатор КР142ЕН5А (на схеме СН1) с фиксированным выходным напряжением 4,9 - 5,1 В.
4. Чтение и запись смарт-карты через параллельный порт компьютера
Обмен информацией между картой и интерфейсным устройством.
Вся суть стандарта ISO 7816 сводится к стандартному: карта может работать в двух режимах: асинхронном и синхронном. В первом из них данные передаются на линию I/O в асинхронном полудуплексном режиме. Во втором режиме все то же самое, но только передача данных синхронизируется сигналом CLK. И в том, и в другом случае, обмен данными производится пакетами по 8 бит, то бишь по 1 байту. За исключением маленьких технических нюансов, весь режим передачи данных полностью аналогичен передаче данных по параллельному (LPT) порту в первом режиме и по последовательному (СОМ) - во втором.
Ниже приведена диаграмма сигналов для типа ISO 7816-1 (сброс, чтение и запись):
+21V _____________
+5V ____________________________________| |_________________ Vpp
+0V : :
: : _____
+5V ___________________:_____________:_________________ Reset
0V ________________| : :
: : :
+5V ____ : ____ : ______:______
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).
Основные управляющие команды карты
На рисунке 10 приведена команда сброса карты (Reset).
На рисунке 11 приведена команда стирания бита (установка бита в “0') (Write).
На рисунке 12 приведена команда увеличения счетчика на один пункт (Clk).
На рисунке 13 приведена команда записи байта (установка битов в “1') (WriteCarry).
Рис. 10 Рис. 11
Рис. 12 Рис. 13
Описание интерфейса программы
У программы создано единственное управляющее окно (рис. 14):
Рисунок 14
Для того что - бы пользователь не мог изменить размер окна используется свойство формы BorderIcons = [biSystemMenu, biMinimize];
В окне средством отображения считываемой информации является компонент Stringgrid (сетка строк). Этот компонент предназначен для отображения текстовой информации, и для того, что - бы отобразить в нем числовые данные используется функция IntToStr. Для доступа к ячейкам используем свойство Cells[Row,Col]. Так как в стандартном виде Stringgrid одноцветен - приходиться использовать методы OnDrawCell предназначенная для ответа на перерисовку ячейки, где происходит заливка ячеек различным цветом. В компоненте Stringgrid1 информация отображается в бинарном виде, в Stringgrid2 в шестнадцатеричном виде, в Stringgrid3 в текстовом, в Stringgrid4 в десятичном.
При наведении мышки над этими компонентами автоматически подсвечивается соответствующий бит (байт) данных и в компоненте StatusBar1 отображается позиция курсора относительно положения данных в памяти карты. При нажатии на любую из ячеек компоненты Stringgrid1 компоненте Edit2 присваивается значение адреса этой ячейки. При двойном щелчке компоненте Edit1 присваивается значение адреса ячейки и происходит сброс карты в начальное положение и переход в указанную позицию.
Компонента Label3 используется для того что - бы определить есть ли напряжение на карте путем нахождения нулевого бита данных.
При нажатии на нее происходит включение таймера Powert, который и определяет работоспособности карты. Если оставить включенной службу определения напряжения на карте происходит незаметно сброс карты, а также смещение адреса счетчика. Повторное нажатие по этой компоненте отключает службу. Компонента Label13 предназначена для отображения реального значения выхода (I/O) на карте. Так как при манипуляции картой может произойти изменение в её состоянии или значении данных при отсутствии визуального наблюдения. Компоненты Label5 и Label11 предназначены для отображения адреса (значения счетчика) внутри карты относительно произведенных действий. Если компонента Label11 окрашена в зеленый цвет - что соответствует логической “1” данных.
Компоненты Label1, Label2, Label6, Label7 предназначены для индикации установленных значений на контактах карты. Зеленый цвет соответствует логической единице. Компонента CheckBox1 предназначена для выбора типа питания (внутреннее или внешнее). При её выборе устанавливается внутреннее питание. Компонента Button12 предназначена для загрузки раннее сохраненного образа памяти карты и работает совместно с компонентой OpenDialog1 (диалоговая компонента), требуется указать имя открываемого файла. Компонента Button11 предназначена для сохранения образа памяти карты и работает совместно с компонентой SaveDialog1 (диалоговая компонента), требуется указать имя сохраняемого файла. Компоненты BitBtn7, BitBtn10, RichEdit1, BitBtn5 предназначены для выполнения сценариев набираемых в текстовой компоненте RichEdit1 и запускаемых кнопкой BitBtn5. Кнопки BitBtn7, BitBtn10 предназначены для загрузки и сохранения скрипта соответственно. Данный скрипт поддерживает 10 команд (null, clk, rst, led, next, iowr, reset, goto, write, writecarry). Компонента Button9 предназначена для вычисления количества юнитов на карте и перевода их минуты (рис. 15) (если карта относится к продукту фирмы «УкрТелеком»).
Рисунок 15
Компонента Button10 предназначена для определения максимальной скорости перехода по ячейкам памяти карты. При этом замеряется время начала теста и его окончания, а также частота перехода (рис. 16).
Рисунок 16
Компонента Button13 предназначена для определения, является ли карта продуктом фирмы «Харьков Метрополитен» и выдачи дополнительной информации (рис. 17).
Рисунок 17
Компоненты Button3, Edit4, Edit5, Edit3 предназначены для реализации процедуры записи байта данных (Edit4, Edit3) в карту по указанному адресу (Edit5). Если вписать в Edit3 значение байта в десятичном виде - то автоматически в Edit4 отобразится в текстовом виде.
Компоненты BitBtn9, RadioGroup1, RadioGroup2, RadioGroup3, RadioGroup4 предназначены для создания сигналов из различных комбинаций. Можно выбрать на каких контактах карты должен появиться сигнал логической “1” или “0”, а после его послать на карту кнопкой BitBtn9. Сигналы удерживаются на контактах до того момента, когда изменится комбинация или их изменит другая операция.
Компоненты RadioButton1, RadioButton2, RadioButton3, CheckBox2, CheckBox3, CheckBox4 предназначены для создания импульсных сигналов прямоугольной формы с определенной задержкой (указанной в программе).
Компонента Button1 предназначена для проведения тестирования светодиода. Проводится путем посылания активных и пассивных сигналов поочередно. При нормальной работе светодиод мигает 5 раз.
Компоненты Edit2, Button8 предназначены для перехода к любому (<512) адресу, указанному в Edit2. Данные в Edit2 можно ввести с клавиатуры или кликнуть мышкой в компоненте Stringgrid1 в нужной ячейке.
Компоненты Edit1, Button2 предназначены для перехода к любому (<512) адресу, указанному в Edit1. Данные в Edit1 можно ввести с клавиатуры или кликнуть двойным щелчком мышкой в компоненте Stringgrid1 в нужной ячейке.
Компонента Button4 предназначена для того что - бы обновить информацию о данных карты (сброс и последовательное чтение памяти карты).
Компонента Button5 предназначена для того, что - бы установить карту в начальное состояние.
Компонента BitBtn2 предназначена для создания спада напряжения на контакте RST карты.
Компонента BitBtn1 предназначена для создания спада напряжения на контакте CLK карты.
Компонента Button6 предназначена для посылания на карту управляющего сигнала стирания карты (поочередные сигналы RST и CLK один за другим) (рис. 11).
Компонента Button7 предназначена для посылания на карту управляющего сигнала записи карты (поочередные сигналы RST и CLK один за другим два раза) (рис. 13).
Для того, что - бы пользователь мог посылать сигналы на LPT и считывать их используются функции WriteData и ReadData соответственно. Их реализация хранится в отдельной DLL, которая подключается к программе при её загрузке. Реализация импорта функций из DLL:
Function ReadData:byte;external 'project1.DLL' name 'ReadData';
Procedure WriteData(a:byte);external 'project1.DLL' name 'WriteData';
Сама DLL пишется отдельно от проекта и в ней указываются те функции которые должны быть экспортированы:
exports readdata,WriteData;
Список использованной литературы
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://kbts.neic.nsk.su/sat/satxpress/SmartCard/ISO7816-1.htm
2. Основы Java Card 2.0. Жикун Чен Java World, США 1994-2002 Sun Microsystems http://sun.ru
3. Web-узел Java Card http://java.sun.com/products/javacard/
4. Web-узел, посвященный применению Java в электронной коммерции
http://java.sun.com/products/commerce/
5. Стандарт ISO 7816-3 Web-узел http://nppiis.boom.ru/lib2.htm
6. Технические характеристики некоторых моделей смарт-картридеров
Web-узел http://www.bizcom.ru/cards/equipment/2001-02/tech_kart_tabl.html
7. Демо-версия программы Smartlab http://www.gsho.de/phonecard
8. Smart Card Technology: Introduction To Smart Cards http://kbts.neic.nsk.su
9. ISO 7816 Contact Cards http://www.smartcardsupply.com
10. Radio Control Systems http://www.radioscan.com
11. Phrack Magazine «Electronic Telephone Cards: How to make your own!»
http://openphoto.net
12. ISO 7816 Synchronous Memory Card Emulator http://phreak.newmail.ru
13. Эмулятор телефонной карточки на микросхеме AT90S2343 фирмы ATMEL http://www.geocities.com
Размещено на Allbest.ru
Подобные документы
Общие характеристики смарт-карт. Архитектура микросхемы: компоновка элементов микрокомпьютера смарт-карты, размещение процессора, памяти, периферийных модулей, блока ввода-вывода. Комплексный подход к обеспечению информационной безопасности смарт-карт.
курсовая работа [423,9 K], добавлен 26.11.2013Характеристика организации обработки информации в информационной системе управления. Программная реализация и алгоритм решения комплекса задач по внедрению смарт-карт. Анализ и оценка эффективности информационных технологий управления документооборотом.
дипломная работа [2,3 M], добавлен 05.07.2010Понятие и классификация информационных технологий. Обзор основных этапов развития Интернет-технологий; современные реалии. Цифровое гражданство: основы ИКТ-компетентности. Особенности информатизации учебного процесса. Описание идей смарт-образования.
реферат [550,5 K], добавлен 23.02.2016Классификация методов защиты информации по стоимости, распространенности, предотвращению взлома; классы, описание систем: программные, электронные ключи; смарт-карты, USB-токены, защищенные флэш-накопители, персональные средства криптографической защиты.
реферат [34,7 K], добавлен 12.05.2011Изучение функциональной схемы работы устройства сопряжения компьютера через стандартный периферийный порт. Характеристика преимуществ работы микросхем К555АП6, К155ИР13, К155ИД3. Построение селектора адреса базового порта для системного интерфейса ISA.
курсовая работа [403,3 K], добавлен 30.07.2010Особенности подключения принтера по интерфейсу Centronics в PC. Назначение его сигналов. Расширения параллельного порта. Оконечные цепи линий интерфейса IEEE 1284. Запись и чтение данных в регистры Control, Status и Data. Внутреннее устройство LPT порта.
реферат [220,7 K], добавлен 28.04.2010Назначение и применение микроконтроллеров - интегральных микросхем, предназначенных для управления электронными схемами. Описание способа адресации. Разработка программы, описание электрической и структурной схемы разрабатываемого микроконтроллера.
курсовая работа [177,6 K], добавлен 30.06.2014Разработка принципиальной схемы, выбор управляющего микроконтроллера. Общий алгоритм работы программы. Блок анализа и реализации команд, принятых от персонального компьютера. Описание используемых интерфейсов. Формат данных RS-232C, листинг программы.
курсовая работа [1,2 M], добавлен 26.12.2012Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.
реферат [86,4 K], добавлен 07.02.2011Уникальные электронные ключи как средство аутентификации пользователей. Особенности смарт-карт и USB-ключей. Анализ функциональных возможностей, установка и настройка Rutoken. Утилита администрирования, управление драйверами, браузер сертификатов.
курсовая работа [3,6 M], добавлен 23.01.2013