ЧТО ТАКОЕ ATR, APDU ..? ПОЯСНЕНИЕ ТЕРМИНОЛОГИИ СМАРТ-КАРТ

Lord777

Professional
Messages
2,583
Reputation
15
Reaction score
1,266
Points
113
Смарт-карты изначально представляли собой пластиковые карты со встроенными в них модулями микросхем, с обычным рисунком золотых или серебряных контактов в стандартном положении. Эти контакты обеспечивают относительно простой двухсторонний последовательный интерфейс связи, через который ПК или другая система может разговаривать с картой, отправлять ей команды и получать ответы.

Когда контактная смарт-карта вставляется в считыватель смарт-карт, такой как популярные ACR38, Omnikey 3121 или Cloud 2700R, считыватель посылает на карту питание и сигнал сброса, и карта отвечает дюжиной или более байтов известных данных. как ответ на сброс (ATR). Обычно это фиксированная последовательность для любой конкретной марки и модели карты, и она предназначена для сообщения считывающему устройству / системе некоторой (ограниченной) информации о карте и ее возможностях, например максимальной скорости, с которой она может работать, и ее предпочтительном напряжении. и тактовая частота.

После получения ATR считыватель, драйверы считывателя и / или программное обеспечение хоста могут затем настроить различные параметры, прежде чем застрять в разговоре с картой (мы вернемся к этому чуть позже!)

При использовании технологии бесконтактных смарт-карт некоторые карты, например карты Java с двойным интерфейсом, работают аналогичным образом, даже если связь осуществляется по беспроводной сети. Бесконтактный считыватель смарт-карт подает питание на карту, когда она входит в РЧ-поле, и получает такое же или подобное ATR, после чего устанавливается двусторонняя связь со встроенным микропроцессором.

Однако другие бесконтактные карты, такие как MIFARE Ultralight или MIFARE Classic, менее интеллектуальны и не имеют встроенного микроконтроллера или надлежащего ATR, и в этом случае считыватель или драйвер считывателя будут эффективно создавать их, обычно в соответствии с Стандарт PC / SC, чтобы указать тип найденной карты. Бесконтактные считыватели, такие как ACR122, ACR1252 и Omnikey 5021 CL, работают одинаково, хотя иногда между ними есть тонкие различия, когда дело доходит до работы с картами MIFARE и / или переключения в разные режимы связи с разными типами карт.

При разговоре со смарт-картой на базе микропроцессора существует три основных режима связи, известных как T = 0, T = 1 и T = CL. Последний из них используется для бесконтактных смарт-карт, тогда как T = 0 и T = 1 - это два разных варианта, которые можно использовать для контактных смарт-карт. Некоторые смарт-карты поддерживают только один режим, в то время как другие поддерживают оба, хотя обычно у них будет предпочтительный режим, обозначенный их ATR. Из них T = 0 - это более простой протокол, в котором отдельные блоки данных, не превышающие 256 байт, отправляются туда и обратно, а приложение отвечает за сборку любых команд или ответов, длина которых превышает длину блока. При T = 1 за этой задачей отвечает драйвер нижнего уровня или сам считыватель смарт-карт, хотя на практике приложение все еще должно обрабатывать некоторые аспекты выборки ответов нескольких блоков.

Смарт-карты обычно работают с использованием набора команд, отправляемых из приложения на карту в блоке, известном как APDU (Application Protocol Data Unit), и на которые карта отвечает ответом APDU. Ответом может быть простое подтверждающее сообщение «ОК, готово» или некоторые данные, например, содержимое определенного файла на карте или зашифрованная версия некоторых данных с использованием секретного ключа.

Важно понимать, что разные карты реализуют разные команды, а также имеют разные возможности, например, какие алгоритмы шифрования они поддерживают, сколько данных они могут хранить, и есть ли у них на борту средства генерации ключей и случайных чисел.

Некоторые карты имеют фиксированную функцию с набором команд, указанным производителем, и не имеют возможности запускать настраиваемые процессы на самой карте, тогда как другие, такие как карты Java, полагаются на пользовательские приложения, разрабатываемые и устанавливаемые на карту, в которых Если команды, используемые для связи с приложением, разрабатываются разработчиком приложения.

Наконец, вы могли заметить, что термины PC / SC и CCID часто упоминаются в отношении считывателей смарт-карт. Стандарт PC / SC изначально создавался как кроссплатформенный метод для взаимодействия считывателей с программными приложениями и был полностью реализован Microsoft в Windows и частично реализован в Linux в PC / SC Lite. Это устраняет необходимость в программном приложении, чтобы точно знать, какая марка или модель устройства чтения смарт-карт подключена, за счет стандартизации методов определения доступных устройств чтения, обнаружения вставляемых или извлекаемых смарт-карт и последующего обмена данными с устройством. конкретная карта. Это хорошо работает, хотя на практике, особенно с бесконтактными картами, иногда требуется дополнительный код для особых случаев,

Самые последние USB-устройства чтения смарт-карт также соответствуют стандарту CCID, который определяет, как они обмениваются данными на низком уровне (т. Е. Фактические команды, отправляемые через USB). Это означает, что теоретически любой считыватель смарт-карт CCID может быть установлен в Windows без специального драйвера, поскольку драйвер Microsoft по умолчанию будет выбран автоматически, как и другие устройства класса USB (клавиатуры, мыши и карты флэш-памяти. .)

Если у вас есть какие-либо вопросы о технологии смарт-карт и о том, как карты и устройства чтения работают на разных платформах, позвоните нам или напишите нам по электронной почте и поговорите с одним из наших экспертов.
 
Top