Аутентификация клиентского приложения CAC в Python

Я строю приложение Python для извлечения данных с веб-сайта. Приложение должно пройти аутентификацию (HTTPS/SSL) с помощью карты CAC и PIN-кода, чтобы отправлять запросы.

Правильно ли я полагаю, что вы не можете получить закрытый ключ с карты CAC, и поэтому я застрял с использованием обертки PKCS #11, такой как PyKCS?

Любые советы или ресурсы для этого?

3 ответа

Решение

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

См. Раздел Требуется помощь при использовании M2Crypto.Engine для доступа к USB- токену. Пример использования M2Crypto объясняет, как использовать смарт-карту через PKCS#11 для доступа к веб-сайту в python.

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

Я бы попытался выяснить, является ли сертификат ECA подходящей заменой. Например, есть сайты, которые принимают сертификаты CAC и ECA. Для получения дополнительной информации: http://iase.disa.mil/pki/eca/certificate.html

Другие вопросы по тегам