Sei sulla pagina 1di 14

Índice

Dicionário ...................................................................................................................................................... 3
Introdução..................................................................................................................................................... 4
Visão Geral .................................................................................................................................................... 4
Arquitetura................................................................................................................................................ 4
Requisitos técnicos ................................................................................................................................... 5
Módulo Cliente...................................................................................................................................... 5
Módulo Servidor ................................................................................................................................... 5
Leitores Suportados .................................................................................................................................. 5
Câmeras .................................................................................................................................................... 5
Fluxos de Processamento ......................................................................................................................... 6
Cadastro/Atualização ............................................................................................................................ 6
Busca ..................................................................................................................................................... 7
Instalação ...................................................................................................................................................... 8
Módulo Servidor ....................................................................................................................................... 8
Módulo Cliente ......................................................................................................................................... 8
Integração ..................................................................................................................................................... 9
Definições.................................................................................................................................................. 9
Conta ..................................................................................................................................................... 9
Tipo de Operação .................................................................................................................................. 9
Códigos de Retorno............................................................................................................................. 10
Tipo de Resposta ................................................................................................................................. 10
Status de Processamento.................................................................................................................... 11
Códigos de Posições dos Dedos .......................................................................................................... 11
Requisição ............................................................................................................................................... 12
Resposta .................................................................................................................................................. 12

2
Dicionário

Dados Demográficos Informações capazes de identificar uma pessoa


(CPF, RG, Nome, Endereço, etc)
HIT Evento onde as informações biométricas
comparadas são compatíveis
Identificação (1:N) Processo no qual uma informação biométrica é
comparada com toda a base existente. É o
processo no qual a pergunta “De quem é essa
informação biométrica?” é respondida
Informação Biométrica Imagens de impressão digital e foto facial
ISO 19794-2 Padrão internacional de armazenamento do
template de uma impressão digital
Template Conjunto de dados extraídos após o
processamento da informação biométrica e que
serão utilizados para a posterior comparação
Verificação (1:1) Processo no qual uma informação biométrica é
comparada com a informação biométrica de uma
pessoa em específico. É o processo no qual a
pergunta “Essa informação biométrica pertence à
pessoa X?” é respondida
WSQ Algoritmo de compressão de imagens de
impressão digital

3
Introdução

O SimpleID da HTX Systems é uma plataforma multibiométrica de rápida integração, que permite que
aplicações web e desktop adicionem identificação por impressão digital e facial em seu fluxo de processos
sem a necessidade de alterar o banco de dados, processar imagens ou realizar comparações.

O SimpleID foi desenvolvido de forma que toda a complexidade do processamento biométrico fique sob
sua responsabilidade, tornando a integração simples e de baixo custo. Além disso, por não necessitar
armazenar qualquer informação demográfica, o SimpleID garante a privacidade dos dados e a segurança
que as aplicações necessitam.

Visão Geral

Arquitetura

A arquitetura da solução foi definida de forma a permitir a total separação entre a aplicação e o
processamento biométrico.

Figura 1 - Visão geral SimpleID

Na figura acima é possível observar que o SimpleID é composto por um módulo cliente e um módulo
servidor.

O módulo servidor pode ser instalado no mesmo datacenter da aplicação ou até mesmo em datacenter
diferente. Esse módulo servidor irá receber requisições exclusivamente do módulo cliente, que será
instalado em cada máquina onde a aplicação será executada.

A aplicação, por sua vez, se comunicará apenas com o módulo cliente através de websockets. Com isso,
aplicações web e desktop poderão ser facilmente integradas ao fluxo de processamento biométrico.

4
Requisitos técnicos

Os módulos cliente e servidor são aplicações do tipo Serviço do Windows e possuem os seguintes
requisitos técnicos:

Módulo Cliente

• Windows 7 ou superior
• .NET Framework 4.0 ou superior
• Memória RAM: 2GB ou superior

Módulo Servidor

• Windows 7 ou superior (Windows Server 2012 ou 2106 recomendado)


• .NET Framework 4.5
• MySQL
• Memória RAM: a depender do tamanho da base biométrica
• Espaço em disco: a depender do tamanho da base biométrica
• Processador: a depender do tamanho da base biométrica

Leitores Suportados

O módulo cliente do SimpleID é responsável pela comunicação com o leitor de impressão digital. Os
seguintes modelos são suportados atualmente e novos modelos podem ser adicionados sob demanda.

• Futronic FS80/FS88
• Digital Persona 4500
• Nitgen Hamster DX

Câmeras

Como forma de trazer mais flexibilidade, o SimpleID não realiza a integração direta com câmeras para a
captura da foto facial. Dessa forma, a aplicação pode escolher a melhor maneira de capturar a imagem.
No entanto, visando a captura de imagens com qualidade suficiente para serem processadas, recomenda-
se a utilização de câmeras com resolução mínima de 720p.

5
Fluxos de Processamento

O SimpleID é responsável por todos os fluxos relacionados a captura, cadastro e comparação biométrica.
Tanto o módulo cliente como o módulo servidor realizam análises e ações para cada ação solicitada pela
aplicação. A seguir apresentaremos detalhamente cada fluxo.

Cadastro/Atualização

Cliente

Apenas Foto

Caso a aplicação envie uma requisição de cadastro apenas facial, o módulo cliente irá verificar se a imagem
passada é válida e, caso seja, irá enviar para o servidor realizar o processamento. Durante esse processo,
algumas mensagens de status serão enviadas de volta para aplicação até que a mensagem de resposta
final da requisição seja enviada.

Impressão Digital

Quando a aplicação deseja fazer o cadastro de impressões digitais para uma determinada pessoa, todo o
fluxo de controle de qualidade será executado pelo módulo cliente. Dessa forma, a aplicação inicia uma
operação de cadastro junto ao módulo cliente, indica qual dedo deverá ser capturado e à medida que o
usuário interage com o leitor, a aplicação receberá mensagens de status sobre a imagem, qualidade e se
já existem amostras suficiente de um determinado dedo para que a qualidade da informação biométrica
seja garantida. Quando todos os dedos exigidos pela aplicação tiverem sido capturados, uma mensagem
deverá ser enviada para que o módulo cliente envie as informações para que o servidor possa realizar o
processamento.

Servidor

A figura abaixo representa o fluxo de processamento no servidor quando uma requisição de cadastro ou
atualização é recebida. Uma requisição é considerada de atualização quando o identificador único da
pessoa informado já existe na base de dados.

6
Figura 2 - Fluxo de Cadastro no Servidor

Com relação ao fluxo apresentado, alguns pontos devem ser observados:

• Em uma requisição de atualização, caso ocorra um HIT com as biometrias da própria pessoa sendo
atualizada, esse HIT não será considerado um erro.
• Em uma requisição de atualização apenas as informações que foram passadas serão atualizadas
e/ou inseridas, ou seja, caso uma requisição de atualização contenha apenas uma foto facial e a
pessoa já possua impressões digitais e fotos cadastradas, as impressões digitais NÃO serão
apagadas.
• Em uma requisição de cadastro/atualização contendo foto e impressões digitais, na qual ocorra
HITs diferentes para foto e impressões digitais, os dois HITs serão retornados. Ou seja, caso haja
uma tentativa de cadastro/atualização de uma pessoa João com a foto de José e as impressões
digitais de Maria, a solução irá informar que ocorreu um HIT tanto com José como com Maria.

Esse fluxo garante a UNICIDADE do cadastro biométrico da aplicação, ou seja, com o SimpleID a
aplicação não estará aberta a fraudes onde uma pessoa cadastra suas informações biométricas para
múltiplas identidades

Busca

Cliente

7
Para as requisições de busca, o módulo cliente será responsável por realizar a captura da impressão digital,
avaliar a qualidade e caso a imagem seja considerada adequada, irá enviar para o servidor realizar o
processamento. Para buscas de face, o módulo cliente irá receber a imagem da aplicação e enviar para o
servidor realizar o processamento. Durante esse processo, algumas mensagens de status serão enviadas
de volta para aplicação até que a mensagem de resposta final da requisição seja enviada.

Servidor

A figura abaixo representa o fluxo de processamento no servidor quando uma requisição busca é recebida.
Caso a requisição forneça o identificador de uma pessoa, será realizada uma VERIFICAÇÃO (1:1). Caso a
requisição não forneça um identificador, será realizada uma IDENTIFICAÇÃO (1:N).

Figura 3 - Fluxo de Busca no Servidor

Instalação

Módulo Servidor

A instalação e configuração do módulo servidor é realizada pela HTX Systems.

Caso a instalação seja feita no ambiente da empresa contratante, uma máquina virtual com as
especificações definidas durante a definição do projeto deverá ser fornecida. Caso contrário, a HTX irá
preparar um ambiente em sua nuvem própria e fornecer os dados de conexão para configuração do
módulo cliente para a empresa contratante.

Módulo Cliente

8
A instalação do módulo cliente é feita através de um arquivo .msi, que deverá ser executado por um
usuário com permissão de Administrador na máquina cliente. O serviço do módulo cliente será instalado,
e estará pronto para se comunicar com o módulo servidor.

Integração

A integração entre a aplicação e o SimpleID é realizada via websockets. A comunicação se dará


exclusivamente entre a aplicação e o módulo cliente.

Definições

Conta

Uma conta é uma subdivisão da base de dados. A unicidade do cadastro é verificada a nível da conta, ou
seja, uma mesma informação biométrica pode ser registrada mais de uma vez no SimpleID, desde que
seja em contas diferentes.

Durante as operações, a aplicação é responsável por informar em qual conta será executada a ação. Caso
a conta não exista, ela será criada e caso nenhuma conta seja informada, uma conta padrão com nome
“htx” será utilizada.

Tipo de Operação

A tabela a seguir apresenta os tipos de operação que podem ser enviados pela aplicação para o SimpleID.

Código Valor Descrição


REGISTER 0 Operação de cadastro
SEARCH 2 Operação de busca de impressão digital
CANCEL_SEARCH 3 Cancelamento da busca em andamento (no cliente)
DELETE 4 Operação de remoção de registro
GET_PERSON_BY_ID 8 Operação de busca de pessoa pelo ID
FINGER_START_CAPTURE 9 Início da captura em um dedo
FINGER_STOP_CAPTURE 10 Cancelamento da captura em um dedo
SUBMIT_REGISTRATION 12 Enviar cadastro ao servidor
CANCEL_REGISTRATION 13 Cancelar operação de cadastro (no cliente)
DELETE_FINGER 14 Deletar dedo capturado (no cliente)
SEARCH_FACE 15 Operação de busca facial
INIT_FACE_ANALYSIS 16 Inicializar módulo de análise facial
PERFORM_FACE_ANALYSIS 17 Operação de análise facial (no cliente)
STOP_FACE_ANALYSIS 18 Liberar recursos do módulo de análise facial
GET_CLIENT_VERSION 19 Operação de consultar versão do cliente
Tabela 1 - Tipos de Operação

9
Códigos de Retorno

A tabela a seguir apresenta os códigos de retorno que podem ser enviados pelo SimpleID. Esses códigos
indicarão o sucesso ou falha da operação solicitada. Essa informação está presente no objeto JSON
enviado.

Código Valor Descrição


SUCCESS 0 Operação executada com sucesso
CANCELED_BY_USER 1 Operação cancelada pelo usuário
HIT_CONFIRMED 2 Busca encontrou um HIT
NO_HIT 3 Busca não encontrou um HIT
ALREADY_ENROLLED 4 Informações biométricas já registradas
BAD_IMAGE_QUALITY 6 Imagem de baixa qualidade
SERVICE_BUSY 7 Serviço já está executando outra operação
INCORRECT_CALL 8 Método não permitido no atual status do cliente
NO_READER_CONNECTED -1 Nenhum leitor de impressão digital conectado
SERVER_CONNECTION_FAILED -2 Falha ao se conectar ao servidor
SERVER_TIMEOUT -3 Timeout no servidor
SERVER_ERROR -4 Erro não esperado no servidor
PERSON_ID_NOT_FOUND -5 Identificador da pessoa não encontrado
INVALID_LICENSE -6 Licença inválida no servidor
LICENSE_MAX_RECORDS -7 Número máximo de registros permitido excedido
LICENSE_MAX_CLIENTS -8 Número máximo de máquinas clientes permitido excedido
LICENSE_EXPIRED -9 Licença expirou
INVALID_SESSION -10 Sessão inválida
SESSION_EXPIRED -11 Sessão expirada
NOT_ALLOWED_OPERATION -12 Operação não permitida
INVALID_CREDENTIALS -13 Credenciais inválidas
INVALID_PARAMETERS -14 Parâmetros inválidos
FACE_MODULE_OPERATION_FAILED -18 Falha no módulo facial
FACE_MODULE_NOT_INITIALIZED -19 Modo facial não incializado
ACCOUNT_NOT_FOUND -20 Conta não encontrada
Tabela 2 - Códigos de Retorno

Tipo de Resposta

A tabela a seguir apresenta os códigos dos tipos de resposta (mensagens) que serão enviadas pelo cliente
de volta para a aplicação. Essa informação que permite a aplicação saber a que se refere a mensagem
recebida via websocket.

Código Valor Descrição


FINGER_SCANNER_STATUS 0 Mensagem de status do leitor de impressão digital

10
FINGER_CAPTURE_STATUS 1 Mensagem sobre a captura de impressão digital
REGISTRATION_PROCESS_RESPONSE 2 Resposta do processo de cadastro
SEARCH_PROCESS_RESPONSE 3 Resposta do processo de busca de impressão digital
CANCEL_SEARCH_RESPONSE 4 Resposta do cancelamento da busca
SOCKET_GENERAL_MESSAGE 5 Mensagem geral
DELETE_RESPONSE 6 Resposta do processo de remoção
GET_PERSONS_BY_ID_RESPONSE 7 Resposta do método de listar registros
PROCESSING_STATUS 8 Mensagem com a atualização de status de
processamento
DUPLICATED_FINGER 9 Mensagem informando que o mesmo dedo já foi
capturado
GENERAL_MESSAGE 10 Mensagem geral
SEARCH_FACE_RESPONSE 11 Resposta do processo de busca facial
INIT_FACE_ANALYSIS_RESPONSE 12 Resposta do processo de inicialização da análise facial
PERFORM_FACE_ANALYSIS_RESPONSE 13 Resposta do processo de análise facial
STOP_FACE_ANALYSIS_RESPONSE 14 Resposta do processo de término da análise facial
GET_CLIENT_VERSION_RESPONSE 15 Resposta do processo de retorno da versão do client
Tabela 3 - Tipos de Resposta

Status de Processamento

A tabela a seguir apresenta status enviados pelo módulo cliente para que a aplicação acompanhe a
evolução da operação em andamento.

Código Valor Descrição


LOCAL_PROCESSING 0 Indica o início de um processamento local
FINISHED_LOCAL_PROCESSING 1 Indica o fim do processamento local
SERVER_PROCESSING 2 Requisição enviada para o servidor
FINISHED_SERVER_PROCESSING 3 Resposta do servidor recebida
REGISTRATION_READY 4 Operação de cadastro está pronta para ser iniciada
(chamada de captura de dedo)
PENDING_FINGER_UP 5 Usuário precisa retirar o dedo do leitor
PREPARING_SCANNER 6 Leitor de impressão digital em preparação
SCANNER_READY 7 Leitor de impressão digital pronto
FINGER_DOWN 8 Dedo colocado no leitor
FINGER_UP 9 Dedo retirado do leitor
SCANNER_DISCONNECTED 10 Leitor de impressão digital desconectado
SCANNER_CONNECTED 11 Leitor de impressão digital conectado
Tabela 4 - Status de Processamento

Códigos de Posições dos Dedos

Código Valor Descrição


UNKNOWN 0 Desconhecido

11
RIGHT_THUMB 1 Polegar Direito
RIGHT_INDEX 2 Indicador Direito
RIGHT_MIDDLE 3 Médio Direito
RIGHT_RING 4 Anelar Direito
RIGHT_LITTLE 5 Mínimo Direito
LEFT_THUMB 6 Polegar Esquerdo
LEFT_INDEX 7 Indicador Esquerdo
LEFT_MIDDLE 8 Médio Esquerdo
LEFT_RING 9 Anelar Esquerdo
LEFT_LITTLE 10 Mínimo Esquerdo
Tabela 5 - Posição dos dedos

Requisição

A tabela abaixo especifica o objeto JSON de requisição que deve ser enviado pela aplicação para o módulo
cliente do SimpleID.

Propriedade Tipo Descrição Obrigatório Exemplo


OperationType Inteiro Conforme Tabela 1 SIM {
"OperationType": 0,
AccountID String Conta NÃO
"AccountID": “htx”,
PersonID String Identificador da Pessoa NÃO "PersonID": “ID_1234”,
CustomField1 String Campo livre para a aplicação NÃO "CustomField1": null,
CustomField2 String Campo livre para a aplicação NÃO "CustomField2": null,
"CustomField3": null,
CustomField3 String Campo livre para a aplicação NÃO "FingerID": 0,
FingerID Inteiro Conforme Tabela 5 SIM "FaceImage": null,
FaceImage String JPEG da imagem em Base64 NÃO "FaceOnly": false
}
FaceOnly Booleano Indica se o cadastro será SIM
apenas de face
Tabela 6 – Mensagem de requisição

Resposta

As tabelas abaixo especificam o objeto JSON que o módulo cliente enviará para a aplicação. O mesmo
objeto é enviado em diferentes situações, e a aplicação deverá utilizar as propriedades baseado no tipo
de resposta.

12
Propriedade Tipo Descrição Exemplo

ResponseType Inteiro Conforme Tabela 3 {


"TransactionInformation": {
ReturnCode String Conforme Tabela 2
"ResponseType": 0,
ReturnMessage String Mensagem descritiva do erro "ReturnCode": 0,
"ReturnMessage": null,
TransactionID String Identificador único da transação "TransacationID": null,
AccountID String Conta "AccountID": null,
"ProcessingStatus": 0,
ProcessingStatus Inteiro Conforme Tabela 4 "Persons": []
}
Persons Array de Conforme Tabela 8 }
Objeto
Tabela 7 – Mensagem de resposta

Propriedade Tipo Descrição Exemplo

PersonID String Identificador da Pessoa {


"PersonID": “ID_1234”,
CustomField1 String Campo livre para a aplicação "CustomField1": null,
"CustomField2": null,
CustomField2 String Campo livre para a aplicação "CustomField3": null,
"FingerprintImage": {},
CustomField3 String Campo livre para a aplicação "FaceImageAnalysis": {}
FingerprintImage Objeto Conforme Tabela 9 }

FaceImageAnalysis Objeto Conforme Tabela 10


Tabela 7 – Objeto Person

Propriedade Tipo Descrição Exemplo

FingerQuality Inteiro Qualidade de 1 a 5, sendo 1 {


Ótimo e 5 Péssimo
"FingerQuality": 0,
Base64Image String Imagem da impressão digital "Base64Image": null,
FingerID Inteiro Conforme Tabela 5 "FingerID": 0,
"DuplicatedFingerID": 0,
DuplicatedFingerID Inteiro ID do dedo duplicado - Conforme "Finished": false
Tabela 5 }
Finished Booleano Indica se a captura para esse dedo
está concluída
Tabela 9 – Objeto FingerprintImage

13
Propriedade Tipo Descrição Exemplo

Rectangle Objeto Retângulo do maior rosto {


encontrado "Rectangle": {
"X": 0,
CropRectangle Objeto Retângulo de recorte de acordo "Y": 0,
com o formato ISO 19794-5 Full "Width": 0,
Frontal "Height": 0
RightEye Objeto Posição e indicação se o olho },
"CropRectangle": {
direito se encontra aberto "X": 0,
LeftEye Objeto Posição e indicação se o olho "Y": 0,
esquerdo se encontra aberto "Width": 0,
Yaw Inteiro Ângulo Yaw da face "Height": 0
},
Pitch Inteiro Ângulo Pitch da face "RightEye": {
"X": 0,
Roll Inteiro Ângulo Roll da face
"Y": 0,
Brightness Inteiro Nível do Brilho. "Open": false
• -1 para muito escuro },
"LeftEye": {
• 0 para OK "X": 0,
• 1 para muito claro "Y": 0,
Sharpness Booleano Indica se a nitidez da foto está "Open": false
adequada },
"Yaw": 0,
MouthClosed Booleano Indica se a boca está aberta ou "Pitch": 0,
fechada "Roll": 0,
"Brightness": 0,
"Sharpness": false,
"MouthClosed": false
}
Tabela 10 – Objeto FaceImageAnalysis

14