ტელეფონის აპლიკაცია და დისტანციური სერვერი სხვადასხვა ფაქტით იწყებენ და არც ერთს არ შეუძლია მეორის ფაქტების სესხება. აპლიკაციას შეუძლია ოპერაციულ სისტემას ჰკითხოს იმ ქსელის შესახებ, რომელსაც იყენებს, მაშინ როცა სერვერმა მხოლოდ ის იცის, რაც კავშირის გავლით მოდის. საკუთარი ბოლო წერტილის გაშვება გადაწერს მეორეს და უცვლელად ტოვებს პირველს. რომელი მათგანი უპასუხებს თქვენს კითხვას, თავად კითხვაზეა დამოკიდებული.

ორი დაკვირვების წერტილი, ორი სახის მტკიცებულება

ლოკალური მტკიცებულება აღწერს მოწყობილობას. ის მოიცავს ტრაფიკის მატარებელ ინტერფეისს, პლატფორმის მიერ მოხსენებულ ტრანსპორტს და იმას, რაზეც გამომძახებელ აპლიკაციას შეუძლია კითხვა. დისტანციური მტკიცებულება აღწერს კავშირს: წყაროს მისამართი, პროტოკოლი, დრო და ყველაფერი, რისი გაგზავნასაც აპლიკაცია გადაწყვეტს. არც ერთი დაკვირვების წერტილი არ არის მეორის სრული ზესიმრავლე.

ორივეს შერევა წარმოშობს მტკიცებებს, რომლებიც ზუსტად ჟღერს და ვერ მოწმდება. მარკერი რაღაცას ამტკიცებს მოწყობილობის ქსელურ ობიექტზე, და არა იმაზე, როგორ ახარისხებს მოთხოვნას დისტანციური სერვისი.

სანამ აღმოჩენაზე კამათს დაიწყებთ, ჩაწერეთ, რომელ წერტილს ეხება კითხვა. საკითხი ისაა, შეუძლია თუ არა კონკრეტულ აპლიკაციას იმის გაგება, რომ გვირაბი აქტიურია, თუ ის, შეუძლია თუ არა სერვისს იმის დასკვნა, საიდან მოვიდა მოთხოვნა? ეს ცალკე გამოკვლევებია და ერთზე პასუხი მეორეზე არაფერს ამბობს.

რა შეიძლება მოახსენოს ლოკალურმა პლატფორმის ინტერფეისმა

Android გთავაზობთ კონკრეტულ მარკერს. ობიექტს NetworkCapabilities შეუძლია მოახსენოს TRANSPORT_VPN, ხოლო hasTransport ამოწმებს, არის თუ არა ეს ტრანსპორტი ობიექტზე. აპლიკაცია ობიექტს კავშირის სერვისისგან იღებს და კითხულობს, ქსელის მდგომარეობის ნებართვის პირობით.

შედეგი ლოკალური პლატფორმის ინფორმაციაა და არა მომწოდებლის მისამართების დიაპაზონებში ძებნა. ის აღწერს ქსელს, რომელსაც გამომძახებელი აპლიკაცია იყენებს.

ორი შეზღუდვა მნიშვნელოვანია. გაყოფილი გვირაბის წესს, რომელიც აპლიკაციას გამორიცხავს, შეუძლია იმავე ტელეფონზე სხვა პასუხი მისცეს, ვიდრე კოლეგა ხედავს, რადგან აპლიკაცია სხვაგან შეიძლება იყოს მიბმული. მარკერი იმიტომაც არსებობს, რომ ოპერაციული სისტემა VPN ინტერფეისებს მოდელირებს და არა იმიტომ, რომ რომელიმე კონკრეტული აპლიკაცია აგროვებს მას. აპლიკაცია კითხულობს ამ ველს, გადასცემს თუ უგულებელყოფს — ეს ამ აპლიკაციის თვისებაა. მისი მანიფესტი და დოკუმენტაცია ამ კითხვის ერთადერთი სანდო წყაროა.

adb shell dumpsys connectivity | grep -i -m5 vpn

რა შეუძლია დაინახოს დისტანციურმა სერვისმა

სერვერი ხედავს კავშირის წყაროს მისამართს, ტრანსპორტს და დროს და შეუძლია მისამართი გაამდიდროს რეესტრის ან მარშრუტიზაციის მონაცემებით. მას ასევე შეუძლია მიიღოს ყველაფერი, რასაც აპლიკაცია აგზავნის, მათ შორის მდებარეობა, როცა აპლიკაცია ითხოვს და მომხმარებელი ეთანხმება. ეს არხები ცალკეა და მხოლოდ ერთი ჰგავს მისამართის ძიებას.

ჰოსტინგის მომწოდებელზე რეგისტრირებული მისამართი გვირაბზე მიანიშნებს, ხოლო საცხოვრებელ ქსელზე რეგისტრირებული — სახლის კავშირზე. ორივე სტატისტიკური მინიშნებაა და არა ფაქტი მოწყობილობაზე.

საცხოვრებელი მისამართი ადამიანს იმ მისამართზე არ ათავსებს და ჰოსტინგის მისამართი ოპერატორს ან ქვეყანას არ ასახელებს. სერვისი, რომელიც დასკვნას დაზუსტებად თვლის, ზოგჯერ შეცდება და ვერ აღმოაჩენს ამას. თუ მოთხოვნა საიმედოობაა და არა ევრისტიკა, მისამართის მონაცემებს ეს არ შეუძლია, და დიზაინი, რომელიც ამას ამბობს, უფრო გულახდილია, ვიდრე ის, რომელიც ვარაუდს მალავს.

მტკიცებულებარას პასუხობსრას ვერ აჩვენებს
ლოკალური ტრანსპორტის მარკერიარის თუ არა ეს ქსელური ობიექტი VPNვინ მართავს გასვლას ან სად არის მოწყობილობა
დისტანციური წყაროს მისამართირომელი მისამართი მიაღწია სერვისამდეატარებს თუ არა მოწყობილობა გვირაბსაც
აპლიკაციის დატვირთვარისი გაგზავნა აირჩია აპლიკაციამყველაფერი, რაც აპლიკაციამ არ გაგზავნა

რატომ ცვლის თვითჰოსტინგიანი გასვლა მხოლოდ ერთ მხარეს

საკუთარი ბოლო წერტილის გაშვება ცვლის იმ წყაროს მისამართს, რომელსაც დისტანციური სერვისი ხედავს, რამაც შეიძლება ის გამოიყვანოს იმ დიაპაზონებიდან, რომლებსაც ეს სერვისი კომერციულ მომწოდებლებს უკავშირებს. ლოკალური ქსელის მოდელში არაფერი იცვლება, რადგან გვირაბი გვირაბად რჩება და ოპერაციული სისტემა კვლავ იუწყება მას.

მტკიცებულების ერთი მხარე მოძრაობს, მეორე უძრავი რჩება. მათ შორის არსებული სიცარიელე არის ადგილი, სადაც მოლოდინები იმსხვრევა.

ბრაუზერი მესამე შემთხვევაა საკუთარი ინტერფეისებითა და შეზღუდვებით. ვებ შიგთავსს არ შეუძლია მშობლიური შესაძლებლობების ობიექტის წაკითხვა, და მობილური ოპერაციული სისტემის ფუნქციის ვებ გვერდისთვის ხელმისაწვდომად მიჩნევა კატეგორიის შეცდომაა. თუ კითხვა ვებსაიტს ეხება, შეისწავლეთ, რისი მიღება შეუძლია ვებსაიტს სინამდვილეში, პლატფორმის API-ს სიტყვასიტყვით გადაწერის ნაცვლად.

გადაწყვიტეთ თქვენივე კითხვით

თუ კითხვა ისაა, შეუძლია თუ არა კონკრეტულ აპლიკაციას გვირაბის მდგომარეობის დაკვირვება, პლატფორმის ინტერფეისი სწორი ადგილია საყურებლად, და პასუხი ამ აპლიკაციის კოდსა და ნებართვებშია. თუ კითხვა ის არის, რისი დასკვნა შეუძლია სერვისს, მტკიცებულება კავშირის მეტამონაცემებია. სამართლებრივ ან სახელშეკრულებო საკითხს არც ერთი არ წყვეტს.

დაასახელეთ კითხვა ერთი წინადადებით, სანამ რამეს შეაგროვებთ. ის წინადადება წყვეტს, რომელი დაკვირვების წერტილია მნიშვნელოვანი, და ხელს უშლის გამოკვლევას სხვა კამათში გადახვევას.

მონიშნეთ ყოველი დაკვირვება მისი წყაროს მიხედვით, როცა აცნობებთ მას, რადგან ნიშნის გარეშე მტკიცება გადამოწმებადი არ არის. ლოკალური მარკერი და მისამართიდან გამოტანილი დასკვნა ორივე სასარგებლოა და არც ერთი არ არის გადამწყვეტი, ამიტომ მათი ერთ განაჩენად შერწყმა შეცდომაა.

როცა სერვისი უარყოფს ავტორიზებულ კავშირს, გამოიყენეთ მისი მხარდაჭერილი გადახედვის გზა იმის ნაცვლად, რომ ლოკალური პარამეტრი შეცვალოთ სიგნალის დასამალად. ერთი დაკვირვების მოცილება არასოდეს ამტკიცებს, რომ დანარჩენები გაქრნენ.

დაკავშირებული სტატიები