DNS over HTTPS
DNS over HTTPS (DoH) הוא פרוטוקול המיועד לביצוע שאילתות DNS מרחוק באמצעות פרוטוקול HTTPS. מטרתו העיקרית היא להגדיל את פרטיות המשתמשים והביטחון על ידי מניעת יירוט ומניפולציה של נתוני ה-DNS באמצעות התקפות "האדם שבאמצע" (man-in-the-middle), באמצעות הצפנת הנתונים בין לקוח DoH לבין שרת ה-DNS באמצעות פרוטוקול HTTPS.[1][2]
במרץ 2018, גוגל וקרן מוזילה החלו לבדוק גרסאות של DoH.[3][4] בפברואר 2020, פיירפוקס העביר את DNS over HTTPS כברירת מחדל עבור משתמשים בארצות הברית.[5] במאי 2020, גוגל כרום עבר לשימוש ב-DNS over HTTPS כברירת מחדל.[6]
פרטים טכניים
DoH הוא תקן מוצע, שפורסם כ-RFC 8484 באוקטובר 2018 על ידי IETF. הפרוטוקול משתמש ב-HTTPS ומעביר את נתוני התשובה בפורמט ה-"wire format" כפי שמוחזר בתשובות UDP קיימות, ב-HTTPS payload עם סוג ה-MIME "application/dns-message".[7] שכבת ה-HTTP יכולה להיות כל גרסה של HTTP, אם כי HTTP/2 הוא המינימום המומלץ.[7] אם משתמשים ב-HTTP/2, השרת יכול גם להשתמש ב-HTTP/2 server push לשלוח ערכים שהוא צופה שהלקוח עשוי למצוא מועילים מראש.[7]
ODoH (Oblivious DNS over HTTPS)
Oblivious DNS over HTTPS (ODoH) הוא Internet Draft שמציע הרחבה לפרוטוקול על מנת להבטיח ששום שרת DoH לא יידע גם את כתובת ה-IP של הלקוח וגם את תוכן השאילתות והתשובות של ה-DNS. ODoH פותח במקור כ-Oblivious DNS (ODNS) על ידי חוקרים באוניברסיטת פרינסטון ובאוניברסיטת שיקגו כהרחבה ל-DNS שאינו מוצפן, לפני ש-DoH עצמו תקנן והופץ באופן נרחב. אפל ו-Cloudflare פרסמו לאחר מכן את הטכנולוגיה בהקשר של DoH כ-Oblivious DoH (ODoH).[8]
ב-ODoH ו-ODNS, כל הבקשות והתשובות של DNS מנותבות דרך פרוקסי, מסתירים את כתובת הלקוח מהפותח. הבקשות והתשובות מוצפנות כדי להסתיר את תוכנן מהפרוקסי, ורק הפותח יכול לפענח את הבקשות, ורק הלקוח יכול לפענח את התשובות. כך, הפרוקסי יודע את כתובת הלקוח אך לא את הבקשה, והפותח יודע את הבקשה אך לא את כתובת הלקוח, מה שמונע קישור של כתובת הלקוח לשאילתה, אלא אם כן שני השרתים משתפים פעולה.[9][10][11][12]
תרחישי פריסה
DoH משמש לפתרון DNS חוזר על ידי פותרי DNS. פותחים (לקוחות DoH) חייבים להיות מחוברים לשרת DoH שמארח נקודת קצה לשאילתה.[13]
שלושה תרחישי שימוש נפוצים:
- שימוש ביישום DoH בתוך יישום: כמה דפדפנים מכילים יישום DoH מובנה ויכולים לבצע שאילתות על ידי מעקף על פונקציונליות ה-DNS של מערכת ההפעלה. חיסרון הוא שיישום עשוי לא להודיע למשתמש אם הוא מדלג על שאילתת DoH, בין אם בגלל תצורה שגויה או חוסר תמיכה ב-DoH.
- התקנת פרוקסי DoH בשרת השמות ברשת המקומית: בתרחיש זה מערכות הלקוח ממשיכות להשתמש ב-DNS מסורתי (יציאות 53 או 853) כדי לשאול את שרת השמות ברשת המקומית, אשר יאסוף את התשובות הנחוצות באמצעות DoH על ידי הגעה לשרתים באינטרנט. שיטה זו שקופה למשתמש הקצה.
- התקנת פרוקסי DoH במערכת מקומית: בתרחיש זה מערכות ההפעלה מוגדרות לשאול פרוקסי DoH הפועל באופן מקומי. בניגוד לשיטה הקודמת, הפרוקסי צריך להיות מותקן על כל מערכת שמעוניינת להשתמש ב-DoH, מה שיכול לדרוש הרבה מאמץ בסביבות גדולות.
תמיכת תוכנה
מערכות הפעלה
אפל
מכשירי iOS 14 ו-macOS 11 של אפל שתצאו בסוף 2020 תומכים בפרוטוקולי DoH ו-DoT.[14][15] ב-iOS, ניתן להשתמש בפרוטוקולים באמצעות פרופילי תצורה.
Windows
בנובמבר 2019, מיקרוסופט הודיעה על תוכניות ליישם תמיכה בפרוטוקולי DNS מוצפנים ב-Windows, החל מ-DoH.[16] במאי 2020, מיקרוסופט הוציאה את Windows 10 Insider Preview Build 19628 שכלל תמיכה ראשונית ב-DoH[17] יחד עם הוראות כיצד להפעיל אותו באמצעות רישום וממשק שורת הפקודה.[18] Windows 10 Insider Preview Build 20185 הוסיף ממשק משתמש גרפי לקביעת תצורה של פותר DoH.[19] תמיכה ב-DoH לא נכללת ב-Windows 10 21H2.[20]
ב-Windows 11 יש תמיכה ב-DoH.[21]
Android
מערכת ההפעלה Android 11 ואילך תומכת ב-DNS באמצעות HTTP/3 (DoH3) אם מותקן עדכון מערכת יולי 2022.[22]
BIND
גרסה 9.17.10 של BIND תומכת ב-DoH באופן טבעי.[23]
PowerDNS
גרסה 1.4.0 של dnsdist תומכת ב-DoH באופן טבעי מאפריל 2019.[24]
Unbound
גרסה 1.12.0 של Unbound תומכת ב-DoH מאוקטובר 2020.[25][26] תחילה יישם תמיכה בהצפנת DNS באמצעות פרוטוקול ה-DoT החל מגרסה 1.4.14, שיצאה בדצמבר 2011.[27][28] Unbound פועל על רוב מערכות ההפעלה, כולל הפצות של לינוקס, BSD, MacOS ו-Windows.
דפדפני אינטרנט
Google Chrome
DNS over HTTPS זמין ב-Google Chrome 83 ואילך עבור Windows, Linux ו-macOS, וניתן לקבוע אותו באמצעות דף ההגדרות. כאשר הוא מופעל, וכאשר מערכת ההפעלה מוגדרת עם שרת DNS נתמך, Chrome ישדרג שאילתות DNS למוצפנות.[29] ניתן גם לציין שרת DoH מותאם אישית דרך ממשק המשתמש.[30]
בספטמבר 2020, גוגל כרום לאנדרואיד החל בפריסה מדורגת של DNS over HTTPS. משתמשים יכולים לקבוע שרת מותאם אישית או להשבית DNS over HTTPS בהגדרות.[31]
ב-Google Chrome יש 5 ספקי DNS over HTTPS מוגדרים מראש שהם Google Public DNS, Cloudflare's 1.1.1.1, Quad9's 9.9.9.9, NextDNS ו-CleanBrowsing.[32]
Microsoft Edge
Microsoft Edge תומך ב-DNS over HTTPS, וניתן לקבוע אותו דרך דף ההגדרות. כאשר הוא מופעל, וכאשר מערכת ההפעלה מוגדרת עם שרת DNS נתמך, Edge ישדרג שאילתות DNS למוצפנות. ניתן גם לציין שרת DoH מותאם אישית דרך ממשק המשתמש.[33]
Mozilla Firefox

ב-2018, מוזילה שיתפה פעולה עם Cloudflare כדי לספק DoH עבור משתמשי פיירפוקס שמפעילים אותו (ידוע כ-Trusted Recursive Resolver).[34] ב-25 בפברואר 2020, פיירפוקס החלה להפעיל DNS over HTTPS עבור כל המשתמשים בארצות הברית, כשהיא מסתמכת על שרת Cloudflare כברירת מחדל.[35]
Opera
Opera תומכת ב-DoH, וניתן לקבוע אותו דרך דף ההגדרות של הדפדפן.[36] כברירת מחדל, שאילתות DNS נשלחות לשרתי Cloudflare.[37]
שרתי DNS ציבוריים
ספקי DNS ציבוריים מסוימים מציעים שירותי DoH חינם.
שיקולי יישום
נושאים רבים בנוגע ליישום הנכון של DoH עדיין נפתרים על ידי קהילת האינטרנט, כולל, אך לא מוגבלים ל:
- עצירת צדדים שלישיים מניתוח תעבורת DNS למטרות אבטחה
- הפרעה לבקרת הורים ומסנני תוכן ברמת DNS
- DNS מפוצל ברשתות ארגוניות
- מיקום CDN
ניתוח תעבורת DNS למטרות אבטחה
DoH יכול להפריע לניתוח ומעקב אחר תעבורת DNS למטרות סייבר; תולעת ה-DDoS Godlua מ-2019 השתמשה ב-DoH כדי להסוות את הקשרים לשרת הפקודות והשליטה שלה.[38][39]
בינואר 2021, NSA הזהירה ארגונים מפני שימוש בפתרונות DoH חיצוניים כי הם מונעים סינון, בדיקה וביקורת של שאילתות DNS. במקום זאת, NSA ממליצה להגדיר פותרי DoH בבעלות הארגון ולחסום את כל הפותרי DoH החיצוניים הידועים.[40]
הפרעה למסנני תוכן
DoH שימש לעקיפת שליטה הורית שפועלת ברמת ה-DNS הבלתי מוצפן; Circle, נתב לשליטה הורית שמשתמש בשאילתות DNS כדי לבדוק דומיינים מול רשימת חסימה, חוסם DoH כברירת מחדל בגלל זה.[41] עם זאת, ישנם ספקי DNS שמציעים סינון ושליטה הורית יחד עם תמיכה ב-DoH על ידי הפעלת שרתי DoH.[42][43]
איגוד ספקי שירותי האינטרנט הבריטי (ISPA) וגוף ה-Internet Watch Foundation הבריטי מתחו ביקורת על Mozilla, מפתח ה-Firefox, על תמיכתו ב-DoH, כיוון שלדעתם זה יפגע בתוכניות סינון האינטרנט במדינה, כולל סינון תוכן למבוגרים וחסימת הפרות זכויות יוצרים בהוראת בית המשפט. ה-ISPA מועמדת למועמדת למועמדת ל"נבל האינטרנט" על ידי Mozilla על תמיכתם ב-DoH, לצד תקנה 13 של זכויות יוצרים של ה-EU, ודונלד טראמפ.[44][45] בתגובה לביקורת, ISPA התנצלה והסירה את המועמדות.[46][47] מוזילה לאחר מכן הצהירה כי DoH לא ישמש כברירת מחדל בשוק הבריטי עד לדיון נוסף עם הגורמים הרלוונטיים, אך הצהירה כי זה "יספק יתרונות אבטחה אמיתיים לאזרחי בריטניה".[48]
קישורים חיצוניים
- פרויקט פרטיות DNS: dnsprivacy.org
- מבוא קריקטורה ל-DNS over HTTPS
- DNS over HTTPS (DoH) שיקולים לרשתות מפעילים] (טיוטה, פגה ב-12 במרץ 2020)
הערות שוליים
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ 1 2 3 בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ שגיאת לואה ביחידה יחידה:Citation/CS1/Configuration בשורה 1739<includeonly></includeonly>: attempt to index field '?' (a nil value).
- ^ שגיאת לואה ביחידה יחידה:Citation/CS1/Configuration בשורה 1739<includeonly></includeonly>: attempt to index field '?' (a nil value).
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ Trusted Recursive Resolver
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"