DNS over TLS (DoT)
DNS over TLS (DoT) הוא פרוטוקול אבטחת מידע שמצפין ועוטף את שאילתות והתגובות של Domain Name System (DNS) באמצעות פרוטוקול TLS. מטרת השיטה היא להגדיל את פרטיות וביטחון המשתמשים על ידי מניעת האזנה ומניפולציה של נתוני ה-DNS באמצעות התקפת אדם בתווך. הפורט הנפוץ עבור DoT הוא 853.
בעוד ש-DNS over TLS ישים לכל שאילתת DNS, הוא היה בשימוש לראשונה לתקשורת בין שרתי Stub Resolvers או Forwarding Resolvers לבין Recursive Resolvers, במאי 2016. הגדיר הIETF את השימוש ב-DoT בין שרתים חזרתיים לבין שרתים סמכותיים ("Authoritative DNS over TLS" או "ADoT")[1] ויישום קשור בין שרתים סמכותיים ("Zone Transfer-over-TLS" או "xfr-over-TLS").[2]
תוכנת שרת
BIND תומך בחיבורי DoT החל מגרסה 9.17.[3] גרסאות מוקדמות הציעו יכולת DoT באמצעות פרוקסי דרך stunnel.[4] Unbound תומך ב-DNS over TLS מאז 22 בינואר 2023.[5][6] Unwind תומך ב-DoT מאז 29 בינואר 2023.[7][8] עם תמיכת Pie של אנדרואיד ב-DNS over TLS, חלק מהחוסמי הפרסומות כעת תומכים בשימוש בפרוטוקול המוצפן כאמצעי נגיש יחסית לגישה לשירותיהם, בניגוד לשיטות עוקפות אחרות כמו VPNs ושרתי פרוקסי.[9][10][11][12]
תוכנת לקוח
לקוחות אנדרואיד עם גרסת אנדרואיד פאי או גרסאות אנדרואיד חדשות יותר תומכים ב-DNS over TLS וישתמשו בו כברירת מחדל אם תשתית הרשת, כגון ספק האינטרנט, תומכת בכך.[13][14]
באפריל 2018, גוגל הכריזה ש-אנדרואיד פאי תכלול תמיכה ב-DNS over TLS,[15] ותאפשר למשתמשים להגדיר שרת DNS ברמת הטלפון הן בחיבורי Wi-Fi והן בחיבורי סלולר, אופציה שהייתה זמינה רק במכשירים עם הרשאות שורש. DNSDist, מ-PowerDNS, גם הכריזה על תמיכה ב-DNS over TLS בגרסה 1.3.0.[16]
משתמשי לינוקס ו-Windows יכולים להשתמש ב-DNS over TLS כלקוח דרך stubby של NLnet Labs או Knot Resolver.[17] לחלופין, ניתן להתקין getdns-utils[18] כדי להשתמש ב-DoT ישירות עם הכלי getdns_query. גם ה-DNS resolver של unbound מבית NLnet Labs תומך ב-DNS over TLS.[19]
iOS 14 של אפל הציגה תמיכה ברמת מערכת ההפעלה עבור DNS over TLS (וגם DNS over HTTPS). iOS אינה מאפשרת תצורה ידנית של שרתי DoT, ודורשת שימוש באפליקציה של צד שלישי כדי לבצע שינויים בתצורה.[20]
systemd-resolved הוא מימוש עבור לינוקס בלבד שניתן להגדירו לשימוש ב-DNS over TLS על ידי עריכת הקובץ /etc/systemd/resolved.conf
ואפשרת ההגדרה DNSOverTLS
.[21][22] רוב הפצות הלינוקס הגדולות מתקינות systemd כברירת מחדל.
פתרונות DNS ציבוריים
DNS over TLS יושם לראשונה בפתרון DNS חזרתי ציבורי על ידי Quad9 בשנת 2017.[23][24] מפעילי שרתי DNS אחרים כמו Google ו-Cloudflare הלכו בעקבותיו בשנים שלאחר מכן, וכעת מדובר בתכונה נתמכת בצורה רחבה הזמינה לרוב בשרתים חזרתיים גדולים.[25][26][27][28][29][30][31][32][12]
ביקורות ושיקולי יישום
DoT יכול להפריע לניתוח ומעקב אחר תעבורת DNS למטרות אבטחת סייבר. נעשה שימוש ב-DoT כדי לעקוף בקרת הורים שפועלת ברמת DNS הסטנדרטי (ללא הצפנה); Circle, ראוטר בקרת הורים שמסתמך על שאילתות DNS כדי לבדוק דומיינים מול רשימת חסימה, חוסם DoT כברירת מחדל בגלל זה.[33] עם זאת, ישנם ספקי DNS שמציעים סינון ובקרת הורים יחד עם תמיכה ב-DoT ו-DoH.[34][35][36][37][38][12] בתרחיש זה, שאילתות DNS נבדקות מול רשימות חסימה לאחר שהן מתקבלות על ידי הספק במקום לפני שהן נשלחות מהראוטר של המשתמש.
כמו בכל תקשורת, הצפנת בקשות DNS בפני עצמה אינה מגינה על פרטיות. היא מגינה מפני צופים של צד שלישי, אך אינה מבטיחה מה עושים נקודות הקצה עם הנתונים (המפוענחים) לאחר מכן.
לקוחות DoT לא בהכרח מבצעים שאילתות ישירות מול שרתים סמכותיים. הלקוח עשוי להסתמך על שרת DoT המשתמש בשאילתות מסורתיות (פורט 53 או 853) כדי להגיע בסופו של דבר לשרתים סמכותיים. לכן, DoT אינו נחשב פרוטוקול הצפנה מקצה לקצה, אלא רק הצפנה "מהקפיצה להקפיצה" וגם זאת רק אם נעשה שימוש ב-DNS over TLS בצורה עקבית.
חלופות
DNS over HTTPS (DoH) הוא תקן פרוטוקול דומה להצפנת שאילתות DNS, שנבדל רק בשיטות ההצפנה וההעברה מ-DoT. מנקודת מבט של פרטיות ואבטחה, השאלה אם ישנו פרוטוקול עליון ביניהם שנויה במחלוקת, בעוד אחרים טוענים כי היתרונות של כל אחד תלויים במקרה השימוש הספציפי.[39]
DNSCrypt הוא פרוטוקול רשת נוסף שמאמת ומצפין תעבורת DNS, אם כי הוא מעולם לא הוצע ל-(IETF) (RFC) בהליכים המקובלים ליצירת פרוטוקלים.
ראו גם
קישורים חיצוניים
הערות שוליים
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ 1 2 3 בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ שגיאת לואה ביחידה יחידה: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 news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite news"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"
- ^ בתהליכי בנייה "תבנית:Cite web"