DNS מוצפן בלי VPN מסתיר את השאילתה, לא את הכתובת שלך
DNS מוצפן מגן על החלפה אחת עם מאתר אחד. הוא לא מסתיר את הכתובת שלך ולא מעוור את המאתר, לכן הגדירו את המטרה לפני קריאת מבחן דליפה.
מבחן דליפת DNS שמראה את הרשת הביתית שלך אינו הוכחה ש־DNS מוצפן נכשל, וגם אינו הוכחה שמשהו עבד. המבחן עונה על שאלה אחת: לאיזה מאתר הגיעה השאילתה הזו מהרשת הזו. אם זה בעיה תלוי במה ובמי הגנת.
כתבו את המטרה לפני הרצת כל מבחן.
שלב 1: תנו שם להגנה שאתם באמת רוצים
שלוש מטרות מתערבבות. ייתכן שתרצו שצופה בדרך יפסיק לקרוא שאילתות. ייתכן שתרצו שמאתר מסוים יפסיק לקבל אותן. ייתכן שתרצו שהאתרים שאתם מבקרים בהם יפסיקו לראות את הכתובת הביתית שלך. DNS מוצפן משרת את הראשונה, משנה מי מספק את השניה, ולא עושה דבר לשלישית.
VPN משרת את השלישית ואת הראשונה, תלוי בספק. אף אחד מהכלים אינו קבוצת־על של השני.
שלב 2: בחרו מאתר ואמתו את זהותו
DNS over TLS עוטף את השאילתה במושב TLS עם המאתר, ו־DNS over HTTPS עוטף אותה בבקשת HTTP; RFC 7858 ו־RFC 8484 מתארים את שניהם, ואף אחד מהם לא צריך מנהרה. מה שחשוב מבחינה תפעולית הוא שהתעודה מאומתת מול השם שהגדרתם, כי מושב מוצפן עם הצד הלא נכון גרוע יותר מטקסט גלוי עם הצד הנכון. משמעות הדבר היא מצב קפדני היכן שהפלטפורמה מציעה אותו, ולא מצב אופורטוניסטי שנופל לאחור כשהאימות נכשל. בדקו את המושב ישירות לפני שתסמכו על ההגדרה: openssl s_client -connect 9.9.9.9:853 -servername dns.quad9.net -brief.
לחיצת היד צריכה לנקוב במאתר שהגדרתם ולהחזיר שרשרת שתוכלו לאמת.
שלב 3: החליטו על התנהגות הכשל
לכל מימוש יש מדיניות למאתר מוצפן שאינו זמין, ומדיניות זו היא החלטת הפרטיות. מצב קפדני מכשיל את החיפוש, וזה גלוי ומעצבן. מצב אופורטוניסטי מנסה שוב בטקסט גלוי, וזה בלתי נראה ומבטל את המטרה בדיוק ביום שבו היא חשובה. בחרו במודע, ואז רשמו את הבחירה לצד הדרישה.
ב־systemd-resolved זה אומר DNSOverTLS=yes ולא opportunistic; וב־Android זה אומר מצב שם מארח של Private DNS במקום אוטומטי.
בדקו מה באמת בתוקף עם resolvectl status | grep -i -A1 "dns over tls", כי קובץ drop-in שמעולם לא נטען מחדש לא משנה דבר.
שלב 4: בדקו שהאפליקציות עוקבות אחרי המאתר של המערכת
דפדפן עם הגדרת DNS מאובטח משלו עוקף את תצורת המערכת לגמרי, וכך גם runtime של מכולות עם מאתר מובנה או runtime של שפה שקורא רשימה מקודדת קשיח. או שגרמו להם לעקוב אחרי המערכת או שהגדירו אותם במפורש ורשמו זאת. אחר כך הביטו בהתנהגות הנפילה לאחור של כל אחד מהם, כי לא כולם נכשלים סגור. המלאי בפועל קצר: דפדפן, runtime של מכולות וכל לקוח VPN שאתם מריצים גם כן.
שמות ארגוניים פרטיים נשארים על המאתר הפנימי המאושר. שליחתם לשירות ציבורי כדי שמבחן ייראה מסודר יוצרת בכוונה בעיה אחרת.
שלב 5: קראו את מבחן הדליפה מול הדרישה
מבחן שמדווח על מאתר בלתי צפוי הוא רמז, לא פסק דין. ייתכן שהוא צפה במאתר המוצפן שכיוונתם אליו, בהגדרה ספציפית לאפליקציה, או בנפילה לאחור לטקסט גלוי שלא הייתם מודעים לה. השוו את המאתר המדווח לזה ששלב 2 הגדיר, והשוו את התוצאה למטרה משלב 1.
אם המטרה הייתה להרחיק שאילתות מהרשת המקומית, מבחן שמראה את המאתר הרגיל שלך הוא ממצא אמיתי. אם המטרה הייתה אנונימיות בזמן גלישה, שום הגדרת DNS לא הייתה מספקת את זה אי פעם.
כתבו את שורת הקבלה בשפת המטרה: החיפושים האלה משתמשים במאתר המאומת הזה בתנאים האלה. כל דבר רחב יותר הוא טענה שאינכם יכולים לבחון.