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 envolvente) :
a74eb4c1-b4d9-4e1d-9e48-88e6abad7d63
- Claves 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 del archivo Configuration.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"
}
dinamoEl archivo de configuración
.conf
puede estar vacío o contener el campo hsm.config.file
.
El campo hsm.config.
file debe introducirse en el archivo de configuración JCA. Introduzca el nombre del archivo con la ruta completa. No utilice comillas "
y en el caso de Windows utilice \
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 JNI(TacNDJavaLib.so
o TacNDJavaLib.dll
) debe estar disponible en el PATH del sistema operativo.
Los registros del proveedor Dinamo CordaCorda están disponibles a través de SLF4J, al igual que . Corda La generación de logs se configura del mismo modo que . Es posible que tenga que introducir el archivo deespecificaciones del proveedor Dinamo Corda. Simplemente cree el archivo cordaspec.conf
con el contenido de abajo e introdúzcalo donde sea necesario.
Pruebas
Corda CordaLas pruebas de compatibilidad están disponibles en el sitio web y pueden descargarse después de suscribirse a la versión de prueba.
corda- Descargue el archivo -4
.7-full-release.tar.gz
y descomprímalo;
cordacorda- La versión de prueba está disponible en la carpeta -hsm-tck\4
.
7;
corda- Se ejecuta con el comando
java -jar -hsm-tck-4.7.jar
más opciones, descritas a continuación;
Información
cordaLa aplicación de prueba está disponible en la carpeta
deps en \4
.7\bin
-
Requisitos previos:
Dinamo02 después de instalar y configurar JCA :
- Dinamo CordaFichero de configuración del proveedor.
corda Llamaremos a este archivo
.properties
; - Dinamo CordaFichero de especificación del proveedor. 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
- Dinamo CordaFichero de configuración del proveedor.
Ejecución
Para ejecutar la prueba de interfaz, utilice el siguiente comando.
Sustituya
dinamo-
c:\cordaprovider
: con la ruta de la carpeta que contiene _corda
.jar
incluyendo los jars JCA;
corda
Dinamo Corda - c:\ .properties
: por la ruta con el nombre del archivo de configuración
;
Dinamo Corda -
c:\cordaspec.conf
: por la ruta con el nombre del fichero de especificaciones
;
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 otras pruebas cambiando la opción -t
. Véase la ayuda.