Modern Kimlik Doğrulama: OTP, 2FA ve Oturum Yönetimi
Parolalar artık yeterli değil. OTP, 2FA ve akıllı oturum yönetimi ile dijital güvenliği nasıl sağlarsınız? Samimi bir teknik bakış.
Bir sabah uyandığınızda e-postanıza "hesabınıza farklı bir konumdan giriş yapıldı" bildirimi geldiğini hayal edin. O his — mide burkan belirsizlik — beni bu konuyu derinlemesine düşünmeye itti. Parolalar uzun süredir "yeterince iyi" kabul ediliyordu. Artık değil.
Parola Tek Başına Neden Yetmiyor?
Kullanıcılar parolaları yeniden kullanıyor, zayıf seçiyor ya da kimlik avı saldırılarına kurban gidiyor. Haveibeenpwned.com'a göre milyarlarca kimlik bilgisi zaten dark web'de dolaşıyor. Yani şifreniz ne kadar güçlü olursa olsun, tek faktörlü doğrulama yapısal olarak kırılgan.
Burada devreye çok faktörlü kimlik doğrulama (MFA/2FA) giriyor.
2FA Nedir, Nasıl Çalışır?
İki faktörlü doğrulama (2FA), kullanıcının kimliğini iki ayrı kanıtla doğrular:
- Bildiğin bir şey → Parola
- Sahip olduğun bir şey → Telefon, donanım anahtarı
- Olduğun bir şey → Parmak izi, yüz tanıma
2FA bu faktörlerden herhangi ikisini birleştirir. En yaygın kombinasyon: parola + OTP.
OTP: Tek Kullanımlık Parolaların Gücü
OTP (One-Time Password), adından da anlaşılacağı üzere yalnızca bir kez geçerli olan, zamana veya işleme bağlı kısa kodlardır. İki ana türü vardır:
- TOTP (Time-based OTP): Google Authenticator, Authy gibi uygulamalar 30 saniyelik pencerelerle kod üretir. RFC 6238 standardına dayanır.
- HOTP (HMAC-based OTP): Zamana değil, sayaca bağlıdır. Her kullanımda sayaç artar.
TOTP pratikte çok daha yaygın ve güvenli. Sunucu ile istemci aynı gizli anahtarı paylaşır; senkronizasyon sayesinde kodlar eşleşir. Ağ üzerinden iletilmez, bu da MITM saldırılarına karşı dayanıklı kılar.
SMS tabanlı OTP'ye gelince — kolaylığı tartışılmaz ama SIM swap saldırıları nedeniyle güvenlik açısından zayıf halka olmaya devam ediyor. Mümkünse authenticator uygulama ya da donanım anahtarı (YubiKey gibi) tercih edin.
Oturum Yönetimi: Gözden Kaçan Kritik Parça
Kimlik doğrulama sisteminiz ne kadar güçlü olursa olsun, oturum yönetimi zayıfsa tüm çabanız boşa gider. Üretim sistemlerinde gördüğüm en yaygın hatalar:
- Oturum token'larının çok uzun süre geçerli olması
- Token'ların güvensiz (HTTP) kanalda iletilmesi
- Logout işleminin sunucu tarafında token'ı geçersiz kılmaması
- Aynı token'ın farklı cihazlarda sınırsız kullanılabilmesi
İyi Bir Oturum Yönetimi İçin Temel Prensipler
1. Kısa ömürlü access token + refresh token mimarisi kullan (JWT ile uyumlu çalışır). 2. Token'ları HttpOnly ve Secure flag'li cookie'lerde sakla; localStorage'dan kaçın. 3. Refresh token rotation uygula — her yenilemede eski token geçersiz hale gelsin. 4. Şüpheli aktivite tespitinde (farklı IP, yeni cihaz) oturumu zorla sonlandır. 5. Kullanıcıya aktif oturumları görme ve sonlandırma yetkisi ver.
Geliştirici Olarak Nereden Başlamalı?
Sıfırdan yazmak zorunda değilsiniz. Keycloak, Auth0, Supabase Auth gibi hazır çözümler standartları (OAuth 2.0, OpenID Connect) doğru uygular. Ancak bu kütüphanelerin kaputun altında ne yaptığını anlamak, bir şeyler ters gittiğinde hayat kurtarır.
Kendi sistemini kuranlar için öncelik sırası şöyle olabilir:
- TOTP entegrasyonu →
pyotp(Python) veyaspeakeasy(Node.js) - Güvenli oturum yönetimi →
express-session+ Redis store - Rate limiting → Brute force'a karşı vazgeçilmez
Son Söz
Güvenlik, bir özellik değil bir süreçtir. OTP ve 2FA eklediğinizde bitmiyor; oturum ömürlerini, token rotasyonunu ve anomali tespitini de sürekli gözden geçirmeniz gerekiyor. Kullanıcılarınızın o mide burkan bildirimi almaması için bu detaylar fark yaratır.