Аутентификация клиентского приложения 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