Mert Tosun
← Yazılar
Passkey ve WebAuthn: Şifresiz Kimlik Doğrulama Rehberi

Passkey ve WebAuthn: Şifresiz Kimlik Doğrulama Rehberi

Mert TosunGüvenlik

Parola tabanlı kimlik doğrulama, internetin en eski ama en kırılgan alışkanlıklarından biri. Kullanıcılar zayıf parola seçiyor, aynı şifreyi farklı platformlarda tekrar kullanıyor, phishing sayfaları kimlik bilgilerini topluyor ve MFA bile her zaman yeterli olmuyor. Passkey yaklaşımı bu döngüyü kırmak için geliştirildi: kullanıcı bir "sır" hatırlamaz, cihaz kriptografik anahtar çifti üretir ve sunucuya yalnızca public key kaydedilir.

Passkey teknik olarak WebAuthn standardının modern kullanıcı deneyimiyle paketlenmiş halidir. Apple, Google ve Microsoft ekosistemlerinin tamamı desteklediği için artık sadece "gelecek teknoloji" değil, bugün üretimde kullanılabilir bir yöntemdir.

Temel Mantık

Kayıt anında cihazda bir anahtar çifti oluşur:

  • Private key: Cihazı terk etmez.
  • Public key: Sunucuya kaydedilir.

Girişte sunucu bir challenge üretir, cihaz private key ile challenge'ı imzalar, sunucu public key ile doğrular.

KAYIT
User -> Browser -> Authenticator (TPM/Secure Enclave)
                 -> key pair üret
                 -> public key -> Server DB

GİRİŞ
Server -> challenge -> Browser -> Authenticator
Authenticator -> signed challenge -> Server
Server -> verify(public key) -> Login Success

Bu modelde sunucuda çalınabilecek parola hash'i olmadığı için veri sızıntılarının etkisi ciddi şekilde azalır.

Backend Akışı Nasıl Tasarlanır?

İki endpoint seti yeterlidir:

  1. Begin Registration

    • Kullanıcı kimliği alınır.
    • challenge, rp, user, pubKeyCredParams alanları üretilir.
    • Challenge kısa süreli olarak saklanır (Redis ideal).
  2. Finish Registration

    • Tarayıcıdan dönen attestation doğrulanır.
    • Public key, credential id, signCount kaydedilir.
  3. Begin Authentication

    • Kullanıcının credential listesi bulunur.
    • Yeni challenge üretilir.
  4. Finish Authentication

    • Assertion doğrulanır.
    • signCount anti-replay kontrolü yapılır.
    • Session/JWT üretilir.

Güvenlik Kazanımları

Passkey'i güçlü yapan tek şey "şifresiz" olması değil; phishing'e karşı doğrudan dirençli olmasıdır. Çünkü WebAuthn imzası origin'e bağlıdır. Kullanıcı sahte bir domaine giderse imza geçerli üretilemez. Yani saldırganın parolayı "ikna ile" alma yolu kapanır.

Ek avantajlar:

  • Brute-force riski azalır.
  • Credential stuffing etkisizleşir.
  • SMS OTP bağımlılığı düşer.
  • Kullanıcı deneyimi hızlanır (Face ID / Touch ID ile giriş).

Uygulamada Kritik Detaylar

1) Challenge Yönetimi

Challenge tek kullanımlık ve kısa ömürlü olmalı (60-180 saniye). Başarıyla kullanıldığında hemen silinmelidir.

2) Origin ve RP ID Doğrulaması

Yanlış domain yapılandırması en sık görülen üretim hatasıdır. rpId ve origin değerleri ortam bazında net ayrılmalıdır (app.example.com, staging.example.com gibi).

3) Cihazlar Arası Senkronizasyon

Platform passkey'leri (iCloud Keychain, Google Password Manager) senkronize olabilir. Bu iyi bir UX sağlar ama hesap kurtarma politikası yine de tasarlanmalıdır.

4) Fallback Stratejisi

İlk günden yalnızca passkey'e geçmek yerine aşamalı yaklaşım güvenlidir:

Parola + MFA (mevcut)
        +
Passkey (opsiyonel)
        ->
Passkey first (önerilen)
        ->
Passkey only (olgunlaşınca)

Ölçülmesi Gereken Metrikler

  • Kayıt dönüşüm oranı (registration completion)
  • Giriş başarı oranı
  • Login süresi (median ve p95)
  • Fallback kullanım oranı
  • Cihaz/platform dağılımı

Bu metrikler, sadece teknik doğrulama değil ürün kalitesi için de gereklidir. Örneğin iOS'ta yüksek, Android'de düşük başarı görüyorsan UX akışında platforma özgü bir sorun olabilir.

Sonuç

Passkey, kimlik doğrulamayı hem daha güvenli hem daha akıcı hale getiren nadir teknolojilerden biri. En büyük değerini iki alanda üretir: phishing riskini sert biçimde düşürmesi ve kullanıcıyı parola yükünden kurtarması. Backend tarafında doğru challenge yönetimi, origin doğrulaması ve fallback planı ile kurgulandığında, passkey'e geçiş projeleri kısa sürede somut güvenlik kazanımı üretir. Özellikle B2C uygulamalarda login friksiyonunu azaltırken hesap ele geçirme vakalarını düşürmek için artık "opsiyonel yenilik" değil, yol haritasında öncelikli yatırım olarak değerlendirilmelidir.