Detección de ataques de inyección

- /iad (Injection Attack Detection)

Esta API, en el contexto de captura y evaluación facial, permite la detección de:

  • Vectores de ataque: cámaras virtuales, dispositivos externos, ataques al navegador, ataques de red.

  • Contenido de ataque: renderizado 3D, morphing facial, intercambio facial (face swap), cheap fake, deep fake.

Esta API requiere la integración del lado del cliente de las bibliotecas de captura IAD. La biblioteca de captura IAD (incluida en Selphi™) controla el proceso de captura en el cliente y genera el bundle IAD (paquete cifrado de metadatos e imágenes).

La API sabe cómo desempaquetar el bundle IAD del cliente para realizar tanto la detección de ataques por inyección como la detección de ataques de presentación.

Las operaciones soportadas son:

  • Detección de Ataques por Inyección: detección de ataques por inyección y de presentación.


Detección de Ataques de Inyección (Injection Attack Detection)

Solicitud:

bash

curl --location '{IDENTITY_API_BASE_URL}/iad' \
--header 'x-api-key: {API_KEY}' \
--header 'Content-Type: application/octet-stream' \
--data 'IAD_BUNDLE'

Parámetros de la solicitud:

Campo

Requerido

Descripción

IAD_BUNDLE

Paquete cifrado de metadatos e imágenes. El bundle debe enviarse como una solicitud application/octet-stream.

Ejemplo de respuesta exitosa:

200 OK

Content-Type: application/json

json

Campo

Descripción

attack

Valor booleano que indica si se ha detectado un ataque. true: se detectó un ataque, false: no se detectó ningún ataque.

Ejemplo de respuesta fallida:

400 Bad Request

Content-Type: application/json

json

Código HTTP

Mensaje

Código de Error

Descripción en Español

400

Rostro no encontrado

FACE_NOT_FOUND

No se han detectado rostros en la imagen.

400

Rostro recortado

FACE_CROPPED

El rostro está solo parcialmente dentro de la imagen.

400

Rostro ocluido

FACE_IS_OCCLUDED

El rostro está parcialmente oculto detrás de un objeto.

400

Demasiados rostros detectados

TOO_MANY_FACES

Hay más de un rostro visible en la imagen.

400

El ángulo de rotación facial fuera del plano es extremadamente grande

FACE_ANGLE_TOO_LARGE

El ángulo del rostro correspondiente al punto de vista de la cámara es demasiado grande.

400

El tamaño absoluto del rostro es demasiado pequeño

FACE_TOO_SMALL

La densidad de píxeles del rostro es demasiado baja; debería estar más cerca del punto de vista de la cámara o la imagen debería tener mayor resolución.

400

El tamaño relativo del rostro es demasiado pequeño

FACE_TOO_SMALL

El rostro es demasiado pequeño; debería estar más cerca del punto de vista de la cámara para que ocupe una porción mayor de la imagen.

400

El rostro está demasiado cerca de uno o más bordes

FACE_CLOSE_TO_BORDER

El rostro está demasiado cerca del límite del punto de vista de la cámara; debería estar centrado respecto a la vista de la cámara.

400

Error al analizar el archivo

UNKNOWN

El archivo no es un payload blob cifrado correcto o está corrupto.

400

Error al leer los metadatos

UNKNOWN

Los datos del blob cifrado no se generaron con el formato correcto.

400

Error al descifrar el mensaje

UNKNOWN

El par de claves pública-privada configurado en el servidor y la biblioteca de captura es incorrecto.


Integración del lado del cliente

Para generar el payload blob cifrado, necesita utilizar la versión del Widget Antispoof de Selphi y capturar el evento "onExtractionFinished". El evento devolverá un objeto con los resultados del proceso de extracción facial. Una de las propiedades de este objeto es "encryptedLivenessRaw", que contiene el payload blob cifrado.

Ahora estamos listos para enviar el payload blob cifrado a su servidor utilizando una solicitud POST. Puede utilizar cualquier biblioteca cliente HTTP que prefiera, como Axios o Fetch.

Su servidor debe recibir este payload y enviarlo al endpoint IAD de Identity Api. Identity Api devolverá los resultados en un objeto JSON indicando si pasa las validaciones.

javascript

Last updated