В чем разница между картами CAC и «универсальной» смарт-картой?

Мы пытаемся разрешить нашему многофункциональному клиентскому приложению C++ для Windows использовать карты DoD CAC.

Мы используем стороннюю библиотеку для защиты связи между клиентом и сервером с помощью SSL, и она распознает/обрабатывает стандартные смарт-карты, но только в том случае, если сертификат был создан собственным приложением в комплекте.

Почему? Разве сертификат не сертификат? Как они различаются?

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


person Seb Rose    schedule 10.08.2010    source источник
comment
Может быть, они говорят, что у них есть собственный ЦС? Другими словами, сертификаты могут быть доступны для чтения, но доверять им можно только в том случае, если на вашем компьютере доверен сертификат поставщика?   -  person Jay    schedule 06.09.2010


Ответы (2)


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

Корневые сертификаты Министерства обороны США общедоступны: http://dodpki.c3pki.chamb.disa.mil/rootca.html

Кроме того, если поведение, которое вы наблюдаете, заключается в том, что клиенту даже не предлагается выбрать сертификат клиента, или вы не наблюдаете, как сертификат клиента отправляется в трассировке пакета, это также может быть связано с тем, что ваш сервер не доверяет ДоД ЦА. Когда хорошо себя зарекомендовавший сервер запрашивает сертификат клиента, он также объявляет различающиеся имена (dn) центров сертификации, которым он доверяет. Затем клиент с хорошим поведением проверит этот список и сравнит эти имена с эмитентами сертификатов клиента, которые у него есть. Если совпадений нет, клиент отправит «нулевой» сертификат. Я знаю, что IIS/Apache и Firefox/IE/Chrome ведут себя таким образом. Opera, однако, похоже, не различает рекламируемых эмитентов и отправит любой сертификат, который есть у клиента.

person Ajith Antony    schedule 28.09.2010

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

И последнее, но не менее важное: если ваше программное обеспечение использует PKCS#11, то, пока у вас есть поставщик PKCS#11 для вашей карты (существует несколько модулей CAC, и «универсальные» карты поставщика обычно также поставляются с одним), вы не Не нужно заботиться о фактической карте, потому что PKCS#11 абстрагируется от деталей.

person Martin Paljak    schedule 11.08.2010
comment
Наш поставщик компонентов (который, по-видимому, использует PKCS # 11) сообщает нам, что они не поддерживают сертификаты, созданные «другими» поставщиками. Может быть, это отдельная тема... но нам все равно нужно понять, как это должно работать. Можете ли вы указать нам на любую хорошую документацию в Интернете? - person Seb Rose; 12.08.2010