Bu sayfa Google Translate ile otomatik çevrilmiştir. Özgün metin Türkçedir. Özgün dile dön

Siber Güvenlik

İki Adımlı Doğrulama Nedir?

İki Adımlı Doğrulama Nedir?

Geleneksel kullanıcı adı ve parola ikilisi, modern siber tehditler karşısında tek başına yeterli bir savunma hattı sunamaz. Veri sızıntıları, kimlik avı (phishing) saldırıları ve kaba kuvvet (brute-force) denemeleri sonucunda parolalar kolaylıkla ele geçirilebilir. İki adımlı doğrulama, parolanız bir saldırganın eline geçse bile hesabınıza yetkisiz erişimi engellemek için tasarlanmış ek bir güvenlik katmanıdır.

İki Adımlı Doğrulama Nedir ve Nasıl Çalışır?

İki adımlı doğrulama, kullanıcının bir sisteme erişim sağlamadan önce iki farklı doğrulama aşamasını başarıyla tamamlamasını gerektiren bir güvenlik sürecidir. Temel mantık, tek bir bilgiye (parolaya) güvenmek yerine, birbirinden bağımsız iki kanıtın sunulmasını zorunlu kılmaktır.

Kimlik doğrulama süreçleri siber güvenlikte üç temel faktör üzerine kuruludur:

  • Bildiğiniz bir şey: Parola, PIN kodu veya bir güvenlik sorusunun yanıtı.
  • Sahip olduğunuz bir şey: Akıllı telefon, donanımsal güvenlik anahtarı veya SMS alabilen bir SIM kart.
  • Olduğunuz bir şey: Parmak izi, yüz tanıma veya retina taraması gibi biyometrik veriler.

İki adımlı doğrulama mekanizması, yukarıda listelenen kategorilerin en az ikisinden birer öge talep ettiğinde iki faktörlü doğrulama (2FA) olarak adlandırılır. Örneğin parolanızı girdikten sonra telefonunuza gelen bir kodu yazmanız, “bildiğiniz” ve “sahip olduğunuz” iki ayrı faktörün birleşimidir.

En Yaygın İki Adımlı Doğrulama Türleri

Sistemlerin sunduğu güvenlik seviyesi ve kullanıcı deneyimi, tercih edilen doğrulama yöntemine göre değişiklik gösterir.

SMS ve E-posta ile Doğrulama

Kullanıcı adı ve parola girildikten sonra sisteme kayıtlı telefon numarasına veya e-posta adresine tek kullanımlık bir kod gönderilir. Kurulumu en zahmetsiz yöntem olsa da güvenlik uzmanları tarafından en zayıf halka olarak kabul edilir. SIM takası (SIM swap) saldırıları veya hücresel ağ açıklarının (SS7 protokolü zaafiyetleri) kötüye kullanılması durumunda bu kodlar saldırganlar tarafından ele geçirilebilir.

TOTP (Zamana Dayalı Tek Kullanımlık Parola)

Google Authenticator, Microsoft Authenticator veya Aegis gibi uygulamalar tarafından kullanılan standart yöntemdir. RFC 6238 protokolüne dayanır. Sunucu ve mobil uygulama, kurulum esnasında paylaşılan gizli bir anahtarı ve mevcut zaman dilimini temel alarak genellikle 30 saniyede bir değişen altı haneli kodlar üretir. İnternet bağlantısı gerektirmez ve SMS tabanlı saldırılara karşı tamamen korunaklıdır.

Donanımsal Güvenlik Anahtarları (FIDO2 / U2F)

YubiKey benzeri fiziksel USB veya NFC cihazlarıdır. Kullanıcı, cihazı bilgisayarına takar veya telefonuna dokundurur ve üzerindeki fiziksel düğmeye basar. Kriptografik anahtar çiftleri üzerinden doğrulama yapıldığı için kimlik avı siteleri bu yöntemi aşamaz. Günümüzdeki en güvenli iki adımlı doğrulama yöntemidir.

TOTP Algoritmasının Mantığı ve Kod Örneği

Zamana dayalı tek kullanımlık parolalar, sunucu ile istemci arasında paylaşılan bir simetrik anahtar (Secret Key) ve Unix zaman damgası kullanılarak HMAC-SHA1 algoritması ile türetilir. Algoritma şu adımlarla çalışır:

  • Mevcut Unix zamanı 30 saniyelik bloklara bölünerek bir sayaç oluşturulur.
  • Sayaç değeri ile gizli anahtar, HMAC algoritması üzerinden bir özet (hash) üretir.
  • Üretilen 20 baytlık özetten dinamik olarak 4 bayt seçilir ve 6 haneli bir sayıya dönüştürülür.

Aşağıdaki Python kodu, herhangi bir harici kütüphaneye ihtiyaç duymadan standart kütüphanelerle bu süreci simüle eder:

import hmac
import hashlib
import time
import struct
import base64

def totp_kodu_uret(gizli_anahtar):
    anahtar_bayt = base64.b32decode(gizli_anahtar, casefold=True)
    zaman_araligi = int(time.time()) // 30
    mesaj = struct.pack(">Q", zaman_araligi)
    hmac_ozet = hmac.new(anahtar_bayt, mesaj, hashlib.sha1).digest()
    
    ofset = hmac_ozet[19] & 15
    ikili_kod = (struct.unpack(">I", hmac_ozet[ofset:ofset+4])[0] & 0x7fffffff)
    
    kod = ikili_kod % 1000000
    return f"{kod:06d}"

ornek_anahtar = "JBSWY3DPEHPK3PXP"
print("Mevcut 30 saniyelik kod:", totp_kodu_uret(ornek_anahtar))

Bu kod bloğunda, Base32 ile kodlanmış gizli anahtar çözülür, o anki zaman damgası 30’a bölünerek 8 baytlık bir tamsayıya dönüştürülür ve HMAC-SHA1 ile şifrelenir. Elde edilen özet içerisinden ofset değerine göre dinamik olarak 6 haneli doğrulama kodu çıkarılır.

Linux Sunucularda SSH İçin İki Adımlı Doğrulama Kurulumu

Linux sunucu yöneticileri, uzaktan yönetim oturumlarını güvene almak için SSH bağlantılarına PAM (Pluggable Authentication Modules) üzerinden iki adımlı doğrulama ekleyebilir.

Ubuntu veya Debian tabanlı bir sunucuda bu işlemi gerçekleştirmek için öncelikle ilgili modül yüklenir:

sudo apt update
sudo apt install libpam-google-authenticator -y

Modül yüklendikten sonra sunucuda oturum açtığınız kullanıcı hesabı üzerinden doğrulama sihirbazı çalıştırılır:

google-authenticator

Bu komut ekranda bir QR kod ve kurtarma kodları görüntüler. QR kodu mobil uygulamanıza okuttuktan sonra sihirbazın sorularına onay verilir. Ardından SSH yapılandırmasında değişiklik yapılır.

PAM SSH yapılandırma dosyası düzenlenir:

sudo nano /etc/pam.d/sshd

Dosyanın en altına şu satır eklenir:

auth required pam_google_authenticator.so

Son olarak SSH daemon yapılandırma dosyası açılır:

sudo nano /etc/ssh/sshd_config

Dosya içerisinde KbdInteractiveAuthentication (veya eski sürümlerde ChallengeResponseAuthentication) ayarı bulunarak yes yapılır:

KbdInteractiveAuthentication yes

Servis yeniden başlatılarak ayarlar devreye alınır:

sudo systemctl restart ssh

Bu adımdan sonra sunucuya parola ile bağlanırken, parolanın ardından mobil uygulamadaki tek kullanımlık kod talep edilir.

İki Adımlı Doğrulamada Güvenlik Riskleri ve Kurtarma Kodları

İki adımlı doğrulama güçlü bir güvenlik sağlasa da kullanıcı kaynaklı riskler barındırır:

  • Cihaz kaybı: Telefonun bozulması, çalınması veya kaybolması durumunda hesaplara erişim kesilebilir.
  • Kurtarma kodlarının ihmali: Kurulum sırasında verilen tek kullanımlık yedek kodlar güvenli ve çevrim dışı bir ortamda saklanmalıdır.
  • Yorgunluk saldırıları: Saldırganlar arka arkaya onay bildirimleri göndererek kullanıcının yanlışlıkla “Onayla” butonuna basmasını sağlayabilir (MFA Fatigue).

Bu riskleri en aza indirmek için SMS yerine mutlaka TOTP tabanlı bir uygulama kullanılmalı, yedek kodlar şifreli bir parola yöneticisinde veya fiziksel bir not defterinde saklanmalıdır.

Özet ve Sonraki Adımlar

İki adımlı doğrulama, dijital varlıklarınızı korumanın en maliyetsiz ve en etkili yoludur. Parolanız ne kadar karmaşık olursa olsun, tek başına kırılma riskine açıktır; ikinci bir doğrulama adımı bu riski neredeyse tamamen ortadan kaldırır.

İlk adım olarak birincil e-posta adresiniz, bankacılık uygulamalarınız ve kod depolarınız (GitHub, GitLab vb.) üzerindeki güvenlik ayarlarını inceleyip iki adımlı doğrulamayı aktif hale getirebilirsiniz.

#2fa#iki adımlı doğrulama#kimlik doğrulama#siber güvenlik#totp

Comments

No comments yet. Write the first comment.

Write a comment

Comments are published after admin approval.