Microsoft CryptoAPI - Microsoft CryptoAPI

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

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

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

API криптографии: новое поколение

Виндоус виста содержит обновление Crypto API, известное как API криптографии: новое поколение (СПГ). Он имеет улучшенный факторинг API, позволяющий тем же функциям работать с использованием широкого спектра криптографических алгоритмов, и включает в себя ряд более новых алгоритмов, которые являются частью Национальное Агенство Безопасности (АНБ) Люкс B.[2] Он также является гибким, с поддержкой подключения пользовательских криптографических API-интерфейсов к среде выполнения CNG. Однако поставщики хранилища ключей CNG по-прежнему не поддерживают симметричные ключи.[3] КПГ работает в обоих пользователь и режим ядра, а также поддерживает все алгоритмы из CryptoAPI. Поставщик Microsoft, реализующий CNG, находится в Bcrypt.dll.

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

CNG также добавляет поддержку Dual_EC_DRBG,[5] а генератор псевдослучайных чисел определено в НИСТ СП 800-90А которые могут подвергнуть пользователя подслушиванию со стороны Национальное Агенство Безопасности поскольку он содержит клептографический бэкдор, если разработчик не забыл генерировать новые базовые точки с помощью другого криптографически безопасного генератора псевдослучайных чисел или истинный генератор случайных чисел а затем опубликуйте сгенерированное начальное число, чтобы удалить бэкдор АНБ. Это тоже очень медленно.[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. ^ Люкс B В архиве 2009-02-07 в Wayback Machine
  3. ^ Хранение и извлечение ключей, Microsoft
  4. ^ Аргументы в пользу криптографии с эллиптическими кривыми, АНБ
  5. ^ Шнайер, Брюс (17 декабря 2007 г.). "Dual_EC_DRBG добавлен в Windows Vista". Шнайер о безопасности. Получено 13 января, 2010.
  6. ^ а б Шнайер, Брюс (15 ноября 2007 г.). "Странная история Dual_EC_DRBG". Шнайер о безопасности. Получено 12 января, 2010.
  7. ^ «FIPS PUB 186-2» (PDF). Федеральные стандарты обработки информации. Национальный институт стандартов и технологий. 27 января 2000 г.. Получено 13 января, 2010.

внешняя ссылка