Çok adımlı doğrulama (MFA)
- MFA türlerini güce göre sırala, WebAuthn'ın oltalamaya neden dayandığını gör, bildirim bombardımanını loglardan yakala ve akışı sunucuda kilitle.
- Bu derste MFA türlerini güce göre sıralar, bildirim bombardımanını loglardan yakalar, akışı sunucuda nasıl kilitleyeceğini ve kurtarmayı nasıl kapatacağını öğrenirsin.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Parola çalındığında seni koruyan tek şey ikinci bir kanıttır. Çok faktörlü kimlik doğrulama (MFA) bu ikinci kanıtı ekler. Bu derste MFA türlerini güçlerine göre sıralar, en güçlü türün oltalamaya neden dayandığını anlar, bildirim bombardımanını loglardan tanır ve doğrulama akışını sunucuda kilitlersin.
Sonunda kurtarma akışının neden en zayıf halka olabileceğini ve nasıl sağlamlaştırıldığını göreceksin. Konu boyunca aynı ilke geçerlidir: ikinci kanıt ne kadar güçlüyse, çalınan parola o kadar değersizdir.
İki farklı kanıt ve güç sıralaması
Çok faktörlü kimlik doğrulama, en az iki farklı türden kanıt ister. Bildiğin şey parola ya da PIN'dir. Sahip olduğun şey telefonundaki uygulama ya da donanım anahtarıdır.
Olduğun şey parmak izi gibi biyometridir. Adım sayısı değil tür sayısı önemlidir; parolanın ardından güvenlik sorusu sormak iki adımdır ama iki faktör değildir, ikisi de bildiğin şey türündedir. MFA, önceki derste gördüğün kimlik bilgisi doldurma gibi saldırılarda çalınan parolayı tek başına değersiz kılar.
İkinci kanıt olmadan giriş tamamlanmaz. Bu yüzden MFA, parola tabanlı saldırılara karşı en yüksek getirili tek savunmadır.
Üç kanıt türünü ayırmak önemlidir, çünkü güç türden gelir. Bildiğin şey ele geçirilince kopyalanır; parola bir kez sızdıysa, aynı parola her yerde aynı kapıyı açar. Sahip olduğun şey fiziksel bir nesneye bağlıdır; saldırganın onu da ele geçirmesi gerekir, bu da uzaktan yapılan saldırıyı zorlaştırır. Olduğun şey, yani biyometri, kopyalanması en zor olandır ama kendine has bir zaafı vardır.
Parmak izini değiştiremezsin; bir kez taklit edilirse yenisini üretemezsin. Bu yüzden biyometri çoğu zaman tek başına değil, cihazın kilidini açan yerel bir kanıt olarak kullanılır. Sunucuya giden asıl kanıt yine cihazdaki anahtardır, parmak izinin kendisi değil.
Her MFA türü aynı güçte değildir. En zayıf halka SMS koddur; saldırgan SIM değiştirme (SIM swap) ile numarayı kendi kartına taşır ya da telefon şebekesindeki eski protokol zayıflıklarıyla kodu yolda okur. Sayı eşleştirmesiz anlık bildirim bir üst basamaktır ama bildirim bombardımanına açıktır.
Uygulama kodu (TOTP) ve sayı eşleştirmeli bildirim daha güçlüdür, yine de sahte bir siteye kod girmen için kandırılabilirsin, yani oltalamaya açık kalır. En üstte FIDO2 ve WebAuthn durur; donanım anahtarı ya da geçiş anahtarı (passkey) imzayı yalnız gerçek sitenin adına üretir, sahte siteye giden imza işe yaramaz. Bu sıralama CISA'nın yayımladığı rehberde de aynen yer alır.
Derinleş:WebAuthn imzayı siteye neden bağlar
TOTP kodu ya da SMS kodu, girildiği yerden bağımsız bir dizedir; sahte bir sayfaya yazarsan, saldırgan onu alıp gerçek siteye anında iletebilir. WebAuthn bu boşluğu kapatır. Kayıt anında tarayıcı, kullanıcının cihazında bir açık ve gizli anahtar çifti üretir; gizli anahtar cihazdan hiç çıkmaz.
Girişte site bir rastgele sınama (challenge) yollar. Cihaz bu sınamayı imzalarken imzaya isteğin geldiği kaynağı, yani sitenin alan adını da katar. Tarayıcı bu bağı zorlar: imza yalnız anahtarın kaydedildiği alan adı için üretilir.
Saldırganın sahte sayfası farklı bir alan adında olduğu için oradan gelen imza gerçek sitede geçersizdir. Kullanıcı kandırılsa bile imza taşınamaz. WebAuthn, W3C'nin yayımladığı bir standarttır ve büyük tarayıcılarla işletim sistemlerinde yerleşiktir; bu kaynak bağı, onu oltalamaya dayanıklı kılan tek ama belirleyici ayrıntıdır.
Etkinlik 1 / 5
MFA türlerini en zayıftan en güçlüye diz.
Bir öğeye odaklan, yukarı ve aşağı ok tuşlarıyla taşı. Home tuşu en üste, End tuşu en alta alır.
- 1Sayı eşleştirmesiz anlık bildirim
- 2FIDO2/WebAuthn anahtarı
- 3TOTP kodu ya da sayı eşleştirmeli bildirim
- 4SMS kodu
İkinci faktörün gücü, kodu taşıyan kanala da bağlıdır. Aynı altı haneli kod bir uygulamada üretilince şebekeye hiç uğramaz; SIM değiştirme ve yol üstü okuma onu etkilemez. Kısa mesajla taşınınca bu iki saldırıya da açılır. Oltalama karşısında ise ikisi aynı yerdedir.
Kod, girildiği sitenin kim olduğundan habersiz bir dizedir; sahte sayfaya yazıldığı an saldırgan onu gerçek siteye iletebilir. Sahip olduğun şey türünde olmak bir kanıtı tek başına güvenli yapmaz. Belirleyici soru, kanıtın başka bir siteye taşınıp taşınamadığıdır. WebAuthn imzayı siteye bağlayarak bunu engeller; SMS ve TOTP böyle bir bağ kurmaz.
Etkinlik 2 / 5
Doğru mu, yanlış mı?
SMS ile gelen kod, sahip olduğun şey türünde olduğu için WebAuthn kadar oltalamaya dayanıklıdır.
Bildirim bombardımanı
Bildirim bombardımanında (MFA fatigue) saldırgan parolayı zaten bilir. Girişi arka arkaya dener ve kullanıcının telefonuna onay bildirimi yağdırır. Yorgun ya da gece uyanan kullanıcı bıkıp onaya basar. MITRE ATT&CK bunu T1621 olarak sınıflar.
2022'de büyük bir ulaşım platformunda saldırgan, karanlık pazardan aldığı bir dış yüklenici parolasıyla art arda giriş denemişti. Yüklenici sonunda bir bildirimi onaylayınca saldırgan iç sistemlere girmiş, oradan başka çalışan hesaplarına ve iç araçlara yayılmıştı. Logda iz nettir: kısa sürede çok sayıda reddedilen ya da yanıtsız bildirim, ardından tek bir onay. Bu desen olağan bir girişe benzemez.
Çözüm, kullanıcıyı düşünmeden onay veremeyeceği bir adıma zorlamaktır. Sayı eşleştirmede giriş ekranında bir sayı belirir; kullanıcı onayı vermek için bu sayıyı kendi uygulamasına girmek zorundadır. Saldırgan giriş ekranındaki sayıyı göremediği için kullanıcı, hangi sayının isteneceğini bilmeden onaylayamaz.
CISA sayı eşleştirmeyi bombardımana karşı etkili bir önlem olarak sayar, ama bunu kalıcı çözüm değil, oltalamaya dayanıklı MFA'ya geçene kadar bir ara önlem olarak tanımlar. En sağlam savunma yine WebAuthn'dır; orada onaylanacak bir bildirim bile yoktur.
Sayı eşleştirmeyi iki önlemle güçlendirirsin. Birincisi, aynı hesaba kısa sürede gönderilen bildirim sayısını sınırlarsın; eşiği aşan istekler otomatik reddedilir ve güvenlik ekibine düşer. İkincisi, kullanıcıya beklemediği bir bildirimi onaylamamayı, bunun yerine bildirmeyi öğretirsin. Çünkü saldırının hedefi teknoloji değil, yorgun ya da aceleci insandır.
Bir de bağlam eklersin: bildirimde girişin geldiği konum ve uygulama gösterilir, böylece kullanıcı tanıdık olmayan bir isteği daha kolay reddeder. Teknik önlem ile kullanıcı farkındalığı birlikte bu deseni keser. İkisinden biri eksik kalırsa bombardıman yine bir gün işe yarar; çünkü tek bir yorgun onay saldırgana yeter.
Etkinlik 3 / 5
MFA kaydında bildirim bombardımanına ait satırları işaretle.
Şüpheli satırlara tıkla. Birden fazla olabilir.
Sunucuda adım atlamayı kapatmak
MFA'nın gücü sunucudaki uygulamaya bağlıdır. En sık hata adım atlamadır: kod, parola doğrulanınca oturumu tam yetkiyle açar ve ikinci adımı yalnız arayüzde ister. Kullanıcı kod sayfasını atlayıp doğrudan iç sayfayı çağırırsa içeri girer. Doğru kurulumda parola sonrası oturum yarım kalır; yalnız kod bekleniyor durumu taşır, hiçbir korumalı uç bu durumu kabul etmez.
Kod doğrulanınca oturum yeniden üretilir ve tam yetki o an verilir. Böylece ikinci adım bir görünüm değil, oturum durumuna gömülü bir kapı olur. İlk derslerdeki ilke burada da geçerlidir: karar arayüzde değil, sunucuda verilir.
Adım atlamayı somut gör. Zayıf bir kurulumda giriş akışı iki sayfadır: önce parola, sonra kod. Parola doğru girilince sunucu oturumu tam yetkiyle açar ve kullanıcıyı kod sayfasına yönlendirir. Ama yetki zaten verilmiştir.
Saldırgan kod sayfasını hiç açmaz; tarayıcının adres çubuğuna doğrudan iç panelin adresini yazar ve içeri girer. Yönlendirme yalnız bir arayüz adımıdır, bir kapı değildir.
Doğru kurulumda parola doğru olsa bile oturum yalnız yarım bir durum taşır. İç panel bu yarım durumu tanımaz; kod doğrulanana kadar hiçbir korumalı uç açılmaz. İkinci adımı sunucudaki oturum durumuna gömmek, atlamayı baştan imkânsız kılar.
// Güvensiz: parola doğru, oturum hemen tam yetkili req.session.kullaniciId = k.id; // Güvenli: parola sonrası oturum yarım kalır req.session.bekleyenId = k.id; // Kod doğrulanınca: regenerate, ardından kullaniciId atanır
İkinci adımın kendisi de kaba kuvvete açık olabilir. TOTP kodu altı hanelidir; sayaç tutulmazsa saldırgan yarım oturumla sınırsız deneme yaparak kodu bulmaya çalışır. RFC 6238, doğrulayıcının aynı kodu geçerli olduğu süre içinde yalnız bir kez kabul etmesini ister.
NIST SP 800-63B de altı haneli kodu doğrulayan uç için hız sınırını zorunlu tutar. Uygulamada kod ucu her yanlış denemeyi sayar; eşiği aşınca yarım oturumu düşürüp akışı başa alır. Ağ gecikmesi için en çok bir zaman penceresi geriye bakılır, daha geniş bir pencere kod uzayını gereksiz büyütür.
Derinleş:TOTP nasıl çalışır
Zaman tabanlı tek kullanımlık parola (TOTP), telefonundaki uygulamanın internetle konuşmadan senkron kod üretmesine dayanır. Kayıt anında sunucu ile uygulama bir paylaşılan sır üzerinde anlaşır; genelde bir kare kodla aktarılan bu sır iki tarafta da saklanır. Kod, o anki zamandan türer.
RFC 6238 zamanı şöyle böler: geçerli Unix zamanından bir başlangıç anı çıkarılır ve varsayılan olarak 30 saniyelik dilimlere bölünür. Her dilim için sır ve dilim numarası bir HMAC işlevinden geçirilir; varsayılan işlev HMAC-SHA-1'dir, standart SHA-256 ve SHA-512'yi de kabul eder. Çıktının bir bölümü altı haneye indirgenir ve ekranda gördüğün kod olur.
Sunucu aynı hesabı kendi saatiyle yapar; iki taraf yakın dilimdeyse kodlar tutar. Standart iki güvenlik kuralı koyar: başarılı bir doğrulamadan sonra aynı kod ikinci kez kabul edilmez ve ağ gecikmesi için en çok bir dilim tolerans önerilir. Zamanın kendisi paylaşıldığı için kod, ağ üzerinden bir sunucuya sorulmadan iki uçta bağımsız üretilebilir.
Etkinlik 4 / 5
Kod doğrulama ucunda kaba kuvvete kapı açan satırı bul.
Step-up ve kurtarma akışı
MFA yalnız girişte sorulmaz. Hassas işlemlerde, oturum çoktan açıkken bile yeniden istenir; buna yükseltilmiş doğrulama (step-up) denir. Parola değişimi, e-posta değişimi, MFA'yı kapatma ve yönetici yetkisine geçiş bu işlemlerdendir.
Hepsi hesabın tamamını etkiler; oturum çalınmış olsa bile saldırganın ikinci kanıtı yoksa bu adımda durur. Parola doğru girildiği halde kod başarısız olursa, kullanıcıya saat ve konum bilgisiyle bir bildirim gönderilir. Bu erken uyarı, parolanın sızdığını kullanıcıya haber verir ve o daha zarar oluşmadan parolasını değiştirebilir.
Kurtarma akışı MFA'nın arka kapısıdır. Telefonunu kaybeden kullanıcı destek hattını arar; saldırgan da parolayı bilerek aynı hattı arayabilir. Kurtarma bu yüzden önceden kaydedilmiş bir kanıt ister: tek kullanımlık yedek kodlar ya da kayıtlı ikinci bir cihaz.
Doğum tarihi ya da güvenlik sorusu gibi kolayca bulunan bilgilerle MFA kapatılırsa, ikinci faktörün tüm gücü bu tek zayıf adımda boşa gider. OWASP Top 10 2025, soru ve cevaba dayanan kurtarma akışını güvensiz tasarım (A06) başlığında örnek kusur olarak gösterir; çünkü cevabı birden çok kişi bilebilir. En güçlü zincir en zayıf halkası kadar dayanır; kurtarma da zincirin bir halkasıdır, bir istisnası değil.
Yedek kodların kendisi de doğru saklanır. Kullanıcıya bir kez gösterilir, sunucuda ise düz metin olarak değil, tıpkı parola gibi özetlenerek tutulur; bir kez kullanılan kod geçersiz işaretlenir. Kaç kodun kullanıldığını izlersin, çünkü art arda yedek kod denemesi de bir saldırı işaretidir.
Yükseltilmiş doğrulamada da bir tuzak vardır: kod bir kez sorulup uzun süre hatırlanırsa, çalınan bir oturum bu pencerede hassas işlemi yine yapar. Bu yüzden yükseltilmiş doğrulama kısa bir süre geçerli olur ve her hassas işlem öbeğinde yeniden istenir. Kolaylık ile güvenlik arasındaki bu dengeyi bilinçli kurarsın; sınır ne kadar genişse, çalınan oturumun penceresi de o kadar açık kalır.
Bu dört ders aynı ilkeye çıkar: karar hep sunucuda verilir, istemciye hiçbir zaman güvenilmez. Nesne düzeyi sahiplik, fonksiyon düzeyi rol, kimlik doğrulama ve ikinci kanıt; dördü de bu tek cümlenin farklı yüzleridir. Nesne düzeyinde sunucu bir kayıt numarasına, fonksiyon düzeyinde bir yola, giriş adımında bir parolaya, MFA adımında bir onaya fazla güvendiğinde açık doğar.
Her seferinde çözüm de aynı kalıptadır: kararı istemciden al, sunucuya koy, her istekte yeniden sor. Bu ilkeyi bundan sonraki her modülde, girdi doğrulamadan API tasarımına kadar tekrar göreceksin. İstemciye güvenmeyen sunucu, bu modülün tek cümlelik özetidir.
Etkinlik 5 / 5
Parolayı bilen biri destek hattını arayıp 'telefonumu kaybettim, MFA'yı kapatın' diyor. Güvenli yanıt hangisidir?
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.