Ваш «сертификатный парень» неверен.
У Microsoft есть две версии систем шифрования: Legacy CrypotAPI (просто CryptoAPI или CAPI) и криптография следующего поколения (CNG, CAPI2).
CrytpoAPI был изобретен в Windows 2000. Устаревший CryptoAPI морально устарел без поддержки E CC, SHA2: только RSA / устаревшие DSA (ключи длиной до 1 КБ), DES / 3DES, RCx, без встроенного AES. Ключи хранятся в унаследованном поставщике услуг шифрования (или CSP). Хотя в Windows Vista + был добавлен устаревший CSP с SHA2 и AES, чтобы помочь старым приложениям использовать их без особых изменений в коде.
CNG был впервые представлен еще в 2007 году в Windows Vista / Windows Server 2008 и действительно хороший материал: он довольно расширяемый, с собственной поддержкой криптографии NSA Suite B (ключи E CC asymmetri c, группы алгоритмов SHA2), изоляция ключей, унифицированный набор функций BCrypt и необходимость Больше. Большинство API только для CNG включают NCrypt
, BCrypt
, CNG
, NG
суффиксы / префиксы в своих именах, чтобы явно сказать, что это API CNG. В CNG ключи хранятся в перепроектированном CSP, называемом Key Storage Provider (KSP), чтобы отличать его guish от устаревшего CSP, поскольку они не совпадают (хотя существует односторонний мост для доступа к CSP из KSP, но не иначе).
Однако. NET изо всех сил пытался принять CNG и сделал его более или менее пригодным для использования только в. NET 4.7 (реализации существовали раньше, но с известными ограничениями) и 3-м сторонние приложения поддерживают CNG только тогда, когда они явно добавляют его поддержку, потому что CNG использует различные API и. NET Обновление Framework не делает приложение CNG-совместимым.
Это было немного теории о том, что такое Разница между CAPI и CAPI2.
И в вашей документации говорится, что для хранения закрытых ключей требуются сертификаты, использующие устаревший CSP. При создании в Windows устаревший CSP используется при использовании одного из следующих провайдеров:
Microsoft Base Cryptographic Provider v1.0
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider
Microsoft Base DSS Cryptographic Provider
Microsoft Base Smart Card Crypto Provider
Microsoft DH SChannel Cryptographic Provider
Microsoft Enhanced Cryptographic Provider v1.0
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider
Microsoft Enhanced RSA and AES Cryptographic Provider
Microsoft RSA SChannel Cryptographic Provider <- this is preferred for legacy CSPs
Microsoft Strong Cryptographic Provider
Вы можете указать любой из них при создании сертификата (пары ключей) в Windows. Например, при использовании New-SelfSignedCertificate
командлета PowerShell (по умолчанию используется CNG KSP) или инструмента certreq.exe для создания запроса на подпись внешним ЦС. Эта часть зависит от инструментов, которые вы используете для создания сертификатов / запросов на сертификаты.