Internet üzerinde herbiri farklı işlemler için kullanılan çeşitli kriptografik protokoller vardır:
|
|
SSL işlemleri
SSL protokolünün teknik detayları için yazının sonundaki adreslere bakabilirsiniz. Protokolün amacı sunucunun kimliğini tanılamak (seçime bağlı olarak, istemcinin kimlik tanılamasının yapılması) ve hem istemci hemde sunucunun kriptolanmış mesajlar gönderebilmede kullanabilmesi için gizli simetrik anahtar belirlemesidir.
İşlemin adımları kısaca şöyledir:
1. İstemci (örnekte browser) sunucu portuna bir bağlantı açarak ‘ClientHello’ mesajı gönderir. ‘ClientHello’ istemcinin kullandığı SSL sürümü, desteklediği şifreleme takımı ve desteklediği veri sıkıştırma metodları gibi bilgileri içerir.
2. Sunucu ‘ServerHello’ mesajı ile cevap verir. Sunucu seçtiği şifreleme takımı ve veri sıkıştırma metodunu içeren ve bağlantıyı tanımlayan oturum ID`sini içeren bir mesaj gönderir. Şifreleme takımı ve sıkıştırma metodlarının seçiminden sunucu sorumludur. Eğer istemci ve sunucu arasında seçimlerde bir uyum sağlanamazsa sunucu ‘handshake failure’ mesajı gönderip bağlantıyı kapatır.
3. Sunucu sertifikasını gönderir. Eğer sunucu sertifika-tabanlı kimlik tanılaması kullanıyorsa (ki genelde durum hep öyledir) sunucu imzalı X.509v3 site sertifikasını gönderir. Eğer sertifika root olmayan bir sertifika otoritesi tarafından imzalanmışsa, sunucu ana sertifika otoritesine kadar olan imzalı sertifikalar zincirini de gönderir.
4. Sunucu istemci sertifikası isteği gönderir (seçime bağlı). Eğer istemci kimlik tanılaması için istemci sertifikaları kullanılıyorsa sunucu istemciye sertifika isteği mesajı gönderir.
5. İstemci sertifikasını gönderir (seçime bağlı). Eğer sunucu istek yaptıysa, istemci imzalı X.509v3 istemci sertifikasını gönderir. Eğer istemcinin sertifikası yoksa ‘no certificate’ alarmını gönderir. Sunucu bu noktada ‘handshake failure’ ile bağlantıyı iptal edebilir yada devam edebilir.
6. İstemci ‘ClientKeyExchange’ mesajı gönderir. Burda simetrik oturum anahtarı seçilir. Detaylar seçilen şifreleme takımına göre değişir fakat tipik bir durumda istemci iyi bir rastgele-sayı üreteci ile ‘pre-master secret’ yaratır. Bu anahtar her iki tarafta da oturum anahtarı olarak kullanılacak gerçek anahtarı yaratmada kullanılır (farklı simetrik şifreler farklı anahtar uzunlukları kullandığından oturum anahtarı direk olarak yaratılmaz). Browser dijital zarf yaratmak için bu anahtarı sunucunun (sertifikasından aldığı) RSA açık anahtarı ile kriptolar. Sonrasında zarf sunucuya gönderilir.
7. İstemci ‘CertificateVerify’ mesajı gönderir (seçime bağlı). Eğer istemci kimlik tanılaması kullanılıyorsa, istemci doğru RSA özel anahtarını bildiğini göstererek sunucuya kimlik tanılamasını gerçekleştirmesi gerekir. ‘CertificateVerify’ mesajı (aradaki konuşmayı dinleyen birisinin müdahele etmesini zorlaştıracak şekilde çeşitli yollarla değiştirilen) 6. adımda yaratılan premaster anahtarı içerir. Anahtar istemcinin RSA özel anahtarı ile imzalanır ve sunucuya gönderilir. Sunucu istemcinin sertifikası ile bunu kontrol eder. Burda sunucunun kimliğini tanılaması gerekmediğine dikkat edilmeli. İstemci premaster anahtarını sunucunun açık anahtarını kullanarak gönderdiği için sadece sunucunun sertifikasının sahibi bunu dekriptolayıp kullanabilir.
8. Hem istemci hemde sunucu ‘ChangeCipherSpec’ mesajı gönderir. Bu mesaj istemci ve sunucunun kararlaştırılan simetrik şifre ve oturum anahtarı ile haberleşmeye başlayabileceklerini onaylayan basit bir mesajdır.
9. Hem istemci hemde sunucu ‘finished’ mesajı gönderir. Bu mesajlar o ana kadarki tüm konuşmanın tam olarak alındığı ve yolda değiştirilmediğini onaylamada kullanılacak olan MD5 ve SHA hash`lerini içerir.
Bu noktada hem istemci hemde sunucu her iki tarafa doğru olan trafiği oturum anahtarı kullanarak simetrik olarak kriptolamak için kriptolama moduna geçerler.
Yukarda belirtilen 9 adıma ek olarak SSL 3.0 sunucular için ek bir işlem vardır. 3. adımda sertifikasını göndermek yerine sunucu ‘ServerKeyExchange’ mesajı gönderir. Bu sunucunun bir sertifika göndermeden bir oturum anahtarı belirlemek için kullanılır. Bu aşağıdaki durumlardan herhangi birinde gerçekleşebilir:
1. Sunucu anonim Diffie-Hellman anahtar değiştokuşu protokolünü kullanıyorsa
2. Sunucu Fortezza akıllı kart kriptolama takımını kullanıyorsa
3. Sunucunun sadece imza için özel anahtarı varsa (mesela bir DSS anahtarı)
Bu senaryoların en ilginci Diffie-Hellman anahtar değiştokuşu algoritması kullanımıdır. Bu durumda istemci ve sunucu bibirlerini tanımadan paylaşılan oturum anahtarı belirler. Sertifika değiştokuşu olmadığından etkileşim tamamen anonimdir. Bu aynı zamanda işlemin man-in-the-middle saldırısından etkilenebileceği anlamına da gelir.
SET ve diğer dijital ödeme sistemleri
SET Nedir?
SET (Secure Electronic Transactions-Güvenli Elektronik İşlemler) Visa, Mastercard, Netscape ve Microsoft`un birlikte geliştirdiği bir kriptografik protokoldür. Haberleşmeleri kriptolama için kullanılan genel amaçlı SSL`den farklı olarak SET sadece müşteri ile tüccar arasındaki kredi ve ‘debit’ kartları işlemlerini güvenli hale getirmede kullanılır.
Alt seviyede, SET protokolü aşağıdaki ana servisleri sağlar:
Yüksek seviyede, SET protokolü aşağıdakiler dahil olmak üzere şu anki kredi kart sistemlerindeki tüm özellikleri destekler:
SET gerçek-zamanlı işlemleri, toplu işlemleri, kurulum ödemelerini destekler.
Bu dokümanın hazırlandığı tarihte (Mayıs 1997) son SET spesifikasyonu yayınlandı. Pek çok üretici firma protokolü destekleyeceğini duyursada sadece Verifone Corporation bir SET ürünü çıkardı. Müşteriler için vWallet uygulaması ve Microsoft Merchant Web sunucusu için vPOS uzantıları ilk SET spesifikasyonunu kullanır. Web browser`lar protokolü yazılımda içererek veya bir ActiveX kontrolü, Java applet`i veya plug-in`i indirerek SET`i direk olarak destekleyecekler.
Niye sadece SSL kullanılmasınki?
SET`i detaylı incelemeye başlamadan önce akla gelebilecek bir soru: Niye özel-amaçlı protokol gerekli? Neden Kredi kartı bilgilerini form doldurup SSL kullanarak göndermeyelim?
Kredi kartı ödemelerinde kesinlikle SSL kullanılabilir. Bu günümüzde en çok kullanılan yol ve Netscape, Microsoft Open Market ve diğerleri tarafından satılan ‘ticaret sistemlerinin’ ana özelliği. Fakat bu amaç için sadece SSL kullanmanın bazı dezavantajları var.
Birincisi, SSL müşteriden tüccara kredi kartı numarasının güvenli olarak gönderilmesini sağlasa da, işlemin sonrasında bir yararı olmuyor: numaranın doğruluğunun kontrolü, müşterinin bu numarayı kullanmaya yetkili olup olmadığının kontrolü, tüketicinin bankası ile işlemi yetkilendirme ve transferi işleme. Basit bir sistemde, kredi kartının yazım hataları bir CGI script ile kontrol edilebilir ve numarayı bir dosya yada veritabanına daha sonra manuel olarak kontrol için kaydedilebilir. Fakat çoğu uygulama için online olarak kredi kartı yetkilendirmesi bir ihtiyaçtır. Gelişmiş ticaret sistemleri kredi kart yetkili servisi tarafından çalıştırılan bir sunucuya SSL veya uygun bir protokolle bağlanarak siparişleri anında onaylarlar. Bu tip sistemler ayrıca geri ödemeleri, işlem kaydı tutma, alışveriş kartlarını, online katalogları da yönetebilirler. Tam fonksiyonel bir kredi kartı işleme sistemi ya çok sayıda özel programlama yada pahalı bir paket çözümdür.
SSL-tabanlı şemalardaki diğer bir problemde sunucu-tarafı güvenliktir. Kredi kartı numarası tüccarın Web sunucusuna gönderildiği için bu bilgi bir dosya veya veritabanında tutulabilir. Eğer birisi tüccarın web sunucusuna girmeyi başarırsa tüm kredi kartı numaralarını da ele geçirebilir. Aslında, bu 1994`de Netcom Internet servis sağlayıcısının başına gelen bir olay. Ek olarak bazıları tüccarın kredi kartı bilgilerini mesaj listeleri ve pazarlama bilgisi derlemede kullanabileceği konusunda endişeleniyor.
Kredi kartı işlemlerinde SSL kullanmada diğer bir problem de kredi kartı tahmin programlarının zayıf yazılmış sistemlerde kullanılabilmesi. Uzaktaki kullanıcı önce denemelik kredi kartı numaraları yaratır. Hepsi basit checksum kontrolünü geçecektir fakat hangisinin gerçek bir hesaba ait olduğunu bilmemektedir. Daha sonra bu numaraları bir scripte ekleyerek bir web sunucusundan sahte satın almalar yapmaya çalışır. Eğer kart geçerli değilse sunucu bir hata döner ve script numarayı atar. Eğer kart tanılaması doğru olarak gerçekleşirse sunucu kabul eder ve script satın almayı iptal edip numarayı kaydeder. Bu tip bir sistem kısa zamanda yüzlerce geçerli kredi kartı numarası bulabilir. SET bu problemleri kart yetki kontrolü ve satışın sonlandırılmasına kadar tüm işlemi kontrol eden entegre bir sistem sağlayarak giderir. Kredi kartı numarasının çalınmasını engellemek için protokol hiçbir zaman tüccarın kart numarasına direk erişimine izin vermez, bunun yerine satın almanın onaylanıp onaylanmadığı konusunda bilgilendirilir.
Son olarak Amerikan ihracat kısıtlamaları konusu var. Güçlü kriptografi kullanan sistemlerin, SSL kullananlar dahil, ihraç edilmesi yasaktır. Fakat kanun sadece parasal işlemlerde kullanılan sistemleri hariç tuttuğu için güçlü kriptografi kullanan SET ürünleri Amerika dışına çıkabilir ki bu genel-amaçlı SSL ürünleri için mümkün değildir.
Çeşitli kişilik testleri belli gruptan insanlar arasındaki benzerlikleri vurgular. Yine de, diğerleriyle olan tüm benzerliklerine…
Boşaltım sistemi vücutta homeostazın sağlanmasında çok önemli bir yere sahiptir.Böbrekler, üreterler ve mesaneden oluşan boşaltım…
Büyük Atatürk'ün ölümünü takip eden günlerde, o zamanlar yalnız Avrupa'nın değil, dünyanın en güçlü günlük…
Mustafa Kemal Atatürk 1881 yılında Selânik'te Kocakasım Mahallesi, Islâhhâne Caddesi'ndeki üç katlı pembe evde doğdu.…