R3 Corda
Información general
Corda Esta guía del usuario integrada con el software R3 se ha preparado utilizando las versiones de software y firmware que se indican a continuación: - SO Windows 10 (Español) Corda - R3 4.7 - FirmwareHSM: 5.0.26.0 (o superior) - Cliente HSM: 4.7.30 (o superior)
Requisitos
- Conectividad con el HSM (puerto TCP 4433).
- Software cliente HSM instalado (véase el tema Instalación).
- Servicio HSM iniciado.
- Credenciales de la partición HSM donde se creará o utilizará la clave privada.
Integración R3 Corda
Aplicación
Corda El proveedor de cifrado devuelve objetos JCA que se utilizan externamente. Por tanto, el paso inicial es configurar esta API de integración para conectar con elHSM. Para obtener más detalles sobre la API JCA/JCE del HSM, consulte el tema JCA/JCE.
Visión general
Corda El proveedor de cifrado utiliza dos tipos de claves: 1.simétricas 1. asimétrica
Las claves asimétricas están protegidas por la clave simétrica(wrapping ) y se almacenan externamente al HSM. La clave simétrica, denominada clave envolvente, se guarda en el HSM y no se exporta (no existe tal opción en la interfaz del proveedor).
El proveedor implementa, y es llamado para ejecutar, las siguientes operaciones:
- Generar KEK(clave envolvente);
- Generar clave privada;
- Exportar clave privada cifrada por KEK;
- Exportar clave pública;
- Eliminar la clave privada del HSM;
- Firma;
El proveedor Dinamo Corda implementa WRAPPEDCorda que es el modo más seguro disponible en .
Existen dos modos de funcionamiento. En ambos modos, la clave simétrica se genera y se mantiene en el HSM y la clave asimétrica se almacena fuera del HSM. La diferencia radica en el tratamiento de la clave asimétrica.
-
Envuelta: Genera y utiliza la clave privada dentro del HSM. La clave fuera del HSM siempre está cifrada por la KEK(clave envolvente).
-
Modo Degradado Envuelto: Genera y utiliza la clave privada fuera del HSM. La clave se genera y utiliza en la memoria de la aplicación. Sólo entra en el HSM para ser cifrada/descifrada por la KEK(clave envolvente).
Nombres clave
Los alias de clave no son compatibles con los nombres de objeto de HSM, ya que contienen caracteres no aceptados y suelen ser más largos que el máximo permitido por HSM.
CordaAlgunos ejemplos de alias de :
- Claves simétricas (clave de envoltura) :
a74eb4c1-b4d9-4e1d-9e48-88e6abad7d63
- Llaves no persistentes:
2f5f5b11-35bc-4eb3-8f6b-fb4e3d723a26
La abstracción del proveedor permite procesar el nombre de la clave y pasar un nombre compatible al HSM. Corda La solución es una transformación de los alias pasados por :
- CordaHacer un hash MD5 de los alias pasados por ;
- Transformar en una cadena hexadecimal;
Estos alias transformados se utilizan como alias en las llamadas JCA.
Las transformaciones sólo se realizan en claves no efímeras. En estos casos, el alias original se almacena en los metadatos del objeto, en el atributo label.
Peligro
En caso de error, utilice siempre el nombre del alias original que se recibió como parámetro. Estas cadenas se validan en las pruebas de compatibilidad.
Atributos clave
Los atributos de las claves simétrica y asimétrica se definen en la configuración de JCA. Para más detalles, consulte el tema Configuración.
Tipo de llave | Exportable | Observaciones |
---|---|---|
Asimétrico | ✔️ | Las claves asimétricas se cifran mediante una clave simétrica y se almacenan fuera del HSM. Por tanto, deben poder exportarse. Siempre se exportan. |
Simétrico | ❌ | Las claves simétricas se utilizan para proteger claves asimétricas y no salen del HSM. Por tanto, pueden no ser exportables. Corda Este es el modo utilizado en el ejemplo de . No hay ningún obstáculo para cambiar este parámetro. |
Peligro
Sólo puede utilizar 01 usuario configurado por aplicación. No utilice varios usuarios en el mismo proceso.
Configuración
Dado que utilizamos la JCA en nuestra implementación, la configuración se realiza a través de la función Configuración.ND
de la JCA. Las claves asimétricas deben configurarse como exportables y las simétricas opcionalmente como no exportables. Dinamo El nombre del servicio Crypto es:
DINAMO
En los archivos de configuración corda
freshIdentitiesConfiguration {
mode="WRAPPED"
cryptoServiceConfiguration {
cryptoServiceName="DINAMO"
cryptoServiceConf="dinamo.conf"
}
masterKeyAlias="master_key"
}
El fichero de configuración dinamo.conf
puede estar vacío o contener el archivo.config.hsm
.
El campo archivo.config.hsm
debe introducirse en el archivo de configuración de JCA. Introduzca el nombre del archivo con la ruta completa. No utilice comillas "
y si Windows utiliza \\
para separar las carpetas.
Ejemplos de contenidos aceptados:
-
ini cordacordacorda hsm.config.file=C:-4.7-full-release -4.7-full-release -4.7-full-release -4.7-full-release -4.7-full-release -4.7-full-release -4.7-full-release -4.7-full-release
-
ini hsm.config.file=
-
Archivo vacío
Configure el archivo de configuración JCA:
- Marcar las claves asimétricas como exportables;
- Marcar las claves simétricas como no exportables (opcional).
Peligro
Sólo puede utilizar 01 usuario configurado por aplicación. No utilice varios usuarios en el mismo proceso.
Dinamo Corda Dinamo Corda CordaLos archivos JCA y JNI pueden estar ubicados en la misma carpeta que el Proveedor , que es la carpeta del controlador por defecto para o una específica indicada en la configuración .
ndjca.jar
tancjavalib.jar
dinamo_corda.jar
La biblioteca binaria (TacNDJavaLib.so
o TacNDJavaLib.dll
) debe estar disponible en SENDERO del sistema operativo.
En proveedor Dinamo Corda están disponibles en SLF4JCordaigual que . Corda La configuración para la generación de registros se realiza del mismo modo que . Es posible que tenga que introducir el spec de proveedor Dinamo Corda. Basta con crear el archivo cordaspec.conf
con el contenido que figura a continuación e informe en caso necesario.
Pruebas
Corda Las pruebas de compatibilidad están disponibles en sitio web Corda y puede descargarse tras inscribirse en la versión de prueba.
- Descargar el archivo corda-4.7-full-release.tar.gz
y descomprímelo;
- La prueba está disponible en cordacorda.\repository\com\r3\ \ -hsm-tck\4.7
;
- Se ejecuta con el comando cordajava -jar -hsm-tck-4.7.jar
más opciones, que se describen a continuación;
Información
La aplicación de prueba está disponible en deps en corda\4.7\bin
-
Requisitos previos:
Dinamo02 después de instalar y configurar JCA :
- Archivo de configuración del proveedor Dinamo Corda. Llamaremos a este archivo
corda.propiedades
; - Archivo de especificaciones del proveedor Dinamo Corda. Llamaremos a este archivo
cordaspec.conf
;
El archivo de propiedades del proveedor puede configurarse como se describe en la sección Configuración. El archivo de especificaciones debe tener el siguiente contenido.
supportedSchemes: ["RSA_SHA256", "ECDSA_SECP256R1_SHA256", "ECDSA_SECP256K1_SHA256"] supportedSchemesForWrappingOperations: ["RSA_SHA256", "ECDSA_SECP256R1_SHA256", "ECDSA_SECP256K1_SHA256"] supportedWrappingMode: WRAPPED sessionInactivityTimeoutMinutes: 20
- Archivo de configuración del proveedor Dinamo Corda. Llamaremos a este archivo
Ejecución
Para ejecutar la prueba de interfaz, utilice el siguiente comando.
Reemplazar:
- c:\cordaprovider
: por la ruta de la carpeta que contiene dinamo_corda.jar
incluidos los tarros JCA;
- cordac:\ .properties
: por la ruta con el nombre de archivo del archivo de configuración Dinamo Corda
;
- c:\cordaspec.conf
: por la ruta con el nombre de archivo del archivo de especificaciones Dinamo Corda
;
Peligro
No utilice rutas relativas, algunas pruebas se ejecutan en carpetas fuera del directorio actual.
java -jar .\corda-hsm-tck-4.7.jar -n "DINAMO" -d "c:\cordaprovider" -r ".\rest-results" -lc "c:\corda.properties" -s "c:\cordaspec.conf" -cc "c:\corda.properties" -tc "c:\corda.properties" -t interface
Se pueden realizar más pruebas cambiando el -t
. Ver ayuda.