ما هو DNS عبر HTTPS (DoH)؟
DNS عبر HTTPS، ويُختصر DoH، يرسل استعلامات أسماء المواقع داخل اتصال HTTPS عادي إلى خادم أسماء يدعمه. فلا يستطيع من يقع على المسار، كشبكة المقهى أو مزوّد الإنترنت، قراءة الأسماء أو تغيير الأجوبة. لكن الخادم الذي يجيب يبقى يرى كل ما تسأل عنه.
المشكلة التي يحلّها
الاستعلام التقليدي نص واضح يُرسل إلى المنفذ 53. يقرؤه كل جهاز على المسار، ويستطيع من يتحكم بالشبكة أن يعدّله أو يرد بجواب مزيّف قبل وصول الجواب الحقيقي. أساسيات النظام نفسه مشروحة في ما هو DNS.
التشفير يعالج أمرين: خصوصية الاستعلام على المسار، وسلامة الجواب من التعديل. ولا يعالج مسألة الثقة بالخادم نفسه، فهو يعرف الأسماء كما كان يعرفها.
كيف يعمل خطوة بخطوة
- يُضبط في العميل عنوان الخدمة على شكل قالب، مثل https://dnsserver.example.net/dns-query{?dns}.
- يبني العميل رسالة DNS بالصيغة الثنائية نفسها المستخدمة على المنفذ 53.
- يرسلها في طلب HTTPS. مع GET تُرمَّز بصيغة base64url وتوضع في المتغير dns، ومع POST تكون هي جسم الطلب.
- يعيد الخادم الجواب رسالة DNS من نوع المحتوى application/dns-message، داخل الاتصال المشفّر نفسه.
يعرّف ذلك كله RFC 8484، ويوصي بـHTTP/2 حداً أدنى. وهذا طلب GET مأخوذ من المعيار، يسأل عن عنوان www.example.com:
:method = GET
:scheme = https
:authority = dnsserver.example.net
:path = /dns-query?dns=AAABAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB
accept = application/dns-message
القيمة بعد dns= هي رسالة الاستعلام نفسها بعد الترميز، وتُقرأ بهذا الترتيب:
- المعرّف. أول بايتين صفر. يوصي المعيار بالمعرّف 0 في كل طلب، لأن HTTP يربط الطلب بجوابه، ولأن المعرّف المتغيّر يمنع تخزين الطلبات المتطابقة.
- الأعلام والأعداد. علم يطلب البحث التكراري، ثم أعداد الأقسام: سؤال واحد ولا شيء غيره.
- الاسم. يُكتب مقاطع يسبق كلاً منها طوله: 3 www 7 example 3 com.
- النوع والصنف. النوع A أي عنوان IPv4، والصنف IN أي الإنترنت.
ولأن الجواب استجابة HTTP عادية، يمكن تخزينه مؤقتاً. ويشترط المعيار ألا تزيد مدة صلاحيته في ذاكرة HTTP على أصغر مدة صلاحية (TTL) بين سجلات الجواب.
ولتجربته عملياً، يستطيع curl أن يحلّ اسم الموقع عبر DoH بدل خادم النظام:
curl --doh-url https://dns.google/dns-query https://example.com
اسم خادم DoH نفسه يُحلّ بالطريقة العادية أولاً، لأن العميل يحتاج إلى عنوانه قبل أن يتصل به. أما اسم الموقع فيُسأل عنه داخل اتصال HTTPS، ولا يظهر على المنفذ 53.
الفرق بين DoH وDoT وDoQ
| البروتوكول | المعيار | النقل والمنفذ | هل يتميّز عن بقية الحركة |
|---|---|---|---|
| DNS التقليدي | RFC 1035 | UDP وTCP على 53 | نعم، وهو غير مشفّر أصلاً |
| DNS عبر TLS (DoT) | RFC 7858 | TCP على 853 | نعم، فالمنفذ وحده يكشفه |
| DNS عبر HTTPS (DoH) | RFC 8484 | HTTPS على 443 عادةً | لا يتميّز بالمنفذ، لكن عناوين الخوادم المعروفة تدل عليه |
| DNS عبر QUIC (DoQ) | RFC 9250 | QUIC على UDP 853 | نعم، فالمنفذ وحده يكشفه |
البروتوكولات الثلاثة المشفّرة تحمي محتوى الاستعلام بالقدر نفسه تقريباً. الفرق في سهولة تمييزها وحظرها، وفي الأدوات التي تدعم كلاً منها.
ما الذي لا يخفيه
- الخادم الذي يجيب. يرى كل الأسماء مقرونة بعنوانك. التشفير ينقل الثقة من شبكتك إلى مشغّل الخادم، ولا يلغيها.
- عنوان الوجهة. بعد الحصول على الجواب يتصل جهازك بعنوان الموقع، ويرى هذا العنوان كل من على المسار.
- اسم الموقع في مصافحة TLS. الحقل SNI يُرسل بنص واضح، ما لم يستخدم المتصفح والموقع معاً Encrypted Client Hello المعرّف في RFC 9849.
- حجم الحركة وتوقيتها. التشفير يخفي المحتوى، لا عدد الطلبات وأحجامها وأوقاتها، وقد تكفي هذه أحياناً لتخمين المواقع.
- عنوانك أمام المواقع. DoH لا يغيّر العنوان الذي تراه المواقع، فهذا عمل البروكسي أو VPN.
حين يفشل التحقق من الخادم
يعرّف RFC 8310 وضعين لاستخدام DoT، والفكرة نفسها تنطبق على DoH. في الوضع الصارم يجب أن يكون الاتصال مشفّراً وأن يثبت الخادم هويته، وإلا توقف حل الأسماء كلياً. وفي الوضع المرن يحاول العميل التشفير، فإن فشل تابع ولو بلا تحقق أو بنص واضح.
بعض المتصفحات تعرض هذا الاختيار نفسه بأسماء مختلفة: خيار يرجع إلى خادم النظام العادي إن فشل الخادم المشفّر، وخيار لا يرجع. الأول يحافظ على الاتصال، والثاني يحافظ على الخصوصية.
DoH مع VPN أو بروكسي
إن فعّلت DoH في المتصفح وأنت على VPN للجهاز كله، فالاستعلام المشفّر يمر عبر النفق. لكنه يذهب إلى الخادم الذي اخترته في المتصفح، لا إلى خادم النفق.
لهذا أثر عملي. بعض الخدمات تختار خادم المحتوى الأقرب حسب موقع خادم الأسماء الذي سأل، فقد تصلك أجوبة لمنطقة غير منطقة عنوان الخروج. ويظهر في فحص التسريب خادم لا تتوقعه، وهو ليس تسريباً بالمعنى المشروح في تسريب DNS.
إن أردت أن تأتي الأجوبة من بلد النفق، فاترك المتصفح على إعدادات النظام، ودع النفق يحدّد الخادم.
كيف تفعّله وتتحقق منه
- كروم وإيدج. في إعدادات الخصوصية والأمان خيار Use secure DNS، ومعه قائمة مزوّدين أو حقل لعنوان مخصّص.
- فايرفوكس. في قسم الخصوصية والأمان إعداد DNS over HTTPS بمستويات حماية متعددة.
- ويندوز 11. عند تعديل خادم DNS لبطاقة الشبكة يظهر خيار التشفير عبر HTTPS للخوادم التي تدعمه.
- لينكس. الخدمة systemd-resolved تدعم DoT بالإعداد DNSOverTLS=yes في الملف /etc/systemd/resolved.conf.
- أندرويد. خيار Private DNS في إعدادات الشبكة يعتمد أساساً على DoT، ويُكتب فيه اسم الخادم.
بعد التفعيل شغّل فحص التسريب. يجب أن يظهر خادم المزوّد الذي اخترته، لا خادم مزوّد الإنترنت.
DNS المشفّر في syriaproxy
في تطبيقاتنا وفي WireGuard تمر استعلامات الأسماء مشفّرة داخل النفق، وتُحلّ في سوريا عبر خوادم سيريتل. لذلك لا تحتاج إلى DoH في المتصفح لحماية الاستعلامات على المسار، فالنفق يشفّرها أصلاً.
أسئلة شائعة
هل DoH أسرع من DNS العادي؟
ليس بالضرورة. الاستعلام الأول يحتاج إلى فتح اتصال مشفّر، ثم يبقى الاتصال مفتوحاً للاستعلامات التالية. والفرق يعتمد في الغالب على قرب الخادم أكثر من البروتوكول.
هل تستطيع الشبكة حظر DoH؟
حظر DoT وDoQ سهل لأن لهما منفذاً خاصاً. أما DoH فيمر على منفذ HTTPS، لذلك تحظره الشبكات عادةً بحظر عناوين الخوادم المعروفة أو أسمائها.
هل يشمل DoH كل البرامج على الجهاز؟
إن فعّلته في المتصفح فهو للمتصفح وحده، وبقية البرامج تسأل خادم النظام. أما تفعيله في إعدادات النظام، كما في ويندوز وأندرويد، فيشمل كل برنامج يعتمد على محلّل النظام.
أيهما أختار: DoH أم DoT؟
يوفّران الحماية نفسها للاستعلام. DoT أسهل في الإدارة على مستوى الراوتر والشبكة، وDoH أصعب في التمييز والحظر. والأهم من البروتوكول هو الخادم الذي تثق به.
اعرف أي خادم يحلّ أسماءك بأداة فحص تسريب DNS المجانية.