Telefon uygulaması ve uzak sunucu farklı olgularla başlar ve hiçbiri diğerinin olgularını ödünç alamaz. Uygulama, kullandığı ağ hakkında işletim sistemine sorabilir; oysa sunucu yalnızca bağlantı üzerinden geleni bilir. Kendi uç noktanızı çalıştırmak ikincisini yeniden yazar ve birincisine dokunmaz. Hangisinin sorunuzu yanıtlayacağı sorunun kendisine bağlıdır.

İki gözlem noktası, iki tür kanıt

Yerel kanıt cihazı betimler. Trafiği taşıyan arayüzü, platformun bildirdiği taşımayı ve çağıran uygulamanın sorgulayabildiklerini kapsar. Uzak kanıt bağlantıyı betimler: kaynak adresi, protokol, zamanlama ve uygulamanın göndermeye karar verdiği her şey. Hiçbir gözlem noktası diğerinin üst kümesi değildir.

İkisini karıştırmak, kesin görünen ve doğrulanamayan iddialar üretir. İşaret, cihazdaki bir ağ nesnesi hakkında bir şey kanıtlar; uzak bir hizmetin isteği nasıl sınıflandırdığını değil.

Algılamayı tartışmadan önce sorunun hangi noktaya değindiğini yazın. Soru, belirli bir uygulamanın bir tünelin etkin olduğunu anlayıp anlayamaması mı, yoksa bir hizmetin isteğin nereden geldiğini çıkarıp çıkaramaması mı? Bunlar ayrı incelemelerdir ve birine verilen yanıt diğeri hakkında hiçbir şey söylemez.

Yerel bir platform arayüzü neyi bildirebilir

Android belirli bir işaret sunar. NetworkCapabilities nesnesi TRANSPORT_VPN bildirebilir ve hasTransport o taşımanın nesnede bulunup bulunmadığını sınar. Uygulama nesneyi bağlantı hizmetinden alır ve okur; ağ durumu iznine tabidir.

Sonuç yerel platform bilgisidir, bir sağlayıcının adres aralıklarında arama değildir. Çağıran uygulamanın kullandığı ağı betimler.

İki sınır önemlidir. Bir uygulamayı dışlayan bölünmüş tünel kuralı, aynı telefonda bir iş arkadaşının gördüğünden farklı bir yanıt verebilir, çünkü uygulama başka bir yere bağlanmış olabilir. İşaret ayrıca işletim sistemi VPN arayüzlerini modellediği için vardır; belirli bir uygulama onu topladığı için değil. Uygulamanın bu alanı okuyup okumaması, iletip iletmemesi ya da yok sayması o uygulamanın özelliğidir. Manifestosu ve belgeleri o soru için tek güvenilir kaynaktır.

adb shell dumpsys connectivity | grep -i -m5 vpn

Uzak bir hizmet neyi görebilir

Sunucu bağlantının kaynak adresini, taşımayı ve zamanlamayı görür ve adresi kayıt ya da yönlendirme verileriyle zenginleştirebilir. Uygulamanın gönderdiği her şeyi de alabilir; uygulamanın istediği ve kullanıcının onayladığı durumlarda konum dahil. Bu kanallar ayrıdır ve yalnızca biri adres aramasına benzer.

Bir barındırma sağlayıcısına kayıtlı adres tünele işaret ederken, bir konut ağına kayıtlı adres ev bağlantısına işaret eder. İkisi de istatistiksel ipuçlarıdır, cihaz hakkında olgu değildir.

Konut adresi kişiyi o adrese yerleştirmez ve barındırma adresi işletmeciyi ya da ülkeyi adlandırmaz. Çıkarımı kesinlik sayan bir hizmet bazen bunu algılayamadan yanılacaktır. Gereksinim sezgisel bir kural değil güvenilirlikse, adres verileri bunu sağlayamaz ve bunu söyleyen bir tasarım, tahmini saklayandan daha dürüsttür.

KanıtNeye yanıt verirNeyi gösteremez
Yerel taşıma işaretiBu ağ nesnesi VPN miÇıkışı kim işletiyor veya cihaz nerede
Uzak kaynak adresiHangi adres hizmete ulaştıCihaz ayrıca tünel taşıyor mu
Uygulama yüküUygulama neyi göndermeyi seçtiUygulamanın göndermediği her şey

Kendi barındırdığınız çıkış neden yalnızca bir tarafı değiştirir

Kendi uç noktanızı çalıştırmak, uzak bir hizmetin gördüğü kaynak adresi değiştirir ve bu, adresi o hizmetin ticari sağlayıcılarla ilişkilendirdiği aralıkların dışına taşıyabilir. Yerel ağ modelinde hiçbir şey değişmez, çünkü tünel tünel olarak kalır ve işletim sistemi onu bildirmeye devam eder.

Kanıtın bir tarafı hareket eder, diğeri sabit kalır. Aralarındaki boşluk beklentilerin kırıldığı yerdir.

Tarayıcı, kendi arayüzleri ve kısıtları olan üçüncü bir durumdur. Web içeriği yerel bir yetenek nesnesini okuyamaz ve bir mobil işletim sistemi özelliğini web sayfası için erişilebilir saymak bir kategori hatasıdır. Soru bir web sitesiyle ilgiliyse, platform API'sini birebir kopyalamak yerine bir web sitesinin gerçekte ne elde edebileceğini inceleyin.

Sorduğunuz soruyla karar verin

Soru, belirli bir uygulamanın tünel durumunu gözlemleyip gözlemleyemeyeceği ise, platform arayüzü bakılacak doğru yerdir ve yanıt o uygulamanın kodunda ve izinlerindedir. Soru, bir hizmetin neyi çıkarabileceği ise, bağlantı üst verisi kanıttır. Hukuki ya da sözleşmesel bir soruyu ikisi de çözmez.

Bir şey toplamadan önce soruyu tek bir cümleyle adlandırın. O cümle hangi gözlem noktasının önemli olduğunu belirler ve incelemenin başka bir tartışmaya kaymasını önler.

Bildirdiğinizde her gözlemi kaynağına göre etiketleyin, çünkü etiketsiz bir iddia gözden geçirilemez. Yerel işaret ve adresten yapılan çıkarım ikisi de yararlıdır ve hiçbiri kesin değildir, bu yüzden onları tek bir hükümde birleştirmek hatadır.

Bir hizmet yetkilendirilmiş bir bağlantıyı reddettiğinde, bir sinyali saklamak için yerel ayarı değiştirmek yerine desteklediği inceleme yolunu kullanın. Bir gözlemi kaldırmak, diğerlerinin kaybolduğunu asla kanıtlamaz.

İlgili makaleler