TLS Handshake'i Anlamak: Güvenlik Temelleriniz Neden Düşündüğünüzden Daha Önemli
TLS El Sıkışması: Güvenlik Temeli Sandığınızdan Çok Daha Önemli
Tarayıcınıza bir web adresi yazıp Enter tuşuna bastığınız an, perde arkasında muazzam bir şey oluyor. Verileriniz internetin o geniş ağında yolculuğa çıkmadan çok önce, tarayıcınız ile sunucu arasında bir tür kripto dansı başlıyor. Milisaniyeler içinde gerçekleşen bu harita değiştirici anlaşma, daha sonra yapılacak bütün iletişimin güvenliğini belirliyor. İşte bunu TLS el sıkışması diyoruz ve ihtimali yüksek ki, şimdiye kadar hiç bunun hakkında derinlemesine düşünmemiş olabilirsiniz.
Domain ve hosting dünyasında bilinmesi gereken bu kavramlar, sadece sizi daha iyi bir mühendis yapmakla kalmıyor. Çünkü TLS ayarlarında yapılacak basit bir hata, kullanıcılarınızı gerçek risklerle karşı karşıya getirebiliyor ve uyum sorunlarına neden olup hem zaman hem para kaybettirebiliyor.
Perde Arkasında Aslında Neler Oluyor?
Süreci adım adım takip edelim. İstemci (tarayıcınız) sunucuya bağlanmaya çalıştığında şöyle der: "Güvenli bir bağlantı istiyorum. Desteklediğim protokoller, kullanabileceğim şifreleme yöntemleri ve özelliklerim burada." Sunucu karşılık verir: "Tamam, TLS 1.3 kullanalım bu şifre paketi ile beraber, ve işte ben kimim diye kanıtlamak için sertifikam."
TLS 1.3'ün en güzel yanı tüm bu müzakere işlemini tek bir gidiş-dönüş ile tamamlaması. Eski TLS 1.2'de iki gidiş-dönüş gerekiyor. Her ikisi de hızlı olmakla beraber, milisaniyelerin önem kazandığı günümüzde TLS 1.3'ün verimliliği sizi ona geçmeye çok iyi bir sebep veriyor.
El sıkışma işlemi aynı zamanda geçici şifreleme anahtarları da kuruyor. Bu anahtarlar sadece o konuşma seansında işe yarıyor, sonrasında silinip atılıyor. Buna forward secrecy (ileri gizlilik) deniyor ve bu çok önemli bir konsept. Yarın sunucunuzun gizli anahtarı ele geçirilse bile, bugünkü konuşmaların şifresi çözülemeyecek.
Versiyon Sorunu: TLS 1.2 Neden Yetmiyor?
İşler buradan karışmaya başlıyor. İnternette hala TLS 1.0 ve 1.1 çalıştıran sunucular var. Bu protokoller neredeyse okuyucularımızdan bazılarıyla aynı yaşta. BEAST, POODLE gibi saldırılar bu eski versiyonları tamamen kırmış durumda. Tüm başlıca tarayıcılar bunları desteğini kaldırdı ve PCI DSS, HIPAA, SOC 2 gibi standartlar açıkça bu protokolleri yasaklıyor.
Fakat birçok eski sistem hala güncellenmemiş. Altyapınız bu eski versiyonları hala kabul ediyorsa, sadece bir güvenlik ihlali riskiyle değil, denetim gereksinimlerini karşılamamamakla da karşı karşıyasınız.
Bugünün tavsiyesi şu: Güçlü şifre paketleriyle TLS 1.2 en düşük seviye. TLS 1.3 ise ideal durum. Fark nedir? TLS 1.3 eski dönemin saçmalığını—zayıf algoritmaları, gereksiz seçenekleri—kaldırdı. Bu sayede hatalı ayarlama yapma olasılığı çok aza iniyor. TLS 1.3'te yanlış yapmak neredeyse imkansız.
Şifre Paketleri: Güçlü Kriptografiyi Seçme Sanatı
TLS versiyonuna karar verdikten sonra konuşmayı nasıl şifreleceğinizi belirlemeniz gerekiyor. Bunu cipher suite diyoruz ve birçok hatalı konfigürasyonun başladığı yer burası.
TLS 1.3 için spesifikasyon şifre paketlerini sabitler. Seçim yapmanıza gerek yok, hepsi güvenlidir. Bu kasıtlı bir tasarım kararıdır.
TLS 1.2 için ise seçeneğiniz var. Nelere bakmalısınız:
- Anahtar Değişimi: ECDHE sizin dostunuz. İleri gizliliği sağlıyor. RSA değişimi bunu sağlamıyor.
- Şifreleme: AES-GCM veya ChaCha20 modern ve güvenilir seçenekler. CBC modundan uzak durun (ekleme hatalarına karşı açık) ve kesinlikle RC4, DES veya 3DES kullanmayın.
- Hash: SHA-256 veya SHA-384. Daha zayıfı olanlar kabul edilemez.
Nginx'te iyi bir ayarlama örneği şöyle görünür:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
Apache kullanıcıları SSLProtocol ve SSLCipherSuite direktiflerini uyarlayacaklar. Prensip aynı: net olun, muhafazakar davranın ve modern algoritmaları tercih edin.
Sertifika Zincirleri: Görünmeyen Zayıflık
Şu senaryo bize sürpriz kaçıyor: bir site Chrome'da mükemmel yüklenirken, eski mobil uygulamalarda veya API istemcilerinde başarısız oluyor. Suçlu? Eksik sertifika zinciri.
SSL sertifikanız sadece yaprak sertifika değil, güvenilir bir kök CA'ya kadar uzanan bir zincirleme yapı. Sunucu sadece yaprak sertifikayı gönderirse, tarayıcılar çoğunlukla eksik ara sertifikaları kendi başlarına indirebilir. Ama eski istemciler? Sessizce başarısız olurlar.
Çözüm basit: Sertifika yetkilisinden ara sertifikaları indirin ve sunucunuzu tam zinciri gönderecek şekilde ayarlayın. Web sunucusu yapılandırmasına sadece birkaç satır eklemeniz yeterli ve üretim ortamında bu zorunlu.
Uyumlu ve Güvenilir Bir Sistem İnşa Etmek
Uyum standartları, güvenliğin düşmanı değildir—sadece en asgari seviyeyi belirlerler. Ancak PCI DSS veya HIPAA gereksinimlerini karşılamadığınız için hala TLS 1.0 kabul ediyorsanız, sadece bir denetim başarısızlığı yaşamıyorsunuz. Ceza ve müşteri güveni kaybı riskiyle karşı karşıyasınız.
İleri gizlilik, güçlü şifre paketleri, güncel TLS versiyonları—bunlar opsiyonel değil. Bunlar temel gereklilikler.
TLS Ayarlarını Ne Kadarında Denetlemeli?
Önerimiz şu: Her değişiklikten sonra, sonra aylık. Sunucu güncellemeleri, sertifika yenilemeleri, yapılandırma değişiklikleri—herhangi biri sessizce TLS ayarlarınızı sıfırlayabilir. Aylık bir kontrol (otomatik olabilirse daha iyi) sapmaları olay haline gelmeden yakalar.
Çoğu ekip ilk kurulumdan sonra TLS yapılandırmasını asla doğrulamaz. Siz o takıma katılmayın.
TLS'nin Ötesinde: Daha Geniş Resim
Sağlam bir TLS altyapısı temel, ama sadece başlangıç. HSTS, CSP ve X-Frame-Options gibi güvenlik başlıkları ek koruma katmanı ekler. Tam bir güvenlik stratejisi kimlik doğrulama, veri maruziyeti, API güvenliği ve altyapı sertleştirmesine dokunur.
Web sitesi veya API yönetiyorsanız, sadece TLS değil bütün güvenlik başlıkları ve protokolleri kapsayan düzenli bir denetim düşünün.
Özet
TLS el sıkışması zarif ve çoğunlukla görünmez—iyi altyapının olması gereken şeklidir. Ama bunu anlamak, güncel tutmak ve düzenli denetlemek, kullanıcılarınızın güvenebileceği ve uyum yetkililerinizin rahat uyuyabileceği sistemler inşa etmenizin yoludur.
Teknik desteğimiz, TLS yapılandırmanızı incelemek, sorunlarını çözmek ve izlemek için araçlar geliştirdik. Çünkü güvenlik bir gizem olmamalı.