İki profil de ca.crt adlı bir dosya getirir, bir tünel açılır, diğeri zincir hatasıyla başarısız olur. İki dosyayı yan yana açmak bunu nadiren çözer ve doğrulamayı kapatmak bunu yanlış yönde çözer. Hatanın gerçekte sorduğu soru daha dardır: her süreç hangi sertifikayı kendi güven çapası olarak yükler ve ikisi aynı nesne midir? Önce buna cevap verin, teşhisin geri kalanı bir yön kazanır. Dosya adı bir ambalaj etiketidir ve profilde yazılı yol da yetkili değildir, bu yüzden her şey sürecin gerçekte ne okuduğuna bağlıdır.

İstemcinin gerçekte yüklediği sertifikayı bulun

OpenVPN yetkiyi iki biçimde kabul eder ve biçim hangi baytların önemli olduğunu belirler. Bir profil ca ile harici bir dosyaya işaret edebilir veya sertifikayı doğrudan profilin içindeki <ca> bloğuna gömebilir. İkisi de varsa gömülü blok kazanır ve profilin yanındaki dosya asla açılmaz.

Başarısız profili okuyun ve herhangi bir şeyi karşılaştırmadan önce hangi biçimi kullandığını bulun. Komşu bir dizinden veya diğer profilin geldiği paketten alınan bir kopya, bu sürecin neye güvendiği hakkında size hiçbir şey söylemez. Aynısı yapılandırmadaki yol için de geçerlidir: istemcinin başlatıldığı yere göre çözülür ve bu her zaman baktığınız dizin değildir. Profili okuyun, klasörü değil.

Sertifikalar içerikleriyle tanımlanır: genel anahtar, konu ve veren, geçerlilik penceresi ve tüm bunların üzerindeki imza. Aynı baytlara sahip iki dosya ne ad verilirse verilsin aynı sertifikadır ve aynı ada sahip iki dosya ilgisiz yetkiler olabilir. Ad bir ambalaj etiketidir, kimlik değildir.

İki kopyanın parmak izini openssl ile alın

Parmak izi sertifikanın DER kodlaması üzerinde bir hash'tir, imzanın kapsadığı biçim budur, bu yüzden satır sonları ve başlık metni onu etkileyemez. Her dosya için hesaplayın ve iki nokta ile ayrılmış iki onaltılık dizi elde edin, ya eşleşirler ya eşleşmezler. Karşılaştırma sorusunu yanıtlamak için sertifikada başka hiçbir şeyin okunması gerekmez.

openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256

openssl komutunu profilin kendisine yöneltmek caziptir, ancak dosyada ilk görünen sertifika bloğunu okur ve profil genellikle <cert> bloğunu <ca> bloğundan önce taşır. Yetki bloğunu çıkarın, sonra çıkarılan dosyanın parmak izini alın, çünkü istemcinin gerçekte kullanacağı kopya odur.

sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256

Aynı parmak izleri güven malzemesinin aynı olduğunu ve zincir hatasının başka bir nedeni olduğunu gösterir, bu da başka bir incelemedir. Farklı parmak izleri farklı sertifikalar demektir ve sonraki bölüm orada başlar.

Bir saldırı varsaymadan önce uyuşmazlığı okuyun

Farklı parmak izleri farklı sertifikalar demektir ve başka bir şey değil. Yeniden düzenleme, rotasyon, adı değiştirilmiş bir yetki veya eski bir paket hepsi tamamen meşru geçmişlere sahip farklı dosyalar üretir. Hangisinin dağıtıma ait olduğu operatöre veya dağıtım kaydına sorulacak bir sorudur, dosyanın değiştirilme zamanına değil. Arşivler zaman damgalarını kopyalar, bu yüzden daha yeni bir dosya otomatik olarak doğru çapa değildir.

Kendini imzalayan bir kök normaldir, bu yüzden birini bulmak bir sorunun kanıtı değildir. Doğrulayıcının işi sunucu sertifikasından kendisine verilen çapaya kadar bir yol kurmaktır ve zincir hatası genellikle o yolun tamamlanamadığı anlamına gelir.

Başarısız profilin çapasının dağıtımın hâlâ sertifika verdiği bir yetki olup olmadığını kontrol edin. Parmak izi dağıtım kaydındaki hiçbir şeyle eşleşmiyorsa, profil yalnızca eskiymiştir ve istemci tarafındaki hiçbir ayar bunu düzeltmez.

Doğrulamayı kapatmadan güveni onarın

Kısa vadeli düzeltme doğrulamayı kapatmak veya zincirdeki her sertifikayı çapa olarak eklemektir. İkisi de mesajı yok eder ve ikisi de istemcinin o andan itibaren hangi sunucuları kabul edeceğini değiştirir. Doğrulamayı yeniden açın, amaçlanan çapayı kurun ve tekrar test edin.

Zincir artık kuruluyorsa ama farklı bir hata görünüyorsa bu ilerlemedir: ad doğrulaması, geçerlilik tarihleri ve iptal ayrı mesajları olan ayrı kontrollerdir. Parmak izi çiftini ve orijinal hata metnini bilette birlikte tutun, böylece sonraki kişi hangi çapanın yüklendiğini ve hangisinin beklendiğini görsün. Bir parmak izi çifti teslim notuna yapıştırılabilecek kadar küçüktür ve sonraki olay o zaman bir öğleden sonra yerine beş dakika sürer.

Doğru yetkiyi profili teslim eden aynı kimlik doğrulamalı kanaldan edinin. Konusu tanıdık göründüğü için sunucudan bir sertifika çekmek başka bir eylemdir ve istemcinin güveneceği şeyi sessizce genişletir.

İlgili makaleler