SEPTAGH
New member
İletişimin hızla gelişmesi nedeniyle insanlar, ağ aracılığı ile bilgi paylaşma yolunu seçmektedirler. Bu yolla iletilen bilgiler zaman ilerledikçe, ağların dinlenmesi, gelen verinin değiştirilmesi, bir başkası gibi davranarak yanlış bilgi gönderilmeye çalışılması, başkasına ait bilgilerin öğrenilmeye çalışılması gibi tehditler karşısında, kişilerin rahatsız olmasına neden olmuştur. Bütün bu tehditleri önlemek amacıyla iletişimde anahtarlama yöntemleri kullanılmaya başlanmıştır.
Anahtarlama yöntemleri, gönderilen ve alınan verinin değişik şifreleme algoritmaları kullanılarak gönderici tarafından şifrelenmesi ve alıcı tarafından şifrelenmiş verinin, şifresinin açılması temeli üzerine kurulmuştur. Bu şekilde ağdan geçen mesajın ağ üzerindeki tehditlerden korunması sağlanmaktadır.
Bu yazıda, anahtarlama yöntemlerinden ve kullanıldığı zaman hangi tür tehditleri engelleyebildiklerinden bahsedeceğiz.
1. Simetrik Anahtarlama:
Simetrik anahtarlamada genel olarak basit şifreleme algoritmaları kullanılmaktadır. Verinin şifrelenmesinde ve bu şifrenin açılmasında aynı anahtar kullanılmaktadır. Bu tip anahtarlamada, aynı anahtar hem gönderen kişide, hem de alan kişide bulunmalıdır.
Bu şekilde şifrelenmiş veri ağdan geçerken bir başkası tarafından dinlenmek istendiğinde, kişi anahtara sahip değilse anlaşılamaz.
2. Anahtar İkilisi Kullanarak Anahtarlama (Public/Private Anahtar İkilisi):
Bu yöntemde istendiğinde şifreleme ve deşifreleme için ayrı ayrı anahtarlar kullanılmaktadır. Bu anahtarlar ikili biçimde anılmakta olup, birbirlerinin şifreledikleri veriyi deşifreleyebilmektedirler.
veri <---> private key <---> sifrelenmis veri <---> public key <---> veri
Şifreleme deyince akla iki temel tehditin ortadan kaldırılması akla gelmektedir. Bunlardan bir tanesi ağ üzerinden gönderilen mesajın şifreli olarak gitmesi, bu şekilde mesajı sadece alıcı ve gönderenin görebilmesidir (şifreleme/deşifreleme). Diğeri ise 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ıdır (e-imza).
Public/private anahtar ikilisi kullanılarak bu iki tehdite çözüm getirilebilmektedir. Herhangibirine ait olan public anahtar herkese açıktır, bunun yanında bu public anahtarın private anhtarı sadece ait olduğu kişi tarafından bilinmektedir. Böylece bu kişiden giden bir veri kişi tarafından şifrelenebilir ve istenilen kişi tarafından gönderen kişinin public anahtarı ile açılabilmektedir.
Bu anahtar ikililerinin şifreleme veya e-imza olarak kullanımındaki aşamaları örneklerle açıklamak istersek;
a) Şifreleme/Deşifreleme (Encryption/Decryption):
Şifreleme, mesaj(veri) gönderen kişinin mesajın sadece alıcı tarafından okunmasını istediği durumlarda kullanılan bir yöntemdir. Bu yöntem ile mesajın iletişimi sırasında ağı dinleyen biri tarafından anlaşılamaz.
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 public anahtarını elde eder, daha sonra bu public anahtarı kullanarak göndereceği mesajı şifreler.
Feyza ---> Mesaj --- PubMustafa ---> [Mesaj]PubMustafa
Daha sonra şifrelenmiş olan mesajı Mustafa'ya gönderir. Mesajı alan Mustafa, mesajı kendi private anahtarını kullanarak şifreyi açar ve mesajı elde eder.
[ Mesaj ]PubMustafa --- PrMustafa ---> Mesaj
Mesaj, sadece Mustafa'nın private anahtarı ile deşifrelenebileceği için, Mustafa'dan başka birinin Mustafa'nın private anahtarını bilmeden mesajı alması olanaksızdır.
b) Elektronik İmza ve Doğrulama:
Elektronik imza, gelen bir mesajin(verinin) gerçekten gönderen kişiden geldiğinin doğrulunu ispatlama(authentication) mekanizmasıdır.
Feyza-Mustafa örneğine dönecek olursak, Feyza, Mustafa ile bir lisans anlasmaşı yüzünden sürekli e-posta trafiği yaşamaktadır. Maddi açıdan önemli bir getirisi olan bu anlaşma için, 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 şifrelemektedir.
Bu hikayede Feyza, Mustafa'ya mesaj göndermek için, mesajı hazırlar.
Feyza ---> Mesaj
Daha sonra Feyza, bu mesajı kendi private anahtarı ile şifreler.
Feyza ---> Mesaj --- PrFeyza ---> [ Mesaj ]PrFeyza
Feyza, şifrelediği mesajı ve kendi public anahtarını bir paket olarak hazırladıktan sonra Mustafa'ya gönderir.
Feyza ---> [[Mesaj ]PrFeyza + PubFeyza ] ---> Mustafa
Burada Feyza'nın kendi public 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 ve public anahtarı normalde de herkesin ulaşabileceği bir bilgidir.
Mesaji alan Mustafa, Feyza'nın public anahtarını kullanarak mesajı açar, ve mesajın Feyza tarafından gönderildiğinden emin olur.
[ Mesaj ]PrFeyza --- PubFeyza ---> Mesaj
c) Şifreli ve İmzalı Mesaj Gönderme:
Hem gizlilik hem de gönderen kişinin doğruluğunu kanıtlama mekanizmaları birlikte kullanılmasıyla, mesajın hem doğru insandan geldiği, hem değiştirilmediği, hem de sadece alıcı tarafından okunduğundan emin olunabilir. Bunun için public/private anahtar ikilileri, simetrik anahtarlama ve hash algoritmaları birlikte kullanılır.
Hikayemizde Feyza'nın, Mustafa'ya hem şifreli hem de imzalı bir mesaj göndermek istediğini düşünelim. 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 mesajin bir kontrol toplamını(checksum) hesaplatır.
Feyza ---> Mesaj --- hash alg. ---> Toplam = [ Mesaj ]Hash
Burada, hash algoritması mesajın bütünlüğünün korunduğundan emin olmak için kullanılmaktadır. Bu iş için şifreleme algoritmaları yerine hash'in kullanılmasının nedeni hem daha küçük boyutta olması, hem de daha hızlı çalışmasından kaynaklanmaktadır.
Kontrol toplamı oluşturulan mesajın imzalanması kısmında, oluşturulan toplam Feyza'nın private anahtarı ile şifrelenir.
Toplam --- PrFeyza ---> [Toplam]PrFeyza
Oluşturulan şifreli toplam, mesajin kendisi, Feyza'nın public anahtarı, kullanılan hash algoritmasının ismi bir paket oluşturur.
[Mesaj + [Toplam]PrFeyza +PubFeyza + hash alg]
Bu şekilde gönderilecek mesajın imzalanma işlemi tamamlanmış olur. Bu oluşturulan paketin içerisinden Mustafa, Feyza'nın public/private ikilisinden mesajı Feyza'nın gönderdiğini anlar. Mesajdaki public anahtarı kullanarak toplamı elde eder. Gönderilen çıplak mesajdan da ikinci bir toplam elde etmek için, ismi gönderilen hash algoritmasını çıplak mesaj üzerinde tekrar çalıştırır. Elde bulunan iki toplamı karşılaştırarak mesajın değişip değişmediği bilgisini öğrenir. Bu iki toplam birbiri ile aynı ise mesaj değiştirilmemiştir ve Feyza tarafından gönderilmiştir. İki toplam birbirinden farklı ise mesaj Feyza tarafından gönderilmemiştir veya mesaj yolda değiştirilmiştir, diye düşünür ve mesajı dikkate almaz.
Anahtarlama yöntemleri, gönderilen ve alınan verinin değişik şifreleme algoritmaları kullanılarak gönderici tarafından şifrelenmesi ve alıcı tarafından şifrelenmiş verinin, şifresinin açılması temeli üzerine kurulmuştur. Bu şekilde ağdan geçen mesajın ağ üzerindeki tehditlerden korunması sağlanmaktadır.
Bu yazıda, anahtarlama yöntemlerinden ve kullanıldığı zaman hangi tür tehditleri engelleyebildiklerinden bahsedeceğiz.
1. Simetrik Anahtarlama:
Simetrik anahtarlamada genel olarak basit şifreleme algoritmaları kullanılmaktadır. Verinin şifrelenmesinde ve bu şifrenin açılmasında aynı anahtar kullanılmaktadır. Bu tip anahtarlamada, aynı anahtar hem gönderen kişide, hem de alan kişide bulunmalıdır.
Bu şekilde şifrelenmiş veri ağdan geçerken bir başkası tarafından dinlenmek istendiğinde, kişi anahtara sahip değilse anlaşılamaz.
2. Anahtar İkilisi Kullanarak Anahtarlama (Public/Private Anahtar İkilisi):
Bu yöntemde istendiğinde şifreleme ve deşifreleme için ayrı ayrı anahtarlar kullanılmaktadır. Bu anahtarlar ikili biçimde anılmakta olup, birbirlerinin şifreledikleri veriyi deşifreleyebilmektedirler.
veri <---> private key <---> sifrelenmis veri <---> public key <---> veri
Şifreleme deyince akla iki temel tehditin ortadan kaldırılması akla gelmektedir. Bunlardan bir tanesi ağ üzerinden gönderilen mesajın şifreli olarak gitmesi, bu şekilde mesajı sadece alıcı ve gönderenin görebilmesidir (şifreleme/deşifreleme). Diğeri ise 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ıdır (e-imza).
Public/private anahtar ikilisi kullanılarak bu iki tehdite çözüm getirilebilmektedir. Herhangibirine ait olan public anahtar herkese açıktır, bunun yanında bu public anahtarın private anhtarı sadece ait olduğu kişi tarafından bilinmektedir. Böylece bu kişiden giden bir veri kişi tarafından şifrelenebilir ve istenilen kişi tarafından gönderen kişinin public anahtarı ile açılabilmektedir.
Bu anahtar ikililerinin şifreleme veya e-imza olarak kullanımındaki aşamaları örneklerle açıklamak istersek;
a) Şifreleme/Deşifreleme (Encryption/Decryption):
Şifreleme, mesaj(veri) gönderen kişinin mesajın sadece alıcı tarafından okunmasını istediği durumlarda kullanılan bir yöntemdir. Bu yöntem ile mesajın iletişimi sırasında ağı dinleyen biri tarafından anlaşılamaz.
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 public anahtarını elde eder, daha sonra bu public anahtarı kullanarak göndereceği mesajı şifreler.
Feyza ---> Mesaj --- PubMustafa ---> [Mesaj]PubMustafa
Daha sonra şifrelenmiş olan mesajı Mustafa'ya gönderir. Mesajı alan Mustafa, mesajı kendi private anahtarını kullanarak şifreyi açar ve mesajı elde eder.
[ Mesaj ]PubMustafa --- PrMustafa ---> Mesaj
Mesaj, sadece Mustafa'nın private anahtarı ile deşifrelenebileceği için, Mustafa'dan başka birinin Mustafa'nın private anahtarını bilmeden mesajı alması olanaksızdır.
b) Elektronik İmza ve Doğrulama:
Elektronik imza, gelen bir mesajin(verinin) gerçekten gönderen kişiden geldiğinin doğrulunu ispatlama(authentication) mekanizmasıdır.
Feyza-Mustafa örneğine dönecek olursak, Feyza, Mustafa ile bir lisans anlasmaşı yüzünden sürekli e-posta trafiği yaşamaktadır. Maddi açıdan önemli bir getirisi olan bu anlaşma için, 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 şifrelemektedir.
Bu hikayede Feyza, Mustafa'ya mesaj göndermek için, mesajı hazırlar.
Feyza ---> Mesaj
Daha sonra Feyza, bu mesajı kendi private anahtarı ile şifreler.
Feyza ---> Mesaj --- PrFeyza ---> [ Mesaj ]PrFeyza
Feyza, şifrelediği mesajı ve kendi public anahtarını bir paket olarak hazırladıktan sonra Mustafa'ya gönderir.
Feyza ---> [[Mesaj ]PrFeyza + PubFeyza ] ---> Mustafa
Burada Feyza'nın kendi public 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 ve public anahtarı normalde de herkesin ulaşabileceği bir bilgidir.
Mesaji alan Mustafa, Feyza'nın public anahtarını kullanarak mesajı açar, ve mesajın Feyza tarafından gönderildiğinden emin olur.
[ Mesaj ]PrFeyza --- PubFeyza ---> Mesaj
c) Şifreli ve İmzalı Mesaj Gönderme:
Hem gizlilik hem de gönderen kişinin doğruluğunu kanıtlama mekanizmaları birlikte kullanılmasıyla, mesajın hem doğru insandan geldiği, hem değiştirilmediği, hem de sadece alıcı tarafından okunduğundan emin olunabilir. Bunun için public/private anahtar ikilileri, simetrik anahtarlama ve hash algoritmaları birlikte kullanılır.
Hikayemizde Feyza'nın, Mustafa'ya hem şifreli hem de imzalı bir mesaj göndermek istediğini düşünelim. 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 mesajin bir kontrol toplamını(checksum) hesaplatır.
Feyza ---> Mesaj --- hash alg. ---> Toplam = [ Mesaj ]Hash
Burada, hash algoritması mesajın bütünlüğünün korunduğundan emin olmak için kullanılmaktadır. Bu iş için şifreleme algoritmaları yerine hash'in kullanılmasının nedeni hem daha küçük boyutta olması, hem de daha hızlı çalışmasından kaynaklanmaktadır.
Kontrol toplamı oluşturulan mesajın imzalanması kısmında, oluşturulan toplam Feyza'nın private anahtarı ile şifrelenir.
Toplam --- PrFeyza ---> [Toplam]PrFeyza
Oluşturulan şifreli toplam, mesajin kendisi, Feyza'nın public anahtarı, kullanılan hash algoritmasının ismi bir paket oluşturur.
[Mesaj + [Toplam]PrFeyza +PubFeyza + hash alg]
Bu şekilde gönderilecek mesajın imzalanma işlemi tamamlanmış olur. Bu oluşturulan paketin içerisinden Mustafa, Feyza'nın public/private ikilisinden mesajı Feyza'nın gönderdiğini anlar. Mesajdaki public anahtarı kullanarak toplamı elde eder. Gönderilen çıplak mesajdan da ikinci bir toplam elde etmek için, ismi gönderilen hash algoritmasını çıplak mesaj üzerinde tekrar çalıştırır. Elde bulunan iki toplamı karşılaştırarak mesajın değişip değişmediği bilgisini öğrenir. Bu iki toplam birbiri ile aynı ise mesaj değiştirilmemiştir ve Feyza tarafından gönderilmiştir. İki toplam birbirinden farklı ise mesaj Feyza tarafından gönderilmemiştir veya mesaj yolda değiştirilmiştir, diye düşünür ve mesajı dikkate almaz.