TCP · TLS 1.3 · Reality · XTLS Vision

VLESS Reality

VLESS Reality, VPN bağlantısını gerçek bir sitenin TLS 1.3 el sıkışmasına gizler; yoklayan o siteyi görür. Nasıl çalıştığı, sınırları ve Colitu'daki kullanımı.

VLESS Reality, Colitu Adaptive Connect'in Android ve iOS'ta denediği ikinci moddur; Windows ve Linux'ta ise bağlanma süresine göre sıralanan TCP modlarından biridir. Hafif bir proxy protokolü olan VLESS'i, bir TLS kamuflaj katmanı olan Reality ile birleştirir ve derin paket incelemesi (DPI) yapan ağlar için tasarlanmıştır.

Nedir?

İki parça da açık kaynak bir ağ araç seti olan Project X (Xray) ve onun XTLS ekibinden gelir.

  • VLESS, durum tutmayan minimal bir proxy protokolüdür. Bir istek sürüm, kullanıcı kimliği (UUID), komut ve hedef adresi taşır. VLESS kendisi hiçbir şeyi şifrelemez; alttaki katmana güvenir.
  • Reality o alt katmandır: kendi sertifikasına ihtiyaç duymayan bir TLS 1.3 uygulaması. El sıkışma sırasında sunucu kendini gerçek bir üçüncü taraf web sitesi olarak gösterir.
  • XTLS Vision, Colitu'nun VLESS Reality için açtığı bir akış (flow) modudur. Aşağıda anlatılan "TLS içinde TLS" desenini ele alır.

Nasıl çalışır?

  1. Kurulum. Sunucuda hedef olarak gerçek bir web sitesi, bir X25519 anahtar çifti ve kısa kimlikler (short ID) tanımlıdır. Uygulama açık anahtarı, bir short ID'yi ve hedef sitenin adını Colitu panelinden şifreli bir kanalla alır.
  2. ClientHello. Uygulama, bir tarayıcı hedef siteyi ziyaret ediyormuş gibi bir TLS 1.3 el sıkışması başlatır: SNI alanında o sitenin adı bulunur, TLS parmak izi ise uTLS kütüphanesiyle Chrome'u taklit eder.
  3. Gizli kimlik doğrulama. Uygulama, kendi geçici X25519 anahtarından ve sunucunun açık anahtarından ortak bir sır türetir. Bununla, short ID ve bir zaman damgası içeren küçük bir doğrulama bloğunu ClientHello'nun normalde rastgele baytlar taşıyan session ID alanına şifreleyerek yerleştirir.
  4. Sunucu karar verir. Blok geçerliyse sunucu TLS 1.3 el sıkışmasını, ortak sırra bağlı ve uygulamanın doğrulayabildiği geçici bir sertifikayla kendisi tamamlar. Geçerli değilse bağlantıyı bayt bayt gerçek hedef siteye aktarır.
  5. Tünel. El sıkışmadan sonra VLESS istekleri, Vision akışıyla TLS 1.3 oturumunun içinde taşınır.

Dördüncü adım sayesinde anahtarı olmadan bağlanan herkes, aktif bir yoklama dahil, gerçek siteyle konuşur, onun gerçek sertifikasını alır ve gerçek sayfalarını görür.

XTLS Vision ve "TLS içinde TLS"

İnternette yaptığınız işlerin çoğu zaten HTTPS'tir; bu yüzden bir VPN tünelinin içinde genellikle ikinci bir TLS oturumu bulunur. İç içe TLS, özellikle iç el sıkışma sırasında paket boyutlarında ve zamanlamada tanınabilir desenler oluşturur. Vision iç TLS trafiğini tanır, bu deseni bulanıklaştırmak için ilk paketlere dolgu ekler, ardından zaten şifreli olan iç veriyi ikinci kez şifrelemeden geçirir. Bu hem parmak izini hem de işlemci yükünü azaltır. Vision ham bir TCP akışı gerektirdiği için Colitu onu VLESS Reality'de kullanır, VLESS XHTTP'de kullanmaz.

Colitu neden kullanıyor?

Klasik TLS kamuflajı, VPN'in kendi alan adına ve sertifikasına ihtiyaç duyar; bunlar listelenip adıyla engellenebilir, yoklanan sunucu da kendini ele verebilir. Reality bu iki zayıf noktayı ortadan kaldırır: engellenecek kendi sertifikası yoktur, yoklama ise gerçek bir site görür. DPI'ın VPN trafiğini aktif olarak aradığı ağlarda bu, VLESS Reality'yi sıradan HTTPS'ten ayırt edilmesi en zor modlardan biri yapar.

Güçlü olduğu yerler

  • DPI yapan ağlar: tarayıcıya benzeyen parmak izi, gerçek bir üçüncü taraf el sıkışması ve kendine ait sertifika yok.
  • UDP'yi engelleyen ağlar: TCP üzerinde çalıştığı için Hysteria2'nin bağlanamadığı yerlerde çalışır.
  • Aktif yoklama: yoklamalar gerçek web sitesine aktarılır.
  • Kararlı kablolu ve Wi-Fi bağlantılar: paket kaybı azsa TCP iyi performans gösterir, Vision da ek yükü düşük tutar.

Sınırları ve en iyi seçim olmadığı durumlar

  • Kayıplı hatlarda TCP. Yoğun kayıplı mobil veride ya da kötü Wi-Fi'da her TCP protokolü gibi yavaşlar; orada Hysteria2 genellikle daha hızlıdır.
  • Uzun tekil bağlantılar. Bazı ağlar uzun süre açık kalan TCP bağlantılarını keser ya da bir süre sonra yavaşlatır. VLESS XHTTP tam bu durum için vardır.
  • Uyumsuzluk fark edilebilir. SNI bir siteyi işaret ederken IP adresi başka bir ağa aittir. Bu ikisini karşılaştıran ya da IP adresine göre engelleyen filtreler bağlantıyı yine de etkileyebilir.
  • Kalıcı garanti yok. Filtreleme sistemleri gelişir; bugün çalışan bir yöntem yarın tespit edilebilir. Colitu'nun dört modu daha hazırda tutmasının nedeni budur.

Adaptive Connect nasıl kullanıyor?

Android ve iOS'ta VLESS Reality, Hysteria2'nin hemen ardından ikinci sıradadır: UDP'nin engelli ya da kullanışsız olduğu anlaşıldığında ilk tercihtir. Windows ve Linux'ta ölçülen bağlanma süresine göre diğer TCP modlarıyla yarışır. El sıkışma başarısız olursa ya da tünel kontrol sırasında trafik taşımazsa uygulama devam eder (mobilde VLESS XHTTP'ye, ardından Trojan ve Shadowsocks 2022'ye) ve başarısız denemeyi geriye iter.

Güvenlik ve şifreleme

  • Şifreleme: X25519 anahtar değişimli TLS 1.3 el sıkışması; trafik TLS 1.3 AEAD şifreleriyle korunur.
  • Sunucu doğrulaması: uygulama sunucuyu ancak el sıkışma, Reality açık anahtarına karşılık gelen özel anahtara sahip olunduğunu kanıtlarsa kabul eder. O anahtara sahip olmayan aradaki bir saldırgan sunucu kılığına giremez.
  • İstemci doğrulaması: iki katman: Reality doğrulama bloğu (anahtar ve short ID) ve her cihazın kendi bağlantı bilgilerinin parçası olan VLESS kullanıcı kimliği.
  • Anahtar yönetimi: anahtarlar, short ID'ler ve hedef site uygulamaya şifreli olarak iletilir, hiçbir yerde yayınlanmaz. Colitu sunucularında her VLESS modunun kendi Reality anahtar çifti vardır; böylece ikisi birbirinden bağımsız yenilenebilir.
  • Erişim günlüğü yok: bkz. güvenlik sayfası.

Kaynaklar

Deneyin

VLESS Reality her Colitu uygulamasında hazırdır; ağ gerektirdiğinde uygulama onu kendisi seçer. Colitu'yu indirin ya da sunucu konumlarına göz atın.