WebSockets - Güvenlik
Protokol, güvenlik nedenleriyle tasarlanmalıdır. WebSocket yepyeni bir protokoldür ve tüm web tarayıcıları onu doğru şekilde uygulamaz. Örneğin, spesifikasyon tam tersini ifade etse de, bazıları hala HTTP ve WS'nin karışımına izin veriyor. Bu bölümde, bir kullanıcının farkında olması gereken birkaç yaygın güvenlik saldırısını tartışacağız.
Hizmet Reddi
Hizmet Reddi (DoS) saldırıları, bir makineyi veya ağ kaynağını, onu isteyen kullanıcılar için kullanılamaz hale getirmeye çalışır. Birinin, hiç veya çok az zaman aralığı olan bir web sunucusuna sonsuz sayıda istekte bulunduğunu varsayalım. Sunucu, her bağlantıyı işleyemez ve yanıt vermeyi durdurur veya çok yavaş yanıt vermeye devam eder. Bu, hizmet reddi saldırısı olarak adlandırılabilir.
Hizmet reddi, bir web sayfasını bile yükleyemeyen son kullanıcılar için çok sinir bozucudur.
DoS saldırısı, P2P ağının istemcilerini aynı anda kurbanın web sunucusuna bağlanmaya zorlayarak eşler arası iletişimlere bile uygulanabilir.
Ortadaki adam
Bunu bir örnek yardımıyla anlayalım.
Bir kişi varsayalım A arkadaşıyla sohbet ediyor BIM istemcisi aracılığıyla. Bazı üçüncü kişiler, paylaştığınız mesajları görmek istiyor. Böylece her iki kişiyle de bağımsız bir bağlantı kurar. Ayrıca kişiye mesajlar gönderirA ve onun arkadaşı B, iletişiminizin görünmez bir aracı olarak. Bu ortadaki adam saldırısı olarak bilinir.
Ortadaki adam saldırısı, şifrelenmemiş bağlantılar için daha kolaydır, çünkü saldırgan paketleri doğrudan okuyabilir. Bağlantı şifrelendiğinde, bilgilerin şifresi saldırgan tarafından çözülmelidir ve bu çok zor olabilir.
Teknik açıdan, saldırgan bir açık anahtar mesaj alışverişini engeller ve istenen anahtarı kendi anahtarıyla değiştirirken mesajı gönderir. Açıkçası, saldırganın işini zorlaştırmak için sağlam bir strateji, SSH'yi WebSockets ile kullanmaktır.
Çoğunlukla kritik verileri değiş tokuş ederken, şifrelenmemiş WS yerine WSS güvenli bağlantısını tercih edin.
XSS
Siteler arası komut dosyası çalıştırma (XSS), saldırganların istemci tarafı komut dosyalarını web sayfalarına veya uygulamalara eklemesini sağlayan bir güvenlik açığıdır. Bir saldırgan, uygulama merkezlerinizi kullanarak HTML veya Javascript kodu gönderebilir ve bu kodun istemcilerin makinelerinde yürütülmesine izin verebilir.
WebSocket Yerel Savunma Mekanizmaları
Varsayılan olarak, WebSocket protokolü güvenli olacak şekilde tasarlanmıştır. Gerçek dünyada, kullanıcı, kötü tarayıcı uygulaması nedeniyle ortaya çıkabilecek çeşitli sorunlarla karşılaşabilir. Zaman geçtikçe, tarayıcı satıcıları sorunları hemen düzeltir.
SSH (veya TLS) üzerinden güvenli WebSocket bağlantısı kullanıldığında ekstra bir güvenlik katmanı eklenir.
WebSocket dünyasında asıl endişe, güvenli bir bağlantının performansıyla ilgilidir. Üstte hala fazladan bir TLS katmanı olmasına rağmen, protokolün kendisi bu tür bir kullanım için optimizasyonlar içerir, ayrıca WSS, proxy'ler aracılığıyla daha düzgün çalışır.
İstemciden Sunucuya maskeleme
Bir WebSocket sunucusu ile bir WebSocket istemcisi arasında iletilen her mesaj, WebSocket uyumlu aracıların mesajın maskesini kaldırmasına ve incelemesine izin veren maskeleme anahtarı adlı özel bir anahtar içerir. Aracı WebSocket uyumlu değilse, mesaj etkilenemez. WebSocket protokolünü uygulayan tarayıcı maskelemeyi yönetir.
Güvenlik Araç Kutusu
Son olarak, WebSocket istemcileriniz ve sunucunuz arasındaki bilgi akışını araştırmak, değiş tokuş edilen verileri analiz etmek ve olası riskleri belirlemek için yararlı araçlar sunulabilir.
Tarayıcı Geliştirici Araçları
Chrome, Firefox ve Opera, geliştirici desteği açısından harika tarayıcılardır. Yerleşik araçları, müşteri tarafı etkileşimlerinin ve kaynaklarının neredeyse her yönünü belirlememize yardımcı olur. Güvenlik açısından büyük rol oynar.