КнигоПровод.Ru22.11.2024

/ИТ-книги

Технология Java Card™ для смарт-карт. Архитектура и руководство программиста — Жикун Чен
Технология Java Card™ для смарт-карт. Архитектура и руководство программиста
Жикун Чен
год издания — 2008, кол-во страниц — 344, ISBN — 978-5-94836-143-7, 0-201-70329-7, тираж — 3000, язык — русский, тип обложки — мягк., масса книги — 510 гр., издательство — Техносфера
серия — Мир программирования
цена: 799.00 рубПоложить эту книгу в корзину
Java Card™ Technology for Smart Cards
Architecture and Programmer's Guide
Zhiqun Chen
ADDISON-WESLEY 2007

Пер. с англ. И. Морозова

Формат 70x100 1/16. Бумага офсетная №1. Плотность 65 г/м2. Печать офсетная
ключевые слова — смарт-карт, java, аплет, интерфейс, программист, транзакц, apdu, sun, микропроцессор, сопроцессор, хост, tpdu, opencard, jcre, javacard, брандмауэр, криптограф, api, шифр, 32-разрядн

В настоящем издании читателю предложена исчерпывающая информация о смарт-картах. В нём подробно обсуждаются разнообразные функциональные возможности платформы Java Card™, даны полезные советы для разработчиков аплетов. Кроме того, книга содержит справочную литературу по программным интерфейсам Java Card™. Издание рассчитано на круг технических специалистов, занимающихся различными аспектами технологии Java Card™.


Технология Java Card™ — защищённая, не зависящая от производителя, повсеместная платформа Java™ для смарт-карт и других устройств с ограниченным объёмом памяти. Она открывает рынок смарт-карт для сторонних разработчиков ПО и позволяет программистам разрабатывать приложения, совместимые с оборудованием самых разных поставщиков.

Эта книга — полноценный справочник по разработке приложений на базе технологии Java Card™. Она вводит читателя в мир платформы Java Card™ и содержит подробное обсуждение принципов программирования. Приведено также пошаговое руководство по разработке аплетов Java Card™, которое проводит читателя через весь цикл создания приложений для этой платформы.

В книге подробно рассмотрены следующие темы:

  • Основы технологии смарт-карт
  • Виртуальная машина Java Card™
  • Постоянные и временные объекты
  • Атомарность и транзакции
  • Обработка команд APDU
  • Защитная система аплетов и совместное использование аплетов
  • Безопасность платформы Java Card™
  • Пошаговое руководство по разработке аплета
  • Рекомендации по оптимизации аплетов
  • Подробный справочник по программным интерфейсам Java Card™

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

Жикун Чен входит в состав группы специалистов, которая занимается разработкой и реализацией программных интерфейсов Java Card™. В настоящее время она работает над эталонной реализацией виртуальной машины Java Card™. Жикун Чен имеет богатый опыт программирования финансовых аплетов для платформы Java Card™. Она принимала участие в разработке приложений для Open Platform, терминала Mondex, а также серверных приложений для Java Electronic Commerce Framework.

ОГЛАВЛЕНИЕ

Предисловие10
 
Об этой книге12
 
ЧАСТЬ 1. ВВЕДЕНИЕ15
 
Глава 1. Начнём сначала16
1.1. Смарт-карты16
    1.1.1. Краткая история17
    1.1.2. Преимущества смарт-карт17
    1.1.3. Области применения18
1.2. Проблемы разработки приложений для смарт-карт20
1.3. Использование технологии Java для смарт-карт21
    1.3.1. Преимущества технологии Java Card21
    1.3.2. Краткая история технологии Java Card22
 
Глава 2. Введение в мир смарт-карт24
2.1. Обзор технологии смарт-карт24
2.2. Основные типы смарт-карт25
    2.2.1. Сравнение карт памяти и карт со встроенным микропроцессором25
    2.2.2. Сравнение контактных и бесконтактных карт26
2.3. Аппаратные средства смарт-карт27
    2.3.1. Контакты смарт-карты27
    2.3.2. Центральный процессор смарт-карты28
    2.3.3. Сопроцессоры смарт-карт28
    2.3.4. Система памяти смарт-карт28
2.4. Взаимодействие со смарт-картами30
    2.4.1. Устройства считывания карт и хост-приложения30
    2.4.2. Модель взаимодействия со смарт-картами30
    2.4.3. Протокол APDU31
    2.4.4. Протокол TPDU33
    2.4.5. Сообщение ATR33
2.5. Операционные системы смарт-карт33
    2.5.1. Файловые системы смарт-карт34
    2.5.2. Корневой каталог (Master File)35
    2.5.3. Каталог (Dedicated File)35
    2.5.4. Файл данных (Elementary File)35
2.6. Программное обеспечение смарт-карт35
2.7. Стандарты и спецификации смарт-карт36
    2.7.1. Стандарты ISO 781637
    2.7.2. Стандарты GSM37
    2.7.3. Спецификация EMV37
    2.7.4. Спецификации Open Platform38
    2.7.5. Интегрированная среда OpenCard Framework38
    2.7.6. Спецификации PC/SC38
 
ЧАСТЬ 2. ТЕХНОЛОГИЯ JAVA CARD39
 
Глава 3. Обзор технологии Java Card40
3.1. Обзор архитектуры40
3.2. Подмножество языка Java Card41
3.3. Виртуальная машина Java Card42
    3.3.1. Файлы САР и экспортные файлы42
    3.3.2. Конвертер Java Card43
    3.3.3. Интерпретатор Java Card44
3.4. Инсталлятор Java Card и внешняя инсталляционная программа45
3.5. Среда исполнения Java Card46
    3.5.1. Время существования JCRE47
    3.5.2. Как работает JCRE во время сеанса связи с устройством считывания48
    3.5.3. Дополнительные возможности среды исполнения Java Card49
3.6. API, поддерживаемые платформой Java Card49
    3.6.1. Пакет java.lang50
    3.6.2. Пакет javacard.framework50
    3.6.3. Пакет javacard.security51
    3.6.4. Пакет javacardx.crypto51
3.7. Аплеты Java Card52
3.8. Соглашение о присваивании имён пакетам и аплетам52
3.9. Процесс разработки аплета53
3.10. Инсталляция аплета55
    3.10.1. Аплеты ROM55
    3.10.2. Предопределённые и загружаемые аплеты55
    3.10.3. Инсталляция загружаемых аплетов56
    3.10.4. Обработка ошибок в процессе инсталляции аплета57
    3.10.5. Ограничения инсталляции57
 
Глава 4. Объекты Java Card58
4.1. Модель памяти Java Card58
4.2. Постоянные объекты59
4.3. Временные объекты60
    4.3.1. Свойства временных объектов60
    4.3.2. Типы временных объектов61
    4.3.3. Создание временных объектов62
    4.3.4. Запросы к временным объектам62
    4.4. Кратко о создании и удалении объектов63
 
Глава 5. Атомарность и транзакции64
5.1. Атомарность64
5.2. Атомарное обновление блока данных в массиве65
5.3. Транзакции65
    5.3.1. Фиксация транзакции66
    5.3.2. Прерывание транзакции66
    5.3.3. Вложенные транзакции67
    5.3.4. Размер буфера транзакций67
    5.3.5. TransactionException68
    5.3.6. Изменение значений локальных переменных и временных объектов
       в процессе выполнения транзакции68
 
Глава 6. Исключения Java Card и их обработка71
6.1. Исключения в пакете java.lang71
6.2. Исключения Java Card72
    6.2.1. Код причины исключений Java Card73
    6.2.2. Возбуждение исключений в Java Card73
    6.2.3. ISOException74
    6.2.4. UserException75
 
Глава 7. Аплеты Java Card76
7.1. Обзор аплетов76
    7.1.1. Инсталляция и выполнение аплетов76
    7.1.2. Взаимодействие хост-системы и аплетов77
7.2. Класс javacard.framework.Applet77
7.3. Метод install78
    7.3.1. Создание объектов в конструкторе аплета80
    7.3.2. Регистрация экземпляра аплета в JCRE80
    7.3.3. Обработка параметров инсталляции81
    7.3.4. Дополнительная инициализация аплетов83
7.4. Метод select83
    7.4.1. Формат и обработка команды SELECT APDU84
    7.4.2. Аплет по умолчанию85
7.5. Метод deselect85
7.6. Метод process86
7.7. Другие методы класса javacard.framework.Applet86
 
Глава 8. Работа с пакетами данных APDU88
8.1. Класс APDU88
    8.1.1. Объект APDU89
    8.1.2. Размер буфера APDU89
8.2. Интерфейс IS0781689
8.3. Работа с пакетами APDU в аплетах90
    8.3.1. Получение ссылки на буфер APDU90
    8.3.2. Проверка заголовка команды APDU90
    8.3.3. Извлечение данных из команды APDU91
       8.3.3.1. Получение больших блоков данных92
    8.3.4. Обработка команды APDU и генерация ответных данных94
    8.3.5. Отправка ответных данных APDU94
       8.3.5.1. Отправка данных из других местоположений96
       8.3.5.2. Отправка больших ответных блоков данных97
    8.3.6. Возвращение слова состояния98
8.4. Способы обработки команд APDU, зависящие от протокола99
    8.4.1. Метод getProtocol100
    8.4.2. Метод getlnBlockSize100
    8.4.3. Метод getOutBlockSize101
    8.4.4. Метод setOutgoingNoChaining102
    8.4.5. Метод getNAD102
    8.4.6. Метод wait Extension102
8.5. Выводы10З
 
Глава 9. Брандмауэр аплетов и совместное использование объектов105
9.1. Брандмауэр аплетов105
    9.1.1. Контексты106
    9.1.2. Владение объектами107
    9.1.3. Доступ к объектам107
    9.1.4. Контексты и доступ к временным массивам108
    9.1.5. Статические поля и методы108
9.2. Использование объектов разными контекстами109
    9.2.1. Переключение контекстов109
    9.2.2. Привилегии JCRE110
    9.2.3. Объекты — точки входа в JCRE110
    9.2.4. Глобальные массивы111
    9.2.5. Интерфейсный механизм совместного использования объектов112
       9.2.5.1. Интерфейс совместного использования112
       9.2.5.2. Объект интерфейса совместного использования112
       9.2.5.3. Принципы действия интерфейсного механизма совместного
          использования объектов113
       9.2.5.4. Пример совместного использования объекта
          разными аплетами114
       9.2.5.5. Создание объекта интерфейса совместного использования115
       9.2.5.6. Запрос объекта интерфейса совместного использования116
       9.2.5.7. Применение объекта интерфейса совместного
          использования117
       9.2.5.8. Переключения контекстов в процессе совместного
          использования объектов119
       9.2.5.9. Типы параметров и результатов методов интерфейса
          совместного использования120
       9.2.5.10. Аутентификация клиентского аплета121
       9.2.5.11. Метод getPreviousContextAID124
       9.2.5.12. Выводы125
 
Глава 10. Программирование криптографических функций127
10.1. Введение в криптографию127
    10.1.1. Шифрование и расшифровка128
    10.1.2. Дайджест сообщения130
    10.1.3. Цифровая подпись131
    10.1.4. Случайные данные132
10.2. Использование криптографии в приложениях для смарт-карт133
    10.2.1. Обеспечение безопасности приложений133
    10.2.2. Использование смарт-карт в качестве защищённого средства
       идентификации134
    10.2.3. Выводы134
10.3. Криптографические API, поддерживаемые платформой Java Card135
    10.3.1. Принципы разработки135
    10.3.2. Архитектура135
    10.3.3. Структура пакетов137
10.4. Примеры программ138
    10.4.1. Вычисление дайджеста сообщения138
    10.4.2. Создание криптографического ключа140
    10.4.3. Создание и проверка цифровой подписи142
    10.4.4. Шифрование и расшифровка данных144
    10.4.5. Генерация случайных данных145
 
Глава 11. Безопасность платформы Java Card147
11.1. Средства безопасности платформы Java Card147
    11.1.1. Средства безопасности языка Java147
    11.1.2. Дополнительные средства обеспечения безопасности платформы
       Java Card148
11.2. Механизмы безопасности платформы Java Card149
    11.2.1. Проверка в процессе компиляции149
    11.2.2. Проверка файлов классов и проверка соответствия
       подмножеству языка150
    11.2.3. Проверка файлов САР и экспортных файлов151
    11.2.4. Проверка при инсталляции153
    11.2.5. Криптографическая защита цепочки создания аплетов155
    11.2.6. Обеспечение безопасности во время выполнения155
    11.2.7. Криптографическая поддержка платформы Java Card157
11.3. Защита аплетов157
 
ЧАСТЬ 3. РУКОВОДСТВО ДЛЯ ПРОГРАММИСТА И ПРИЁМЫ
ПРОГРАММИРОВАНИЯ159
 
Глава 12. Пошаговое руководство по разработке аплета160
12.1. Проектирование аплета160
    12.1.1. Определение функций аплета160
    12.1.2. Определение AID для аплета161
    12.1.3. Определение структуры классов и функций методов аплета161
    12.1.4. Определение интерфейса между аплетом и его хост-приложением162
       12.1.4.1. SELECT APDU163
       12.1.4.2. VERIFY APDU164
       12.1.4.3. CREDIT APDU164
       12.1.4.4. DEBIT APDU164
       12.1.4.5. GET BALANCE APDU165
12.2. Разработка кода аплета165
    12.2.1. Пример кода аплета «электронный кошелёк»165
    12.2.2. Реализация контроля за ошибками в аплетах170
12.3. Что дальше?171
 
Глава 13. Оптимизация аплетов172
13.1. Общая оптимизация дизайна аплета172
13.2. Быстродействие аплета173
13.3. Вызов методов173
13.4. Создание объектов в аплетах173
13.5. Повторное использование объектов174
13.6. Устранение избыточного кода175
13.7. Доступ к массивам176
13.8. Сравнение операторов switch и if-else177
13.9. Арифметические операторы179
13.10. Оптимизация переменных в аплетах179
 
Глава 14. Работа с типом данных int181
14.1. 32-разрядные арифметические операции181
14.2. Размеры и индексы массива191
14.3. Хранение и вычисление данных типа int191
14.4. Выводы195
 
ЧАСТЬ 4. ПРИЛОЖЕНИЯ197
 
Приложение А. Подмножество языка Java Card198
Приложение В. Интерфейс прикладного программирования Java Card 2.1205
 
Глоссарий338
 
Библиография341

Книги на ту же тему

  1. Spring 4 для профессионалов. — 4-е изд., Шефер К., Хо К., Харроп Р., 2015
  2. Java сервлеты и JSP: сборник рецептов, Перри Б. У., 2005
  3. Средства визуального проектирования на Java, Чекмарев А., 1998
  4. Электронный магазин на Java и XML (+CD-ROM), Брогден Б., Минник К., 2002
  5. Разработка программных проектов: на основе Rational Unified Process (RUP), Полис Г., Огастин Л., Лоу К., Мадхар Д., 2009

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru