FNR unido

Unid es un método utilizado en Noruega para asignar un número personal (Fnr) a otro número (Unid). El Unid se utiliza en los certificados en lugar del Fnr real para evitar que este sea revelado a observadores. Los clientes autorizados pueden realizar una solicitud OCSP especial, con una extensión específica, para convertir el Unid al Fnr real.

Cliente de Fnr-Unid

Para la búsqueda de Unid, use https con un certificado de cliente en el cliente OCSP. Si usa https con un certificado de cliente y el respondedor OCSP está configurado para responder solicitudes de búsqueda, el cliente OCSP devolverá el Fnr. Este se devolverá si el certificado contiene un Unid en el componente SN del SubjectDN y si este Unid tiene una asignación válida a un Fnr en la base de datos de asignaciones Fnr-Unid del respondedor OCSP.

Si el Fnr devuelto es nulo, existen varios problemas posibles:

  1. El cliente no estaba autorizado a solicitar un Fnr.

  2. No había ningún mapeo Unid Fnr disponible.

  3. No había ningún Unid en el certificado (componente DN serialNumber).

Configuración de la extensión OCSP Unid-Fnr en el servidor OCSP/VA

A continuación se describe cómo configurar el manejo de extensiones Unid utilizando el respondedor OCSP externo y debe leerse en combinación con la sección Administración del respondedor OCSP .

Configuración del servidor de búsqueda Unid

El respondedor OCSP viene con una extensión para buscar asignaciones Unid-Fnr.

Para habilitar la extensión Unid, configure las siguientes opciones para la combinación de teclas OCSP adecuada:

  • Editar la combinación de teclas OCSP.

  • En Extensiones OCSP , seleccione Unid Fnr .

  • Haga clic en Agregar y guarde la combinación de teclas.

Para que la extensión Unid esté disponible en EJBCA, la propiedad unidfnr.enabled debe establecerse como verdadera en ocsp.properties antes de implementar EJBCA.

La siguiente configuración está disponible para la extensión Unid. Para obtener información sobre todas las opciones de OCSP disponibles, consulte ocsp.properties.sample .

Fuente de datos Unid

Debe configurarse en la CLI de JBoss, utilizando el siguiente comando (asumiendo que se utiliza MySQL con el controlador MariaDB):

Mosca silvestre
data-source add --name=unidds --jta= false --driver-name= "mariadb-java-client.jar" --connection-url= "jdbc:mysql://127.0.0.1:3306/unid" --jndi-name= "java:/UnidDS" --use-ccm= true --driver- class = "org.mariadb.jdbc.Driver" --user-name= "uniduser" --password= "unidpass" --validate-on-match= true --background-validation= false --prepared-statements-cache-size= 50 --share-prepared-statements= true --min-pool-size= 5 --max-pool-size= 150 --pool-prefill= true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql= "select 1"


JBoss
data-source add --name=unidds --jta= false --driver-name= "org.mariadb.jdbc.Driver" --connection-url= "jdbc:mysql://127.0.0.1:3306/unid" --jndi-name= "java:/UnidDS" --use-ccm= true --driver- class = "org.mariadb.jdbc.Driver" --user-name= "uniduser" --password= "unidpass" --validate-on-match= true --background-validation= false --prepared-statements-cache-size= 50 --share-prepared-statements= true --min-pool-size= 5 --max-pool-size= 150 --pool-prefill= true --transaction-isolation=TRANSACTION_READ_COMMITTED --check-valid-connection-sql= "select 1"

Certificados de confianza

Todos los clientes que deseen consultar la asignación Unid-Fnr deben contar con un certificado de cliente. El emisor de los certificados de cliente debe ser el mismo que el del servidor para la comunicación TLS con el servidor OCSP (véase más adelante). Utilice los siguientes parámetros (si difieren de los predeterminados) al emitir almacenes de claves a los clientes:

  • Archivos PKCS#12

  • Cliente TLS de uso de clave extendido

Cuando se emite un certificado para un cliente de búsqueda, debe añadirse a Certificados de confianza para la vinculación de claves OCSP. Cada certificado añadido (número de serie hexadecimal) debe coincidir con la CA emisora en la columna Autoridad de certificación .

Tablas de bases de datos

Cree la base de datos utilizando el siguiente script SQL:

CREATE TABLE UnidFnrMapping (
unid VARCHAR (250) NOT NULL DEFAULT '' ,
fnr VARCHAR (250) NOT NULL DEFAULT '' ,
rowProtection LONGTEXT,
rowVersion INT (11) NOT NULL ,
PRIMARY KEY (unid)
);

Configuración de TLS en el servidor de búsqueda Unid

Esto no se aplica si está ejecutando el servidor OCSP integrado con EJBCA, ya que TLS lo configura EJBCA.

En un servidor OCSP independiente, debe configurar TLS con autenticación de cliente, lo que requiere un almacén de claves JKS para la clave y el certificado del servidor. Utilice estos parámetros (si difieren de los predeterminados) al emitir almacenes de claves a los servidores TLS:

  • Archivos JKS

  • Uso de la clave: Firma digital, cifrado de clave

  • Uso extendido de la clave: servidor TLS

El nombre común (CN) de un servidor TLS debe ser el mismo que el nombre DNS completo de la máquina utilizado para llamar al servidor. Por ejemplo , CN=ocsp.primekey.com . Para los demás componentes del DN, puede elegir libremente.

Una vez emitido el almacén de claves JKS, puede configurar TLS en el servidor OCSP de la misma manera que en el servidor EJBCA. Se configura en el archivo JBOSS_HOME/server/default/deploy/jbossweb.sar/server.xml del servidor CA. Los conectores para los puertos 8442 y 8443 constituyen la configuración de TLS. Es importante configurar correctamente los valores de keystoreFile, keystorePass, truststoreFile y truststorePass.

Coloque el almacén de claves para el servidor TLS en el archivo p12/tomcat.jks en el respondedor OCSP externo para permitir que se implemente correctamente al usar ant ocsp-deploy , y no tendrá que cambiar el archivo server.xml que es sobrescrito por ant ocsp-deploy .

Seguridad del servidor de búsqueda

El servidor de búsqueda siempre verifica que cada cliente esté usando TLS con autenticación de cliente, que el certificado sea válido y sea uno de los certificados ubicados en el directorio al que apunta ocsp.unidtrustdir .

Tenga en cuenta que si no se cumplen estas condiciones, no se devuelve ningún Fnr.

Activación

Puede configurar EJBCA para generar identificadores de unidad (UNID) cuando una RA utiliza los protocolos CMP, REST o WS. Los identificadores de unidad generados se almacenan en una base de datos de mapeo que puede ser leída por el respondedor de OCSP.

Se aplican los siguientes requisitos:

  • Se supone que la tabla de base de datos es idéntica a la de la implementación UNID/FNR de OCSP (a menudo la misma base de datos).

  • El convertidor de FNR noruego a Unid se selecciona como procesador de solicitudes en la configuración de la CA:

    imágenes/descargar/archivos adjuntos/117380690/Captura de pantalla_2020-04-14_a_18.33.48.png
  • Se configura una fuente de datos Unid llamada java:/UnidDS en el servidor de aplicaciones. Tenga en cuenta que debe ser una fuente de datos no transaccional (no-tx-datasource), como se especifica al establecer jta=false en la configuración de la fuente de datos anterior.

Operación detallada:

  • Se realiza una solicitud de certificado con KeyId que contiene un perfil de certificado con el nombre "pppp-pppp-..."

  • La solicitud de certificado contiene un atributo DN serialNumber que contiene el FNR de 11 dígitos + LRA de 5 dígitos de acuerdo con lo siguiente: DN del sujeto: CN=Alexander Rybak, serialNumber=fffffffffff-lllll, C=NO

  • Ahora EJBCA crea una cadena alfanumérica aleatoria de 6 caracteres "rrrrrr" y reescribe el DN del sujeto para que el certificado resultante sea como:
    DN del sujeto: CN=Alexander Rybak, número de serie=pppp-pppp-lllllrrrrrr, C=NO

  • En la base de datos, el FNR se establece en "fffffffffff" y el UNID en "pppp-pppp-lllllrrrrrr". El UNID es una clave principal en la base de datos para garantizar su unicidad.