Merkeziyetsiz Sistemlerde Grup Sohbeti Nasıl Çalışmalı? Siber Güvenlik

Merkeziyetsiz Sistemlerde Grup Sohbeti Nasıl Çalışmalı?

Merkeziyetsiz sistemlerde grup sohbeti tasarımı, sunucusuz yapının getirdiği zorluklar ve çözüm yolları.

Merkeziyetsiz sistemler, kullanıcılarına sansürsüz ve özgür bir iletişim vaat ederken, grup sohbeti gibi temel bir özelliği sunmak beklenmedik zorluklar çıkarıyor. Geleneksel uygulamalar, grup yönetimini merkezi bir sunucuya dayandırırken, tamamen eşler arası (P2P) bir yapı bu lüksü ortadan kaldırıyor. Kiyeovo'nun geliştiricisi, bu sorunları ve çözüm yollarını detaylandıran bir yazı yayımladı. Peki, merkeziyetsiz grup sohbeti nasıl çalışmalı?

Merkezi bir sunucu, grup sohbetinin olmazsa olmaz sorularına net cevaplar verir: Şu anda grupta kimler var? Mesajları hangi anahtar şifreliyor ve kimlerde bu anahtar var? Mesajlar hangi sırayla geldi? Çevrimdışıyken ne kaçırdım? Signal veya Matrix gibi uçtan uca şifreleme kullanan uygulamalar bile bu koordinasyonu sunucu üzerinden yapar. Sunucu, grup listesini saklar, mesajları iletir ve olay sıralamasını belirler. Ancak sunucu olmayınca, bu görevleri üstlenecek güvenilir bir otorite kalmaz.

Geliştirici, mevcut merkeziyetsiz çözümleri değerlendirirken birkaç farklı yaklaşımı inceledi. İlk seçenek, Signal veya Matrix gibi bir koordinasyon sunucusu kullanmaktı. Ancak bu, merkeziyetsizlik ilkesiyle çelişiyordu. İkinci seçenek, MLS (RFC 9420) gibi ölçeklenebilir bir grup şifreleme protokolüydü. MLS, büyük gruplar için ideal olsa da, Kiyeovo'nun 10 kişilik grup limiti için gereksizdi ve DHT üzerinde çevrimdışı kullanıcılarla çalıştırmak zordu.

Sistem Güvenliği

Üçüncü yaklaşım, lider olmadan herkesin üye ekleyip çıkarabildiği bir modeldi. Ancak bu, aynı anda yapılan değişikliklerde tutarsızlıklara yol açıyordu. Örneğin, iki farklı kullanıcı aynı anda farklı kişileri çıkarırsa, grup üyeleri farklı listelere sahip olabiliyordu. Sıralama sorunları da cabasıydı. Son olarak, grup üyeliğini oluşturma anında sabitlemek (Briar tarzı) düşünüldü, ancak davet ve çıkarma özelliklerinin olmaması büyük bir eksiklikti.

Kiyeovo, bu zorlukları aşmak için benzersiz bir model benimsedi. Her grup, Ed25519 anahtarıyla tanımlanan tek bir yaratıcıya (creator) sahip. Yalnızca yaratıcı, üye ekleyip çıkarabiliyor. Diğer üyeler, yaratıcının anahtarını kullanarak gelen güncellemeleri doğrulayabiliyor. Bu yaklaşım, yakınsama sorununu ortadan kaldırıyor: grup durumunun tek bir yazarı var. Dezavantajı ise yaratıcının tek hata noktası olması. Yaratıcı çevrimdışıysa veya cihazını kaybederse, mevcut üyeler konuşmaya devam edebilir ancak yeni üye eklenemez veya çıkarılamaz.

Grup şifrelemesi için 'epoch' (dönem) tabanlı bir sistem kullanılıyor. Her dönem, tüm grup tarafından paylaşılan rastgele 32 baytlık bir simetrik anahtara sahip. Mesajlar, XChaCha20-Poly1305 ile bu anahtar kullanılarak şifreleniyor. Yaratıcı, yeni bir dönem başlattığında anahtarı her üyenin genel anahtarıyla ayrı ayrı şifreleyip kişisel gelen kutularına gönderiyor. Üye değişiklikleri (katılma, ayrılma veya çıkarılma) yeni bir dönem oluşturuyor. Yeni üyeler yalnızca katıldıkları dönemin anahtarını alıyor, böylece eski mesajları okuyamıyorlar. Bu sayede ileri gizlilik (forward secrecy) kısmen sağlanmış oluyor.

Sonuç olarak, merkeziyetsiz grup sohbeti, ödünleşimlerle dolu bir tasarım alanı. Kiyeovo'nun çözümü, küçük gruplar için pratik bir denge sunuyor: tek bir yaratıcı, basit anahtar yönetimi ve net bir yakınsama mantığı. Ancak bu model, büyük gruplar veya daha esnek yönetim isteyen kullanıcılar için uygun olmayabilir. Geliştirici, bu ödünleşimlerin farkında ve gelecekte daha esnek modeller eklemeyi düşünebilir. Şimdilik, merkeziyetsizlikten ödün vermeyenler için Kiyeovo, grup sohbetini mümkün kılan ilginç bir örnek teşkil ediyor.

Kaynak: marindedic.com

Paylaş: