CCID (протокол)
CCID (англ. chip card interface device) — протокол USB, который позволяет подключать смарт-карты к компьютеру через картридер с использованием стандартного USB-интерфейса, без необходимости предоставления каждым производителем смарт-карт собственного ридера или протокола[1]. Это позволяет использовать смарт-карты в качестве токенов безопасности для аутентификации и шифрования данных, например, в технологиях, используемых в BitLocker. CCID-устройства могут иметь различные формы. Минимальный размер CCID реализован как стандартный USB-донгл, который может содержать внутри SIM-карту или карту Secure Digital. Другой распространённый вариант — USB-клавиатура со встроенным ридером смарт-карт, совмещающая функции стандартной USB-клавиатуры и слот для смарт-карты. Однако, не все CCID-совместимые устройства принимают сменные смарт-карты: например, некоторые аппаратные устройства аутентификации YubiKey поддерживают CCID и выполняют роли как ридера, так и самой смарт-карты. Поскольку протокол ориентирован на работу со смарт-картами, он строится на взаимодействии согласно ISO/IEC 7816-4 и ISO/IEC 7816-3 как основных стандартов обмена данными со смарт-картой или с самим устройством.
Аппаратная реализация
Согласно спецификации CCID, принятой рабочей группой по USB-стандартам, обмен информацией между CCID и хост-компьютером осуществляется через USB посредством сообщений CCID, состоящих из 10-байтового заголовка и следующих за ним данных, специфичных для сообщения[2]. Стандарт определяет 14 команд, которые хост-компьютер может использовать для передачи данных, статуса и управляющей информации в сообщениях. Каждая команда требует как минимум одного ответного сообщения от CCID[3].
Программные драйверы
В поддерживаемых драйверах программ CCID с Windows 2000 реализована встроенная поддержка протокола Microsoft[4]. Apple внедрила базовую поддержку CCID, начиная с Mac OS X, причём реализация развивалась параллельно с рекомендациями Common Access Card и Personal Identity Verification, установленными правительством США[5][6]. Нативная поддержка CCID на устройствах iOS появилась с версии 16.0, а на iPadOS — с версии 16.1[7][8]. На Linux и других Unix-системах устройства CCID и CT-API, как правило, обслуживаются драйверами из пользовательского пространства, не требуя специальных адаптаций на уровне ядра.
Разработчики
- Advanced Card Systems;
- ActivIdentity;
- Baltech;
- Bit4id;
- BLUTRONICS;
- Elyctis;
- FEITIAN Technologies;
- Gemalto;
- Giesecke & Devrient;
- HID Global;
- JaCarta;
- rf IDEAS;
- SafeNet;
- SecuTech Solutions;
- SpringCard;
- Verisign;
- Yubico;
- Reiner Kartenlesegeräte;
- DUALi.