Sertifikaların ne işe yaradığı anlaşılmış.
Dijital Sertifikalar Gerçekte Nedir? X.509 Sertifikalarının İç Dünyasına Yolculuk
web siteleri, sunucular ve vpn'ler gibi birçok alanda kullanılan x.509 dijital sertifikalarının derinliklerine inen bir yolculuk.
https kullanan bir web sitesi açtığınızda, exchange server üzerinde tls yapılandırdığınızda, active directory certificate services (ad cs) kurduğunuzda veya vpn kimlik doğrulaması yaptığınızda aslında aynı teknolojiyi kullanıyorsunuz: x.509 dijital sertifikaları. günümüzde neredeyse tüm kurumsal altyapılar sertifikalara dayanmasına rağmen, çoğu kişi sertifikayı yalnızca “https için kullanılan dosya” veya “içinde public key bulunan yapı” olarak düşünüyor. oysa ….
HTTPS kullanan bir web sitesi açtığınızda, Exchange Server üzerinde TLS yapılandırdığınızda, Active Directory Certificate Services (AD CS) kurduğunuzda veya VPN kimlik doğrulaması yaptığınızda aslında aynı teknolojiyi kullanıyorsunuz: X.509 dijital sertifikaları.
Günümüzde neredeyse tüm kurumsal altyapılar sertifikalara dayanmasına rağmen, çoğu kişi sertifikayı yalnızca “HTTPS için kullanılan dosya” veya “içinde public key bulunan yapı” olarak düşünüyor. Oysa bu tanım oldukça eksik kalıyor.
Bu yazıda dijital sertifikanın gerçekte ne olduğunu, içerisinde hangi bilgilerin bulunduğunu ve Sertifika Otoritesi’nin (Certificate Authority – CA) aslında neyi imzaladığını teknik açıdan inceleyeceğiz.
Dijital Sertifika Nedir?
“Bir kimliği, o kimliğe ait açık anahtarla ilişkilendiren ve bu ilişkinin güvenilir bir Sertifika Otoritesi tarafından doğrulandığını gösteren dijital olarak imzalanmış bir veri yapısıdır.“
Burada dikkat edilmesi gereken nokta “veri yapısı” ifadesidir. Çünkü sertifika tek başına bir anahtar değildir. Aslında içerisinde onlarca farklı bilgi barındırır.
Dolayısıyla sertifika yalnızca “kimlik kartı” değildir; aynı zamanda güven ilişkisini tanımlayan bütünleşik bir yapıdır.
Windows Sertifika Görüntüleyicisi Bize Her Şeyi Göstermiyor
Windows üzerinde herhangi bir sertifikayı açtığınızda aşağıdaki sekmelerle karşılaşırsınız:
alanlarına bakıp pencereyi kapatır. Fakat görünen bilgiler aslında sertifikanın yalnızca okunabilir gösterimidir.
Arka planda ise ASN.1 standardına göre tanımlanmış, DER formatında kodlanmış oldukça düzenli bir veri yapısı bulunur. PEM, CER veya CRT uzantıları ise yalnızca bu verinin farklı gösterim şekilleridir.
dosyalarının içerdiği mantık aynıdır. Fark sadece verinin nasıl saklandığıdır.
Sertifikanın Kalbi: TBSCertificate
X.509 sertifikalarının en önemli bölümü TBSCertificate yapısıdır. TBS, “To Be Signed” yani İmzalanacak Veri anlamına gelir. İşte Sertifika Otoritesi’nin koruduğu tüm bilgiler burada yer alır.
gibi tüm kritik bilgiler bulunur. Kısacası sertifikanın güvenilirliğini sağlayan her alan TBSCertificate’in bir parçasıdır.
Sertifika Otoritesi Aslında Neyi İmzalar?
Burada en çok karıştırılan konulardan biri şudur. Birçok kişi CA’nın yalnızca Public Key’i imzaladığını düşünür. Gerçekte ise durum tamamen farklıdır.
Yani CA tek tek alanları imzalamaz. Sertifikanın tamamını tek bir kriptografik nesne olarak korur. Bu nedenle Subject alanından SAN kaydına kadar bütün bilgiler dijital imzanın kapsamına girer.
Neden Tek Bir Karakter Bile Değiştirilemez?
Bunun cevabı hash algoritmalarında saklıdır. Hash fonksiyonlarının en önemli özelliği “Avalanche Effect” olarak bilinen davranıştır. Yani veride yapılan çok küçük bir değişiklik bile tamamen farklı bir hash üretir.
arasındaki tek fark yalnızca bir karakter olsa bile oluşacak hash değeri tamamen farklı olacaktır.
Çünkü bunlardan herhangi biri değiştiğinde TBSCertificate’in hash değeri de değişecektir. Sonuç olarak CA tarafından oluşturulan dijital imza artık doğrulanamaz.
İmzayı Kim Doğrular?
Bir istemci HTTPS bağlantısı kurarken veya bir sertifikayı doğrularken şu işlemleri gerçekleştirir:
Bu mekanizma sayesinde istemci yalnızca sertifikanın geçerli olup olmadığını değil, aynı zamanda yayınlandıktan sonra değiştirilip değiştirilmediğini de anlayabilir.
Certutil ile Sertifikanın İçeriğini İncelemek
Windows işletim sistemlerinde bulunan certutil aracı, sertifikaların içeriğini detaylı şekilde incelemek için oldukça faydalıdır.
gibi tüm alanları ayrıntılı olarak görüntüleyebilirsiniz.
komutu ise sertifikanın dijital imzasını doğrular ve güven zincirini kontrol eder. PKI altyapılarında sorun giderme süreçlerinde bu iki komut oldukça sık kullanılır.
Dijital sertifikalar yalnızca HTTPS bağlantısını sağlayan dosyalar değildir. Her sertifika; kimlik bilgilerini, açık anahtarı, kullanım amaçlarını, geçerlilik sürelerini ve birçok farklı uzantıyı içeren yapılandırılmış bir veri kümesidir. Bu verilerin tamamı TBSCertificate içerisinde yer alır ve Sertifika Otoritesi tarafından tek seferde dijital olarak imzalanır.
İşte bu nedenle sertifika yayınlandıktan sonra içerisinde bulunan tek bir karakterin bile değiştirilmesi mümkün değildir. Yapılacak en küçük değişiklik, sertifikanın hash değerini değiştirir ve dijital imzanın geçersiz olmasına neden olur.
Bir sonraki IIS, Exchange, AD CS veya TLS yapılandırmanızda sertifikaya yalnızca bir dosya olarak değil; güveni sağlayan, kriptografik olarak korunan ve modern güvenlik altyapılarının temelini oluşturan kritik bir bileşen olarak bakmanız, PKI mimarisini çok daha doğru anlamanıza yardımcı olacaktır.