Смарт-карты EMV
Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru
В основу данной спецификации легли разработки компаний Europay, MasterCard и Visa (EMV) в марте, 1998 года. Следует принимать во внимание, что данная технология будет использоваться не только для финансовых операций. Планируется ее применения для проездных билетов и контроля доступа к ЭВМ. В перспективе можно предположить, что эта техника будет использоваться для идентификации личности, например, вместо паспорта.
IEC 512-2:1979 | Спецификации для электромеханических компонентов оборудования - Часть 2: Тесты сопротивления контактов, тесты проверки изоляции и перегрузок | |
FIPS Pub 180-1:1995 | Стандарт на безопасные хэши. Спецификация терминала платежных систем для карт с интегральными схемами | |
ISO 639:1988 | Коды названий языков | |
ISO 3166:1997 | Коды названий стран | |
ISO 4217:1995 | Коды валют и фондов | |
ISO/IEC 7811-1:1995 | Идентификационные карты - Метод записи - Часть 1: Тиснение | |
ISO/IEC 7811-3:1995 | Идентификационные карты - Метод записи - Часть 3: Положение вытисненных символов на картах ID-1 | |
ISO/IEC 7813:1995 | Идентификационные карты - Карты для финансовых операций | |
ISO/IEC DIS 7816-1:1998 | Идентификационные карты - Карты с интегральными схемами, имеющими внешние контакты. | |
Часть 1: | Физические характеристики ISO/IEC DIS 7816-2:1998 | |
Часть 2: | Размеры и положение контактов | |
ISO/IEC 7816-3:1989 | Часть 3: | Электрические сигналы и протоколы передачи |
ISO/IEC 7816-3:1992 | Часть 3: | Протокол типа T=1, асинхронный полудуплексный протокол блочной передачи |
ISO/IEC 7816-3:1994 | Часть 3: | Выбор типа протокола |
ISO/IEC 7816-4:1995 | Часть 4: | Команды обмена |
ISO/IEC 7816-5:1994 | Часть 5: | Процедура для выработки прикладных идентификаторов |
ISO/IEC 7816-6:1996 | Часть 6: | Информационные элементы |
ISO 8731-1:1987 | Часть 1: | Алгоритмы аутентификации сообщений (DEA) |
ISO 8372:1987 | Обработка информации. Режимы работы для 64-битовых блочных алгоритмов шифрования/дешифрования | |
ISO/IEC 8825:1990 | Информационная технология. Соединение открытых систем. Спецификация базовых правил кодирования для синтаксической нотации ASN.1 | |
ISO 8583:1987 | Сообщения банковских карт - Спецификации сообщений - Содержимое финансовых транзакций | |
ISO 8583:1993 | Сообщения транзакций банковских карт - Спецификации сообщений | |
ISO 8859:1987 | Обработка сообщений - 8-битовые графические символьные наборы | |
ISO/IEC 9796-2: 1997 | Информационная технология - Методы безопасности - Схема восстановления сообщений с цифровой подписью. Часть 2: Механизм использования хэш-функций | |
ISO/IEC 9797:1994 | Информационная технология - Методы безопасности - Механизм информационной целостности, использующий функцию криптографической проверки на базе алгоритма блочного шифра | |
ISO/IEC 10116: 1997 | Информационная технология - режимы работы алгоритмов n-битовых блочных шифров | |
ISO/IEC 10118-3: 1998 | Информационная технология - Методы безопасности - хэш-функции |
Рис. 4.6.4.1. Расположение контактов на лицевой стороне карты Рис. 4.6.4.2. Положение контактов (все контакты имеют размер 1,7х2,0 мм) Всего на карте 8 контактов. На рис. 4.6.4.1 обязательные контакты представлены закрашенными прямоугольниками. Контакты C4 и С8 не используются и могут отсутствовать, контакт же С6 используется для программирования на фазе изготовления. Сопротивление для этого контакта по отношению к любым другим контактом должно превышать 10 Мом при напряжении 5 В. Таблица 4.6.4.1.
Контакт | Назначение | Контакт | Назначение |
С1 | VCC - напряжение питания | С5 | GND - земля |
С2 | RST - сброс | С6 | Не используется |
С3 | CLK - тактовые импульсы | С7 | Вход/Выход (I/O) |
VIL- Низкий уровень входного сигнала
VOH- Высокий уровень выходного сигнала
VOL- Низкий уровень выходного сигнала
tR- Время нарастания сигнала
tF- Время спада сигнала Таблица 4.6.4.2
Минимум | Максимум | |
VIH | 0,7xVcc | Vcc |
VIL | 0 | 0,8 В |
tR и tF | - | 1,0 мксек |
Условия | Минимум | Максимум | |
VOH | -20мкА<IOH<0, Vcc= min | 0,7xVcc | Vcc |
VOL | 0< IOL < 1мА, Vcc = min | 0 | 0,4 В |
tR и tF | C IN(терминала) =30пФ макс | - | 1,0 мксек |
Минимум | Максимум | |
VIH | Vcc-0,7В | Vcc |
VIL | 0 | 0,5 В |
tR и tF | - | 9% тактового периода |
Минимум | Максимум | |
VIH | Vcc-0,7В | Vcc |
VIL | 0 | 0,6 В |
tR и tF | - | 1,0 мксек |
Микросхема может также противостоять импульсам тока через цепь питания до 100 мА длительностью 400 нсек и с интегральным зарядом 40 нАсек. Любая транзакция для карты начинается с ее вставления в интерфейсное устройство IFD (Interface Device) и активации контактов карты. Далее следует сброс микросхемы ICC в исходное состояние и установление связи между ICC и IFD. Только после этого начинает реализовываться конкретная транзакция. Любая транзакция завершается дезактивацией контактов и удалением ICC из интерфейсного устройства. После вставления карты в IFD терминал проверяет, что все сигнальные контакты находятся в состоянии L (низкий логический уровень - VOL). IFD контролирует корректность положения ICC с точностью ±0,5мм. Если карта позиционирована правильно, производится активация контактов в соответствии с порядком, представленном на рис. 4.6.4.3. Рис. 4.6.4.3. Последовательность активации контактов ICC Через некоторое время после подачи на ICC напряжения питания Vcc начинают поступать тактовые импульсы. В исходный момент времени (сразу после вставления карты уровень сигналов на шине I/O является низким (L). Далее уровень этой шины может быть неопределенным (обозначено на рисунке серым прямоугольником), но после прихода 200 тактов этот уровень становится высоким (H). При этом уровень на шине RST остается низким (L). Терминал IFD устанавливает свой драйвер I/O в режим приема не позднее поступления 200-го такта. После этого выполняется процедура сброса (Reset). ICC откликается на команду RESET асинхронно. Время, когда на ICC начинают поступать тактовые импульсы, называется T0. Терминал поддерживает в это время уровень шины RST в низком состоянии. Рис. 4.6.4.4. Диаграмма реализации "холодного" сброса После прихода 40000-45000 тактов после Т0 шина RST переходит в состояние H. Этот момент времени называется T1. Начало отклика на Reset со стороны ICC наступает спустя 400-40000 тактов после T1 (время t1). Если за это время отклик со стороны ICC не поступает, терминал в пределах 50 мсек деактивирует контакты микросхемы на карте.
Диаграмма холодного сброса ICC показана на рис. 4.6.4.4. Команда сброса может поступать и в процессе обычной работы - так называемый "теплый" сброс. Временная диаграмма такого сброса показана на рис. 4.6.4.5. Рис. 4.6.4.5. Временная диаграмма "теплого" сброса Следует учитывать, что при теплом сбросе напряжение питание Vcc имеет рабочий уровень, шина RST имеет уровень H, состояние шины I/O может быть любым. После перехода шины RST в состояние L (момент времени T0') на шине I/O не позднее чем через 200 тактов должен установиться уровень H. В момент Т1' шина RST переходит в состояние H, после чего завершается процедура сброса аналогично "холодному" варианту. Процедура деактивации контактов ICC показана на рис. 4.6.4.6. В момент начала этой процедуры напряжение питание Vcc имеет рабочий уровень, шина RST имеет уровень H, состояние шины I/O может быть любым. Сигналом к началу процесса является переход шины RST в низкое состояние. Через некоторое время состояние шины I/O должно стать низким, прекращается подача тактовых импульсов, после чего с небольшой задержкой напряжение питания Vcc становится равным нулю и процедура в пределах 100 мсек завершается. При гальваническом отключении контактов Vcc должно быть не более 0,4 В. По завершении процедуры карта может быть извлечена из интерфейсного устройства. Рис. 4.6.4.6. Временная диаграмма дезактивации контактов ICC Исходная длительность такта на шине I/O определяется как: t = 372/f секунд, где f частота в Гц. В общем случае t определяется как: t = F/(Df), где f частота в Гц, F и D параметры, которые могут варьироваться, но обычно F=372, а D=1. f лежит в пределах (1-5) МГц. Рис. 4.6.4.7. Диаграмма передачи символов по шине I/O Перед началом передачи символа шина I/O должна находиться в состоянии H. Для передачи любого символа требуется 10 бит (смотри рисунок 4.6.4.7). Стартовый бит должен иметь уровень L и номер 1. Последний бит представляет собой бит четности (нечет). Стартовый бит детектируется путем стробирования шины I/O.
Время стробирования составляет 0, 2 t. Время между началами передачи последовательных символов составляет t(10±0,2) плюс время выдержки. Во время выдержки ICC и терминал должны находиться в режиме приема. (H). Определены два протокола: символьный (Т=0) и блочный (Т=1). ICC поддерживает один из этих протоколов, терминалы поддерживают оба. Тип протокола определяется значением символа TD1. При отсутствии в ATR TD1 рабочим считается протокол Т=0. Физический уровень обмена должен согласовываться с обоими протоколами. Минимальный интервал между лидирующими битами двух последовательных символов, посылаемых ICC, равно 12t. Максимальный интервал между стартовыми битами двух последовательных символов (Work Waiting Time) не должно превышать (960хDxWI) t (параметры D и WI пересылаются с помощью символов TA1 и TC2, соответственно). Если это время будет превышено, терминал не позднее, чем спустя 960t должен начать процесс дезактивации. В режиме T=0, если ICC или терминал детектировали при передаче/приеме символа ошибку четности, шина I/O переводится в состояние L, чтобы передающая сторона узнала об ошибке. На транспортном уровне терминала TTL (Terminal Transport Layer) данные всегда передаются через шину I/O так, что старший байт следует первым. Будет ли первым старший бит, определяется символом TS, возвращаемым в ответ на команду сброс ATR. Такой отклик может содержать строку символов. При отклике на сброс минимальное время между стартовыми битами последовательных символов составляет 9600t. ICC передает все символы отклика в пределах 19200 t. Это время измеряется между стартовым битом первого символа TS и после 12 t от начала последнего символа. Число символов в отклике зависит от транспортного протокола и поддерживаемых управляющих параметров. ICC может опционно поддерживать более одного транспортного протокола, но одним из таких протоколов должен быть Т=0 или Т1. Символы, присылаемые в рамках ATR, представлены в таблице 4.6.4.6. Таблица 4.6.4.6. Базовый ATR для T=0
Символ | Значение | Примечания |
TS | 3B или 3F | Указывает на прямую или инверсную схему передачи бит |
T0 | 6x | Присутствуют TB1 и TC1; х обозначает число исторических байтов |
TB1 | 00 | VPP не требуется |
TC1 | 00 - FF | Указывает на необходимость дополнительного времени выдержки. FF имеет специальное назначение. |
Если поддерживается только протокол типа T=1 (блочный асинхронный транспортный протокол), то используемые символы отклика ATR содержатся в таблице 4.6.4.7. Следует иметь в виду, что ICC может поддерживать более одного транспортного протокола. Таблица 4.6.4.7. Базовый ATR для T=1
Символ | Значение | Примечания |
TS | 3B или 3F | Указывает на прямую или инверсную схему |
T0 | Ex | Присутствуют TB1 - TD1; х обозначает число исторических байтов |
TB1 | 00 | VPP не требуется |
TC1 | 00 - FF | Указывает на необходимость дополнительного времени выдержки. FF имеет специальное назначение. |
TD1 | 81 | TA2 - TC2 отсутствуют; TD2 присутствует; должен работать протокол T=1 |
TD2 | 31 | TA3 и TB2 присутствуют; TC3 и TD3 отсутствуют; должен работать протокол T=1 |
TA3 | 10 - FE | Возвращает IFSI, что указывает на начальное значение размера информационного поля для ICC и IFSC равное 16-254 байтам |
TB3 | Старший полубайт =0-4 Младший полубайт =0-5 | BWI = 0-4 CWI = 0-5 |
TCK | Контрольный символ |
(H)LHHLLLLLLH - инверсная схема, значение 3F.
(H)LHHLHHHLLH - прямая схема, значение 3B
Последний бит этих кодов Н является битом четности (смотри рис. 4.6.4.7). T0 - символ формата. Старший полубайт (b5-b8) используется для определения того, присутствуют ли последующие символы TA1-TD1. Если биты b5-b8 установлены в состояние логической единицы, TA1-TD1 присутствуют. Младший полубайт (b1-b4) содержит число опционных исторических байтов (0-15).
Смотри таблицу 4.6.4.8. Таблица 4.6.4.8
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | |
Только Т=0 | 0 | 1 | 1 | 0 | X | X | X | X |
Только Т=1 | 1 | 1 | 1 | 0 | X | X | X | X |
Базовый отклик ATR не содержит ТА2. ТВ2 передает PI2, который используется для определения величины программируемого напряжения Р, необходимого ICC. Если этот символ присутствует, значение, указанное в PI1 (ТВ1), заменяется на новое. По умолчанию ТВ2 отсутствует. ТС2 специфичен для протокола типа Т=0 и несет в себе значение WI (Waiting time Integer), которое используется для определения максимального интервала между началом передачи любого символа, посланного ICC, и началом предыдущего символа, поступившего от ICC или терминала. Время выдержки вычисляется по формуле 960xDxWI. По умолчанию ТС2 отсутствует, а WI=10. Терминал воспринимает ATR, содержащий ТС2=0А. Он отвергает ATR, несущий в себе ТС2=00 или ТС2>0А. TD2 указывает, будут ли еще переданы какие-либо интерфейсные байты, а также определяет тип протокола, используемого далее. Старший полубайт используется для указания наличия символов ТА3 - TD3. Биты b5-b8 устанавливаются в единичное состояние при наличии ТА3 - TD3. Младший полубайт указывает тип протокола, применяемый в последующих обменах. При Т=1 он равняется 1. По умолчанию при Т=0 ATR не содержит TD2, в противном случае ATR содержит TD2=31 (T=1). ТА3 несет в себе информацию о размере поля данных для ICC (IFSI) и специфицирует длину информационного поля INF блоков, которые могут быть получены картой. Этот символ характеризует длину IFSC в байтах и может содержать коды в интервале 0х01-0хFE. Значения 0х00 и 0хFF зарезервированы на будущее. По умолчанию ATR содержит ТА3 со значение в диапазоне 0х10-0хFE, если Т=1, IFSC лежит в интервале 16-254 байта. Если ТА3 содержит недопустимый код, ATR терминалом отвергается. ТВ3 характеризует значения CWI и BWI, используемые для вычисления CWT и BWT, соответственно. ТВ3 имеет две части. Младший полубайт (b1-b4) используется для определения значения CWI, а старший полубайт (b5-b8) - BWI. По умолчанию ATR несет в себе ТВ3, при этом младший полубайт содержит код 0-5, а старший - 0-4, если Т=1, указывая, что CWI=0-5, а BWI=0-4.
Формат ТВ3 показан в таблице 4.6.4.9. Таблица 4.6.4.9
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | |
Только Т=1 | 0 | X | X | X | 0 | Y | Y | Y |