MD5, ORTALAMA KAYDIRMA VE DIFFIE-HELLMAN ALGORİTMALARI KULLANARAK SOHBET PROGRAMLARININ GÜVENLİĞİNİN ARTIRILMASI. Hussein Mohammad Noor ALGOLAK

Benzer belgeler
ŞİFRELEME BİLİMİ. Prof. Dr. Şeref SAĞIROĞLU Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Maltepe/Ankara

Simetrik (Gizli) Kriptografik Sistemler Blok Şifreler Standartlaştırma. DES-Data Encryption Standard (Bilgi Şifreleme Standardı)

SİMETRİK ŞİFRELEME. DES (Veri Şifreleme Standardı, Data Encryption Standard)

S. N ala l n n T OP OP A B Ğ Fatih i h A BL B AK K

TODAİE edevlet MERKEZİ UYGULAMALI E-İMZA SEMİNERİ KASIM E-imza Teknolojisi. TODAİE Sunumu

GÜVENLİ HABERLEŞME TEKNİKLERİ

ŞİFRELEME YÖNTEMLERİ

AES (Advanced Encryption Standard)

Açık Anahtarlı Kriptografi ve Uygulamalar

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR SİSTEMLERİ LABORATUVARI LİNEER KRİPTANALİZ

Daha komplike uygulamalar elektronik ticaret, elektronik kimlik belgeleme, güvenli e-posta,

Yeni Nesil Ağ Güvenliği

Bilgi Güvenliği Eğitim/Öğretimi

M.Ö lü yıllarda Mısırlı bir katip yazdığı kitabelerde standart dışı hiyeroglif işaretleri kullandı.

Bilgisayar Ağları ve Ağ Güvenliği DR. ÖĞR. ÜYESİ KENAN GENÇOL HİTİT ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK MÜH.

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

BM 402 Bilgisayar Ağları (Computer Networks)

ŞİFRELEME YÖNTEMLERİ

JAVA API v2.0 Belge sürümü: 2.0.2

VERĠ HABERLEġMESĠ OSI REFERANS MODELĠ

01 WASTE Windows Linux ve macos (Sınırlı İşlevsellik)

Kriptoloji. Alibek Erkabayev Mesleki Terminoloji II

III. Gizli Anahtar Kriptografi

TCP / IP NEDİR? TCP / IP SORUN ÇÖZME

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

RSA ŞİFRELEME ALGORİTMASI

Güncel Kriptografik Sistemler

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

BEUN VPN Hizmeti. VPN Nedir?

Internet te Veri Güvenliği

Bölüm3 Taşıma Katmanı. Transport Layer 3-1

Elbistan Meslek Yüksek Okulu Güz Yarıyılı EKi Salı, Perşembe Öğr. Gör. Murat KEÇECĠOĞLU

Scan Station Pro 550 Adminstration & Scan Station Service Araçları

XIX. Türkiye de Internet Konferansı (inet-tr 14) BULUT BİLİŞİM GÜVENLİĞİ HOMOMORFİK ŞİFRELEME Kasım, 2014, Yaşar Üniversitesi İÇİN

Şifreleme Sistemlerine Giriş ve Açık Anahtar Şifreleme

Kullanım ve Yardım Kılavuzu

Uygulama 6. Sunum 5. Oturum 4. Taşıma 3. Ağ 2. Veri iletim 1

Temel Şifreleme Yöntemleri. Teknoloji Fakültesi / Bilgisayar Mühendisliği

TÜBİTAK UEKAE ULUSAL ELEKTRONİK ve KRİPTOLOJİ ARAŞTIRMA ENSTİTÜSÜ

FOUR FAİTH ROUTER LARDA IPSEC GÜVENLİ HABERLEŞME KILAVUZU

LOGO için Online Mutabakat Kullanım Kılavuzu


Bilgisayar Sistemleri ilk ortaya çıktığında...

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

Ayni sistem(host) üzerinde IPC. Ağ(network) aracılığı ile IPC

Dr. Akif AKGÜL Oda No: 303 VERİ GİZLEME I HAFTA 3 : ŞİFRELEMENİN TEMELLERİ

Computer Networks 5. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

İnternet ve ağ kavramlarını tanımlamak. İnternet in nasıl çalıştığını açıklamak. Elektronik posta ve sohbet kavramlarını açıklamak.

AĞ SĠSTEMLERĠ. Öğr. Gör. Durmuş KOÇ

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

Şifrebilimde Yapay Sinir Ağları

VPN NEDIR? NASıL KULLANıLıR?

Toplu İleti Gönderimi

İnternet ve İnternet Tarayıcıları BİLGİ VE İLETİŞİM TEKNOLOJİSİ DERS NOTU - 2

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Internet Nedir? Devlet Kurumları. Internet Servis Sağlayıcılar. Lokal Ağ. Eğitim Kurumları. Kişisel Bilgisayar. Dizüstü Bilgisayar.

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

E-postaya Tarama Hızlı Kurulum Kılavuzu

Computer Networks 4. Öğr. Gör. Yeşim AKTAŞ Bilgisayar Mühendisliği A.B.D.

Google Cloud Print Kılavuzu

RSA Şifreleme Algoritması Kullanılarak SMS İle Güvenli Mesajlaşma Yöntemi

DNS Nedir? HİKMET TÜYSÜZ

E-Posta Hesapları ve Anında Mesajlaşma Yazılımları

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

7 Uygulama 6. Sunum 5 Oturum Taşıma. 4 Ara katman- Yazılım ve donanım arası 3. Ağ Veri iletim. 2 Ağ Grubu-Donanım 1. Fiziksel. Uygulama Grubu-Yazılım

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Bilgisayar Ağlarında Güvenlik. Prof. Dr. Eşref ADALI www. Adalı.net

ULUSAL GRID ÇALIŞTAYI 2005

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Kets DocPlace LOGO Entegrasyonu

Vpn nedir? VPN Nedir?

KURUM İÇİ YAZIŞMA USULLERİ PROSEDÜRÜ

Ağ Yönetiminin Fonksiyonel Mimarisi

Bölüm 8 : PROTOKOLLER VE KATMANLI YAPI: OSI, TCP/IP REFERANS MODELLERİ.

Mobil Cihazlardan Web Servis Sunumu

Anahtar Bağımlı Bir Şifreleme Algoritması (IRON)

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

LOGO için Online Mutabakat Kullanım Kılavuzu

İÇİNDEKİLER. Elektronik İmza... 3 Tanım... 3 Mevzuat... 3 Giriş... 3 Akıllı Akis Kart Alındıktan Sonra İzlenecek Adımlar Adım:...

DOD / DEPARMENT OF DEFENCE

SSH ile Sistem Yönetimi

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

IPSEC IKE ŞİFRELEME STANDARTLARI

SİMETRİK VE ASİMETRİK ŞİFRELEME ALGORİTMALARININ KARŞILAŞTIRILMASI. Konya. Konya. Şifreleme bilgisayar ağlarında haberleşme güvenliğini sağlamak için

Web Servis-Web Sitesi Bağlantısı


KRİPTO ALGORITMALARININ GELİŞİMİ VE ÖNEMİ

Güvenli Doküman Senkronizasyonu

TC KİMLİK NO SMS GÖNDERİM SOAP API

ASİMETRİK ŞİFRELEME ALGORİTMALARINDA ANAHTAR DEĞİŞİM SİSTEMLERİ

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 5. Yönlendiricilerde İşlem İzleme ve Hata Ayıklama

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

Transkript:

iii

iv MD5, ORTALAMA KAYDIRMA VE DIFFIE-HELLMAN ALGORİTMALARI KULLANARAK SOHBET PROGRAMLARININ GÜVENLİĞİNİN ARTIRILMASI Hussein Mohammad Noor ALGOLAK YÜKSEK LİSANS TEZİ BİLGİSAYAR EĞİTİMİ ANABİLİM DALI GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ TEMMUZ 2014

vi ETİK BEYANI Gazi Üniversitesi Bilişim Enstitüsü Tez Yazım Kurallarına uygun olarak hazırladığım bu tez çalışmasında; Tez içinde sunduğum verileri, bilgileri ve dokümanları akademik ve etik kurallar çerçevesinde elde ettiğimi, Tüm bilgi, belge, değerlendirme ve sonuçları bilimsel etik ve ahlâk kurallarına uygun olarak sunduğumu, Tez çalışmasında yararlandığım eserlerin tümüne uygun atıfta bulunarak kaynak gösterdiğimi, Kullanılan verilerde herhangi bir değişiklik yapmadığımı, Bu tezde sunduğum çalışmanın özgün olduğunu, bildirir, aksi bir durumda aleyhime doğabilecek tüm hak kayıplarını kabullendiğimi beyan ederim. Hussein ALGOLAK 01.07.2014

MD5, ORTALAMA KAYDIRMA VE DIFFIE-HELLMAN ALGORİTMALARI KULLANARAK SOHBET PROGRAMLARININ GÜVENLİĞİNİ ARTIRILMASI (Yüksek Lisans Tezi) iv Hussein ALGOLAK GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ Temmuz 2014 ÖZET Son yıllarda sohbet ve sohbet sistemleri herkes tarafından kolayca ulaşılabilir ve çok kullanılır hâle gelmiştir. Bu durum insanlar arası iletişimin gelişmesinde göz ardı edilmeyecek ölçüde faydalıdır. Söz konusu amaç için geliştirilen çok sayıda sohbet sistemi farklı seviyelerdeki güvenlik önlemleriyle kullanıcılarına gerçek zamanlı konuşma rahatlığı sunmaktadır. Bu hizmet sunulurken de mahremiyeti koruyup yeni teknolojilerle daha güvenli sohbet sistemleri tasarlamak ilke edinilmektedir. Bu çalışmada, Karma Ortalama Kaydırma, Diffie-Hellman ve Message-Digest 5 (MD5) algoritmaları kullanılarak mevcut sistemlerdeki güvenlik açıklarını gideren ve piyasada yaygın olarak kullanılan Yahoo Messenger, MSN Messenger vb. programlarına uygulanabilen bir algoritma geliştirilmiştir. Çünkü söz konusu popüler sohbet programlarında bu algoritma bulunmadığından çalışmada yukarıda adları söylenen algoritmaların programı daha güvenli kılacağını göstermek amacıyla örnek bir sohbet programı geliştirilmiştir. Kullanıcıların kişisel bilgisayarlarında çalışan istemci uygulama ve ağ üzerindeki sunucu uygulamadan meydana gelmektedir. Sohbete başlamak için istemciler gerçek zamanlı olarak iki kullanıcı arasındaki sunucuya bağlanmaktadır. Geliştirilen yöntemde, iki kullanıcı arasında metinler şifreli olarak gönderilir ve bu metinler şifreli olduğundan başkası tarafından okunamaz olarak görünmektedir. Ayrıca sistemin güvenlik, verimlilik, bakımı yapılabilirlik, gerçek ağ ortamında uygulanabilirlik özelliklerine sahip ve geliştirmeye açık özellikte bir yapısı bulunmaktadır. Bilim Kodu : 902.1.053 Anahtar Kelimeler : Güvenli sohbet sistemi, MD5 algoritması, Diffie-Hellman algoritması, güvenlik. Sayfa Adedi : 68 Danışman : Prof. Dr. Halil İbrahim BÜLBÜL

v INCREASING THE SECURITY OF CHATTING PROGRAMS BY USING A HYBRID OF MD5, SHIFT AND DIFFIE-HELLMAN ALGORITHMS (M. Sc. Thesis) Hussein ALGOLAK GAZİ UNIVERSITY INSTITUTE OF INFORMATICS July 2014 ABSTRACT Nowadays, chatting or chatting systems are easily accessible and very beneficial in conversation and their developments of interpersonal communication cannot be ignored in their advantages. For this purpose, a lot of chatting systems are developed and provided the convenience of conversing in real time with different levels of security. This service while also preserving privacy with new technologies, designing more secure instant messaging systems principles to obtain. In this study, hybrid of Shift, Diffie-Hellman and MD5 algorithms have been used to developing of very popular chatting systems such as Yahoo Messenger, MSN Messenger and others to overcome the security limitations of them. In order to demonstrate the security of these secure algorithms, it has been extended a new sample chatting system. The system is made up of client applications which runs on the user s personal computers and server application on the network. To start chatting, client should get connected to server between any two users only in real time. In the proposed method, conversation texts transfer between two users as encrypted and this texts seems to be meaningless by someone else because it is encrypted. The system is performance on security, safety, efficiency, maintainability, proper applied in the actual network environment and also expandability is very applicable. Science Code : 902.1.053 Key Words : Secure chatting system, MD5 algorithm, Diffie-Hellman algorithm, security Page Numbers : 68 Supervisor : Prof. Dr. Halil İbrahim BÜLBÜL

vi TEŞEKKÜR MD5, Ortalama Kaydirma ve Diffie-Hellman Algoritmaları Kullanarak Sohbet Programlarinin Güvenliğini Artırılması konulu tezimin seçim aşamasından teslimine kadar, bana kolaylık ve yol gösteren, önerileriyle tezin son halini almasına büyük katkıda bulanan Sayın Danışman Hocam Prof. Dr. Halil İbrahim BÜLBÜL e ve yüksek lisans tezi çalışmam esnasında bana yardımcı olan saygı değer hocalarıma sonsuz teşekkürlerimi sunarım. Ayrıca, tez çalışmam süresince benden yardım ve desteklerini esirgemeyen tüm arkadaşlarıma ve çok kıymetli aileme en derin şükranlarımı sunarım.

vii İÇİNDEKİLER Sayfa ÖZET... ABSTRACT... TEŞEKKÜR... İÇİNDEKİLER... ÇİZELGELER LİSTESİ... ŞEKİLLER LİSTESİ... SİMGELER VE KISALTMALAR... iv v vi vii ix x xi 1. GİRİŞ... 1 2. MEVCUT LİTERATÜRÜN İNCELENMESİ... 5 3. SOHBET PROGRAMLARINDA KULLANILAN GÜVELİ ŞİFRELEMEALGORİTMALARI... 9 3.1. Şifreleme Algoritmaları... 9 3.1.1. Sezar şifresi... 9 3.1.2. Tekli alfabetik yer değiştirme şifresi... 10 3.2. Açık Anahtar Şifreleme... 10 3.2.1. Diffie-Hellman algoritması... 10 3.2.2. Hash fonkosiyonu MD5... 12 3.2.3. RSA algoritması... 14 3.2.4. Veri şifreleme standart algoritması... 16 4. DIFFIE-HELLMAN VE MD5 ALGORİTMALARININ SİSTEME UYGULANMASI... 19 4.1. İstemci... 20 4.2. Sunucu... 21

Sayfa 4.2.1. Kullanıcılara izin verilmesi... 26 4.2.2. Kullanıcı izlerinin tutulması... 27 4.3. Güvenli Sohbet Programının Çalıştırılması... 28 4.3.1. Şifreleme... 29 4.3.2. Uygulama sonuçları... 30 5. SONUÇ VE ÖNERİLER... 35 KAYNAKLAR... 37 EKLER... 41 EK-1. Diffie Hellman... 42 EK-2. İstemci... 46 EK-3. İstemci socket... 48 EK-4. İstemci test... 53 EK-5. Ana sunucu... 54 EK-6. MD5... 56 EK-7. Ortalama kaydırma... 59 EK-8. Dosya okuma... 62 EK-9. Sunucu... 63 EK-10. Diffie-Hellman deneme... 65 EK-11. İstemci 2... 66 viii ÖZGEÇMİŞ... 68

Çizelge ÇİZELGELERİN LİSTESİ ix Sayfa Çizelge 4.1. İstemci kodu... 20 Çizelge 4.2. Sunucu kodu... 21 Çizelge 4.3. İstemci 1 ile İstemci 2 arasında Diffie-Hellman algoritması... 29

x ŞEKİLLERİN LİSTESİ Şekil Sayfa Şekil 3.1. Diffie-Hellman algoritması - istemci 1 ve istemci 2 haberleşme şeması... 12 Şekil 3.2. Bir MD5 operasyonu... 14 Şekil 4.1. İstemci formu... 19 Şekil 4.2. Ağ kontrol formu... 23 Şekil 4.3. Ağ bağlantısı ayrıntıları... 24 Şekil 4.4. İki farklı istemcide çalışan sohbet programı... 25 Şekil 4.5. Özel oturum formu... 27 Şekil 4.6. Şifreleme için önerilen yöntem... 29 Şekil 4.7. Sonucu ve sonucu ve istemciler arasında bilgi gizliliği... 30 Şekil 4.8. Görüşmenin şifrelenmiş gösterimi... 31 Şekil 4.9. Wireshark Analyzer de Yahoo Messenger görüşmesinin gösterimi... 32

xi SİMGELER VE KISALTMALAR Bu çalışmada kullanılmış bazı kısaltmalar, açıklamları ile birlikte aşağıda sunulmuştur. Kısaltmalar Açıklamalar MD5 Message-Digest 5 IRC Internet Relay Chat OBP Oturum Başlatma Protokolü GSK Güvenli Soket Katmanı İPG İnternet Protokol Güvenliği MSN Microsoft Network AOL America Online DHIES Diffie-Hellman Temelli Şifreleme Şeması

1 1. GİRİŞ Sohbet, göndericiden alıcıya iletilen metin/ses/video mesajlarının gerçek zamanlı iletimini sağlayan internet üzerindeki her tür iletişim anlamına gelmektedir. Genel olarak sohbet, mesajlara karşıdaki katılımcının çabuk cevap vermesi için kısa bir yol sağlamaktır. Bu durum, internet mesajlaşmaları ve e-mail gibi metin bazlı diğer internet forumlarıyla çevirimiçi iletişimlerden oluşur [1]. Sohbet sistemleri, bir alıcıdan birden çok alıcıya gönderilen çoklu iletişimin yanı sıra noktadan noktaya iletişimi de destekler, ayrıca sohbet sistemleri konferansı ve telekonferans hizmetleri sağlayan özelliklere de sahiptir. Talkomatic adı verilen ilk sohbet sistemi, Brown ve Woolley tarafından PLATO Sistemi nde [2] geliştirilmiştir. Her bir kanalı beş kişi alabilen ve birkaç kanaldan oluşan sistemde, kullanıcılar mesaj yazdıkça mesajlar tüm kullanıcıların ekranında karakter şeklinde gözükmekteydi [3]. BodyChat Sistemi [4] yüz yüze iletişimi taklit etmek için konuşan avatarlar kullanır. TelMeA Sistemi [5] eşzamanlı olmayan çevirimiçi bir toplum sisteminde mesajları ulaştırmak için somutlaşan ajanlar kullanır. Çevirimiçi sohbet ve sohbetler, kullanıcıların yarı senkronlu iletişim kurduğu e-mail gibi teknolojilerden farklıdır. Bazı sistemler mesajların sisteme bağlı olmayan kullanıcılara çevirimdışı mesajlar olarak gönderilmesine izin verir. Böylece ilgili e-mail hesabına mesaj göndererek sohbet ve e-mail arasındaki bazı farkları ortadan kaldırır. Sohbet sistemlerinde mesajlar genellikle düz metin olduğu ve kulak misafirliğine açık olduğu için güvenlik açısından büyük riskleri ortaya çıkarmaktadır[6]. Sohbet sistemlerden bazıları sadece hizmet alınan şirketin servisleriyle çalışırken bazıları da diğer servislerle sınırlı hizmete imkân verir. Standart tamamlayıcı sohbet uygulamaları; dosya transferi, bağlantı listeleri, anında çeşitli konuşmaları tutma gibi çeşitli işlevler sunarlar [3]. Sohbet sistemlerinde mesajlaşma konusunda ortak bir standart yaratmak için İnternet Mühendisliği Çalışma Grubunun (Internet Engineering Task Force), Oturum Başlatma Protokolü (Session İnitiation Protocol), sohbet için oturum başlatma protokolü ve varlık uyum uzantıları; uygulama değiştirme, sohbet ve varlık protokolü; açık XML-tabanlı genişletilebilir mesajlaşma ve varlık protokolü; özellikle mobil cihazlar için geliştirilmiş

2 açık mobil birliğinin ani mesajlaşma ve varlık servisi gibi çeşitli teşebbüsleri olmuştur. AOL, Yahoo! ve Microsoft gibi başlıca sohbet sunucuları için daha çok birleşik standart yaratma teşebbüsü başarısızlıkla sonuçlanmış ve bu nedenle her biri kendilerine ait protokolü kullanmaya devam etmektedir. Güvenli sohbetleşme iletişimi, iki ya da daha fazla taraf iletişim kurduğunda ve üçüncü bir tarafın dinlemesi istenmediğinde gerçekleşir. Bunu yapmak için kişilerin gizli dinleme ya da dinlemeye açık olmayan bir şekilde iletişim kurması gerekmektedir. Güvenli iletişim, ne konuşulduğunun üçüncü şahıslar tarafından ortaya çıkaramayacağını belirtmektedir [4]. Günümüzde ileri casusluk sistemleri, virüsler, enformasyon hırsızlığı, kişisel bilgilerin suistimali ve mahremiyet eksiliği gibi faktörlerin artışı nedeniyle yüksek güvenlikli sohbet sistemleri tasarımı büyük önem taşımaktadır. Kullanılan sohbet yazılımlarında birçok güvenlik açığı bulunmaktadır. Büyük şirketler dahi iş gereği ofis içi ve ofis dışı yazışmalarda sohbet programlarını kullanmakta ve bu yolla gizli bilgiler de dâhil olmak üzere her türlü bilginin alışverişi sağlanmış olmaktadır. Güvenlik sorununun temelini oluşturan internetteki sohbet ve bilgilerin saklanması hususunda, bilgilerin bütünlüğünün bozulmadan, izinsiz sızma gibi erişimlerden korunması, güvenli bir bilgi işleme platformunun gerekliliğini de doğal olarak gündeme getirmektedir. Güvenliği sağlayabilmek için sohbet programına uygun güvenlik programlarının yazılması ve uygulanması gerekmektedir. Yani çok sayıda sohbet sistemi belirli kalite ve güvenlik seviyesinde tasarlanmış olsa da gönderici ve alıcı tarafında verinin şifrelenmesi için yeterli yüksek güvenlikli bir çatı sistemin eksikliği halen hissedilmektedir. Yahoo Messenger ve bilinen diğer sohbet programları, sohbet sisteminde sunucuyla olan bağlantının yanı sıra gönderici ile alıcı yolu arasında bir veri şifreleme sistemine sahip değildir. Bir diğer iyi bilinen sohbet sistemi Google Talk da gönderici ve alıcı arasında veri şifrelemeye sahip değildir ancak bu uygulamada sunucuya giden bilgide bir veri şifreleme bulunmaktadır. Bu bakımdan sunucuyla bağlantıda olduğu kadar gönderici ve alıcı arasında da veri şifreleme algoritmasını kapsayacak bir çatının oluşturulmasına ihtiyaç duyulmaktadır. Böylece konuşmanın içeriğini sadece sunucu ve alıcı görebilecektir ve diğer kişilerin bu konuşmaları görmesi engelenmiş olacaktır.

3 Sohbet, kullanıcılarına çoklu fayda sağlamakla birlikte, özellikle iş yerinde kullanıldığında belirli risk ve zaafları da beraberinde getirir. Bu risk ve zaaflar arasında bilgisayarlara spyware, virüs, trojan, worm bulaşması; uyum riskleri, hatalı kullanım, ticari sırların ifşası ve benzeri güvenlik problemleri yer almaktadır. Sohbet sistemleri kabul edildiği anda alındı notu ya da cevaba olanak vererek etkili ve verimli iletişime imkân verir. Birçok durumda, sohbet, kendisini daha da popülerleştirebilen ilave özellikler de içerir. Örneğin, kullanıcılar kamera aracılığıyla birbirlerini görebilirler ya da bir mikrofon, kulaklık veya hoparlör kullanarak internet üzerinden ücretsiz olarak doğrudan konuşabilirler. Daha fazla olarak uygulamada -dosya boyutları genellikle kısıtlı tutulsa da- dosya transferine olanak sağlar. 2010 yılı itibariyle sosyal ağ sağlayıcıları sıklıkla sohbet özelliği sunarlar. Facebook, bir çeşit sohbettir. Twitter -bir Web 2.0- da sohbet sistemi olarak düşünülebilir [7]. Bu çalışmada, kullanıcılar arasında güvenli ve piyasada yaygın olarak kullanılan Yahoo Messenger, MSN Messenger vb. programlara uygulanabilen bir algoritma geliştirlmiştir. Ayrıca sözü edilen sohbet programlarında bu algoritma uygulanmadığı için hazırladığımız güvenlik algoritmalarının daha güvenli olduğunu göstermek amacıyla örnek bir sohbet programı da geliştirilmiştir. İki kullanıcı arasında güvenli bir iletişim sağlanmasına katkı veren bu çalışmada JAVA dilinde yeni bir sohbet programı geliştirilerek gönderilen mesajların başkaları tarafından görülmemesi sağlanmıştır. Bu çalışmada, kullanılan mevcut algoritmalara ilave olarak MD5, ortalama kaydırma ve Diffie-Hellman algoritmaları kullanılarak daha güvenli bir sohbet ortamı sağlanmıştır. Geliştirilen örnek uygulama popüler olarak kullanılan Yahoo ve MSN de de denenerek test edilmiştir. Başkaları tarafından görünmemesi gereken özel bilgiler ve sohbet verileri görüntülenmiştir. Böylece Yahoo ve MSN gibi popüler sohbet programlarının ne denli güvensiz olduğu ortaya konulmuştur. Bu problem Yahoo ve MSN kaynak kodlarına ulaşıldığında önlenebilir özelliktedir ancak kaynak kodlarına ulaşmak mümkün olmamaktadır. Dolayısı ile bu durumu göstermek amacıyla yeni bir sohbet programı geliştirilmiştir ve bu sohbet programı için Diffie Hellman, MD5 ve Ortalama Kaydırma Algoritmaları ile güvenlik sağlanmış Yahoo ve MSN de tespit edilen güvenlik açıkları ortadan kaldırmıştır.

4 Çalışmanın yapısı aşağıdaki şekilde düzenlenmiştir: o Bölüm 2 de önceden yapılan konu ile ilgili çalışmalar ve özellikleri incelenmiş, o Bölüm 3 te çalışmada uygulanan algoritmaların özellikleri verilmiş, o Bölüm 4 te geliştirilen yöntemin detayları sunulmuş, o Bölüm 5 te ise elde edilen sonuçlara ve önerilere yer verilmiştir.

5 2. MEVCUT LİTERATÜRÜN İNCELENMESİ Bu bölümde, yapılan çalışma ile ilgili literatürde yer alan çalışmalar taranmıştır. Literatür tarandığında şifreleme algoritmaları ve protokolleri, güvenlik algoritmaları ile ilgili birçok çalışmanın mevcut olduğu görülmüştür. Popüler sohbet sistemlerinden bazıları Yahoo, Microsoft MSN, AOL Instant Messenger [8] ve ICQ dur [9]. Bu sistemler, UDP (User Datagram Protocol) yi taşıma protokolü olarak kullanırlar ve uzun görüşmelerde takas (exchange) yerine kısa mesajlar göndermektedirler [10, 11]. Sohbet trafiğini analiz etmedeki temel sorun, sistemlerin, protokollerin çokluğu ve çeşitliliğidir [12]. Shilpi Gupta ve Jaya Sharma (2012) RSA ve Diffie Hellman algoritmaları uygulanmadığında iletişim güvenliği sağlanmamaktadır. Sözü edilen algoritmalar uygulandığında ağdaki saldırılar önlemekte, gizli mesajlar ve dosyalar kullanıcı tarafından kolaylıkla gönderilmekte ve alınmaktadır [13]. Whitfield Diffie ile Martin Hellman, 1976 da Diffie-Hellman algoritması olarak popülarite kazanan ve güvenli bir bağlantı sağlayan protokolü kurdular. Bu protokol, internette birçok güvenli bağlantı protokollerinde bulunan şaşırtıcı ve yaygın bir algoritmadır. Eski teknolojinin kullanım ömrünün aylarla ölçülebildiği bir dönemde bu algoritma, önemli internet protokollerinde hâlâ aktif bir role sahiptir [14]. Wand ve Yu (2005) MD5 in diğer hash fonksiyonlarının, şifrelemede yaygın olarak kullanılan bir sistem olduğunu ortaya koymuş bu karma fonksiyonların nasıl kırıldığını ve MD5 in güvenli bir şifreleme programı olduğu gerçeğini belirtmişlerdir [15]. Fatih Büyükbalkan (2001) tarafından hazırlanan yüksek lisans tezinde bilgilerin iki kişi arasında güvenli bir şekilde iletiminin sağlanmasının ve mevcut bilgilerin belirli bir ortamda güvenli şekilde saklanabilmesinin şifreleme işlemiyle mümkün olabileceği belirtilmektedir. Büyükbalkan, bilgilerin güvenliğinin kullanılan şifreleme sisteminin gücüyle doğru orantılı olduğunu ileri sürmüştür. Çalışmasında simetrik sistemlerden RC6,

6 genel anahtar sistemlerden RSA algoritmalarını kullanarak şifreleme ve deşifreleme işlemlerini gerçekleştiren bir e-posta yazılım uygulaması hazırlamıştır [16]. Turgut Hanoymak (2012) ın hazırladığı doktora tezinde bazı açık anahtar şifreleme sistemlerinin güvenlik kriterleri analiz edilmiştir. Bu anlamda sistemi kırmaya çalışanın amacını ve bu amaca yönelik kapasitelerini ortaya çıkarmayı amaçlamıştır. Bu amaç doğrultusunda RSA, ElGamal, Cramer-Shoup, Paillier, Damgard son olarak da Zhengi2Seberry açık anahtar şifreleme sistemlerinin yapılarını incelemiş ve bu sistemlerin hangi durumlarda hangi güvenlik notasyonlarını sağladıklarını açıklamıştır [17]. Emmanuel Bresson ve arkadaşları (2002) yaptıkları bir çalışmada, şifreleme programları için kullanılan Diffie-Hellman ile sözde rastgele işlevleri oluşturmak için değil, aynı zamanda doğal olarak iki tarafın gizli bir anahtar üzerinde anlaşmasını sağlamak için Group Computational Diffie-Hellman, Group Decisional Diffie-Hellman, Computational Diffie-Hellman ve Decisional Diffie-Hellman modellerini kullanılmışlardır [14]. Mcnulty (1999), şifrelemenin rolünün ulusal ve toplumsal görünümlerin kültürler için 21. yüzyılda tanımlayıcı konulardan biri olduğuna dikkat çekmiştir [18]. Şifrelemeyi, Amerikan Barolar Birliği Bilgi Güvenliği Komitesi Başkanı Michael Baum Firmalara, firmaların iş ortaklarına, istemcilere ve son kullanıcılara gerekli bilgiyi ve ihtiyaç duyulan hizmeti çok daha hızlı oranda, daha güvenli ve emniyetli şekilde getirme olanaklarını sağlayan kolaylaştırıcı bir teknolojidir. cümlesiyle açıklamaktadır. Michel Abdalla (2001), şu anda birkaç taslakta olan Diffie-Hellman esaslı şifreleme program DHIES i (daha önce DHES ve DHAES olarak adlandırılan) ele aldığını belirtmektedir. ElGamal etkin bir şifreleme algoritmasıdır ve bünyesinde güçlü güvenlik özellikleri barındırmaktadır. Ayrıca bu güvenlik özelliklerinin temel ögelerde uygun varsayımlar gereğince olduğu kanıtlanmıştır. DHIES, seçili şifre metin saldırılarına karşı güvenlik sağlama amaçlı bir şekilde sayı-kuramsal işlemlere ek olarak simetrik bir şifreleme yöntemi, bir mesaj doğrulama şifresi ve sağlama fonksiyonunu birleştiren Diffie- Hellman esaslı bir programdır. Güvenlik sağlamaları simetrik temel ögelerin güvenli olduğu varsayımına ve Diffie-Hellman sorunu hakkında uygun varsayımlara

7 dayanmaktadır. İkincisi, aralarındaki ilişkileri araştırdığımız ve güvenlik alt sınırları sağladığımız Diffie-Hellman sorunu üzerine alışılagelmiş varsayımların ilginç değişkenleridir. Bunların sağlamaları standart bir modeldedir; hiçbir rastgele kehanet varsayımı gerektirmemektedir [19]. Emmanuel Bresson ve arkadaşları ( 2001), doğrulanmış tuş değişiminin, örneğin çoklu gönderim, mesaj bütünlüğünü sağlamak için daha sonra kullanılabilecek ortak gizli bir tuşu oyuncular havuzuna temin etmek üzere tasarlandığına dair Group Diffie-Hellman protokollerini araştırmışlardır [20]. SANS Enstitüsü, Diffie-Hellman tuş değişim algoritması nın genel bakışını araştırmış bugün internet üzerinde kullanımda olan ve Diffie-Hellman ı içeren birkaç yaygın şifreleme tekniğini incelemiştir [21]. Normal olarak geleneksel kâğıt-belge dünyasında tanımlanan kullanıcı için gizlilik gereklilikleri, günümüz internet işlemlerinde de sürekli artış göstermektedir. Güvenli dijital iletişimler, web tabanlı e-ticaretin çok gerekli bir parçasıdır ve medikal bilgi vs. için denetimli gizliliktir. Basit bir senaryoda, internet üzerinden iletişim kuran farklı taraflar arasında güvenli bağlantılar artık bir gerekliliktir. Whitfield Diffie ve Martin Hellman, Diffie-Hellman algoritmasını 1976 da kurdular ve bu algoritma icat edilen ilk açık anahtarlı algoritmaydı. Diffie-Hellman algoritması, kamusal ağ üzerinden veri alışverişi ile gizli iletişimler için kullanılan ve paylaşılan gizli anahtar oluşturur [22]. Diffie-Hellman algoritması, iletişim başlamadan önce herhangi bilinen bir anahtara ihtiyaç duymaz ve Ayrık Logaritma Problemi onun çökertilmesini oldukça zor kılar. Diffie-Hellman algoritması iki bağlantı noktası arasındaki bağlantıyı izinsiz izleme saldırılarını kolayca engeller. Diffie-Hellman, güvenilmeyen bir ağ üzerinde gerçek zamanda iki taraf arasındaki iletişimi gizlilik içinde güvenli bir şekilde paylaşmak için uygun bir yöntemdir. Paylaşılan bir gizlilik daha önce hiç iletişime geçmeyen iki taraf arasında önemlidir, bu şekilde taraflar iletişimlerini şifreleyebilirler. Böyle olunca da genel olarak güvenlik amaçlı olarak Güvenli Soket Katmanı (GSK), Güvenli Kabuk ve İnternet Protokol Güvenliği (İPG) dâhil birçok protokol tarafından kullanılır. Diffie-Hellman nin kullanılabildiği yer bu katmandır. Diffie-Hellman, Wagner ve Schneier e göre anahtar alışverişi için mevcut seçeneklerin en güçlü alternatifidir. Diffie-Hellman algoritması; GSK, Güvenli Kabuk, İPG, Puplic Key

8 Infrastrucre PKI ve bu protokollere bağlı olanlar da dâhil internette kullanımda olan neredeyse bütün şifreleme teknolojileri için kolaylaştırıcı bir teknolojidir. Güvenli Kabuk iki bilgisayar arasındaki trafiği şifrelemek için kullanılan hem bir protokol hem de bir programdır. Bu program/protokol, genellikle telnet, ftp ve Berkeley r komutları (rlogin, rsh, vb.) gibi araçların güvenli yer değişimi olarak yapılır. Bu eski araçlar, doğrulama süreci dâhil herhangi bir trafiği şifrelemezler. Bu nedenle, kullanıcı adları ve şifreler sade bir metinde iletilir. Örneğin kurulmuş bir Güvenli Kabuk oturumu üzerinden X11 bağlantıları tünellemektir [23].

9 3. SOHBET PROGRAMLARINDA KULLANILAN ŞİFRELEME ALGORİTMALARI Bu bölümde, bazı şifreleme algoritmalarına değinilmiştir, bu algoritmaların özellikleri ve kullanımı hakkında açıklayıcı / detaylı bilgiler verilmiştir. Şifreleme algoritmaları, bir şifreleme sisteminde mesajların şifrelenmesi ve deşifre edilmesi amacıyla kullanılan süreçlerin ya da kuralların sıralanmasıdır. Basit anlamda, istenmeyen kimselerin ona erişemeyeceğinden emin şekilde veriyi koruyan işlemlerdir. 3.1. Şifreleme Algoritmaları Şifreleme algoritmaları güvenli ve doğrulaması yapılmış finansal işlemler dâhil olmak üzere, geniş bir kullanım çeşitliliğine sahiptir. Çoğu şifreleme algoritması, yetkisiz üçüncü tarafların iletişimi anlamasını önlemek suretiyle, iki tarafın iletişim kurmasına olanak sağlayan şifrelemenin kullanılmasını gerektirir. Şifreleme, insan tarafından okunabilen düz metinleri, şifreli metin olarak da bilinen/okunamayan biçime dönüştürür. Şifrelenen verinin ilgili taraf için anlaşılabilir olması için, verinin şifresi çözülür ve veri eski durumuna dönüştürülür [24, 25]. Birçok farklı şifreleme algoritma tipi vardır; bunlardan çoğu, bir veya iki sınıflandırmaya uyar: simetrik ve asimetrik. Yine de bazı sistemler, her iki sınıflandırmadan oluşan hibriti kullanır. Simetrik anahtar ya da paylaşımlı anahtar olarak da bilinen simetrik algoritmalar, sadece iki yetkili tarafça bilinen bir anahtarın kullanımıyla işler. Bunlar, blok şifreler ya da akış şifreleri formunda uygulanabilirken, aynı anahtar, hem mesajı şifreleme hem de mesajın şifresini çözmek için kullanılır. Veri şifreleme standardı ve ileri şifreleme standardı, simetrik algoritmalarının en tanınan örnekleridir [1, 11, 17]. 3.1.1. Sezar şifresi Tarihin ilk kriptolojik fikirleri İngilizce de transposition and substitution cipher adını taşır, yani yer ve harf değiştirme şifrelemesi. Bu yöntemlerden ilki bir yazıdaki harflerin yerlerini değiştirerek, ikincisi ise harfleri başka harflerle değiştirerek elde edilmiştir. Bu şifrelemeyi kullanan -belki de- en ünlü teknik Sezar şifresi dir. Bu şifrede, her harf o

10 harften sonraki harfler kullanılarak yazılır. Örneğin 3 harf atlamalı Sezar şifresinde deneme yerine ghrhph yazılır. Orijinal olarak kripto algoritması şu şekilde ifade edilebilir: S=M+3 (mod26). Burada S açık metin harfini, M gizli metin harfini göstermektedir. Kullanılan i anahtarının tanım aralığının 25 sayısı ile kısıtlı olması algoritmanın güvenilirliğinin düşük olmasına yol açmaktadır [13]. 3.1.2. Tekli alfabetik yer değiştirme şifresi Daha yüksek güvenlikli kripto sistemleri düşünüldüğünde alfabede bulunan her harfin yerine başka bir harfin, belirli bir Çizelge uyarınca yerleştirildiği yapılardır. Bu tekniğe tekli alfabetik yer değiştirme adı verilir. Bu teknik özel bir alt uygulaması olarak Sezar şifresini de içermektedir. Olası uygulama sayısının yüksekliği göz önüne alındığında tekli alfabetik yer değiştirme güçlü bir algoritma olarak düşünülebilir [26]. 3.2. Açık Anahtar Şifreleme Bu kısımda, açık anahtarlı şifreleme sistemleri ele alınmıştır. Bu şifreleme, şifre ve deşifre işlemleri için farklı anahtarların kullanıldığı bir şifreleme sistemidir. Açık anahtarlı şifreleme sistemleri, sadece gizli anahtarın sahibi tarafından oluşturulabilir ve herkesin erişimine açıktır. Anahtarlar birbirlerinden farklı olsalar da matematiksel olarak birbirleriyle ilişkilidirler. Açık anahtarla, bilgiler sadece gizli anahtarın sahibi tarafından çözülebilecek şekilde şifrelenebilir ya da gizli anahtar sahibinin dijital imzasının ve kimliğinin doğruluğu kontrol edilebilir. 3.2.1. Diffie-Hellman algoritması Diffie-Hellman anahtar değişimi (key exchange) özel bir şifreleme anahtarları değişimi yöntemidir [14]. Şeması ilk kez 1976 yılında Whitfield Diffie ve Martin Hellman tarafından yayınlanan bu algoritma şifreleme alanında uygulanan anahtar değişiminin ilk pratik örneklerinden biri olmuştur. Diffie-Hellman anahtar değişimi yöntemi birbirleri hakkında hiçbir ön bilgiye sahip olmayan iki tarafın birlikte güvensiz iletişim kanalı üzerinden paylaştığı gizli anahtarı oluşturmaya izin verir. Bu anahtar, daha sonra bir simetrik anahtar şifresi kullanarak bir sonraki iletişimi şifrelemek için kullanılabilir.

11 2002 yılında, Hellman algoritması na kamu-anahtar şifrelemesi nin mucidi Ralph Merkle nin katkısının tanınmasıyla algoritmanın Diffie-Hellman-Merkle anahtar değişimi olarak adlandırılmasını önerildi [18]. Diffie-Hellman anahtar anlaşması, kendisi bir anonim (doğrulanmamış) anahtar anlaşma protokolü olmasına rağmen, bu kimlik doğrulama protokolleri için temel sağlar. Ayrıca Transport Layer Security, geçici modlarda mükemmel iletme gizliliği sağlamak için kullanılır. Bu yöntem RSA tarafından kısa bir süre izlendi [22]. Asimetrik algoritmalar kullanılarak açık anahtar şifrelemenin bir uygulamasıdır. Diffie-Hellman, ortak bir bağlantı üzerinden yapılan veri alışverişi sırasında gizli iletişimler için kullanılabilecek gizli bir paylaşım oluşturur [21]. Şekil 4.1 de gösterildiği gibi çok büyük sayılar yerine, renkler kullanılarak anahtar değişiminin genel fikrini göstermektedir. İşlemin önemli parçası sadece istemci 1 ve istemci 2 arasında, karışık bir ortamda gizli renklerin değişimidir. Sonunda matematiksel zor özdeş bir anahtar oluşturulur (modern süper bilgisayarlar için makul bir zamanda imkânsızdır) ve onların bir başkası tarafından dinlenmesi imkânsız hâle gelmektedir. İstemci 1 ve istemci 2, artık bu gizli ortak verilerin alışverişinde, onları şifrelemek ve deşifrelemek için bu algoritmayı kullanır. Başlangıç rengi (sarı) rastgele oluşmuştur fakat istemci 1 ve istemci 2 tarafından peşin olarak kabul edildiği unutulmamalıdır. Başlangıç rengi herhangi bir gizli rakip dinleyici varsayılır. Şekil 3.1 de gösterildiği gibi halka bile açık olabilir.

12 Şekil 3.1. Diffie-Hellman algoritması - istemci 1 ve istemci 2 haberleşme şeması Protokolün basit ve özgün uygulamasında p modülü çarpımsal grubunu kullanır, burada p asal ve g ilkel kök mod p dir. 3.2.2. Hash fonksiyonu MD5 MD5, bir önceki karma fonksiyonu MD4 yerine, 1991 yılında Ron Rivest tarafından tasarlanmıştır [27]. MD5 tipik bir 32 basamaklı on altılık sayı olarak metin biçiminde ifade edilen bir 128-bit (16-bayt) karma değeri, üretiminde yaygın olarak kullanılan şifreleme karma işlevidir. MD5 de geniş bir şifreleme uygulama çeşitliliği kullanılmıştır ve aynı zamanda genel olarak veri bütünlüğünü doğrulamak için kullanılır. MD5 karma fonksiyonunun güvenliği, ciddi tehlikeye düşebilir [15]. MD5 çözünükleriyle yaygın aktarılan bir dosya sağlam gelebilir, güvence sağlamak için yazılım dünyasında kullanılmaktadır. Çoğu UNIX tabanlı işletim sistemleri, dağıtım paketleri MD5 toplamı yardımcı programlardan oluşur; Windows kullanıcıları bir Microsoft yardımcı programını yüklerler ya da üçüncü parti uygulamaları kullanabilirler.

13 MD5 [15] tipik bir karma fonksiyondur ki bir giriş olarak M değişken uzunlukta mesaj alır ve bir 128-bitlik bir karma değerini MD5 (M) verir. Giriş mesajı M karma değer hâline getirilmeden önce ön işleme konmalıdır ki aşağıdaki üç aşamaya ayrılabilsin: 1. M 512 bit tam katlarıyla, dolgu bit (bir `1 birkaç `0` ile 448 mod 512 tarafından izlenen) ve 64 bit ile M uzunluğu ile doldurulur. 2. Dolgulu M0, 512-bit bloklar dilimlere bölünmüştür (M0, M1,, M( M0 /512-1)). 3. Her blok Mi ayrıca on altılı 32-bit kelimelerine bölünür (m0, m1,, m15). Her blok, MD5 sıkıştırılmış fonksiyonu (compression function) tarafından işlenir. Sıkıştırma fonksiyonu Mi alır ve bir 128-bit zincirleme değişken Hi girdi olarak ve çıkışları H i+1 dir. Değişken H 0, zincirlemeyi başlatmak için bazı sabitler ayarlanır: a0 = 0x67452301, b0 = 0xefcdab89, c0 = 0x98badcfe, d0 = 0x10325476. Formül (3.1) gibi H n kesin (exact) MD5 (M) olduğu MD5 algoritması iterated prosedür gösterilir. H 1 = CF(M0,H 0 ), H 2 = CF(M1,H1),, H n = CF(M n-1 ;H n-1 ) (3.1) Sıkıştırma fonksiyonu 64 adımdan oluşur: 1-16 adım, 17-32 adım, 33-48 adım ve 49-64. adımlara sırasıyla tur r 1, r 2, r 3 ve r 4 denir. q i (1 i 64) olduğu zaman adım i, 32-bit durumunu temsil eder ve qi,j, j-inci bit qi değeri için göstermektedir (j(0 j 31)). Başlatılan değişen değişkenler ile q-3= a0, q0=b0, q-1= c0, q-2=d0, qi(1 i 64) güncellenir (3.2): Qi = qi-1 + (qi-4 + fi(qi-1, qi-2, qi-3) + wi + ti) <<< si (3.2) Her durum kelimesinin q i modüler ek kullandığı+, sol dönüş <<< ve yuvarlak bağımlı fi Boolean fonksiyonudur. (3.3)

14 Nerede sırasıyla XOR, AND, OR ve NOT mantık işlemleri belirtmektedir. B, C ve D 32-bit durum kelimelerdir. Şekil 4.2 MD5 işleminin bir örneğidir: Şekil 3.2. Bir MD5 operasyonu Şekil 4.2 de gösterildiği gibi MD5, 64 operasyondan oluşur. 16 operasyon dört turda gruplandırılmış bir faaliyettir. F doğrusal olmayan bir fonksiyondur. Bir fonksiyon, her turda kullanılır. M i girdi mesaj olarak bir 32-bit bloğu ifade etmektedir ve K i her işlem için farklı bir 32-bit sabit ifade etmektedir. s,s yerlerde tarafından biraz sola döndüğünü gösterir; s her işlem için değişir. ise2 32 ilave modülosunu gösterir. 3.2.3. RSA algoritması RSA, uygulamaya geçirilebilir ilk genel anahtarlı kripto sistemlerinden biri olarak bilinen kripto sistemidir ve güvenli veri iletişimi için geniş oranda kullanılır. Bu kripto sisteminde, şifreleme anahtarı geneldir ve gizli tutulan şifrenin çözme anahtarından farklıdır. RSA daki bu asimetri, çarpanlara ayırma problemi olan iki büyük asal sayının sonucunun uygulamadaki çarpanlarına ayırma zorluğuna dayalıdır [28]. RSA; algoritmayı ilk defa 1977 de ortaya koyan Ron Rivest, Adi Shamir ve Leonard Adleman tarafından

15 bulunmuştur. Bir İngiliz matematikçisi olan Clifford Cocks, 1973 yılında eşdeğer bir sistem geliştirmişti ancak 1997 ye kadar açıklanmamıştı. Bir RSA kullanıcısı, bunların genel anahtarları olarak bir yardımcı değerle birlikte, iki büyük asal sayının çarpımını oluşturur ve sonra bunu yayınlar. Asal faktörler gizli tutulmalıdır. Mesajı şifrelemek için herkes bu açık anahtarı kullanabilir fakat hâlen yayınlanan yöntemlerle -eğer genel anahtar yeterince büyükse- sadece asal çarpanların bilgisine sahip bir kimse mesajın şifresini etkin şekilde çözebilir. RSA şifresinin kırılması, RSA problemi olarak bilinir. Çarpanlarına ayırma problemi şeklinde zor olsa da bu açık bir sorudur [29]. RSA, bir genel anahtar ile bir özel anahtar gerektirir. Genel anahtar herkes tarafından bilinir ve mesajların şifrelenmesi için kullanılır. Genel anahtarla şifrelenen mesajlar, özel anahtar kullanılarak sadece makul bir zaman süresi içinde çözülebilir. RSA algoritması için anahtarlar, aşağıdaki şekilde üretilir [28, 29, 30]: 1. p ve q olarak iki ayrı asal sayı seçin. o Güvenlik amacıyla, p ve q tam sayıları rastgele seçilmeli ve yakın bit uzunluğuna sahip olmalıdır. Asal tam sayılar, asallık testi kullanılarak etkin şekilde bulunabilir. 2. n = pq hesaplayın. o n, özel ve genel anahtarlar için mod değeri olarak kullanılacaktır. Bit olarak ifade edilen uzunluk, anahtarın uzunluğudur. 3. φ(n) = φ(p)φ(q) = (p 1)(q 1) hesaplayın, burada φ, Euler in totient fonksiyonudur. 4. Bir tam sayı seçin e bu 1 < e < φ(n) ve gcd(e, φ(n)) = 1; i.e., e ve φ(n) kendi aralarında asaldır. o o e ortak anahtar üssü olarak açıklanır. e bit uzunluğu kısa olan ve küçük Hamming ağırlığı, daha etkin şifreleme ile sonuçlanır en yaygın şekilde: 2 16 + 1 = 65,537. Bununla birlikte, daha da küçük e değerleri (3 gibi), bazı ortamlarda daha az güvenli olduğu görülmüştür. 5. d e 1 olacak şekilde d belirleyin (mod φ(n)); i.e., d, e nin çarpımsal tersidir (modülo φ(n)). Daha net şu şekilde açıklanır: d için çözüm, d e 1 (mod φ(n)) belirterek.

16 Bu işlem sıklıkla genişletilmiş Öklid algoritması kullanılarak hesaplanır. Modüler tam sayılar kısmında yalancı şifre kullanarak, a ve n girişleri sırasıyla e ye karşılık gelir ve sonra φ(n) e karşılık gelir. d özel anahtar üssü olarak tutulur. Genel anahtar, mod n ve genel (veya şifreleme) e üssünden oluşur. Özel anahtar, mod n ve özel (veya şifre çözme) d üssünden oluşur ki bu gizli tutulmalıdır. p, q ve φ(n), yine gizli tutulmalıdır çünkü d yi hesaplamak için kullanılabilirler. Alternatif olarak PKCS#1 tarafından kullanılarak d seçilir; λ = lcm(p 1, q 1) ile de 1 (mod λ) uyar, burada lcm, en düşük ortak çarpandır. φ(n) yerine λ kullanılması, d için daha fazla seçime izin verir λ ayrıca, Carmichael fonksiyonu, λ(n) kullanılarak tanımlanabilir. ANSI X9.31 standardının öngördüğü, IEEE 1363 ün açıkladığı ve PKCS#1 in izin verdiği, p ve q uygunluğu ek gereklilikler ister: Güçlü asalların olması ve Fermat faktörizasyonunun hata vermesine yetecek kadar farklı olmasından dolayı şifreleme yapmak için, İstemci 1, kendi genel anahtarını (n, e) İstemci 2 ye gönderir ve özel anahtarı gizli tutar. İstemci 2, M mesajını İstemci 1 e göndermek ister. İlk olarak M yi m tam sayısına dönüştürür; yani 0 m < n bir dolgu şeması olarak üstünde mutabık kalınan ters protokol kullanılır. Daha sonra aşağıdakine karşılık gelen c şifreli metnini hesaplar: c= m e (mod n). Bu işlem, karesini alıp üs alma yöntemiyle çabucak yapılır. İstemci 2 sonra c yi İstemci 1 e gönderir. En azından dokuz m değerinin, m ye eşit bir şifreli metin c vereceğini not edin; fakat bunun uygulamada ortaya çıkması -neredeyse hiç- muhtemel değildir. Şifre çözme için, İstemci 1, aşağıdakini hesaplayarak kendisinin özel anahtar üssü d yi kullanarak, c den m yi elde edebilir: m= c d (mod n). m yi bulduktan sonra dolgu şemasının tersini alarak orijinal mesaj M yi elde eder. 3.2.4. Veri şifreleme standardı Veri Şifreleme Standardı, elektronik verilerin şifrelenmesi konusunda, daha önceki geçerli simetrik anahtar algoritmasıdır. Akademik dünyada modern şifreleme ilerlemesinde çok yüksek etkiye sahipti. 1970 lerin başında IBM de, Horst Feistel in eski bir tasarımına dayalı olarak geliştirilen algoritma, hassas, sınıflandırılmamış resmi verilerin korunması

17 için teklif edilerek ajansın davetini takiben Ulusal Standartlar Bürosuna gönderilmiştir [31, 32, 33]. Veri şifreleme standardı, birçok uygulama için güvensiz olarak nitelendirilmekteydi. Bunun başlıca nedeni, 56 bitlik anahtar boyunun çok küçük kalmasıydı; Ocak 1999 da, distributed.net ile Electronic Frontier Vakfı, bir veri şifreleme standart anahtarını 22 saat 15 dakika içinde halka açık olarak kırmak üzere işbirliği yaptı. Uygulamada bir araya getirmek için bunlar uygun olmasa da şifredeki teorik zayıflığı gösteren bazı analitik sonuçlar da bulunmaktaydı. Teorik saldırılar bulunmasına rağmen, üçlü veri şifreleme standardı biçiminde, algoritmanın pratik olarak güvenli olduğuna inanılmaktaydı. Geçen yıllarda şifre, İleri Şifreleme Standardı ile yer değiştirdi. Bunun dışında, veri şifreleme standardı, Ulusal Standartlar ve Teknoloji Enstitüsü (eski Ulusal Standartlar Bürosu) tarafından bir standart olmaktan çıkartılmıştır.

18

19 4. MD5, ORTALAMA KAYDIRMA VE DIFFIE HELLMAN ALGORİTMALARININ SİSTEME UYGULANMASI Bu bölümde, geliştirilen programın detayları ve algoritmaların uygulanabileceği ortamlar hazırlanmıştır. İstemci ile sunucu arasındaki veri iletişimi, bağlantının nasıl olduğu ve geliştirilmiş programın yapısı ile akışı ele alınmıştır. 4.1. İstemci Bir sohbet sunucusu sisteminin; bilinen soketlerle, protokollerle ve ağ programlamayla, istemciler arasında gönderme ve alma verileriyle bir sohbet sunucusu sisteminin oluşturulması mümkündür. Ancak, sunucu ile istemci uygulaması arasındaki mevcut senkronizasyon türünün üretilmesi gerekmektedir. Uygulamada, TCP/IP protokolu kullanılarak geliştirlen program iki uygulama hâlinde sunulmuştur. Uygulamaların nasıl çalıştığı ve birbiriyle nasıl senkronize edildiği önemli bir meseledir. Bağlantı yöntemini gerçekleştirmek için Host adını ve uzaklık portunu, uzak bir bilgisayara bağlamak gerekmektedir. Sunucu uygulamasının, istemci sisteminden bir TCP isteği beklemesini sağlamak için, bu uygulamada dinleme yöntemi çalıştırılır. İstemci formu iki kısma ayrılır: 1- Kullanıcılar ya da istemciler tarafından girilen metinlere ait bir metin kutusu. 2- Sunucu uygulamasını sağlayan metin kutusunun içeriği: Çalışma sırasındaki bağlantı bilgileri, gönderme verisi, bağlı olan kullanıcıların adı, Diffie-Hellman algoritmasının anahtar değişkenleri, görüşmelerdeki şifrelenmiş metinler. Bir IP adresini girdiği anda sunucuya bağlanmak üzere istediği Host adı ve en son connect tuşuna basılarak sohbet başlatılır. Şekil 4.1 de istemci formu gösterilmiştir.

20 Şekil 4.1. İstemci formu Bu bağlantı işlemi sırasında istemciler, yeni bir sohbet çi olduğunu bildiren veriyi sunucuya gönderir. Sunucu, bağlantı IP sini ve kullanıcı adını ayrıştırır ve bu kullanıcı adını onun listesine ekleyip istemci formunda connected user ı güncellemek üzere, diğer özdeş kontrol dizisini tüm bağlı kullanıcılara yeniden iletir. Ayrıca, ClinetTestSocket bağlantının soketini denetler ve teklif edilen sohbet yapma sisteminde yeni istemcileri ortaya çıkarmak üzere, yeni istemci soketleri oluşturur. (Java İstemci Kodu, Çizelge 4.1 de yapılandırılmıştır). (EK-2 de gösterilmiştir).

21 Çizelge 4.1. İstemci kodu package com.master.client; // ClientTest.java // Test the Client class. import javax.swing.jframe; public class ClientTestsocket { public static void main( String args[] ) { readfile f= new readfile(); Clientsocket application; // declare client application // if no command line args application = new Clientsocket( f.getip() ); application.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); application.runclient(); // run client application } // end main } // end class ClientTest 4.2. Sunucu Bu kısma kadar sunucu uygulamasının, bir veri alan ve bir de ileten olmak üzere bir çiftten oluştuğu görülmektedir. Aslında her şeyi doğru düzene koymak amacıyla bir traffic officer rolü oynanmaktadır. Sohbet yapma işlemlerinin hepsi sunucudan geçtiğinden, sunucunun temel işi, input ve output isteklerinde görüldüğü şekilde, istemciler tarafından gönderilen kontrol dizilerine cevap vermektir. Sunucu tarafındaki NetworkControl() fonksiyonu, bağlantıyı incelemekle ilişkili olarak uygulanmıştır (Çizelge 4.2). (EK-5 te gösterilmiştir).

22 Çizelge 4.2. Sunucu kodu package com.master.server; import java.net.*; import java.io.*; import java.net.socket; public class MainServer { private User_2 Clients[]= new User_2[2]; private ServerSocket server; // server socket private Socket connection; // kullanıcı ile bağlantı kurmak private int ClientCounter=0; MainServer() { runserver(); } public void runserver() { try { server = new ServerSocket(1800); while(true) { System.out.println( wait ); waitforconnection(); // bağlanıtıyı beklemek } } catch (IOException e) { System.out.print(e.getMessage()); } } public void waitforconnection() throws IOException { connection = server.accept(); networkcontrol(); } public void networkcontrol() { if (ClientCounter!=2) { try {

23 Çizelge 4.2. (Devam) Sunucu kodu } } } else Clients[ClientCounter]=new User_2(); Clients[ClientCounter].init(connection, ClientCounter); Clients[ClientCounter].start(); ClientCounter++; System.out.println( ClientCounter= +ClientCounter); } catch (IOException e) { e.printstacktrace(); } System.out.println( No more Clients ); Çizelge 4.2 deki kodu çalıştıran istemci ile sunucu arasındaki ağ bağlantısı Şekil 4.2 de gösterilmektedir. Ağ bağlantısı gerçekleşmiştir ve istemciler arasındaki anahtar değişkenler belirlenmiştir (p=337 ve g=37). İstemciler arasındaki gizli anahtar da 79 dur.

24 Şekil 4.2. Ağ kontrol formu Sunucu: İstemcilere bağlanabilmek için istemcilerin IP lerini sunucuya belirtmesi gerekmektedir. İstemcilerin IP lerini sunucuya belirttikten sonra, istemci-sunucu arasında bağlantı sağlanmaktadır. Şekil 4.3 te sunucu, istemcilere IP sini belirtmiş ve ağ bağlantısı bilgilerini göstermiştir. (EK-11 de gösterilmiştir).

25 Şekil 4.3. Ağ bağlantısı ayrıntıları Sunucunun IP si, Config.HCP dosyasındadır ve istemci tarafında saklanmaktadır. İstemci bu IP yi kullanarak sunucuya bağlanmaktadır. Sunucu tarafında aşağıda Şekil 4.4 te gösterildiği gibi iki istemci arasındaki kullanıcı bilgisayarlarında çalışmaya başlamaktadır.

26 Şekil 4.4. İki farklı istemcide çalışan sohbet programı 4.2.1. Kullanıcılara izin verilmesi Bu uygulamada, TCP/IP kolaylıklarını kullanmak üzere iki program geliştirilmiştir. Geliştirilen programlardan biri istemci, diğeri ise sunucu rolündedir. İstemci bir soket başlatıp ve sunucuya bir bağlantı isteği göndermektedir. Yapılacak bağlantı için istemci, bağlantı yapma modunda; sunucu ise dinleme modundadır. Bir bağlantı için, gerekli tüm şartların uygun olduğunu ve bu bağlantıyı oluşturmak için her iki uygulamanın da hazır hâlde olması gerekmektedir. Bir bağlantının belirlenmesi için dinleme modunda olan sunucuya, birinci istemci bir bağlantı isteği gönderir. Sunucu, bu bağlantıyı kabul eder ve ilgili soket kendini dinleme modundan bağlantı moduna geçirir. Bu anda diğer kullanıcı, sunucu için başka bağlantı isteği göndermektedir. Sunucu, bağlantı modunda bulunmaktadır ancak dinleme moduna geçmesi gerektiğinden, bu istek otomatik şekilde reddedilir. Başka kullanıcıların da sunucuya bağlanmalarını sağlamak için, NetworkControl() fonksiyonu, bağlantıyı denetler ve bu denetimi, kendisinde bulunan komuta eklemektedir.

27 Network Control() fonksiyonu bir soket oluşturmaktır. Bir istemci, bir soketi istediği zaman, sunucunun bu soketi (bağlantını) istemciye dizi yapısı gibi sağlaması gerekmektedir. Sunucu uygulamasının ilk çalıştığında, soketlerden oluşan bir dizi oluşturur ve WaitForConnection() fonksiyonu ile soket dinleme moduna dönüştürülür. Bir istemci bir bağlantı talep ettiğinde, bu bağlantının hemen kabul edilmesi gerekmektedir. Sunucu, oluşturulan soket ile yakalanmış olan bağlantıyı alır ve boş soketler için diğer soket indekslerini taramaya başlar. Bir soket açıklayıcısını bulduğu anda, bu istemciyi ilgili sokete alır ve kullanılmaya başlanan son soketin numarasını günceller ve başka bir kullanıcı sunucuya erişmeye çalıştığında şekil (4.3) de gösterildiği gibi oluşturulan sokette dinleme moduna dönmesi gerekmektedir. Bağlantı işlemlerinin tümü, server.accept() fonksiyonunda yapılmaktadır. 4.2.2. Kullanıcı izlerinin tutulması Sohbet sistemlerinde, IP den IP ye özel bir sohbet yapmak mümkün olabilmektedir. Geliştirilen bu sohbet sisteminde, sunucu tekniği kullanılmıştır. Ancak buradaki problem, teslim işlemi ve bu işlemin çalışma biçimidir. Bu nedenle sunucunun, her bir kullanıcının hangi sokete bağlı olduğunu ve mevcut pencere numarasını bilmesi gerekmektedir. Bir kullanıcının izni ve hangi sokete bağlı olduğu bilgisini tespit etmek için, kullanıcı adı ve soket numarası alanlarını içeren bir Çizelgedan oluşan bir veri tabanı kullanılmaktadır. Bir kullanıcı sunucuya bağlı olduğu zaman, kullanıcı adı ile soket numarası, otomatik olarak veri tabanına eklenir. Özel sohbet başlatmak için kullanıcı ne zaman bir kullanıcı adına göre kullanıcı seçerse, kullanıcılar hedef soket numarasını ve kaynak soket numarasını seçen bir sorguyu sunucuya hemen aktarmaktadır ve hedef soketini kaynağa, kaynak soketini de hedefe göndermektedirler. Bu andan itibaren, bu soket adresleri, gönderilen mesajı kapsar, nereden geldiğini ve nereye gitmesi gerektiğini biliyormuş gibi sunucu tarafından belirtir ve böylece iletişim saglanmış olur.

28 4.3. Güvenli Sohbet Programının Çalıştırılması Bu kısımda, geliştirilen yöntemin nasıl uygulandığına dair bir örnek uygulama tasarlanmıştır. Bu çalışmayı denetlemek için Wireshark Analyzer programı kullanılmıştır. Bir istemci, özel bir oturumu başlatmak istediği zaman, karşı tarafla sohbet yapmak istediği kullanıcının adını seçmesi gerekmektedir. İlk olarak, lokal bir özel oturum penceresi açılır. Ardından istemci, bir özel oturum penceresi açarak özel sohbet yapmak istediğini sunucuya bildirir. Bu şartlar yerine getirildikten sonra sadece metin gönderme kutusuna iletiyi yazmak ve sonra klavyedeki enter tuşuna basmak yoluyla özel görüşme başlatılır. Şekil 4.5 te Ferhat ve Hüseyin olarak isimlendirilen iki kullanıcı arasındaki özel oturum formu gösterilmiştir: Şekil 4.5. Özel oturum formu

29 4.3.1. Şifreleme Sunucu ile istemci arasında doğrulama oluşturulduktan sonra, veriler şifreli hâlde gönderilir. Bu işlemi gerçekleştirmek için Diffie-Hellman algoritması kullanılmıştır. Diffie-Hellman algoritması, iki organizasyonun ortak bir anahtar üretmesine imkân sağlar. Bu anahtarın üretilmesinin ardından simetrik anahtar şifrelemesiyle verinin gönderilmesi gerekmektedir [31, 32]. Diffie-Hellman algoritması ile çalışmanın bir yolu da önce iki hedefte aynı p ve g miktarlarını tanımlamak ve bu anahtara bağlı olarak veriyi göndermeye başlamaktır. istemci 1 ile istemci 2 arasında bir Diffie-Hellman nümerik örneği, Çizelge 4,3 te gösterilmektedir. p ve g, istemciler tarafından kabul edilen ve sırasıyla 433 ve 23 e eşit olan asal sayılardır. Çizelge 4.3. İstemci 1 ile İstemci 2 Arasındaki Diffie-Hellman Algoritması Client 1 and Client 2 agree to use a prime number p=433and base g=23. 2. Client 1 chooses a secret integer a=4 and, then sends Client 2 A = g a mod p o A = 5 6 mod 23 o A = 625 mod 23 o A = 4 3. Client 2 chooses a secret integer b=10, and then sends Client 1 B = g b mod p o B = 5 10 mod 23 o B = 9765625 mod 23 o B = 9 4. Client 1 computes s = B a mod p o s = 9 4 mod 23 o s = 6561 mod 23 o s = 6 5. Client 2 computes s = A b mod p o s = 4 10 mod 23 o s = 1048576 mod 23 o s = 6 6. Client 1 and Client 2 now share a secret: s = 6. This is because 4*10 is the same as 10*4. Sosomebody who had known both these private integers might also have calculated s asfollows: o s = 5 4*10 mod 23 o s = 5 10*4 mod 23 o s = 5 40 mod 23 o s = 9094947017729282379150390625 o s= 6

30 Çalışmada kullanılan algoritma; Diffie-Hellman, Ortalama Kaydırma ve MD5 algoritmalarının bir birleşimidir. Önerilen yöntemde, iki kullanıcı birbirleriyle görüşürken birinci ve ikinci aşamalarda sırasıyla Diffie-Hellman ile tüm sohbet programlarında kullanılan Ortalama Kaydırma (Shift) algoritmaları kullanılmaktadır. Daha sonra, önceki seviyelerde elde edilen şifreleme numarası, sohbet metnine eklenir. Ve diğer aşamada ulaşılan dizide, önceki aşamanın çıktısı olan MD5 algoritması gerçekleştirilir. İstemciler arasında iletim sağlanırken üçüncü kişi sadece konuşmanın şifrelenmiş hâlini elde edebilir yani konuşulan metin istemciler arasında şifreli olmaktadır. Geliştirilen yöntem, detaylı olarak Şekil 4.6 da gösterilmiştir. Şekil 4.6: Şifreleme için önerilen yöntem

31 Şifrelenmiş metni alan istemci, verinin şifresinin çözülmesi için gizlilik kaygısıyla ve istemci-sunucu arasında bilgileri gönderen kullanıcıların suistimalinden dolayı, önerilen yöntemin ters yolunu sağlamasını istemcilerde kullanılmıştır. Şekil 4.7 de görüldüğü gibi konuşma hem istemciler ile sunucu arasında hem de sonucuda şifrelenmiştir. (EK-1 de gösterilmiştir). Şekil 4.7. Sunucu ve istemciler arasında bilgi gizliliği 4.3.2. Uygulama sonuçları Uygulamada kullanılan Wireshark, ücretsiz ve açık kaynaklı bir ağ protokol analizörüdür. Bu program; ağda sorun giderme, analiz, yazılım-iletişim protokolü geliştirme ve eğitim amaçlı kullanılmaktadır. Bu uygulamada, istemciler arasındaki iletişimin gerçekleşme biçimini analiz etmek üzere, Wireshark 1.8.3 aracı kullanılmıştır. Buna göre kullanıcılar - geliştirilen sohbet programında tanımlanan kullancılar Ferhat ve Hüseyin- birbirleriyle sohbet ederken Wireshark Analyzer i, Şekil 4.8 de gösterildiği gibi, sohbet sisteminde görüşme içeriğini şifrelenmiş metin olarak göstermektedir.

32 Şekil 4.8. Görüşmenin şifrelenmiş gösterimi Bu çalışmada, geliştirilen güvenli sohbet sistemi, Şekil 4.8 de gösterildiği gibi veri şifrelemesi için Diffie-Hellman, MD5 ve Ortalama Kaydırma algoritmalarının birleşiminden oluşturulan yöntemi kullanmaktadır. Geliştirilen sohbet sisteminin performansını ölçmek için, Wireshark Analyzer i kullanılmıştır ve Şekil 4.8 de göründüğü gibi konuşulan metinler şifreli hâlde görüntülenmektedir. Yahoo Messenger, MSN vb. sohbet programları çalışmada geliştirilen sistemdeki gibi güvenli bir sohbet ortamında sahip değildir. Bu geliştirilen yöntem, çalışmanın temel özgün avantajı olarak değerlendirilmelidir. İstemci den sunucu ya giden taraf da açık, sunucu dan istemci lere giden taraf da açıktır. Bunu gerçekleştirmek için iki kullanıcı Yahoo Messenger üzerinden kendi ID leri ile sohbete başlar ve sonra Şekil 4.9 da görüldüğü gibi içerik Wireshark Analyzer da görüntülenir.

33 Şekil 4.9. Wireshark Analyzer de Yahoo Messenger görüşmesinin gösterimi Şekil 4.9 da görüldüğü gibi, kullanıcılar Yahoo Messenger da sohbet ederken, görüşmeleri başka kişilere açık ve görünür hâldedir. Ayrıca, Wireshark Analyzer i, Yahoo Messenger ve MSN görüşmesinin içeriğini kolayca görüntüleyebilmektedir. Örneğin, Yahoo Messenger da bir kullanıcı -Ferhat- diğer kullanıcıya -Hüseyin-, Merhaba husein nasilsin? dediğinde, bu konuşma Wireshark Analyzer de görüntülenmiştir. Fakat aynı konuşma Wireshark Analyzer de şifreli olarak gösterilmiştir. Ancak sadece gönderici ile alıcı bu görüşmenin içeriğini bilmektedir. Bu avantaj, görüşmenin herhangi bir şekilde kötüye kullanımı önler, gizliliğini sağlar.

34

35 5. SONUÇ VE ÖNERİLER Günlük hayatta sıklıkla kullanılan sohbet programlarında birçok güvenlik açığına rastlanmaktadır. Bu durum, sohbet programlarını kullanılan kişilerin çok önemli bilgilerinin başkaları tarafından ele geçirilmesine sebep olmaktadır. Yeni teknolojileri kullanan güvenli sohbet sistemlerinin tasarlanması, insanların fikir gizliliğinin korunması adına çok önemlidir. Bu noktadan yola çıkarak, bu çalışmada, JAVA dilinde MD5, Ortalama Kaydırma ve Diffie-Hellman algoritmalarının karmasıyla, istemciler arasında yeni bir güvenli sohbet sistemi tasarlanmıştır. Bu çalışmada: 1- Geliştirilen yöntemde, görüşmenin herhangi bir şekilde kötüye kullanımı önleyen, gizliliği koruyan, MSN, Yahoo vb. sohbet programlarına uygulanabilecek bir karma güvenlik algoritması geliştirilmiştir. 2- MD5, Ortalama Kaydırma ve Diffie-Hellman algoritmalarının karmasıyla yeni bir güvenli sohbet programı geliştirilmiştir. Söz konusu üç algoritmanın birleştirilmesiyle yapılan bu çalışmayla mevcutta kullanılan popüler sohbet programlarına göre daha güvenli bir sohbet ortamı sağlanmıştır. Mevcut sohbet programlarının ne kadar güvensiz olduğunu göstermek için Wireshark Analyzer programı ile güvensizlik gösterilmiş ve bu güvensizliği yaratan güvenlik açıkları geliştirilen çalışmayla güvenli hâle getirilmiştir. Ardından gelirştilen programın ne kadar güvenli olduğu bir Wireshark Analyzer programı ile ispatlanmıştır. Oluşturulan bu güvenli programla birlikte insanların fikirlerinin gizliliği sağlanmış, bu programla insanlar güvenli bir şekilde düşüncelerini, yaşantılarını paylaşabilir hâle gelmiştir. Program sayesinde diğer programların da güvensizliği ortaya konulmuştur. Teknolojinin faydalı amaçlar için kullanılması şarttır. Bundan dolayı bu program alanındaki bir boşluğu da dolduracaktır. Geleceğe yönelik çalışmalara öneri olarak sohbet sistemlerinde, sohbet ortamındaki kullanıcıların çevrimiçi gösterimi, sesli ve görüntülü sohbet yeteneği ve çevrimdışı mesaj saklama yeteneği gibi kullanıcı özelliklerinin geliştirilmesi önerilebilir.

36

37 KAYNAKLAR 1. Kearns, M., Isbell, C., Singh, S., Litman, D., Howe, J. (2002). Cobot DS: A spoken dialogue system for chat. Proceedings of AAAI, 1-6. 2. DAVIS R.B. (1974). What classroom role should the PLATO computer system play?, From the collection of the Computer History Museum, 169-174. http://www. computer.org/csdl/proceedings/afips/1974/5082/00/50820169.pdf Erişim Tarihi 10.01.2014. 3. Prendinger, H., Ishizuka, M. (2004). Life-like characters.tools, affective functions, and applications. Cognitive Technologies. Springer Verlag, Berlin Heidelberg. 4. Cassell, J., Vilhj almsson, H. (1999). Fullyembodied conversational avatars: Making communicative behaviors autonomous. Autonomous Agentsand Multi-Agent Systems, (2), 45 64. 5. Takahashi, T. (2005). TelMeA-Expressive avatars in asynchronous communications. International JournalofHuman-Computer Studies, (62), 193 209. 6. Dewes, C., Wichmann, A., Feldmann, A. (2003). An analysis of ınternet chat systems, IMC 03, October 27 29, Florida, USA, ACM. 7. Van Dyke, N.W., Lieberman, H., Maes, P. (1991). Butterfly: A conversationfindingagent for ınternet relay chat. in: Proceedings of the Forth International Conference on Intelligent User Interfaces, ACM, 39 41. 8. Özyurt, O., Köse, C. (2010). Chatmining: Automatically determination of chat conversations topic in Turkish textbased chat mediums. Expert Systems with Applications, (37) 8705 8710. 9. AOL Inc., AOL Instant Messenger. http://www.aim.com/index.adp, Last Available: Erişim Tarihi: 01.12.2013. 10. Chen, D., Sun, C., (2002). Real-time text chat via collaborative editing systems. The Fourth International Workshop on Collaborative Editing, 1-4. 11. Lee, D. T., Shieh, S. P., Tygar. J. D. (2005). Computer security in the 21st century, Security and Cryptology, Springer. 12. Bin Hamid Ali, F. A., Aydah, S. M. (2012). Development of prototype chat system using mobile platform for disable people. International Conference on Asia Pacific Business Innovation Technology Management, Social and Behavioral Sciences. (57) 33-39. 13. Gupta, S., Sharma, J. (2012). A hybrid encryption algorithm based on RSA and Diffie- Hellman, 2012 IEEE International Conference on Computational Intelligence & Computing Research (ICCIC), Coimbatore, 1-4.

38 14. Bresson, E., Chevassut, O. and Pointcheval, D. (2002). The Group Diffie-Hellman problems, Workshop on Selected Areas in Cryptrography, 325-338. 15. Wang, X., Yu, H. (2005). How to Break MD5 and Other Hash Functions. EUROCRYPT 05 Proceedings of the 24 th Annual International Conference on Theory and Applications of Cryptographic Techniques, 19-35. 16. Büyükbalkan, F., (2001). Şifreleme algoritmalarının ortak kullanımının şifreleme gücüne etkileri ve bir e-posta yazılımı uygulaması. Yüksek Lisans Tezi, G.Ü. Fen Bilimleri Enstitüsü, Elektronik-Bilgisayar Eğitimi Anabilim Dalı, Ankara. 17. Hanoymak, T., (2012). Açık anahtar şifreleme sistemlerinin ispatlanabilir güvenliği, Doktora Tezi, Orta Doğu Teknik Üniversitesi Uygulamalı Matematik Enstitüsü Kriptografi Anabilim Dalı, Ankara. 18. Lynn Mcnulty F. (1999). Encryption s importance to economic and infrastructure security, 9 Duke Journal of Comparative & International Law, 9(2), 427-450. 19. Abdalla, M., Bellare, M. and Rogaway, P. (2001). DHIES: An encryption scheme based on the Diffie-Hellman problem. In Proc. of ACM CCS 01, ACM Press September18. 20. Bresson, E., Chevassut, O., Pointcheva, D., Quisquater, J. J. (2001). Authenticated Group Diffie-Hellman Key Exchange. Computer and Communication Security- proc of ACM CSS 01, Philadelphia, Pennsylvania, USA, 255-264, ACM Press, November 5-8. 21. SANS Institute Info Sec Reading Room. A Review of the Diffie-Hellman Algorithm and its use in Secure Internet Protocols, Available at: http://www.sans.org/reading- room/whitepapers/vpns/review-diffie-hellman-algorithm-secure-internet-protocols- 751. Erişim Tarihi: 01.10.2013. 22. Paul C. Kocher, Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems. Cryptography Research, Inc. 607 Market Street, 5th Floor, San Francisco, CA 94105, USA. Available at: http://www.cryptography.com/public/ pdf/timingattacks.pdf, Erişim Tarihi: 15.09.2013. 23. Wagner, D., and Bruce, S., Analysis of the SSL 3.0 Protocol, PDF document, available at: https://www.schneier.com/paper-ssl-revised.pdf, Erişim Tarihi: 15.09. 2013. 24. Kaur, V., Singh, A. (2013). Review of various algorithms used in hybrid cryptography, IJCSN International Journal of computer Science and Network, 2 (6), 157-173. 25. Bryant, L., Ward, J. Caesar Ciphers: An Introduction to Cryptography, Available at: http://www.purdue.edu/discoverypark/gk12/downloads/cryptography.pdf Erişim Tarihi: 10.10.2013. 26. Yerlikaya, T., Buluş, E., Buluş, N. (2006). Kripto algoritmalarinin gelişimi ve önemi, AKADEMİK BİLİŞİM, Şubat, 1-5, 9-11. 27. Dobbertin, H., (1996) The Status of MD5 after a Recent Attack. available at: ftp://ftp.rsasecurity.com/pub/cryptobytes/crypto2n2.pdf Erişim Tarihi: 07.11.2013.

39 28. Blomer, J., Otto, M., Seifert, J.P. (2003). A new CRT-RSA algorithm secure against bellcore attacks. CCS 03 Proceedings of the 10th ACM conference on Computer and communications security, New York, USA. 311-320, 29. Aumuller, C., Bier, P., Fischer, W., Hofreiter, P. Seifert, J.-P. (2002). Fault attacks on RSA with CRT: Concrete results and practical countermeasures, In Workshop on Cryptographic Hardware and Embedded Systems, (CHES 2002), Hotel Sofitel, San Francisco Bay (Redwood City), USA, August 13 15. 30. Boscher, A., Naciri, R., Prouff, E. (2007). CRT RSA Algorithm Protected Against Fault Attacks, Information Security Theory and Practices. Smart Cards, Mobile and Ubiquitous Computing Systems Lecture Notes in Computer Science. (446), 229-243. 31. Gharehchopogh, F. S., Aliverdiloo, R., Banayi, V. (2013). A new communication platform for data transmission in virtual private network, International journal of Mobile network communications and Telematics (IJMNCT), 3(2), 1-9. 32. Yoon, E. J. and Yoo, K. Y. (2009). An efficient Diffie-Hellman-MAC key exchange scheme. Fourth International Conference on Innovative Computing, Fourth International Conference on Innovative Computing, Information and Control (ICICIC), 398-400. 33. Yan, Z., Chen,Y., Shen, Y., (2013). Apractical reputation system for pervasive social chatting, Journal of Computer and System Sciences, (79), 556-572.

40

EKLER 41

EK 1. Diffie Hellman 42

EK 1. (devam) Diffie Hellman 43

44 EK 1. (devam) Diffie Hellman EK 1. (devam) Diffie Hellman

45

EEK 2. İstemci 46

EK 2. (devam) İstemci 47

48 EK 3. İstemici socket EK 3. (devam) İstemici socket

49

50 EK 3. (devam) İstemici socket EK 3. (devam) İstemici socket

EK 3. (devam) İstemici socket 51

E 52 EK 4. İstemci text

53

EK 5. Ana sunucu 54

EK 5. (devam) Ana sunucu 55

56 EK 6. MD5 EK 6. (devam) MD5

EK 6. (devam) MD5 57

E 58

EK 7. Ortalama kaydırma 59

E EK 60 7. (devam) Ortalama kaydırma Ek EEK 7. (devam) Ortalama kaydırma

EK 8. Dosya okuma 61

EK 9. Sunucu 62

63

64 EK 9. (devam) Sunucu EK 10. Diffie-Hellman deneme

65

66 EK 11. İstemci 2 EK 11. (devam) İstemci 2

67

68 ÖZGEÇMİŞ Kişisel Bilgiler Soyadı, adı Uyruğu : ALGOLAK, Hussein : Irak Doğum tarihi ve yeri : 02/01/1986 Irak Medeni hali : Bekâr Telefon : 0 554 504 28 86 e-mail : hussin_h1985@yahoo.com Eğitim Derece Eğitim Birimi Mezuniyet Tarihi Yüksek Lisans Bilgisayar Eğitimi Gazi Üniversitesi Devam ediyor. Lisans Bilgisayar Eğitimi Mustansriya Üniversitesi 2010 Lise Telafer Lisesi 2004 Yabancı Dil Arapça Hobiler Kitap okuma, teknolojiyi takip etmek, futbol, basketbol, yüzme.

GAZİ GELECEKTİR... 69