Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Kimlik Doğrulama

Bağlantı Durum Makinesi

Her TCP bağlantısı WaitingForAuth durumunda başlar. Veritabanı işlemlerine erişim yalnızca kimlik doğrulama sonrasında mümkündür.

┌─────────────────┐   LOGIN <kullanıcı> <parola>   ┌───────────────────┐
│  WaitingForAuth  │ ────────────────────────────►  │   Authenticated    │
│   (başlangıç)    │  (doğrulama başarılı)          │  { username }      │
└─────────────────┘                                └───────────────────┘
       │                                                    │
  Hatalı parola / EXIT                             SQL / INDEX / EXIT
  → bağlantı kapatılır                           → normal işleme

LOGIN Komutu

LOGIN <kullanıcı_adı> <parola>

Başarılı Giriş

menzelet> LOGIN sa güçlüŞifre123
Giriş başarılı. Hoş geldiniz, sa!

Başarısız Giriş

Hatalı şifre veya geçersiz kullanıcı durumunda bağlantı otomatik olarak kapatılır (güvenlik nedeniyle).

Giriş Zorunluluğu

  • Her yeni bağlantıda LOGIN komutu zorunludur
  • Kimlik doğrulamadan önce SQL veya INDEX komutları reddedilir
  • Giriş başarısız olursa bağlantı güvenle sonlandırılır

Şifreleme

ÖzellikDeğer
AlgoritmaKriptografik hash (tek yönlü)
Salt16-byte rastgele (kullanıcıya özgü)
Yöntemhash(salt + şifre)
KarşılaştırmaSabit süreli (zamanlama saldırısı önlemi)

Güvenlik Garantileri

KorumaYöntem
Şifre saklamaHash + kullanıcıya özgü 16-byte salt
Zamanlama saldırısıSabit süreli karşılaştırma
DoS korumasıMaksimum eşzamanlı bağlantı limiti
Bağlantı limiti aşımıHata mesajı gönderilip bağlantı güvenle kapatılır
Erken komut korumasıKimlik doğrulama öncesi SQL komutları reddedilir

AUDIT Kaydı

Her Authenticated komut sunucu loglarına kaydedilir:

[AUDIT] sa@127.0.0.1:54321 -> CREATE TABLE urunler (id INT, fiyat FLOAT)
[AUDIT] mehmet@192.168.1.50:42100 -> SELECT * FROM siparisler