![]() |
Модераторы: AntonSaburov |
![]() ![]() ![]() |
|
firstone |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 25.9.2007 Где: Кровью залитая Св ятая Земля Репутация: 5 Всего: 7 |
Смарт карта
Смарт карта представляет собой пластиковую карту с чипом внутри. Этот чип - нечто более сложное простой микросхемы - микропроцессор. Этот микропроцессор содержит в себе память (ROM, EEPROM, RAM), арифметический процессор и в большинстве случаев криптографический процессор. Все это находится в одном чипе. Кроме этого также имеются специальные контролеры ввода/вывода, но их мы затрагивать не будем. По способу взаимодействия с управляющим устройством (ридером) смарт-карты делятся на две группы: (1) Контактные карты - разновидность смарт-карт с контактной площадкой и интерфейсом, обеспечивающим взаимодействие карты и ридера при подаче напряжения на контакты чипа. Получили широкое распространение в банковских платежных системах, системах информационной безопасности, в торговле и системах идентификации личности, а также в качестве таксофонных и SIM -карт. (2) Бесконтактные карты - разновидность смарт-карт с встроенной антенной бесконтактным и интерфейсом, обеспечивающим взаимодействие карты и ридера на небольшом расстоянии при питании чипа карты с помощью электромагнитного поля. Получили широкое распространение в системах контроля физического доступа и на транспорте, а также в качестве социальных карт. Кроме этого, существуют комбинированные смарт-карты и смарт-карты с дуальным интерфейсом. Комбинированную смарт-карту характеризует простое физическое объединение на одной карте двух чипов - одного с контактным и другого - с бесконтактным интерфейсом. Друг с другом эти чипы никак не связаны. Смарт-карты с дуальным интерфейсом имеют один чип, доступ к его памяти возможен как через контактную площадку, так и "через воздух" - бесконтактным путем. Итак, как было упомянуто выше, в карте могут находиться три типа памяти: ROM, EEPROM и RAM. В ROM-памяти записана операционная система карты, в EEPROM-память помещаются приложения а RAM используется точно также, как и на персональном компьютере - временные данные которые сохраняются пока у карты есть питание, т.е. карта находится в считывающем устройстве (для контактных карт) или в зоне досягаемости считывающего устройства (для безконтактных карт, обычно до 3-4 см). На одну смарт карту можно установить несколько приложений. Таким образом, одна смарт карта может быть использована и как кредитная карта и как удостоверение личности и т.д. Конечно количество приложений которые могут быть установлены ограничены общим количеством памяти на карте. Существует большое многообразие карт с различным количеством памяти и ее типов. Преимущественно главный фактор влияющий на этот аспект - применение карты и ее цена. На сегодняшний день (январь 2008) карты в больших количествах обходятся в несколько долларов США за единицу. Различные характеристики смарт карт определены серией стандартов ISO/IEC 7816 (которые являются разширением ISO/IEC 7810), а именно: 1) ISO/IEC 7816-1 Физические характеристики (размеры) 2) ISO/IEC 7816-2 Контактные карты - размещение чипа и размеры 3) ISO/IEC 7816-3 Електронные характеристики для контактных карт 4) ISO/IEC 7816-4 Формат команд и безопасность 5) ISO/IEC 7816-5 Регистрация изготовителей приложений и идентификаторы приложений 6) ISO/IEC 7816-6 Межотраслевые элементы 7) ISO/IEC 7816-7 Межотраслевые комманды SCQL (Structured Card Query Language) 8) ISO/IEC 7816-8 Команды для безопасной передачи данных и различных операций 9) ISO/IEC 7816-9 Команды для управления картой 10) ISO/IEC 7816-10 Электрические сигналы и ATR (Answer To Reset) для синхронных карт 11) ISO/IEC 7816-11 Верификация персонала с помощью биометрических методов 12) ISO/IEC 7816-12 Различные характеристики смарт карт с USB интерфейсом (USB-ICC) 13) ISO/IEC 7816-13 Команды для управления приложениями и взаимодействием приложений на карте 14) ISO/IEC 7816-15 Применение криптометодов. Для полноты картины необходимо перечислить серию стандартов для безконтактных карт ISO/IEC 14443: 1) ISO/IEC 14443-1 Физические характеристики 2) ISO/IEC 14443-2 Электромагнитные волны, сигналы и интерфейсы 3) ISO/IEC 14443-3 Инициализация (при приближении карты к считывающему устройству) и антиколлизия (работа с несколькимми безконтактными картами на одном считывающем устройстве) 4) ISO/IEC 14443-4 Протоколы передачи данных Несомненно мы не будем затрагивать темы электроники ибо это форум программистов. Наша задача - показать как легко и просто программировать эти маленькие компьютеры (а это действительно так) с помощью простого и понятного языка - Java. Обмен данными между картой и терминалом выполняется с помощью пакетов данных APDU (Application Protocol Data Unit). Формат этих пакетов определен ниже: ![]() CLA (Class byte) - поле длинной 1 байт идентифицирующее класс команд (инструкций). Обычно для каждого приложения на карте отводится отдельный класс. INS (Instruction code) - поле длиной 1 байт содержащие код инструкции (команды). Определение допустимых значений инструкций попадает под ответственность разработчика приложения. P1 (Parameter 1) - поле длиной 1 байт содержащие параметр 1 для инструкции. P2 (Parameter 2) - поле длиной 1 байт содержащие параметр 2 для инструкции. Lc (Length of Command data) - поле длиной 1 байт. Это поле хранит длину поля Data (макс. 255). Data - длина указана в поле Lc. Это поле содержит дополнительную информацию для успешного выполнения инструкции (команды). Le - поле длиной 1 байт содержащие максимальное количество байт в поле Data ответа (response) на этот пакет APDU. Обязательными полями APDU являются: CLA, INS, P1 и P2. Позволю себе провести следующую аналогию, которая на мой взгляд хорошо отражает функциональную нагрузку каждого из определенных выше полей. Если представить, что CLA - имя класса/объекта, INS - наименование метода а P1 и P2 - аргументы этого метода, то все это можно сложить в такую запись которая будет понятна практически любому программисту (по крайней мере программирующему в OOP): byte[Le + 2] CLA.INS(P1, P2, Data = null) В ответ на посланный пакет APDU должен быть получен ответ следующего формата: ![]() Здесь поле Data опционально. В случае если с карты были запрошены какие либо данные, именно поле Data должно их содержать. Два последующих байта представяют обязательный код выполнения операции - Status Words. Каждый байт называется по своему: SW1 и SW2. Если последняя операция (APDU) была выполнена успешно, то эти байты могут принимать следующие значения (в шестнадцатиричной системе): 90 00 - успешное выполнение последней операции 61 ХХ - успешное выполнение, SW2 указывает на количество все еще доступных байт (могут быть получены после запроса) 62 XX, 63 XX - успешное выполнение, но с предупреждением (warning). Код предупреждения в SW2 Остальные коды указывают на какую либо ошибку. Полный список кодов представлен в таблице Table 6 в документе ISO/IEC 7816-4. Для удобства приведу ее здесь (надеюсь не согрешу), т.к. очень часто приходится к ней обращаться: ![]() Библиография: 1) ISO/IEC 7816 2) ISO/IEC 14443 Это сообщение отредактировал(а) firstone - 21.1.2008, 15:21 --------------------
В программировании я конфуцианец. В жизни я либерал-демократ. В душе я буддист.Добавлено через 1 минуту и 9 секундА на самом деле я лентяй. |
|||
|
||||
Olegan |
|
|||
![]() Крутой сисадмин ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 752 Регистрация: 15.5.2007 Репутация: нет Всего: 105 |
Спасибо за инфу, всегда хотел узнать что это.
Теперь понятно для чего нужна одноименная служба в xp. |
|||
|
||||
Gugle |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 9.12.2005 Репутация: нет Всего: нет |
Интересно было почитать. спс.
|
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Черт. Все изображения с сайта ipicture.ru были у далены :(
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java Card | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |