PKCS #11 (также известный как Cryptoki) — это стандарт интерфейса программирования приложений (API), разработанный RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More Laboratories. Он определяет способ взаимодействия программного обеспечения с криптографическими токенами, такими как:
- USB-токены;
- смарт-карты;
- аппаратные модули безопасности (HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More).
Основная цель стандарта — создать универсальный интерфейс, который позволит приложениям использовать криптографические функции, независимо от конкретной аппаратной реализации. Это делает PKCS #11 важным элементом в системах электронной подписи, SSL/TLS, государственных и корпоративных платформах документооборота.
Основные характеристики
Характеристика | Описание |
---|---|
Полное название | RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More PKCS #11 Cryptographic Token Interface Standard |
Тип спецификации | API для работы с криптографическими устройствами |
Разработчик | RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More Security LLC |
Стандарты | Поддерживает ГОСТ, RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More, ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More, DSADSA (Digital Signature Algorithm) — это асимметричный криптографический алгоритм, предназначенный исключительно для создания и проверки цифровых под More, AES, SHA и др. |
Использование | Работа с HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More, USB-токенами, смарт-картами |
Назначение PKCS #11
PKCS #11 используется для следующих задач:
- Безопасное хранение ключей
- Приватные ключи могут храниться внутри защищённого устройства (например, токена или HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More);
- Они никогда не покидают носитель в расшифрованном виде, что исключает их компрометацию.
- Создание и проверка цифровой подписи
- Подходит для использования в системах ЭЦП: ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More, ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More, налоговые сервисы;
- Обеспечивает юридическую значимость документов.
- Шифрование и дешифровка данных
- Поддерживает алгоритмы: AES, DES, RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More, ECIES и другие;
- Используется в протоколах TLS, SSH, S/MIME и других.
- Управление сертификатами и объектами: позволяет добавлять, удалять и обновлять криптографические данные в токенах;
- Поддержка множества форматов: совместим с X.509X.509 — это международный стандарт, определяющий формат цифровых сертификатов открытых ключей. Он используется в инфраструктуре открыты More, PKIX, CMS, PGP и другими.
Где применяется PKCS #11?
1. USB-токены и смарт-карты
- Поддерживают работу с приватными ключами без их извлечения;
- Примеры: Rutoken, EToken, JaCarta, ActivCard.
2. Аппаратные модули безопасности (HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More)
- Используются банками, государственными учреждениями и крупными корпорациями;
- Обеспечивают защиту ключей при высоконагруженных операциях.
3. Электронный документооборот
- Взаимодействует с системами:
- ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More;
- ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More;
- ЕИСЕИС (Единая информационная система в сфере закупок) — это официальная государственная платформа, созданная для централизованного упра More (госзакупки);
- 1С-Отчётность и другими.
4. SSL/TLS-сертификаты
- Используется веб-серверами для хранения приватных ключей в HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More;
- Увеличивает уровень безопасности HTTPS-соединений.
5. ERP-системы и бухгалтерские платформы
- Интеграция через плагины в 1С, SAP, Oracle и другие системы;
- Позволяет автоматически подписывать документы с помощью аппаратных средств.
6. Клиентская аутентификация
- Вход в корпоративные системы с использованием смарт-карт;
- Защита от несанкционированного доступа.
Структура и основные понятия
1. Объекты (Objects)
- Ключи (приватные, публичные, сеансовые);
- Сертификаты (X.509X.509 — это международный стандарт, определяющий формат цифровых сертификатов открытых ключей. Он используется в инфраструктуре открыты More, пользовательские и доверенные);
- Данные (произвольные объекты, например, параметры шифрования).
2. Механизмы (Mechanisms)
- Алгоритмы: RSARSA (Rivest–Shamir–Adleman) — один из первых и самых известных алгоритмов асимметричного шифрования, разработанный в 1977 году Рональдом Ривестом, More, ECDSAECDSA (Elliptic Curve Digital Signature Algorithm) — это алгоритм создания и проверки электронной цифровой подписи, основанный на использовании эллиптически More, AES, SHA-2, ГОСТ Р 34.10/34.11;
- Форматы: шифрование, подпись, генерация ключей.
3. Сессии (Sessions)
- Открытые и защищённые сессии;
- Управление состоянием токена и операциями.
4. Пользователи (User Types)
- SO (Security Officer) — администратор токена;
- User — обычный пользователь, имеющий доступ к операциям.
5. Функции API
- C_Sign, C_Verify — создание и проверка подписи;
- C_Encrypt, C_Decrypt — шифрование и расшифровка;
- C_GenerateKey, C_GenerateKeyPair — генерация ключей;
- C_Login, C_Logout — авторизация пользователя в токене.
Преимущества PKCS #11
- Высокая безопасность — приватные ключи остаются в защищённом устройстве;
- Независимость от производителя — один API работает с любым совместимым токеном;
- Широкая поддержка — интегрирован в OpenSSLOpenSSL — это открытая библиотека и набор утилит с открытым исходным кодом, предназначенный для реализации протоколов SSL (Secure Sockets Layer) и TLS (Tr More, Java (SunPKCS11), .NET, 1С, Apache, Nginx и др.;
- Гибкость — поддерживает множество типов операций и алгоритмов;
- Соответствие законодательству РФ — может быть использован в госсистемах при наличии российских криптостандартов.
Как работает PKCS #11?
- Приложение обращается к библиотеке PKCS #11 (обычно .so или .dll) — cryptoki.dll / libpkcs11.so;
- Библиотека связывается с физическим устройством (токеном или HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More);
- Выполняются криптографические операции:
- Подпись;
- Шифрование;
- Управление ключами.
- Все данные остаются в защищённом контейнере — внешние программы не получают доступ к закрытым ключам.
Примеры использования
✔ В Linux
# Установка OpenSC (поддерживает PKCS #11)
sudo apt install opensc
# Просмотр информации по токену
p11tool --login --list-all-certs pkcs11:
✔ Через OpenSSL
# Подключение к токену
openssl req -engine pkcs11 -new -key <идентификатор> -keyform engine
✔ В Java
// Настройка провайдера SunPKCS11
Provider p = new SunPKCS11("token.cfg");
Security.addProvider(p);
// Получение приватного ключа из токена
KeyStore ks = KeyStore.getInstance("PKCS11", p);
ks.load(null, "pin".toCharArray());
PrivateKey key = (PrivateKey) ks.getKey("alias", null);
Форматы файлов и устройств
Тип | Описание |
---|---|
Rutoken | Российский токен с поддержкой PKCS #11 |
eToken | Аппаратные решения от SafeNet |
OpenSC | Библиотека с поддержкой PKCS #11 для открытых токенов |
SoftHSM | Реализация PKCS #11 в программной среде |
YubiHSM | Аппаратный модуль с поддержкой стандарта |
libp11 | Модуль для работы с токенами в Linux |
Интеграция с различными платформами
Платформа | Поддержка |
---|---|
Java | ✅ через SunPKCS11 |
OpenSSLOpenSSL — это открытая библиотека и набор утилит с открытым исходным кодом, предназначенный для реализации протоколов SSL (Secure Sockets Layer) и TLS (Tr More | ✅ через модуль engines/e_pkcs11 |
1С | ✅ при настройке с криптопровайдерами |
Microsoft CNG | ❌ (Windows использует свои API) |
Browsers | ❌ (не поддерживается напрямую) |
ERP / CRM | ✅ при наличии соответствующего модуля |
Безопасное использование
- Не передавайте PIN-код от токена третьим лицам;
- Храните токен в защищённом месте — даже в зашифрованном состоянии он может быть скомпрометирован при физическом доступе;
- Используйте только сертифицированные токены — особенно если вы работаете в государственных системах;
- Не используйте один токен для нескольких пользователей — каждый должен иметь свой экземпляр.
Современные реализации
Проект | Описание |
---|---|
OpenSC | Открытая реализация PKCS #11 для смарт-карт |
SoftHSMv2 | Программная эмуляция HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More с поддержкой стандарта |
Libp11 | Библиотека для работы с токенами в Linux |
PKCS11Interop | Библиотека для .NET и Mono |
NSS (Network Security Services) | Используется в Firefox и других продуктах |
Отличие от других стандартов
Стандарт | Описание |
---|---|
PKCS #1PKCS #1 (Public-Key Cryptography Standards #1) — это один из ключевых стандартов, определяющих использование алгоритма RSA в криптографических протоколах. Он More | Форматирование RSA-ключей |
PKCS #7PKCS #7 (Public-Key Cryptography Standards #7) — это стандарт, разработанный компанией RSA Laboratories, который определяет общий формат для хранения и передачи под More | Структура подписанных и зашифрованных сообщений |
PKCS #8PKCS #8 (Public-Key Cryptography Standards #8) — это стандарт, разработанный RSA Laboratories, который определяет общий формат хранения и передачи закрытых ключей в More | Хранение приватных ключей |
PKCS #11 | API для аппаратных носителей ключей |
PKCS #12PKCS #12 (Public-Key Cryptography Standards #12) — это стандарт, разработанный RSA Laboratories, который определяет формат хранения и обмена криптографическими данн More | Контейнеры с паролем для хранения ключей и сертификатов |
Будущее PKCS #11
Ожидается дальнейшее развитие стандарта:
- Поддержка постквантовых алгоритмов;
- Усиление контроля над облачными HSMHSM (Hardware Security Module) — это аппаратное устройство, предназначенное для безопасного хранения, обработки и использования криптографических к More;
- Интеграция с мобильными и IoT-устройствами;
- Повышение простоты внедрения в облачные ERP-системы.
Заключение
PKCS #11 — это ключевой стандарт для работы с аппаратными средствами криптографии. Он обеспечивает:
- Безопасное хранение приватных ключей;
- Совместимость между приложениями и носителями;
- Соответствие требованиям безопасности в государственных и корпоративных системах.
Если ваш бизнес работает с квалифицированной ЭЦП, участвует в электронных торгах, обмене документами через ГИС ЭПДГИС ЭПД (Государственная информационная система в сфере торговли) — это федеральная цифровая платформа, созданная Минпромторгом РФ для More или ЕГАИСЕГАИС (Единая государственная автоматизированная информационная система) — это цифровая платформа, созданная для контроля оборота лек More, то интеграция с PKCS #11 позволяет повысить уровень защиты и автоматизации ваших процессов.