Glossaire

Qu'est-ce que Web Crypto API ?

La Web Crypto API est un standard du W3C qui fournit une interface JavaScript vers un ensemble de primitives cryptographiques — dont le chiffrement, le déchiffrement, la génération de clés, le hachage et la signature — implémentées nativement dans le navigateur.

Avant la Web Crypto API, les applications web ayant besoin de cryptographie devaient recourir à des bibliothèques JavaScript qui implémentaient les algorithmes de zéro. Ces bibliothèques étaient lentes (puisqu’elles s’exécutaient dans l’interpréteur JavaScript), potentiellement vulnérables aux attaques temporelles et incapables d’exploiter les accélérateurs cryptographiques matériels des processeurs modernes.

La Web Crypto API résout ces problèmes en exposant à JavaScript la cryptographie native du moteur du navigateur. Des opérations comme le chiffrement AES, la génération de clés et la dérivation de clé PBKDF2 s’exécutent sous forme de code compilé en natif, bénéficient d’implémentations à temps constant (résistantes aux canaux auxiliaires temporels) et de l’accélération matérielle via les instructions AES-NI des processeurs modernes.

L’API est asynchrone par nature : toutes les opérations renvoient des promesses au lieu de bloquer le thread principal. Les objets CryptoKey créés par l’API sont opaques par défaut et ne peuvent pas être extraits de la mémoire, sauf s’ils sont explicitement marqués comme exportables. Cela offre une protection supplémentaire contre les fuites de clé accidentelles.

Comment Vaulted utilise Web Crypto API

Vaulted s’appuie exclusivement sur la Web Crypto API pour toutes ses opérations cryptographiques. Il utilise crypto.subtle.generateKey pour créer les clés AES-256-GCM, crypto.subtle.encrypt et decrypt pour le chiffrement proprement dit, ainsi que crypto.subtle.deriveKey avec PBKDF2 quand une phrase secrète est utilisée. En dépendant uniquement de la cryptographie implémentée nativement dans le navigateur, Vaulted évite les bibliothèques cryptographiques tierces et bénéficie d’implémentations à temps constant et accélérées par le matériel.