stringtranslate.com

Microsoft КриптоAPI

Криптографический программный интерфейс приложений для платформы Microsoft Windows (также известный как CryptoAPI , Microsoft Cryptography API , MS-CAPI или просто CAPI ) — это программный интерфейс приложений , включенный в операционные системы Microsoft Windows , который предоставляет службы, позволяющие разработчикам защищать приложения на базе Windows с помощью криптографии . Это набор динамически подключаемых библиотек , который обеспечивает уровень абстракции , изолирующий программистов от кода, используемого для шифрования данных. Криптографический API был впервые представлен в Windows NT 4.0 [1] и улучшен в последующих версиях.

CryptoAPI поддерживает как криптографию с открытым ключом , так и симметричную криптографию , хотя постоянные симметричные ключи не поддерживаются. Он включает в себя функциональность для шифрования и дешифрования данных и для аутентификации с использованием цифровых сертификатов . Он также включает в себя криптографически безопасную функцию генератора псевдослучайных чисел CryptGenRandom .

CryptoAPI работает с несколькими CSP ( поставщиками криптографических услуг ), установленными на машине. CSP — это модули, которые выполняют фактическую работу по кодированию и декодированию данных, выполняя криптографические функции. Поставщики HSM могут поставлять CSP, работающий с их оборудованием.

Криптографический API: Следующее поколение

Windows Vista содержит обновление Crypto API, известное как Cryptography API: Next Generation ( CNG ). Он имеет улучшенную факторизацию API, позволяющую тем же функциям работать с использованием широкого спектра криптографических алгоритмов, и включает ряд новых алгоритмов, которые являются частью Suite B Агентства национальной безопасности (NSA) . [2] Он также является гибким, с поддержкой подключения пользовательских криптографических API к среде выполнения CNG. Однако поставщики хранилища ключей CNG по-прежнему не поддерживают симметричные ключи. [3] CNG работает как в пользовательском режиме , так и в режиме ядра , а также поддерживает все алгоритмы из CryptoAPI. Поставщик Microsoft, реализующий CNG, размещен в Bcrypt.dll.

CNG также поддерживает эллиптическое шифрование , которое, поскольку использует более короткие ключи для того же ожидаемого уровня безопасности , более эффективно, чем RSA. [4] API CNG интегрируется с подсистемой смарт-карт , включая модуль Base Smart Card Cryptographic Service Provider (Base CSP), который инкапсулирует API смарт-карт. Производителям смарт-карт просто нужно сделать свои устройства совместимыми с этим, а не предоставлять решение с нуля.

CNG также добавляет поддержку Dual_EC_DRBG [5] , генератора псевдослучайных чисел, определенного в NIST SP 800-90A , который может подвергнуть пользователя риску прослушивания со стороны Агентства национальной безопасности , поскольку он содержит клептографический бэкдор, если только разработчик не вспомнит о необходимости сгенерировать новые базовые точки с помощью другого криптографически безопасного генератора псевдослучайных чисел или истинного генератора случайных чисел , а затем опубликовать сгенерированное начальное число, чтобы удалить бэкдор АНБ. Он также очень медленный. [6] Он используется только при явном вызове.

CNG также заменяет PRNG по умолчанию на CTR_DRBG, используя AES в качестве блочного шифра, поскольку более ранний RNG, который определен в ныне замененном FIPS 186-2, основан либо на DES , либо на SHA-1 , оба из которых были взломаны. [7] CTR_DRBG — один из двух алгоритмов в NIST SP 800-90, одобренных Шнайером , другой — Hash_DRBG. [6]

Смотрите также

Ссылки

  1. ^ Заглянем под капот: взгляд программиста на Windows NT 4.0
  2. Suite B Архивировано 2009-02-07 на Wayback Machine
  3. ^ Хранение и извлечение ключей, Microsoft
  4. ^ Аргументы в пользу эллиптической кривой криптографии, АНБ
  5. ^ Шнайер, Брюс (17 декабря 2007 г.). «Dual_EC_DRBG добавлен в Windows Vista». Шнайер о безопасности . Получено 13 января 2010 г.
  6. ^ ab Schneier, Bruce (15 ноября 2007 г.). "Странная история Dual_EC_DRBG". Schneier о безопасности . Получено 12 января 2010 г.
  7. ^ "FIPS PUB 186-2" (PDF) . Федеральные стандарты обработки информации . Национальный институт стандартов и технологий . 27 января 2000 г. . Получено 13 января 2010 г. .

Внешние ссылки