Sözlük

Web Crypto API nedir?

Web Crypto API, tarayıcıda yerel olarak uygulanan şifreleme, şifre çözme, anahtar üretimi, karma ve imzalama dahil bir dizi kriptografik primitive için JavaScript arayüzü sağlayan W3C standardıdır.

Web Crypto API'den önce, kriptografiye ihtiyaç duyan web uygulamalarının algoritmaları sıfırdan uygulayan JavaScript kütüphanelerine güvenmesi gerekiyordu. Bu kütüphaneler yavaştı (JavaScript yorumlayıcısında çalıştıklarından), zamanlama saldırılarına karşı potansiyel olarak savunmasızdı ve modern CPU'lardaki donanım kriptografi hızlandırıcılarından yararlanamıyordu.

Web Crypto API, tarayıcının yerel kriptografi motorunu JavaScript'e açarak bu sorunları çözer. AES şifreleme, anahtar üretimi ve PBKDF2 anahtar türetme gibi işlemler, derlenmiş yerel kod olarak çalışır; zamanlama yan kanallarına karşı dirençli sabit zamanlı uygulamalardan ve modern işlemcilerde AES-NI komutları aracılığıyla donanım hızlandırmasından yararlanır.

API, tasarım gereği asenkrondur; tüm işlemler ana iş parçacığını bloke etmek yerine Promise döndürür. API tarafından oluşturulan CryptoKey nesneleri, açıkça dışarı aktarılabilir olarak işaretlenmedikçe varsayılan olarak opaktır ve bellekten çıkarılamaz; bu da yanlışlıkla anahtar sızıntısına karşı ek bir koruma katmanı sağlar.

Vaulted Web Crypto API nasıl kullanır

Vaulted, tüm kriptografik işlemler için yalnızca Web Crypto API'ye dayanır. AES-256-GCM anahtarları oluşturmak için crypto.subtle.generateKey, gerçek şifreleme için crypto.subtle.encrypt ve decrypt, bir parola kullanıldığında ise crypto.subtle.deriveKey ile PBKDF2 kullanır. Yalnızca tarayıcıya özgü kriptografiye bağımlı kalarak Vaulted, üçüncü taraf kriptografi kütüphanesi bağımlılıklarından kaçınır ve donanım hızlandırmalı, sabit zamanlı uygulamalardan yararlanır.