ZTXBAS
Authentification biométrique résistante au phishing pour les applications modernes
En tant que produit autonome, ZTXBAS est un serveur d’authentification biométrique gratuit et auto-hébergé destiné aux développeurs qui souhaitent ajouter l’authentification biométrique à leurs propres applications. Lancez un conteneur, connectez-y une application d’exemple, scannez un QR code avec l’application mobile ZTXBAS et obtenez une connexion biométrique résistante au phishing, sans compte CoreZT, serveur de licences ni dépendance de type phone-home.
ZTXBAS est également disponible comme capacité sous licence dans ZTXGate. Dans ce modèle, il est étroitement intégré sous forme de bibliothèque et ne nécessite aucun serveur ZTXBAS séparé. La capacité intégrée fonctionne dans les déploiements ZTXGate connectés, sur site, hybrides et totalement air-gapped.
Le problème des MFA traditionnelles
- Les codes SMS peuvent être interceptés via le SIM swapping.
- Les tokens TOTP peuvent être capturés par des proxys de phishing en temps réel.
- Les notifications push peuvent être exploitées par des attaques de fatigue MFA.
- Les tokens matériels sont coûteux et faciles à perdre.
La MFA traditionnelle a été conçue pour une autre époque. Le phishing moderne fonctionne en temps réel et relaie immédiatement identifiants et codes.
Comment fonctionne ZTXBAS
ZTXBAS combine la vérification biométrique avec un origin binding cryptographique : chaque demande d’authentification est liée à l’origine de votre application. Une approbation volée sur phishing.example.com ne peut donc pas être rejouée contre app.example.com.

Flux d’authentification
- L’utilisateur lance la connexion dans votre application.
- Votre application appelle
POST /v1/auth/challengeavec l’identifiant utilisateur et l’origine. - ZTXBAS valide l’origine par rapport à celles enregistrées pour votre application puis pousse un challenge vers le téléphone de l’utilisateur.
- L’utilisateur approuve avec Face ID / Touch ID / empreinte digitale.
- Votre application interroge soit
GET /v1/auth/status/{id}, soit reçoit un webhook signé. En cas de succès, elle obtient une assertion d’identité JWT ES256 à courte durée de vie, liée à l’utilisateur et à l’origine. - Votre application vérifie le JWT par rapport au JWKS public disponible sur
/.well-known/jwks.jsonpuis crée sa propre session.
Le JWT constitue la frontière de sécurité : les Relying Parties n’ont pas à faire confiance au seul transport.
Pourquoi ZTXBAS résiste au phishing
- Origin binding. Chaque challenge est lié à une origine enregistrée ; l’application mobile affiche cette origine à l’utilisateur avant l’approbation.
- Clés liées à l’appareil. Les clés privées restent dans Secure Enclave / TEE. Les modèles biométriques ne quittent jamais l’appareil.
- Aucun secret partagé. Rien à intercepter, phisher ou rejouer : uniquement des assertions signées à courte durée de vie.
Ce que vous obtenez
Serveur ZTXBAS
Un seul conteneur. SQLite (WAL) pour le stockage ; rien d’autre à déployer.
- API signée HMAC-SHA256 – environ une douzaine d’endpoints
- Assertions d’identité JWT signées + JWKS public
- Webhooks avec payloads signés HMAC et retries
- Console d’administration intégrée (applications, utilisateurs, origines, challenges en direct)
- Logs JSON structurés, limitation de débit par application
- HTTPS en production ; HTTP autorisé sur
127.0.0.1pour le développement
Distribution :
- Image OCI sur GitHub Container Registry :
ghcr.io/corezt/ztxbas - Binaires Linux statiques (amd64, arm64) sur la page des releases GitHub
Application mobile ZTXBAS
La même application est utilisée pour ZTXBAS et ZTXGate : vous pouvez faire évoluer le serveur plus tard sans toucher aux téléphones.
- iOS — Face ID / Touch ID, stockage des clés Secure Enclave, iOS 14+ App Store
- Android — empreinte / visage, keystore matériel, Android 8+ Google Play
SDK
Les SDK officiels gèrent la signature HMAC, le polling et la vérification JWT :
- Go —
github.com/corezt/ztxbas/sdk-go - Node / TypeScript —
@corezt/ztxbas - Python —
corezt-ztxbas
ZTXBAS avec ZTXGate
ZTXBAS autonome et ZTXBAS intégré à ZTXGate utilisent le même authentificateur mobile, mais suivent des modèles de déploiement différents.
| Modèle d’utilisation | ZTXBAS autonome | ZTXBAS avec ZTXGate |
|---|---|---|
| Objectif principal | Ajouter l’authentification biométrique à votre propre application | Authentification biométrique renforcée dans les politiques d’accès ZTXGate |
| Modèle tarifaire | Produit autonome gratuit | Capacité ZTXGate sous licence |
| Déploiement serveur | Serveur/conteneur ZTXBAS séparé | Aucun serveur ZTXBAS séparé ; intégration étroite sous forme de bibliothèque |
| Déploiement connecté | Oui | Oui |
| Déploiement air-gapped | Oui | Oui |
| Application mobile | Application mobile ZTXBAS | Même application mobile ZTXBAS |
Si vous intégrez directement l’authentification biométrique dans une application, utilisez ZTXBAS autonome. Si vous utilisez ZTXGate, la capacité intégrée sous licence fait partie de l’architecture d’accès ZTXGate plutôt que d’ajouter un autre serveur à installer et maintenir.
Intégration
# Demander un challenge d’authentification
curl -X POST https://ztxbas.example.com/v1/auth/challenge \
-H "X-Application-ID: app_a1b2c3d4e5" \
-H "X-Signature: <HMAC-SHA256 signature>" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"origin": "https://app.example.com"
}'
# Réponse
{
"challenge_id": "ch_abc123",
"expires_in": 120,
"origin_display": "Example App",
"origin_url": "https://app.example.com",
"challenge_hmac": "..."
}
Les SDK effectuent la signature pour vous ; le faire manuellement est fastidieux. Consultez le guide Bien démarrer pour un exemple complet de bout en bout.
Posture de sécurité
- HTTPS imposé en production ; HTTP uniquement sur loopback
- Signatures de requêtes HMAC-SHA256, comparaisons résistantes aux attaques temporelles
- Clé de signature JWT générée automatiquement au premier démarrage, mode de fichier 0600
- Console admin : hash de mot de passe PBKDF2-HMAC-SHA256 (600k itérations), cookies de session, protection biométrique optionnelle via ZTXBAS lui-même
- SQLite en mode WAL, mode de fichier 0600
- Aucun secret dans les logs ; JSON structuré vers stdout
- Limitation de débit par application sur les endpoints publics, par IP sur l’administration
Tous les détails figurent dans le guide de durcissement.
Tarification autonome
ZTXBAS autonome est gratuit. Les binaires téléchargeables et images de conteneur sont disponibles sur GitHub sous la CoreZT EULA. Aucun compte CoreZT, aucune télémétrie et aucun serveur de licences ne sont requis pour le produit autonome.
La capacité ZTXBAS intégrée à ZTXGate est licenciée dans le cadre du modèle de déploiement ZTXGate.
Questions fréquentes
Que se passe-t-il si un utilisateur perd son téléphone ?
Désenregistrez l’utilisateur via DELETE /v1/users/{id} ou depuis la console admin : les clés de l’appareil deviennent immédiatement invalides. Réenregistrez ensuite l’utilisateur avec un nouvel appareil via votre processus de récupération de compte.
ZTXBAS autonome fonctionne-t-il hors ligne ?
Oui. ZTXBAS autonome est auto-hébergé et peut fonctionner sur un réseau air-gapped. SMTP est requis pour les e-mails d’enregistrement ; un déploiement air-gapped peut donc utiliser un relais interne. La capacité ZTXBAS sous licence intégrée à ZTXGate fonctionne également dans les déploiements ZTXGate air-gapped sans serveur ZTXBAS séparé.
Comment ZTXBAS se compare-t-il aux passkeys / WebAuthn ?
Les deux résistent au phishing. Les passkeys sont natifs du navigateur et excellents lorsque le client est un navigateur que vous contrôlez. ZTXBAS est un flux push médié par le serveur qui fonctionne depuis n’importe quel client (application mobile, CLI, service-to-service) et fournit un JWT signé unique à consommer côté serveur. Ils sont complémentaires : utilisez les passkeys pour la connexion navigateur et ZTXBAS pour les flux step-up, mobiles ou non navigateur.
ZTXBAS est-il certifié FIDO ?
Non. ZTXBAS utilise des primitives cryptographiques similaires (ECDSA sur l’appareil, HMAC sur le transport, JWT vers la Relying Party), mais n’est pas certifié FIDO.
Quand faut-il utiliser ZTXGate à la place ?
ZTXBAS autonome gère une application par instance, en auto-hébergement, avec une console admin locale. Si vous avez besoin de multi-tenant, de RBAC administrateur et SSO, de SCIM, d’intégration de posture appareil, d’export SIEM ou d’application réseau étendue pour VPN / RDP / SSH / applications legacy, utilisez ZTXGate. Lorsque ZTXBAS est licencié avec ZTXGate, il est intégré sous forme de bibliothèque au lieu d’être déployé comme serveur ZTXBAS séparé.
Bien démarrer
Propulsé par CoreZT · Pour le Zero Trust à l’échelle du réseau, voir ZTXGate →