Об этом проекте

pkcs11rs — это библиотека на Rust, которая реализует интерфейс поставщика PKCS #11, позволяя унифицировать доступ к различным аппаратным модулям безопасности и программным токенам. Она поддерживает приложения YubiKey (PIV, OpenPGP, YubiHSM Auth, Issuer Security Domain), аутентификаторы FIDO2, устройства YubiHSM и явно сконфигурированные программные токены в памяти. Проект реализует таблицы функций PKCS #11 для версий 2.40, 3.0, 3.1 и 3.2, обеспечивая возвращение соответствующих ошибок для неподдерживаемых точек входа вместо их пропуска. Он предлагает аппаратные операции с RSA, ECDSA, Ed25519 и постквантовыми алгоритмами (ML-DSA, ML-KEM) в программных слотах. Также поддерживается надежное управление сессиями с независимой блокировкой слотов, координацией физических устройств и восстановлением после горячего подключения. Для обеспечения безопасности используются протоколы защищенной передачи, такие как SCP03 и SCP11a/b/c, а также встроенный коннектор для доступа к удаленным YubiHSM через HTTPS с взаимной TLS-аутентификацией. На платформах Apple поддерживается защита логина с помощью Secure Enclave, позволяющая генерировать и провизионировать именованные учетные данные в YubiHSM. Проект проходит обширное тестирование на Linux, Windows, macOS и iOS, проверяя совместимость ABI, соответствие профилям и взаимодействие с реальным оборудованием.