it-swarm-tr.com

Bir joker karakter SSL sertifikası hangi güvenlik açıklarına neden olabilir?

bu cevap ile ilgili bir yorumda AviD şöyle diyor:

"Joker karakter SSL sertifikalarıyla ilgili çok sayıda güvenlik sorunu var."

Peki, problemler neler? Aynı özel anahtarın birden fazla bağlamda kullanıldığını anlıyorum, ancak tüm uygulamalarımı aynı Ana Bilgisayar adı altında Barındırdığım göz önüne alındığında, bunu joker karakter sertifikalarının getirdiği 'yeni' bir sorun olarak görmüyorum.

46
user185

"Joker karakter sertifikası", sunucu adının mümkün olduğunca "* "karakteri. Ayrıntılar RFC 2818, bölüm 3.1 . Alt satırda: sunucu sertifikası *.example.com, görünen ad bu adla eşleşen herhangi bir sunucu için geçerli bir sertifika olarak istemciler tarafından kabul edilecektir.

Web siteleri için sertifikasyon işinde dört ana aktör vardır:

  • SSL sunucusunun kendisi.
  • İstemcinin kullanacağı Web tarayıcısının satıcısı.
  • İstemci tarayıcısının ne yapacağını bir dereceye kadar kontrol eden insan kullanıcı.
  • Sertifikayı sunucuya veren CA.

Joker karakter sertifikaları, SSL sunucusu için ek güvenlik açıkları anlamına gelmez; aslında, SSL sunucusunun kendi sertifikasına bakmakla ilgisi yoktur. Bu sertifika, istemcilerin yararına, sertifikada bulunan ortak anahtarın gerçekten de gerçek SSL sunucusunun ortak anahtarı olduğuna ikna etmek içindir. SSL sunucusu bilir kendi genel/özel anahtar çifti ve bu konuda ikna edilmesi gerekmez.

İnsan kullanıcının ortak anahtarın ne olduğu hakkında hiçbir fikri yoktur. Gördüğü bir asma kilit simgesidir ve daha da önemlisi amaçlanan sunucu adı: "https:// "ve sonraki" / ". Web tarayıcısı, adın doğru olduğunu doğrulamanın, yani sunucu sertifikasının doğrulanması ve adın geçerli olanla eşleştiğinin doğrulanması için teknik ayrıntıları işlemek için varsayılan şeklindedir. Tarayıcı bu işi yapmazsa, özensiz olarak görünecek ve rolünü üstlenmeyecektir, bu da ciddi ticari sonuçlara sahip olabilir, muhtemelen yasal bile olabilir.Aynı şekilde, CA sözleşmeli olarak tanımlanan prosedürleri takip etmek zorundadır. SSL sunucu sahiplerini tanımlamak için saldırganlar için sahte sertifikaların elde edilmesi zor olacaktır (sözleşme, CA ile über-CA arasında, özyineli olarak, işletim sistemi veya tarayıcı satıcısı ile bir anlaşma ile bağlanan kök CA'ya kadar, kök CA anahtarını işletim sistemine veya tarayıcıya belirli koşullar altında dahil etmeyi kabul eder).

Bunun anlamı, pratikte tarayıcı ve [~ # ~] ca [~ # ~] olmalıdır , doğrulama işlemi sırasında kullanıcıyı şımartın. Kullanıcının yasal görünen sahte siteler aracılığıyla dolandırılmasını önlemek için az çok yükümlülük altındadırlar (yasalara göre, hatta daha katı, ticari nedenlerle). Kullanıcının işi ile tarayıcı/CA işi arasındaki sınır net bir şekilde tanımlanmamıştır ve tarihsel olarak hareket etmiştir. Yore Günleri'nde, yani on yıl önce, tarayıcılar sadece ham URL'yi yazdırdı ve sunucu adını bulmak insan kullanıcısına kalmıştı. Bu, site operatörlerini (yani "kimlik avı siteleri") teknik olarak geçerli ancak yanıltıcı olan URL'yi şu şekilde kullanmaya yönlendirdi:

https://www.Paypal.com:[email protected]/confirm.html

İnsan kullanıcılar, human ve çoğu soldan sağa okuduğu için (en zengin ve saf dolandırıcılık hedefleri hala Batı ülkelerinde), kaldı, bkz. www.Paypal.com, iki nokta üst üste işaretinde durun ("çok teknik") ve dolandırıcı olun.

Buna karşılık, tarayıcı satıcıları, insan kullanıcıların URL ayrıştırma yeteneklerinin başlangıçta varsayıldığı kadar iyi olmadığını ve bu nedenle son tarayıcıların etki alanı bölümünü vurguladığını kabul etmişlerdir. Yukarıdaki durumda, bu xcvhjvb.com ve kesinlikle Paypal.com içinde. Şimdi joker karakter sertifikaları oyuna girilen bölüm geliyor. xcvhjvb.com, "*.xcvhjvb.com "olarak adlandırılırsa, şu şekilde bir kimlik avı sitesi kurabilir:

https://Paypal-payment-interface-login-session.xcvhjvb.com/confirm.html

tarayıcı tarafından kabul edilir (joker karakter adıyla eşleşir) ve yine de dikkatsiz kullanıcıları yakalaması muhtemeldir (ve çok sayıda ...). Bu ad olabilir , saldırgan tarafından joker karakterlere başvurmadan satın alınmış olabilir, ancak CA çalışanları adı açıkça sahtekarlık girişimi ile görürdü (iyi CA do her sertifika talebinin insan tarafından onaylanması veya en azından çok uzun ve/veya içinde bilinen banka isimlerini içeren adlar için uyarılar alınması).

Bu nedenle, joker karakter sertifikaları CA tarafında sahteciliği önleme tedbirlerinin etkinliğini azaltır. Bu CA'dan boş bir imza gibidir. Joker karakter tabanlı kimlik avı girişimleri daha yaygın hale gelirse, aşağıdaki önlemlerden birinin veya birkaçının ortaya çıkması beklenebilir:

  • Tarayıcılar yalnızca alan adının sertifikadaki wildcard olmayan öğelerle eşleşen bölümlerini vurgular.
  • CA, daha ağır evrak işleri ve joker karakterler için sözleşmeler gerektirir (ve bunlar daha pahalı olacaktır).
  • Tarayıcılar joker karakter sertifikaları desteğini tamamen devre dışı bırakır.

Aslında üç önlemin de önümüzdeki yıllarda uygulanmasını bekliyorum. Bu konuda tamamen yanlış olabilirim (geleceği tahmin etmede sorun var) ama bu hala benim içimde olan his.


Nitekim, joker sertifikaların aynı anahtar çiftini farklı sunucu names arasında paylaşmak için yararlı olduğunu da belirtebiliriz, bu da özel anahtarın farklı sunucu arasında paylaşılmasını daha olası hale getirir makineleri . Özel anahtarları kullanmak kendi başlarına bir güvenlik riskidir; özel bir anahtar ne kadar çok dolaşırsa, o kadar az "özel" kalır.

35
Thomas Pornin

Aynı özel anahtarı farklı hizmet sunan birden çok sunucuya yaymak kötü bir uygulamadır: Herhangi bir hizmette kullanılan güvenlik sorunları her şey için kullanılan özel anahtarı ortaya çıkarır.

Ancak, aynı Köken politikasından yararlanmak için kullanıcıya özgü alt etki alanlarındaki kullanıcıya katkıda bulunan web içeriğini izole etmek için joker karakterler kullanmak yaygındır. Aynı yaklaşım yaygın olarak güvenilmeyen portletleri oluşturmak için kullanılır. Open Social "standardın" bir parçasıdır.

İşyerimde açık bir sosyal uygulama içeren ve joker karakter kurulumunu kullanan bir yazılım geliştiriyoruz. Müşteri kurulumları sızma testlerine tabi tutulmuştur. Joker karakter kurulumu eleştirilmedi.

18

Sonuçta, bu cevaplarda belirtilen güvenlik açıklarının birçoğu güven seviyelerinin karıştırılmasından kaynaklanmaktadır. Ancak joker karakter sertifikalarının nasıl çalıştığını anlarsanız, belirli kullanım durumları için bu güvenlik açıklarını azaltabilirsiniz. Bunu daha ayrıntılı olarak açıklamanın, bu sorunun ve cevaplarının kullanışlılığını artıracağını düşünüyorum.

Alan adınızdaki tüm sistemler aynı güven düzeyine sahip olmadıkça, kontrolünüz altındaki tüm sistemleri kapsamak için bir joker karakter sertifikası kullanmak kötü bir fikirdir. Ancak bir bölümleme aracı olarak DNS alt alan adlarını kullanabilirsiniz. Hendrik'in dediği gibi, joker karakterler alt etki alanlarını geçmediği için, bir joker karakter sertifikasını belirli bir ad alanıyla sınırlandırabilirsiniz. Örneğin, bir CDN grubunuz varsa, yalnızca *.cdn.example.com Bu, example.com İçindeki (www.example.com Gibi) ana bilgisayarları ayrı tutar ve www.example.com İçin ayrı bir sertifika verebilirsiniz.

AviD'nin OWASP'tan bahsettiği gibi: dahili iş istasyonları, geliştirme sistemleri vb. Düşük güven seviyelerine aittir. Ancak, bunun gibi ana bilgisayarlar yine de kendi iç etki alanlarında olmalıdır (prv.example.com Gibi). Joker karakterler alt etki alanlarında geçiş yapmadığından, *.example.com Ana bilgisayarlarına prv.example.com Sertifikası uygulanamaz. (Bu, genel ve özel mülkleri ayrı tutar, ancak özel mülkleri birbirinden ayırmaz. Uygun alt düzeylere eşlenmiş diğer alt alan joker karakterleri kullanılabilir).

bu eWeek makalesi özel anahtarın birden çok ana bilgisayarda paylaşılabileceğini not ederken, bu SSLShopper rebuttal , bazı yayıncıların (DigiCert gibi) her biri için ayrı özel anahtarlar oluşturmanıza izin verdiğini söylüyor joker karakterli Sunucu. Bu, joker karakter sertifikalarının bazı yararlılıklarını azaltır, ancak paylaşılan-özel anahtar sorununu kesinlikle azaltır ve bazı durumlarda yardımcı olabilir. Aksi takdirde, bu Entrust makalesi ve teknik inceleme PDF referans verdiği) , joker karakterler ile kullanıldığında özel anahtarları yönetmek için en iyi uygulamaları tartışır.

Son olarak, yetki ile tartışmaya başvurmak ... Google, bazı mülkleri için joker karakter sertifikaları kullanıyorsa , evrensel olarak kötü olmamalıdır:

Qualys SSL Labs screenshot for youtube.com cert

:-)

9
Royce Williams

İdeal olarak, bir sertifikanın/anahtarın kimliğine bürünmek için kullanılabilecek hizmetlerin listesi, sertifika/anahtarın kullanılması amaçlanan hizmetlerin listesiyle aynı olmalıdır.

Örnek bir alanınız olduğunu varsayalım. Söz konusu www.example.com catpictures.example.com kullanıcıları.example.com alan adı altında çeşitli ana bilgisayar adları ayarladınız. Hepsi aynı sunucuda barındırılır, böylece hepsini kapsayan bir sertifika alırsınız.

Şimdi daha güvenli bir sunucuda secure.example.com'u kurduğunuzu varsayalım. Diyelim ki bu sunucu için ayrı bir sertifika alıyorsunuz.

Şimdi, ilk sunucudaki sertifikaya karşılık gelen özel anahtar çalınırsa ne olacağını düşünün.

* .Example.com (bir joker karakter sertifikası) için bir sertifika olsaydı, saldırganlar bunu safe.example.com'u taklit edebilir

Www.example.com catpictures.example.com ve kullanıcılar.example.com için bir sertifika olsaydı, saldırganlar secure.example.com'u taklit etmek için bu sertifikayı kullanamazlar

4
Peter Green