2016-10-31 5 views
1

Я работаю над исследовательской историей, включающей аутентификацию через смарт-карту через Интернет. Нам удалось настроить среду, которая требует ввода PIN-кода Smart Card во время процесса аутентификации, но есть некоторые разногласия относительно того, включает ли получаемый HttpClientCertificate любую информацию, представляющую подпись (то есть некоторые произвольные данные, зашифрованные с помощью PIN-кода/закрытого ключа на Интеллектуальная карточка).Возвращает ли HttpClientCertificate какие-либо «подписанные» данные?

У кого-нибудь есть опыт работы с такими подписями? У меня возникли проблемы с поиском примеров, описывающих любую аутентификацию на смарт-карте/ПИН-аутентификацию через Интернет, а затем запись данных из HttpClientCertificate, которая проверила бы подпись.

+0

Нет специального опыта работы с http-сертификатами, но у любого сертификата есть подпись, охватывающая открытый ключ [hash of the] (здесь: от карты) и подписанный либо с соответствующим закрытым ключом (самоподписанным сертификатом), либо более вероятно, с закрытым ключом от ЦС, который проверял личность владельца карты. – guidot

+0

Спасибо - я думаю, ваш комментарий отвечает на мой вопрос - у меня создалось впечатление, что свойство Certificate в этом классе представляло то, что вы описали. Мы все еще ждем, когда наш администратор сервера настроит тестовую среду для подтверждения. – jwiscarson

ответ

1

HttpClientCertificate, как следует из названия, содержит сертификат (обычно после X.509). Таким образом, он не содержит «произвольные» данные, зашифрованные с помощью PIN-кода/закрытого ключа на смарт-карте (я полагаю, вы на самом деле пытаетесь ссылаться на данные аутентификации сеанса).

Сертификат состоит только из статических данных, который является

  • открытый ключ, который был выдан сертификат на,
  • некоторые метаданные (например, идентифицирующую информацию для пары ключей, параметры Public- ключевая криптосистема, периоды действия, ограничения использования и т. д.) и
  • подпись по этим статическим данным, которая либо выдается органом сертификации (в случае, если орган сертификации выдал сертификат), либо создан с закрытым ключом, который соответствует к открытому ключу в сертификате (в случае самоподписанного сертификата cate/CA root, хотя это не должно иметь место для клиентских сертификатов TLS).

Так HttpClientCertificate не содержит закрытого ключа, связанного с сертификатом, и никаких динамических данных, подписанных закрытым ключом, для аутентификации сеанса TLS.

+0

Спасибо за информацию - нам были даны некоторые довольно неопределенные требования к аутентификации на основе сертификатов, поэтому формулировка в моем вопросе была основана на требованиях, которые мы давали в то время. Мы используем смарт-карты с сертификатами на основе PIN-кода и сертификатом цифровой подписи. С вашей точки зрения, есть ли какое-либо значимое различие между этими двумя? Нам удалось получить аутентификацию на основе PIN-кода, и клиент говорит нам, что цифровая подпись предпочтительна по причинам, которые они не могут определить. – jwiscarson