Hızlı cevap: mTLS (çift taraflı TLS, mutual TLS), hem sunucunun hem istemcinin birbirini sertifikayla doğruladığı bir kimlik doğrulama yöntemidir. Normal TLS'te yalnızca istemci sunucuyu doğrular; mTLS'te her iki taraf da kimliğini sertifikayla kanıtlar. API'ler ve servisler arası iletişimde, yalnızca güvenilir ve kimliği doğrulanmış tarafların konuşmasını sağlar. Sıfır güven mimarisinin ve servis-servis güvenliğinin temel bir aracıdır.

mTLS normal TLS'ten nasıl farklı?

Normal TLS'te (HTTPS'in temeli) doğrulama tek yönlüdür: tarayıcı sunucunun sertifikasını kontrol eder, ama sunucu istemcinin kim olduğunu sertifikayla doğrulamaz. İstemci kimliği genelde parola ya da token ile ayrıca sağlanır.

mTLS bu doğrulamayı çift yönlü yapar. Sunucu istemcinin sertifikasını da ister ve doğrular. Böylece bağlantının her iki ucu da kriptografik olarak kimliklenir. Sonuç: sunucuya yalnızca geçerli sertifikaya sahip, önceden güvenilen istemciler bağlanabilir.

mTLS nerede kullanılır?

Senaryo Faydası
Servis-servis iletişim Mikroservislerin birbirini güçlü doğrulaması
İç API güvenliği Yalnızca yetkili servislerin API'ye erişmesi
Makine-makine (M2M) İnsan olmayan istemcilerin güçlü kimliği
Sıfır güven Ağ konumundan bağımsız kimlik temelli erişim
IoT ve cihaz kimliği Her cihazın benzersiz sertifikayla doğrulanması

mTLS'in getirdikleri ve zorlukları

mTLS güçlü bir doğrulama sağlar: çalıntı bir token'ın tek başına yetmediği, çünkü ayrıca geçerli bir istemci sertifikası gerektiği bir model kurar. Bu, özellikle servisler arası ve makine-makine iletişiminde parola ya da token tek başına yetersiz kaldığında değerlidir.

Zorluğu sertifika yönetimidir. Her istemci için sertifika üretmek, dağıtmak, yenilemek ve iptal etmek gerekir. Bu yük, bir sertifika otoritesi ve otomasyonla (özellikle servis ağı, service mesh ortamlarında) yönetilir. Doğru otomasyon olmadan mTLS operasyonel olarak zorlaşır.

KAOS ve DSET yaklaşımı

DSET, API ve servis mimarilerinde kimlik doğrulama katmanını değerlendirir ve mTLS'in nerede gerekli ve nasıl doğru kurulması gerektiğini önerir. Geliştirdiğimiz KAOS güvenlik motoru, iç API'lerde zayıf ya da eksik kimlik doğrulamayı ve açıkta kalan servis uçlarını raporlar. Amacımız her yere mTLS dayatmak değil, servis-servis ve makine-makine iletişiminde kimlik doğrulamanın gerçekten güçlü olup olmadığını göstermektir.

Bağlantılı okumalar: TLS SSL yapılandırma sertleştirme, API güvenliği ve OWASP API Top 10, API gateway güvenliği, zero trust mimari, makine kimlikleri non-human identity, OAuth 2 ve OIDC akış saldırıları.

Sık sorulan sorular

mTLS ile normal TLS arasındaki fark nedir? Normal TLS'te yalnızca istemci sunucuyu sertifikayla doğrular. mTLS'te ise her iki taraf da birbirini sertifikayla doğrular: sunucu da istemcinin geçerli bir sertifikası olmasını ister. Bu, bağlantının her iki ucunu kriptografik olarak kimlikler ve yalnızca güvenilen istemcilerin bağlanmasını sağlar.

mTLS token tabanlı kimlik doğrulamanın yerini alır mı? Tamamen değil, çoğu zaman onu tamamlar. mTLS bağlantı düzeyinde güçlü bir kimlik sağlar; token (OAuth, JWT) ise uygulama düzeyinde yetki ve bağlam taşır. Servis-servis iletişiminde ikisi birlikte kullanılabilir: mTLS tarafların kimliğini, token ise ne yapabileceklerini belirler.

mTLS'in en büyük zorluğu nedir? Sertifika yönetimidir. Her istemci sertifikasının üretilmesi, dağıtılması, yenilenmesi ve gerektiğinde iptal edilmesi gerekir. Bu operasyonel yük, bir sertifika otoritesi ve otomasyonla, özellikle service mesh gibi ortamlarda yönetilebilir hale gelir. Otomasyon olmadan büyük ölçekte mTLS zorlaşır.

Kaynaklar

API ve servis mimarinizde kimlik doğrulama katmanını değerlendirmek için Ankara Hacettepe Teknokent'teki ekibimizle görüşebilirsiniz. DSET ile iletişime geçin.