Cryptographic Service Provider (CSP) — це незалежний модуль, що дозволяє здійснювати криптографічні операції в операційних системах Microsoft Windows, управління яким відбувається за допомогою функцій Microsoft CryptoAPI[1]. Модуль реалізує функції розшифрування і зашифрування які потім прикладна програма може використати для створення системи аутентифікації, захищеної електронної пошти чи чогось подібного. Простими словами криптопровайдер виступає посередником між операційною системою та виконавцем криптографічних опрецій(програма чи апаратний комплекс).

Об'єкти криптопровайдера ред.

Одним з основних об'єктів є ключовий контейнер. Контейнер має своє ім'я, створюється (або запитується, якщо вже був створений) функцією CryptAcquireContext(...). У контейнері може існувати не більше однієї пари ключів підпису, однієї пари ключів обміну і одного симетричного ключа. Якщо підтримується декілька алгоритмів симетричного шифрування, то симетричних ключів може бути кілька, по одному ключу кожного алгоритму.

Пари ключів і симетричні ключі можуть знаходитися тільки в контейнері. Тільки відкритий ключ пари може перебувати поза контейнером.

Закриті (private) ключі пар ключів експортуються тільки в зашифрованому вигляді. Деякі криптопровайдери принципово не дозволяють експортувати закриті ключі, навіть у зашифрованому вигляді. Симетричні ключі при експорті також обов'язково шифруються на відкритому ключі одержувача або ключі узгодження. Для обчислення хеш-функцій створюються об'єкти хешування. Для створення об'єктів хешування створювати контейнер не потрібно.

Криптопровайдери Microsoft ред.

У всі операційні системи Microsoft, починаючи з Windows 2000, вбудований криптопровайдер Microsoft Base Cryptographic Provider, який володіє набором основних криптографічних функцій. У Microsoft Base Cryptographic Provider довжина ключів шифрування не перевищує 40 біт. Так як до січня 2000 року в США існувала заборона на експорт програмного забезпечення для шифрування з використанням ключів довжиною більше 40 біт, то в Windows 98 і ранніх версіях Windows 2000 існувала підтримка тільки цього криптопровайдера. Microsoft Base Cryptographic Provider по суті є урізаним варіантом Microsoft Enhanced Cryptographic Provider. Але після скасування заборони на експорт стало безглуздо мати 2 криптопровайдера, тому програмісти Microsoft ввели ще одну назву — Microsoft Strong Cryptographic Provider, який нічим не відрізняється від Microsoft Enhanced Cryptographic Provider. Цей криптопровайдер є криптопровайдером за замовчуванням типу PROV_RSA_FULL Windows 2000, Windows XP, Windows 2003.

Всі криптопровайдери Microsoft можуть бути завантажені з сайту Microsoft.

Криптопровайдер Ім'я криптопровайдера Тип Коментар
Microsoft Base Cryptographic Provider MS_DEF_PROV PROV_RSA_FULL Має широкий набір основних криптографічних функцій. Довжина ключів шифрування не перевищує 40 біт.
Microsoft Strong Cryptographic Provider MS_STRONG_PROV PROV_RSA_FULL Відрізняється від Microsoft Base Cryptographic Provider підтримкою великої довжини ключів.
Microsoft Enhanced Cryptographic Provider MS_ENHANCED_PROV PROV_RSA_FULL Нічим не відрізняється від Microsoft Strong Cryptographic Provider. Є криптопровайдером за замовчуванням.
Microsoft AES Cryptographic Provider MS_ENH_RSA_AES_PROV PROV_RSA_AES = Microsoft Enhanced Cryptographic Provider з підтримкою AES
Microsoft DSS Cryptographic Provider MS_DEF_DSS_PROV PROV_DSS Хешування, підпис, перевірка підпису з підтримкою алгоритму DSS.
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider MS_DEF_DSS_DH_PROV PROV_DSS_DH Хешування, підпис DSS, генерація та обмін ключами Діффі-Геллмана. Підтримує генерацію ключів для протоколів SSL3 і TLS1.
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider MS_ENH_DSS_DH_PROV PROV_DSS_DH Те ж, що і Microsoft Base DSS and Diffie-Hellman Cryptographic Provider з підтримкою ключів великої довжини .
Microsoft DSS and Diffie-Hellman/Schannel Cryptographic Provider MS_DEF_DH_SCHANNEL_PROV PROV_DH_SCHANNEL Хешування, підпис DSS, генерація та обмін ключами Діффі-Геллмана. Підтримує генерацію ключів для протоколів SSL3 і TLS1.
Microsoft RSA/Schannel Cryptographic Provider MS_DEF_RSA_SCHANNEL_PROV PROV_RSA_SCHANNEL Хешування, підпис, перевірка підпису. Використовується для автентифікації протоколу SSL 3.0 and TLS 1.0.
Microsoft RSA Signature Cryptographic Provider MS_DEF_RSA_SIG_PROV PROV_RSA_SIG Мінімальна функціональність, необхідна для електронного підпису та перевірки ЕЦП.

Див. також ред.

Зноски ред.

  1. Cryptographic Service Providers (Windows). MSDN. Архів оригіналу за 20 червня 2018. Процитовано 20 червня 2018.

Посилання ред.