2FA (2 Faktörlü Doğrulama) Nedir? Google Authenticator Nasıl Çalışır?
Günümüzde internet kullanıcılarının sayısının hızla çoğalıyor olması çevrimiçi güvenliğimizin daha fazla riske girmesine sebep oluyor. Özellikle kullanıcıların hesaplarının çalındığına, bilgileri dışında işlemler yapıldığına şahit oluyoruz. Firmaların bunun önüne geçebilmek amacıyla icat ettiği bir sistem var: two factor authentication.
2FA Nedir?
Two Factor Authentication (İki Faktörlü Doğrulama), bilgi ve sahipliğin kanıtlanması ile yetkilendirilmenin yapıldığı sistemlere verilen addır. Örneğin ATM makinesinden para çekmek istediğinizde banka kartı (bilgi) ve pin koduna (sahiplik) ihtiyaç duyarsınız. Bu iki özellikten herhangi birine sahip olmamanız durumunda para çekemezsiniz.
İnternete bağlı sistemlerden örnek vermemiz gerekirse, Google hesabınızda 2 adımlı doğrulamayı aktif etmeniz durumunda, oturum açmak için hesabınıza parolanız ile giriş yapmanız ve ardından anlık olarak üretilen iki adımlı doğrulama kodunu girmeniz gerecektir.
Google Authenticator Nasıl Çalışır?
Bu yazıyı aslında bunun için yazıyordum ancak öncelikle tanımla başlamanın herkes için daha iyi olacağına kanaat getirdim.
Google, Steam ve benzeri uygulamalarda hesapların bilgisayar korsanları tarafından çalınma riski yüksektir. Bunun önüne geçebilmek için kullanıcılar iki adımlı doğrulamayı genellikle aktif tutarlar. 2FA’yı aktif ettikten sonra Google hesabınıza giriş yapmak istediğinizde telefonunuzdaki Google Authenticator uygulamasını açıp çıkan pin kodunu girmeniz gerekecektir.
İşin ilginç gözüken tarafı Google Auth gibi uygulamaların ağ bağlantısına ihtiyaç duymadan çalışabilmesidir. Bunun açıklaması ise sanıldığı kadar karmaşık değil aksine çok basit.
2FA uygulamaları Time Based One Time Password ve benzeri algoritmaları kullanarak pin kodu üretmektedir. 2FA kodu üreten algoritma en başında hazırdır, sizin benzersiz kullanıcı kimliğiniz veya özel anahtarınız kullanılarak initialize edilir. Bu sayede zamana ve kullanıcı kimliğinize bağlı olarak özel pin anahtarı üretilebilir. Bu 2FA anahtarı birkaç saniye içerisinde zamana bağlı olarak değişeceğinden kaba kuvvet vb. saldırılar ile kırılmayı çok zorlaştırmaktadır.
Mantığın daha iyi anlaşılabilmesi açısından Wikipedia’daki bir örnek algoritma kodunu paylaşıyorum.