WebRTC iletişim güvenliğinin blokzincir tabanlı akıllı kontrat kullanılarak arttırılması
Improving WebRTC communication security by using blockchain based smart contrats
Yazar: BERAT YILMAZ
Danışman: PROF. DR. SUAT ÖZDEMİR
Gazi Üniversitesi / Bilişim Enstitüsü / Bilişim Sistemleri Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Ağ güvenliği = Network security ; Bilgi güvenliği = Information security ; Bilgisayar ağları güvenliği = Computer networks security ; Bilgisayar iletişimi = Computer communication ; Gerçek zamanlı video aktarımı = Real time video transmission ; Ses iletişim sistemleri = Voice communication systems ; Veri güvenliği = Data security ; Veri iletişimi = Data communication

Özet:
Internet erişiminin kolaylaşmasının kaçınılmaz bir sonucu olarak, günümüzde çevrimiçi olma kavramı artık sıradanlaşmıştır. Internet'e erişimin kolaylaşmasının yanı sıra her geçen yıl artan internet bant genişlikleri, yükselen kotalar ve giderek azalan erişim ücretleri; gerçek zamanlı ses ve görüntülü görüşme uygulamaları için uygun zemini oluşturmuştur. WebRTC gerçek zamanlı veri iletişimi yapan bu uygulamalara altyapı oluşturan en popüler teknolojilerden biridir. Askeri ve sivil hayatta kullanılan birçok uygulama arka planda doğrudan ya da dolaylı olarak WebRTC teknolojisini kullanmaktadır. Hâl böyle olunca, WebRTC ile kurulan iletişimin güvenliği de büyük önem kazanmaktadır. Bu tez çalışmasında her biri oldukça yeni ve popüler blokzincir ve akıllı kontrat teknolojilerinden faydalanılarak, ağ üzerinde eşler arasında gerçek zamanlı iletişim altyapısı sağlayan WebRTC'nin mevcut güvenlik altyapısının güçlendirilmesi amaçlanmıştır. Tez kapsamında, blokzincir etkileşimleri ile önerilen güvenlik geliştirmelerini içeren görüntülü konuşma demosunun bulunduğu web tabanlı bir uygulama geliştirilmiştir. Uygulamada, canlı Ethereum ağına yerleştirilmiş akıllı kontrat üzerinde kullanıcı ekleme, güncelleme, iletişim yetkisi tanımlama vb. gibi işlemler gerçekleştirilebilmektedir. Blokzincirlerinin değiştirilemezlik prensibi temel alınıp akıllı kontrat üzerindeki kullanıcılar, kurulacak WebRTC iletişimindeki eşler(düğümler) ile eşleştirilip kimlik doğrulama sürecinde kullanılmıştır. Sonuç olarak, WebRTC ile kurulacak olan gerçek zamanlı iletişimlerde eşlerin birbirlerini blokzinciri üzerinde doğrulayabildiği ve böylece ortadaki adam saldırılarının dahi tespit edilip engellenebildiği bir güvenlik yaklaşımı önerilmiştir.

Abstract:
As an inevitable consequence of facilitating Internet access, the concept of being online is now ubiquitous. In addition to the ease of access to the Internet, increasing bandwidths and quotas with decreasing access fees form the basis for real-time voice and video calling applications. WebRTC (Web Real-Time Communication) is one of the most popular technologies that provides the infrastructure for real-time data communications. Many applications used in military and civilian life depend on WebRTC technology directly or indirectly in the background. Under these circumstances, the security of WebRTC communications is of great importance. In this thesis, it is aimed to strengthen the existing security infrastructure of WebRTC, which provides real-time communication infrastructure between peers on the network, by making use of quite new and popular blockchain and smart contract technologies. Within the scope of the thesis, a web-based application with video calling feature demonstrating blockchain interactions and suggested security enhancements has been developed. In the application, operations such as adding, updating and authorizing users can be performed on the smart contract deployed on live Ethereum network. Based on the principle of immutability of blockchains, users on the smart contract are mapped to the peers (nodes) in the WebRTC communication to be established and used in the identity verification process. Consequently, this thesis proposes a secure identity verification method that could be used by real time WebRTC communication peers to verify each other on the blockchain, even detecting and preventing man-in-the-middle attacks in the process.