YstokCard - API для смарт-карт (PS/CS)
YstokCard — переносимая библиотека на языке Коммон Лисп для работы со смарт-картами.
Включает иерархию классов
чип-карт (integrated chip cards, ICC) и
считывателей, или картридеров (card readers, interface devices, IFD),
а также функции для операций над ними.
Существуют два вида смарт-карт.
- Карты с памятью
- Карты для надёжного хранения небольшого объёма данных, например, о денежном счёте пользователя. В начале работы с ними требется преварительная проверка подлинности, например, верификации ПИН-кода.
- Карты с микропроцессором
- Действительно "умные" карты, способные принимать решения о хранящейся на них информации.
Карты имеют стандртные размеры, удобны в обращении и не привязаны к конкретному устройству считывания или терминалу. Благодаря таким качествам карты широко применяются в системах контроля доступа и для электронной идентификации людей, животных, товаров и т.п.
Библиотека YstokCard полезна для разработки всех типов приложений. Она базируется на следующих программных компонентах:
- Спецификация PS/SC
- http://www.pcscworkgroup.com/
- Высокоуровневый программный интерфейс, позволяющий абстрагироваться от технически особенностей разных моделей карт и считывателей.
- Synchronous API for HID OmniKey readers
- http://www.hidglobal.com/drivers/14980
- Программный интерфейс фирмы HID Global для доступа к картам с памятью.
PC/SC
— это аббревиатура от "Personal Computer/Smart Card".
Этот отраслевой стандарт впервые был реализован фирмой
Microsoft в ОС Windows 2000. Общедоступная реализация
PC/SC Lite доступна также для разных версий Линукс и Mac OS X.
Основные возможности
- Иерархия классов для карт и считывателей.
- Соглашения и макросы для определения новых типов карт и устройств.
- Анализ ATR (Answer-To-Request).
- Вызовы менеджера ресурсов смарт-карт (Smart Card Resource Manager):
winscard.dll под Windows, libpcsclite.so под Линукс и т.п.
- Вспомогательные функции, например: run-length-coding (RLC).
Аппаратура
Библиотека YstokCard поддерживает разные типы карт, включая
- ISO/IEC 7816 (контактные),
- ISO/IEC 14443 (бесконтактные или радиочастотные).
На практике модуль YstokCard тестировался при такой конфигурации:
- Omnikey 5321
- Устройство чтения и записи контактных и бесконтактных (RFID 13,56 Mhz) карт, подсоединяемый через USB-порт.
-
- Mifare
Classic/Ultralight
- Бесконтактные карты памяти с объёмом 1КБ, 4КБ и 256 байт фирмы
NXP Semiconductors (отделилась от Сименс).
- ID-000
- Visa/MasterCard/Europay (тестировались неполно).
Зависимости
YstokCard требует
Ystok-FFC и
Ystok-Library.
Платформы
Модуль YstokCard тестировался на следующих реализациях Коммон Лисп:
Загрузка и установка
Модуль YstokCard доступен в виде одного из двух пакетов:
Дистрибутивы содержат файлы определения систем:
- ycard.asd для ASDlite/ASDF,
- defsys.lisp для the LispWorks.
Изменения и дополнения
См. файл change.log (на английском).
Тесты и примеры
Примеры работы с YstokCard приведены здесь.
Дистрибутив включает следующие файлы:
- test.lisp
- Простейшие тесты на базе модуля
ACL-Compat lite.
- run-monitor.lisp
- Запуск и остановка мониторинга устройств-считывателей.
См. также