Bilişim ve bağlantı teknolojileri geliştikçe, günlük yaşamımızı etkileyen
birçok işlemi sanal ortamlarda yapar hale geldik. İlk üniversite yıllarımda
para çekmek için banka şubesine giderdim. Gişe memuru, soyadlara göre
sıralanmış dosyaların arasından dosyamı bulur, yaptığım işlemi dosyaya ve hesap
cüzdanına yazar ve bir nüshayı bana verirdi. Şimdi bırakın banka şubesine
gitmeyi, oturduğumuz yerden kıpırdamadan neredeyse tüm bankacılık işlemlerini
yapabiliyoruz. Bunca işlemi yaparken, sisteme kendimizi tanıtmamızın önemini
hepimiz biliyoruz. Peki ya sistemin kendini bize tanıtma yöntemini hiç
düşündünüz mü? İnternet üzerinden eriştiğiniz banka web sitesinin, gerçekte
banka ile ilgisi olmayan kimselerin şifrenizi çalmak üzere kurduğu bir düzen
olmadığından nasıl emin oluyorsunuz?
Kullanıcıların ve sistemlerin birbirine kendilerini tanıtma yöntemine
kimlik denetimi (İngilizce authentication) denir. Kullanıcı kimlik denetiminin en yaygın
bilinen yöntemi, kullanıcı adı ve parola çiftidir. Sistemlerin kendini tanıtma yöntemi ise sunucu adı ve alan adı yöntemidir. Basitçe, web tarayıcınızda ulaşmak istediğiniz adresi yazdığınızda, ulaşmak istediğiniz sistemi bildirmiş olursunuz. Oturum açma sayfası karşınıza geldiğinde adres doğru görünüyorsa kullanıcı olarak sistemin kimlik denetimini tamamlamış olursunuz. Kullanıcı adı ve parolanızı girip oturum açtığınızda ise sistem sizin kimlik denetiminizi yapmış olur. Buraya kadar normal gibi görünen işlemde iki temel sorun var:
- Kullanıcı adı ve parolanız internet ortamında açık olarak seyahat etti. Sizinle, erişmeye çalıştığınız sistem arasında dinleme yapan biri, kullanıcı adı ve parolanızı açık olarak görebilir.
- Bilgisayar korsanları sizi aldatarak yanlış sunucuya erişmenizi sağlamış olabilir. Hatta bunu yaparken kullanıcı adı ve şifrenizi çaldıktan sonra erişmeye çalıştığınız gerçek sunucuya sizi yönlendirerek bunu farketmenizi engellemiş bile olabilir.
1973 yılında İngiliz matematikçi Malcolm J. Williamson ve ekibi tarafından geliştirilen şifreleme yöntemi uzun bir süre boyunca gizli tutuldu. 1976 yılında ise Amerikan matematikçiler Whitfield Diffie ve Martin E. Hellman tarafından yeniden ve bağımsız olarak geliştirilen aynı yöntem tüm dünyaya açık olarak yayımlandı. Matematiksel detaylara girmek istemiyorum, ama basitçe şöyle açıklayayım: Belirli bir hedefe göndermek için şifrelediğiniz bilgiler, yalnızca hedefteki sistem tarafından deşifre edilebiliyor. Bilgilerin seyahati boyunca geçtiği yerlerden dinleme yapanlar içerik hakkında hiçbir fikre sahip olamıyor.
Çok büyük asal sayılarla hesaplama gerektiren bu şifreleme yöntemini kullanan iletişim şekline bilişim dünyasında SSL (Secure Sockets Layer) yöntemi adı verilir. Internet üzerinden eriştiğiniz web sayfalarının adresi "https" ile başlıyorsa SSL yöntemi ile şifreli iletişim yapıyorsunuz demektir. Bu yöntemde en büyük yardımcılarımız, web tarayıcılarımızdır.
İnternette güvenilir bir siteye erişimde karmaşık matematiksel hesaplamaları
bizim yerimize yapar ve eriştiğimiz sunucunun (web sitesinin) güvenilir olup
olmadığını bize bildirirler. SSL yönteminde gerekli olan asal sayılar sertifikalar içinde saklanır. Bir web tarayıcı, sunucunun güvenilir olup olmadığına
aşağıdaki ölçütlere göre karar verir:
- Sertifika güvenilir bir sağlayıcı tarafından onaylanmış mı? SSL sertifikasının bir pasaport olduğunu düşündüğünüzde, dünyada tanınan bir devlet tarafından verilmesi durumu ile eşdeğerdir.
- Sertifika erişmeye çalıştığımız sunucu adını içeriyor mu? Yine pasaport örneğinden hareket ederek, pasaport içinde kendi adımız doğru olarak yer alıyor ise güvenilir demektir.
- Sunucu sertifikası tarihi geçerli mi? Aynı örnekle, pasaport geçerli bir tarihe sahip ise güvenilir demektir.
Eğer yukarıdaki sorulardan en az birinin yanıtı hayır ise güvenlik uyarısı alırsınız. Gördüğünüz gibi yukarıda anlattığım iki güvenlik sorunu da SSL ile çözülüyor. Fakat ne yazık ki kötü niyetli insanlar her zaman var ve sürekli olarak güvenlik açıklarından yararlanmaya çalışıyorlar.
Bundan birkaç yıl önce EGO, güvenli web sunucusu için TürkTrust kurumundan SSL sertifikası aldı. TürkTrust, dünyada kabul görmüş güvenilir bir sertifika sağlayıcıdır. Fakat EGO'ya yanlışlıkla kendi mühürleri sayılabilecek sertifikayı da gönderdiler. Yani artık EGO da istediği her sunucu için sertifika onayı verebilecekti. Aynı yanlışlık KKTC Merkez Bankası ile de yaşandı ve banka yanlışlığı farkedip TürkTrust'ın özel sertifikasını iade etti. EGO'da neler oldu dersiniz?
EGO'ya yanlışlıkla gelen TürkTrust sertifikası ile Google için sertifikalar üretilip onaylandı. Üretilen sertifikalar ise EGO'nun iç ağında kurulan bir sunucuya yüklenerek çalışanların bu sunucudan Google hizmetlerine erişimi sağlandı. EGO çalışanları gerçekte Google sunucusuna eriştiğini sanıyordu çünkü web tarayıcıları Google için üretilen sertifikanın TürkTrust tarafından onaylandığını algılayıp güvenlik uyarısı vermiyordu. Böylece şifreli iletişim yönteminde araya bir sunucu kurulmuş ve verilerin orada deşifre edilme olanağı sağlanmış oldu. Bunun sonucunda kimin hangi özel bilgilerine erişildi bilemeyiz. Ama niyetin iyi olmadığını açıkça görüyoruz.
Google tarafından farkedilen durum dünyada büyük yankı buldu ve Google, Microsoft, Mozilla gibi web tarayıcı sağlayıcıların tamamı çeşitli duyurular yapıp önlemler aldılar. TürkTrust ise mühür niteliğindeki sertifikasını dünya çapında geçersiz sayıp yenisini üretti. Microsoft'un konu ile ilgili uyarısını http://support.microsoft.com/kb/2798897/tr linkinde bulabilirsiniz. Listenin en başındaki "*.EGO.GOV.TR tarafından verilen *.google.com" maddesine dikkatinizi çekerim.
Şimdi tüm bunların üç başlı köpek ile ne ilgisi olduğunu soracaksınız. Uzun bir yazı oldu, onu da bir sonraki yazıya bırakıyorum.