Всякий раз, когда мне нужно было получить доступ к смарт-картам для использования в приложениях безопасности, это было либо через:
- Microsoft CryptoAPI
- a PKCS # 11 библиотека для карты.
Для доступа к карте с помощью Microsoft CryptoAPI требуются специальные поставщики криптографических услуг (CSP) для карты. CSP находится под слоем CryptoAPI.
Однако, если вы разрабатываете для Unix / Linux с использованием C / C ++, вам, возможно, захочется взглянуть на стандарт PKCS # 11 от RSA. Стандарт определяет API C, называемый Cryptoki (Cryptographic Token Interface), который дает общую абстракцию над всеми типами криптографических устройств. Почти все производители смарт-карт предоставляют для своих карт библиотеку PKCS # 11, которую можно программировать с помощью API Cryptoki.
Если вы хотите получить доступ к смарт-карте / считывателю на более низком уровне, вы можете использовать такие API, как PC / SC или CT-API.
Стандарт PC / SC по умолчанию для доступа к смарт-картам, реализованный в Windows, Linux и Mac OS X
CT-API обеспечивает только очень минимальную функциональность; не очень подходит для современных приложений.
Если вы заинтересованы в написании Java-апплетов, которые работают на смарт-картах, то вы, вероятно, захотите посмотреть http://java.sun.com/javacard/
Ресурсы, которые могут быть полезны
OpenSC - это набор библиотек и инструментов для смарт-карт. Он предназначен для работы с картами поддержки PKCS # 11. OpenCT предоставляет драйверы для кард-ридеров и токены, которые состоят как из карты, так и из ридера (т. Е. USB-токены и другие «полные» устройства).
http://www.linuxnet.com/ MUSCLE - движение за использование смарт-карт в среде linux
PKCS # 15 - Стандарт формата информации о криптографических токенах
Справочник по смарт-картам
A презентация по PKCS # 11 , представленная на конференции RSA в 2009 году.
PyKCS11 Оболочка Python вокруг PKCS # 11. Эти типы оболочек могут обеспечить более простой интерфейс более высокого уровня, чем работа непосредственно на уровне Cryptoki.
Альянс смарт-карт