Ir para o conteúdo principal

[PRATO FÁCIL] Documentação da implementação da leitura biométrica no sistema

Data de elaboração 24/04/2023
Autores
  1. Ariel Veras da Silva
  2. João Vitor Paulino Nobre
  3. Lucas Tavares Viana de Souza
  4. Milton Daniel Yama
Equipe do estudo TURING
Alvo Prato Fácil

Origem

  • Implementação: Conforme o programa do prato fácil se desenvolveu, surgiu a necessidade de adicionar uma camada adicional de segurança para a retirada dos alimentos, além de agilizar o atendimento em uma situação especifica de um novo restaurante cuja demanda necessita adotar uma nova abordagem na verificação e entrega das refeições.
Objetivo Este estudo foi criado para documentar a implementação do modulo de biometria no sistema, desde a tentativa de implementar a leitura via web até a implementação via aplicação local na maquina do cliente além de prover um guia para a instalação e execução.
Documentação correlata Portal de documentação do leitor.
Observações A seguinte implementação descrita no estudo e compatível apenas com o software do fabricante do leitor Hamster DX II
Glossário

FIR: A sigla FIR significa Fingerprint Identification Record que é o tipo de dados em que a amostra de impressão digital é representada na SDK.

Payload: Carga útil de um programa ou sistema que realiza uma determinada ação ou tarefa. No contexto da SDK de biometria o payload é uma chave criptográfica armazenada dentro da FIR é e chamada de Payload e pode conter outras informações.

SDK: Standard Development Kit ou Kit de Desenvolvimento de Software, é um conjunto de ferramentas de desenvolvimento de software que facilita o desenvolvimento de aplicativos para uma plataforma específica.

Payload: Carga útil de informação

1. Introdução

Esta documentação tem como objetivo fornecer uma visão geral de alto nível sobre a implementação, bem como os detalhes técnicos acerca da instalação e execução da aplicação.

Inicialmente a abordagem para a leitura da biometria seria entregue puramente via web, porém devido a problemas de compatibilidade da SDK do fabricante com a aplicação executando em um container Linux, foi necessário abandonar essa abordagem.

2. Instalação e utilização

Para poder executar a funcionalidade de biometria, é necessário possuir os seguintes requisitos: 

  • Driver do leitor de digital
  • SDK da fabricante NITGEN
  • .NET framework 2.0+

Todos os seguintes requisitos podem ser encontrados na seção de documentação correlata desta pagina, que incluem os tutoriais de instalação deles. Cumprindo os requisitos é necessário que a aplicação esteja executando em segundo plano ao utilizar o sistema.

Os métodos de captura de digital providenciadas pela SDK já contam com uma interface para o usuário.

3. A aplicação de console

A API local executa todas as operações relacionadas a biometria que então se comunica com o sistema web, essa conexão é gerenciada através da classe HttpListener que permite receber e retornar solicitações HTTP recebidas pela porta definida previamente.

image.png

Figura 1. Imagem do console em execução

Todos os dados biométricos são armazenados pelo sistema web, a aplicação recebe os dados apenas para comparação no momento de execução, não sendo mantido nenhum dado localmente.

O kit de desenvolvimento providencia métodos de captura e verificação de múltiplos dedos, que então exporta esse dado como um hash que então é convertido em JSON para envio ao sistema, que então registra o dado vinculado ao beneficiário em questão, a autenticação é feita de forma similar com o sistema web enviando uma lista de beneficiários que possuem dados de biometria em JSON para a API que então confere as digitais em loop até encontrar um "match", retornando o valor do Id do beneficiário correspondente da lista.

4. Interação com sistema web

Para criar uma experiencia de uso integrada, a ativação da interface de captura de digital é invocada pelo sistema web, que então se comunica com a aplicação local para executar a captura/verificação das digitais, essa interação e realizada através de chamadas AJAX com a porta escolhida pela API local. Como a carga de lidar com a validação e captura dos dados de digitais ficam por parte da API, isso permite que o Prato Fácil foque em realizar operações CRUD com a biometria.

image.png

Figura 2. Tela de detalhes onde é realizada o cadastro de biometria

Como dito na seção da aplicação local, a autenticação do usuário é feita com ela recebendo os dados de uma consulta geral por digital dos beneficiários, essa consulta faz uso de cache para evitar problemas com repetidas chamadas da ação que realiza a consulta, mantendo esses dados no cache por até 5 horas para garantir a velocidade e que dure ate o final do horário de entrega dos alimentos.

image.png

Figura 3. Tela de pedidos onde temos a opção de autenticação de biometria

5. Melhorias disponíveis

O projeto é funcional e cumpre com os requisitos do cliente, porem a implementação atual usa apenas das principais funções de captura e verificação ofertadas pela SDK e não faz uso de algumas funções ofertadas que podem elevar a qualidade da experiencia do usuário, alguns exemplos destas funções são:

  • Identificação de qual dedo foi registrado
  • Limitar quantos dedos podem ser registrados
  • Atribuição de payload ao hash de biometria, podendo adicionarincluir informações extraextras na biometria
  • Customização da interface padrão da captura e verificação de digital

Fica a cargo da equipe do projeto a necessidade de implementação das melhorias listadas.

X. Conclusão

Lorem ipsum dolor sit amet, consectetur adipisci elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.