SSL sertifikaları nasıl doğrulanır?


219

SSL sertifikasını güvenli bir şekilde doğrulamak için gereken adımlar dizisi nedir? (Çok sınırlı) anlayışım, bir https sitesini ziyaret ettiğinizde sunucunun istemciye (tarayıcı) bir sertifika göndermesi ve tarayıcının sertifikanın yayıncı bilgilerini bu sertifikadan alması, ardından bunu yayıncıyla iletişim kurmak için kullanması ve bir şekilde karşılaştırmasıdır. geçerlilik sertifikaları.

  • Bu tam olarak nasıl yapılır?
  • Süreç, onu ortadaki adam saldırılarına karşı bağışık kılıyor?
  • Bazı rastgele kişilerin ortadaki adam saldırılarında kullanmak için kendi doğrulama hizmetlerini kurmasını engelleyen şey nedir, böylece her şey "güvenli" görünür?


bu video akışını anlamada çok yararlı buldu youtube.com/watch?v=T4Df5_cojAs
Krishna

Yanıtlar:


308

İşte çok basitleştirilmiş bir açıklama:

  1. Web tarayıcınız, web sunucusunun ortak anahtarını içeren web sunucusunun sertifikasını indirir. Bu sertifika güvenilir bir sertifika yetkilisinin özel anahtarı ile imzalanmıştır.

  2. Web tarayıcınız, tüm büyük sertifika yetkililerinin ortak anahtarlarıyla birlikte gelir. Web sunucusunun sertifikasının gerçekten güvenilir sertifika yetkilisi tarafından imzalandığını doğrulamak için bu ortak anahtarı kullanır.

  3. Sertifika, web sunucusunun etki alanı adını ve / veya ip adresini içerir. Web tarayıcınız, sertifika yetkilisinde, sertifikada listelenen adresin açık bağlantıya sahip olduğu adres olduğunu doğrular.

  4. Web tarayıcınız, bu bağlantıdaki HTTP trafiğini şifrelemek için kullanılacak paylaşılan bir simetrik anahtar oluşturur; bu, her şey için genel / özel anahtar şifrelemesini kullanmaktan çok daha etkilidir. Tarayıcınız simetrik anahtarı web sunucusunun ortak anahtarı ile şifreler ve daha sonra geri gönderir, böylece yalnızca web sunucusunun özel anahtarı olduğundan, yalnızca web sunucusunun şifresini çözebilmesini sağlar.

Sertifika yetkilisinin (CA) ortadaki adam saldırılarını önlemek için gerekli olduğunu unutmayın. Bununla birlikte, imzasız bir sertifika bile, paylaşılan simetrik anahtarınıza erişmenin bir yolu olmadığı için birisinin şifreli trafiğinizi pasif olarak dinlemesini önleyecektir.


4
Adım 1.5 civarında sunucu, sertifikasıyla ilişkili özel anahtarla bir şey "imzalar". Bu, yalnızca sertifikanın sahibi olan sitenin sertifikayı sunmasını sağlamak için ad / IP denetimi ile birleşir.
Darron

68
Amazon.com'a bağlanan Firefox kullanarak bu işlemin tam bir örneğini görmek için bkz. Moserware.com/2009/06/first-few-milliseconds-of-https.html
Jeff Moser

9
Tarayıcımın tüm büyük sertifika yetkililerinin ortak anahtarlarıyla yüklü olduğunu bilmiyordum. Artık SSL sertifikalarımın MITM riski olmadan nasıl doğrulandığını biliyorum. Teşekkürler!
OneChillDude

5
sunucunun CAuthority'den sertifika istemesi gerekir, bu nedenle ona istek gönderir. CA, sunucunun geçerli olduğundan nasıl emin olabilir?
voipp

4
@voipp: Harika bir soru! Tarihsel olarak, "e-posta gönder webmaster@<domain-being-verified>veya" Bu dosyayı sahibi olduğunuzu kanıtlamak için alan adınıza yerleştirin "gibi birkaç yaklaşım olmuştur . Ancak, kullanıcıların CA'lara sahip olmadıkları alanlara sertifika vermeleri konusunda gerçekten sorunlar olmuştur. kendi - ünlü biri gmail.com için bir sertifika vermek için gölgeli bir CA almayı başardı!
Eli Courtwright

58

Bir sertifika satın almanın yanı sıra (yukarıda belirtildiği gibi) ücretsiz olarak kendiniz de oluşturabileceğinizi belirtmek gerekir; buna "kendinden imzalı sertifika" denir. Kendinden imzalı bir sertifika ile satın alınan bir sertifika arasındaki fark basittir: satın alınan sertifika, tarayıcınızın zaten bildiği bir Sertifika Yetkilisi tarafından imzalanmıştır. Başka bir deyişle, tarayıcınız satın alınan bir sertifikanın gerçekliğini kolayca doğrulayabilir.

Ne yazık ki bu, kendinden imzalı sertifikaların GoDaddy ve Verisign gibi ticari CA'lar tarafından satılanlardan daha az güvenli olduğu ve bunları kullanırsanız tarayıcı uyarıları / istisnaları ile yaşamak zorunda olduğunuz konusunda yaygın bir yanlış anlama doğurmuştur; bu yanlış .

Kendinden imzalı bir sertifikayı (veya bobince'nin önerdiği gibi CA sertifikasını) güvenli bir şekilde dağıtır ve sitenizi kullanacak tarayıcılara yüklerseniz , satın alınan kadar güvenli ve ortadaki adamlara karşı savunmasız değildir. saldırıları ve sertifika sahteciliği. Açıkçası bu, yalnızca birkaç kişinin sitenize güvenli bir şekilde erişmesi gerektiğinde (ör. Dahili uygulamalar, kişisel bloglar, vb.) Mümkün olduğu anlamına gelir.


1
Gerçekten de, kendi sertifikanızı güvenli bir şekilde dağıtmak, kedinin derisini almanın bir yoludur, ancak çok daha kolay olanı "açık" CA'lardan herhangi birine gitmektir. CACert.org benim favorim. Sertifika verme işlemlerini korumak için aldıkları adımlara güvendiğiniz sürece, kök sertifikasını içe aktarmak güvenlidir.
nsayer

6
Bu yorumu seviyorum - maalesef CA'larla çok önemli bir zayıflığı vurguluyor. Diyelim ki Bob Smith'ten bir CA sertifikası aldınız - Bob Smith herhangi bir alan için (google.com ve chase.com dahil) bir sertifika imzalayabilir. Bu yüzden GoDaddy / Verisign işletim sistemine dahil olmak için büyük para ödüyor - kötü niyetli bir kişi için bir sertifika imzalamadığından emin olmak için kontrolleri yaptıklarından emin olmak için bir güvenlik kıyafeti tarafından denetleniyorlar. "Bu CA sadece mysite.com için certs imzalayabilirsiniz" diyebilmeniz gerektiğini düşünüyorum.
Natalie Adams

Kendinden imzalı sertifika daha güvenli değil mi, çünkü dışarıdaki CA'lara sahip olmamaları gereken bir şeyi imzalamaları için ödeme yapılabilir. CA sertifikalarını güvenli bir şekilde uç noktalara dağıtabiliyorsanız, her zaman kendinden imzalı sertifikalarla devam edin.
javaPhobic

Çoğu büyük tarayıcıda ücretsiz ve doğrulanmış herhangi bir CA var mı? Sadece bir e-posta ve alan adı sahibi olduğumu doğrulamak için temel bir sertifika arıyorum. Bulduğumlar, çoğu büyük tarayıcıda değil.
Alex Kwitny

@NathanAdams Teorik olarak büyük CA'ların, tarif ettiğiniz gibi sahte certs yayınlamaktan kaçınmaları için veteriner istekleri yapması gerekiyor ... ancak bu hikayeyi okuyun: stripe.ian.sh
nsayer

38

Dedin ki

tarayıcı sertifikanın yayıncı bilgilerini bu sertifikadan alır, ardından bunu yayıncıyla iletişim kurmak için kullanır ve bir şekilde geçerlilik için sertifikaları karşılaştırır.

Müşteri, ihraççı ile kontrol etmek zorunda değildir, çünkü iki şey:

  1. tüm tarayıcılarda tüm büyük CA'ların genel anahtarlarının önceden yüklenmiş bir listesi bulunur
  2. sertifika imzalanır ve bu imzanın kendisi sertifikanın geçerli olduğunun kanıtıdır, çünkü istemci kendi başına ve yayıncının sunucusuna başvurmadan bu sertifikanın gerçek olduğundan emin olabilir. Bu asimetrik şifrelemenin güzelliği.

Dikkat edin 2. olmadan 1 yapılamaz.

Bu biraz zaman önce yaptığım bu büyük diyagramda daha iyi açıklanmış

(alttaki "imza nedir?" bölümüne atlayın)

damla


9
Bu kabul edilen cevap olmalıydı. @Eli Courtwright'ın cevabı, sertifikaların nasıl çalıştığını anlamak için imho'yu kısaltmanın bir yoludur.
Felix Crazzolara

Bunu bir kez okumak yeterli olmayabilir, ancak zaten bitlere ve SSL parçalarına aşina iseniz, bu gerçekten her şeyi bir araya getirir. İyi iş!
Cameron Gagnon

Harika görüntü. Sonunda sorularımı açıklayan bir şey. Derinlemesine gittiğim her yer "tarayıcı sertifikanın doğru olduğunu doğruladı" dedi. ANCAK NASIL YAPAR? Bu bir cevap verir.
ori6151

8

İstemcinin SSL sertifikası yetkililerinin genel anahtarları için önceden eklenmiş bir deposu vardır. Sunucunun güvenilebilmesi için sunucu için sertifikadan, ara yetkililer tarafından "kök" sertifikalardan birine kadar bir güven zinciri olmalıdır.

Güvenilir yetkililerin listesini inceleyebilir ve / veya değiştirebilirsiniz. Bunu genellikle, güvendiğinizi bildiğiniz bir yerel makam için, çalıştığınız şirket veya katıldığınız okul gibi ya da olmayan bir sertifika eklemek için yaparsınız.

Önceden ekilmiş liste kullandığınız istemciye bağlı olarak değişebilir. Büyük SSL sertifikası satıcıları, kök sertifikalarının tüm büyük tarayıcılarda ($$$) olmasını sağlar.

Saldırganın güvenilen bir kök sertifikasının özel anahtarı yoksa ortadaki maymun saldırıları "imkansızdır". Karşılık gelen sertifikalar yaygın bir şekilde konuşlandırıldığından, böyle bir özel anahtarın maruz kalmasının genel olarak e-Ticaretin güvenliği üzerinde ciddi etkileri olacaktır. Bu nedenle, bu özel anahtarlar çok, çok yakından korunmaktadır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.