Sunday, January 26, 2014

Смарт-карты для самых маленьких

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

Смарт-карта является программно-аппаратным комплексом, по сути — миниатюрным компьютером, в состав которого входят, как минимум: 

процессор;
оперативная память;
подсистема хранения данных;
операционная система.

Часто, но не всегда, в состав карты входит и Java VM. ОС, как таковая, конечному пользователю не видна. 

APDU

Роль API выполняет обмен данными с картой посредством т.н. APDU. 
Множество различных APDU представляет из себя набор команд, каждая из которых имеет следующую структуру (согласно ISO7816-4):

Элемент Размер (байт) Описание
CLA 1 класс команды
INS 1 код инструкции
P1 1 параметр №1
P2 1 параметр №2
L 1 длина данных, передаваемых карте.
Data L данные

APDU принято записывать в виде набора шестнадцатиричных цифр, вот так:

A0 A4 00 00 02 3F00

Для GSM SIM-карт используется CLA = A0.

Read more: Habrahabr.ru