Aller au contenu

Publié le 18/10/2026

Runevault : Concevoir une plateforme d'authentification matérielle ouverte et sécurisée

Dans un écosystème où les attaques par hameçonnage et le vol de session se sophistiquent, le mot de passe traditionnel montre depuis longtemps ses limites. Même les méthodes de double facteur (2FA) basées sur les SMS ou les applications TOTP restent vulnérables aux attaques de type Man-in-the-Middle. C'est face à ce constat que j'ai développé Runevault, une plateforme d'authentification matérielle visant à concilier sécurité cryptographique stricte et intégration fluide pour les développeurs.

Pourquoi repenser l'authentification physique ?

Le standard FIDO2/WebAuthn s'est imposé comme la référence pour une authentification sans mot de passe fiable. Les clés de sécurité physiques apportent une garantie déterminante : la preuve de présence de l'utilisateur, combinée à une liaison cryptographique indissociable du nom de domaine consulté.

Avec Runevault, le but n'était pas simplement de prototyper un boîtier USB, mais d'architecturer une chaîne de confiance complète et transparente. L'initiative vise à offrir aux développeurs un contrôle total sur l'ensemble de la pile, du silicium jusqu'au serveur d'application.

L'architecture : du bare-metal aux API web

Développer une plateforme matérielle en tant qu'ingénieur full-stack exige de faire le pont entre l'électronique embarquée et les protocoles web de haut niveau. Runevault s'articule autour de trois couches principales :

  • Le composant matériel et firmware : Conçu autour d'un microcontrôleur moderne adossé à une puce de sécurité dédiée (Secure Element). Le firmware, écrit en Rust embarqué, génère et manipule des paires de clés asymétriques (ECDSA/Ed25519) en garantissant que la clé privée ne quitte jamais l'enclave sécurisée.
  • Le protocole de transport : La communication avec la machine hôte repose sur les profils USB HID standard et NFC, assurant une compatibilité native avec les navigateurs modernes via l'API WebAuthn, sans installation de pilote propriétaire.
  • L'infrastructure logicielle et SDK : Un backend modulaire et une suite de bibliothèques clientes facilitent l'enregistrement et la validation des défis cryptographiques au sein d'applications web existantes.

Les défis techniques rencontrés

Le premier défi a concerné la réduction de la surface d'attaque. Côté embarqué, chaque cycle compte : il a fallu implémenter des mécanismes de signature à temps constant pour neutraliser les attaques par canaux auxiliaires (timing attacks). Le choix de Rust s'est révélé déterminant pour éliminer les corruptions de mémoire fréquentes en C/C++.

Le second enjeu a porté sur l'expérience développeur (DX). Décoder et valider les formats d'attestation FIDO2 (CBOR, COSE) côté serveur s'avère souvent complexe. Runevault abstrait cette lourdeur en fournissant des validateurs typés et des messages d'erreur explicites pour accélérer l'intégration.

Perspectives et suite du projet

Runevault démontre qu'il est accessible de démystifier la cryptographie matérielle et d'unifier l'ingénierie bas niveau avec le développement web contemporain. Les prochains jalons incluent l'extension du support vers les passkeys synchronisées et la publication des schémas électroniques sous licence ouverte.

Pour examiner l'architecture, consulter le code source ou tester le bac à sable d'authentification, les dépôts du projet sont disponibles sur mon GitHub.