האם מפעיל VPN יכול לראות אילו אתרים אתם מבקרים?
שרת OpenVPN ברירת מחדל מתעד הפעלות, לא כתובות URL. השוו יומני חיבורים, לכידת מנהרה ובדיקת דליפת DNS לפני שתטענו מה המפעיל רואה.
שאלו מה ה-VPN יכול לראות, והתשובה תלויה במיקום: היכן שאתם עומדים בנתיב. בשכבת ההפעלה יש למפעיל אירועי אימות וספירת בתים. בשכבת המנות יש כתובות יעד ותזמון. בשכבת ה-DNS אולי יש לו את השמות עצמם. כל שכבה עונה על שאלה אחרת, ואף מתג אחד לא מעביר אתכם ביניהן.
מפו את השכבה לפני שאתם טוענים טענה
אותו חיבור מייצר רשומות שונות בכל נקודה, וטענה על פרטיות משמעותית רק כשהיא נוקבת בנקודה. קראו את הטבלה עמודה אחר עמודה: מה קיים באותה שכבה, מה מפעיל יכול לראות שם, ומה אותן רשומות עדיין לא יכולות לספר לו.
| Layer | Visible there | Not visible there |
|---|---|---|
| Session and authentication | Account, client address, start and stop times, assigned address, byte counts | URLs, page content, search terms |
| Forwarded packets | Destination address and port, sizes, timing, often the TLS server name | HTTP path, headers, response body |
| DNS resolver | Queried names and the client that asked | Page content and later requests |
| TLS-terminating proxy | Full request line, headers and body | Nothing, by design |
קריאה של שכבה אחת כתמונה כולה היא תחילתן של הגזמות ושל הרגעה כוזבת גם יחד. ספק שאומר שאינו רושם גלישה יכול להיות מדויק לגבי רישום URL ובכל זאת להחזיק רשומות הפעלה, ולכידת מנות שמראה רק כתובות אינה הופכת להיסטוריית גלישה בלי חיפושים הפוכים וניחושים.
כשאתם מעריכים מדיניות, מצאו את המשפט שמתאר כל שכבה. אם המדיניות אינה מפרידה ביניהן, שאלו אילו רשומות קיימות במקום לקבל אמירה כללית על הצפנה.
מלאי הפעלות: מה שרת OpenVPN רגיל שומר
מיד לאחר ההתקנה, שרת OpenVPN אינו לוכד תעבורה. הפלט הרגיל הוא מלאי הפעלות: החשבון שאומת, כתובת המקור שממנה הגיע, חותמות זמן להתחלה ולסיום, כתובת המנהרה שהוקצתה וסך הבתים בכל כיוון. זהו מלאי של הפעלות, לא רשימת יעדים.
אפשרויות רישום יכולות להוסיף פירוט. רמת פירוט גבוהה יותר כותבת יותר על לחיצת היד, וקובץ מצב יכול לפרט לקוחות מחוברים, אבל אף אחד מהם לא הופך את השרת למתווך שקוף. הפקת כתובות URL דורשת סיום TLS או הפעלת מתווך מפורש, ושניהם משנים את סדר האמון במקום להפעיל תכונה נסתרת.
לכן הנוסח המדויק של הטענה שאין יומן גלישה צר מכפי שהוא נשמע. השרת אינו יודע את הדף, אבל הוא יודע שהתקיימה הפעלה ובערך כמה נתונים עברו דרכה. אם אותה רשומת הפעלה נשמרת, וכמה זמן, זו שאלת מדיניות נפרדת.
מנות פנימיות ומנות חיצוניות הן ראיות שונות
לכידת מנות היא הדרך לראות מה באמת עובר במנהרה. בשרת, תנו שם לממשק המנהרה וכתבו לקובץ שאפשר לנתח אותו שלא במקוון:
sudo tcpdump -ni tun0 -w /tmp/tun.pcap
sudo tcpdump -r /tmp/tun.pcap -nn | headהקובץ הזה מכיל תעבורה פנימית מפוענחת: כתובת המנהרה של הלקוח כמקור, כתובת היעד והפורט, גדלי המנות והתזמון. אין בו את נתיב ה-HTTP או את גוף התגובה אלא אם TLS הופסק במקום כלשהו, ואלה נתונים רגישים ששמירתם היא החלטת מדיניות ולא נוחות ניפוי שגיאות.
לכידה בממשק הפיזי מראה משהו אחר. שם רואים מנות חיצוניות שמוענות לנקודת הקצה של ה-VPN, עם המטען המוצפן בפנים. כתובות לא קשורות שמופיעות בקובץ הזה הן תקינות ברגע שקיים מתאם וירטואלי, כי התקן המנהרה נושא את הזרימות הפנימיות והתעבורה המוצפנת נושאת את החיצוניות.
שאלו על איזו שאלה הלכידה אמורה לענות. השימוש של יישום במנהרה נראה במתאם הווירטואלי; הנגישות של המנהרה לנקודת הקצה נראית בממשק הפיזי. שימוש באחד הקבצים כאילו היה התמונה המלאה מפיק מסקנות שהנתונים אינם תומכים בהן.
DNS הוא המקום שבו שמות נעשים גלויים
DNS נשאר החריג המעשי. הפותר רואה את השמות שמבקשים ממנו לפתור, ולכן מי שמפעיל אותו לומד אילו אתרים לקוח מחפש גם כשהחיבורים המאוחרים מוצפנים. לכידת מנהרה מראה כתובות; הפותר מראה שמות.
בדקו באיזו כתובת השתמש הפותר כדי להגיע לשירות חיצוני. התשובה היא כתובת היציאה של הפותר, והשוואה ליציאת ה-VPN אומרת לכם אם השאילתה עברה במנהרה:
dig +short myip.opendns.com @resolver1.opendns.com
dig example.com
sudo tcpdump -ni any udp port 53אם הכתובת הזו תואמת את החיבור המקומי ולא את יציאת המנהרה, החיפוש עקף את ה-VPN והשם היה גלוי בנתיב המקומי. חזרו על הבדיקה אחרי עדכון לקוח, כי גרסה חדשה יכולה לשנות איזה פותר הפרופיל מתקין.
DNS מוצפן מעביר את הנראות במקום להסיר אותה. הרשת כבר אינה רואה את השאילתה, אבל הפותר כן, ושאלת האמון פשוט מחליפה ידיים. שם שרת ה-TLS בלחיצת היד של החיבור הוא אות חלקי נוסף: הוא שורד לעתים קרובות גם כשהמטען אטום, ולכן כתובות יעד אינן המטא-נתונים היחידים ששרת מעביר יכול להבחין בהם.
שלושה סוגי רשומות ומי יכול לקרוא אותן
חשבונאות הפעלות, רשומות לפי שם וראיות דליפה הם שלושה מוצרים שונים עם שלוש חובות שונות. יומני הפעלה זולים ובעלי רגישות נמוכה, והם עונים מי התחבר ומתי. רשומות לפי שם דורשות פותר שמתעד או מתווך מפורש, והן יוצרות חובת גילוי כלפי האנשים שנפגעו. ראיית דליפה היא בדיקה בצד הלקוח שמשווה את מה שהפותר חושף ליציאת המנהרה.
רשמו איזה משלושת אלה אתם מפעילים, מי יכול לקרוא אותו וכמה זמן הוא נשאר. אמירות ששירות אינו מחזיק יומנים מתארות שכבה אחת, והן נכונות רק בתחום הזה. אותו ספק יכול להיות מדויק לגבי הפעלות וטועה לגבי DNS.
שמרו על הבדיקה ניתנת לשחזור: אותה שאילתה לפותר, אותו ממשק לכידה ואותה השוואה. טענת פרטיות שאי אפשר לבדוק בשכבה בשמה היא סיסמה, לא עובדה תפעולית.