Düğüm Keşfi ve Şifreli Çok Atlamalı Aktarım

AeroNyx9 dk okuma

AeroNyx düğümlerinin imzalı tanımlayıcılarla birbirini nasıl keşfettiği, yansıtılan bir Directory Chain'i nasıl tuttuğu ve katmanlı şifreli yükleri atlama atlama nasıl ilettiği. Gerçek sohbet varsayılan olarak merkezi aktarıcıyı kullanır; iki atlamalı onion rotası isteğe bağlıdır.

AeroNyx düğümleri birbirlerini imzalı ve süresi dolan tanımlayıcılar aracılığıyla bulur ve uçtan uca şifreli yükleri atlama atlama iletebilir; bu sırada her aktarıcı yalnızca kendi şifreleme katmanını kaldırır. Bugün gerçek kullanıcı sohbeti varsayılan olarak merkezi AeroNyx aktarıcısından (RelayWS) geçer. Sohbetin düğümler üzerinden yönlendirilmesi, uygulamada isteğe bağlı olarak açılan bir ayardır.

Bugün neler çalışıyor

YetenekDurum
İmzalı düğüm keşfi ve eşler arası dedikodu (gossip)Üretim düğümlerinde çalışıyor
Directory Chain (düğümler arasında yansıtılan, düğüm başına imzalı tanımlayıcı geçmişi)Üretim düğümlerinde çalışıyor
Düğümler arasında iki atlamalı onion aktarımıÜretim düğümlerinde çalışıyor. Uygulamada isteğe bağlıdır ve varsayılan olarak kapalıdır
Onion aktarımı üzerinden erişilen anonim posta kutularıÜretim düğümlerinde çalışıyor. Sıradan sohbet bunları kullanmaz. Uygulamada ayrı bir beta posta kutusu bırakma özelliği vardır
Üç aktarıcı atlamalı rotalarPolitika ve yoklama düğüm kaynak kodunda mevcuttur. Uygulama bunları kullanmaz
Bir ağ geçidinin arkasındaki düğümler için https:// ana bilgisayar adı uç noktalarıGüncel düğüm sürümlerinde mevcut
Genel API portunda alan adı ve sertifika otoritesi gerektirmeyen, kimliğe bağlı TLSÜretim düğümlerinde çalışıyor. Bir eş bunu duyurduğunda düğümler birbirleri arasında kullanır. Uygulama desteği geliştirme aşamasındadır
Onion uç düğümünün mesajı alıcının aktarıcı gelen kutusuna devretmesiÜretim düğümlerinde çalışıyor
Operatör tarafından sabitlenmiş tohum düğümleri (discovery.pinned_seeds)Güncel düğüm sürümlerinde mevcut
Varsayılan sohbet taşımasıAeroNyx tarafından işletilen merkezi RelayWS hizmeti

Merkezi ve merkeziyetsiz yollar yan yana çalışır.

Keşif nasıl çalışır

Her düğüm, Ed25519 kimlik anahtarıyla imzalanmış bir tanımlayıcı yayımlar. Bir tanımlayıcı; düğüm kimliğini, düzenlenme ve sona erme zamanlarını, isteğe bağlı bir genel uç noktayı, yetenek bayraklarını (onion ara aktarıcısı veya sohbet aktarıcısı gibi), kaba kapasite ipuçlarını ve onion şifrelemesi için kullanılan anahtarı içerir. Düğümler süresi dolmuş veya geçersiz imza taşıyan tanımlayıcıları reddeder.

  • Dedikodu sınırlıdır. Eş değişimi hız sınırlamasına ve politika denetimine tabidir ve mesajların boyut sınırları vardır.
  • Yeniden başlatma sonrası kurtarma. Bir düğüm yerel bir eş önbelleği tutar ve yeniden başlatmanın ardından yapılandırılmış tohum (seed) uç noktalarına geri döner. Operatörler tohum düğümlerini ayrıca sabitleyebilir.
  • Rota seçimi. Aktarıcı adayı olarak yalnızca kullanılabilir bir uç noktaya ve onion anahtarına sahip güncel tanımlayıcılar değerlendirilir.

Bir tanımlayıcı hangi uç noktaları belirtebilir

Bir imza, tanımlayıcıyı kimin yayımladığını kanıtlar; uç noktasıyla iletişim kurmanın güvenli olduğunu kanıtlamaz. Bu nedenle bir düğüm yalnızca iki biçimde uç noktayı kabul eder:

  • http veya https üzerinden genel bir IP adresi; geri döngü (loopback), özel, bağlantı-yerel (link-local), CGNAT, belgeleme, çok noktaya yayın (multicast) ve ayrılmış aralıklar reddedilir;
  • genel bir DNS adına sahip bir https:// URL'si. Tek etiketli adlar, localhost ve .local, .internal ve .home.arpa gibi özel sonekler reddedilir.

Ana bilgisayar adları bağlantı anında, genel olmayan her adresi eleyen bir çözümleyici aracılığıyla çözümlenir; böylece bir ad düğümün kendisine, özel bir ağa veya bir bulut üst veri hizmetine yönlendirilemez. Eş istemcileri ayrıca proxy ayarlarını yok sayar ve yönlendirmeleri hiçbir zaman takip etmez.

Ana bilgisayar adı biçimi, bir bulut ağ geçidinin arkasındaki bir TEE düğümü gibi kendine ait bir IP adresi olmayan düğümlerin de katılabilmesi için vardır.

Sabitlenmiş tohum düğümleri

Operatör anlık görüntüsü olmadan başlayan bir düğüm yalnızca elinde zaten bulunan kimliklere güvenir; bu yüzden yalnızca kendisine güvenir hale gelebilir. Bu durum için bir operatör, bir adreste beklenen kimliği belirtebilir:

toml
[discovery]
pinned_seeds = ["<64-hex node id>@<public ip>:<port>"]
  • Sabitlenmiş bir kimlik, ilk kez yalnızca o kimliğe sabitlenmiş kimliğe bağlı TLS üzerinden yapılan bir değişimin ardından kabul edilir.
  • Sabitlenmiş bir kimliğin sonraki her tanımlayıcısı, hangi kaynaktan gelirse gelsin, sabitlenmiş adresi korumalı ve kimliğe bağlı TLS'i duyurmalıdır.
  • Güven aktarılmaz: bir tohum düğümünün yanıtındaki diğer tanımlayıcılar güvenilmeyen adaylar olarak kalır.
  • Kaldırılmış bir sabitleme, eski bir önbellekten veya yedekten geri gelemez.

Directory Chain

Her düğüm ayrıca kendi tanımlayıcı olaylarının Directory Chain adı verilen imzalı, karma bağlantılı bir geçmişini tutar. Diğer düğümler bu geçmişi yansıtabilir, tanımlayıcı nesnelerini getirebilir ve belirli bir tanımlayıcı için dahil edilme kanıtları talep edebilir. Operatör tarafından sabitlenmiş eşler, gördükleri geçmişler üzerinde gözlem kontrol noktaları imzalayabilir.

Küresel bir defter ve tek bir koordinatör yoktur: her düğüm kendi geçmişini imzalar, diğerleri de onu yansıtır ve kontrol eder.

Kimliğe bağlı TLS

Bir düğüme HTTPS üzerinden erişmek normalde bir alan adı ve bir sertifika otoritesinden alınmış bir sertifika gerektirir; AeroNyx düğümlerinin çoğuna ise yalnızca IP adresiyle erişilebilir. Bunun yerine bir düğüm, kendi HTTPS uç noktasını Ed25519 kimliğiyle kanıtlar.

  • Nasıl çalışır. Düğüm sıradan bir ECDSA P-256 TLS anahtarı ve kendinden imzalı bir sertifika oluşturur. Bir konu alternatif adı (subject alternative name) bir bağlama taşır, aeronyx-tls-binding:v1:<node id>:<expiry>:<signature>; burada imza, düğüm kimlik anahtarı tarafından sertifikanın kendi genel anahtarı, düğüm kimliği ve sona erme zamanı üzerinden alan ayrımlı bir özet üzerine atılır. TLS 1.3 el sıkışması, düğümün sertifika anahtarına sahip olduğunu kanıtlar. Kimlik anahtarı hiçbir zaman bir el sıkışmasını imzalamaz.
  • İstemcinin neyi denetlediği. Bir doğrulayıcı sertifikayı yalnızca ulaşmak istediği düğüm için kabul eder: tam olarak bir bağlama, beklenen düğüm kimliği, süresi dolmamış, en fazla 31 gün geçerlilik süresi kalmış ve bu sertifikanın anahtarı üzerinde geçerli bir imza. Bir sertifika otoritesi tarafından verilmiş sertifika bu denetimi karşılamaz.
  • Aynı port. Genel API portu (8422/TCP) ikisine de hizmet verir: TLS el sıkışmasıyla başlayan bağlantı TLS alır, başka her şey eskiden olduğu gibi düz HTTP alır. Varsayılan olarak açıktır (discovery.public_api_identity_tls).
  • Düğümler arasında. İmzalı tanımlayıcısı anpf1-ibt1 protokol özelliğini duyuran bir düğüm kimliğe bağlı TLS sunar. Bu özelliği gören bir eş, o düğüme kimliğine sabitlenmiş TLS üzerinden ulaşmak zorundadır ve hiçbir zaman düz HTTP'ye geri dönmez. Özellik tanımlayıcı imzasıyla kapsandığı için bir ağ saldırganı onu kaldırarak sürüm düşürmeye zorlayamaz. Birden fazla kimlik aynı uç noktayı talep ederse hiçbir TLS adresi üretilmez ve istek kapalı başarısızlıkla (fail closed) sonuçlanır. Bu özelliği taşımayan eski düğümler ve DNS adlı ağ geçidi uç noktaları önceki davranışlarını korur.
  • Başvuru. Kaynak kod ve dondurulmuş test vektörleri: aeronyx-node-tls.

Bunun sonucunda onion atlamalarının rota bilgisi, dedikodu, dizin eşitlemesi ve düğümler arasındaki tanık trafiği artık hat üzerinde okunamaz. Uygulamanın düğümlere bu şekilde bağlanma desteği geliştirme aşamasındadır.

Çok atlamalı aktarım nasıl çalışır

  1. Gönderen, her aktarıcının yayımlanmış onion anahtarını kullanarak yükü her atlama için bir şifreleme katmanıyla sarar.
  2. Her aktarıcı önceki atlamanın imzasını, zaman damgasını ve yeniden oynatma durumunu kontrol eder, kendi katmanını kaldırır ve kalan opak veri bloğunu iletir. İç katmanları hiçbir zaman görmez.
  3. Son (uç) düğüm mesajı alıcının aktarıcı gelen kutusuna (varsayılan olarak merkezi aktarıcı) devreder ve yalnızca aktarıcı kabul ettikten sonra imzalı bir alındı döndürür. Alındı; rota kimliğini, yüke yönelik bir taahhüdü, uç düğümün kimliğini ve teslim zamanını birbirine bağlar. Mesajın aktarıcının saklamasına kabul edildiğini kanıtlar; alıcının onu okuduğunu kanıtlamaz. Devri kapalı olan bir düğüm mesajı kendi deposunda tutar ve aynı türde bir alındı imzalar; bu yüzden yalnızca alındıya bakarak iki durum birbirinden ayırt edilemez.

Her tarafın gördükleri

TarafGördüğüGörmediği
Giriş düğümüGönderenin ağ adresi, mühürlü bir katman ve sonraki atlamaMesajın kime ait olduğu ve içeriği
Uç düğümGönderen ve alıcı anahtarları ile şifreli metinGönderenin ağ adresi ve içerik
Merkezi aktarıcı (devri alır)Her gönderimin ona gösterdikleri: gönderen ve alıcı anahtarları, zaman damgaları ve boyutlarGönderenin ağ adresi ve içerik

Hiçbir tek düğüm ağ adresinizi kime yazdığınızla ilişkilendirmez. Uç düğüm ve merkezi aktarıcı, kimin kime yazdığını ikisi de görür.

Protokol en fazla üç doğrulanmış aktarıcı atlamasını kabul eder. Uygulamanın gizlilik rotası iki atlama kullanır. Aktarıcılardaki kötüye kullanım sınırları Kör Aktarıcı Kötüye Kullanım Koruması sayfasında açıklanmaktadır.

Uygulamadaki sohbet

  • Varsayılan: mesajlar merkezi RelayWS hizmetinden geçer. Mesaj içeriği uçtan uca şifrelidir, ancak hizmet teslim üst verilerini işler. Sohbet aktarıcısı istemci entegrasyonu sayfasına bakın.
  • Gizlilik rotası (isteğe bağlı, varsayılan olarak kapalı): açık olduğunda ve bir rota hazır olduğunda uygulama, bire bir mesajları önce iki atlamalı onion rotası üzerinden gönderir. Hiçbir onion rotası mesajı kabul etmezse uygulama mesajı cihazda bekletir ve siz o mesaj için onay vermedikçe standart aktarıcıyı kullanmaz.
  • Anonim posta kutusu (beta): yalnızca gizlilik ağına bağlıyken çalışan ayrı bir bırakma noktası. Sıradan konuşmalar bunu kullanmaz.

Anonim posta kutusu çekme boyutları

Bir posta kutusu çekme sonucu eskiden, öğe ne olursa olsun 163.130 baytlık sabit tek bir görüntüydü; bu yüzden kısa bir mesaj yaklaşık 160 KiB'lik bir yanıta mal oluyordu. İmzalı anpf1-ampc1 protokol özelliğiyle anlaşılan çekme sürümü 2, mühürlü öğeyi beş boyut sınıfının en küçüğüne doldurur (4.204, 16.492, 65.644 veya 131.180 bayt ya da kodek azami değeri). 4.096 baytlık bir öğe artık 4.518 bayt olarak iletilir.

TEE düğümü

Bir üretim düğümü, Phala Cloud güvenilir yürütme ortamı (Intel TDX üzerinde dstack) içinde çalışır. Yalnızca anonim posta kutusu ve onion aktarıcısı olarak hizmet verir: VPN'i devre dışıdır, MemChain kapalıdır ve kimlik anahtarı dstack anahtar hizmetinden gelir. Yalnızca ağ geçidindeki bir TLS ana bilgisayar adı üzerinden erişilebilir; ana bilgisayar adı uç noktalarının eklenmesinin nedeni budur. Uygulama şu anda düğümün TEE kanıtlamasını doğrulamamaktadır.

Canlı durum

Toplu ağ durumu şu adreste yayımlanır:

text
GET https://api.aeronyx.network/api/privacy_network/vpn/public/network-stats/

Aktarım ve keşif toplu verileri data.protocol_status altında görünür; örneğin peer_store.blind_relay ve peer_store.peer_quorum. Bunları okurken iki noktaya dikkat edin:

  • Düğüm düzeyindeki toplu veriler yalnızca son 120 saniyede kalp atışı olan düğümleri sayar; bu nedenle çevrimdışı bir düğüm protocol_status.reported_nodes gibi sayılardan düşer. network.total_nodes ve network.vpn_nodes ise çevrimiçi olsun ya da olmasın kayıtlı etkin düğümleri saymaya devam eder.
  • Sentetik yoklama sayaçları (probe_*, two_hop_probe_*) yol sağlığını ölçer. Kullanıcı trafiği değildir.

Herkese açık yanıt yalnızca sayıları, durum gruplarını ve zaman damgalarını içerir. Hiçbir zaman düğüm kimliklerini, uç noktaları, rota kimliklerini, yükleri, alıcıları, istemci IP adreslerini, DNS verilerini veya sosyal grafik kenarlarını içermez. Ağ istatistikleri ve gizlilik sınırı sayfasına bakın.

<!-- faq:start -->

Sıkça sorulan sorular

AeroNyx sohbet mesajlarım merkeziyetsiz düğümlerden mi geçiyor?

Varsayılan olarak hayır. Mesajlar merkezi RelayWS hizmetinden geçer. Uygulamada gizlilik rotasını açabilirsiniz; bu, bir rota hazır olduğunda bire bir mesajları düğümler üzerinden iki atlamalı bir onion rotasıyla gönderir. Hiçbir rota bir mesajı kabul etmezse uygulama, bir rota kullanılabilir hale gelene veya siz o mesajın standart aktarıcı üzerinden gönderilmesini onaylayana kadar mesajı bekletir.

Bir aktarıcı düğüm ilettiği mesajları okuyabilir mi?

Hayır. Bir aktarıcı yalnızca kendi şifreleme katmanını kaldırır ve opak bir veri bloğunu iletir. Mesaj içeriği ayrıca konuşmadaki kişiler arasında uçtan uca şifrelidir.

Directory Chain nedir?

Directory Chain, her düğümün kendi tanımlayıcılarının imzalı, karma bağlantılı geçmişidir. Diğer düğümler onu yansıtır ve dahil edilme kanıtları talep edebilir. Küresel bir koordinatörü yoktur.

Bir ağ geçidinin arkasındaki düğüm ağa nasıl katılabilir?

Uç noktası olarak bir https:// ana bilgisayar adı yayımlayabilir. Diğer düğümler bu adı bağlantı anında çözümler ve yalnızca genel adresleri kullanır; böylece ad özel veya dahili hedeflere yönlendirilemez.

Herkese açık istatistik sayfası neden çevrimiçi olandan daha fazla kayıtlı düğüm gösteriyor?

network.total_nodes ve network.vpn_nodes, çevrimiçi olsun ya da olmasın kayıtlı etkin düğümleri sayar. Bunları network.online_vpn_nodes ile karşılaştırın. Protokol ve iletim sayıları yalnızca kalp atışı güncel olan düğümleri içerir.

Düğümlerin HTTPS için alan adına veya sertifika otoritesine ihtiyacı var mı?

Hayır. Bir düğüm HTTPS uç noktasını kendi kimlik anahtarıyla kanıtlayabilir: TLS sertifikası, düğüm kimliğinin sertifika anahtarı üzerindeki imzasını taşır ve düğüm kimliğini bilen bir istemci veya eş bunu doğrulayabilir. Ağ geçidinin arkasındaki düğümler bunun yerine yine bir https:// ana bilgisayar adı kullanabilir.

İmzalı bir teslim alındısı neyi kanıtlar?

Uç düğümün mesajı aktarıcının saklamasına, uygulamada alıcının aktarıcı gelen kutusuna kabul ettiğini kanıtlar. Alıcının mesajı gördüğünü veya okuduğunu kanıtlamaz. Bunun için sohbet protokolünün teslim ve okundu bilgilerini kullanın.

<!-- faq:end -->