Günümüzde siber saldırıların %83’ü kimlik bilgilerinin ele geçirilmesiyle gerçekleşmektedir. Bu durumda veritabanı güvenliği, özellikle kimlik doğrulama mekanizmaları, her zamankinden daha kritik hale gelmiştir. SQL Server, bu güvenlik ihtiyacını karşılamak için çeşitli kimlik doğrulama yöntemleri sunar.
Kimlik Doğrulama Nedir?
Kimlik doğrulama (authentication), bir kullanıcının veya sistemin iddia ettiği kişi olduğunu doğrulama sürecidir. Bu süreç aşağıdaki adımları içerir.
- Kullanıcı kimliğinin kontrolü
- Erişim yetkilerinin belirlenmesi
- Güvenli veri erişiminin sağlanması
Windows Authentication (Entegre Güvenlik)
SQL Server, Windows kimlik doğrulama yönteminde, kullanıcıların Windows hesaplarını ve grup üyeliklerini temel alarak doğrulama yapar. Bu sayede kullanıcılar, Windows’a giriş yaparken kullandıkları aynı kimlik bilgileriyle SQL Server’a erişebilirler.
Sistem, Domain politikalarıyla tam entegre çalışarak Single Sign-On (SSO) özelliğini destekler. Bu sayede kullanıcılar, Windows oturumlarını açtıktan sonra SQL Server’a erişmek için tekrar kimlik bilgilerini girmek zorunda kalmazlar.
Kimlik doğrulama sürecinde, arka planda iki temel protokolden biri kullanılır:
- Kerberos (tercih edilen modern protokol)
- NTLM (legacy sistemler için destek)
Bu yapı, özellikle kurumsal ağlarda merkezi yönetim ve yüksek güvenlik sağlar.
Kerberos ve NTLM Protokolleri
Kerberos Protokolü, MIT (Massachusetts Institute of Technology) laboratuvarlarında geliştirilmiş ve günümüzde Microsoft’un Active Directory ortamlarında tercih ettiği modern bir kimlik doğrulama protokolüdür. Bilet tabanlı bir çalışma mantığına sahip olan bu protokol, çift yönlü şifreleme kullanarak güvenli bir doğrulama süreci sunar.
Kerberos’un çalışma prensibi iki temel aşamadan oluşur. İlk aşamada, kullanıcı domain’e giriş yaptığında KDC’ye (Key Distribution Center) bağlanır. KDC, kullanıcının kimliğini doğruladıktan sonra TGT (Ticket Granting Ticket) adı verilen özel bir bilet oluşturur. Bu TGT, kullanıcının kimlik bilgilerini şifrelenmiş formatta içerir ve sonraki işlemler için bir tür pasaport görevi görür.
İkinci aşama, kullanıcının SQL Server’a erişim isteğiyle başlar. Kullanıcı, SQL Server’a bağlanmak istediğinde, elindeki TGT ile tekrar KDC’ye başvurur. KDC bu aşamada SQL Server erişimi için özel bir servis bileti oluşturur. Kullanıcı, bu servis biletini kullanarak SQL Server’a güvenli bir şekilde erişim sağlar. Bu çift aşamalı süreç, kimlik doğrulamasının güvenli ve kontrollü bir şekilde gerçekleşmesini sağlar.
NTLM (NT LAN Manager) Protokolü, Windows işletim sisteminin eski sistemlerle uyumluluk için hala desteklediği legacy bir kimlik doğrulama protokolüdür. Bu protokol, Challenge-Response mekanizması üzerine kurulmuştur ancak günümüzün gelişmiş güvenlik ihtiyaçlarını karşılamakta yetersiz kalmaktadır.
NTLM’in en önemli özelliği tek yönlü doğrulama yapmasıdır. Bu sistemde sadece istemci (client) kendi kimliğini sunucuya kanıtlar, ancak sunucu tarafından istemciye karşı bir doğrulama gerçekleşmez. Bu durum, protokolün güvenlik açısından önemli bir zayıflığını oluşturur.
Performans açısından bakıldığında, NTLM’in her bağlantı için yeni bir challenge-response döngüsü başlatması gerekir. Bu özellik, özellikle yoğun kullanılan sistemlerde ciddi performans sorunlarına yol açabilir. Ayrıca protokol, pass-the-hash saldırılarına karşı savunmasız olup, modern şifreleme standartlarını desteklemez. Bu nedenle günümüzün gelişmiş siber güvenlik tehditlerine karşı yeterli korumayı sağlayamaz.
SQL Server Authentication
SQL Server Authentication, veritabanı sunucusuna özel olarak tasarlanmış bir kimlik doğrulama yöntemidir. Bu sistemde kullanıcılar, SQL Server’a özgü benzersiz kullanıcı adı ve şifre kombinasyonları kullanarak sisteme giriş yaparlar. Tüm bu kimlik bilgileri, SQL Server’ın master veritabanında şifrelenmiş formatta saklanır.
Doğrulama işlemi tamamen SQL Server tarafından gerçekleştirilir ve Windows işletim sisteminden bağımsız olarak çalışır. Bu bağımsız yapı, özellikle Windows dışındaki işletim sistemlerinden (Linux gibi) veya web uygulamalarından erişim sağlanması gereken durumlarda büyük avantaj sağlar. Ayrıca internet üzerinden erişim ihtiyacı olan kullanıcılar için de ideal bir çözüm sunar.
Ancak, kullanıcı adı ve şifrelerin SQL Server’da saklanıyor olması, potansiyel güvenlik riskleri oluşturabilir. Bu nedenle, bu kimlik doğrulama yöntemini kullanırken güçlü şifre politikaları ve ek güvenlik önlemleri uygulamak önem taşır.
SQL Server’ın Ek Güvenlik Mekanizmaları
SQL Server’ın temel kimlik doğrulama yöntemlerine ek olarak, farklı senaryolar için özelleştirilmiş çeşitli güvenlik mekanizmaları bulunmaktadır. Bunların başında Azure Active Directory (Azure AD) Authentication gelir. Bu mekanizma, SQL Server, Azure SQL Database ve Azure Synapse Analytics gibi Azure hizmetlerini destekleyerek bulut tabanlı entegre bir kimlik yönetimi sağlar.
Contained Database Authentication, veritabanlarına özerk bir yapı kazandıran önemli bir özelliktir. Bu mekanizma sayesinde veritabanları kendi kullanıcılarını ve izinlerini bağımsız olarak yönetebilir. Bu özellik özellikle veritabanlarının farklı sunucular arasında taşınması gerektiğinde büyük kolaylık sağlar.
SQL Server Authentication with Certificates ise SSL sertifikalarını kullanarak ek bir güvenlik katmanı oluşturur. Bu mekanizmalar SQL Server’da güvenliği sağlayan temel yapı taşlarıdır. Hangi kimlik doğrulama yönteminin seçileceği, kurumun ihtiyaçlarına, güvenlik gereksinimlerine ve yönetim kolaylığına bağlı olarak değerlendirilmelidir.