Düğüm Keşfi ve Şifreli Çok Atlamalı Aktarım
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
| Yetenek | Durum |
|---|---|
| İ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ı rotalar | Politika 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:
httpveyahttpsü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,localhostve.local,.internalve.home.arpagibi ö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:
[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-ibt1protokol ö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
- Gönderen, her aktarıcının yayımlanmış onion anahtarını kullanarak yükü her atlama için bir şifreleme katmanıyla sarar.
- 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.
- 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
| Taraf | Gördüğü | Görmediği |
|---|---|---|
| Giriş düğümü | Gönderenin ağ adresi, mühürlü bir katman ve sonraki atlama | Mesajın kime ait olduğu ve içeriği |
| Uç düğüm | Gönderen ve alıcı anahtarları ile şifreli metin | Gö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 boyutlar | Gö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:
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_nodesgibi sayılardan düşer.network.total_nodesvenetwork.vpn_nodesise ç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 -->