тот факт, что OpenSC не совместим со всеми смарт-картами, наводит меня на мысль, что он использует проприетарные команды
Нет, не совсем так, скорее наоборот. В ISO 7816-4 перечислены многие команды для смарт-карт на основе файлов или записей. Существует несколько карт, которые полностью реализуют все команды, написанные в ISO 7816-4. Кроме того, даже если бы они это сделали, в стандарте есть много пробелов, таких как нечеткое описание условий ошибки, множество вариантов даже в отношении того, что находится в «корне» файловой системы, проприетарные параметры, проприетарные команды, отсутствие четкого безопасного обмен сообщениями и т. д. и т. д. и т. п..
В этом смысле это ужасный стандарт; вы должны рассматривать это как неудачную попытку индустрии производителей карт с файловой системой создать что-то, чего они все могли бы придерживаться.
Кроме того, поддержка 7816-4 не означает, что поддерживается какой-либо конкретный вариант использования. Там нет описания того, как вы получаете подпись. Существует по крайней мере PKCS#15 (теперь также отраженный как стандарт ISO), который указывает, где можно найти файлы и ключи. Однако, если вы создаете подпись, вы также должны знать, какой тип подписи создается и какую команду следует использовать для этого.
Другими словами, обычно «промежуточное программное обеспечение», такое как OpenSC, всегда должно делать что-то для поддержки определенных карт. Тот факт, что одна карта не поддерживается, никоим образом не говорит о том, что OpenSC «неправильный», это просто означает, что поддержка карты — если она является действительно картой с файловой системой или программируемой картой — не поддерживалась. еще проверено/внедрено.
Обратите внимание, что PC/SC — это просто стандартизированный способ работы со смарт-картами в операционной системе (начиная с ОС Windows, из которой она возникла). Эти команды просто должны соответствовать стандарту ISO 7816-4, но ему совершенно все равно, какие команды отправляются и в каком порядке. Не существует смарт-карт, совместимых с ПК/SC, есть только совместимые считыватели (или, поскольку они не могут просто читать, интерфейсные устройства для смарт-карт или IFD) для смарт-карт, совместимых со стандартом ISO 7816-4. карты.
Некоторые аппаратные токены также могут быть совместимы с ПК/SC просто потому, что они эмулируют комбинацию считывателя и чипа или потому, что внутри они представляют собой считыватель и чип (более дешевые/медленные). Другие работают на более высоком уровне и используют PKCS#11, который напрямую определяет интерфейс для криптографических токенов и, возможно, и объективно лучше определен, чем ISO 7816-4 или -15 вместе взятые.
person
Maarten Bodewes
schedule
18.08.2019