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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010

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

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

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

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

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

...