Açık Anahtar Altyapısı (AAA) Sistemindeki Sertifikasyon Problemleri
Transkript
Açık Anahtar Altyapısı (AAA) Sistemindeki Sertifikasyon Problemleri
Açık Anahtar Altyapısı (AAA) Sistemindeki Sertifikasyon Problemleri ve Diğer Güvenlik Sorunları Dinçer Önel Gebze Yüksek Teknoloji Enstitüsü Mühendislik Fakültesi Gebze, Kocaeli [email protected] Özet Bu makalede İnternet üzerinden güvenli haberleşmeyi sağlayan ve son yıllarda uygulamalarını sıkça gördüğümüz açık anahtar altyapısının (AAA) kullanımıyla ortaya çıkmaya başlayan problemler tartışılmıştır. Üretici firmalar tarafından, ilk ortaya çıktığında tüm dertlere çözüm getiren bir sihirli değnek gibi tanıtılan açık anahtar altyapısı sistemine bu makaleyle eleştirel bir bakış getirilmeye çalışılmıştır. Teoride sorunsuz çalıştığı ve güvenliği garanti ettiği iddia edilen açık anahtar altyapıları günlük hayatta uygulamaya geçtikçe bir takım sorunları da beraberinde getirmiştir. Özellikle güven sorunu ve sertifikasyon problemi üzerinde durulmakla beraber diğer güvenlik sorunlarına da değinilmiştir. 1. Giriş Açık anahtar altyapısının temeli, 1976 yılında Stanford Üniversitesinden Diffie ve Hellman tarafından ortaya atılan yeni bir şifreleme mantığına dayanmaktadır [1]. Açık anahtar tabanlı şifreleme adını verdikleri bu yeni sistemde karşı tarafa gizli bir mesaj göndermek istediğimizde eskiden olduğu gibi aynı gizli anahtarla mesajı kapatıp açma yerine, mesajı şifrelerken açık anahtar karşı tarafta açarken de özel anahtar kullanılmaktadır. Böylece gizli mesajı sadece özel anahtara sahip olan kişi açıp okuyabilmektedir. Kriptografi tarihinde yeni bir çığır açan bu düşünce zaman içinde daha da geliştirilmiş gizlilik dışında, bütünlük, kimlik doğrulama ve inkar edememe gibi olmazsa olmaz güvenlik işlevlerini de açık anahtar altyapıları bünyesinde sağlar hale getirilmiştir. Açık anahtar altyapısı sisteminde her kullanıcıya sertifika otoritesi dediğimiz güvenilir merkezler tarafından, kullanıcıların kimlikleriyle ilişkilendirilmiş sertifikalar dağıtılmaktadır. Kullanıcın açık anahtarı, ismi, e-posta adresi gibi kimlik bilgilerini içeren bu sertifikalar, sertifika otoriteleri tarafından imzalanarak oluşturulurlar ve erişime açık bir depolama merkezinde tutulurlar. Bu sistemde herkese ait bir anahtar çifti bulunmak zorundadır. Birbirleriyle ilişkili bu anahtarlardan deşifreleme ve imza atma için kullanılan, ve sadece sahibi tarafından bilinene özel anahtar; şifreleme ve imza doğrulama için kullanılan ve herkes tarafından bilinebilen anahtara da açık anahtar denmektedir. 2 Burak ismindeki kullanıcının, Ayşe isimli kullanıcıya şifreli ve imzalı bir mesaj iletmek istediği durumu ele alalım. Her iki kullanıcı da bir adet özel anahtara ve bir adet açık anahtara sahiptir. Açık anahtarlar kullanıcılara ait diğer kimlik bilgileriyle beraber sertifikalar halinde, sertifika otoritelerinde erişime açık halde bulunmaktadır. Burak öncelikle Ayşe’nin sertifikasını sertifika otoritesinden ister. Ayşe’nin sertifikasının sonundaki sertifika otoritesine ait imza sayesinde Burak doğru kaynaktan bir sertifika aldığına emin olur. İletmek istediği mesajı Ayşe’nin açık anahtarını da kullanarak bir şifreleme algoritmasından geçiren Burak mesajı gizlemiş olur. Elde ettiği gizli mesajı sadece kendisinde bulunan özel anahtarla da imzaladıktan sonra Burak mesajı Ayşe’ye gönderir. Karşı taraftaki Ayşe ise mesaj kendine ulaştıktan sonra sertifika otoritesinden elde ettiği Burak’a ait açık anahtarın bulunduğu sertifika ile önce mesajın gerçekten Burak’tan gelip gelmediğine emin olur. İmza doğrulamasıyla mesajın kimden geldiğine emin olan Ayşe kendi özel anahtarıyla şifreli mesajı açar ve böylece güvenli haberleşme süreci tamamlanmış olur. İlk bakışta yukarıda anlatılan sistemin işleyişinde herhangi bir kusur görülmemekte, her şeyin son derece mantıklı ve güvenlik prensiplerine uygun geliştiği söylenebilmektedir. Teorik olarak bunu doğru kabul edebiliriz, fakat kullanımının yaygınlaşmasıyla açık anahtar altyapısının aslında hala bazı sorunları ortadan kaldırmadığı, bir takım önemli problemleri bünyesinde barındırdığı daha da bariz bir şekilde ortaya çıkmıştır [2]. Bu problemleri sırayla ele alalım. 2. Güven Sorunu Açık anahtar altyapısında sistemin en önemli öğesi olarak kabul edilen unsurlar sertifika otoriteleridir (SO). Açık anahtarlar herkese dağıtılabilir, ancak hangi anahtarın kime ait olduğundan emin olmak gerekmektedir. Bu konuda kişisel beyanlara güvenilemez. Bu sebeple sertifikalar kullanılmaktadır. Güvenilir olduğu kabul edilen sertifika otoriteleri kendi sayısal imzalarını kullanarak sertifika üretirler ve bunları sistemdeki kullanıcılara dağıtırlar. En basit anlatımı ile sertifika, bir açık anahtar ile sahibinin kimliği arasında bağıntının belgesidir. Diğer bir anlatımla sertifika, bir açık anahtarın kime ait olduğunu ispatlayan belge hükmündedir. Sertifika otoriteleri kendi sayısal imzalarını kullanarak bu sertifikaları üretirler. Sertifika otoritesinin imzasını doğrulayarak sertifika otoritesinden emin olan kişi aynı zamanda onun ürettiği sertifikalardaki açık anahtarların sahiplerinin kimliklerinden de emin olur. Güvenilir sertifika otoriteleri tarafından üretilen sertifikaların içerdiği bilgilerin doğru olduğu varsayılır. Açık anahtar altyapısında güven sorunu olarak tanımladığımız problemin temelinde bu varsayım yatmaktadır. Sertifika otoriteleri tanım olarak “güvenilir” diye tabir edilirler. Güvenilir olduğu kabul edilen sertifika otoritelerinin ürettiği sertifikaların içerdiği bilgilerin sadece doğru varsayılabilmesi bu noktada bir çelişki oluşturmaktadır. Güvenilir sıfatı, varsayımdan daha kuvvetli bir anlam içermelidir. Aslında buradaki sorun “güvenilir” kelimesinin tam kesinlik ifade etmeyen kullanımından kaynaklanmaktadır [3]. Kriptografi literatüründe sertifika otoriteleri, özel anahtarlarının idaresini kendi başlarına halledebilen unsurlar olarak 3 tanımlanmaktadır. Bu ifade, bir kişinin belirli bir sertifika otoritesinden alınmış olan ve başka bir kişiye ait sertifikaya kayıtsız şartsız güvenmesini gerektirmemektedir. Kullanıcılardan sertifika otoritelerine ve altlarında onların imzasını taşıyan sertifikalara güvenilmesi beklenmektedir [4]. Kullanıcılar bu güvenin nerden ve kimden geldiğini sorgulayamamaktadır. Zaten bu işi açık anahtar altyapısına uyumlu uygulamalar kullanıcı yerine otomatik olarak yapmaktadır. Sertifikaları doğrulamak için gerekli olan kök sertifika otoritelerine ait olan sertifikalar İnternet tarayıcı programları ve elektronik posta uygulamalarıyla beraber gelmektedir. Kullanıcılar bu uygulamalarla beraber gelen kök sertifika otoritelerine güvenmek zorunda bırakılmaktadır. Açık anahtar altyapısı kavramsal olarak karmaşık bir yapı arz ettiğinden dolayı çoğu kullanıcı sistemi anlayamamaktadır. Bu sebeple çoğu kullanıcı kavramdan habersiz bir şekilde sistemi kullanmakta ve farkında bile olmadan bu kök sertifika otoritelerine güvenmektedir. Sistemi az da olsa anlayan kullanıcılar ise isteyerek veya istemeyerek, “İnternet tarayıcı program üreticisi bunlara güveniyorsa ben de güvenirim” gibi veya benzeri bir mantıkla, kök sertifika otoritelerine güvenmektedir, daha doğru bir ifadeyle güvenmek zorunda bırakılmaktadır. Güvenmek zorundadırlar çünkü aksi takdirde sistemi kullanmaları imkansız hale gelmektedir. Uygulamalarla beraber gelen kök sertifika otoriteleri dışında bir sertifika otoritesi ile karşılaşıldığında ise, uygulama yazılımı kullanıcıya söz konusu sertifika otoritesine güvenilip güvenilmediğini soracaktır. Bu soruya cevap vermek çoğu kullanıcı için zordur. Çünkü söz konusu yeni sertifika otoritesi tanınmış biri değildir. Kullanıcıda, “güvenilir biri olsa zaten listede olurdu” şeklinde bir düşünce hakim olacaktır. Belki de geçerli olduğu halde uygulama yazılımı üreticisi ile anlaşması olmadığından dolayı kullanıcı o sertifika otoritesine güvenmeyecektir. Görüldüğü gibi kullanıcılar kime ne sebeple güvenmeleri gerektiği konusunda yeterli bilgi sahibi olamamakta ve sadece kendilerinden bekleneni yerine getirmektedirler. Giriş bölümünde verdiğimiz örnek modele tekrar geri dönüp güven sorununun nasıl ortaya çıktığına bakalım. Burak ve Ayşe isimli kullanıcılar açık anahtar altyapısını kullanarak aralarında güvenli bir haberleşme gerçekleştirmek istiyorlar. Burak ismindeki kullanıcı Ayşe isimli kullanıcıya şifreli ve imzalı bir elektronik posta iletmek istemektedir. Bunu gerçekleştirmek için Burak, Ayşe’nin sertifikasına ihtiyaç duymaktadır. Burak, öncelikle Ayşe’ye sertifikasını vermiş olan sertifika otoritesinden Ayşe’ye ait sertifikayı ister. Aldığı sertifikanın güvenli bir otoriteden gelip gelmediğini anlamak için, Burak’ın kendisine iletilen sertifikayı kontrol etmesi gerekmektedir. Ayşe’ye ait olduğu iddia edilen sertifikayı açan Burak, bu sertifikayı üretmiş olan sertifika üreticisinin kullandığı elektronik posta uygulamasında önceden tanımlanmış güvenilir kök sertifika otoritelerinden biri olup olmadığını görebilmektedir. Fakat yukarıda da belirttiğimiz gibi, bu güvenilir kabul edilen kök sertifika otoriteleri kullanılan uygulama yazılımları ile beraber gelmektedir. Burak hangi kök sertifika otoritesine güvenip güvenmeyeceğini kendisi seçmemiştir. Kaldı ki Burak’ın kendi başına sertifika otoritelerine bir güven onayı vermesi gibi bir olay da zaten söz konusu bile değildir. Kullandığı elektronik posta uygulaması Burak’tan önceden tanımlı bu kök sertifika otoritelerine güvenmesini beklemektedir. Sertifika üretip dağıtmak için gerekli yazılımları bulmak günümüzde hiç de zor değildir. Kişisel bir sertifika otoritesi kurup herkese ücretsiz sertifika dağıtmak da mümkündür. Ancak bu şekilde kurulan sertifika otoritelerinin var olan güven ağına girmeleri pek olası değildir. O yüzden bu sertifika otoriteleri tarafından üretilen 4 sertifikalar, kullanılan uygulama yazılımının verdiği uyarı mesajından ötürü kullanıcılar tarafından kuşkuyla karşılanacaktır. Geçerli bir sertifika otoritesi dahi olsa güvenilir kabul edilen kök sertifika otoriteleri arasında değilse uygulama yazılımı kullanıcıları bu sertifika otoritesine karşı uyaracaktır. Dolayısıyla Burak isimli kullanıcı uygulama yazılımının belirttiği kişilere güvenmek zorunda bırakılmaktadır. Burak kime ne sebeple güvenmeliyim sorularıyla sistemi sorgulamak istediğinde de sistemi kullanması imkansız hale gelmektedir. Burak isteyerek veya istemeyerek güvenilir kabul ettiği Ayşe’ye ait olan sertifika ile mesajını şifreleyip kendi sertifikasıyla da imzaladıktan sonra mesajı karşı tarafa gönderir. Mesajı alan Ayşe eğer mesaj gerçekten de kendisine ait olan doğru sertifika ile şifrelenmişse mesajın şifresini başarıyla çözebilecek ve mesajın açık halini okuyabilecektir. Bundan sonra Ayşe’nin mesajın gerçekten Burak’tan gelip gelmediğine emin olması, yani Burak’ın imzasını doğrulaması gerekmektedir. Bunun için Ayşe, Burak’a sertifikasını vermiş olan sertifika otoritesinden Burak’a ait olan sertifikayı ister. Kendisine gönderilen sertifika ile imzayı doğruladığı takdirde Ayşe, mesajın Burak olduğu iddia edilen kişi tarafından gönderildiğine emin olur. İmza doğrulanamazsa bu durum, mesajın Ayşe’nin kullandığı elektronik posta yazılımı tarafından güvenilir kabul edilmeyen bir sertifika otoritesinden alınmış bir sertifika ile imzalandığı anlamına gelmektedir. Yukarıda Burak için bahsettiğimiz kime ne sebeple güvenmeliyim sorularıyla ilgili durumlar Ayşe için de geçerlidir. Ayşe de sadece kendisinden güvenmesi beklenen kişilere güvenmek durumunda bırakılmaktadır. Ayşe’nin kullandığı uygulama yazılımı hangi sertifika otoritelerine güveniyorsa Ayşe’de onlara güvenmek zorundadır. Sonuç olarak örnek modelle de gördüğümüz gibi, açık anahtar altyapılarını kullanan sistemlerde “güven” ve “güvenilirlik” problematik bir konu olarak karşımıza çıkmaktadır. Kullanıcılar bir varsayımla sistemdeki diğer kullanıcılardan ve unsurlardan emin olabilmekte, kendilerinden beklenenin ötesinde bir güven sorgulamasına girdiklerinde ise sistemi kullanamaz duruma düşmektedirler. 3. Sertifikasyon Problemi Güven sorunu bölümünde de anlatıldığı gibi açık anahtar altyapısı tabanlı sistemlerde, sertifika otoriteleri denilen güvenilir merkezler tarafından sistemdeki kullanıcılara kendilerinin kimlik bilgilerini içeren sertifikalar dağıtılmaktadır. Sertifika edinme isteğiyle sertifika otoritesine başvuran bir kullanıcının kimlik bilgilerinin ve diğer tanımlayıcı bilgilerinin doğrulanması, diğer bir deyişle gerçekten iddia ettiği kişi olduğunun onaylanması işlemine sertifikasyon denmektedir. Bu işlem sertifika otoriteleri tarafından yürütülmekte ve yeni kullanıcıları sisteme dahil etme esnasında gerçekleştirilmektedir. Sertifika üretilirken sertifikanın sahibi olacak kişinin kimliği sertifika otoritesi tarafından doğrulanmalıdır. Bunun için ise kullanışlı olmayan, örneğin kişisel başvuru veya kimlik fotokopisi fakslamayı gerektiren, çevrim dışı yöntemlerin devreye girmesi gerekmektedir. Bu tür yöntemler sertifika sahibi olmayı zorlaştırmaktadır. Diğer taraftan, çevrim içi kayıt etme ve kimlik doğrulama yöntemlerini kullanan ve class-1 sertifika olarak sınıflandırılan sertifika tipleri de bulunmaktadır. Ancak bu tür sertifikalarda kullanılan kimlik doğrulama yöntemlerinin güvenlik açısından zayıf 5 tarafları bulunmaktadır. Bu sebeple de çevrim içi yöntemler değişik ataklara karşı korumasız kalmaktadırlar. Sertifikasyon problemi olarak adlandırdığımız sorun, en basit anlatımı ile, sertifikadaki açık anahtar ile sertifika sahibine ait tanımlayıcı bilgiler arasındaki bağıntının sağlamlığını ve doğruluğunu garanti edebilmenin zorluğundan kaynaklanmaktadır [5]. Sertifikalar genelde bir açık anahtar ile sahibinin ismini ilişkilendirirler, fakat bu ilişkilendirmenin ne derece gerçeği yansıttığının kesin olarak bilinebilmesi zorluklar içermektedir [6]. Problemi daha da netleştirmek için Burak Demir isimli kullanıcıdan imzalı bir elektronik posta aldığımız durumu inceleyelim. Bizim tanıdığımız sadece bir tane Burak Demir olabilir, peki sertifika otoritesi kaç tane Burak Demir isminde kullanıcıyı biliyor? İmzayı doğrulamak için sertifika otoritesinden Burak Demir’in sertifikasını istediğimizde, bize verilen sertifikanın tanıdığımız kişiye mi yoksa aynı isimde başka bir kişiye mi ait olup olmadığını nasıl anlayacağız? Mesajla beraber açık anahtarı da şahsen tanıdığımız Burak Demir’in elinden almış olsaydık doğru kişi olduğundan emin olabilirdik. Fakat mesajı elektronik posta yoluyla aldığımızdan sertifika otoritesinin bize verdiği sertifikaya, dolayısıyla açık anahtarın Burak Demir’e ait olduğuna inanmak zorundayız. Sertifikadaki açık anahtar ile sahibinin ismi arasındaki bağıntının, sertifika sahibine ait daha çok tanımlayıcı bilgiyle genişletilmesi gerekmektedir. Bu sayede aynı isimdeki birçok kullanıcı arasından bizim tanıdığımız kişiyi ayırabilmemiz kolaylaşacaktır. Bu seferde tanıdığımız kişinin tanımlayıcı bilgileri hakkında ne kadar detaylı bilgi sahibi olduğumuz sorunu karşımıza çıkmaktadır. Bizim bilmediğimiz küçük bir fark dışında diğer bilgileri tanıdığımız kişiyle aynı olan başka bir Burak Demir’den bu elektronik postayı almış olamaz mıyız? [3]. Bu tip kuşkular, açık anahtar altyapısındaki sertifikasyon olayının aslında göründüğünden daha da zor bir işlem olduğunu anlamamıza yardımcı olmaktadır. Açık anahtar altyapısı sisteminde, açık anahtarla mesajın şifrelenmesi ve sadece özel anahtarla şifreli mesajın açılabilmesi sayesinde gizliliğin büyük bir başarı ile sağlandığı konusunda kimsenin şüphesi bulunmamaktadır [3]. Mesajını alıcının açık anahtarıyla şifreleyerek gönderen taraf, mesajının sadece şifrelemede kullandığı açık anahtarın çifti olan özel anahtarla açılabileceğinden emin olabilmektedir. Mesaj iletim esnasında kimin eline geçerse geçsin, özel anahtar olmadan gizli mesajın okuması mümkün değildir. Fakat güvenlik sadece gizliliğin başarılı bir şekilde sağlanmasıyla gerçekleşmez, bunun yanında başka prensiplerin de sağlanmış olması gerekmektedir ki, sertifikasyonla alakalı olarak, kimlik doğrulama bunların en önemlilerinden biridir. Bu mesaj gerçekte kimden gelmiştir? Anahtar gerçekten gönderen kişiye mi aittir? Gönderilen anahtar hala geçerli bir anahtar mıdır? Bu tarz soruların artmasıyla zaman içinde açık anahtar altyapısının, doğru anahtarın edinilmesi, tanınması, dağıtımı ve onaylanması problemlerine yeterli çözümler getirmekte zorlandığı ortaya çıkmıştır. Kimlik doğrulaması düzgün olmayan bir haberleşmenin gizli olabileceğini söyleyebiliriz, ama güvenli olduğunu iddia etmek mümkün değildir. Yukarıda da belirttiğimiz gibi sertifikasyondaki temel amaç açık anahtar ile sahibi arasındaki bağın yüzde yüz kesinlik taşıyan bir gerçeklik ile oluşturulmasıdır. Şurası açıktır ki, herhangi bir kişiyle ilişkilendirilmemiş bir anahtar bit dizisinden başka bir şey değildir. Bana ait olabileceği gibi bir başkasına da ait olabilir. Açık anahtarla 6 bağıntı kurulurken kullanılan isimler veya diğer tanımlayıcı bilgiler de (elektronik posta adresi, çalıştığı şirket ismi gibi) çoğu zaman yeterli olmamaktadır [7]. Bu noktada da devreye noter gibi legal birimlerin girmesi gerekmektedir. Bu durumda sertifika sahibi olmak isteyen kişinin kimliğini ve kendisiyle ilgili tüm tanımlayıcı bilgileri böyle bir legal birim huzurunda onaylatmasını zorunlu hale gelmektedir. Bu türdeki sertifikalar ise ücret karşılığı verilmektedir. Öte yandan deneme amaçlı ücretsiz class-1 sertifikalar da bulunmaktadır; fakat bunlar genelde geçici süreyle verilmekte olup süre bitiminde aynı anahtarın kullanımına devam etmek için ücretli sisteme geçmek gerekmektedir. Kaldı ki class-1 sertifikalarda kullanılan kimlik doğrulama yöntemleri yukarıda da belirtildiği üzere ataklara açık yöntemlerdir. Legal bir birim onayı gerektiren daha yüksek derecede güvenlik ve kimlik doğrulama prosedürlerinin kullanıldığı durumlarda (class-2, class-3 sertifikalar için) ise yıllık ücretler ödemek şarttır. Az sayıdaki kullanıcıyı yüksek güvenlikli sertifika (class-2, class-3 gibi) sahibi yapmak kolay olabilir, fakat bir şirketteki tüm kullanıcılara bu tip sertifikalardan dağıtmak maliyeti çok fazla arttıracağı gibi herkesin teker teker legal bir birim tarafından onaylanmasını da gerektirdiğinden pratik olmayacaktır. W. Diffie ve M. E. Hellman açık anahtar kriptografiyi ilk kez bilim dünyasına duyurduklarında açık anahtarlara kolayca erişime imkan veren ve bildiğimiz telefon rehberlerinin benzer bir biçimi olan bir sistem öne sürmüşlerdi. Bu sistemde, telefon rehberlerindeki isim, adres, telefon numarası bağıntısı yerine isim, adres, açık anahtar bir arada sunuluyordu. Diyelim Burak Demir’in açık anahtarını bulmamız gerektiğinde, rehberden Burak Demir ismini bulup adresinin doğruluğunu kontrol ettikten sonra karşılık gelen açık anahtarı almamız yeterliydi. Küçük ölçekli bir kurum veya işletmede bu sistem sorunsuz çalışabilir. Fakat altyapının çok daha büyük olduğu alanlarda bu tip bir sistemin sağlıklı çalışabilmesi kat kat zor olacaktır. Hatta küresel İnternet dünyasını ele aldığımızda, tüm İnternet kullanıcılarını içeren bir rehberde aradığımız kişiyi bulmamız ve doğru kişi olduğundan emin olmanın imkansız olacağını hayal etmek hiç de zor olmasa gerek [3]. Aşağıdaki resimlerde açık anahtar altyapısındaki sertifikasyon esnasında yapılan kimlik doğrulama işleminin değişik durumlarda ne gibi problemler içerdiği açıklanmaya çalışılmıştır [3]. Örnek 1. Ceren Ceren Ayşe Bu örnekteki durumda herhangi bir problem yoktur. Ayşe Ceren’i yüz yüze görmüştür ve kimliğini doğrulamıştır. Ceren’in açık anahtarlarının kendisine ait olduğu Ayşe tarafından kesin olarak bilinmektedir. 7 Örnek 2. Ayşe Burak Bu örnekte Burak Kc anahtarının kime ait olduğunu bilmek istemektedir. Fakat Burak Örnek 1’de olduğu gibi yüz yüze Ceren’in kimliğini doğrulayamamaktadır. Kc anahtarının Ceren’e ait olup olmadığını bulmak için Burak, Ayşe’nin Ceren hakkındaki bilgisinden yararlanır. Fakat her ikisi de tanıdıkları Ceren’in aynı kişi olup olmadığını bilememektedirler. Örnek 3. Ceren Ceren Burak Ayşe Bu örnekte Burak ve Ayşe isimleri karşılaştırma yoluyla tanıdıkları Ceren’lerin aynı kişiler olup olmadığını anlamaya çalışmaktadır. Buradaki problem tanıdıkları kişilerin aynı isme sahip olmalarına rağmen farklı kişiler olabilmelerinden kaynaklanmaktadır. 8 Örnek 4. Onay İmza Ayşe Burak Bu örnekle Ayşe ve Burak güvenli haberleşmek istediklerinde ortaya çıkabilecek riskler gösterilmek istenmiştir. Resimdeki harf belirteçlerini takip ederek: A) Ayşe’nin bilgisayarına bir saldırı olabilir. B) Bir saldırgan Ayşe’nin imzasıyla gönderilmek üzere Ayşe’ye bir doküman gösterip, farklı bir dokümanı imzalayıp gönderebilir. C) Ayşe’nin anahtarları bilgisayarından çalınabilir. D) Mesajların iletildiği kanal üzerinde bir atak gerçekleşebilir. E) Bir saldırgan Burak’ın bilgisayarındaki Ayşe’ye ait anahtar yerine kendi anahtarını koyup Burak’ı yanıltabilir. F) Bir saldırgan Burak’a Ayşe’nin imzasının onaylanmadığı yalanını söyleyerek Burak’ı yanıltabilir. 4. Özel Anahtar Güvenliği Açık anahtar altyapısı tabanlı sistemlerin taşıdığı en büyük risklerden birisi de kullanıcılara ait özel anahtarların korunmasıyla ilgili olandır. Giriş bölümünde de belirtildiği gibi özel anahtarlar; şifreli mesajları açmada (deşifreleme) gerekli olan ve iletilecek mesaja imza atma için kullanılan anahtarlardır. Özel anahtarların sadece sahibi tarafından bilinmesi gerekmektedir. Bana ait olan özel anahtarlarımın bir başkasının elinde olması o kişiye, bana gelmiş olan gizli mesajları okuyabilme ve benim yerime imzalı mesaj gönderebilme imkanı vermektedir [8]. Özel anahtarlar yüksek derecede koruma gerektiren değerli unsurlardır. Peki bunları nasıl korumamız gerekmektedir? Genelde çoğu kişi veya kurum fiziksel erişim kontrolü yapılan, elektromanyetik kaçaklara karşı korumalı veya diğer koruma yöntemleri ile korunmuş, yeterli seviyede güvenli sayılabilecek bir bilgisayar 9 sistemine sahip değildir. Özel anahtarlar çoğunlukla sıradan kişisel bilgisayarlarda saklanmaktadır. Bu bilgisayarlar ise virüs yazılımlarının veya diğer kötü niyetli programların saldırılarına maruz kalabilmektedir. Özel anahtarlarımızın kişisel bilgisayarımızda güvenli bir şekilde saklandığını kabul etsek bile, bilgisayarımızı kapısı kilitli ve kamera gözetimli bir odada tutmadıkça, onları sadece kendimizin kullanabildiğinden nasıl emin olabiliriz? Eğer özel anahtarlarımızı bir parola ile koruyorsak, bu parolayı tahmin etmenin zor olmadığından emin olabiliyor muyuz? Eğer özel anahtarlarımızı bir akıllı kartta saklıyorsak, bu akıllı kartın ataklara karşı direncinin yeterli düzeyde olup olmadığını bilebiliyor muyuz? [3]. Bu türden sorular açık anahtar altyapısı kullanıcılarında kuşkulara yol açmakta ve sisteme güvenmelerini zorlaştıran faktörler olarak karşılarına çıkmaktadır. Özel anahtarın sadece sahibi tarafından kullanılabilmesi, dört ana güvenlik prensibinden “inkar edememe” olarak bilinen ilkenin hayata geçirilmesini sağlamaktadır. İmzalanmış olarak gönderilen bir mesajın altındaki imzanın sahibi bu mesajı gönderdiğini legal bağlamda inkar edemez. Yukarıda da ifade ettiğimiz gibi imzalama işlemi sadece sahibi tarafından bilinen özel anahtarla yapılabilmektedir. Güvenilir bir sertifika otoritesi tarafından onaylanan bir imzalama anahtarı (özel anahtar) ile yapılan işlemlerin tek sorumlusu anahtar sahibidir. Bu işlemler bir başkası veya bir virüs yazılımı tarafından yapılmış bile olsa sorumlu olarak anahtar sahibi bilinir. Dolayısıyla, imzalı bir mesajın, imza yada özel anahtar sahibi kişi tarafından gönderildiği kabul edilir. Bir başkasının bizim açık bilgilerimizden yola çıkarak bu özel anahtarı üretmesi ise matematiksel açıdan imkansız kabul edilmektedir. Bu sebeple özel anahtarlar çok iyi korunmalı, bir başkasının veya zararlı bir yazılımın erişimine kesinlikle engel olunmalıdır. Aksi takdirde haberimiz bile olmadığı halde bizi çok zor bir duruma düşürecek bir metnin altında kendi imzamızla karşılaşabiliriz. 5. Kullanıcı Hataları Açık anahtar altyapısının sunduğu güvenlik hizmetlerinin önündeki en büyük engellerden biri de kullanıcılardan kaynaklanan hatalardır. Açık anahtar teknolojilerinin kavramsal olarak zor anlaşılması kullanıcılar tarafından kritik güvenlik hataları yapılmasına yol açabilmektedir [9]. Güvenliği pek çok halkanın bir araya gelmesiyle oluşan bir zincire benzetebiliriz. Bu zincirin sağlamlığı en zayıf halkanın sağlamlığına eşittir. Açık anahtar tabanlı bir sistemin güvenliği de birden çok unsurun sağlamlığı üzerine inşa edilmektedir [3]. Bu unsurların her biri kriptografik değildir. Algoritmalar, protokoller, otoriteler, şifreleme anahtarları gibi unsurların dışında insanlar da bu sistemin bir parçasını teşkil etmektedir. Açık anahtar altyapıları insandan bağımsız olarak düşünülemez. Çünkü bu altyapıları belli amaçlar için kullananlar insanlardır. Yukarıda da belirtildiği gibi açık anahtar altyapıları kavramsal açıdan karmaşık bir yapı arz ettiklerinden dolayı olayların işleyişini anlamak çoğu kullanıcı için zor olmaktadır. Zaten çoğu kullanıcı sistemi anlayamadığı için altyapıyı bir çok temel kavramdan habersiz şekilde bilmeden kullanmaktadır. Bu sebeple kullanıcı olarak sistemi kullanırken dikkat etmesi gereken kurallara uymamakta ve kendisine ait sorumlulukların bilincinde olamamaktadır. Örneğin çoğu kullanıcının, oldukça kritik öneme sahip özel anahtarının nerede ve nasıl saklandığı konusunda bilgisi yoktur. Özel anahtarın bir başkasının eline geçmesi durumunda yaşanabilecek kötü durumlardan bir önceki bölümde bahsetmiştik. Bir diğer örnek ise çoğu kullanıcının kendisine ulaşan diğer kişi veya kurumlara ait sertifikaların geçerliliğini nasıl kontrol 10 edileceğini bilmemesidir. Bu durumda kullanıcıların geçersiz sertifikalar ile yanıltılması söz konusu olabilmektedir. İnternet üzerinden tarayıcı programı kullanarak bankacılık işlemleri yapmak isteyen bilinçsiz bir kullanıcıyı bu yolla bankaya ait olmayan bir siteye yönlendirmek ve şifre bilgisini çalmak hiç de zor değildir. Bu gibi örnekleri çoğaltmak mümkün. Sonuç olarak şunu söyleyebiliriz ki açık anahtar tabanlı sistemlerin anlaşılması kullanıcıların kapasitelerini aşmaktadır. Bu da sistemin sağlıklı kullanımını olumsuz yönde etkilemektedir. 6. Uygulama Kaynaklı Sorunlar Açık anahtar altyapısı sihirli bir değnek değildir. Sadece bir altyapıdır. Bu altyapının sağlıklı bir şekilde kullanımına imkan veren uygulamalar olmak zorundadır. Bunun için kurumların bu konuda ciddi yatırımlara girmesi gerekmektedir. Ayrıca geliştirilen uygulamalar da açık anahtar altyapısının etkin ve kolay kullanımına imkan verebilmelilerdir [10]. Öte yandan varolan uygulamaların da bu altyapıya uyumlu hale getirilmeleri zorunludur. En fazla sorun da bu noktada yaşanmaktadır. Zaten hatırı sayılır bir yatırım yaparak açık anahtar altyapısı kuran kuruluşlar, bir de uygulamalarını değiştirmek zorunda kalmakta ve bu konuda yatırıma gitmek istememektedirler. Uygulama ile ilgili başka bir sorun ise, sertifika kullanımını gerektiren e-ticaret gibi kişisel yanı da olan uygulamalarda, son kullanıcının bazı yazılımlar kurmak zorunda bırakılmasıdır. Kullanıcılar genellikle bu tür yazılımlara kuşkuyla yaklaşmaktadırlar. Gerek kurulumda karşılaşılabilecek bazı zorluklar, gerek zaman ve bant genişliği eksikliği, gerekse de virüs korkusu yazılım kurmayı gerektiren uygulamaların yaygınlaşması önündeki önemli engellerden birkaçıdır. 7. Sonuç Yaklaşık olarak 25 senelik bir mazisi olan açık anahtar tabanlı şifreleme sistemleri ancak son 10 yılda son kullanıcılara erişen uygulamaların parçası olmuştur. Bu 10 yıl içinde de açık anahtar tabanlı şifreleme sistemlerinin hız ve açık anahtar dağıtım sorunları sistemlerin hızlı gelişmesinin önünde engel teşkil etmiştir. Bununla beraber teorik olarak sorunsuz çalıştığı ve güvenliği garanti ettiği öne sürülen açık anahtar altyapıları günlük hayatta insanlar tarafından kullanılmaya başlandıkça bir takım sorunları da beraberinde getirmiştir. Bu çalışmada özellikle güven sorunu ve sertifikasyon problemi üzerinde durulmuştur. Kime ne sebeple güvenmeliyim sorularına verilen cevaplardaki yetersizlikler gözler önüne konulmaya çalışılmış, ayrıca açık anahtar ile sahibi arasındaki ilişkilendirmenin ne derece gerçeği yansıttığı sorgulanmıştır. Bunun yanında güvenlikle ilgili olarak özel anahtarlar, kullanıcıların sistem etkisi ve kullanılan uygulamalarla ortaya çıkan sorunlar da vurgulanmıştır. Sonuç olarak açık anahtar altyapısı dediğimiz sistemin iyileştirmeye açık yönlerinin hala mevcut olduğu gösterilmiş ve bu sistemin bütün sorunları ortadan kaldıran sihirli bir değnek gibi görülmemesi gerektiği mesajı çıkarılmıştır. Açık anahtar altyapısının çok iyi anlaşılması gerektiği; onun verebileceği ve veremeyeceği şeylerin bilincinde olmanın, ondan kazanılacak faydayı önemli ölçüde arttıracağı gerçeğinin göz ardı edilmemesi gerektiği belirtilmiştir. 11 Kaynaklar 1. Diffie W., ve M. E. Hellman, “New directions in cryptography,” IEEE Transactions on Information Theory, vol. 22, pp. 644-654, Kasım 1976. 2. Charrot, T., “What's Wrong With Public Key Cryptography?”, Elsevier Computer Fraud & Security Journal, Issue.7, 2001, pp.12-15 3. Ellison C., ve B. Schneier, “Ten Risks of PKI: What You're Not Being Told About Public Key Infrastructure,” Computer Security Journal, vol. 16, no. 1, pp. 1-7, 2000. 4. Chadwick, D. W., Basden, A., “Evaluating Trust in a Public Key Certification Authority”, Computers&Security Journal, Vol.20, No.7, pp.592-611, 2001 5. Gerck, E., “Why Is Certification Harder Than It Looks?”, http://www.mcg.org.br/whycert.htm 6. Perlman, R., “An Overview of PKI Trust Models”, IEEE Network Journal, November/December 1999, pp.38-43 7. Gerck, E., “Overview of Certification Systems: X.509, PKIX, PGP&SKIP”, http://www.mcg.org.br/cert.htm 8. Naor, M., Nissim, K., “Certificate Revocation and Certificate Update”, IEEE Journal on Selected Areas in Communications, Vol. 18, NO.4, April 2000 9. Wright, M. A., “An Overview of PKI”, Elsevier Network Security Journal, September 1999, pp.14-17 10. Breed, C., “PKI: The Myth, The Magic and The Reality”, Information Security, 2 (6) ,1999, pp.20-27 12