В настоящее время я изучаю PKCS # 11, и есть определенный сценарий, с которым я не знаю, как справиться.
Это сценарий:
- Клиент, который хотел бы получить сертификаты у поставщика, вводит свои данные,
- Клиент приходит к поставщику услуг, гдеон может приобрести заказанную смарт-карту с сертификатами (квалифицированными и, например, коммерческими), написанными на ней,
- С смарт-картой должно произойти две вещи: провайдер должен сгенерировать пару ключей для обоих сертификатов, а затем написать сертификатна карточке (для которой требуется PIN-код пользователя)
Смарт-карты, насколько мне известно, имеют два типа пользователей: обычный пользователь (PIN-код пользователя) и SO (SO PIN-код).
Так в чем проблема?Когда провайдер использует ПИН-код пользователя для генерации ключей и написания сертификатов, мы можем программно изменить его с помощью операции взаимодействия SetPin или позволить клиенту изменить его позже дома, с помощью соответствующего программного обеспечения.Проблема возникает, когда клиент захочет получить новые сертификаты для своей смарт-карты, и на этом этапе поставщик не знает ПИН-код пользователя для карты (т. Е. Он не может использовать какие-либо криптографические механизмы на карте).Если клиент предоставит пароль для лица, предоставляющего информацию, он сможет заставить клиента подписать несколько случайных документов своими сертификатами вместо использования ПИН-кода для правильной причины (используя механизмы PKCS # 11 для написания нового сертификата)
Итак, мой вопрос:
Есть ли какой-нибудь способ, которым мы можем иметь второй ПИН-код пользователя на карте (отдельно для провайдера и клиента) для определенных токенов?Можем ли мы сделать некоторые механизмы PKCS # 11 доступными только для конкретного пользователя (например, создать пару ключей только для провайдера и подписать документы сертификатами только для клиента)?
Какой будет стандартизированный сценарий для работы с этим видомпроблемы?Буду рад услышать ваше мнение.