معرفی
پرسشها و پاسخهای DNS سنتی از طریق UDP یا TCP بدون رمزگذاری ارسال میشوند. این در برابر استراق سمع و جعل (از جمله فیلتر اینترنت مبتنی بر DNS) آسیب پذیر است. پاسخهای حلکنندههای بازگشتی به کلاینتها آسیبپذیرترین پاسخها در برابر تغییرات ناخواسته یا مخرب هستند، در حالی که ارتباطات بین حلکنندههای بازگشتی و سرورهای نام معتبر اغلب از حفاظت اضافی استفاده میکنند.
برای رفع این مشکلات، Google Public DNS وضوح DNS را بر روی اتصالات TCP رمزگذاری شده با TLS همانطور که توسط RFC 7858 مشخص شده است، ارائه می دهد. DNS-over-TLS حریم خصوصی و امنیت بین کلاینت ها و حل کننده ها را بهبود می بخشد. این DNSSEC را تکمیل می کند و از نتایج تأیید شده توسط DNSSEC در برابر تغییر یا جعل در راه دسترسی به مشتری محافظت می کند.
چگونه کار می کند
یک سیستم کلاینت می تواند از DNS-over-TLS با یکی از دو نمایه استفاده کند: حریم خصوصی سخت یا فرصت طلب . با مشخصات سختگیرانه حریم خصوصی، کاربر یک نام سرور DNS ( نام دامنه احراز هویت در RFC 8310 ) را برای سرویس DNS-over-TLS پیکربندی میکند و مشتری باید بتواند یک اتصال TLS امن را در پورت 853 به سرور DNS ایجاد کند. عدم ایجاد یک اتصال ایمن یک خطای سخت است و منجر به عدم وجود سرویس DNS برای مشتری می شود.
با نمایه حریم خصوصی فرصت طلبانه، آدرس IP سرور DNS ممکن است مستقیماً توسط کاربر پیکربندی شود یا از شبکه محلی (با استفاده از DHCP یا ابزارهای دیگر) به دست آید. حلکننده کلاینت تلاش میکند تا یک اتصال امن در پورت 853 به سرور DNS مشخص شده برقرار کند. اگر یک اتصال ایمن برقرار شود، این امر حریم خصوصی درخواست های کاربر را از ناظران منفعل در مسیر فراهم می کند. از آنجایی که کلاینت اعتبار سرور را تأیید نمی کند، در برابر یک مهاجم فعال محافظت نمی شود. اگر کلاینت نتواند یک اتصال امن را در پورت 853 برقرار کند، بدون هیچ گونه امنیت یا حریم خصوصی، به برقراری ارتباط با سرور DNS در پورت استاندارد DNS 53 از طریق UDP یا TCP بازمی گردد. استفاده از حریم خصوصی فرصت طلب برای حمایت از گسترش افزایش حریم خصوصی با در نظر گرفتن پذیرش گسترده مشخصات حریم خصوصی سخت در نظر گرفته شده است.
هنگام استفاده از نمایه حریم خصوصی دقیق، حلکنندههای خرد با مراحل زیر یک اتصال DNS-over-TLS ایجاد میکنند.
- حلکننده خرد با نام حلکننده DNS-over-TLS
dns.google
پیکربندی شده است. - حلکننده خرد آدرس(های) IP
dns.google
را با استفاده از حلکننده DNS محلی به دست میآورد. - حل کننده خرد یک اتصال TCP به پورت 853 در همان آدرس IP ایجاد می کند.
- حلکننده خرد، دست دادن TLS را با حلکننده DNS عمومی Google آغاز میکند.
- سرور عمومی DNS Google گواهی TLS خود را به همراه زنجیره کامل گواهینامه های TLS تا یک گواهی ریشه قابل اعتماد برمی گرداند.
- حلکننده خرد هویت سرور را بر اساس گواهیهای ارائه شده تأیید میکند.
- اگر هویت قابل تأیید نباشد، وضوح نام DNS با مشکل مواجه میشود و حلکننده خرد خطایی را برمیگرداند.
- پس از برقراری ارتباط TLS، حلکننده خرد دارای یک مسیر ارتباطی امن بین سرور DNS عمومی Google است.
- اکنون حلکننده خرد میتواند درخواستهای DNS را ارسال کند و پاسخها را از طریق اتصال دریافت کند.
هنگام استفاده از یک نمایه حریم خصوصی فرصت طلبانه، مشتری ابتدا سعی می کند یک اتصال امن TLS به سرور ایجاد کند. این کار مشابه موارد فوق با یک تفاوت مهم انجام می شود - هیچ اعتبار گواهی توسط مشتری انجام نمی شود. این بدان معناست که هویت سرور قابل اعتماد نیست. اگر اتصال TLS در پورت 853 به سرور برقرار نشود، حلکننده خرد به صحبت با سرور DNS در پورت 53 بازمیگردد.
حریم خصوصی
خط مشی رازداری ما در مورد سرویس DNS-over-TLS اعمال می شود.
در 2019/06/27 ما زیرشبکه مشتری EDNS (ECS) را برای سرویس DNS-over-TLS دوباره فعال کردیم. ECS در راه اندازی سرویس غیرفعال شد.
پشتیبانی استانداردها
Google Public DNS DNS-over-TLS را بر اساس RFC 7858 پیاده سازی می کند. علاوه بر این، ما از توصیه های زیر برای ارائه یک سرویس DNS با کیفیت بالا و تاخیر کم پشتیبانی می کنیم.
- TLS 1.3 (RFC 8846)
- باز کردن سریع TCP (RFC 7413)
- انتقال DNS از طریق الزامات پیاده سازی TCP (RFC 7766)
شروع به استفاده از آن کنید
دستورالعملهای پیکربندی آن را در دستگاهی با Android 9 (Pie) یا بالاتر ببینید.
DNS-over-TLS همچنین برای سرویس Google Public DNS64 فقط IPv6 پشتیبانی میشود. توجه داشته باشید که پیکربندی DNS64 برای دستگاه تلفن همراهی که به چندین شبکه متصل میشود، توصیه نمیشود، زیرا DNS64 تنها زمانی کار میکند که IPv6 در دسترس باشد.