Sertifikalarla Kimlik Denetimi

Merhaba,

Sertifika, basitçe kişinin ya da kurumun public key’inin yetkili bir sertifika otoritesi (Verisign, Globalsign vb.) tarafından imzalanmış halidir. Sertifikaya gelmeden önce asimetrik anahtarlamalı şifrelemedeki public ve private key kavramlarından biraz bahsetmek gerekiyor sanırım. Private key’ler yalnızca sahiplerinde bulunur, public key’ler ise herkese gönderilir. Public key ile şifrelenen veri yalnızca o kişinin private key’i ile açılabilir, aynı şekilde private ile şifrelenen de yalnızca onun public key’i ile açılabilir. Bu anahtarlardan herhangi biri ile şifreleme olayına encryption, şifrelenen verinin diğer anahtarla cleartext haline getirilmesine de decryption diyoruz. Hash’lenmiş bir veri cleartext haline dönemez fakat şifrelenmiş veriler çözülebilir. Bu kadar ön bilgiden sonra gelelim sertifikanın oluşturulmasına:

Sertifika oluşturmak için;

  1. Sertifika talebinde bulunan kişi/kurum kimlik bilgileri ile public key’ini hash’leyip CA’ya (certification authority) gönderir ve onaylamasını ister.
  2. Kişi/kurum’un public key’i ile hash’i, CA’nın private key’i ile şifrelendiğinde (encryption) CA tarafından imzalanmış olur (dijital imza). Dijital imza kişi/kurum bilgilerinin ve public key’inin oluşturduğu hash’in CA’da private key ile şifrelenmiş halidir de denilebilir.
  3. Kişi/kurum public key’i, CA’nın oluşturduğu dijital imzaya eklendiğinde sertifika oluşur.

Sertifika kontrolü yapılırken ise;

  1.  CA’dan sertifika indirilir ve CA’nın public key’i ile decryption yapılır. Böylece kişi/kurum’un public key’i ve hash’i elde edilir.
  2.  CA’dan öğrenilen public key hash’lenir.
  3.  Kişi/kurum’dan gelen public key -public key herkese dağıtılıyordu- hash’i ile karşılaştırılır.

Hash’ler aynıysa kullanıcının isteğine gelen cevap gerçekten aradığı yerden geldiği anlaşılır.

Sertifikayla kuruma güven sağlandıktan sonra sayfa isteği yapan kişi session key üretir (shared key) ve bunu isteği yaptığı tarafın public key’i ile şifreleyerek gönderir. Session key iki tarafta da öğrenildikten sonra aradaki veri alış-verişi session key ile şifrelenip çözülür (symmetric anahtarlama). Her bağlantıda ayrı bir session key üretilir ve bağlantı sonlandığında silinir. Session key’in alıcıya öğretilmesine key exchange diyoruz. Key exchange asimetrik şifrelemeyle, veri şifrelemesi de simetrik şifrelemeyle yapılır.

Kurumun güvenilirliği onaylandıktan sonra isteği yapan kişiye de güvenilmesi gerekebilir. Bu durumda authetication gerçekleştirilir. Kurum tarafında kullanıcı bilgileri hash’li olarak tutulmaktadır. Kullanıcı formu doldurduktan sonra (kullanıcı adı, şifre vb.) gönderilirken bu bilgiler hash’lenir ve yalnızca alıcı tarafından okunabilmesi için alıcının public key’i ile şifrelenir. Alıcıda private key ile elde edilen hash, kayıtlı olanla karşılaştırılarak authentication sağlanır.

Verinin bütünlüğünü sağlamak için ise hash algoritmaları kullanmak yeterlidir. Mesajı gönderen kişi mesajına hash’ini ve bir sıra numarası ekleyerek gönderir. Alıcının public key’i ile şifrelenen mesaj private key ile çözülür ve mesajı kendisi de aynı algoritma ile hash’leyerek gelen hash ile karşılaştırır. Hash’ler aynı ise veri kaybı olmamıştır.

Bu yöntemlerle verinin güvenliği ve bütünlüğü sağlanırken authentication da gerçekleşebilir.

Sonraki yazıda görüşmek üzere.

Seda

 

“Sertifikalarla Kimlik Denetimi” için bir cevap

Bir Cevap Yazın

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