| ||||
| ||||
Скажите как в КриптоПро при создании (средствами CryptoAPI) сертификата или запроса на сертификат укзать алгоритм его открытого ключа? То есть как указать, будет ли данный сетрификат использоваться для подписывания/проверки ЭЦП или для кодирования/декодирования сообщений? | ||||
Ответы: | ||||
| ||||
Это совсем разные вещи. 1. Алгоритм ключа - может быть ГОСТ Р 34.10-94, ГОСТ Р 34.10-2001, RSA,... 2. Назначение сертификата (поле "Улучшенный ключ", "Extended Key Usage" - EKU) - список идентификаторов (OID) областей применения сертификата, которые приложение, использующее сертификат, интерпретирует по принципу - можно или нельзя использовать для той или иной цели этот сертификат. Примеры - "Проверка подлинности клиента", "Защищённая электронная почта". 3. Возможность использования ключа для ЭЦП и шифрования. Как правило, ЭЦП допускается делать на ключевой паре обмена (AT_KEYEXCHANGE), основное назначение которой - шифрование сеансового ключа при шифровании данных. | ||||
| ||||
Спасибо. Понятно. Мой вопрос - следствие имеющегося опыта работы с другими криптосистемами. Там я должен был иметь минимум по два сертификата для каждого участника обмена. Один сертификат имел алгоритм открытого ключа Diffie-Hellman и использовался только для криптования с помощью любого блочного или поточного алгоритма Втрой сертификат содержал открытый ключ ЭЦП для конкретного алгоритма цифровой подписи. А у Вас, насколько я теперь понимаю, принцим несколько иной. Можно иметь один сертификат с максимумом расширений и использовать его в обоих случаях. | ||||
| ||||
Можно, если приложение разрешает использовать ключевую пару обмена для ЭЦП. Обычно это так, но, например, программы подписывания кода (signcode.exe и др.) не позволяют делать это. Кстати, указанное свойство не зависит от CSP. | ||||