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).

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=adminRegistros (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:

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:

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:
falsecaName: Common name del certificado utilizado.
Valor Ejemplo:
ac1.griaule.comdocumentID: Documento usado como clave que se envía al sistema.
Valor Ejemplo:
documentIDdecryptionKeyPath: Ruta al archivo con la clave de cifrado.
Valor Ejemplo:
/etc/griaule/spid/conf/data_private.keyoperator:
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:
localhostport: Puerto para el servicio del GBS Cluster que se consume
Valor Ejemplo:
8085useSSL: Define si el protocolo de seguridad debe usarse en la conexión con el GBDS
Valor Ejemplo:
falseauthenticationEnabled: Uso de autenticación en el GBDS
Valor Ejemplo:
falseauthenticationExpiration: Tiempo de expiración del token
Valor Ejemplo:
600000username: Usuario registrado en el GBDS
Valor Ejemplo:
adminpassword: Contraseña del usuario registrado en el GBDS
Valor Ejemplo:
admin
psbio:
active: Define si el PSBIO está activo o no.
Valor Ejemplo:
truename: 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.comapiUrl: Ruta para la API del psbio server.
Valor Ejemplo:
https://url:8444/gbs-psbio-server/service/ac-apihubUrl: Ruta para el HUB del psbio server.
Valor Ejemplo:
https://url:8444/gbs-psbio-server/service/hubdirUrl: 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:
ac1organizationCallback: Callback de fin de recolección del SPIDX
Valor Ejemplo:
callbackorganizationHostname: Hostname de la AC que será usado para que el SPIDX notifique al SPID Server.
Valor Ejemplo:
ac1host: Ruta para el servicio del SPIDX
Valor Ejemplo:
spidxport: Puerto para el servicio del SPIDX
Valor Ejemplo:
8090qualityThreshold: 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:
8082ssl:
protocol: Protocolo de seguridad a utilizar.
Valor Ejemplo:
TLSclient-auth: Tipo de autenticación que el servidor debe tener con el cliente. Por ejemplo, el valor
wantdefine que el servidor solicitará al cliente un certificado de autenticación, pero no es obligatorio que el cliente lo posea.Valor Ejemplo:
wantkey-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.pfxkey-store-password: Contraseña del keystore del PSBio.
Valor Ejemplo:
passwordtrust-store: Ruta del repositorio con los certificados autorizados para conexión segura.
Valor Ejemplo:
/etc/griaule/psbio/keystore/cacertstrust-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.propertiesLos 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:
Mueva los archivos a la máquina donde se configurará el generador de IDN.
Extraiga los archivos comprimidos en los directorios listados:
idnservice.tar.gzen/var/lib/griauleidnservice_*.tar.gzen/etc/griaule
Ejemplo:
tar -zxvf idnservice.tar.gz -C /var/lib/griaule/ tar -zxvf idnservice_*.tar.gz -C /etc/griaule/Mueva el archivo
gbs-spid-idnservice_*.jara/var/lib/griaule/idnservice:mv gbs-spid-idnservice_*.jar /var/liv/griaule/idnserviceInstale el archivo
idnservice:mv idnservice /etc/init.d/ chmod 0755 /etc/init.d/idnserviceInstale el archivo
keystore.jks:mv keystore.jks /etc/griaule/idnservice/keystore/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=8084Inicio del Generador de IDN
El generador de IDN se instala como servicio, y puede iniciarse con el comando:
service idnservice startLa inicialización y el funcionamiento pueden seguirse mediante el archivo de log:
tail -qF /var/log/griaule/idnservice/idnservice.logDetención del Generador de IDN
Para finalizar el servicio de generación de IDN, use el comando:
service idnservice stopMonitoreo 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,email2Los 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.

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 - HBasePrincipales URLs
Las URLs utilizadas por las aplicaciones se describen a continuación:
SPID Client:
http://<hostname modulo AC>:8082/gbs-spid-server/service/cluster
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/
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/
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:
Recolección biométrica realizada en el SPID Client.
Envío de la transacción al Módulo AC.
Almacenamiento de las imágenes en el Módulo AC.
Generación del IDN al consultar el servicio de generación de IDN.
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.
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.
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.
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.
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”
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.txtEn 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 ENDDATESPID 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 coletasProcedimientos
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/trustedSi 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:
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)"}
EOFImportante: 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']}
EOFLos 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.propertiesy 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/directoryAnote 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" }, ]
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 startConfiguració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 changeitEl 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 changeitEl 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.
Esta modificación no es recomendada.
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.
Este script eliminará todos los datos presentes en la base de datos. La ejecución debe realizarse solo en casos de total aceptación y comprensión de las implicaciones e impactos de su ejecución.
1. Detenga los servicios Módulo AC y PSBio
service spid stop
service spid-cp stop2. Ejecute el script
truncate_hbase.sh3. Reinicie los servicios
Espere unos minutos y reinicie los servicios de los Módulos AC y PSBio:
service spid start
service spid-cp startConfiguració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.propertiesla propiedad idn.service.url ahttp://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.outMó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.outMonitoreo
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.shMueva el archivo psbio a la carpeta /etc/init.d y ajuste sus permisos:
mv psbio /etc/init.d/
chmod 755 /etc/init.d/psbioAutomatizació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.shConfiguració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.jsonpsbio-info.json
Edite el archivo psbio-info.json ubicado en /etc/griaule/psbio/conf:
vim /etc/griaule/psbio/conf/psbio-info.jsonEl 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.jsonEl 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 statusexternal-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/propertiesConfiguració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: 8081controlpanel.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 statusConfiguració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.shEl 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_transactionsSetup 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_setupActualizació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 stopRenombre 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.oldSi 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.errSi 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/psbioInicie el Módulo PSBio:
service psbio startMigració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.errProcedimiento 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 stopElimine 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.jarInicie el Módulo PSBio:
service psbio startSi 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 stopRenombre 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.oldInstale 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/spidInicie el Módulo AC:
service spid start
service spid-cp startProcedimiento 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 stopElimine 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.jarInicie el Módulo AC:
service spid start
service spid-cp startSi 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?

