מה שם מארח של VPN ציבורי יכול להוכיח ומה לא
שם מארח מצביע על נקודת קצה ומעט מעבר לכך. הוא אינו מוכיח את הפרוטוקול, את מיקום היציאה או את מדיניות השמירה של המפעיל, בשום יום נתון.
שמות מארח ודגלי מדינות נראים כמו עובדות על שרת, ואף אחד מהשניים אינו כזה. שם מפנה לכתובות שיכולות להשתנות, ואת המילים שבתוכו בחר מי שרשם אותו. הפרוטוקול, מיקום היציאה והתנהגות הרישום ביומן צריכים כל אחד הוכחה משלו. התחילו במה שהשם באמת נפתר אליו, ואחר כך החליטו מה עדיין אינו ידוע.
השם נפתר, ושום דבר אחר אינו מוכרע
שם מארח הוא מצביע בתוך DNS, והרשומות שמאחוריו יכולות להיות שונות לפי הפותר, לפי שעת היום ולפי משפחת הכתובות שהלקוח מעדיף. שני אנשים שקוראים את אותה רשומת מדריך יכולים בהחלט להגיע למכונות שונות. השם אומר לכם מה לבקש, לא מה יענה.
גם תוצאות החיפוש משתנות בלי הודעה, וזה חשוב כשפרופיל מצמיד כתובת במקום את השם. פרופיל שמקודד את הכתובת הישנה ממשיך להיכשל אחרי שהמפעיל מעביר את השירות, והכשל נראה כמו פורט חסום. שמרו את הכתובות שנפתרו לצד הפרופיל כדי שלהשוואה מאוחרת תהיה נקודת בסיס. שום דבר מזה לא אומר מי מפעיל את הצד השני.
dig +short vpn.example.net A
dig +short vpn.example.net AAAA
dig +short vpn.example.net A @1.1.1.1
תעבורה וזהות הן שאלות נפרדות
דף אינטרנט פתוח בשם המארח בודק מאזין אחד בפורט אחד. OpenVPN, IPsec ו-SSTP מאזינים במקום אחר, בפורטים ובפרוטוקולים שלהם, כך ששרת אינטרנט נגיש לא אומר עליהם דבר.
רשומת המדריך והפרופיל חייבים להסכים על תעבורה, פורט ואישורי גישה. הזהות מאומתת באמצעות שרשרת התעודות או טביעת האצבע של מפתח העמית שאיתו הוגדר הלקוח, ולא באמצעות כתיב שם המארח. שם שמכיל מילה מוכרת של פרויקט מוכיח רק שמישהו רשם אותו. קראו את התעודה שהשירות מציג והשוו מנפיק ונושא למה שהפרופיל מצפה לו.
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net </dev/null 2>/dev/null |
openssl x509 -noout -subject -issuer -dates
מילות מדינה אינן ביקורת מיקום
תווית jp או de במדריך היא רישום, ומסדי נתונים של מיקום גיאוגרפי של IP חלוקים לעתים קרובות מספיק כדי שאף אחד מהם לא ייחשב כאמת מוחלטת. אחסון משותף, anycast ותצורה שגויה פשוטה כולם מרחיקים את המיקום הנצפה מהתווית.
המבחן המעשי הוא המסלול של היישום עצמו: לאיזו כתובת הוא מגיע, ומה בדיקת כתובת יציאה מראה מתוך הסשן. כתובת יציאה נצפית היא תכונה של המסלול באותו רגע, לא ערובה התלויה בשם. מדריכי מתנדבים מוסיפים שכבה נוספת, כי מי שרשם רשומה אינו חייב להיות מי שמפעיל את המכונה. רשמו מה מדדתם ומתי, ולא את מה שהרשומה הבטיחה.
בדקו את השירות המוצע, ואחר כך את המפעיל
לאחר שהתעבורה והזהות הוכרעו, השאלה שנותרה היא התנהגות המפעיל, וזו דורשת ראיות תיעודיות ולא הסקה. מדיניות פרטיות, איש קשר מפורסם והודעת שקיפות הם ראיות לכוונה; אף אחד מהם אינו מוכיח את הנוהג, והיעדר שלושתם הוא גם מידע.
עבור צומת ציבורי או כזה שמופעל בידי מתנדבים, הניחו שהיציאה משותפת ומי שמפעיל אותה יכול לראות מה עובר דרכה. ההנחה הזו, ולא שם המארח, צריכה להחליט מה אתם שולחים דרך המנהרה.
curl -sSI https://vpn.example.net/ | head -n 5
whois 203.0.113.25 | grep -i -E 'orgname|netname'
שמרו את השם למה שהוא טוב בו: למצוא נקודת קצה ולהתחבר אליה. כל מה שמעבר לכך צריך להיבדק בנפרד, ביום שבו זה חשוב.