프로젝트 소개

pkcs11rs는 다양한 하드웨어 보안 모듈과 소프트웨어 토큰에 대한 접근을 단일 ABI를 통해 통합하기 위해 설계된 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와 같은 보안 전송 프로토콜을 지원하며, 상호 TLS 지원을 포함한 HTTPS를 통한 원격 YubiHSM 접근을 위한 멀티 디바이스 커넥터가 포함되어 있습니다. pkcs11rs는 또한 macOS와 iOS에서 Apple의 Secure Enclave를 사용하여 플랫폼 보호 로그인 기능을 제공하며, 이를 통해 명명된 자격 증명을 생성하고 YubiHSM에 프로비저닝할 수 있습니다. 이 프로젝트는 Linux, Windows, macOS, 그리고 iOS에서 ABI 호환성, 프로필 준수, 그리고 실시간 하드웨어 상호 작용을 검증하는 포괄적인 CI 테스트를 포함합니다. 빌드에는 Rust 툴체인 버전 1.94 이상과 PC/SC, libudev와 같은 의존성이 필요합니다.