1) Threat Model & “Hollywood Masks” — Reality Check
Pourquoi des masques ultra‑réalistes échouent en face‑à‑face : physique des matériaux, indices visuels multi‑spectraux, dynamique vivante, et défenses logicielles (PAD/Liveness).
🕵️
Synthèse
Même les masques silicone haut de gamme ne répliquent pas correctement la micro‑texture cutanée, la réponse spectrale (NIR/IR), la structure 3D fine (nez/oreilles), ni les signaux biomédicaux (PPG, respiration). Les systèmes modernes combinent capteurs (RGB+NIR+ToF) et algorithmes (CNN/ViT) pour séparer le vivant du polymère.
🧪
Protocoles de test (extraits)
Banque d’attaques 2D/3D, masques partiels, éclairages variés, distance 30–150 cm, lunettes/maquillage, latence cible < 350 ms.
🏗️
Architecture de référence (section 1)
Caméra RGB+NIR+ToF → PAD multi‑modal → Embedding visage → Matching → Score → MFA adaptatif. Templates chiffrés en Secure Enclave/TEE.
1.1 Matériaux & propriétés
- Silicone/latex : indice de réfraction, brillance différente de la peau, faible diffusion sous‑cutanée.
- Peau humaine : couches (épiderme/derme) avec chromophores (mélanine, hémoglobine) → spectre distinct.
- Vieillissement : micro‑craquelures/plis dynamiques impossibles à synchroniser parfaitement avec la mimique.
1.2 Indices visibles (RGB)
- Micro‑reliefs : pores, rides fines, spéculaire vs diffuse.
- Jonctions critiques : paupière‑masque, narines, oreilles, ligne capillaire.
- Occlusion dents/langue lors de la parole, bave/salivation absentes ou non‑naturelles.
1.3 NIR/IR & Thermique
- Absorption NIR par hémoglobine → motifs PPG invisibles sur silicone.
- Thermique : gradients respiration nez/bouche, fronts vasculaires.
- Réflectance du polymère stable vs variations micro‑vasculaires humaines.
1.4 Indices 3D & dynamique
- Profondeur (stéréo/ToF) : cavité nasale, tragus/antitragus, cartilages; masques lissent ces volumes.
- Micro‑expressions : latence clignements, contraction orbiculaire, asymétries naturelles.
- Synchronie audio‑visuelle : phonèmes vs articulation; dérive des lèvres.
Indice pratique — oreille : géométrie riche, difficile à contrefaire; utilisez un crop oreille 64×64 pour un sous‑classifieur PAD 3D.
1.5 Contre‑mesures rapides (UX minimale)
✔
Demande d’inclinaison tête + clignement + lecture chiffre → fusion score liveness.
✔
Flash NIR aléatoire faible puissance → réponse pupille + PPG.
✔
Capture oreille/profil 3/4 à T0 et T0+1 s → cohérence forme/profondeur.
| Type | Coût | Complexité | Signatures | Défenses |
|---|---|---|---|---|
| Masque complet silicone | €€€ | Haute | Brillance, jonctions, PPG nul | RGB+NIR+ToF, micro‑expressions |
| Masque partiel (haut/bas) | €€ | Moyenne | Incohérence texture zone non couverte | Défis actifs, crops multiples |
| Masque imprimé 3D | €€ | Moyenne | Volumes rigides, peau statique | Thermique/PPG, specular maps |
| Make‑up extrême/Prothèses | € | Faible | Teint homogène non naturel | Analyse couleur/constance éclairage |
Arbre d’attaque (extrait) - Objectif: passer PAD face-to-face - Ressources: budget {€..€€€}, temps {jours..semaines}, accès capteur {RGB,NIR,ToF} - Voies: (A) masque complet (B) partiel (C) prothèses (D) deepfake + écran (rejeté en présentiel) - Risques: détection PPG/thermique, profondeur, défi actif, latence > 350 ms
3.1 Pré‑traitements
- Détection visage multi‑spectrale (RGB+NIR).
- Alignement 5‑points, normalisation illumination (Retinex), débruitage ToF.
- Extraction crops : yeux, nez, bouche, oreille; patchs 32–64 px.
3.2 Classifieurs
- CNN/ViT PAD RGB (textures), PAD NIR (vasculaire), PAD ToF (relief).
- Réseau PPG (1D) à partir de séries temporelles par pixel (green‑channel rPPG).
- RNN pour séquence micro‑mouvements (clignements).
3.3 Fusion
score = w_rgb*s_rgb + w_nir*s_nir + w_tof*s_tof + w_ppg*s_ppg + w_motion*s_motion decision = (score >= θ_pad) ? LIVE : SPOOF
3.4 Pseudocode (extrait)
def liveness(frame_rgb, frame_nir, depth, seq_rgb): face = detect_face(frame_rgb, frame_nir) crops = extract_crops(face) s_rgb = cnn_rgb(crops.rgb) s_nir = cnn_nir(crops.nir) s_tof = cnn_depth(depth[face]) s_motion = blink_rnn(seq_rgb[face]) s_ppg = rppg(seq_rgb[face]) return fuse(s_rgb, s_nir, s_tof, s_motion, s_ppg)
3.5 Seuils & métriques
- Calibrer θ sur DET (cible EER < 2% en conditions labo; < 5% terrain).
- Reporter APCER/BPCER/ACER par type d’attaque et par capteur.
- Déploiement : monitorer dérive domaine (caméra/éclairage).
4.1 BOM minimal
- Caméra RGB 60 fps, global shutter recommandé.
- Caméra NIR 850 nm + filtre passe‑bande; LED NIR 850 nm < 1 mW/cm².
- Module ToF (QVGA) 30 fps, portée 0.2–1.5 m.
- Thermique (option) 80×60 pour respiration.
- MCU pour contrôle LED (random flicker) + synchro capteurs.
4.2 Calibration
- Matrices intrinsèques/extrinsèques RGB/NIR/ToF - Stéréocalibration profil 3/4 (améliore oreille/nez) - Mesure SNR capteurs; test MTF avec mire 1951 USAF
4.3 Sécurité oculaire
Respect des limites d’irradiance NIR; PWM contrôlé; temps d’exposition < 200 ms par flash.
4.4 Placement & UX
- Distance optimale 40–60 cm; marque visuelle à l’écran.
- Message vocal/texte pour défi actif; durée totale < 4 s.
- Gestion lunettes/masques sanitaires : basculer sur iris/voix si visage partiel.
4.5 Schéma (ASCII)
[RGB Cam] --\ [NIR Cam] ---+--> [Sync + Preproc] --> [PAD Fusion] --> [Embedding/Match] --> [Decision/MFA] [ToF Cam] --/ ^ [LED NIR] <----/ (stimuli)
- Jeux internes avec masques silicone variés (épaisseur, couleur, partiels).
- Cross‑sensor : au moins 3 caméras différentes par modalité.
- Stratification par éclairage (chaud/froid/contre‑jour) et accessoires (lunettes/chapeaux).
| Mesure | But | Cible |
|---|---|---|
| APCER | Taux d’acceptation d’attaque | < 2–3% labo, < 5% terrain |
| BPCER | Taux de rejet du vivant | < 5% |
| ACER | Moyenne (APCER+BPCER)/2 | < 4% |
| Latency | UX & coûts | < 350 ms PAD, < 4 s scénario complet |
6.1 API REST (exemple)
POST /api/identity/pad\nContent-Type: application/json\n{\n "session_id": "S-9843",\n "frames_rgb": ["b64...", "..."],\n "frames_nir": ["b64...", "..."],\n "depth": ["b64..."],\n "metadata": {"device":"cam_v3","lighting":"indoor"}\n}\n\nResponse 200\n{\n "score": 0.87,\n "decision": "LIVE",\n "apcer_est": 0.018,\n "latency_ms": 214\n}
6.2 WebAuthn/FIDO (passkeys)
Combiner PAD avec authentification forte (clé + biométrie on‑device). Les templates biométriques ne quittent pas l’appareil; seule l’attestation/clé publique est serveur.
6.3 Journalisation (privacy‑first)
event=PAD decision=LIVE score=0.87 apcer_est=0.018 bpcert_est=0.022 device=cam_v3\nstore_frames=false pii=false retention_days=0
6.4 Observabilité
- Dash latence par modalité; alarmes dérive score moyen.
- A/B seuils; rollback si BPCER > 7% pendant 30 min.
- Échantillons synthétiques anonymisés pour ré‑entraînement.
- Finalité explicite, consentement, minimisation des données.
- DPIA pour biométrie; stockage sur‑appareil privilégié.
- Équité : tests par phototypes, âges, genres; explicabilité du refus.
Message utilisateur (exemple)\n« Nous vérifions que vous êtes bien une personne réelle via une détection de vivacité. Aucune image n’est stockée. Cette étape dure ~3 secondes. »
📚
Base de connaissance — Détails techniques & playbooks
Ouvrir pour parcourir des dizaines de sections : matériaux, signaux, pipelines, tests, checklists, snippets, et scénarios.
Section
