Detection de vivacite et identite numerique en Indonesie : approches techniques pour la prevention de la fraude
Engineering Team
Qu’est-ce que la detection de vivacite et pourquoi l’Indonesie en a-t-elle besoin ?
La detection de vivacite est une technologie qui determine si un echantillon biometrique (tel qu’une image faciale) provient d’une personne reelle, physiquement presente plutot que d’un artefact d’usurpation comme une photographie imprimee, un replay d’ecran, un masque en silicone ou une video deepfake. Dans le contexte du reglement KOMDIGI n° 7 de 2026 de l’Indonesie, la detection de vivacite est un composant obligatoire de tous les systemes de verification biometrique de cartes SIM.
Les enjeux sont enormes. L’Indonesie a perdu environ 7 000 milliards de roupies (407 millions de dollars) en cybercriminalite en 2025, selon les donnees de l’Agence Nationale de Cybersecurite et de Cryptographie (BSSN). La fraude par SIM-swap a elle seule representait 1 200 milliards de roupies (70 millions de dollars) de ces pertes. Sans detection de vivacite robuste, un systeme de verification biometrique n’est qu’un theatre de securite — un attaquant peut presenter une photo ou video haute resolution de la victime et passer les controles de reconnaissance faciale.
Le paysage des menaces : attaques par presentation
Les attaques par presentation (egalement appelees attaques par usurpation) contre les systemes de reconnaissance faciale se repartissent en plusieurs categories, chacune necessitant des strategies de detection differentes :
Niveau 1 : Attaques par impression
L’attaque la plus simple utilise une photographie imprimee de la personne cible. Elle est etonnamment efficace contre les systemes de reconnaissance faciale basiques depourvus de detection de vivacite. L’attaquant imprime une photo haute resolution sur papier glace et la tient devant la camera.
Methodes de detection :
- Analyse de texture (detection de motifs d’impression, effet moire)
- Detection de bords (les bords du papier sont visibles dans le cadre)
- Analyse de reflexion (le papier reflechit la lumiere differemment de la peau)
- Analyse de mouvement (les motifs de mouvement d’une surface 2D different d’un visage 3D)
Niveau 2 : Attaques par replay d’ecran
L’attaquant affiche une video de la cible sur un ecran de telephone, tablette ou ordinateur portable. Plus sophistiquee que l’attaque par impression car elle peut simuler des mouvements faciaux comme le clignement des yeux et les mouvements de tete.
Methodes de detection :
- Detection d’ecran (identification des motifs de grille de pixels, bordures d’ecran)
- Analyse du motif moire (les pixels affiches a l’ecran produisent des motifs d’interference)
- Test de reflexion au flash (utilisation du flash de l’appareil pour detecter l’uniformite de la reflexion de l’ecran)
- Analyse de flux optique (la video sur ecran possede des caracteristiques optiques differentes)
Niveau 3 : Attaques par masque 3D
L’attaque la plus sophistiquee utilise des masques imprimes en 3D ou en silicone reproduisant le visage de la cible. Ces masques peuvent inclure des textures de peau realistes, des trous pour les yeux et des ouvertures pour la bouche.
Methodes de detection :
- Detection de profondeur (utilisation de capteurs a lumiere structuree ou ToF pour detecter les zones planes)
- Analyse spectrale de la peau (la vraie peau a des caracteristiques de reflexion uniques dans le spectre proche infrarouge)
- Analyse des micro-mouvements (les micro-expressions et les mouvements cutanes causes par le pouls n’existent pas dans les masques)
- Detection de temperature (necessite une camera thermique — les masques ont une temperature differente du visage)
Niveau 4 : Deepfakes et injection numerique
Les attaques les plus avancees utilisent des videos deepfake generees par IA ou injectent directement des images synthetiques dans le pipeline de la camera. L’attaquant peut detourner le pilote de la camera ou utiliser un logiciel de camera virtuelle.
Methodes de detection :
- Verification de l’integrite de l’appareil (verification que le materiel de la camera n’a pas ete falsifie)
- Detection d’injection (detection de pilotes de camera virtuels ou d’injection d’images)
- Analyse des artefacts GAN (les deepfakes presentent souvent des artefacts sur les bords, les cheveux et les dents)
- Test defi-reponse (demander a l’utilisateur d’executer une sequence d’actions aleatoires — les deepfakes en temps reel ont du mal a reproduire fidelement)
ISO/IEC 30107-3 : norme de detection d’attaques par presentation
ISO/IEC 30107-3 est la norme internationale pour evaluer les capacites de detection d’attaques par presentation (PAD) des systemes biometriques. Le reglement KOMDIGI exige que tous les fournisseurs de SDK biometriques reussissent les tests PAD de niveau 2 ou superieur.
La norme definit deux metriques cles :
- APCER (Taux d’erreur de classification de presentation d’attaque) : Pourcentage d’attaques incorrectement acceptees comme reelles
- BPCER (Taux d’erreur de classification de presentation normale) : Pourcentage d’utilisateurs reels incorrectement rejetes comme attaques
| Niveau PAD | Exigence APCER | Types d’attaque |
|---|---|---|
| Niveau 1 | ≤ 5 % | Photos imprimees, replay d’ecran |
| Niveau 2 | ≤ 2,5 % | Niveau 1 + masques en papier, attaques 2D courbees |
| Niveau 3 | ≤ 1 % | Niveau 2 + masques 3D, attaques partielles |
Pour la verification SIM en Indonesie, la conformite de niveau 2 est l’exigence minimale. Les services financiers (sous regulation OJK) peuvent necessiter une conformite de niveau 3 pour un niveau de securite superieur.
Architecture technique de detection de vivacite
Detection de vivacite passive vs active
Les deux approches principales de detection de vivacite ont chacune leurs avantages et inconvenients :
La detection de vivacite passive analyse une seule image ou une courte video sans que l’utilisateur en soit conscient. L’experience utilisateur est fluide — il suffit de regarder la camera.
- Avantages : excellente UX, rapide, accessible
- Inconvenients : resistance moindre aux attaques avancees
La detection de vivacite active demande a l’utilisateur d’effectuer des actions specifiques (tourner la tete, cligner des yeux, sourire) pour prouver qu’il s’agit d’une personne reelle.
- Avantages : meilleure resistance aux attaques d’usurpation
- Inconvenients : UX moins bonne, potentiellement inaccessible pour les personnes handicapees, plus long
Approche hybride recommandee
Pour le scenario de verification SIM en Indonesie, nous recommandons une approche hybride combinant les avantages des deux techniques :
- Verification passive initiale : Execution de la detection de vivacite passive lors de la capture (<500 ms)
- Evaluation du risque : Si la confiance de la detection passive est inferieure au seuil (par ex. <0,85), declenchement d’un defi actif
- Defi actif : Demander a l’utilisateur d’effectuer une action aleatoire simple (par ex. tourner la tete a gauche)
- Decision finale : Combinaison des scores passif et actif pour la decision finale
Pipeline de detection de vivacite en Rust
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct LivenessResult {
pub is_live: bool,
pub confidence: f64,
pub method: LivenessMethod,
pub attack_scores: AttackScores,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum LivenessMethod {
Passive,
Active,
Hybrid,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AttackScores {
pub print_attack: f64,
pub screen_replay: f64,
pub mask_3d: f64,
pub deepfake: f64,
}
impl LivenessDetector {
pub async fn check_hybrid(
&self,
frames: &[CaptureFrame],
challenge: &Challenge,
) -> Result<LivenessResult, LivenessError> {
// 1. Verification passive d'abord
let passive = self.check_passive(&frames[0]).await?;
if passive.confidence >= 0.95 {
return Ok(passive);
}
// 2. Verification active si le score passif est insuffisant
let active_features = self.active_model
.analyze_sequence(frames, challenge)?;
let combined_confidence =
passive.confidence * 0.4 + active_features.confidence * 0.6;
Ok(LivenessResult {
is_live: combined_confidence >= self.threshold_active,
confidence: combined_confidence,
method: LivenessMethod::Hybrid,
attack_scores: passive.attack_scores,
})
}
}
Deploiement de modeles et optimisation
Le deploiement de la detection de vivacite en Indonesie necessite de prendre en compte plusieurs facteurs pratiques :
Diversite des appareils
L’Indonesie possede un ecosysteme de smartphones extremement diversifie. Parmi les 345 millions de cartes SIM actives, de nombreux appareils sont des telephones Android d’entree ou de milieu de gamme. Votre solution de detection de vivacite doit fonctionner de maniere fiable sur :
- Entree de gamme : 2 Go de RAM, processeur quad-core, camera frontale VGA
- Milieu de gamme : 4-6 Go de RAM, processeur octa-core, camera frontale 8 MP
- Haut de gamme : 8 Go+ de RAM, processeur flagship, camera frontale avec detection de profondeur
Taille du modele et temps d’inference
| Methode de deploiement | Taille du modele | Temps d’inference | Precision |
|---|---|---|---|
| Sur appareil (TensorFlow Lite) | 5-15 Mo | 50-200 ms | 92-96 % |
| Sur appareil (ONNX Runtime) | 10-25 Mo | 30-150 ms | 93-97 % |
| Cote serveur (TensorRT) | 50-200 Mo | 10-50 ms | 97-99 % |
| Hybride | 10 Mo (appareil) + 100 Mo (serveur) | 100-250 ms total | 96-99 % |
Conditions reseau
Les conditions reseau en Indonesie varient considerablement. Dans les grandes villes comme Jakarta et Surabaya, la couverture 4G est bonne avec une latence moyenne de 30-50 millisecondes. Mais dans les zones rurales, le reseau peut etre en 3G voire 2G, avec une latence de 200-500 millisecondes et un taux de perte de paquets de 5-10 %.
Votre architecture de detection de vivacite doit gerer ces conditions avec elegance :
- Effectuer la verification initiale de vivacite sur l’appareil pour reduire la dependance au reseau
- Compresser les modeles biometriques pour minimiser la taille de transfert (objectif <50 Ko)
- Implementer une logique de tentatives avec backoff exponentiel
- Fournir un mecanisme de mise en file d’attente hors ligne pour les scenarios sans reseau
Questions frequentes
La detection de vivacite peut-elle etre contournee ?
Aucun systeme de detection de vivacite n’est parfait. Les attaques les plus avancees (en particulier les attaques d’injection numerique de niveau 4) peuvent contourner la technologie actuelle. C’est pourquoi une approche multicouche est essentielle — combinant detection passive, defi actif, verification de l’integrite de l’appareil et analyse comportementale. L’objectif de securite n’est pas d’atteindre 100 % de protection, mais de rendre le cout de l’attaque suffisamment eleve pour dissuader la plupart des attaquants.
Quelle est la precision des systemes de detection de vivacite ?
Les systemes modernes de detection de vivacite peuvent atteindre une precision de 97-99 % dans des conditions standard. Cependant, la precision est affectee par les conditions d’eclairage, la qualite de la camera et la cooperation de l’utilisateur. Le reglement KOMDIGI exige une precision minimale de 95 %, avec une marge de 5 % pour le taux de faux rejet (FRR).
Comment choisir un SDK de detection de vivacite ?
Lors du choix d’un SDK, considerez : le statut de certification KOMDIGI, le niveau de conformite ISO/IEC 30107-3, la gamme de compatibilite des appareils, les capacites hors ligne, l’impact de la taille du SDK sur la taille de l’application, le modele de tarification et la qualite du support technique. Nous recommandons de realiser des benchmarks avec votre propre jeu de donnees avant de faire votre choix.