Yazan : Şadi Evren ŞEKER

Veri güvenliği konusunda kullanılan bir terimdir. Basitçe bir kaynağın umumi anahtarının (public key) doğruluğunu sınamak için kullanılır. Bu kaynak bir web sitesi, posta yollayan bir kaynak ya da bir dosya sunucusu olabilir. Sertifikanın çalışmasını imzalanmış bir umumi anahtar (public key) olarak düşünülebilir.

Sertifikanın çalışması aşağıda anlatılan basit 3 adımda gerçekleşir. Sertifikalar farklı amaçlar için kullanılabilir, aşağıda umumi anahtarını yayınlayan bir kaynağın kesinliği için alıcı tarafın yaptıkları sıralanmıştır:

  1. Sertifikası oluşturulacak bilginin özeti çıkarılır (message digest). Bu bilgiye hesaplanmış mesaj özeti diyelim.
  2. Yayım yapan kaynağın umumi anahtarını kullanarak alıcı taraf sertfikayı açar (Decrypt). Sertifikanın açılmış hali de bir mesaj özetidir. Bu mesaj özetine de açılmış mesaj özeti diyelim.
  3. Açılmış mesaj özeti ile hesaplanmış mesaj özeti karşılaştırılır. Şayet bu ikisi birbirini tutuyorsa sertifika doğrudur ve yayın yapan tarafın umumi anahtarının doğruluğu sınanmıştır bilinmektedir.

Yukarıdaki bu sertifika oluşturma ve doğrulama işlemlerini bir örnek üzerinden anlamaya çalışalım. Örneğin Ali, Bekir’in umumi anahtarının doğruluğundan emin olmak istiyor olsun. Bu durumda Ali, güvendiği bir kaynak olan Cüneyt’ten Bekir’in sertifikasını talep edecek ve bu sertifika içerisinde Bekir’in umumi anahtarını alacaktır. Sertifika ile yukarıdaki adımlar kapsamında doğrulama işlemi yaptıktan sonra Ali, kesin olarak Bekir’in umumi anahtarını elde etmiş ve bu umumi anahtarın doğruluğunu sınamış olacaktır.

Bu senaryoyu adım adım anlatmamız gerekirse. Bekir’in bir dosya sunucusu olduğunu ve bu sunucudaki bir dosyayı kendi anahtarı ile imzaladığını düşünelim. Bu dosyayı almak isteyen Ali’nin elinde Bekir’in umumi anahtarı bulunmuyor. Ali, Bekir’in umumi anahtarını Bekir’den talep edebilir ve bu anahtarı alıp kullanabilir ancak bu noktada Bekir’in anahtarının sahte olmadığından emin olamaz. Yani anahtarı yayınlayan gerçekten Bekir olmayabilir. Bu noktada 3. Bir kişi tarafından yayınlanan sertifika devreye girer. 3. Ve güvenilir kişi olan örneğin Cüneyt sertifika halinde Bekir’in anahtarını yayınlar. Ali hem Cüneyt hem de Bekir’den elde ettiği bu anahtarları karşılaştırır. Şayet anahtarlar aynıysa ve güvendiği kişi olan Cüneyt tarafından yayınlanıyorsa elindeki anahtarın Bekir’in anahtarı olduğuna güvenerek işlemini yapar.

Yukarıdaki senaryoyu aşağıdaki şekil üzerinde görmek mümkündür:

  1. Adımda işlem bir dosya transferi talebi ile başlar:

Ali, Bekir’in dosya sunucusundan bir dosya talebinde bulunur. Bekir’in dosya sunucusundaki dosyalar Bekir’in imzasını taşımaktadır. Bu sayede Ali, aldığı dosyanın Bekir’in imzaladığı ve gerçekten Bekir’den gelen dosya olduğuna emin olur. Ancak sorun kullanılan anahtarın gerçekte Bekir’in olup olmadığıdır.

Örneğin yukarıdaki şekildeki gösterildiği üzere her şey beklendiği gibiyse; gerçekten Bekir’in dosyası Bekir tarafından imzalanmıştır ve Ali bu dosyayı almak ister. Dosyanın dışında Bekir’in anahtarını da alarak dosyanın içeriğinden emin olur. Ancak Bekir’i taklit eden bir saldırgan pek âlâ ben Bekir’im diyerek hem Bekir’in anahtarının hem de dosyanın sahtesini üretebilir:

Bu durumda örneğin Bekir’i taklit eden ve Ali’yi yanıltmak isteyen Burcu, dosyanın ve anahtarın sahtesini üreterek yayınlayabilir. Anahtarı ve dosyayı Bekir yerine Burcudan alan ve aslında Bekir’den aldığını sanan Ali bu durumda yanlış dosyayı alacak ve Bekir’den almadığını fark edemeyecektir.

Bu yazı şadi evren şeker tarafından yazılmış ve bilgisayarkavramlari.com sitesinde yayınlanmaktadır.

İşte bu noktada Ali’nin almış olduğu anahtar ve dolayısıyla dosyanın imzalandığı anahtarı kontrol edebileceği güvendiği bir kişiye ihtiyacı vardır. Bu kişi örneğimizde Cüneyt olarak geçen kişidir.

Bu yeni durumda Cüneyt, Bekir’in sertifikasını yayınlamaktadır. Yayınlanan bu sertifikanın içerisinde Bekir’in anahtarı da bulunmaktadır. Ali bu iletişim sırasında Cüneyt’ten de Bekir’in anahtarını alarak aldığı anahtarın gerçekten Bekir’e ait olduğunu kontrol eder. Şayet doğruysa dosya transferini gerçekleştirir ve aldığı dosyanın Bekir’in dosyası olduğundan emin olur.

Şayet saldırgan olan Burcu, Bekir’i taklit etmek isteseydi bu durumda Cüneyt’in yayınladığı sertifikanın da sahtesini üretmeliydi ve Ali’nin güvendiği bir kaynak üzerinden bu sertifikayı yayınlamalıydı. Ancak bu mümkün değildir çünkü bunu gerçekleştirmek için örneğin VeriSign gibi güvenilir kaynakların taklit edilmesi veya kırılarak sistemlerinde taklit sertifikaların yayınlanması gerekir ki bu oldukça güçtür.

Elbette yukarıdaki sertifika örneğinde hemen göze çarpabilecek bir zincir durumu söz konusudur. Yani Cüneyt’in gerçekte Cüneyt olup olmadığını sorguladığımız anda aynı sertifika işlemi Cüneyt’in doğruluğunu ispatlayan 4. Bir kişi tarafından yapılmalıdır. Bu durumda örneğin Davut isimli bu yeni sertifika sağlayıcısı önce Cüneyt’in doğruluğunu ispatlayacak sonra Cüneyt, Bekir’in doğruluğunu ispatlayacaktır. Bu tip zincirlere de sertifika zinciri ( Certificate Chains) ismi verilir.

Sertifikaların yapısı

Sertifikalar veri güvenliği literatürü açısından bazı bilgiler içerir. Öncelikle literatürde kullanılan bu terimleri açıklayalım. Sertifikanın tanımlamak istediği kişiye veya kimliğe özne (subject) ismi verilir. Sertifikayı imzalayan tarafa (ki bu taraf sertifika otoritesi olmadığı sürece kimliğin sahibinden farklı bir kişidir) imzacı (Signer) ismi verilir. Sertifika yapı itibariyle özne ile ilgili bilgiler içerir ve ilave olarak öznenin umumi anahtarını içerir.

Bütün bu bilgiler şifreleme algoritmaları ile imzalanır (Signature) ve imza da sertifikanın bir parçası olarak saklanır.

En basit anlamda sertifikalar aşağıdaki bilgileri içermiş olur:

  • Özne hakkında bilgi
  • Öznenin umumi anahtarı
  • Sertifikayı sunan imzacının bilgisi
  • İmzacının yukarıdaki bilgilerden ürettiği imza

Örneğin X.509 bu anlamda kullanılan bir sertifika standardıdır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir