- Puntos Clave
- ¿Qué es un CSP (Proveedor de Servicios Criptográficos)?
- Proveedores criptográficos modernos de Microsoft
- ¿Qué es PKCS#11?
- CSP vs PKCS#11: Comparación
- CSP, PKCS#11 y firma de código
- Nota sobre FIPS 140-3
- Cómo ayuda la consultoría de cifrado
- Preguntas frecuentes
- Firma en contra de las claves protegidas por hardware
CSP (Proveedor de Servicios Criptográficos) es una biblioteca de software de Windows que realiza operaciones criptográficas mediante la API CryptoAPI de Microsoft. PKCS#11 es un estándar multiplataforma que define cómo el software se comunica con el hardware criptográfico, como los módulos de seguridad de hardware (HSM), las tarjetas inteligentes y los tokens USB. Ambos proporcionan a las aplicaciones acceso seguro a las funciones y claves criptográficas.
CSP y PKCS#11 son dos interfaces criptográficas que permiten a las aplicaciones usar funciones criptográficas y proteger las claves. Un CSP (Proveedor de Servicios Criptográficos) es un módulo de software específico de Windows que se utiliza a través de la CryptoAPI de Microsoft. PKCS#11 es un estándar abierto y multiplataforma (también llamado Cryptoki) para comunicarse con hardware como módulos de seguridad de hardware (HSM) y tarjetas inteligentes. Ambos se utilizan ampliamente en la firma de código para mantener las claves privadas en hardware seguro.
Puntos Clave
- Un CSP (Proveedor de Servicios Criptográficos) es una biblioteca de software de Windows que realiza operaciones criptográficas a través de la CryptoAPI de Microsoft (y su sucesora, CNG).
- PKCS#11 (también llamado Cryptoki) es un estándar multiplataforma que define cómo las aplicaciones se comunican con tokens criptográficos como HSM, tarjetas inteligentes y tokens USB.
- La principal diferencia: CSP es específico de Windows y está definido por Microsoft, mientras que PKCS#11 es un estándar abierto que funciona en Windows, Linux y macOS.
- Ambos son fundamentales para la firma de código, ya que permiten que una herramienta de firma utilice una clave privada almacenada en un hardware seguro sin que la clave salga nunca de él.
- Ambos están validados según la norma FIPS 140-3 (que sustituyó a la FIPS 140-2), y ambos están evolucionando para admitir algoritmos de firma post-cuánticos como ML-DSA y los algoritmos LMS y XMSS basados en funciones hash.
¿Qué es un CSP (Proveedor de Servicios Criptográficos)?
Un proveedor de servicios criptográficos (CSP) es una biblioteca de software en Microsoft Windows que proporciona la implementación de operaciones criptográficas para la API criptográfica de Microsoft (CAPI). Cuando una aplicación de Windows llama a una función de CryptoAPI para cifrar datos, generar una clave o crear una firma digital , la solicitud se dirige a un CSP, que realiza el trabajo criptográfico y administra las claves asociadas. Los CSP son DLL especiales que deben estar firmados digitalmente por Microsoft, y Windows verifica dicha firma al cargarlos para garantizar que no hayan sido manipulados.
Los CSP pueden estar respaldados por software o por hardware, como tarjetas inteligentes y HSM. Cabe destacar que la clásica CryptoAPI y sus CSP constituyen el modelo criptográfico antiguo de Windows; el marco más reciente de Microsoft, Cryptography API : Next Generation (CNG), utiliza proveedores de almacenamiento de claves (KSP) y es su sucesor moderno, aunque el término CSP todavía se usa ampliamente y muchos proveedores siguen en funcionamiento.
Por qué los proveedores de servicios en la nube son importantes
- Simplifican el cifrado para las aplicaciones: Los desarrolladores pueden proteger sus aplicaciones mediante llamadas API estándar sin necesidad de implementar criptografía por sí mismos; el proveedor de servicios en la nube se encarga de ello de forma transparente.
- Son compatibles tanto con software como con hardware: Un proveedor de servicios en la nube (CSP) puede utilizar claves basadas en software o seguridad respaldada por hardware, como tarjetas inteligentes y módulos de seguridad de hardware (HSM), lo que añade una capa de protección más sólida.
- Son nativas de Windows: Para las aplicaciones de Windows, los CSP y sus sucesores CNG constituyen la vía integrada y preconfigurada para garantizar la seguridad de las operaciones criptográficas.
- Centralizan la gestión criptográfica: CifradoLas firmas digitales y la gestión de claves se manejan de forma coherente, para que los desarrolladores puedan centrarse en la lógica de la aplicación.
- Apoyan el cumplimiento: Al aplicar medidas sólidas y validadas criptografía, ayudan a cumplir requisitos como HIPAA, PCI DSS, y GDPR.
Proveedores criptográficos modernos de Microsoft
Microsoft ofrece varios proveedores actuales, mientras que los más antiguos (como el Proveedor Criptográfico Base de Microsoft y el Proveedor RSA SChannel) han sido descontinuados en favor de opciones más robustas y modernas. Los principales proveedores modernos son:
| Proveedor | Propósito | Uso típico |
| Proveedor de almacenamiento de claves de software (KSP) | Software de propósito general para el almacenamiento y la gestión de claves (RSA, ECC, SHA-2). | Intercambio de claves, firmas digitales, cifrado de datos |
| Proveedor de almacenamiento de claves de tarjetas inteligentes | Gestiona las claves almacenadas en tarjetas inteligentes. | Inicio de sesión seguro, verificación de identidad, autenticación multifactor |
| Proveedor de plataformas de criptomonedas | Utiliza el TPM para operaciones respaldadas por hardware. | Arranque seguro, cifrado de disco, certificación de clave |
| Proveedor criptográfico mejorado | Mayor seguridad con soporte para claves más largas (RSA, AES, SHA). | Teclas más largas, compatibilidad con versiones anteriores |
| Proveedor criptográfico AES | Cifrado simétrico AES dedicado | Cifrado rápido de archivos y datos |
¿Qué es PKCS#11?
PKCS#11 significa Estándar de Criptografía de Clave Pública #11. PKCS es una familia de estándares criptográficos desarrollados originalmente por RSA Laboratories, donde cada número define un estándar específico. PKCS#11 define específicamente una interfaz de token criptográfico, la API a través de la cual las aplicaciones se comunican con hardware criptográfico como HSM, tarjetas inteligentes y tokens USB. Esta API se llama Cryptoki (abreviatura de interfaz de token criptográfico). A diferencia de un CSP, PKCS#11 es un estándar abierto e independiente del proveedor que funciona en Windows, Linux y macOS, razón por la cual es el lenguaje común para comunicarse con HSM en diferentes plataformas.
Cryptoki, tragamonedas, fichas y objetos
PKCS#11 organiza el acceso al hardware en torno a algunos conceptos básicos:
- Slot: La interfaz física a través de la cual una aplicación accede a un token, como un lector de tarjetas inteligentes o un puerto USB. Un sistema puede tener varias ranuras.
- Token: El dispositivo que almacena las claves y realiza las operaciones criptográficas, como una tarjeta inteligente, una llave USB o un HSM, es el núcleo de PKCS#11: las claves permanecen bloqueadas dentro del token.
- Objetos: Los datos que gestiona el token: objetos clave (claves públicas, privadas o secretas), objetos de certificado (como Certificados X.509), objetos de datos y objetos definidos por el proveedor.
- Sesiones: Una sesión es una conexión temporal entre una aplicación y un token. Los objetos públicos son accesibles para cualquier persona; los objetos privados requieren inicio de sesión. PKCS#11 define dos roles: el Oficial de Seguridad (quien administra el token y los PIN) y el usuario normal (quien accede a los objetos privados).
La principal característica de seguridad es que, cuando una aplicación solicita al token que firme o descifre, la operación se realiza dentro del token y la clave privada nunca sale del hardware. La aplicación solo envía datos y recibe un resultado.
Por qué es importante PKCS#11
- Es un estándar unificado: Las aplicaciones interactúan con el hardware criptográfico de forma consistente, independientemente del fabricante del dispositivo, lo que mejora la compatibilidad y la fiabilidad.
- Es multiplataforma: PKCS#11 funciona en Windows, Linux y macOS, por lo que los desarrolladores no están limitados a un solo sistema operativo.
- Guarda las claves en el hardware: Las claves privadas utilizadas para firmar y descifrar permanecen dentro del token, lo que evita su robo incluso si el servidor se ve comprometido.
- Apoya el cumplimiento normativo: Las implementaciones de PKCS#11 se validan comúnmente para FIPS 140-3, cumpliendo con estrictos requisitos para la gestión segura de claves.
CSP vs PKCS#11: Comparación
| Elemento | CSP | PKCS # 11 |
| Plataforma | Específico de Windows | Multiplataforma (Windows, Linux, macOS) |
| Uso primario | Aplicaciones de Windows | Cualquier aplicación que utilice tokens criptográficos |
| Soporte de hardware | Tarjetas inteligentes, HSM, software | Tarjetas inteligentes, HSM, tokens USB |
| Normalización | Interfaz definida por Microsoft | Estándar abierto (originalmente RSA Labs) |
| Gestión de claves | Integrado con la seguridad de Windows | Almacenamiento seguro de claves en tokens de hardware |
| Uso en la firma de código | Herramientas de firma de Windows (signtool) | Firma multiplataforma contra claves almacenadas en HSM |
CSP, PKCS#11 y firma de código
Ambas interfaces son fundamentales para la firma segura de código. La seguridad de la firma de código depende completamente de la protección de la clave privada de firma, y la forma más segura de hacerlo es mantener la clave dentro de un HSM para que nunca toque el disco. CSP (a través de CNG y KSP) y PKCS#11 son las dos interfaces que permiten que una herramienta de firma utilice una clave almacenada en un HSM: la herramienta de firma envía el hash que se va a firmar al HSM a través de la interfaz, el HSM firma dentro de su entorno seguro y la firma regresa sin que la clave salga nunca. En Windows, herramientas como signtool suelen usar CSP o KSP; la firma multiplataforma y empresarial suele usar PKCS#11. Este mismo patrón protege la firma de imágenes de contenedores, la firma de firmware y el sellado de tiempo.
Firma poscuántica a través de CSP y PKCS#11
A medida que la firma de código migra a algoritmos post-cuánticos, estas interfaces también están evolucionando. El estándar PKCS#11 y los proveedores de HSM están agregando soporte para el NIST algoritmos de firma post-cuántica, principalmente ML-DSA (FIPS 204), y los esquemas basados en hash con estado LMS y XMSS (NIST SP 800-208) que la NSA CNSA 2.0 Se recomienda para la firma de firmware y software hoy en día. Debido a que gran parte de la infraestructura de firma llega a las claves a través de PKCS#11 o CNG, ese soporte de interfaz es un factor de restricción práctico para la firma de código post-cuántico: una organización solo puede firmar con ML-DSA o LMS una vez que su HSM y su interfaz criptográfica expongan esos algoritmos. Confirmar esta compatibilidad es un paso inicial en cualquier migración de firma post-cuántica.
Nota sobre FIPS 140-3
Los HSM y los módulos criptográficos a los que se accede mediante CSP y PKCS#11 se validan según FIPS 140-3, el estándar actual de EE. UU. y Canadá para módulos criptográficos, que sustituyó a FIPS 140-2. El Programa de Validación de Módulos Criptográficos dejó de aceptar nuevas solicitudes FIPS 140-2 en 2022, y todos los certificados FIPS 140-2 restantes pasarán a estado histórico el 21 de septiembre de 2026. Al seleccionar un HSM o token para usar a través de cualquiera de las interfaces, busque la validación FIPS 140-3 en lugar de la 140-2 para nuevas implementaciones.
Cómo ayuda la consultoría de cifrado
CodeSign Secure de Encryption Consulting utiliza estas interfaces para ofrecer firma de código empresarial con claves protegidas en un HSM. Se integra mediante PKCS#11 y Windows CNG, lo que permite que las herramientas de firma en diferentes plataformas firmen con claves almacenadas en hardware, garantiza quién está autorizado a firmar y registra cada operación para su auditoría. Al centralizar la firma en todos los tipos de artefactos, la misma plataforma gestiona la firma de Windows, Java, contenedores y firmware, y admite la transición a algoritmos de firma post-cuánticos a medida que madura la compatibilidad con HSM e interfaces. Cuenta con el respaldo de las prácticas certificadas ISO/IEC 27001:2022 y SOC 2.
Preguntas frecuentes
¿Cuál es la diferencia entre CSP y PKCS#11?
Un CSP (Proveedor de Servicios Criptográficos) es una biblioteca de software específica de Windows que realiza operaciones criptográficas mediante la API CryptoAPI de Microsoft. PKCS#11 es un estándar abierto y multiplataforma que define cómo las aplicaciones se comunican con hardware criptográfico como HSM y tarjetas inteligentes, y funciona en Windows, Linux y macOS. En resumen, CSP es un estándar definido por Microsoft y exclusivo de Windows, mientras que PKCS#11 es independiente del proveedor y multiplataforma. Ambos permiten que las aplicaciones utilicen claves almacenadas de forma segura en hardware.
¿Qué es un proveedor de servicios criptográficos (CSP)?
Un CSP es una biblioteca de software en Windows que implementa operaciones criptográficas para la API criptográfica de Microsoft. Cuando una aplicación solicita cifrado, generación de claves o una firma digital, la solicitud se dirige a un CSP, que realiza la operación y administra las claves. Los CSP deben estar firmados digitalmente por Microsoft y pueden estar respaldados por software o por hardware, como tarjetas inteligentes y módulos de seguridad de hardware (HSM). El marco CNG más reciente de Microsoft, que utiliza proveedores de almacenamiento de claves, es el sucesor moderno.
¿Qué es PKCS#11?
PKCS#11, también conocido como Cryptoki, es el Estándar de Criptografía de Clave Pública n.° 11. Define una interfaz de token criptográfico, la API mediante la cual el software se comunica con hardware criptográfico como HSM, tarjetas inteligentes y tokens USB. Es un estándar abierto y multiplataforma, originario de RSA Laboratories, y es la forma común en que las aplicaciones utilizan claves protegidas por HSM en diferentes sistemas operativos y fabricantes de dispositivos.
¿Qué son las ranuras, los tokens y los objetos en PKCS#11?
En PKCS#11, una ranura es la interfaz física que se utiliza para acceder a un token, como un lector de tarjetas inteligentes o un puerto USB. Un token es el dispositivo físico (tarjeta inteligente, llave USB o HSM) que almacena las claves y realiza las operaciones. Los objetos son los datos que gestiona el token: objetos de clave, objetos de certificado, objetos de datos y objetos definidos por el proveedor. Cuando una aplicación necesita realizar una operación criptográfica, utiliza una ranura para acceder al token, que realiza la operación manteniendo la clave dentro del hardware.
¿Se utilizan CSP y PKCS#11 en la firma de código?
Sí. Ambos son fundamentales para la firma segura de código, ya que permiten que una herramienta de firma utilice una clave privada almacenada en un HSM sin que la clave salga del hardware. En Windows, las herramientas de firma como signtool suelen usar un CSP o su sucesor CNG; la firma multiplataforma y empresarial suele usar PKCS#11. Esto protege la clave de firma, que es el activo más importante en la firma de código, ya que una clave robada permite a un atacante firmar software malicioso.
¿Los protocolos CSP y PKCS#11 admiten algoritmos post-cuánticos?
Se está añadiendo compatibilidad. Los proveedores de HSM y el estándar PKCS#11 están incorporando los algoritmos de firma post-cuántica del NIST, principalmente ML-DSA (FIPS 204), junto con los esquemas LMS y XMSS basados en hash que se utilizan para la firma de firmware y software. Dado que la mayoría de las infraestructuras de firma acceden a las claves mediante PKCS#11 o Windows CNG, la compatibilidad de la interfaz y del HSM con estos algoritmos es un requisito práctico para la firma de código post-cuántica, y su confirmación constituye un paso inicial en cualquier migración.
Firma en contra de las claves protegidas por hardware
CSP y PKCS#11 son los protocolos que utilizan las herramientas de firma para acceder a las claves almacenadas de forma segura en el hardware, y lograr una integración correcta es fundamental para la firma segura de código. Descubra CodeSign Secure de Encryption Consulting para firmar en diferentes plataformas con claves protegidas por HSM, con preparación para la era post-cuántica integrada.
- Puntos Clave
- ¿Qué es un CSP (Proveedor de Servicios Criptográficos)?
- Proveedores criptográficos modernos de Microsoft
- ¿Qué es PKCS#11?
- CSP vs PKCS#11: Comparación
- CSP, PKCS#11 y firma de código
- Nota sobre FIPS 140-3
- Cómo ayuda la consultoría de cifrado
- Preguntas frecuentes
- Firma en contra de las claves protegidas por hardware
