Validação de Integração
Visão Geral
A validação de integridade é feita por três segredos criptográficos:
librarySecret
(gerado pela Griaule e modificado a cada lançamento de face do BCC);clientSecret
(definido pelo cliente);nonce
, solicitação gerada Esses valores são usados para gerar um HMAC, inserido no blob de atividade e transmitido ao backend, garantindo que nenhum dado seja alterado durante a transmissão.
Estrutura de Dados
FOOTER_VERSION 1

FOOTER_VERSION 2

libraryKeyId
- Identifica a chave usada no cálculo do HMAC. Permite que o backend saiba qual segredo deve usar para validar a integridade naquela versão do SDK.
Geração de HMAC
Concatena
librarySecret + clientSecret
Deriva uma chave HMAC, com HKDF, usando
nonce
como saltAplica HMAC<SHA256> em todos os bytes do blob gerados pelo SDK (imagens, JSON e metadados), gerando um código de autenticação
A validação de integridade está disponível apenas em Passive Liveness. Não se aplica a outros tipos de captura.
Comportamento de Endpoint
Se a versão mínima aceita for maior que a recebida no payload:
Um
PROCESSING_ERROR (422)
para versão não suportada é lançado.
Se a versão do payload for ≥ 2 e a validação de integridade estiver habilitada:
Se o librarySecret para o respectivo ID de chave não for encontrado:
Um
PROCESSING_ERROR (422)
genérico é lançado.
Se o HMAC calculado corresponder à secretKey do ID especificado e a qualquer segredo de cliente configurado:
O conteúdo está íntegro e o processo segue normalmente.
Caso contrário,
O conteúdo não está intacto e um
PROCESSING_ERROR (422)
genérico é lançado. Caso contrário, nada é validado.
Atualizado
Isto foi útil?