Skip to main content
Alle Termen Glossary

Web Crypto API

Definition

De Web Crypto API biedt een gestandaardiseerde interface voor het uitvoeren van cryptografische operaties in webapplicaties. Het biedt veilige willekeurige nummergeneratie, hashing, ondertekening en versleutelingsmogelijkheden. Hoewel veiliger dan het implementeren van cryptografie in JavaScript, blijven juist sleutelbeheer en algoritmeselectie cruciaal.

Wat de Web Crypto API is

De Web Crypto API is een browser-native interface, blootgesteld via window.crypto en crypto.subtle, voor het uitvoeren van cryptografische bewerkingen in JavaScript. Het dekt cryptografisch sterke willekeurige waarden via getRandomValues, plus hashing, HMAC, symmetrische en asymmetrische versleuteling, digitale handtekeningen en sleutelafleiding via het SubtleCrypto-object. De primitieven zijn geïmplementeerd in de browser-engine in native code in plaats van in script, wat sneller en minder foutgevoelig is dan zelfgebouwde JavaScript-cryptografie. Sleutels worden weergegeven als CryptoKey-objecten die als niet-extraheerbaar kunnen worden gemarkeerd, zodat het ruwe sleutelmateriaal nooit aan de omringende JavaScript hoeft te worden blootgesteld. Het grootste deel van de API is beperkt tot secure contexts, oftewel pagina's die via HTTPS of localhost worden aangeboden.

Waarom het belangrijk is voor beveiliging

Het gebruik van een gecontroleerde native implementatie verwijdert hele klassen van bugs die eigen JavaScript-cryptografie teisteren, zoals zwakke willekeurige bronnen, timing-lekken en onjuiste algoritme-bekabeling. Niet-extraheerbare CryptoKey-objecten betekenen dat zelfs script dat op de pagina draait de onderliggende bytes niet kan lezen, wat beperkt wat een compromittering kan stelen. De API maakt een applicatie echter niet vanzelf veilig. Slechte algoritmekeuzes, hergebruikte initialisatievectoren, hardgecodeerde of slecht opgeslagen sleutels en verkeerd afgehandelde uitvoer ondermijnen het allemaal. Cruciaal is dat elke cryptografie die in de browser wordt uitgevoerd nog steeds draait in een omgeving die een aanvaller kan beheersen: een cross-site scripting-lek kan dezelfde API aanroepen, beschikbare sleutels gebruiken en namens de aanvaller versleutelen of ondertekenen.

Hoe je het veilig gebruikt

Kies actuele, goed begrepen algoritmen en parameters, genereer sleutels en IV's met getRandomValues, en verscheep nooit geheime sleutels in clientcode. Markeer sleutels als niet-extraheerbaar wanneer de workflow dat toelaat, en leun op de sleutelafleidingsfuncties van de API in plaats van je eigen te verzinnen. Omdat browser-side cryptografie data alleen beschermt voor zover de client te vertrouwen is, houd je de omringende pagina vrij van geïnjecteerd script: dwing een strikt Content Security Policy af en ontsmet invoer om XSS af te sluiten. De Web Crypto API is een neutrale webplatform-primitief, dus cside is niet direct betrokken bij de werking ervan; de relevante verdedigingsdiscipline is standaard veilige ontwikkeling en het weren van onvertrouwde third-party JavaScript van de pagina.

Definitie

Moet ik de Web Crypto API gebruiken in plaats van een JavaScript-cryptobibliotheek?

Over het algemeen wel. Native primitieven zijn sneller, worden onderhouden door browserleveranciers en vermijden veel implementatievalkuilen van pure JavaScript-cryptografie, inclusief zwakke willekeur. Bibliotheken hebben nog steeds hun plaats voor algoritmen die de API mist, maar voor standaard hashing, versleuteling en ondertekening is de ingebouwde API de veiligere standaardkeuze.

Definitie

Maakt de Web Crypto API client-side versleuteling volledig veilig?

Nee. Het draait in de browser, een omgeving die de machine van de gebruiker en elk geïnjecteerd script kunnen beïnvloeden. Het verhardt de primitieven, maar een cross-site scripting-lek kan dezelfde API aanroepen en beschikbare sleutels misbruiken. Het vult transportversleuteling en server-side controles aan, in plaats van ze te vervangen.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip