İletişimin hızla gelişmesi nedeniyle insanlar, İnternet aracılığı ile bilgi paylaşma yolunu seçmektedirler. Bu yolla iletilen bilgiler de zaman ilerledikçe ağların dinlenmesi, gelen verinin değiştirilmesi, bir başkası gibi davranarak yanlış bilgi gönderilmeye çalışılması ve başkasına ait bilgilerin öğrenilmeye çalışılması kişilerin rahatsız olmasına neden olmuştur. Bu nedenler ile iletişimde aşağıdaki şifreleme metotları kullanılmaya başlamıştır. a) Simetrik Anahtarlama: - Basit şifreleme algoritmaları kullanılır.
- Şifreleme ve deşifreleme de aynı anahtar kullanılır.
- Anahtarlar hem veriyi alanda hem de gönderen de bulunur.
- Buna örnek olarak, bir kapının aynı anahtarla kilitleniyor ve aynı anahtarla açılıyor olması verilebilir.
b)Açık/Özel(Public/Private) Anahtar İkilileri: Şifreleme ve deşifreleme için ayrı anahtarlar kullanılmaktadır. Bu anahtarlar ikili biçimde anılmakta olup, birbirlerinin şifreledikleri verileri deşifreleyebilmektedirler. veri <-----> açık anahtar <-----> sifrelenmis veri <-----> özel anahtar <-----> veri Bu yöntem ile iki temel probleme çözüm sağlanmaktadır: Ağ üzerinden gönderilen mesajın şifreli olarak gitmesi, bu şekilde mesajı sadece alıcı ve gönderenin görebilmesi (şifreleme/deşifreleme) Alıcının mesajı gönderen kişinin gönderdiğinden emin olması, yani alıcının mesajın yolda değiştirilmediğinden ve gönderen kişinin sahte olmadığından emin olması (e-imza) Açık anahtar herkes tarafından bilinmektedir. Bunun yanında bu gizli anahtar sadece ait olduğu kişi tarafından bilinmektedir. A. AÇIK/ÖZEL (PUBLIC/PRIVATE) ANAHTAR İKİLİLERİNİN KULLANIMI: a) Şifreleme/Deşifreleme (Encryption/Decryption): Şifreleme, mesaj gönderen kişinin mesajın sadece alıcı tarafından okunmasını istediği durumlarda kullanılan bir yöntemdir. Bir örnekle modelleyecek olursak, Feyza Mustafa'ya sadece Mustafa'nın görmesini istediği bir mesaj göndermek istiyor. Feyza -----> Mesaj -----> Mustafa Öncelikle Feyza, Mustafa'nın açık anahtarını elde eder, daha sonra bu açık anahtarı kullanarak göndereceği mesajı şifreler. Feyza -----> Mesaj ----- AçıkMustafa -----> [Mesaj]AçıkMustafa Daha sonra şifrelenmiş olan mesajı Mustafa'ya gönderir. Mesajı alan Mustafa, mesajı kendi özel anahtarını kullanarak deşifreler ve mesajı elde eder. [ Mesaj ]AçıkMustafa -----ÖzelMustafa-----> Mesaj Mesaj, sadece Mustafa'nın özel anahtarı ile deşifrelenebileceği için, Mustafa'dan başka birinin Mustafa'nın özel anahtarına sahip olmadan mesajı okuması olanaksızdır. b) Elektronik İmza ve Doğrulama: Elektronik imza, gelen bir mesajın göndericisinin kimliğini doğrulama mekanizmasıdır. Feyza-Mustafa örneğine dönecek olursak, Feyza bir başkasının kendi adına Mustafa'ya mesaj atmasını istememektedir. Bunun için Mustafa'ya gönderdiği mesajları e-imzası ile imzalamaktadır. Bu hikayede Feyza, Mustafa'ya mesaj göndermek için, mesajı hazırlar. Feyza -----> Mesaj Feyza, mesajı kendi açık anahtarını bir paket olarak hazırladıktan sonra Mustafa'ya gönderir. Feyza -----> [[Mesaj ] + AçıkFeyza ] -----> Mustafa Burada Feyza'nın kendi açık anahtarını mesajla beraber göndermesinde bir sakınca yoktur. Çünkü buradaki amaç, bu mesajın Feyza tarafından gönderildiğinin ispatlanmasıdır. Herhangi bir değişiklik söz konusu olduğunda, Mustafa bu mesajın Feyza tarafından gönderilmediğini anlayacak ve mesajı dikkate almayacaktır. Mesajı alan Mustafa, Feyza'nın yayınlanan açık anahtarı ile mesaj içerisinde gelen Feyza'nın açık anahtarını karşılaştırarak, mesajın Feyza tarafından gönderildiğinden emin olur. [Mesaj ]AçıkFeyza -----> Mesaj c) Şifreli ve İmzalı Mesaj Gönderme Hem gizlilik hem de gönderen kişinin kimliğini doğrulama mekanizmaları birlikte kullanılabilir. Bu şekilde hem mesajın, doğru insandan geldiği, hem değiştirilmediği, hem de sadece alıcı tarafından okunduğundan emin olunabilir. Bunun için açık/gizli anahtar ikilileri, simetrik anahtarlama ve hash algoritmaları birlikte kullanılır. Hikayede Feyza, Mustafa'ya hem şifreli hem de imzalı bir mesaj göndermek istediğinde, mesajın imzalanması ve mesajın şifrelenmesi aynı işlem içerisinde iki ayrı bölüm olarak incelenir. Feyza mesajı imzalamadan önce mesaj üstünde hash algoritması çalıştırarak mesajın bir kontrol toplamını(checksum) hesaplatır. Feyza -----> Mesaj ----- hash alg. -----> Toplam = [ Mesaj ]Hash Kontrol toplamı oluşturulan mesajın imzalanması kısmında, oluşturulan toplam Mustafa'nın açık anahtarı ile şifrelenir. Toplam-----AçıkMustafa-----> [Toplam]AçıkMustafa Oluşturulan şifreli toplam, mesajın kendisi, Feyza'nın açık anahtarı, kullanılan hash algoritmasının ismi bir paket oluşturur. [Mesaj + [Toplam]AçıkMustafa +AçıkFeyza + hash alg] Bu şekilde gönderilecek mesajın imzalanma işlemi tamamlanmış olur. Bu oluşturulan paketin içerisinden Mustafa, Feyza'nın açık anahtarından mesajı Feyza'nın gönderdiğini, kendi gizli anahtarını kullanarak toplamı elde eder. Gönderilen hash algoritmasını kullanarak çıplak mesajın tekrar kontrol toplamını oluşturur. Bu iki toplamı karşılaştırıp eğer her iki toplam eşitse, mesajın değişmediği bilgisini elde eder. Mesajın tamamını şifreli bir biçimde ağdan geçirmek için, daha hızlı ve basit olan simetrik anahtar kullanılır. Çünkü uzun mesajlarda açık/özel anahtar ikilisinin kullanılması simetrik anahtarlamaya göre çok daha yavaş kalacaktır. Hikayede Feyza hazırlanan mesaj paketini ağdan göndermeden önce bir kereye mahsus olmak üzere simetrik anahtar üretir ve bu simetrik anahtar ile hazırlanan mesajı şifreler. [Mesaj + [Toplam]AçıkMustafa +AçıkFeyza + hash alg ]symK Mustafa Feyza'dan gelen bu mesajı okumak için Feyza'nın ürettiği simetrik anahtara ihtiyaç duyacaktır. Bundan dolayı, simetrik anahtarda mesaj paketinin içinde olmalıdır. [Mesaj + [Toplam] AçıkMustafa + AçıkFeyza + hash alg ]symK+ symK Bu mesajı bu şekilde ağdan gönderdiğimiz durumda ağı dinleyen herhangi biri mesajı okuyabilecek pozisyondadır. Bunu engellemek, bu mesajın sadece Mustafa tarafından görülmesini sağlamak için, mesajın şifrelenmesi olayında olduğu gibi Mustafa'nın açık anahtarını kullanmak gerekmektedir. Burada Mustafa'nın açık anahtarını kullanarak tüm hazırlanan paket şifrelenecek olursa, hem boyut büyüyecek hem de algoritma daha yavaş çalışacaktır. Bunun için son durumda elde edilen paketin açılması için gerekli olan simetrik anahtarın Mustafa'nın açık anahtarı ile şifrelenmesi yeterli olacaktır. Bu şekilde hız kazanılacaktır. Son durumda Mustafa'ya ulaşacak olan paket aşağıdaki hale gelmiştir; Feyza-----> [[Mesaj+[Toplam]AçıkMustafa+AçıkFeyza+hash alg]symK + [symK]AçıkMustafa ] ----->Mustafa Bu mesajı alan herhangi biri Mustafa'nın özel anahtarına sahip olmadığı için simetrik anahtara ulaşamayacak ve mesajı okuyamayacaktır. Bu mesajı alan Mustafa önce kendi özel anahtarı ile simetrik anahtarı elde edecek, bu anahtarı kullanarak mesajı açacak, mesajla gelen hash algoritmasını ve kendi gizli anahtarını kullanarak, mesajın değiştirilip değiştirilmediğini ve bu mesajı Feyza'nın gönderip göndermediği bilgisini elde edecektir. B. SERTİFİKA NEDİR? Sertifika, açık anahtar sahibinin kimliğini doğrulayan bir parça bilgidir. Ehliyet, nüfus cüzdanı gibi sertifika sahibinin kimliğini ispatlar. Sertifikalar, - Sertifika otoritesinin kimliğini
- Sahibinin kimliğini
- Sahibinin açık anahtarını
- Sertifikanın kullanımının bitiş zamanını
- Sertifika sunucusunun, bu sertifikayı onaylayan imzasını
- Diğer bir takım bilgileri tutmaktadır.
Sertifika sayesinde, herhangi bir bilgi alan kişi, bu bilgiyi gönderen kişinin kimliğini, kullandığı sertifikanın geçerli olup olmadığını, sertifikanın güvenilir bir sertifika otoritesi tarafından onaylanıp onaylanmadığını anlayabilir. Sertifika Kullanılarak Şifreli ve İmzalı Mesaj Gönderme: Yukarıdaki hikayede, Feyza'nın Mustafa'ya imzalı ve şifreli mesaj gönderme adımlarını, mesajı şifrelemede kullanılanın Mustafa'nın sertifikası ile yaptığını düşünerek yeniden anlatalım: Hikayede Feyza, Mustafa'ya hem şifreli hem de imzalı bir mesaj göndermek istediğinde, mesajın imzalanması ve mesajın şifrelenmesi aynı işlem içerisinde iki ayrı bölüm olarak incelenir. Feyza mesajı imzalamadan önce mesaj üstünde hash algoritması çalıştırarak mesajın bir kontrol toplamını(checksum) hesaplar. Feyza -----> Mesaj ----- hash alg. -----> Toplam = [ Mesaj ]Hash Kontrol toplamı oluşturulan mesajın imzalanması kısmında, oluşturulan toplam Mustafa'nın sertifikası ile şifrelenir. Toplam-----SertMustafa-----> [Toplam]SertMustafa Oluşturulan şifreli toplam, mesajın kendisi, Feyza'nın açık anahtarı yerine Feyza'nın sertifikası, kullanılan hash algoritmasının ismi bir paket oluşturur. [Mesaj + [Toplam]SertMustafa +SertFeyza + hash alg] Bu şekilde gönderilecek mesajın imzalanma işlemi tamamlanmış olur. Hikayede Feyza hazırlanan mesaj paketini ağdan göndermeden önce bir kereye mahsus olmak üzere simetrik anahtar üretir ve bu simetrik anahtar ile hazırlanan mesajı şifreler. [Mesaj + [Toplam]SertMustafa + SertFeyza + hash alg ]symK Mustafa Feyza'dan gelen bu mesajı okumak için Feyza'nın ürettiği simetrik anahtara ihtiyaç duyacaktır. Bundan dolayı, üretilen simetrik anahtarda mesaj paketinin içinde olmalıdır. [Mesaj + [Toplam]SertMustafa + SertFeyza + hash alg ]symK+ symK Bu mesajın sadece Mustafa tarafından görülmesini sağlamak için, mesajın şifrelenmesi olayında olduğu gibi Mustafa'nın sertifikası kullanılır. Feyza mesajı hazırladıktan sonra şifrelemek için, Mustafa'nın sertifikasını kontrol eder, sertifikada yazan bilgiler içerisinden sertifikanın Mustafa'ya ait olduğunu görür, daha sonra sertifikanın geçerlilik zamanı içerisinde olup olmadığını kontrol eder. Daha sonra sertifikayı onaylayan sertifika otoritesinin güvenilir sertifika otoriteleri listesinde olup olmadığını kontrol eder. Bu kontrollerden sonra Feyza, Mustafa'nın sertifikasının Mustafa'ya ait olduğundan emin olur. Son durumda Mustafa'ya ulaşacak olan paket, Mustafa'nın sertifikası ile birlikte aşağıdaki hale gelmiştir; Feyza-----> [[Mesaj+[Toplam] SertMustafa + SertFeyza +hash alg]symK + [symK]SertMustafa ] ----->Mustafa Bu mesajı alan herhangi biri Mustafa'nın özel anahtarına sahip olmadan mesajı okuyamayacaktır. Bu mesajı alan Mustafa önce kendi özel anahtarı ile simetrik anahtarı elde edecek, bu simetrik anahtarı kullanarak mesajı açacak, mesajla gelen Feyza'nın sertifikasının doğruluğunu kontrol edecek, gizli anahtarını ve hash algoritmasını kullanarak, mesajın değiştirilip değiştirilmediğini ve bu mesajı Feyza'nın gönderip göndermediği bilgisini elde edecektir. C. AÇIK ANAHTAR ALTYAPISI (Public Key Infrastructure)NEDİR? Sertifikaların, anahtar ikililerinin yönetimini sağlayan yazılımsal ve yordamsal bütünlüğe Açık Anahtar Altyapısı denmektedir. Yönetilen bir açık anahtar altyapısında aşağıdaki işlevler bulunmalıdır: Anahtar ve sertifika üretimi: Anahtarları nasıl üretmeli? Bu sertifikalar kullanıcıya nasıl yayınlanacak? Bu yapıda kullanıcıdan sertifika isteği alabilmeli, bu isteğe karşılık, anahtar ikilisi üretip, üretilen sertifikaları, kullanıcılara yayınlayabilmelidir. Gizli anahtar koruması: Gizli anahtarları bir başkası tarafından elde edilememesi için bir koruma mekanizmasının olması beklenmektedir. Sertifikaların iptal edilebilmesi: Bir sertifikanın, verilen kişinin özel anahtarının çalınması, bir işyerindeki personelin ayrılması... v.b. durumlarda iptal edilebilir olması gerekmektedir. Ayrıca, iptal edilen bir sertifikanın herkes tarafından görülmesini sağlamalıdır. Anahtar yedeklenmesi ve yeniden elde edebilme: Özel anahtarın kaybedilmesi durumunda, sertifika sahibine yeniden özel anahtar oluşturulabilmelidir. Anahtar ve sertifika güncelleme: Son kullanım günü gelen sertifikalar yenilenmelidir. Anahtar işlemlerinin yönetimi: Güncellenen sertifikaların geçmişlerinin tutulması gerekmektedir. Sertifika erişimi: Üretilen sertifikaların herkes tarafından elde edilebilmesine olanak sağlamalıdır. Günümüzde, Türkiye'de bulunan bir kurum ya da kuruluşların sertifika otoriteliği için uyması gereken kurallar, Elektronik İmza Kanunu ile belirlenmiştir. |