PKI Nedir? - 1
 
 Edit�r'den
 Linux �ekirde�i
 PKI Nedir?
 Windows G�venli�i - III
 Kullan�c� Hatalar�
 ODT� Antivir�s  ï¿½ï¿½z�mleri
 Web Taray�c�lar�
 Internet Tabanl� CBS ile  Planlama
 CISN Ar�iv
 Anket
 Geribildirim
 
     
 

Ý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.

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 public/private anahtar algoritmasý simetriðe göre çok daha yavaþ kalý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]PrFeyza +PubFeyza + 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]PrFeyza +PubFeyza + hash alg ]symK+ symK

Bu mesajý bu þekilde aðdan gönderdiðimiz durumda aðý dinleyen herhangi biri mesajý okuyabilecek pozisyondadýr. Bunu engellemek ve 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 public anahtarýný kullanmak gerekmektedir.

Burada Mustafa'nýn public 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 public anahtarý ile þifrelenmesi yeterli olacaktýr.

Son durumda aðdan geçerek Mustafa'ya ulaþacak olan paket aþaðýdaki hale gelmiþtir;

Feyza--->[[Mesaj+[Toplam]PrFeyza+PubFeyza+hash alg]symK + [symK]PubMustafa ]--->Mustafa

Bu mesajý alan herhangi biri Mustafa'nýn private anahtarýna sahip olmadýðý için simetrik anahtara ulaþamayacak, yani gönderilen mesajý okuyamayacaktýr.

Bu mesajý alan Mustafa önce kendi private anahtarý ile simetrik anahtarý elde edecek, bu simetrik anahtarý kullanarak mesajý açacak, mesajla gelen Feyza'nýn public 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.

Bu yöntemi kullanarak, mesajýn aðda deðiþtirilmesi, aðý dinleyen herhangi biri tarafýndan okunmasý, baþkasý adýna mesaj gönderme gibi tehditler unsurlarýna karþý önlem alýnmýþ olur.

Sertifika Nedir?

Sertifika, public anahtar sahibinin kimliðini doðrulayan bilgidir. Ehliyet, nüfus cüzdaný gibi sertifika da sahibinin kimliðini ispatlar.

Sertifikalar,
- Sertifika otoritesinin kimliðini
- Sahibinin kimliðini
- Sahibinin public anahtarýný
- Sertifikanýn kullanýmýnýn bitiþ zamanýný
- Sertifika sunucusunun, bu sertifikayý onaylayan imzasýný ve diðer bir takým bilgileri tutar.

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.

Yukarýda bahsettiðimiz, aðdan þifreli ve imzalý mesaj gönderme iþlemini public/private anahtar ikilileri ile yapýlabileceði gibi, kiþinin gerçek kimliðini ortaya koyabilecek olan sertifikalarý kullanarak da yapmak mümkündür.

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ýðý düünülenerek 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 mesajin 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 Feyza'nýn private anahtarý ile þifrelenir.

Toplam --- PrFeyza ---> [Toplam]PrFeyza

Oluþturulan þifreli toplam, mesajin kendisi, Feyza'nýn public anahtarý yerine Feyza'nýn sertifikasý, kullanýlan hash algoritmasýnýn ismi bir paket oluþturur.

[Mesaj + [Toplam]PrFeyza +CertFeyza + 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]PrFeyza +CertFeyza + 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]PrFeyza +CertFeyza + hash alg ]symK+ symK

Gönderilecek olan mesajýn sadece Mustafa tarafýndan okunabilmesi için mesajýn þifrelenmesi olayýnda olduðu gibi Mustafa'nýn public anahtarýný kullanmak gerekmektedir. Sertifika kullanýmýnda Mustafa'nýn public anahtarýný Mustafa'nýn sertifikasý içerisinde bulunmaktadýr. Aslýnda Mustafa'nýn sertifikasý kullanýlýr. Burada Mustafa'nýn public anahtarýnýn yanýnda, Mustafa'nýn sertifikasýnýn geçerlilik zamaný, bu sertifikanýn Mustafa'ya ait olup olmadýðý, Mustafa'nýn sertifikasýnýn deðiþtirilmediði ve Mustafa'nýn sertifikasýnýn güvenilir bir sertifika otoritesi tarafýndan onaylandýðýnýn bilgileri de bulunmaktadý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 ait olduðunu görür, daha sonra sertifikanýn geçerlilik zamaný içerisinde olup olmadýðýný kontrol eder. Daha sonra ve önemli olan kýsmý, sertifikayý onaylayan sertifika otoritesinin güvenilir sertifika otoriteleri listesinde olup olmadýðýný kontrol eder. Bu kýsýmda bir problem olmadýðý durumda Feyza, Mustafa'nýn sertifikasýnýn Mustafa ait oldugundan emin olur.

Son durumda aðdan geçerek Mustafa'ya ulaþacak olan paket, Mustafa'nýn sertifikasý ile birlikte aþaðýdaki hale gelmiþtir;

Feyza--->[[Mesaj+[Toplam]PrFeyza+CertFeyza+hash alg]symK + [symK]CertMustafa ]--->Mustafa

Bu mesajý alan herhangi biri Mustafa'nýn private anahtarýna sahip olmadýðý için simetrik anahtara ulaþamayacaktýr, yani mesajý okuyamayacaktýr.

Bu mesajý alan Mustafa önce kendi private 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, bu sertifikayý 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.

Public/private anahtar ikililerinin yerine sertifika kullanýmýný seçmek, bu anahtar ikilisini kullanan kiþinin kimliðinin doðruluðunun belirli kurumlar tarafýndan da onaylanmasý ve sertifikalarýn elektronik ortamda, nüfus cüzdaný gibi kullanýlabiliyor olmasýndan kaynaklanmaktadýr.

PKI (Public Key Infrastructure) Nedir?

Sertifikalarýn ve anahtar ikililerinin yönetimini saðlayan yazýlýmsal ve yordamsal bütünlüðe PKI denmektedir.

Yönetilen bir PKI'de aþaðýdaki iþlevler bulunmalýdýr:

1. Anahtar ve sertifika üretimi:

Anahtarlar nasýl üretilmelidir? Bu sertifikalar kullanýcýya nasýl yayýnlanmalýdýr? gibi sorulara cevap verebilecek nitelikte olmalýdýr.

Kullanýcýlarýn sertifika isteðinde bulanabileceði bir arayüz olmalýdýr. Bu arayüzden gelen istekleri alan ve istekler doðrultusunda, sertifika için anahtar ikilileri üretilip, üretilen sertifikalar kullanýcýlara yayýnlanabilmelidir.

2. Private anahtarlarýn korunmasý:

Private anahtarlarýn kötü düþünceli kimselerin eline geçmemesi için, PKI'nin private anahtarlarý koruyacak bir mekanizmasýnýn olmasý beklenmektedir.

3. Sertifikalarýn iptal edilebilmesi:

Verilen herhagibir sertifikanýn, verilen kiþinin private anahtarý çalýndýðý zaman, bir iþyerindeki personel ayrýldýðý zaman,... v.b. durumlarda iptal edilebilir olmasý gerekmektedir. PKI, iptal edilen bir sertifikanýn tüm kullanýcýlar tarafýndan da görülmesini saðlamalýdýr.

4. Anahtarlarýn yedeklenmesi ve yeniden elde edebilmesi:

Private anahtarlarýn, sertifika kullanýmýnda kiþiler için büyük önemi bulunmaktadýr. Eðer bir private anahtar kaybedilirse, kiþi kendine gönderilen þifreli mesajlarý açamaz. Bundan dolayý PKI'de private anahtarlarý yedekleyecek ve gerektiði zaman, ayný sertifika için yeni bir private anahtar üretebilecek durumda olmalýdýr.

5. Anahtar ve sertifika güncellemesi:

Sertifikalarýn belirli kullaným süreleri bulunmaktadýr. Son günü yaklaþan sertifikalarýn yenilenmesi gerekmektedir. PKI, zamaný bitmeye yaklaþan sertifikalarý yenileyebilmeli, yenilendiðine dair kullanýcýlara mesaj atabilmelidir. Bunun yanýsýra kullanýcýdan gelen bir istek üzerinede yenileme iþlemi yapabilmelidir.

6. Anahtar iþlemlerinin yönetimi:

Güncellenen sertifikalarýn geçmiþlerinin tutulmasý, gerektiðinde bütün iþlemlerin dökümünü alabilmek PKI açýsýndan önemlidir. PKI bu yönetimi de yapabilecek özellikte olmalýdýr.

7. Sertifika eriþimi:

Kiþiler birbirlerine þifreli mesaj göndermek istedikleri zaman, gönderecekleri kiþinin sertifikasýna sahip olmalýdýr. Bundan dolayý PKI, üretilen sertifikalarýn tüm kullanýcýlar tarafýndan elde edilebilmesine olanak saðlamalýdýr.

Yukarýdaki özelliklere sahip olmasý düþünülen bir yapý, titiz bir çalýþma ile üzerinde durulmasý gereken bir bütündür. Bu bütünün parçalarý gerek idari gerekse teknik olarak iyi incelenerek kurulmalýdýr.

Bu özelliklerin kiþilerin kimlik kontrolü haricindeki yapýlarý, yazýlýmlar ile gerçekleþtirebilmek mümkündür. Bu konuda geliþtirilen açýk ve kapalý kodlu bir çok yazýlým bulunmaktadýr. Bir sonraki yazýmýzda bu yazýlýmlarla ilgili detaylý bilgi bulunacaktýr.

Að üzerinden gönderilen ve alýnan verilerin/mesajlarýn tehdit unsurlarýndan arýndýrýlarak aktarýlmasý için kullanýlan anahtar ikilileri, hem verinin doðru iletilmesi hem de verinin gerçek göndericiden gerçek alýcýya iletilmesi açýsýndan önem taþýmaktadýr.

Feyza TAÞKAZAN

 
     
  - BAÞA DÖN -