Claves y firmas de EdDSA
El esquema del Algoritmo de Firma Digital de Curva de Edwards (EdDSA) utiliza una variante de la firma Schnorr basada en curvas de Edwards retorcidas. EdDSA está diseñado para ser más rápido que los esquemas de firma digital existentes sin sacrificar la seguridad. Para más información, consulte la RFC 8032: Algoritmo de Firma Digital de Curva de Edwards (EdDSA) .
EJBCA admite claves de firma EdDSA y permite crear una autoridad de certificación (CA) con claves EdDSA tanto desde la interfaz de administración de EJBCA como desde la CLI ( bin/ejbca.sh ca init ). Para obtener más información, consulte Administración de CA.
A continuación se proporciona información sobre las claves y firmas de EdDSA.
Claves y certificados generados
Al generar una CA en EJBCA, se generan hasta tres claves y certificados:
Un par de claves y un certificado de firma de CA
Un par de claves de cifrado, utilizado para cifrar la información de recuperación de claves
Un par de claves de firmante OCSP y un certificado
Al usar claves EdDSA, el par de claves de firma de la CA y el par de claves de firmante de OCSP serán del tipo de clave EdDSA que seleccione al crear la CA. El certificado de firma de la CA y el de OCSP se firmarán con el algoritmo de firma seleccionado. El par de claves de cifrado siempre será RSA, con una longitud de clave de 1024 o 2048 bits. Utiliza la longitud de clave establecida en la interfaz de usuario de la CA o, de forma predeterminada, de 2048 bits mediante la CLI.
Uso de EdDSA con un HSM
EMPRESA Esta es una característica de EJBCA Enterprise.
La compatibilidad de HSM con EdDSA es relativamente reciente. PKCS#11 no estandarizó la compatibilidad con EdDSA hasta PKCS#11v3, mientras que la mayoría de los HSM (octubre de 2020) aún utilizan PKCS#11v2.40. Sin embargo, muchos HSM admiten EdDSA, extendiendo PKCS#11v2 con una compatibilidad similar a PKCS#11v3 (con algunas diferencias). EJBCA admite EdDSA en HSM que utilizan el proveedor P11-NG PKCS#11. La implementación puede variar entre distintos HSM, y no todos son necesariamente compatibles con EJBCA.
La clave keyEncryptKey no puede ser EdDSA, sino una clave RSA. Por lo tanto, un HSM debe ser compatible con claves EdDSA y RSA.
La mayoría de los HSM (y todos los HSM probados) solo admiten Ed25519 y aún no Ed448.
Algoritmos EdDSA
EJBCA admite los siguientes algoritmos EdDSA, también compatibles con BouncyCastle.
Claves EdDSA | Algoritmo de firma EdDSA |
Ed25519 | Ed25519 |
Ed448 | Ed448 |
Creación de certificados de cliente
También puede emitir solicitudes normales de certificados de cliente utilizando claves EdDSA.
Todos los certificados firmados por una CA de EdDSA utilizarán naturalmente firmas de EdDSA, independientemente de que las claves del cliente sean RSA, ECDSA o EdDSA.
Al generar claves de cliente por lotes mediante el comando de la CLI bin/ejbca.sh batch , se configura el tipo de claves de cliente que se generarán en el archivo conf/batchtool.properties . Los parámetros posibles se describen en el archivo de propiedades. Si se utiliza la función implicitlyCA , se utilizan los mismos parámetros configurados para la CA en conf/cesecore.properties . Para obtener más información sobre la función implicitlyCA, consulte Claves y firmas ECDSA o la documentación de Bouncy Castle sobre el uso de la función ImplicitlyCA del proveedor Bouncy Castle .
Ejemplo de generación de RSE
Para generar un CSR de muestra válido para sus clientes, se puede utilizar OpenSSL.
openssl genpkey -algorithm ED25519 -out ed25519.key.pemopenssl req -new -key ed25519.key.pem -out ed25519.csr.pemopenssl req - in ed25519.csr.pem -text