MASQUE Nedir ve HTTP Tünellemesi Nasıl Çalışır?

MASQUE (Multiplexed Application Substrate over QUIC Encryption), UDP verilerini veya IP paketlerini HTTP bağlantıları üzerinden bir proxy aracılığıyla taşıyan protokolleri kapsar. İnternet protokollerini standartlaştıran IETF tarafından geliştirilmiştir. Web istek ve yanıtlarını taşıyan HTTP burada bir tünel kurmak için kullanılır; proxy, istemciden aldığı tünellenmiş trafiği hedefe ileten aracı sunucudur.
MASQUE belirli bir VPN ürünü veya tek başına çalışan bir kullanıcı uygulaması değildir. VPN, cihazların veya ağların trafiğini başka bir uçla kurulan tünelden geçirir. MASQUE protokolleri, yalnız belirli bir uygulamanın trafiğini taşımak için de VPN bağlantısının temelini oluşturmak için de kullanılabilir.
MASQUE HTTP Bağlantısında Tüneli Nasıl Kurar?
İstemci önce kullanacağı proxy'ye bir HTTP bağlantısı açar. HTTP/2 ve HTTP/3'te proxy'nin desteğini bildirmesinden sonra Extended CONNECT kullanır. Bu mekanizma, CONNECT isteğinde tünelin türünü connect-udp veya connect-ip olarak belirtir. HTTP/1.1'de ise aynı amaçla GET isteği ve Upgrade başlığı kullanılır; başarılı geçiş yanıtı alınmadan tünel verisi gönderilmez.
Her tünel, onu kuran HTTP isteğiyle ilişkilendirilir. Tünel verileri, HTTP Datagramı denilen ayrı veri birimleriyle taşınır. HTTP/3'te bu veriler, UDP üzerinde şifreli bağlantılar kuran QUIC protokolünün DATAGRAM çerçeveleriyle gönderilebilir; HTTP/2'de ve gerektiğinde HTTP/3'te ise sıralı veri akışı içindeki DATAGRAM kapsülleri kullanılır. Capsule Protocol, bu kapsüllerin yanında adres atama gibi kontrol mesajlarını da aktarabilen biçimi tanımlar. Bu nedenle kapsüller yalnız kontrol bilgisi taşımakla sınırlı değildir.
CONNECT-UDP ile UDP Akışının Taşınması
RFC 9298'de tanımlanan CONNECT-UDP, istemcinin belirli bir hedef sunucu ve UDP portu için proxy üzerinden tünel oluşturmasını sağlar. UDP, veriyi datagramlar halinde taşıyan, teslimi ve kayıp verinin yeniden gönderilmesini kendi başına garanti etmeyen bir protokoldür. Proxy, hedefle paket alışverişi yapmak için bir UDP soketi açar. Başarılı tünel yanıtı bu soketin açıldığını bildirir; hedef uygulamanın erişilebilir olduğunu kanıtlamaz. İstemci UDP yükünü HTTP Datagramı içinde gönderir, proxy de bunu UDP paketi olarak hedefe iletir. Hedeften gelen UDP yükleri ters yönde aynı tünelden geçer.
Tünel, UDP paketinin IP ve UDP başlıklarının tamamını değil, yalnız UDP yükünü taşır. Bu ayrım, CONNECT-UDP'yi belirli bir UDP akışını proxy üzerinden taşımak için uygun kılar. Bu yöntem, örneğin QUIC kullanan bir uygulamanın UDP trafiğini taşıyabilir. Proxy, dış tarafta UDP hedefiyle doğrudan iletişim kurar.
CONNECT-IP ile IP Paketlerinin Taşınması
RFC 9484'te tanımlanan CONNECT-IP daha geniş kapsamlıdır. Bir HTTP Datagramındaki veri, IP sürüm alanından başlayarak tam bir IPv4 veya IPv6 paketini taşıyabilir. Böylece yalnız UDP değil, IP üzerinde çalışan farklı üst katman protokolleri de aynı tünel modelinden yararlanabilir.
CONNECT-IP ayrıca adres atama ve yönlendirme bilgisini iletmek için Capsule Protocol kapsüllerini kullanabilir. Bu nedenle uzaktan erişim veya ağlar arası tünelleme gibi VPN benzeri senaryolara daha yakındır. Yine de istemcinin bu tünele hangi trafiği göndereceğini istemci yapılandırması ve proxy politikası belirler. CONNECT-IP kullanmak, istemcinin tüm cihaz trafiğini otomatik olarak tünellediği anlamına gelmez.
HTTP/2 ile HTTP/3 Arasındaki MASQUE Taşıma Farkları
Her iki sürümde de istemci bir HTTP bağlantısı içinde birden fazla eşzamanlı akış açabilir. MASQUE bu özelliği kullanarak farklı proxy tünellerini aynı HTTP bağlantısı üzerinde çalıştırabilir. Böylece her UDP hedefi veya IP tüneli için ayrı bir taşıma bağlantısı kurmak zorunlu olmaz.
HTTP/2, veriyi sıralı ve güvenilir bir bayt akışı olarak ileten TCP üzerinde çalışır. TCP, kaybolan bir segmenti yeniden iletirken aynı bağlantıdaki datagram trafiğinin teslimi de gecikebilir. UDP üzerinde çalışan gerçek zamanlı protokollerde veya kendi kayıp kurtarma mekanizmasına sahip protokollerde bu durumda hem tünellenen protokolün hem de TCP'nin kayıp kurtarma mekanizmaları devreye girebilir.
HTTP/3 ise QUIC kullanır. HTTP Datagramları QUIC DATAGRAM çerçeveleriyle taşınıyorsa QUIC, kaybolan bu çerçeveleri yeniden iletmez. Böylece bir datagramın kaybı, onun yeniden gönderilmesini bekleyen ek bir teslim gecikmesi oluşturmaz. Ancak HTTP/3'te DATAGRAM kapsülleriyle taşıma da mümkündür; bu durumda veriler güvenilir QUIC akışından geçer. HTTP/3 kullanılması tek başına tünel verisinin yeniden iletim olmadan taşındığını göstermez.
MASQUE Ne Zaman Proxy, Ne Zaman VPN Gibi Çalışır?
Klasik HTTP CONNECT, temel olarak proxy üzerinden bir TCP tüneli kurar. CONNECT-UDP aynı fikri UDP akışına genişletir. CONNECT-IP ise ağ katmanındaki IP paketlerini taşır ve böylece paket yönlendirme temelli VPN davranışına yaklaşır.
Bu nedenle MASQUE'yi tek bir kategoriye koymak yanıltıcı olabilir. Yalnız belirli bir UDP hedefine giden trafiği taşıyan kullanım, o uygulamanın ağ iletişimine aracılık eder. Geniş bir IP tüneli ve yönlendirme politikası kullanan CONNECT-IP kurulumu ise VPN benzeri davranabilir. Aradaki farkı protokol adından çok istemcinin tünele yönlendirdiği trafik kapsamı belirler.
MASQUE Tünelinde Hedef ve Proxy Neleri Görebilir?
İstemci CONNECT-UDP kullandığında hedef, UDP paketini proxy'nin açtığı soketten alır ve istemcinin doğrudan kaynak IP adresi yerine proxy tarafındaki kaynak adresini görür. CONNECT-IP tünelinde ise adres atama ve yönlendirme politikası, hedefin gördüğü kaynak adresini belirler. Kaynak IP adresinin değişmesi anonimlik sağlamaz; hedef, hesap oturumları veya uygulamanın gönderdiği tanımlayıcılar üzerinden kullanıcıyı tanımaya devam edebilir.
TLS, bağlantı verisini şifreleyip değiştirilmeye karşı koruyan ve karşı tarafın kimliğinin doğrulanmasını sağlayan protokoldür. CONNECT-IP, dış bağlantıda TLS, QUIC şifrelemesi veya eşdeğer koruma kullanılmasını zorunlu tutar. Dış bağlantının şifrelenmesi tünel içeriğini aradaki gözlemcilerden gizler; proxy ise bu şifrelemenin uç noktasıdır. Proxy'nin uygulama içeriğini de okuyamaması için tünellenen uygulamanın hedefle ayrıca TLS, QUIC veya eşdeğer uçtan uca koruma kullanması gerekir. Dış tünelin şifrelenmesi tek başına proxy ile hedef arasındaki yolu korumaz.
MASQUE Proxy'sinde Yetkisiz Erişimin Engellenmesi
Proxy tarafında da güvenlik politikası gerekir. Özellikle UDP proxy'sinin her istemcinin istediği hedefe trafik göndermesine izin vermek kötüye kullanım ve erişim kontrolü riski oluşturabilir. Bu nedenle kimlik doğrulama, hedef kısıtları ve kullanıcının yetkisi dışındaki ağlara erişimi engelleyen kurallar birlikte uygulanmalıdır. Kurum ağına erişim sağlayan bir tünelde izin verilen iç hedeflerle erişilmemesi gereken diğer hedefler ayrı tanımlanır.
MASQUE Performansını Etkileyen MTU, Gecikme ve Proxy Kapasitesi
MTU, bir ağ bağlantısında tek parça olarak taşınabilecek en büyük IP paketinin boyutudur. Tünellemenin eklediği başlıklar, dış paketin içinde uygulama verisine kalan alanı azaltır. QUIC DATAGRAM çerçevesi birden fazla QUIC paketine bölünemez; sığabilecek veri boyutu hem ağ yoluna hem de bağlantının bildirdiği boyut sınırlarına bağlıdır. Fazla büyük bir datagram daha ağa gönderilmeden tünelin bir ucunda düşürülebilir. Üst protokolün, tünelin taşıyabileceği boyuta uygun daha küçük paketler üretmesi gerekebilir.
Ağ yoğunluğuna göre gönderim hızını ayarlayan sıkışıklık kontrolü hem iç protokolde hem dış bağlantıda uygulanıyorsa iki mekanizma birbirini etkileyebilir. HTTP/3'ün datagram desteği kayıp verinin iki katmanda yeniden gönderilmesini önleyebilse de proxy konumu, ağ yolu ve proxy kapasitesi gecikmeyi ve ulaşılabilecek hızı değiştirebilir.







