Открыть сервис

PKCS#11

PKCS#11 (Cryptographic Token Interface — криптографический интерфейс токенов) — это стандартный программный интерфейс (API), определяющий платформонезависимый способ взаимодействия приложений с криптографическими устройствами (аппаратными токенами, смарт-картами, программными модулями — HSM и софт-токенами). Разработан и поддерживается корпорацией OASIS (Organization for the Advancement of Structured Information Standards) на основе спецификации, первоначально созданной компанией RSA Laboratories.

Стандарт описывает абстрактную модель криптографического устройства (токена) и набор функций (более 100), позволяющих выполнять операции: генерацию и хранение ключей, шифрование и расшифрование данных, вычисление и проверку электронной подписи (ЭП), хеширование, управление сертификатами и аутентификацию пользователя.

История

Первая версия спецификации PKCS#11 была опубликована компанией RSA Laboratories в 1995 году в рамках набора стандартов Public-Key Cryptography Standards (PKCS). Изначально стандарт предназначался для унификации доступа к аппаратным токенам безопасности, используемым в банковской сфере и государственных информационных системах.

В 2001 году вышла версия 2.20, которая стала наиболее распространённой. В 2013 году управление стандартом перешло к консорциуму OASIS, который выпустил версию 2.40 (2014) и 3.0 (2020). Версия 3.0 существенно расширила функциональность: добавила поддержку современных алгоритмов (Ed25519, X25519, SHA-3, AES-GCM), улучшила управление сессиями и механизмы аутентификации.

Архитектура

Модель PKCS#11 строится на трёх ключевых сущностях:

Объектная модель

Все данные, хранимые на токене, представлены в виде объектов, которые делятся на классы:

Каждый объект имеет набор атрибутов (тип, значение, флаги доступа, идентификатор). Например, для ключа атрибуты включают: CKA_CLASS (тип ключа), CKA_KEY_TYPE (алгоритм), CKA_MODULUS (модуль RSA), CKA_PRIVATE (приватный/публичный), CKA_EXTRACTABLE (возможность экспорта).

Функциональные возможности

PKCS#11 предоставляет стандартный набор функций (около 130), объединённых в группы:

Управление сессией и аутентификация

Генерация и управление ключами

Криптографические операции

Управление сертификатами и объектами

Безопасность

Безопасность PKCS#11 обеспечивается за счёт нескольких механизмов:

Применение

PKCS#11 широко используется в следующих областях:

Реализации

Существует множество реализаций PKCS#11, как коммерческих, так и открытых:

Критика и ограничения

Несмотря на широкое распространение, PKCS#11 подвергается критике по нескольким причинам:

Перспективы

Развитие PKCS#11 связано с появлением новых криптографических алгоритмов (постквантовая криптография, гомоморфное шифрование) и ростом требований к безопасности в облачных средах. В версии 3.0 добавлены механизмы для работы с облачными HSM и токенами через сеть. Кроме того, ведётся работа по интеграции PKCS#11 с протоколами TPM (Trusted Platform Module) и WebAuthn.

Источники

  1. OASIS PKCS #11 Cryptographic Token Interface Base Specification Version 3.0 (2020).
  2. RSA Laboratories. PKCS #11 v2.20: Cryptographic Token Interface Standard (2004).
  3. OpenSC Project. PKCS#11 Implementation for Smart Cards (документация).
  4. КриптоПро CSP. Руководство разработчика (версия 5.0).
  5. NIST SP 800-175B. Guideline for Using Cryptographic Standards in the Federal Government: Cryptographic Mechanisms (2020).
  6. ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →