2026Kapalı kaynak
Cipher - Bitirme Projesi
- Go
- Flutter
- WebRTC
- Gomobile
- Firebase
- AES-256-GCM
Genel bakış
Ekip arkadaşımla geliştirdiğimiz, merkezi sunucu kullanmayan (P2P) mobil mesajlaşma uygulaması. Go ile yazdığımız iletişim çekirdeğini Gomobile ile Android ve iOS'a derleyip Flutter uygulamasına bağladık. Mesajlar AES-256-GCM ile şifrelenip önce WebRTC, olmazsa UDP üzerinden doğrudan gidiyor; teslim edilemezse şifreli paket Firestore'daki bir posta kutusuna bırakılıyor. Birebir ve grup sohbeti, dosya gönderme, iletildi/okundu bilgisi ve çevrimiçi durumu var.
01 · Problem
Yaygın mesajlaşma uygulamalarında mesajlar merkezi sunuculardan geçiyor. Sunucu ele geçirilirse ya da erişilemez olursa hem iletişim hem de gizlilik risk altına giriyor.
02 · Çözüm
Cihazları doğrudan birbirine bağlayan bir P2P mimari tasarladık. Çekirdeği Go'da hexagonal mimariyle yazdık: bağlantı WebRTC DataChannel ile kuruluyor, signaling Firestore üzerinden yapılıyor; olmazsa UDP'ye, o da olmazsa Firestore'daki şifreli posta kutusuna geçiliyor. Dosyaları 900 baytlık şifreli parçalar hâlinde gönderiyoruz, mesaj durumlarını onay mesajları ve yeniden denemeyle takip ediyoruz. Uygulamayı GitHub Actions ve fastlane ile TestFlight'a dağıttık.
03 · Sonuç
Bitirme projesi olarak geliştirdiğimiz sistem, "Cipher: An End-to-End Encrypted Peer-to-Peer Instant Mobile Messaging System" başlığıyla International Journal of Advanced Networking and Applications (IJANA, Cilt 18, Sayı 2, 2026) dergisinde yayımlandı.