Manual Técnico

Introducción

El objetivo de este documento es describir el funcionamiento de la solución GBS PSBio, los principales componentes, modos de funcionamiento, configuraciones y principales procedimientos. Tenga en cuenta que la solución GBS PSBio comprende los módulos SPID Client, Módulo AC y Módulo PSBio, los cuales serán detallados posteriormente.

Este manual está actualizado para la versión 5.1.1 del PSBio

Arquitectura

Introducción

La solución completa de GBS PSBio está compuesta por 3 módulos principales: SPID Client, Módulo AC y Módulo PSBio (Proveedor de Servicios Biométricos).

Arquitectura PSBio

Los módulos serán más detallados en las secciones siguientes; sin embargo, básicamente las siguientes funcionalidades se asignan a cada módulo:

SPID Client

Es responsable de la recolección biométrica, autenticar a los operadores y generar los informes de recolección biométrica.

Módulo AC

Es responsable de recibir las recolecciones biométricas provenientes de las estaciones de trabajo, acceder al Servicio de Generación de IDN y enviar al PSBio. Además, el Módulo AC también almacena la Base de Imágenes de la Autoridad Certificadora y realiza el registro/eliminación de operadores.

Módulo PSBio

Es responsable de ejecutar las búsquedas biométricas e implementar las reglas de negocio del PSBio.

Es importante resaltar que los Módulos AC y PSBio funcionan como una capa de integración por encima del GBS Cluster, el ABIS (Automated Biometric Identification System) de Griaule.

SPID Client

SPID Client es el software responsable de:

  • Realizar las recolecciones biométricas (face y huella dactilar)

  • Realizar el registro de operadores

  • Realizar la autenticación de operadores

  • Generar informes de recolección biométrica.

Utilización

Consulte el Manual de Uso del SPID Client para más detalles sobre la utilización del SPID Client.

Recolección Biométrica

Durante la recolección biométrica, el SPID Client verifica la calidad de las biometrias, captura las biometrias si están dentro de los estándares de calidad configurados y arma el paquete biométrico que será enviado al Módulo AC.

Cifrado de los Datos

Los datos biométricos de las consultas se cifran y almacenan en la máquina local en la base de datos H2, tanto para recolecciones realizadas en modo online como en modo offline.

Para ello, el software cliente de recolección biométrica (Griaule SPID Client) cifra el paquete de datos enviado al servidor utilizando una clave aleatoria AES, la cual es cifrada con una clave RSA.

En el servidor, ese paquete de datos se descifra utilizando la clave privada RSA. La llamada al servidor se realizará utilizando canal seguro HTTPS sin la necesidad de certificado embebido en el software de recolección.

Apuntamiento al Módulo AC

Es posible configurar a cuál Módulo AC se desea apuntar el SPID Client mediante la edición del archivo C:\Griaule\SPID\conf\GBSSpid2.properties. Para realizar dicha configuración el campo server.url debe ser configurado con la URL del Módulo AC:

# GBS Server connection
server.url=https://<hostname_modulo_AC>:8082/gbs-spid-server/service/cluster
server.username=admin
server.password=admin

Registros (Logs)

Los logs de la aplicación pueden encontrarse en C:\Griaule\SPID\log.

Módulo AC

El módulo AC es responsable de recibir las transacciones provenientes de las estaciones de trabajo, realizar la sustitución del CPF por IDN (a través del acceso al Servicio de Generación de IDN) y enviar las transacciones al Módulo PSBio.

Detalles de cómo configurar el apuntamiento al PSBio y la autenticación mutua HTTPS Módulo AC-PSBio se presentan en los procedimientos descritos en la sección Toolkits.

En el Módulo AC, el paquete biométrico se abre y se guardan los datos biométricos y biográficos de los solicitantes y operadores. En este módulo se almacenan la información de biometrias, CPFs e IDNs.

Además de ser autenticadas durante la recolección biométrica en el SPID Client, las biometrias de los operadores también son autenticadas en el Módulo AC cuando la transacción llega al servidor.

Panel de Control

El módulo AC posee un panel de control, accesible mediante usuario y contraseña, en el cual es posible realizar las siguientes acciones:

  • Consultar transacciones realizadas y el resultado de cada una

  • Incluir / excluir operadores autorizados a iniciar sesión en el SPID Client.

Transacciones:

Panel de Control: Transacciones

Las transacciones se filtran por:

  • Fecha inicial y Fecha final (todas las transacciones dentro del periodo serán mostradas)

  • Tipo de transacción:

    • Registro

    • Búsqueda

    • Actualizaciones

  • Estado

  • CPF del Cliente

  • CPF del Operador

Registro de Operadores:

Panel de Control: Registro de Operadores

Los CPFs de los operadores pueden insertarse en lista o individualmente a través del campo de adición. Para inserción en lista, los CPFs deben separarse por coma, espacio o saltos de línea.

Los números pueden insertarse en el formato con puntos y guión o sin ellos.

Configuración del Módulo AC: spid.yaml

El archivo de configuración del funcionamiento del Módulo AC es /etc/griaule/spid/properties/spid.yaml. A continuación se describen las principales propiedades:

spid:

  • authenticationEnabled: Define el uso de autenticación en el SPID.

    Valor Ejemplo: false

  • caName: Common name del certificado utilizado.

    Valor Ejemplo: ac1.griaule.com

  • documentID: Documento usado como clave que se envía al sistema.

    Valor Ejemplo: documentID

  • decryptionKeyPath: Ruta al archivo con la clave de cifrado.

    Valor Ejemplo: /etc/griaule/spid/conf/data_private.key

  • operator:

    • deduplicate: Propiedad booleana (true o false) que define si el registro de operador se realizará con o sin deduplicación. En caso de que el Módulo AC no esté funcionando junto con el Módulo PSBio, la deduplicación de operador (cuando está habilitada) se realiza contra toda la base de operadores y clientes. Si el Módulo AC está funcionando junto con el Módulo PSBio, la deduplicación de operador (cuando está habilitada) se realiza contra la base de operadores presente en el Módulo AC.

      Valor Ejemplo: false

hadoop:

  • zookeeperPath: Ruta para la conexión con el zookeeper del servidor, necesaria para la comunicación con la base de datos.

    Valor Ejemplo: localhost:2181

idn:

  • serviceUrl: Ruta del servicio de IDN.

    Valor Ejemplo: http://url:8081/gbs-spid-server/service/idn

gbds:

  • host: Ruta al servicio del GBS Cluster que se consume

    Valor Ejemplo: localhost

  • port: Puerto para el servicio del GBS Cluster que se consume

    Valor Ejemplo: 8085

  • useSSL: Define si el protocolo de seguridad debe usarse en la conexión con el GBDS

    Valor Ejemplo: false

  • authenticationEnabled: Uso de autenticación en el GBDS

    Valor Ejemplo: false

  • authenticationExpiration: Tiempo de expiración del token

    Valor Ejemplo: 600000

  • username: Usuario registrado en el GBDS

    Valor Ejemplo: admin

  • password: Contraseña del usuario registrado en el GBDS

    Valor Ejemplo: admin

psbio:

  • active: Define si el PSBIO está activo o no.

    Valor Ejemplo: true

  • name: Nombre del PSBio que está conectado. El nombre debe ser exactamente el mismo nombre presente en el certificado enviado por el PSBio.

    Valor Ejemplo: psbio.griaule.com

  • apiUrl: Ruta para la API del psbio server.

    Valor Ejemplo: https://url:8444/gbs-psbio-server/service/ac-api

  • hubUrl: Ruta para el HUB del psbio server.

    Valor Ejemplo: https://url:8444/gbs-psbio-server/service/hub

  • dirUrl: Ruta para el directorio del psbio server.

    Valor Ejemplo: https://url:8444/gbs-psbio-server/service/directory

spidx:

  • organizationName: Nombre de la Autoridad Certificadora

    Valor Ejemplo: ac1

  • organizationCallback: Callback de fin de recolección del SPIDX

    Valor Ejemplo: callback

  • organizationHostname: Hostname de la AC que será usado para que el SPIDX notifique al SPID Server.

    Valor Ejemplo: ac1

  • host: Ruta para el servicio del SPIDX

    Valor Ejemplo: spidx

  • port: Puerto para el servicio del SPIDX

    Valor Ejemplo: 8090

  • qualityThreshold: Umbral de calidad de captura de huellas dactilares

    Valor Ejemplo: 50

server:

  • port: Puerto donde funcionará el panel de control del PSBio sin uso de SSL. En caso de usar TLS, el valor predeterminado del puerto es 8444.

    Valor Ejemplo: 8082

  • ssl:

    • protocol: Protocolo de seguridad a utilizar.

      Valor Ejemplo: TLS

    • client-auth: Tipo de autenticación que el servidor debe tener con el cliente. Por ejemplo, el valor want define que el servidor solicitará al cliente un certificado de autenticación, pero no es obligatorio que el cliente lo posea.

      Valor Ejemplo: want

    • key-store: Ruta del keystore con los certificados del PSBio utilizados para la conexión segura con módulo AC y otros PSBios.

      Valor Ejemplo: /etc/griaule/psbio/keystore/ac1.griaulebiometrics.com.pfx

    • key-store-password: Contraseña del keystore del PSBio.

      Valor Ejemplo: password

    • trust-store: Ruta del repositorio con los certificados autorizados para conexión segura.

      Valor Ejemplo: /etc/griaule/psbio/keystore/cacerts

    • trust-store-password: Contraseña del repositorio con certificados para conexión segura.

      Valor Ejemplo: changeit

security:

  • require-ssl: Define si el protocolo de seguridad debe usarse en la aplicación

    Valor Ejemplo: false

legacy:

  • http-port: Puerto de acceso legado

    Valor Ejemplo: 8081

Configuración del Módulo AC: controlpanel.properties

El archivo de configuración del funcionamiento del Panel de Control del Módulo AC es /etc/griaule/spid/properties/controlpanel.properties. A continuación se describen las principales propiedades:

app.mode

Descripción: Usado para fines de control del nivel de información que se imprime en el log.

Valor Predeterminado: RELEASE

server.http.host

Descripción: Ruta para el servicio del módulo AC.

Valor Predeterminado: localhost

server.http.port

Descripción: Puerto donde está funcionando el servicio del módulo AC.

Valor Predeterminado: 8082

server.port

Descripción: Puerto donde funcionará el servicio del panel de control del Módulo AC.

Valor Predeterminado: 58086

Autenticación entre Módulo AC-HSM (Generación de IDN)

Los archivos keystore, que contienen los certificados x509 públicos y privados del módulo AC en formato JKS, están ubicados por defecto en la carpeta /etc/griaule/spid/keystore.

Configuración de Actualización Automática del SPID Client

El Módulo AC permite la configuración de actualización automática de las aplicaciones SPID Client, utilizadas para recolección biométrica. En resumen, este recurso permite actualizar todas las estaciones que se conectan al Módulo AC sin la necesidad de actualizar una por una. Las configuraciones permiten la actualización con o sin la confirmación del usuario. Es decir, en el primer caso se pregunta al usuario si desea actualizar el SPID Client. En el segundo caso la aplicación se actualiza directamente, sin confirmación del usuario. Para más detalles, consulte la sección Configuración del Módulo AC para actualización automatizada del SPID.

Módulo PSBio

El Módulo PSBio es responsable de implementar las reglas de negocio del PSBio de acuerdo con las normativas de la ICP-Brasil.

Tolerancia a Fallos

Para hacer uso de la tolerancia a fallos en la capa del PSBio, este módulo debe instalarse y configurarse en todos los nodos del GBS Cluster. La tolerancia a fallos se realiza mediante la elección de un líder.

Cuando los PSBios de un mismo cluster arrancan, solo uno de ellos es elegido líder y solo el líder puede realizar las actividades “proactivas”, como por ejemplo, el tratamiento de colas del sistema.

Todos los PSBios (incluido el líder) pueden recibir solicitudes. Si el líder cae, los otros PSBios lo perciben y uno de ellos asume el liderazgo.

En la integración con el Módulo PSBio, en caso de caída de uno de los nodos del cluster, las solicitudes subsiguientes deben encaminarse al nodo subsiguiente que asuma el liderazgo.

Ubicación de los Archivos de Certificado x509 del Módulo PSBio

Los archivos de certificados x509 del Módulo PSBio están ubicados en /etc/griaule/psbio/keystore.

Configuración del Módulo PSBio: config.properties

El archivo de configuración del funcionamiento del Módulo PSBio es /etc/griaule/psbio/properties/config.properties. A continuación se describen las principales propiedades:

gbds.host

Descripción: Ruta al servicio del GBS Cluster que se consume.

Valor Predeterminado: localhost

gbds.port

Descripción: Puerto para el servicio del GBS Cluster que se consume.

Valor Predeterminado: 8085

zookeeper.path

Descripción: Ruta para la conexión con el zookeeper del servidor, necesaria para la comunicación con la base de datos.

Valor Predeterminado: localhost:2181

kafka.path

Descripción: Ruta para la conexión con el kafka del servidor, necesaria para el uso de métricas con ELK.

Valor Predeterminado: localhost:9092

psbio.name

Descripción: Nombre del propio PSBio. El valor de este campo es asignado por el ITI de forma única para cada PSBio.

Valor Predeterminado: Griaule-1

psbio-info.path

Descripción: Ruta al JSON en el formato del DOC ICP 5.03 que contiene la información sobre los otros PSBios de la red.

Valor Predeterminado: /etc/griaule/psbio/conf/psbio-info.json

ac-info.path

Descripción: Ruta al JSON que contiene la información sobre los Módulos AC aceptados.

Valor Predeterminado: /etc/griaule/psbio/conf/ac-info.json

[
	{
		"ACId": "ac1.griaulebiometrics.com",
		"ACName": "ac1.griaulebiometrics.com",
		"ACEndpoint": "https://ac1.griaulebiometrics.com:8444/gbs-spid-server/service/notify"
	}
]

connection.timeout

Descripción: Tiempo de espera en segundos que el módulo espera para las conexiones que realiza con el módulo AC, con otros PSBios y con el GBS Cluster.

Valor Predeterminado: 10

read.timeout

Descripción: Tiempo de espera en segundos que el módulo espera para las conexiones que realiza con el módulo AC, con otros PSBios y con el GBS Cluster.

Valor Predeterminado: 10

queue.interval

Descripción: Tiempo entre barridos de verificación de transacciones en la cola de pendientes.

Valor Predeterminado: 60

queue.size

Descripción: Tamaño máximo de transacciones ejecutadas en paralelo en la cola de pendientes.

Valor Predeterminado: 1000

cache.start

Descripción: Hora de inicio del proceso de reconstrucción de cache, en UTC.

Valor Predeterminado: 1

cache.final

Descripción: Hora final del proceso de reconstrucción de cache, en UTC.

Valor Predeterminado: 9

pending.operations.delay

Descripción: Intervalo entre verificación de pendientes entre PSBios, en minutos.

Valor Predeterminado: 60

server.http.port

Descripción: Puerto donde funcionará el panel de control del PSBio sin uso de SSL.

Valor Predeterminado: 8084

server.port

Descripción: Puerto donde funcionarán las APIs del PSBio con uso de SSL.

Valor Predeterminado: 8444

server.ssl.key-store

Descripción: Ruta del keystore con los certificados del PSBio utilizados para la conexión segura con módulo AC y otros PSBios.

Valor Predeterminado: /etc/griaule/psbio/keystore/psbio1.griaulebiometrics.com.pfx

server.ssl.key-store-password

Descripción: Contraseña del keystore del PSBio.

Valor Predeterminado: password

server.ssl.trust-store

Descripción: Ruta del repositorio con los certificados autorizados para conexión segura.

Valor Predeterminado: /etc/griaule/psbio/keystore/cacerts

server.ssl.trust-store-password

Descripción: Contraseña del repositorio con certificados para conexión segura.

Valor Predeterminado: changeit

resend-transaction.timeout

Descripción: (UNIX) Timestamp del momento de actualización del PSBio v2 a PSBio v3, si aplica. Todas las transacciones pendientes hasta ese timestamp serán reenviadas al GBDS para reprocesar.

Valor Predeterminado: 0

external-bases.path

Descripción: Ruta hasta el json que contiene información sobre las bases de datos externas.

kafka.topic.elk.active

Descripción: Flag para el envío de mensajes al ELK.

Valor Predeterminado: false

Punto final del Hub Biométrico y del Servicio de Directorio

El PSBio posee dos módulos responsables de la comunicación con los demás PSBios, son: Hub biométrico y el Servicio de Directorio. El primero es responsable de traficar y recibir los archivos binarios o XMLs con las transacciones e imágenes biométricas.

El Servicio de Directorio implementa la API de sincronización entre los PSBios, descrita en el ítem 3.3.6 del DOC-ICP-05.03 y es responsable de mantener la sincronía con los demás PSBios. Los end-points de los módulos se describen a continuación:

  • Hub Biométrico: https://<hostname>/gbs-psbio-server/service/hub

Donde hostname es la IP del servidor que tiene instalado el Módulo PSBio.

  • Servicio de Directorio: https://<hostname>/gbs-psbio-server/service/directory

Donde hostname es la IP del servidor que tiene instalado el Módulo PSBio.

Panel de Control del PSBio

La conexión al panel de control del PSBio se realiza mediante protocolo HTTPS. De este modo, el certificado x509 (archivo .cer) debe añadirse al navegador para que la conexión sea posible. El certificado puede localizarse en el directorio indicado en la sección Ubicación de los Archivos de Certificado x509 del Módulo PSBio.

Generador de IDN

Para entornos que utilizan el generador de IDN, a continuación se describen procedimientos para la instalación, configuración, stop y start del servicio.

Instalación y Configuración

Los archivos proporcionados para la instalación son:

idnservice.tar.gz
idnservice_*.tar.gz
idnservice
gbs-spid-idnservice_*.jar
config.properties

Los archivos que contienen ‘*’ poseen variaciones dependiendo del fabricante del HSM y la versión del software.

Además de los archivos proporcionados, si es necesario, debe importarse el keystore, conforme al manual del fabricante del HSM y guardarse con el nombre keystore.jks.

Instalación:

Todos los pasos deben ejecutarse como root.

  1. Mueva los archivos a la máquina donde se configurará el generador de IDN.

  2. Extraiga los archivos comprimidos en los directorios listados:

    • idnservice.tar.gz en /var/lib/griaule

    • idnservice_*.tar.gz en /etc/griaule

    Ejemplo:

    tar -zxvf idnservice.tar.gz -C /var/lib/griaule/
    tar -zxvf idnservice_*.tar.gz -C /etc/griaule/
  3. Mueva el archivo gbs-spid-idnservice_*.jar a /var/lib/griaule/idnservice:

    mv gbs-spid-idnservice_*.jar /var/liv/griaule/idnservice
  4. Instale el archivo idnservice:

    mv idnservice /etc/init.d/
    chmod 0755 /etc/init.d/idnservice
  5. Instale el archivo keystore.jks:

    mv keystore.jks /etc/griaule/idnservice/keystore/
  6. Instale el archivo config.properties:

    mv config.properties /etc/griaule/idnservice/properties/

Configuración:

Edite el archivo /etc/griaule/idnservice/properties/config.properties y ajuste el alias de la clave a utilizar (definido en el HSM) y el modo de operación definido. Ejemplo:

entry.alias=IDN
operation.mode=GRIAULE_HOM
server.port=8084

Inicio del Generador de IDN

El generador de IDN se instala como servicio, y puede iniciarse con el comando:

service idnservice start

La inicialización y el funcionamiento pueden seguirse mediante el archivo de log:

tail -qF /var/log/griaule/idnservice/idnservice.log

Detención del Generador de IDN

Para finalizar el servicio de generación de IDN, use el comando:

service idnservice stop

Monitoreo y Recuperación

Para fines de monitoreo y recuperación automática en caso de pérdida de comunicación con el HSM, se dispone un script que debe insertarse en la crontab como usuario root; este puede configurarse para envío de correo en caso de falla.

Ejecute crontab -e e inserte:

* * * * * /var/lib/griaule/idnservice/scripts/monitor-idnservice.sh | mail -E -s “Asunto” email1,email2

Los mensajes enviados son:

  • Failure detected, restarting IDN Service

  • Restart was successful

  • Unable to communicate with the Service

  • Start was successful

Principales Puertos

Los principales puertos de comunicación utilizados por GBS PSBio se describen en el diagrama abajo. Esos puertos deben estar sin restricciones de firewall en ambos sentidos para que la comunicación entre las aplicaciones no se vea perjudicada.

Puertos de Comunicación

Los siguientes puertos deben tener los accesos liberados para las máquinas de los equipos que gestionan el GBS Cluster:

80    - Apache
8080  - API Ambari
8081  - API Cluster
8082  - API SPID PSBio
8444  - API Notificación PSBio
8088  - Monitoreo
8042  - Monitoreo
443   - Monitoreo
6515  - On Demand Broker
18080 - Spark
19888 - Monitoreo
50070 - HDFS
58086 - Panel de Control
16010 - HBase
16020 - HBase
16030 - HBase

Principales URLs

Las URLs utilizadas por las aplicaciones se describen a continuación:

  • SPID Client: http://<hostname modulo AC>:8082/gbs-spid-server/service/cluster

Si se usa autenticación SSL, cambie http por https en la URL anterior.

  • Panel de Control de Operadores: https://<hostname modulo AC>:58086/gbs-spid-controlpanel/

  • Panel de Control del PSBio: https://<hostname modulo PSBio>/gbs-psbio-server/

Para acceder al panel de control del PSBio es necesario que la estación de trabajo cliente tenga el certificado del PSBio para poder autenticarse (Comunicación HTTPS). De lo contrario, la página del navegador no se cargará.

  • Agincourt: http://<host name GBS Cluster AC>:8081/gbscluster-api/rest/services/

  • GBS Apps: http://<host name GBS Cluster PSBio>:8081/gbscluster-api/rest/services/

La configuración del GBS Apps - Tratamiento de Excepciones para ser utilizada junto con el PSBio debe hacerse con cuidado. El procedimiento de configuración y uso está descrito en el documento GBS ETR.

Es importante observar que el Módulo AC y el Módulo PSBio están compuestos por clusters de servidores (GBS Cluster). De esta manera, las APIs del Módulo AC y del Módulo PSBio no necesariamente están en el mismo servidor (hostname) que la API del GBS Cluster para cada uno de los Módulos. Esta información es importante para que el apuntamiento de las aplicaciones se realice correctamente. En las secciones posteriores de este manual se describirá el procedimiento para identificar en qué máquina está instalado el Módulo AC/PSBio.

Funcionamiento del Módulo AC y del Módulo PSBio

El módulo AC puede operar de dos maneras: solo o junto con el Módulo PSBio.

Operación del Módulo AC sin Módulo PSBio

Cuando no conectado al módulo PSBio, el Módulo AC realiza el registro de operadores y clientes en la propia base del Módulo AC. Así como el registro, la deduplicación también se realiza en la base del Módulo AC, donde todos los registros se confrontan con los registros de operadores y clientes/solicitantes. La clave de indexación utilizada en el módulo AC es el documento CPF.

Operación del Módulo AC con Módulo PSBio

Cuando el Módulo AC está conectado al PSBio, la transacción biométrica sigue el flujo completo:

  1. Recolección biométrica realizada en el SPID Client.

  2. Envío de la transacción al Módulo AC.

  3. Almacenamiento de las imágenes en el Módulo AC.

  4. Generación del IDN al consultar el servicio de generación de IDN.

  5. Envío de la transacción al Módulo PSBio, que realizará la deduplicación del registro y enviará la transacción a los demás PSBios.

  6. Cuando la transacción finaliza, el resultado se devuelve al Módulo AC, el cual deja el resultado disponible para consulta del SPID Client.

A nivel de arquitectura, la diferencia principal es que en esta configuración (Módulo AC y PSBio) el registro de operadores se realiza en el Módulo AC mientras que el registro y la deduplicación de clientes/solicitantes se realiza en el Módulo PSBio

Dinámica de Generación de Excepciones

A continuación se describen los casos de duplicidades en el PSBio, junto con los estados reportados después del tratamiento de las excepciones.

  1. Duplicidad en transacción de registro en la base local

    • Registro IDN 1 y biometrias 1, en el cual el registro se finaliza en la base local.

    • Registro IDN 2 y biometrias 1

      • Situación: En este escenario, se generará una excepción de registro.

      • Estado notificado al AC: estado de ENROLL_ANOMALY, acompañado del mensaje “Enroll resulted in exception | tcn: <tcn> | idn: <idn> | Same biometrics found in local PSBio | elapsed time: <elapsed_time> s”.

        • El registro presentó una excepción biométrica y está esperando tratamiento en la aplicación GBS Apps.

    • Posibles tratamientos:

      • Mismas biometrias: cuando las biometrias de ambos registros sean las mismas, indicando una sospecha de fraude. ATENCIÓN: las biometrias de ambos perfiles serán enviadas a la lista negra (blacklist).

        • Estado notificado al AC:

          • Para el TCN 1 se notifica el estado de PERSON_FRAUD, acompañado del mensaje “Enroll transaction marked as fraud | tcn: <tcn>| idn: <idn> | elapsed time: <elapsed_time> s”

          • Para el TCN 2 se notifica el estado de FRAUD.

      • Biometrias diferentes: cuando las biometrias de los dos registros no sean las mismas; es decir, el sistema informó similitud, pero las biometrias no pertenecen a la misma persona.

      • Recolección adicional: cuando se desea rechazar las biometrias del segundo registro. El segundo perfil será ignorado y no continuará con el registro.

      • Registro incorrecto: cuando se desea ignorar las biometrias del primer registro. Las biometrias del primer perfil serán eliminadas y el segundo perfil será registrado.

  2. Fallo en la actualización en transacción de actualización en la base local

    • Registro IDN 1 y biometrias 1, en el cual el registro se finaliza en la base local.

    • Actualización IDN 1 y biometrias 2

      • Situación: En este escenario, se generará una excepción en una transacción de actualización.

      • Estado notificado al AC: estado de UPDATE_ANOMALY.

        • El registro presentó una excepción biométrica y está esperando tratamiento en la aplicación GBS Apps.

      • Posibles tratamientos:

        • Mismas biometrias: cuando las biometrias del registro y de la actualización pertenezcan a la misma persona. Esto permitirá que la actualización sea procesada.

          • Estado notificado a la AC: Para el TCN 2 se notifica el estado UPDATE_OK.

        • Biometrías diferentes: cuando las biometrías del registro y de la actualización no sean las mismas. Si el original fue el perfil válido, seleccione la opción considera original válido; Si la transacción que generó la excepción fue válida, seleccione considera excepción válida. Importante: Las biometrías rechazadas serán enviadas a la lista negra (blacklist).

          • Considera Original Válido:

            • Estado notificado al AC:

              • Para el TCN 2 se notifica el estado de FRAUD.

          • Considera Excepción Válida: Tras ser tratada, se notifica al TCN 1 como FRAUD y se monta una transacción IDE, la cual se envía para ser investigada por los demás PSBios. Al concluir la búsqueda, la AC es notificada de que la transacción del TCN 2 se completó con éxito.

            • Estado notificado al AC:

              • Para el TCN 1 se notifica el estado de FRAUD.

              • Para el TCN 2 se notifica el estado de UPDATE_OK.

        • Recolección adicional: cuando se desea rechazar las biometrías de la actualización. El segundo perfil será ignorado y no continuará con el registro.

        • Registro incorrecto: cuando se desea ignorar las biometrías del registro. Las biometrías del primer perfil serán eliminadas y las de la actualización serán registradas.

  3. Transacción de registro con duplicidad encontrada en la caché

    • Otro PSBio registró el IDN 1 y biometrías 1 en su base local.

    • PSBio de origen realiza registro del IDN 2 con biometrías 1.

    • Situación: al realizar la búsqueda biométrica del IDN 2, las mismas biometrías serán encontradas en la caché del PSBio de origen. A continuación, el PSBio de origen envía el paquete IDE a los demás PSBios de la red y genera una excepción a ser tratada en GBS Apps.

    • Estado notificado al AC: ENROLL_ANOMALY junto con el mensaje “ENROLL resulted in exception | tcn: <tcn> | idn: <idn> | Same biometrics found in PSBio <PSBio> | elapsed time: <elapsed_time> s”

      • A continuación, el PSBio de origen envía el paquete IDE a los demás PSBios de la red.

    • Posibles tratamientos:

      • Mismas biometrías:

        • Al realizar tal tratamiento, GBS Apps indicará que dicho tratamiento no está disponible para esta situación, dado que tal transacción debe ser tratada por otro PSBio, mostrando el mensaje: “Unable to treat exception. idn is registered in biometric cache”.

      • Biometrias diferentes:

        • Al elegir la opción de “biometrías diferentes”, la excepción será tratada localmente y esperará la respuesta de los demás PSBios para notificar al módulo AC.

        • Si el PSBio de origen recibe todos los paquetes VRE con campo SRF: “X” (Resultado negativo para las biometrías enviadas desde el PSBio), el PSBio de origen notificará el estado ENROLL_OK al Módulo AC.

        • Si el PSBio de origen recibe al menos 1 paquete VRE con campo SRF: “M” (Resultado positivo para las biometrías enviadas desde el PSBio), el PSBio de origen notificará el estado ENROLL_ANOMALY junto con el mensaje “Misma(s) biometría(s) encontrada(s) en el PSBio <NOME_PSBIO>.”

      • Recolección adicional:

        • Al elegir la opción de “recolección nuevamente”, la excepción será descartada para que se pueda realizar una nueva toma. La transacción de registro no se verá afectada.

      • Registro incorrecto:

        • Al realizar tal tratamiento, GBS Apps indicará que dicho tratamiento no está disponible para esta situación, dado que tal transacción pertenece a otro PSBio, mostrando el mensaje: “Unable to treat exception. idn is registered in biometric cache”

  4. Transacción de actualización con duplicidad encontrada en otro PSBio

    • Otro PSBio registró el IDN 1 y biometrías 1 en su base local.

    • PSBio de origen realiza registro del IDN 1 con biometrías 2.

    • Situación:

      • Al recibir la transacción de actualización, el PSBio de origen enviará el archivo UPR al PSBio que posee el IDN 1 en su base local y esperará el resultado de dicha transacción.

      • Estado notificado al AC:

        • Si no es posible realizar el match biométrico en otro PSBio, se notificará el estado (al Módulo AC) de UPDATE_ANOMALY acompañado del mensaje “Update resulted in exception | tcn: <tcn> | idn: <idn> | Different biometrics from registration | elapsed time: <elapsed_time> s”

Toolkits

Exportación de las Biometrías del Módulo AC

Es posible realizar la exportación de las biometrías recogidas y almacenadas en el Módulo AC mediante el script get-biometrics. Los parámetros de entrada del script son el directorio de destino, la fecha de inicio y fecha de fin, indicando que las biometrías registradas/actualizadas entre estas dos fechas serán exportadas a la carpeta deseada. Las fechas deben informarse en el formato DD/MM/AAAA.

Las biometrías quedarán organizadas en directorios con la siguiente estructura:

output-dir
    |
    |
    +---aaaa-mm-dd
    |     |
    |     +---id-value
    |     |      |
    |     |      +---value_index_aaaammdd.wsq
    |     |      |
    |     |      +---value_aaaammdd.jpg
    |     |
    |     +---id-value
    |            |
    |            +---value_index_aaaammdd.wsq
    |            |
    |            +---value_aaaammdd.jpg
    |
    +---tguids.txt

En esta estructura de directorios la base es el directorio indicado en la invocación del script. En el segundo nivel existen los directorios representados por la fecha de realización de las transacciones. Dentro de este último hay uno o más directorios representados por el id, nombre del documento informado en el registro de esa persona (pguid si no hay documento), y el valor de este para una persona. Ese directorio a su vez contiene las biometrías de la persona en cuestión. Los archivos de huella estarán en formato WSQ con el nombre del archivo compuesto por el valor del identificador de la persona, el índice de la huella y la fecha. Los archivos de rostro estarán en formato JPEG con el nombre del archivo compuesto por el identificador de la persona y la fecha. Dentro del directorio base también existe el archivo tguids.txt con la identificación (tguid) de todas las transacciones realizadas en el período.

La invocación para utilizar este script debe realizarse mediante:

python get-biometrics.py --out-dir OUTPUTDIR --ini-date INIDATE --end-date ENDDATE

SPID H2 Dump

Requisitos:

  • El Java que ejecute la herramienta debe tener instalado el paquete Java Cryptography Extension (JCE) Unlimited Strength.

  • El script debe ejecutarse desde el nivel donde se encuentra la carpeta conf, que contiene las claves de encriptación y desencriptación de la base.

Ejemplo: Si la carpeta se extrae en C:\Users\usr39a\Desktop\gbs-spid-h2dump , la ejecución debe realizarse desde esa carpeta.

El script tiene tres modos de ejecución, indicados por el parámetro -mode:

  • dump: Exporta las biometrías presentes en las bases de datos a una carpeta específica.

  • report: Realiza la consulta del resultado de las recolecciones pendientes y genera tres archivos con los estados de las recolecciones en las bases: uno para los estados finales, otro para los resultados con error y el tercero para los resultados aún pendientes.

  • resend: Reenvía las recolecciones que no tienen estado final al servidor.

Parámetros adicionales del script:

-dbDir

Carpeta que contiene los archivos de la base de datos a analizar (solo se analizan archivos con la extensión .mv.db).

-dbFile

Indica un archivo específico de base de datos a analizar (debe contener la extensión .mv.db). Es obligatorio en todos los modos que este o el parámetro anterior (-dbDir) estén presentes. Si ambos están, solo tendrá efecto -dbFile.

-url

Ruta del servicio del servidor. La URL es la misma utilizada por la aplicación SPID Client. Obligatorio para los modos report y resend.

-output (opcional)

Directorio donde se guardarán las biometrías únicas (solo la primera recolección de cada identificador de cliente) exportadas. Solo tiene efecto en el modo dump.

-outputUpdates (opcional)

Directorio donde se guardarán las biometrías duplicadas (en caso de que ya exista una recolección exportada en el directorio anterior con un determinado identificador de cliente) exportadas. Tiene efecto solo en el modo dump.

-operatorID (opcional)

Filtro que considera solo las recolecciones con un determinado identificador de operador (el identificador debe estar sin puntuación). Ejemplo: 12345678909.

-clientID (opcional)

Filtro que considera solo las recolecciones con un determinado identificador de cliente (el identificador debe estar sin puntuación).

-interval (opcional)

Intervalo en segundos de envío entre cada una de las recolecciones en el modo resend. Observación: Se deben usar valores de 10 segundos o más.

Ejemplos de ejecución:

java -jar gbs-spid-h2dump.jar -mode report -dbDir J:/data/ -url http://192.168.0.140:8082/gbs-spid-server/service/cluster/

java -jar gbs-spid-h2dump.jar -mode resend -dbDir J:/data/ -url http://192.168.0.140:8082/gbs-spid-server/service/cluster/ -interval 10

java -jar gbs-spid-h2dump.jar -mode dump -dbFile J:/data/spid.mv.db -clientID 12345678909 -output coletas

Procedimientos

Inserción de Perfiles en la Blacklist del PSBio

Para realizar la inserción de las imágenes en la blacklist se debe realizar una operación de trusted-Enroll, directamente en el GBDS, para cada perfil biométrico de fraude, mediante la URL:

http://<ip>:8085/gbds/v2/people/trusted

Si el perfil contiene dedos y rostro, todas las biometrías deben enviarse en el mismo paquete JSON, análogo al paquete utilizado para operaciones de enroll.

Esta llamada es un POST que contiene un JSON:

{
	"meta": {
		"timeout": -1
	},
	"data": {
		"keys": [
			{
				"id": "blacklist",
				"value": "BBBBBBBB-BBBB-4B07-CCCC-67B6E09F64C8"
			}
		],
		"biometric": [
			{
				"index": "(0/10)",
				"content": "<base64>",
				"source": "ORIGINAL",
				"type": "(FINGERPRINT/FACE)",
				"format": "(WSQ/JPEG)",
				"properties": {
					"width": <ancho>,
					"height": <alto>,
					"resolution": <resolución>
				}
			}
		],
		"labels": [
			"BLACKLIST"
		]
	}
}

Se debe generar un UUID aleatorio para el campo “value”. Los índices utilizados en esta llamada de registro en la blacklist son los de la tabla abajo:

Índice
Biometría

0

Dedo mínimo izquierdo

1

Dedo anular izquierdo

2

Dedo medio izquierdo

3

Dedo índice izquierdo

4

Pulgar izquierdo

5

Pulgar derecho

6

Dedo índice derecho

7

Dedo medio derecho

8

Dedo anular derecho

9

Dedo mínimo derecho

10

Rostro

Obtener TCNs de Transacciones Enviadas entre PSBios

Transacciones Enviadas

Para obtener las transacciones enviadas a determinado PSBio, use el siguiente comando:

hbase shell

scan 'psbio_transactions',{FILTER => "SingleColumnValueFilter('f','dest', =, 'substring:GRIAULE') AND SingleColumnValueFilter('i','metadata', =, 'substring:originaryTCN')", MAXLENGTH => 300}

En este ejemplo, el resultado será la lista de todas las transacciones enviadas al PSBio GRIAULE.

Transacciones Recibidas

Para obtener las transacciones recibidas de determinado PSBio, use el siguiente comando:

hbase shell

scan 'psbio_transactions',{FILTER => "SingleColumnValueFilter('f','dest', =, 'substring:GRIAULE') AND SingleColumnValueFilter('i','metadata', !=, 'substring:originaryTCN')", MAXLENGTH => 300}

En este ejemplo, el resultado será la lista de todas las transacciones recibidas desde el PSBio GRIAULE.

Lista de Transacciones Pendientes en Otros PSBios

La query abajo permite obtener la lista de transacciones IDE pendientes que otros PSBios deben procesar para el PSBio de origen:

hbase shell << EOF > pending_1n_ORGANIZATION.out
scan 'psbio_orderPending',{MAXLENGTH => 300, FILTER => "SingleColumnValueFilter('i','dest',=,'binary:ORGANIZATION',true,true) AND SingleColumnValueFilter('i','status',=,'binary:PENDING',true,true)"}
EOF

Importante: Sustituya ORGANIZATION en ...'dest',=,'binary:ORGANIZATION',true... por el nombre del PSBio del cual desea obtener las pendientes.

La lista generada informa los TCNs que otro PSBio debe procesar para el PSBio de origen.

En el ejemplo arriba, el archivo de salida será pending_1n_ORGANIZATION.out.

Obtener TCNs y Estado de las Transacciones Generadas por el Módulo AC en el PSBio

hbase shell << EOF > archivoSalida.out
scan 'psbio_transactions',{MAXLENGTH => 300, TIMERANGE => [1517529600000,1518739199000], FILTER => "SingleColumnValueFilter('i','type',=,'substring:ENROLL',true,true)", COLUMNS => ['i:ac_sr','f:status','i:type']}
EOF

Los campos numéricos en TIMERANGE arriba indican el timestamp en milisegundos de inicio y fin, respectivamente, de las transacciones de las que se desean obtener los TCNs y resultados.

Configuración del Apuntamiento entre Módulo AC y Módulo PSBio

Para averiguar en qué entorno están instalados el Módulo PSBio y el Módulo AC, basta acceder a la carpeta /var/lib/griaule:

  • En el caso del Módulo PSBio, habrá una carpeta llamada psbio.

  • En el caso del Módulo AC, habrá una carpeta llamada spid.

Para apuntar el Módulo AC al Módulo PSBio, se debe seguir el siguiente paso a paso:

Servidor con Módulo AC

  • Edite el archivo /etc/griaule/spid/properties/config.properties y sustituya <hostname> por el hostname de la instancia en la que el módulo PSBio está corriendo:

    # nombre del PSBio con el que el Proxy se comunicará,
    # debe ser idéntico al nombre configurado en el
    # archivo config.properties del PSBio
    psbio.name=server-psbio
    psbio.api.url=https://<hostname>/gbs-psbio-server/service/ac-api
    psbio.hub.url=https://<hostname>/gbs-psbio-server/service/hub
    psbio.directory.url=https://<hostname>/gbs-psbio-server/service/directory
  • Anote la información en ac.name.

Servidor con Módulo PSBio

  • Edite el archivo /etc/griaule/psbio/conf/ac-info.json, para que coincida con el valor configurado en el config.properties del módulo AC:

    [
    	{
    		"ACId": "ac1.griaulebiometrics.com",
    		"ACName": "ac1.griaulebiometrics.com",
    		"ACEndpoint": "https://ac1.griaulebiometrics.com:8444/gbs-spid-server/service/notify"
    	},
    ]

La información de los archivos config.properties del Módulo PSBio y del Módulo AC necesita ser coherente. Los nombres deben concordar, así como los certificados. Además, los dos entornos deben ser capaces de comunicarse por los puertos configurados (en ambos sentidos).

Confirmación del driver, broker y API del GBS Cluster

Una vez que las configuraciones anteriores se hayan realizado, es necesario confirmar que el driver, el broker y la API del GBS Cluster estén en línea para ambos entornos. Esto puede hacerse a través de la API SC.

Acceda a http://<hostname>:8081/gbscluster-api/rest/services/sc.

Al acceder a esa URL, se listarán el driver y los brokers del GBS Cluster.

Reiniciando el Módulo AC y PSBio

Este paso debe realizarse en ambos entornos como root.

service psbio start
service spid start
service spid-cp start

Configuración del SPID Client

Una vez que los servicios del GBS Cluster y el Módulo AC/PSBio estén en línea, es necesario configurar el SPID Client para apuntar al Módulo AC.

Para ello, edite el archivo C:\Griaule\SPID\conf\GBSSpid2.properties y cambie server.url según el ejemplo abajo:

server.url=http://<hostname>:8082/gbs-spid-server/service/cluster/

Sustituya <hostname> por el hostname del Módulo AC. El PC debe poder acceder al Módulo AC a través del puerto 8082.

Seguimiento de Logs

La realización de los registros puede seguirse en los directorios /var/log/griaule/spid y /var/log/griaule/psbio.

Configuración de la URL del Servicio de Generación de IDN

Es posible configurar a qué URL del servicio de generación de IDN debe apuntar el Módulo AC. Esto puede hacerse modificando la propiedad idn: serviceUrl en el archivo /etc/griaule/psbio/properties/spid.yaml.

Configuración de Certificados para Autenticación HTTPS Módulo AC-PSBio

Instalación del Keystore

Obtenga el archivo .keystore, que es el certificado privado que debe estar en formato JKS. Básicamente es un keystore de Java con las claves privada y pública del cliente y también los certificados públicos de la cadena que lo firma.

Coloque el archivo .keystore en la carpeta /etc/griaule/psbio/keystore.

Configuración del PSBio

Edite el archivo /etc/griaule/psbio/conf/config.properties y actualice los campos de ruta y contraseña. El campo ac.name también debe cambiarse por el Common Name del certificado del módulo AC. Ejemplo:

server.ssl.key-store=/etc/griaule/psbio/keystore/certificado.keystore
server.ssl.key-store-password=senha
psbio.name=
ac.name=

Edite el archivo /etc/griaule/psbio/conf/psbio-info.json y cambie la propiedad PSBioId por el Common Name del certificado del módulo AC que se esté ejecutando en la dirección asociada.

Importación del Certificado Público de la AC

Para que el módulo PSBio reconozca el certificado de la AC y de otros PSBios, es necesario que el certificado público de la AC o PSBio y su respectiva cadena sean importados. Los archivos en formato .cer o .pem deben importarse en la lista de certificados aceptados, que se almacena en el archivo /etc/griaule/psbio/keystore/cacerts. La importación puede realizarse con el siguiente comando:

keytool  -import -trustcacerts -alias server-psbio10-w -file server-psbio10.cer -keystore /etc/griaule/psbio/keystore/cacerts -storepass changeit

El parámetro -alias indica el nombre del certificado a importar, y -file indica el archivo del certificado.

Importación del Certificado Público del PSBio

Para que el módulo AC reconozca el certificado del PSBio (autenticación HTTPS mutua), es necesario que el certificado público del PSBio y su respectiva cadena sean insertados. Para ello, los archivos en formato .cer o .pem deben importarse en la lista de certificados aceptados, que se almacena en el archivo /etc/griaule/spid/keystore/cacerts. La importación puede realizarse con el siguiente comando:

keytool  -import -trustcacerts -alias server-psbio10-w -file server-psbio10.cer -keystore /etc/griaule/spid/keystore/cacerts -storepass changeit

El parámetro -alias indica el nombre del certificado a importar, y -file indica el archivo del certificado.

Configuración de Certificados para Autenticación HTTPS entre Módulo AC y Servicio de Generación de IDN

Para que ocurra la autenticación mutua entre los servidores del Módulo AC y el servidor del servicio de Generación de IDN, es necesario que el certificado público del Módulo AC sea agregado en el Generador de IDN y viceversa.

La importación del certificado público del Módulo AC en el Generador de IDN no está descrita en este manual, pues la implementación del servicio de generación de IDN puede variar según el entorno.

En tanto, la importación del certificado público del Generador de IDN debe realizarse de forma similar a la descrita en la sección Importación del Certificado Público de la AC.

Cambio de la Versión de Java que Ejecuta la Aplicación

Para especificar una versión determinada de Java para la ejecución de la aplicación, edite el archivo initialize-psbio.sh, que se encuentra en /var/lib/griaule/psbio/scripts. Cambie la primera línea que contiene /etc/griaule/psbio/jdk1.8.0_101/bin/java.

Limpieza de la Base de Datos

Para realizar la limpieza de la base, es necesario seguir los pasos abajo y ejecutar el script truncate_hbase.sh.

El script debe ejecutarse como usuario griaule.

1. Detenga los servicios Módulo AC y PSBio

service spid stop
service spid-cp stop

2. Ejecute el script

truncate_hbase.sh

3. Reinicie los servicios

Espere unos minutos y reinicie los servicios de los Módulos AC y PSBio:

service spid start
service spid-cp start

Configuración de funcionamiento del Módulo AC y Módulo PSBio

El Módulo AC puede funcionar acoplado o no con el Módulo PSBio. En caso de acoplamiento, todos los registros de clientes serán enviados y desduplicados únicamente por el PSBio. En caso de no acoplamiento, todos los registros de clientes serán desduplicados en el propio Módulo AC.

Para realizar la configuración, se puede seguir el siguiente procedimiento:

  • Edite el archivo config.properties del Módulo AC.

  • Para activar el acoplamiento con PSBio, marque la variable operation.mode=psbio

  • Para desactivar el acoplamiento con PSBio, marque la variable operation.mode=gbds

Configuración del Módulo AC para actualización automatizada del SPID

A partir de la versión 1.4.0 del SPID, se implementaron dos nuevas llamadas para el módulo AC (check-version y update-version). En ellas, durante la inicialización del SPID Client, o del SPID Services, el programa verifica la última versión disponible de la aplicación, y puede preguntar o no al usuario si desea actualizar la versión en su equipo.

Para subir una nueva actualización en el servidor, se deben seguir los siguientes procedimientos:

  • En el Módulo AC, en la carpeta /etc/griaule/spid/client/exe , suba la versión más reciente disponible con el siguiente nombre: **%NOMBRE-DE-LA-EMPRESA%-spid-client-vX-X-X.exe*, donde X-X-X representa la versión X.X.X. Por ejemplo, para la versión 1.4.12 del SPID, el *archivo debe ser:*/etc/griaule/spid/client/exe/griaule-spid-client-v4-1-12.exe**

  • En la carpeta anterior (/etc/griaule/spid/client) debe existir un archivo llamado version. En él, solo debe existir una línea de texto con el número de la última versión disponible. Ese número debe coincidir con el de algún ejecutable presente en la carpeta /etc/griaule/spid/client/exe.

  • Dos opciones son posibles para la versión presente en el archivo version. La primera es guardar el número de la versión más reciente sin un asterisco al final (formato X.X.X). De esta forma, al usuario del SPID se le preguntará si desea actualizar su versión.

  • La otra opción es guardar el número de la versión más reciente disponible con un asterisco al final (formato X.X.X*). De esta forma, la actualización del SPID será obligatoria para todos los usuarios conectados a ese servidor, y la nueva versión se instalará sin elección del usuario.

Configurar Módulo AC para utilizar generación de IDN Local

Para apuntar el Módulo AC al generador de IDN local, se debe realizar el siguiente procedimiento:

  • Editar en el archivo /etc/griaule/spid/properties/config.properties la propiedad idn.service.url a http://localhost:8082/gbs-spid-server/service/idn

Replicación de los Servicios de PSBio en otro Sitio

En casos de disaster recovery es posible continuar los servicios del PSBio mediante la importación de la información del sitio principal en otro sitio de respaldo que tenga instalado el GBS Cluster.

Para ello, se debe mantener una rutina de exportación de los datos de la base mediante la metodología detallada en la documentación del GBS Cluster.

Registros (Logs)

Módulo AC

En los servidores que constituyen el módulo AC, el monitoreo y seguimiento de logs puede realizarse mediante los archivos siguientes:

/var/log/griaule/spid/ac.log
/var/log/griaule/spid/stderr.out
/var/log/griaule/spid/stdout.out

Módulo PSBio

En los servidores que constituyen un módulo PSBio, el monitoreo y seguimiento de logs puede realizarse mediante los archivos siguientes:

/var/log/griaule/psbio/psbio.log
/var/log/griaule/psbio/stderr.out
/var/log/griaule/psbio/stdout.out

Monitoreo

Para más información sobre el monitoreo del GBS PSBio, consulte los manuales de monitoreo del GBS Cluster.

Instalación

Instalación PSBio

Requisitos mínimos:

  • Memoria disponible: 2 GB

  • Espacio en disco disponible: 2 GB

  • GBS Cluster instalado

Paquetes necesarios:

  • gbs-psbio-server.tar.gz

Instalación

Extraiga el contenido de gbs-psbio-server.tar.gz y mueva el archivo gbs-psbio-server.jar al directorio /var/lib/griaule:

tar -xf gbs-psbio-server.tar.gz .
mv gbs-psbio-server.jar /var/lib/griaule/

Mueva el archivo config.properties al directorio /etc/griaule/psbio/properties:

mv config.properties /etc/griaule/properties/

Mueva los archivos psbio-info.json y ac-info.json al directorio /etc/griaule/psbio/conf:

mv *.json /etc/griaule/conf/

Mueva el archivo initialize-psbio.sh al directorio /var/lib/griaule/psbio/scripts y ajuste sus permisos:

mv initialize-psbio.sh /var/lib/griaule/psbio/scripts/
chmod 755 /var/lib/griaule/psbio/scripts/initialize-psbio.sh

Mueva el archivo psbio a la carpeta /etc/init.d y ajuste sus permisos:

mv psbio /etc/init.d/
chmod 755 /etc/init.d/psbio

Automatización de la instalación

Hay un RPM de instalación/actualización del PSBio. Los siguientes pasos se ejecutan en el momento de la instalación: Crea una carpeta /root/configs/ y copia los archivos de configuración en ella (config.sh ac-info.json config.properties initialize-psbio.sh psbio psbio-info.json) Extrae gbs-psbio-server.jar a /var/lib/griaule/psbio/ Por lo tanto, es necesario copiar y modificar manualmente los archivos psbio-info.json y ac-info.json.

Al ejecutar el script config.sh en /root/config.sh, para cada caso el usuario puede elegir entre no hacer nada o: Sobrescribir el servicio de inicio del psbio en /etc/init.d/ Sobrescribir initialize-psbio.sh en /var/lib/griaule/psbio/scripts/ Sobrescribir o hacer merge del config.properties Si es merge, el script hará append de las configuraciones del nuevo archivo que no estén presentes en el archivo antiguo. Es necesario cambiar los valores de acuerdo con el entorno.

rpm -ivh gbspsbioserver-RELEASE.x86_64.rpm
/root/configs/config.sh

Configuración

  • config.properties

Edite el archivo /etc/griaule/psbio/properties/config.properties según sea necesario:

#
# GBS PSBio Server properties
# Copyright 2020 Griaule Biometrics
#

# Path to Zookeeper
zookeeper.path=localhost:2181

# GBDS Connection
gbds.host=gbds
gbds.port=8085

# GBDS Authentication
gbds.authentication.enabled=false
gbds.authentication.expiration.interval=600000
gbds.username=admin
gbds.password=admin

# Timeout of any connection in seconds
connection.timeout=30

# Path to data decryption private key
decryption.key.path=/etc/griaule/spid/conf/data_private.key

# Mode of operation
operation.mode=gbds

# Type of document used as key
document.id=documentID

# PSBio Connection
psbio.name=psbio.griaule.com
psbio.api.url=https://psbio.griaule.com:8444/gbs-psbio-server/service/ac-api
psbio.hub.url=https://psbio.griaule.com:8444/gbs-psbio-server/service/hub
psbio.dir.url=https://psbio.griaule.com:8444/gbs-psbio-server/service/directory

# ID of this AC
ac.name=ac1.griaulebiometrics.com

# IDN Service Connection
idn.service.url=http://localhost:8082/gbs-spid-server/service/idn

# Require Operator Validation
operator.validate=false

# Deduplicate Operator
operator.deduplicate=true

# Evidences
evidence.generate=true
evidence.path=/etc/griaule/spid/coletas
evidence.format=griaule

# Port configuration
server.port=8444
server.http.port=8082

# SSL
server.ssl.key-store=/etc/griaule/spid/keystore/ac1.griaulebiometrics.com.pfx
server.ssl.key-store-password=password
server.ssl.trust-store=/etc/griaule/spid/keystore/cacerts
server.ssl.trust-store-password=changeit

# Timestamp of version upgrade
resend-transaction.timeout=0

# External Bases Verification
external-bases.path=/etc/griaule/psbio/conf/external-bases.json
  • psbio-info.json

Edite el archivo psbio-info.json ubicado en /etc/griaule/psbio/conf:

vim /etc/griaule/psbio/conf/psbio-info.json

El documento mostrará entradas similares a la entrada abajo, para cada PSBio. Deben configurarse según el patrón presentado a continuación:

[
	{
		"PSBioId": "server-psbioX",
		"PSBioName": "<hostname>",
		"nist_endpoint": "https://localhost/gbs-psbio-server/service/hub",
		"directory_endpoint": "https://localhost/gbs-psbio-server/service/directory"
	},
]

El campo PSBioId es el nombre dado al ITI para cada PSBio. El campo PSBioName debe completarse con el CommonName del certificado respectivo del PSBio. Las dos URLs referencian el propio cluster del PSBio.

  • ac-info.json

Edite el archivo ac-info.json ubicado en /etc/griaule/psbio/conf:

vim /etc/griaule/psbio/conf/ac-info.json

El documento presentará entradas similares a la entrada a continuación, para cada AC. Deben configurarse en el formato que se muestra a continuación:

[
	{
		"ACId": "acX.griaulebiometrics.com",
		"ACName": "acX.griaulebiometrics.com",
		"ACEndpoint": "https://ac1.griaulebiometrics.com:8444/gbs-spid-server/service/notify",
	},
]

Los campos ACId y ACName deben completarse con el CommonName del certificado respectivo de la AC. La URL referencia el endpoint de notificación de la AC.

Utilice los siguientes comandos para encender, apagar, reiniciar o verificar el estado del PSBio:

service psbio start
service psbio stop
service psbio restart
service psbio status
  • external-bases.json

Edite el archivo external-bases.json ubicado en /etc/griaule/psbio/conf/ según sea necesario:

[
	{
		"id": "DATAVALID",
		"host": "host",
		"port": 443
	}
]

Instalación del Módulo AC

Requisitos mínimos:

  • Memoria disponible: 2 GB

  • Espacio en disco disponible: 2 GB

  • GBS Cluster instalado

Paquetes necesarios:

  • spid.tar.gz

  • spid_etc.tar.gz

  • spid

  • spid-cp

  • gbs-spid-server_<versión>.zip

Instalación

Extraiga el contenido de spid.tar.gz en el directorio /var/lib/griaule:

tar -zxvf spid.tar.gz -C /var/lib/griaule/

Extraiga el contenido de spid_etc.tar.gz en el directorio /etc/griaule:

tar -zxvf spid_etc.tar.gz -C /etc/griaule/

Mueva los archivos spid y spid-cp a la carpeta /etc/init.d y ajuste sus permisos:

mv spid /etc/init.d
mv spid-cp /etc/init.d
chmod 755 /etc/init.d/spid*

Extraiga los archivos del paquete gbs-spid-server y muévalos a las ubicaciones indicadas:

unzip gbs-spid-server_<versión>.zip
mv gbs-spid-server.jar /var/lib/griaule/spid
mv gbs-spid-controlpanel.jar /var/lib/griaule/spid
mv config.properties /etc/griaule/spid/properties
mv controlpanel.properties /etc/griaule/spid/properties

Configuración

  • spid.yaml

    Edite el archivo /etc/griaule/spid/properties/spid.yaml según sea necesario. Un ejemplo de cómo puede configurarse el archivo:

    # SPID Server Configuration
    spid:
      authenticationEnabled: false
      caName: acdev1.griaule.com
      documentId: documentID
      decryptionKeyPath: /etc/griaule/spid/conf/data_private.key
      operator:
        deduplicate: false
    
    hadoop:
      zookeeperPath: localhost:2181
    
    idn:
      serviceUrl: http://localhost:8081/gbs-spid-server/service/idn
    
    evidence:
      generate: true
      path: /etc/griaule/spid/coletas
      format: griaule
    
    gbds:
      host: localhost
      port: 8085
      useSSL: false
      authenticationEnabled: false
      authenticationExpiration: 600000
      username: admin
      password: admin
    
    psbio:
      active: true
      name: psbiodev.griaule.com
      apiUrl: https://localhost:8444/gbs-psbio-server/service/ac-api
      hubUrl: https://localhost:8444/gbs-psbio-server/service/hub
      dirUrl: https://localhost:8444/gbs-psbio-server/service/directory
    
    spidx:
      organizationName: acdev1
      organizationCallback: callback
      organizationHostname: acdev1
      host: spidx
      port: 8090
      qualityThreshold: 50
    
    # Additional Spring Configurations
    server:
      port: 8082
      ssl:
        protocol: TLS
        client-auth: want
        key-store: /etc/griaule/spid/keystore/ac1.griaulebiometrics.com.pfx
        key-store-password: password
        trust-store: /etc/griaule/spid/keystore/cacerts
        trust-store-password: changeit
    
    security:
      require-ssl: false
    
    # Legacy Configuration
    legacy:
      http-port: 8081
  • controlpanel.properties

    Edite el archivo /etc/griaule/spid/properties/controlpanel.properties según sea necesario:

    #
    # GBS SPID Control Panel properties
    # Copyright 2020 Griaule Biometrics
    #
    
    # SPID Control Panel port
    server.port=58086
    
    # SPID Server Connection
    server.http.host=localhost
    server.http.port=8082

Utilice los siguientes comandos para encender, apagar, reiniciar o verificar el estado del módulo AC y del Panel de Control:

service spid start
service spid stop
service spid restart
service spid status

service spid-cp start
service spid-cp stop
service spid-cp restart
service spid-cp status

Configuración de Backup

Copie los archivos backup-spid-server.sh y restore-spid-server.sh al directorio /var/lib/griaule/gbscluster/scripts/.

Agregue el job de backup de cron como usuario griaule. Ejecute el comando crontab -e y agregue la siguiente línea a la configuración:

0 23 * * * griaule /var/lib/griaule/gbscluster/scripts/backup-spid-server.sh

El script hará un backup de las tablas del Módulo AC en el directorio /home/griaule/backup/modulo-ac y mantendrá los últimos 5 días de backup. Corresponde al cliente copiar estos archivos a un medio externo.

Para realizar la restauración, descomprima el contenido del archivo tgz creado por el backup al directorio /home/griaule/backup/modulo-ac y ejecute el script restore-spid-server.sh como usuario griaule.

Contenido del script backup-spid-server.sh:

#!/bin/sh
### ====================================================================== ###
##                                                                          ##
##  Griaule Biometric PSBio data backup script                              ##
##                                                                          ##
### ====================================================================== ###

HDFS_BACKUP_DIR=griaule/backup/modulo-ac

hdfs dfs -test -d $HDFS_BACKUP_DIR
if [ $? == 0 ]; then
  echo "Clearing previous backup:"
  hdfs dfs -rm -R $HDFS_BACKUP_DIR
fi;

hbase org.apache.hadoop.hbase.mapreduce.Export 'proxy_operators' $HDFS_BACKUP_DIR/proxy_operators
hbase org.apache.hadoop.hbase.mapreduce.Export 'proxy_order' $HDFS_BACKUP_DIR/proxy_order
hbase org.apache.hadoop.hbase.mapreduce.Export 'proxy_people' $HDFS_BACKUP_DIR/proxy_people
hbase org.apache.hadoop.hbase.mapreduce.Export 'proxy_transactions' $HDFS_BACKUP_DIR/proxy_transactions

hdfs dfs -get griaule/backup/modulo-ac /home/griaule/backup/modulo-ac
tar -czvf /home/griaule/backup/modulo-ac.tgz /home/griaule/backup/modulo-ac
mv /home/griaule/backup/modulo-ac.tgz /home/griaule/backup/modulo-ac_`date +%d-%m-%Y`.tgz
rm -rf /home/griaule/backup/modulo-ac
find /home/griaule/backup/* -mtime +5 -exec rm {} \;

Contenido del script restore-spid-server.sh:

#!/bin/sh
### ====================================================================== ###
##                                                                          ##
##  Griaule Biometric PSBio data restore script       ##
##                                                                          ##
### ====================================================================== ###

HDFS_BACKUP_DIR=griaule/backup/modulo-ac

hdfs dfs -test -d $HDFS_BACKUP_DIR
if [ $? != 0 ]; then
  echo "HDFS Backup path not found:"
  echo $HDFS_BACKUP_DIR
  exit 1;
fi;

hdfs dfs -put /home/griaule/backup/modulo-ac griaule/backup/modulo-ac

hbase org.apache.hadoop.hbase.mapreduce.Import 'proxy_operators' $HDFS_BACKUP_DIR/proxy_operators
hbase org.apache.hadoop.hbase.mapreduce.Import 'proxy_order' $HDFS_BACKUP_DIR/proxy_order
hbase org.apache.hadoop.hbase.mapreduce.Import 'proxy_people' $HDFS_BACKUP_DIR/proxy_people
hbase org.apache.hadoop.hbase.mapreduce.Import 'proxy_transactions' $HDFS_BACKUP_DIR/proxy_transactions

Setup de Facelib

Ejecute el script facelib_setup.sh.

Contenido del script facelib_setup.sh:

#!/bin/bash

EXE_TIME=$(date +'%Y-%m-%d-%H%M%S')
LOG_PATH=$PWD/logs
LOG_FILE=$LOG_PATH/facelib_setup-${EXE_TIME}.log
function logger(){
    # PARAMETROS DE LA FUNCIÓN
    # logger functionName status [INFO, WARN, ERROR] logMessage
    # ejemplo: logger "hello_world" "INFO" "Hello World" first_log

    if [ ! -d $LOG_PATH ];then
        mkdir $LOG_PATH
    fi

    CURRENT_TIME=$(date +'%Y-%m-%d %H:%M:%S')
    FUNCTION=$1
    STATUS=$2
    LOG_MESSAGE=$3

    LOG_FORMAT="$CURRENT_TIME  -  $FUNCTION  -  $STATUS  -  $LOG_MESSAGE"

    # commit log message
    echo $LOG_FORMAT | tee -a $LOG_FILE

}

function install_pre_reqs(){
    # parameter
    PACKAGE=$1

    # installing package

    logger "environment_checker" "INFO" "Checking $PACKAGE installation"
    yum -y install $PACKAGE &>/dev/null
    OUTPUT_CODE=$?
    CHK_INSTALLATION=$(rpm -qa | grep $PACKAGE)

    # Checking if was installed

    if [ $OUTPUT_CODE -eq 0 ];then
        logger "environment_checker" "INFO" "Instalación de $PACKAGE OK"
    else
        logger "environment_checker" "WARN" "La instalación de $PACKAGE finalizó con errores o advertencias"
        if [ -z $CHK_INSTALLATION ];then
            logger "environment_checker" "ERROR" "$PACKAGE no instalado debido a algún error!!"
            logger "environment_checker" "INFO" "Por favor ejecute \"yum -y install $PACKAGE\" y vuelva a intentarlo!!"
            exit 1
        fi
    fi
}

function environment_checker(){
    # Esta función se usa solo para verificar algunos requisitos
    # de facelib
    logger "environment_checker" "INFO" "Iniciando verificación del entorno"

    # variables
    OS=$(head -1 /etc/os-release | awk -F '"' '{print $2}')
    OS_VERSION=$(head -2 /etc/os-release | tail -1 | awk -F '"' '{print $2}')
    OS_ID=$(head -3 /etc/os-release | tail -1 | awk -F '"' '{print $2}') # rhel or centos
    SPID_LIB_FOLDER="/var/lib/griaule/spid"
    USR_NAME=$(whoami)

    logger "environment_checker" "INFO" "OS: $OS $OS_VERSION"

    # Necesita ejecutarse con usuario root

    if [[ ! $USR_NAME == "root" ]];then
        logger "environment_checker" "ERROR" "Está ejecutando el script como $whoami!! Por favor ejecute el script como root."
        exit 1
    fi

    # Instalando todos los prerequisitos con la función install_pre_reqs

    #TODO llenar esta lista con todos los pre-reqs
    if [[ $OS_ID == "centos" ]];then
        PACKAGES_TO_INSTALL="wget curl OpenEXR-libs libraw1394-devel libusbx"
    elif [[ $OS_ID == "rhel" ]];then
        PACKAGES_TO_INSTALL="wget curl OpenEXR-libs libraw1394 libusbx"
    else
        logger "environment_checker" "ERROR" "su sistema operativo no ha sido aprobado"
    fi
    for PACKAGE in $PACKAGES_TO_INSTALL;do
        install_pre_reqs $PACKAGE
    done

    # comprobando la carpeta /var/lib/griaule/spid

    if [ ! -d $SPID_LIB_FOLDER ];then
        logger "environment_checker" "ERROR" "SPID no instalado!!"
        exit 1
    fi

    # crear usuario griaule

    logger "environment_checker" "INFO" "Comprobando usuario griaule"
    useradd griaule &>/dev/null
    OUTPUT_CODE=$?
    CHK_USR=$(grep griaule /etc/passwd)
    if [ $OUTPUT_CODE -eq 0 ] || [ ! -z $CHK_USR ];then
        logger "environment_checker" "INFO" "usuario griaule: OK"
    else
      logger "environment_checker" "ERROR" "Error al crear el usuario griaule"
      exit 1
    fi

    # Estableciendo usuario griaule como propietario

    logger "environment_checker" "INFO" "Cambiando la propiedad de las carpetas SPID a griaule"
    chown griaule: -R {/var/lib/griaule,/etc/griaule}

    logger "environment_checker" "INFO" "Verificación del entorno ejecutada con éxito"

}

function facelib_setup(){
    logger "facelib_setup" "INFO" "Iniciando configuración de facelib"
    logger "facelib_setup" "INFO" "Descargando facelib desde el repo de griaule"

    # descargar facelib desde el repo de griauel
    if [ ! -e $PWD/bin.facelib-java.tar.gz ];then
        wget -q http://repo.griaule.com/griaule/services/spid/bin.facelib-java.tar.gz
    fi

    OUTPUT_CODE=$?
    GET_PUB_IP=$(curl ifconfig.me 2>/dev/null)

    # Verificar conexión con el repo
    if [ ! $OUTPUT_CODE -eq 0 ];then
        logger "facelib_setup" "ERROR" "Descargando facelib desde el repo de griaule"
        if [ -z $GET_PUB_IP ];then
            logger "facelib_setup" "ERROR" "Quizás no está conectado a Internet. Por favor verifique su conexión e intente de nuevo!!"
            exit 1
        else
            logger "facelib_setup" "INFO" "Quizás no está autorizado en el repo de Griaule. Por favor envíe su IP pública $GET_PUB_IP al soporte de Griaule solicitando autorización"
            exit 1
        fi
    fi

    # Extrayendo tar.gz

    logger "facelib_setup" "INFO" "Iniciando extracción de facelib"

    tar -xvzf bin.facelib-java.tar.gz -C /var/lib/griaule/spid/ &>/dev/null
    OUTPUT_CODE=$?
    if [ ! $OUTPUT_CODE -eq 0 ];then
  logger "facelib_setup" "ERROR" "error extrayendo facelib a /var/lib/griaule/spid/"
        exit 1
    fi

    logger "facelib_setup" "INFO" "Facelib extraído con éxito"

    # actualizar script spid

    logger "facelib_setup" "INFO" "Actualizar script de inicialización de spid"
    mv /var/lib/griaule/spid/scripts/initialize-spid.sh /var/lib/griaule/spid/scripts/initialize-spid.sh.bkp
    mv /var/lib/griaule/spid/bin.facelib-java/initialize-spid.sh /var/lib/griaule/spid/scripts/initialize-spid.sh
    chmod +x /var/lib/griaule/spid/scripts/initialize-spid.sh
    logger "facelib_setup" "INFO" "Script de inicialización de spid actualizado"

    logger "facelib_setup" "INFO" "Configuración de facelib ejecutada con éxito"
}


# MAIN

environment_checker
facelib_setup

Actualización

Actualización del PSBio

Actualización de la Versión 4

Descomprima los archivos actualizados en un directorio temporal: gbs-psbio-server<versión>.tar.gz

Detenga el Módulo PSBio:

service psbio stop

Renombre la versión anterior del módulo PSBio, conservándola hasta que la actualización finalice con éxito:

mv /var/lib/griaule/psbio/gbs-psbio-server.jar /var/lib/griaule/psbio/gbs-psbio-server.jar.old

Si está migrando de una versión anterior a la 5.0 a una versión 5.0 o más reciente, es necesario realizar la migración de la base local usando la herramienta proporcionada, el PSBio Database Migration Tool. Su ejecución se realiza con el comando abajo:

java -Dconfig.path={path}/pdbm.properties -jar {path}/psbio-database-migration-1.0.2-exec.jar >>{path}/log.out 2>> {path}/log.err

Si es necesario, consulte la sección Migración de Base para Versión 5.0 a continuación para más detalles sobre esta herramienta.

Instale la nueva API del Módulo PSBio:

tar -xf gbs-psbio-server_<versión>.tar.gz
mv gbs-psbio-server.jar /var/lib/griaule/psbio

Revise el archivo config.properties con el modelo enviado para la última actualización.

Inicie el Módulo PSBio:

service psbio start

Migración de Base para Versión 5.0

Al actualizar el PSBio de una versión anterior a la 5.0 a la versión 5.0 o superior será necesario realizar la migración de la base local. Griaule proporciona una herramienta para realizar esta operación, el PSBio Database Migration Tool.

Descomprima el paquete en un directorio temporal del servidor. El paquete tiene dos archivos, el ejecutable .jar y el archivo de configuración pdbm.properties.

Los campos del archivo de configuración son los siguientes:

debug

(booleano) Si está habilitado, registra todas las acciones realizadas. Predeterminado: false.

zookeeper.path

(string) Ruta del zookeeper.

migration.batch-size

(entero) Número de transacciones traídas en cada iteración. Predeterminado: 10000.

migration.transactions

(booleano) Habilita migración de la tabla psbio_transactions. Predeterminado: true.

migration.transactions.include-finalized

(booleano) Habilita migración de transacciones finalizadas. Predeterminado: false.

Configure el archivo pdbm.properties con los valores adecuados y ejecute la herramienta con el comando:

java -Dconfig.path={path}/pdbm.properties -jar {path}/psbio-database-migration-1.0.2-exec.jar >>{path}/log.out 2>> {path}/log.err

Procedimiento de Rollback del Módulo PSBio

Si la versión anterior aún existe, /var/lib/griaule/psbio/gbs-psbio-server.jar.old:

Detenga el Módulo PSBio:

service psbio stop

Elimine la nueva versión y renombre la versión anterior del módulo PSBio:

rm -f /var/lib/griaule/psbio/gbs-psbio-server.jar
mv /var/lib/griaule/psbio/gbs-psbio-server.jar.old /var/lib/griaule/psbio/gbs-psbio-server.jar

Revise el archivo config.properties con el modelo anterior.

Inicie el Módulo PSBio:

service psbio start

Si la versión anterior ya no está disponible, siga el procedimiento de actualización usando el paquete de la versión anterior.

Actualización del Módulo AC

Actualización de la Versión 2

Descomprima el contenido de la actualización gbs-spid-server<versión>.zip en un directorio temporal.

Detenga el Módulo AC:

service spid stop
service spid-cp stop

Renombre la versión anterior del módulo AC y del Control Panel, conservándolos hasta que la actualización finalice con éxito:

mv /var/lib/griaule/spid/gbs-spid-server.jar /var/lib/griaule/psbio/gbs-spid-server.jar.old
mv /var/lib/griaule/spid/gbs-spid-controlpanel.jar /var/lib/griaule/spid/gbs-spid-controlpanel.jar.old

Instale la nueva versión del Módulo AC y Panel de Control:

unzip gbs-spid-server_<versión>.zip
mv gbs-spid-server.jar /var/lib/griaule/spid
mv gbs-spid-controlpanel.jar /var/lib/griaule/spid

Revise los archivos config.properties y controlpanel.properties con los modelos enviados para la última actualización.

Inicie el Módulo AC:

service spid start
service spid-cp start

Procedimiento de Rollback del Módulo AC

Si la versión anterior aún existe, /var/lib/griaule/psbio/gbs-spid-server.jar.old y /var/lib/griaule/spid/gbs-spid-controlpanel.jar.old:

Detenga el Módulo AC:

service spid stop
service spid-cp stop

Elimine la nueva versión y renombre la versión anterior del módulo AC:

rm -f /var/lib/griaule/spid/gbs-spid-server.jar
rm -f /var/lib/griaule/spid/gbs-spid-controlpanel.jar
mv /var/lib/griaule/spid/gbs-spid-server.jar.old /var/lib/griaule/spid/gbs-spid-server.jar
mv /var/lib/griaule/spid/gbs-spid-controlpanel.jar.old /var/lib/griaule/spid/gbs-spid-controlpanel.jar

Revise los archivos config.properties y controlpanel.properties con el modelo anterior.

Inicie el Módulo AC:

service spid start
service spid-cp start

Si la versión anterior ya no está disponible, siga el mismo procedimiento de actualización con los paquetes de la versión anterior.

Última actualización

¿Te fue útil?