
Лекция 5. ПАЗИ. ASE смарт-карты .pptx
- Количество слайдов: 12
LOGO Cмарт-карты ASE Лекция № 5
Смарт-карты ASE v Смарт-карты ASE – продукты израильской фирмы Athena Smartcard Solutions Ltd. v Представлены представительством фирмы. Aladdin в России. v Характеристики v 8 -битный микроконтроллер v Объем памяти EEPROM – до 8 КБ v Реализация алгоритмов DES, Tripl DES v Подпись по RSA
Высокоуровневая архитектура смарт-карт ASE Для поддержки смарт-карт, состоящих из множества приложений, ASESoft включает несколько функций, которые позволяют разработчикам создавать и получать доступ к двум уровням микропроцессорных карт: Уровень карты Этот уровень является самым верхним уровнем карты, то есть, по сути, является корневым каталогом. На этом уровне обычно хранятся данные и ключи, которые могут быть общими для всех приложений смарт-карты. Файлы уровня карты часто содержат такие данные, как имя владельца карты и идентификатор карты (ID number). Уровень приложений В небольшом мире смарт-карт, термин приложение обычно используется в смысле каталога, поскольку приложение рабочей станции обычно работает только с одним определенным каталогом. Уровень приложений может содержать несколько приложений (каталогов). Каждое приложение обычно содержит свои собственные файлы и ключи. Каждое приложение полностью независимо в терминах хранимых в нем данных, правил доступа и ключей. К примеру, карта студента университета может содержать одно приложение для библиотеки, одно для медицинского пункта университета, еще одно для бухгалтерии ВУЗа и так далее. Каждое приложение такой карты содержит свои собственные данные, которые не могут быть доступны другим приложениям.
Персональный идентификационный номер API высокого уровня содержит различные функции, позволяющие создавать и манипулировать четырьмя типами ключей. 1. Персональный идентификационный номер (PIN) PIN-код, известный также как Удостоверитель держателя карты (CHV — Card Holder Verification), идентифицирует владельца карты при помощи уникального секретного кода. Поскольку PIN-код является частью общей информации о пользователе карты, он находится на уровне карты (в корневом каталоге). Смарт-карты, поддерживаемые высокоуровневыми функциями API должны содержать PIN-код, проинициализированный на уровне карты. Так как PIN-код относится к общим данным смарт-карты, находящимся на уровне карты, файлы любого приложения могут быть защищены при помощи только лишь одного PIN-кода.
Главный ключ 2. Главный ключ Главные ключи должны обязательно присутствовать как на уровне карты, так и на уровнях всех приложений (каталогов), находящихся на ИК. Эти ключи должны быть различными для разных уровней и различных приложений. Главный ключ — самый мощный ключ на уровне. Каждый уровень должен иметь только один главный ключ, и смарт-карты, поддерживаемые высокоуровневыми функциями API, должны содержать Главный ключ, проинициализированный на уровне карты. При помощи Главного ключа карты происходит создание приложений на уровне карты. Этот Главный ключ карты также может использоваться в качестве ключа, необходимого для предъявления при попытке доступа к файлам (т. е. при авторизации, или разграничении доступа). Главные ключи уровня приложений используются для создания различий между приложениями, между приложениями и уровнем карты, а также для создания файлов в каталогах.
Ключи доступа. Вычислительные ключи 3. Ключи доступа используются для разграничения доступа к файлам приложений по чтению/записи. Эти ключи являются необязательными, и могут существовать только на уровне приложений. Каждое приложение может иметь более одного ключа доступа, но не более максимального их количества, определяемого возможностями самой ИК. 4. Вычислительные ключи используются для внутренней аутентификации (проверки ИК приложением компьютера) и для шифрования данных. Смарт-карты, поддерживаемые высокоуровневыми функциями API, должны содержать один вычислительный ключ, проинициализированный на уровне карты. На уровне приложений, каждый каталог может содержать только один вычислительный ключ.
Распределение ключей по уровням карты Таблица 1 показывает типы ключей, их возможное распределение по уровням карты и число ключей на каждом из уровней. Таблица 1 Типы и количество ключей на карте ASE Уровень карты Уровень приложений Ключ Главный PIN Доступа Вычислительный Количество ключей Записаны на карту при изготовлении 1 – обязательно Не применяется Да Да 1 – обязательно для каждого приложения Не применяется Несколько – возможно для каждого приложения Да 1 – обязательно
Уровень карты и приложений
ASEHLCreate. App Описание Создает новое приложение на текущем уровне карты. Синтаксис ASERESULT ASEAPI ASEHLCreate. App( HASECARD WORD LPBYTE WORD w. Num. Of. Key. Changes WORD h. Ase. Card w. ID w. Bytes. Allocated lp. Card. Main. Key lp. App. Calc. Key w. Number. Of. Keys w. Num. Of. Files);
ASEHLCreate. App. Параметры h. Ase. Card — содержит хэндл смарт-карты. w. ID — указывает идентификатор создаваемого приложения. w. Bytes. Allocated — содержит количество байт, которое необходимо отвести создаваемому приложению. lp. Card. Main. Key — указатель на главный ключ карты (обязательный параметр). lp. App. Main. Key — указатель на главный ключ приложения (обязательный параметр). lp. App. Calc. Key — указатель на расчетный ключ приложения. Если новое приложение не будет иметь расчетного ключа, это значение должно быть NULL. w. Number. Of. Keys — содержит число дополнительных ключей доступа, которые будут созданы на уровне нового приложения. Если новое приложение не будет иметь ключей доступа, это значение должно быть NULL. w. Number. Of. Key. Changes — содержит число, которое показывает, сколько максимально раз можно сменить ключи на уровне этого приложения. Это значение не должно превышать значение w. Max. Key. Changes в структуре CARDCAPS. Если значение w. Max. Key. Changes в структуре CARDCAPS составляет FFFF, то количество смены ключей неограниченно, и, следовательно, параметр w. Number. Of. Key. Changes должен иметь значение NULL. w. Num. Of. Files — указывает количество файлов, которые будут созданы в этом новом приложении.
ASEHLCreate. File Описание Создает новый файл на текущем уровне карты или приложения. Синтаксис ASERESULT ASEAPI ASEHLCreate. File( HASECARD h. Ase. Card LPBYTE lp. Main. Key LPFILEPROPERTIES lp. File. Properties); Параметры h. Ase. Card — содержит хэндл смарт-карты. lp. Card. Main. Key — указатель на соответствующий главный ключ. lp. File. Properties — указатель на структуру FILEPROPERTIES.
Структура FILEPROPERTIES Параметры создаваемых фалов описываются в виде специальной записи, содержащей несколько обязательных полей: File. Properties 1. w. ID = 0 x 01; // Идентификатор файла File. Properties 1. w. Bytes. Allocated = 32; // Размер файла File. Properties 1. w. Write. Conditions = AC_PIN_AND_MAIN_KEY; //Условия записи File. Properties 1. w. Write. Key. Number = 0; // Номер ключа доступа на запись File. Properties 1. w. Read. Conditions = AC_NONE; // Условия чтения File. Properties 1. w. Read. Key. Number = 0; // Номер ключа доступа на чтение Здесь: File. Properties 1. w. ID — идентификатор файла (уникальное в пределах приложения однобайтовое имя в шестнадцатеричном формате); File. Properties 1. w. Bytes. Allocated — количество байт, отведенное под файл (отводится один раз при создании фала и впоследствии не может быть изменено); File. Properties 1. w. Write. Conditions — права доступа на запись данных в файл в виде символьной константы (в данном случае перед попыткой записи в файл требуется предъявить PIN-код и Главный ключ карты); File. Properties 1. w. Write. Key. Number — номер ключа доступа (для случая указания требования предъявления ключа доступа — ACCESS_KEY); File. Properties 1. w. Read. Conditions — права доступа на чтение данных из файла в виде символьной константы (в данном случае для чтение из файла не требуется предъявления никакого ключа, то есть чтение свободно для всех); File. Properties 1. w. Read. Key. Number — номер ключа доступа (для случая указания требования предъявления ключа доступа — ACCESS_KEY).