Configuración
Dinamo DinamoLa biblioteca PKCS#11 de HSM es una capa por encima de la API nativa de . Puede consultar las opciones de configuración de la biblioteca cliente en el Manual del usuario.
La configuración se realiza mediante variables de entorno (con el prefijo DFENCE_PKCS11_
) que deben establecerse en el ámbito del sistema, usuario o proceso que carga la biblioteca.
Información
Advertencia: Siempre que cambie las variables de entorno, deberá reiniciar la aplicación.
Usuario
DFENCE_PKCS11_USER
Id (nombre) del usuario (userid) del HSM que utilizará PKCS#11.
La variable debe tener el id del usuario para que la librería PKCS#11 funcione correctamente.
Nota: si utiliza el parámetro
pPin
para introducir el ID de usuario (véase la variableDFENCE_PKCS11_SPECIAL_PWD
más abajo) no es necesario establecerDFENCE_PKCS11_USER
.
Dirección IP
DFENCE_PKCS11_IP
Dirección IP del HSM.
La variable debe ajustarse a la dirección IP del HSM para que PKCS#11 funcione correctamente.
Nota: si utiliza el parámetro
pPin
para introducir la dirección IP del HSM (véase la variableDFENCE_PKCS11_SPECIAL_PWD
más abajo), la dirección IP definida aquí se utilizará en las funciones PKCS#11 no autenticadas (por ejemplo,C_GetTokenInfo
,C_GetSlotInfo
, etc.) y la dirección IP introducida enpPin
se utilizará en la operación de autenticación.
PIN especial
DFENCE_PKCS11_SPECIAL_PWD
Permite pasar el identificador de usuario, la contraseña y la dirección IP del HSM en el parámetro pPin
de la función PKCS#11 C_Login
.
Variable no establecida o variable establecida en 0
: el parámetro pPin
(en la función PKCS#11 C_Login
) sólo debe recibir lacontraseña
del usuario HSM:
contraseña
Variable establecida en 1
: el parámetro pPin
(en C_Login
) debe recibir el id de usuario(userid
), la contraseña(password
) y la dirección IP del HSM(ip
) en el formato:
usuario:contraseña@ip
masterPor ejemplo:
:12345678@10.0.62.10
Si el balanceo de carga está activado, la IP será ignorada internamente.
Para funciones PKCS#11 no autenticadas, la dirección IP utilizada será la introducida en la variable DFENCE_PKCS11_IP
.
Cifrado
DFENCE_PKCS11_ENCRYPTED
Define si la conexión realizada al HSM debe ser cifrada (TLS) o entexto claro.
Variable no establecida o variable establecida en 1
: la conexión con el HSM se cifrará.
Variable ajustada a 0
: la conexión con el HSM será en texto claro.
Se recomienda utilizar una conexión cifrada.
Reconexión automática
DFENCE_PKCS11_AUTO_RECONNECT
Permite la reconexión automática de las sesiones HSM en caso de fallo.
Variable no configurada o configurada en 0
: la reconexión automática está desactivada.
Variable establecida en 1
: la reconexión automática está activada.
Se recomienda utilizar la reconexión automática activada.
La reconexión automática está disponible en las API que acceden al HSM y que no forman parte de operaciones que requieren más de un paso para finalizar.
Ejemplos de APIs que no tienen auto-reconnect: C_Encrypt
, C_EncryptUpdate
, C_Decrypt
, C_DecryptUpdate
etc. En caso de fallo de la red en estas funciones, debe cerrar la sesión que ha fallado, abrir una nueva y rehacer la operación.
Ruta de registro
DFENCE_PKCS11_RUTA_REGISTRO
Ruta con el nombre del fichero que contendrá los logs generados por la librería.
Variable no definida, no se genera el registro.
La variable definida debe contener la ruta y el nombre del archivo.
Ex.: c:\tacndp11.log
Nivel de registro
DFENCE_PKCS11_LOG_LEVEL
Define el nivel de registro.
Los niveles de registro son:
- 0 : sólo errores; registra únicamente las situaciones de error (que normalmente impiden que se lleve a cabo el servicio solicitado).
- 3 : depuración; registra información detallada de funcionamiento, así como mensajes de error.
- 1000 : desactivado; no se registra ningún evento.
En condiciones normales de funcionamiento, se recomienda mantener el registro de la biblioteca al mínimo. El nivel de depuración puede utilizarse para diagnosticar problemas de funcionamiento.
Descarga de troncos
DFENCE_PKCS11_LOG_FLUSH
Permite que los mensajes de registro se escriban directamente en el archivo de registro, sin utilizar un búfer.
Variable no configurada o configurada en 0: los mensajes de registro se tamponan y se escriben en el archivo de registro a intervalos.
Variable establecida en 1
: los mensajes de registro se escriben directamente en el archivo.
La biblioteca puede mantener un pequeño búfer de mensajes de registro antes de escribir físicamente en el archivo. Esto permite mejorar el rendimiento. En condiciones de error o situaciones de diagnóstico, es interesante que el registro se escriba inmediatamente después de producirse.
Lista de búsqueda grande
DFENCE_PKCS11_LARGE_FIND_LIST
Permite utilizar la búsqueda para grandes cantidades de objetos.
Variable no definida o definida como 0
: utiliza el sistema de búsqueda estándar con un límite de lectura de 512 objetos por usuario. Los objetos por encima del límite de 512 objetos no aparecen en la búsqueda.
Permite realizar otras llamadas utilizando la misma sesión durante una operación de búsqueda.
Ejemplo permitido:
C_FindObjectsInit(session1);
. . .
C_FindObjects(session1);
. . .
C_GetAttributeValue(session1);
. . .
C_FindObjectsFinal(session1);
Variable establecida en 1
: utiliza el sistema de búsqueda para grandes cantidades de objetos por usuario.
Busca cantidades superiores a 512 objetos, pero no permite realizar otras llamadas utilizando la misma sesión durante una operación de búsqueda.
Ejemplo permitido:
C_FindObjectsInit(session1);
. . .
C_FindObjects(session1);
. . .
C_FindObjectsFinal(session1);
. . .
C_GetAttributeValue(session1);
Ejemplo no permitido:
C_FindObjectsInit(session1);
. . .
C_FindObjects(session1);
. . .
C_GetAttributeValue(session1);
. . .
C_FindObjectsFinal(session1);
Objetos no privados
HSM_PKCS11_SOPORTE_DE_OBJETOS_NO_PRIVADOS
Permite la creación de objetos no privados (
atributo CKA_PRIVATE
igual a 0).
El atributo de objeto CKA_PRIVATE
indica si un objeto es privado o público en términos de sus requisitos de acceso. En el contexto de PKCS#11, se puede acceder a un objeto público mediante una sesión autenticada o no autenticada, mientras que sólo se puede acceder a un objeto privado mediante una sesión autenticada.
Para permitir la creación de objetos públicos(CKA_PRIVATE
igual a 0), debe utilizarse esta variable de entorno.
Variable no establecida o establecida en 0
: no permite la generación de objetos públicos(CKA_PRIVATE
igual a 0).
Variable establecida en 1
: permite la generación de objetos públicos(CKA_PRIVATE
igual a 0).
Atributos conflictivos
HSM_PKCS11_DISABLE_CONFLICTING_ATTR
Permite el uso de atributos contradictorios (por ejemplo, CKA_SENSITIVE
y CKA_EXTRACTABLE
con valores CK_TRUE).
Para permitir la creación de objetos con atributos conflictivos, debe utilizarse esta variable de entorno.
Actualmente, esta opción es válida para los atributos CKA_SENSITIVE
y CKA_EXTRACTABLE
.
Variable no definida o ajustada a 0
: no permite generar objetos con atributos conflictivos.
Variable establecida en 1
: permite generar objetos con atributos conflictivos.