Hosting • Teknoloji

TLS Nedir?

TLS, İngilizce Transport Layer Security ifadesinin kısaltmasıdır ve Türkçede Aktarım Katmanı Güvenliği anlamına gelir. İnternet üzerinden iletişim kuran istemci ile sunucu arasındaki veri aktarımını şifreleyen, bağlantının bütünlüğünü koruyan ve karşı tarafın kimliğini doğrulayan güvenlik protokolüdür.

tsl-nasil-calisir

TLS; web siteleri, e-posta servisleri, API bağlantıları, dosya aktarımları ve anlık mesajlaşma sistemleri gibi pek çok internet hizmetinde kullanılabilir. Web üzerindeki en yaygın kullanım alanı HTTPS bağlantılarıdır. Bağlantıları bugün koruyan protokol SSL değil TLS’tir; ikisi arasındaki ilişkiyi aşağıda ayrıntılı ele alıyoruz. Konunun sertifika tarafını ise SSL sertifikası nedir yazımızda anlattık.

TLS Ne İşe Yarar?

TLS’in temel amacı, güvenilir olmayan bir ağ üzerinden gerçekleştirilen istemci ve sunucu iletişimini güvenli hâle getirmektir. Bunu üç temel işlevle sağlar:

  • Gizlilik: Aktarılan verileri şifreleyerek üçüncü kişilerin içeriği okumasını zorlaştırır.
  • Bütünlük: Verilerin aktarım sırasında değiştirilip değiştirilmediğinin tespit edilmesini sağlar.
  • Kimlik doğrulama: Dijital sertifikalar aracılığıyla istemcinin doğru sunucuya bağlandığını doğrulamaya yardımcı olur.

TLS’in çözdüğü problem somuttur. Şifrelenmemiş bir HTTP bağlantısında veriler ağ üzerinde düz metin olarak ilerler; aynı Wi-Fi ağındaki bir kişi, ara noktadaki bir yönlendirici veya kötü niyetli bir servis sağlayıcı bu trafiği okuyabilir, hatta içeriğini değiştirebilir. TLS devreye girdiğinde trafiği yakalayan taraf yalnızca anlamsız şifreli veri görür.

TLS kullanımı özellikle ağ trafiğinin dinlenmesi, verilerin aktarım sırasında değiştirilmesi, sahte bir sunucuya yönlendirme ve oturum bilgilerinin ele geçirilmesi gibi risklerin azaltılmasına yardımcı olur. Buna karşılık TLS, her türlü saldırıyı tek başına engelleyen bir güvenlik çözümü değildir; güvenli veri iletişiminin temel bileşenlerinden yalnızca biridir.

TLS Nasıl Çalışır?

Protokolün adı nasıl konumlandığını da anlatır. Transport Layer Security ifadesi, güvenliğin uygulama seviyesinde değil, taşıma seviyesinin hemen üzerinde sağlandığını belirtir. Bu tasarımın en büyük avantajı, uygulamaların kendi içine şifreleme kodu yazmak zorunda kalmamasıdır. HTTP, kendisi hiçbir değişikliğe uğramadan TLS kanalının içinden geçtiğinde HTTPS adını alır; aynı yaklaşım e-posta protokolleri için de geçerlidir.

TCP tabanlı bağlantılarda TLS, TCP bağlantısı kurulduktan sonra devreye girer. HTTP/3’te kullanılan QUIC protokolü de güvenliği TLS 1.3 üzerinden sağlar.

Protokol iki ana parçadan oluşur. Birincisi el sıkışma protokolüdür; taraflar burada birbirini tanır, kullanılacak şifreleme algoritmalarında anlaşır ve oturum anahtarlarını üretir. İkincisi kayıt protokolüdür; anlaşma tamamlandıktan sonra tüm veriyi belirlenen algoritmalarla şifreleyip küçük kayıtlar hâlinde karşı tarafa iletir ve her kaydın bütünlüğünü doğrular. Bu ayrım sayesinde maliyetli olan kimlik doğrulama işlemi yalnızca bağlantı başında yapılır, sonrasındaki veri akışı çok daha hızlı çalışan simetrik şifrelemeyle sürdürülür.

TLS Nedir Nasıl Çalışır HTTPS TLS ve SSL 1

TLS El Sıkışması Nasıl Gerçekleşir?

El sıkışmanın ayrıntıları kullanılan sürüme göre değişse de süreç genel olarak şu şekilde ilerler:

  1. İstemci bağlantıyı başlatır. Tarayıcı, desteklediği TLS sürümlerini ve şifreleme seçeneklerini sunucuya bildirir. Bağlanmak istediği alan adını da bu aşamada belirtir.
  2. Sunucu bağlantı parametrelerini seçer. Sunucu, kullanılacak TLS sürümünü ve şifreleme yöntemini belirleyerek yanıt verir.
  3. Sunucu sertifikasını gönderir. Sertifika, sunucunun kimliğinin ve alan adıyla ilişkisinin doğrulanmasına yardımcı olur.
  4. İstemci sertifikayı doğrular. Tarayıcı sertifikanın geçerlilik süresini, alan adı eşleşmesini, sertifika zincirini ve güvenilir bir otorite tarafından imzalanıp imzalanmadığını kontrol eder.
  5. Oturum anahtarları üretilir. Taraflar, bağlantı boyunca kullanılacak ortak anahtarlar üzerinde anlaşır.
  6. Şifreli veri aktarımı başlar. El sıkışma tamamlandıktan sonra uygulama verileri bu anahtarlarla korunur.

Sunucunun özel anahtarı bu süreçte ağ üzerinden gönderilmez; sunucu bu anahtarı yalnızca kimliğini kanıtlayan imzayı üretmek için kullanır. Sertifika veya imza doğrulaması başarısız olursa tarayıcı bağlantıyı durdurur ve güvenlik uyarısı gösterir.

HTTPS, TLS ve SSL Farklılıkları

Bu üç kavram günlük kullanımda sık sık birbirinin yerine geçse de her biri farklı bir şeye karşılık gelir. HTTP, tarayıcı ile web sunucusu arasında verilerin aktarılmasını sağlayan uygulama katmanı protokolüdür. HTTPS ise bu iletişimi TLS ile koruyarak verilerin şifreli aktarılmasını sağlar.

Özellik SSL TLS
Açılımı Secure Sockets Layer Transport Layer Security
Türkçe karşılığı Güvenli Yuva Katmanı Aktarım Katmanı Güvenliği
Güncel durumu Kullanımdan kaldırılmış protokol ailesi Günümüzde kullanılan güvenlik protokolü
Sürümler SSL 2.0 ve SSL 3.0 TLS 1.0, 1.1, 1.2 ve 1.3
Bütünlük doğrulama Eski MAC mekanizmaları TLS 1.2’de HMAC veya AEAD, TLS 1.3’te yalnızca AEAD
Kullanım önerisi Sunucularda devre dışı bırakılmalı TLS 1.3 tercih edilmeli, gerekiyorsa TLS 1.2 desteklenmeli

İlişkiyi şöyle özetleyebiliriz: HTTP verilerin aktarım yöntemidir, TLS bu aktarımı şifreleyen güvenlik protokolüdür, HTTPS ise HTTP’nin TLS üzerinden çalıştırılan güvenli biçimidir. SSL/TLS sertifikası da sunucunun kimliğinin doğrulanmasına ve TLS bağlantısının kurulmasına yardımcı olan dijital sertifikadır. Yani “SSL sertifikası” ürünün sektörel adı, TLS ise bağlantıyı fiilen koruyan güncel protokoldür.

TLS Sürümleri

TLS protokolü zaman içinde güvenlik ve performans ihtiyaçlarına göre geliştirilmiştir. Sunucu tarafında hangi sürümlerin açık kalması gerektiğini bilmek, hem güvenlik hem uyumluluk açısından önemlidir.

TLS sürümü Yayın yılı Güncel durum
TLS 1.0 1999 Kullanımdan kaldırılmıştır
TLS 1.1 2006 Kullanımdan kaldırılmıştır
TLS 1.2 2008 Yaygın olarak desteklenir
TLS 1.3 2018 En güncel standarttır

IETF, TLS 1.0 ve TLS 1.1 sürümlerini güncel kriptografik gereksinimleri karşılamadıkları için RFC 8996 ile resmî olarak kullanımdan kaldırmıştır. TLS 1.2 uzun yıllardır yaygın kullanılan ve doğru yapılandırıldığında güvenli kabul edilen sürümdür. TLS 1.3 ise RFC 8446 ile standartlaştırılmış en güncel sürümdür. Sunucu yapılandırmalarında TLS 1.3 etkinleştirilmeli, geriye dönük uyumluluk gerekiyorsa TLS 1.2 de güvenli şifre paketleriyle desteklenmelidir. Sunucuda SSL 2.0 veya SSL 3.0 desteği açık kalmışsa kapatılması gerekir.

TLS 1.3 ile Gelen Başlıca Değişiklikler

TLS 1.3’ün en dikkat çeken özelliği el sıkışmanın kısalmasıdır. TLS 1.2’de el sıkışma iki tam gidiş geliş gerektirirken TLS 1.3 bunu tek gidiş gelişe indirir; bağlantı kurulum süresi böylece belirgin şekilde azalır.

İkinci değişiklik sadeleştirmedir. RSA tabanlı anahtar değişimi, statik Diffie-Hellman, RC4, 3DES ve SHA-1 tabanlı imzalar TLS 1.3’te yer almaz. Desteklenen seçenek sayısı azaldığı için hatalı yapılandırma ihtimali de düşer. TLS 1.3 ayrıca her oturumda ileri gizlilik sağlar; yani sunucunun özel anahtarı gelecekte ele geçse bile geçmişte kaydedilmiş trafik çözülemez.

Üçüncü olarak el sıkışmanın daha büyük bölümü şifrelenir. TLS 1.2’de sunucu sertifikası ağ üzerinde açık görünürken TLS 1.3’te şifreli iletilir; bu da trafiği izleyen tarafların elde edebileceği bilgiyi azaltır.

TLS Şifreleme Yöntemleri

TLS tek bir algoritmaya dayanmaz, farklı görevleri farklı yöntemlere dağıtır. Dijital imzalar sunucunun kimliğini doğrulamaya yardımcı olur, anahtar anlaşması yöntemleri tarafların ortak bir gizli değer üretmesini sağlar, asıl veri trafiği ise çok daha hızlı çalışan simetrik algoritmalarla korunur. Güncel yapılandırmalarda şifreleme ile bütünlük doğrulamayı tek adımda yapan AEAD algoritmaları ve ileri gizlilik sağlayan ECDHE tabanlı anahtar değişimi tercih edilir.

Hangi algoritmaların kullanılacağı, el sıkışma sırasında anlaşılan şifre paketiyle belirlenir. Sunucu tarafında bu listenin fazla kısıtlı olması tarayıcıyla ortak nokta bulunmasını engelleyebilir; bu durumda ortaya çıkan hatayı ERR_SSL_VERSION_OR_CIPHER_MISMATCH yazımızda ele aldık.

TLS Kullanım Alanları

TLS yalnızca web siteleriyle sınırlı değildir. Ağ üzerinden güvenli iletişim gerektiren hemen her uygulama protokolü bu katmandan yararlanabilir.

  • Web siteleri: Tarayıcı ile web sunucusu arasındaki HTTP trafiği TLS ile şifrelenerek HTTPS bağlantısı oluşturulur.
  • E-posta: SMTP, IMAP ve POP3 bağlantıları TLS ile korunarak gönderim, alım ve sunucular arası aktarım şifreli kalır.
  • API bağlantıları: Uygulamalar arası veri alışverişi HTTPS üzerinden yapılarak erişim anahtarları ve yanıt verileri korunur.
  • Dosya transferi: FTPS gibi TLS destekli yöntemlerde dosyalar ağ üzerinden şifreli aktarılır.
  • Anlık mesajlaşma ve çevrim içi toplantılar: İstemci ile sunucu arasındaki bağlantı TLS ile korunur; bu, uçtan uca şifrelemeden ayrı ama tamamlayıcı bir katmandır.
  • DNS iletişimi: DNS over TLS, DNS sorgularının istemci ile çözümleyici arasında şifreli iletilmesini sağlar.
  • Kurumsal uygulamalar: Yönetim panelleri, CRM sistemleri ve ödeme servislerinde güvenli veri aktarımı için kullanılır.

TLS bağlantıyı yalnızca aktarım sırasında korur. Verilerin cihazda veya sunucuda saklandığı aşamadaki güvenlik için erişim kontrolü, veri tabanı şifreleme ve uygulama güvenliği gibi ek önlemler gerekir.

TLS Hatası Nedir?

TLS hatası, istemci ile sunucu arasında güvenli bağlantı kurulamadığında ortaya çıkan bağlantı problemidir. El sıkışma aşamalarından biri başarısız olduğunda tarayıcı sayfayı yüklemeden durur ve bir uyarı gösterir. Hatanın hangi aşamada oluştuğu, çözümün nerede aranacağını da belirler.

TLS Hataları Hangi Aşamada Oluşur?

El sıkışma sırayla ilerlediği için hatanın hangi adımda çıktığı, sorunun nerede olduğunu da gösterir. Yukarıda anlatılan aşamalar ile karşılaşılan hata tipleri şöyle eşleşir:

  • Sürüm ve şifreleme müzakeresi: Taraflar ortak bir TLS sürümü veya şifreleme yöntemi bulamazsa bağlantı daha başlangıçta sonlanır. Sunucunun yalnızca eski sürümleri desteklemesi ya da şifreleme listesinin aşırı kısıtlı olması bu gruba girer.
  • Sertifikanın sunulması: Sunucu, kendi sertifikasının yanında zinciri tamamlayan ara sertifikaları da göndermelidir. Zincir eksik gönderildiğinde site bazı cihazlarda açılırken bazılarında uyarı verir.
  • Sertifikanın doğrulanması: Tarayıcı sertifikanın geçerlilik tarihini, alan adı kapsamını ve imzalayan otoriteyi kontrol eder. Bu üç kontrolün her biri ayrı bir hata üretir; süresi dolmuş bir sertifika ile tanınmayan bir otorite farklı sorunlardır.
  • Taşıma katmanı: Sunucu 443 numaralı portta TLS yerine şifresiz yanıt dönüyorsa tarayıcı beklediği TLS yanıtını alamaz ve el sıkışma daha ilk adımda sonlanır. Bu durumda sorun sertifikada değil, sunucunun o portta hangi protokolle konuştuğu ayarındadır.

TLS Hatası Nasıl Düzeltilir?

Çözüme, hatanın hangi tarafta oluştuğunu belirleyerek başlamak gerekir. Aşağıdaki sıra sorunu adım adım daraltır.

  1. Uyarı ekranındaki kodu not edin. Kod, doğrulamanın hangi aşamasında sorun çıktığını gösterir ve doğrudan çözüme yönlendirir.
  2. Farklı bir cihaz ve ağdan deneyin. Uyarı yalnızca tek bir cihazda görülüyorsa neden çoğunlukla sistem saati, güncel olmayan bir tarayıcı veya araya giren güvenlik yazılımıdır.
  3. Sunucu tarafında sertifikayı kontrol edin. Hata tüm ziyaretçilerde tekrarlıyorsa sertifikanın geçerlilik tarihini, alan adı kapsamını ve ara sertifika zincirinin eksiksiz kurulduğunu doğrulayın.
  4. TLS sürüm desteğini gözden geçirin. Sunucuda TLS 1.2 ve TLS 1.3 etkin olmalıdır. Eski sürümleri yeniden açmak çözüm değildir; TLS 1.0 ve TLS 1.1 resmî olarak kullanımdan kaldırılmıştır.
  5. Kodun kendi çözümüne geçin. Kodlar farklı nedenlere işaret ettiği için genel bir düzeltme yerine ilgili adımların uygulanması gerekir.

Bugün SSL yerine TLS kullanıldığı için “SSL hatası” ve “TLS hatası” aynı durumu tanımlar. Hangi kodun ne anlattığını ve nasıl giderileceğini SSL hataları ve çözümleri rehberimizde bir arada bulabilirsiniz.