Linux'ta bir ara CA'ya güvenmemek mi?


18

Gönderen bu blog .

Ara CA'lar, herhangi bir web sitesi için rasgele sertifikalar imzalayabilen bir kök CA tarafından imzalanan sertifikalardır.

Kök CA'lar kadar güçlüdürler, ancak sisteminizin güvendiklerinin tam listesi yoktur, çünkü kök CA'lar istedikleri zaman yenilerini yapabilir ve sisteminiz ilk bakışta onlara güvenir. CT'de BİNLERCE giriş var.

Bu ay Eylül 2015'te ortaya çıkan ilginç bir tane ortaya çıktı: Symantec tarafından imzalanan "Blue Coat Public Services Intermediate CA". (Bu CA tarafından imzalanmış hiçbir sertifika şu ana kadar CT günlüklerine veya Censys'e ulaşmadı.)

OS X'te güvenilen bir ara CA'nın açıkça güvenilmemesini yazmanın iyi bir fırsat olacağını düşündüm. Kök CA'nın aynı kuruluşa yeni bir ara ürün teslim etmesini durdurmayacak, ama hiçbir şeyden daha iyi değil.

Blogdaki adımları Ubuntu'da denediğimde, bu sertifikayı https://crt.sh/?id=19538258 indiriyorum . .Crt dosyasını açtığımda Gnome Keyring'e aktarılıyor, ancak daha sonra sertifikayı içe aktardıktan sonra "güvenmemek" için bir yol bulamadım.

Yanıtlar:


8

İşleri zorlaştırmak için, Linux'un sertifikalarla çalışmak için birden fazla kütüphanesi vardır.

Eğer Mozilla'nın NSS kullanıyorsanız yapabilirsiniz Aktif Güvensizlik (kendi terminoloji) kullanarak bir sertifika Certutil s' -t trustargsseçeneği:

$ certutil -d <path to directory containing database> -M -t p -n "Blue Coat Public Services Intermediate CA"

Firefox için, <path to directory containing database>genellikle rastgele görünen karakterlerin ~/.mozilla/firefox/<???>.profileolduğu yerdir <???>. (certutil örneğin ubuntu'nun libnss3-tools paketindedir)

Arıza aşağıdaki gibidir:

-M veritabanını değiştirmek için

-t p güveni Yasaklanmış olarak ayarlamak

-n belirtilen sertifika üzerinde işlem yapmak

NSS içinde bile, tüm uygulamalar aynı veritabanını paylaşmaz; bu yüzden bu işlemi tekrarlamanız gerekebilir. Örneğin, Chrome için aynısını yapmak için olarak -d <path>değerini değiştirin -d sql:.pki/nssdb/.

$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"

Ancak, tüm uygulamalar NSS kullanmaz, bu yüzden bu tam bir çözüm değildir. Örneğin, bunu OpenSSL kütüphanesi ile yapmanın mümkün olduğuna inanmıyorum.

Sonuç olarak, sertifika zinciri oluşturma (TLS, IPSec vb.) Sağlamak için OpenSSL kullanan herhangi bir uygulama, Blue Coat sertifikasına sahip bir zincire güvenir ve imzalayan Kök CA'yı kaldırmadan kısa sürede yapabileceğiniz hiçbir şey yoktur. güven çapa deponuz (Internet'in yarısını güvensiz hale getirdiğiniz için bir Symantec Kök CA'sı olarak aptalca kabul edilir), NSS'ye dayanan uygulamalar, içinde Blue Coat sertifikasına sahip herhangi bir zinciri güvenmeyecek şekilde daha ayrıntılı yapılandırılabilir. .

Örneğin, OpenVPN'in sertifikalar için kütüphane olarak OpenSSL kullandığına inanıyorum, bu nedenle ağabey OpenVPN kullanan ticari bir VPN sağlayıcısına bağlanıyorsanız sizin haberiniz olmadan OpenVPN trafiğinizi dinliyor olabilir. Bu konuda gerçekten endişeleniyorsanız, ticari VPN sağlayıcınızın Kök CA'sının kim olduğunu kontrol edin - eğer Symantec / Verisign ise, belki başka biri için onları terk etmenin zamanı geldi mi?

SSH'nin X509 sertifikaları kullanmadığından, Blue Coat MITM saldırıları hakkında endişelenmeden SSH kullanarak bağlanıp tünel oluşturabileceğinizi unutmayın.


Sertifikayı çift tıkladığımda gnome anahtarlığına aktarıldığını göstermek için soruyu güncelledim. Aşağıdaki cevabımda Firefox'a aktarmanın bir yolunu bulmayı başardım.
raphael

OpenSSL için sadece sertifikayı kaldırmak güvensizlikle aynı olmaz mıydı? Ne de olsa sadece bildiği sertifikaları doğrulayabilir.
Bratchley

1
@Bratchley - Şüpheli sertifika TLS anlaşmasının bir parçası olarak (olması gerektiği gibi) gönderilirse ne olur? Her zaman güvenilmediği konusunda ısrar etmenin bir yolu (Mozilla NSS, Windows ve OS-X ile olduğu gibi) olmadığı sürece, güvenilir olacaktır.
garethTheRed

@garethTheRed Bir şey eksik olabilir, ancak kütüphane doğrulamak için sertifika gerekiyorsa o zaman bir CRL yapmak veya güvenilir kök CA kaldırma sorunu çözmek? İstemci veya sunucu sertifikaları olsun, yine de doğrulama gerektirir.
Bratchley

1
Evet. Bluecoat, Verisign tarafından ortadaki adam cihazlarında kullanılmak üzere bir CA sertifikası aldı. OP bu sertifikaya nasıl güvensizlik yapılacağını sorar. Bu, üst sertifika veren CA'nın (bu durumda Kök) dediğiniz gibi, kökten (Verisign) güvenmek istemediğinizde iptal edemeyeceği bir alt sertifikayı güvensizlikle ilgilidir.
garethTheRed

0

Henüz yorum yapamam, bu yüzden burada yorum yapmak zorundayım, Ubuntu Gnome 15.10'da @ garethTheRed yaklaşımını kullandığımda şunu elde ediyorum:

~$ certutil -d ~/.mozilla/firefox/<directory>.default -M -t p -n "Blue Coat Public Services Intermediate CA" 
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_BAD_DATABASE: security library: bad database.

~$ certutil -d sql:.pki/nssdb/ -M -t p -n "Blue Coat Public Services Intermediate CA"
certutil: could not find certificate named "Blue Coat Public Services Intermediate CA": SEC_ERROR_UNRECOGNIZED_OID: Unrecognized Object Identifier.

"Blue Coat Systems, Inc." çalışmıyor.

(Bu, aldığım sertifikadır: https://crt.sh/?id=19538258 )


Önce sertifikayı indirip içeri aktardınız mı?
raphael

Evet, bunu içe aktardım : crt.sh/?id=19538258 . (Şimdi yorum yapabilirim! :)
Diagon

Bence sadece kendi cevabın üzerine yorum yapabilirsin. İşlemi henüz denemedim.
raphael

aşağıdaki cevabımı gör
raphael

@raphael - Aşağıda düzenlemeyi denedim, bunu size bildiririm: Yukarıdaki bağlantı "-t p" yi "yasak (açıkça rahatsız edildi)" olarak tanımlasa da, Ubuntu 15.10 man sayfası bunu "p - Geçerli eş" olarak tanımlar. Umarım yanlış bir şey yapmadın.
Diagon
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.