Glosario

¿Qué es Web Crypto API?

La Web Crypto API es un estándar del W3C que proporciona una interfaz de JavaScript a un conjunto de primitivas criptográficas —incluyendo cifrado, descifrado, generación de claves, hashing y firma— implementadas de forma nativa en el navegador.

Antes de la Web Crypto API, las aplicaciones web que necesitaban criptografía tenían que depender de bibliotecas de JavaScript que implementaban los algoritmos desde cero. Estas bibliotecas eran lentas (al ejecutarse en el intérprete de JavaScript), potencialmente vulnerables a los ataques de temporización y no podían aprovechar los aceleradores criptográficos de hardware presentes en las CPU modernas.

La Web Crypto API resuelve estos problemas exponiendo a JavaScript el motor criptográfico nativo del navegador. Operaciones como el cifrado AES, la generación de claves y la derivación de claves PBKDF2 se ejecutan como código nativo compilado, beneficiándose de implementaciones de tiempo constante (resistentes a los canales laterales de temporización) y de la aceleración por hardware mediante instrucciones AES-NI en los procesadores modernos.

La API es asíncrona por diseño: todas las operaciones devuelven Promises en lugar de bloquear el hilo principal. Los objetos CryptoKey creados por la API son opacos de forma predeterminada y no pueden extraerse de la memoria a menos que se marquen explícitamente como exportables, lo que añade una capa adicional de protección frente a la fuga accidental de claves.

Cómo usa Vaulted Web Crypto API

Vaulted depende exclusivamente de la Web Crypto API para todas las operaciones criptográficas. Utiliza crypto.subtle.generateKey para crear claves AES-256-GCM, crypto.subtle.encrypt y decrypt para el cifrado en sí, y crypto.subtle.deriveKey con PBKDF2 cuando se usa una frase de contraseña. Al depender únicamente de la criptografía nativa del navegador, Vaulted evita las dependencias de bibliotecas criptográficas de terceros y se beneficia de implementaciones de tiempo constante aceleradas por hardware.