SingLink Protokolü Artık Açık Kaynak

By SingLinkVPN Editorial Team2026-11-12Ürün Güncellemeleri6 dakikalık okuma
SingLink Protokolü Artık Açık Kaynak
Contents

SingLinkVPN'in arkasındaki ekip SingLinkLabs, bugün SingLink Protokolü'nün tüm kaynak kodunu Apache-2.0 lisansıyla GitHub'da yayımladı. Artık herkes spesifikasyonu okuyabilir, kodu çalıştırabilir, güvenliğini inceleyebilir ve üzerine geliştirme yapabilir.

SingLinkVPN açık kaynak planını duyurduğumuzda, bir VPN protokolünün ve bir VPN istemcisinin aşama aşama geleceğini söylemiştik. İşte o adım bu. Protokol, onun üzerinde çalışan SingLinkVPN uygulamasının birinci nesil prototipiyle birlikte yayımlanıyor — bkz. SingLinkVPN uygulama prototipi artık açık kaynak.

Depo: SingLinkLabs / singlink-protocol · Sürüm: 1.0.0-draft (hat adı SingLink/1, spesifikasyon taslağı 2) · Lisans: Apache-2.0 · Dil: Go, yalnızca standart kütüphane

Neler yayımlanıyor

  • Spesifikasyon. SPEC.md, hat formatını bayt bayt açıklar; böylece protokol bağımsız olarak uygulanabilir.
  • Go ile yazılmış protokol kütüphanesi. Yalnızca Go standart kütüphanesindeki kriptografiyi kullanır, hiçbir üçüncü taraf bağımlılığı yoktur.
  • Bir komut satırı aracı: anahtar üretmek, erişim kartı düzenlemek, bağlantı linkleri oluşturmak, bir düğüm ve bir istemci çalıştırmak ve tek makinede demo başlatmak için.
  • Uygulamalar için yerel bir proxy (SOCKS5 ve HTTP) ve bir C kütüphane arayüzü (libsinglink); böylece her platformdaki uygulamalar protokolü kendi içine gömebilir.
  • Dağıtım örnekleri: örnek bir düğüm yapılandırması ve sıkılaştırılmış bir systemd servis dosyası.
  • Dahili güvenlik incelemesi, tüm bulgular ve düzeltmeleriyle birlikte: SECURITY-AUDIT.md.

SingLink 2.0 ve SingLink Açık Protokolü farklı protokollerdir

Resmî SingLinkVPN uygulamaları, SingLink 2.0 dahil olmak üzere üretim protokollerimizle çalışır. SingLink 2.0'ın çekirdek kaynak kodu bu yayına dahil değildir ve kapalı kalmaya devam eder.

Bugün yayımlanan SingLink Protokolü — SingLink 2.0'dan ayırt edilmesi gerektiğinde SingLink Açık Protokolü — SingLinkLabs'in açık geliştirme için sıfırdan tasarladığı ayrı bir protokoldür. Resmî uygulamalar bugün bu protokolü kullanmıyor. Mevcut kullanıcılar için hiçbir şey değişmiyor: aynı uygulamalar, aynı hesap ve aynı bağlantılar.

Neden açık kaynak hâline getiriyoruz

  • Güvenlik iddiaları doğrulanabilir olmalı. Kuantum sonrası anahtar değişimi, cihaz bağlama ve yoklamaya karşı direnç iddia etmesi kolay şeylerdir. Kod ve spesifikasyon herkese açık olduğunda herkes bunları doğrulayabilir.
  • Daha çok göz, sorunları daha erken bulur. Dışarıdaki araştırmacılar ve mühendisler, şirket içi bir ekibin gözden kaçırdığı sorunları görecektir.
  • Başkaları da üzerine inşa edebilir. Geliştiriciler onu test edebilir, kendi projelerine gömebilir ve iyileştirmeler önerebilir.
  • Planımızın gereğini yerine getiriyor. Bir protokol yayımlamak, söz verdiğimiz aşamalardan biriydi.

Nasıl çalışıyor, sade bir dille

Tek cümleyle fikir şu: dışarıdan bakıldığında kullanıcı sıradan bir HTTPS web sitesini ziyaret ediyormuş gibi görünür. İçinde ise şifrelenmiş bir erişim isteği gizlidir ve sunucu yalnızca geçerli bir kartı olan kişinin trafiğini aktarır.

Tasarım üç anahtar kullanır. Bunu bir ofis binasının güvenliği gibi düşünün:

  • Düğüm anahtarı, kapı kilidi. Her sunucunun kendine ait bir anahtarı vardır. Kullanıcının isteğini yalnızca o sunucu açabilir; bu da kullanıcının gerçek sunucuya ulaştığını kanıtlar.
  • Düzenleyici anahtarı, insan kaynakları departmanının mührü. Hesap altyapısında kalır ve her erişim kartını plan, son kullanma tarihi, hız sınırı ve cihaz sınırıyla mühürler.
  • Cihaz anahtarı, kullanıcının parmak izi. Kullanıcının telefonunda veya bilgisayarında kalır ve her bağlantıyı imzalar; böylece kartın gerçek sahibi tarafından kullanıldığını kanıtlar.

Bir sunucunun bir kartı kendi başına kontrol edebilmesi için yalnızca mührün neye benzediğini bilmesi yeterlidir. Bu yüzden düğümler kullanıcı veritabanı tutmaz ve hiçbir kullanıcı verisi saklamaz.

Tek bir bağlantı sırasında ne olur

  1. Uygulama, bir web sitesine yapılan sıradan bir HTTPS bağlantısı gibi görünen bir bağlantı açar.
  2. İlk paketi; bu bağlantıya özel tek kullanımlık bir anahtar, bir kuantum sonrası şifreli metin ve hedefi, erişim kartını, gerçek verinin ilk 8 KB'a kadarını ve tüm isteği kapsayan bir cihaz imzasını içeren mühürlü bir bölüm taşır. Ekstra bir gidiş-dönüş gerekmez.
  3. Sunucu her şeyi kontrol eder: isteğin şifresini çözebildiğini, mührün gerçek olduğunu, cihaz imzasının eşleştiğini, zamanın doğru olduğunu ve isteğin bir tekrar olmadığını, süresinin dolmadığını ve iptal edilmediğini.
  4. Ancak tüm kontroller geçerse yanıt verir ve aktarmaya başlar. Herhangi bir kontrol başarısız olursa, bağlantı hiç dokunulmadan gerçek bir web sitesine devredilir. Sunucuyu yoklayan biri yalnızca sıradan bir web sitesi görür, zamanlamada da hiçbir fark olmaz.
  5. İki taraf, tek kullanımlık anahtarlarını birleştirerek bu bağlantının oturum anahtarlarını oluşturur. Veriler parçalar hâlinde şifrelenir, ilk parçalara dolgu eklenir ve belirli bir kullanım miktarından sonra anahtarlar otomatik olarak yenilenir.

Güvenlik özellikleri

  • İki katmanlı şifreleme. Dışta HTTPS, içte ise protokolün kendi AES-256-GCM katmanı; böylece HTTPS'i sonlandıran bir CDN bile içeriği göremez.
  • Kuantum sonrası koruma. Anahtar değişimi klasik X25519'u ML-KEM-768 (FIPS 203) ile birleştirir. Bir saldırganın ikisini birden kırması gerekir.
  • İleriye dönük gizlilik. Her bağlantı tek kullanımlık anahtarlar kullanır; bu nedenle sonradan ele geçirilen bir sunucu geçmiş trafiği çözemez. İstisnası ilk pakettir (aşağıdaki sınırlara bakın).
  • Cihaz bağlama. Bir yerden kopyalanmış bir erişim kartı, düzenlendiği cihaz anahtarı olmadan işe yaramaz.
  • Tekrar saldırısı koruması. Yakalanan bir paketi yeniden göndermek işe yaramaz, sunucu yeniden başlatıldıktan sonra bile.
  • Yoklamaya karşı direnç. Süresi dolmuş, iptal edilmiş, tekrarlanmış veya sahte isteklerin hepsine aynı muamele yapılır: gerçek web sitesine devredilirler.
  • Merkezî kontrol. Bir hesap veya cihaz iptal edildiğinde, tüm sunuculardaki canlı bağlantıları yaklaşık 10 saniye içinde kapatılır.
  • Sıkılaştırılmış sunucular. Sunucu başına ve IP başına bağlantı sınırları, el sıkışmalar için bir CPU bütçesi ve özel ile özel amaçlı adresler için eksiksiz bir engelleme listesi.

Fikirler nereden geliyor

SingLink Protokolü, kendini kanıtlamış tasarımlardan ders alır: VLESS ve Trojan'dan tek istekli bağlantılar, Trojan ve obfs4'ten başarısız bağlantıları gerçek bir web sitesine devretme, Noise NK el sıkışma deseni, TLS 1.3'ten anahtar türetme ve 0-RTT işleme, X-Wing taslak standardından hibrit kuantum sonrası anahtar değişimi, Shadowsocks AEAD'den parçalı şifreleme, JWT ve PASETO'dan imzalı token'lar, OAuth DPoP'tan cihaza bağlı token'lar, HAProxy PROXY protocol ve WireGuard'dan tekrar ve yük koruması.

Bunlar yalnızca tasarım fikirleridir. Tüm kod sıfırdan yazıldı. Xray, V2Ray, sing-box veya WireGuard'dan hiçbir kod dahil edilmedi.

Mevcut durum ve bilinen sınırlar

  • Henüz bir taslak. Sürüm 1.0.0-draft ve hat formatı hâlâ değişebilir.
  • Şimdilik yalnızca dahili güvenlik incelemesi. İki inceleyici, kriptografik tasarımı ve uygulamayı ayrı ayrı inceledi ve 31 bulgu kaydetti: 2 Yüksek, 14 Orta, geri kalanı Düşük veya bilgilendirme amaçlı. Hiçbiri kullanıcı trafiğinin gizliliğini veya kimlik doğrulamasını kırmadı. Tüm Yüksek ve Orta bulgular, her biri bir regresyon testiyle birlikte düzeltildi veya etkisi azaltıldı; her ayrıştırıcı fuzz testleriyle kapsanıyor.
  • Henüz üçüncü taraf denetimi yok. Bağımsız bir denetimden geçene kadar protokole yüksek riskli kullanımlarda güvenmemenizi öneriyoruz; bu denetimi, protokolü kararlı ilan etmeden önce yapmayı planlıyoruz.
  • İlk paket ileriye dönük gizliliğe sahip değil. Sunucunun uzun vadeli anahtarıyla korunur; bu nedenle sunucu anahtarları düzenli olarak değiştirilmelidir. Anahtar rotasyonu desteklenir.
  • Çin anakarasında sahada test edilmedi. TLS parmak izi ve ilk paket boyutu hâlâ ayırt edilebilir durumda. Çin anakarasındaki kullanıcılar için resmî SingLinkVPN uygulamaları mevcut üretim protokollerimizi kullanmaya devam ediyor.
  • Bir sunucunun kendi alan adına, tarayıcıların kabul ettiği bir sertifikaya ve arkasında gerçek bir web sitesine ihtiyacı vardır.

Deneyin ve katkıda bulunun

Go 1.24 veya üzeriyle, make test test paketini çalıştırır, make cli komut satırı aracını derler ve singlink demo tek bir makinede yerel bir sunucu ve istemci başlatır. Depodaki README, bir sunucunun nasıl çalıştırılacağını açıklar.

Sorular, hata bildirimleri ve Pull Request'ler GitHub'da memnuniyetle karşılanır. Lütfen güvenlik açıklarını herkese açık bir Issue yerine özel olarak bildirin — süreç SECURITY.md dosyasında anlatılıyor.

Lisans ve ticari markalar

Kod Apache-2.0 ile lisanslanmıştır: lisans koşulları çerçevesinde, ticari amaçlar dahil, kodu kullanabilir, değiştirebilir ve yeniden dağıtabilirsiniz. "SingLink" ve "SingLinkVPN" adları ile logo SingLinkLabs'in ticari markalarıdır ve lisans, çalışmanın nereden geldiğini belirtmenin ötesinde bunları kullanma izni vermez. Değiştirilmiş sürümler ve fork'lar kendi adları ve simgeleriyle yayımlanmalıdır.

Daha fazla bilgi

Related articles