Microsoft Base Cryptographic Provider
Microsoft Base Cryptographic Provider (также известный как Base CSP) — это криптографический поставщик услуг (CSP), входящий в состав операционных систем семейства Microsoft Windows, начиная с Windows 2000 и до Windows 10/11 включительно. Он предоставляет базовый набор криптографических функций, реализованных программно, без использования аппаратных модулей безопасности (HSM). Base CSP поддерживает симметричное шифрование, хеширование, генерацию случайных чисел, а также цифровые подписи и обмен ключами на основе алгоритмов RSA и Diffie-Hellman.
История
Base CSP был разработан компанией Microsoft (организация признана нежелательной в РФ) как часть архитектуры CryptoAPI (Cryptographic Application Programming Interface), представленной в Windows 2000. Его основная цель — обеспечить минимальный набор криптографических примитивов для приложений, не требующих сертификации FIPS 140 (федеральный стандарт США по криптографической защите). В отличие от Enhanced CSP (Microsoft Enhanced Cryptographic Provider), который был добавлен позже, Base CSP использует меньшие длины ключей по умолчанию, что делает его менее безопасным, но более совместимым с устаревшими системами и законодательством некоторых стран, ограничивающим экспорт криптографии.
В Windows XP и более поздних версиях Base CSP оставался доступным для обратной совместимости, но Microsoft рекомендовала использовать Enhanced CSP или более современные поставщики, такие как Microsoft Strong Cryptographic Provider или Microsoft Software Key Storage Provider (для Windows Vista и новее). В Windows 10 и 11 Base CSP по-прежнему присутствует, но его использование ограничено в пользу CNG (Cryptography Next Generation) API.
Функциональные возможности
Base CSP реализует следующие криптографические алгоритмы и операции:
- Симметричное шифрование: RC2 (40-битный ключ по умолчанию, до 128 бит), RC4 (40-битный ключ по умолчанию, до 128 бит), DES (56-битный ключ). Поддержка Triple DES (3DES) с 168-битным ключом добавлена в более поздних версиях (Windows XP SP2 и выше).
- Хеширование: MD2, MD5, SHA-1.
- Асимметричное шифрование и цифровые подписи: RSA (до 1024 бит для подписи и обмена ключами), Diffie-Hellman (до 1024 бит для обмена ключами).
- Генерация случайных чисел: через функцию CryptGenRandom.
- Управление ключами: создание, импорт, экспорт и удаление ключей в контейнерах ключей (key containers), хранящихся в реестре Windows или в файловой системе.
Ограничения
- Максимальная длина ключа RSA — 1024 бита (в Enhanced CSP — до 16384 бит).
- Алгоритмы RC2 и RC4 считаются устаревшими и небезопасными для современных стандартов.
- Отсутствие поддержки аппаратного ускорения (только программная реализация).
- Не сертифицирован по FIPS 140 (в отличие от Microsoft Enhanced RSA and AES Cryptographic Provider).
Архитектура и работа
Base CSP работает в рамках архитектуры CryptoAPI, которая включает три основных компонента:
- Приложение (например, Internet Explorer, Outlook, OpenSSL через обёртку).
- CryptoAPI — интерфейс программирования, предоставляющий функции для вызова CSP.
- CSP — динамическая библиотека (DLL), реализующая криптографические алгоритмы. Base CSP представлен файлом
rsaenh.dll(в ранних версиях —rsabase.dll).
Приложение вызывает CryptoAPI, которая через диспетчер CSP (Cryptographic Service Provider Manager) загружает нужный CSP и передаёт ему запросы. Base CSP хранит ключи в контейнерах, которые могут быть пользовательскими (для каждого пользователя) или машинными (для всех пользователей системы). Контейнеры по умолчанию располагаются в реестре по пути HKEY_CURRENT_USER\Software\Microsoft\Cryptography\Providers\ или HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Providers\.
Пример использования
Типичный сценарий: приложение (например, веб-браузер) использует Base CSP для создания цифровой подписи или расшифровки сессионного ключа. Для этого оно вызывает функцию CryptAcquireContext, указывая имя поставщика (например, MS_DEF_PROV — идентификатор Base CSP) и тип контейнера. Затем выполняются операции с ключами, и после завершения контекст освобождается.
Разновидности и версии
Base CSP имеет несколько вариантов, различающихся по поддерживаемым алгоритмам и длинам ключей:
- Microsoft Base Cryptographic Provider v1.0 — оригинальная версия, поставляемая с Windows 2000 и Windows XP. Поддерживает RC2/RC4 (40 бит по умолчанию), DES (56 бит), RSA (до 512 бит).
- Microsoft Base Cryptographic Provider v2.0 — улучшенная версия, появившаяся в Windows XP SP2. Добавлена поддержка Triple DES (168 бит), RSA (до 1024 бит), Diffie-Hellman (до 1024 бит).
- Microsoft Base DSS and Diffie-Hellman Cryptographic Provider — отдельный поставщик для алгоритмов DSA и Diffie-Hellman, также входящий в состав Windows.
Сравнение с другими CSP
| Параметр | Base CSP | Enhanced CSP | Strong CSP |
|---|---|---|---|
| Максимальная длина ключа RSA | 1024 бит | 16384 бит | 16384 бит |
| Поддержка AES | Нет | Да (с Windows Vista) | Да |
| FIPS 140 сертификация | Нет | Да (в версии Enhanced RSA and AES CSP) | Нет |
| Алгоритмы по умолчанию | RC2/RC4, DES | AES, 3DES, RSA | AES, 3DES, RSA |
| Рекомендуемый для | Устаревшие системы | Современные приложения | Специальные случаи |
Применение
Base CSP исторически использовался в следующих сценариях:
- Электронная почта: шифрование и подпись сообщений в Microsoft Outlook и Outlook Express с использованием S/MIME.
- Веб-браузеры: поддержка протокола HTTPS через SSL/TLS в Internet Explorer (до версии 11).
- Файловые системы: шифрование файлов через EFS (Encrypting File System) в Windows 2000/XP.
- Цифровые сертификаты: создание и проверка сертификатов X.509 в приложениях, использующих CryptoAPI.
- COM-объекты и ActiveX: подпись компонентов для обеспечения целостности.
В современных версиях Windows (начиная с Windows 7) Base CSP вытесняется CNG-поставщиками, такими как Microsoft Software Key Storage Provider, которые поддерживают более современные алгоритмы (AES, ECDSA, ECDH) и аппаратное ускорение.
Критика и ограничения
Base CSP подвергался критике за использование устаревших и слабых алгоритмов (RC2, RC4, DES), которые могут быть взломаны современными методами (например, атаки на RC4, такие как атака Флурера-Мантина-Шамира). Также отмечалось, что длины ключей по умолчанию (40 бит) были намеренно ослаблены для соответствия экспортным ограничениям США 1990-х годов, что делало шифрование уязвимым для перебора. В результате Microsoft рекомендовала переходить на Enhanced CSP или Strong CSP для новых проектов.
Интересные факты
- Идентификатор Base CSP в CryptoAPI —
PROV_RSA_FULL(1), а его имя —Microsoft Base Cryptographic Provider v1.0. - В Windows 2000 Base CSP был единственным поставщиком, доступным по умолчанию; Enhanced CSP требовал установки отдельного пакета обновления.
- Несмотря на устаревание, Base CSP до сих пор используется в некоторых корпоративных средах для совместимости с legacy-приложениями.
Источники
- Microsoft Developer Network (MSDN): «Base Cryptographic Provider» — документация по CryptoAPI.
- Windows SDK: описание поставщиков криптографических услуг.
- RFC 2459: Internet X.509 Public Key Infrastructure Certificate and CRL Profile.
- NIST SP 800-131A: рекомендации по переходу на более сильные алгоритмы.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →