Bu sorunla ilgili tonlarca belge okudum ancak yine de tüm parçaları bir araya getiremiyorum, bu yüzden birkaç soru sormak istiyorum.
Her şeyden önce, anladığım şekliyle kimlik doğrulama prosedürünü kısaca açıklayacağım, çünkü bu konuda yanılıyor olabilirim: Bir istemci, bir sunucunun genel anahtar, bazı meta veriler ve dijital imzanın bir kombinasyonuyla yanıt verdiği bir bağlantı başlatır. güvenilir otorite. Daha sonra istemci, sunucuya güvenip güvenmediğine karar verir, bazı rastgele oturum anahtarlarını açık anahtarla şifreler ve geri gönderir. Bu oturum anahtarının şifresi yalnızca sunucuda depolanan özel anahtarla çözülebilir. Sunucu bunu yapar ve ardından HTTPS oturumu başlar.
Öyleyse, yukarıda haklıysam, soru ortadaki adam saldırısının böyle bir senaryoda nasıl gerçekleşebileceğidir? Demek istediğim, birisi sunucuya (ör. Www.server.com) yanıtını açık anahtarla durdursa ve bana www.server.com olduğunu düşündüren bazı yollara sahip olsa bile, yine de oturum anahtarımın şifresini çözemezdi özel anahtar olmadan.
Karşılıklı kimlik doğrulama hakkında konuşursak, her şey istemci kimliği konusunda sunucu güveniyle mi ilgili? Demek istediğim, müşteri zaten doğru sunucuyla iletişim kurduğundan emin olabilir, ancak şimdi sunucu istemcinin kim olduğunu öğrenmek istiyor, değil mi?
Ve son soru, karşılıklı kimlik doğrulamanın alternatifi ile ilgili. Açıklanan durumda bir istemci olarak hareket edersem, SSL oturumu kurulduktan sonra HTTP başlığında bir oturum açma / şifre gönderirsem ne olur? Gördüğüm kadarıyla, bu bilgiler ele geçirilemez çünkü bağlantı zaten güvenli ve sunucu kimliğim için ona güvenebilir. Yanlış mıyım? Karşılıklı kimlik doğrulama ile karşılaştırıldığında böyle bir yaklaşımın dezavantajları nelerdir (uygulama karmaşıklığı değil, yalnızca güvenlik sorunları önemlidir)?