Skip to content
Última atualização

Introdução

O FACETID (facet ID) é um identificador único usado em FIDO2/WebAuthn para aplicativos Android que fornece:

RecursoDescrição
Verificação de Identidade do AppEle identifica de forma única qual aplicativo Android está solicitando credenciais FIDO2, com base no certificado de assinatura do aplicativo.
Previne Falsificação de AplicativosApenas o aplicativo assinado com o mesmo certificado pode acessar as credenciais criadas sob aquele FACETID. Isso protege contra aplicativos maliciosos que fingem ser seu aplicativo.
Vinculação de CredenciaisAs credenciais FIDO2 (chaves públicas) são vinculadas ao FACETID, garantindo que só possam ser usadas pelo mesmo aplicativo no futuro.
Âncora de Confiança no WebAuthnO FACETID é enviado durante o registro e autenticação. As partes confiáveis o utilizam para validar a origem do aplicativo e impor controle de acesso a nível de aplicativo.

Para usar o Belvo Android SDK para autenticação biométrica, você precisa gerar um FACETID para seu aplicativo. Isso é essencial para operações FIDO2/WebAuthn e é usado para garantir que as credenciais estejam seguramente vinculadas ao seu aplicativo. Neste guia, vamos orientá-lo pelos passos para gerar um FACETID para seu aplicativo Android.

Gerando FACETID

Para gerar o FACETID do seu aplicativo:

  1. Localize o certificado de assinatura do seu aplicativo (geralmente .jks ou .keystore). Por exemplo: my-release-key.jks
  2. Exporte o certificado de assinatura no formato .der.
Exportar Certificado de Assinatura
## Exportar o certificado
keytool -exportcert \
  -alias your-key-alias \
  -keystore my-release-key.jks \
  -storepass your-keystore-password \
  -rfc > cert.pem

## Converter para o formato DER
openssl x509 -in cert.pem -outform DER -out cert.der
  1. Gere o hash SHA-256 do certificado
Gerar Hash SHA-256
openssl dgst -sha256 -binary cert.der | openssl base64 -A
  1. Converta Base64 para Base64URL:
    • Substitua + por -
    • Substitua / por _
    • Remova o preenchimento = no final da string.

Por exemplo, nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai/5ahhSE08= torna-se nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai_5ahhSE08.

  1. Construa o FACETID
Exemplo de Construção do FACETID
## Formato do FACETID
android:apk-key-hash:<base64url_encoded_hash>

## Exemplo com hash codificado em Base64URL
android:apk-key-hash:nabc65V09KlcsLjIWTnaRB8PKXagy9Lbai_5ahhSE08
  1. Compartilhe seu FACETID com a Belvo.
Feito!

Feito! Você gerou com sucesso o FACETID do seu aplicativo. Depois de compartilhá-lo com a Belvo, você pode continuar com a integração do SDK Android da Belvo para pagamentos biométricos.

Script Prático

Nossa fantástica equipe de desenvolvedores criou um script prático para ajudar a automatizar o processo de geração do FACETID.

Como usar:

  1. Salve o código abaixo como generate_facetid.sh.
  2. Atualize as variáveis KEYSTORE_PATH, ALIAS e STOREPASS com os detalhes do seu aplicativo.
  3. Torne o script executável: chmod +x generate_facetid.sh
  4. Execute o script: ./generate_facetid.sh

Confira abaixo:

FACETID Generation Script
#!/bin/bash

# === CONFIGURAÇÃO ===
KEYSTORE_PATH="my-release-key.jks"
ALIAS="your-key-alias"
STOREPASS="your-keystore-password"

# === ARQUIVOS TEMPORÁRIOS ===
CERT_PEM="cert.pem"
CERT_DER="cert.der"

# === 1. Exportar cert em formato PEM ===
echo "[*] Exportando cert para PEM..."
keytool -exportcert -alias "$ALIAS" -keystore "$KEYSTORE_PATH" -storepass "$STOREPASS" -rfc > "$CERT_PEM"

# === 2. Converter PEM para DER ===
echo "[*] Convertendo PEM para DER..."
openssl x509 -in "$CERT_PEM" -outform DER -out "$CERT_DER"

# === 3. Hash SHA-256 + Base64 ===
echo "[*] Gerando hash SHA-256..."
BASE64_HASH=$(openssl dgst -sha256 -binary "$CERT_DER" | openssl base64 -A)

# === 4. Converter Base64 para Base64URL ===
FACET_HASH=$(echo "$BASE64_HASH" | tr '+/' '-_' | tr -d '=')

# === 5. Saída ===
echo ""
echo "✅ FACETID:"
echo "android:apk-key-hash:$FACET_HASH"