یک بار در پروژه‌ای، کاربران از یک ISP خاص گزارش دادند که سایت را با صفحاتی متفاوت می‌بینند؛ پر از تبلیغات و پاپ‌آپ‌های ناشناس. ابتدا به سراغ سرور و کدها رفتیم و هیچ اثری از تغییر پیدا نکردیم. بعد از چند ساعت بررسی، معلوم شد که Resolver یکی از سرورهای میانی آن ISP، دچار Cache Poisoning شده و پاسخ‌های نادرست برمی‌گردانده. مشکل نه در سایت بود و نه در سرور، بلکه در لایه‌ی DNS. از آن روز، امنیت DNS برایم از یک موضوع لوکس، به یک فاکتور بنیادی تبدیل شد. این مقاله، همان چارچوب را باز می‌کند: DNS امن چیست، چه حمله‌هایی را می‌گیرد، و چطور می‌توانید آن را در پروژه‌های خودتان پیاده کنید.

اگر با مفاهیم پایه‌ی DNS آشنا نیستید، پیش از ادامه، DNS چیست و چگونه کار می‌کند و برای شناخت رکوردها، رکوردهای DNS کدامند را بخوانید.

DNS امن دقیقاً چیست؟

DNS امن، به مجموعه‌ای از فناوری‌ها و رویه‌ها گفته می‌شود که یکپارچگی، محرمانگی و اصالت پاسخ‌های DNS را تضمین می‌کنند. در حالت سنتی، DNS یک پروتکل بدون احراز هویت است: هر کسی که در مسیر شبکه قرار بگیرد، می‌تواند پاسخ‌ها را دستکاری کند، جعل کند یا سرقت کند. DNS امن، با اضافه کردن لایه‌های رمزنگاری و امضای دیجیتال، این ضعف را جبران می‌کند.

سه ستون DNS امن عبارتند از:

  • DNSSEC (Domain Name System Security Extensions): امضای دیجیتال پاسخ‌های DNS برای تأیید اصالت و یکپارچگی.
  • DoH (DNS over HTTPS): رمزنگاری کوئری‌های DNS در بستر HTTPS.
  • DoT (DNS over TLS): رمزنگاری کوئری‌های DNS با پروتکل TLS.

هر کدام از این‌ها یک لایه‌ی متفاوت را هدف می‌گیرد. DNSSEC جلوی دستکاری پاسخ را می‌گیرد، در حالی که DoH و DoT جلوی شنود کوئری‌ها را می‌گیرند. مکمل یکدیگرند، نه جانشین.

DNS در طراحی اولیه‌ی خود، برای اعتماد ساخته نشد؛ برای سادگی ساخته شد. DNS امن، در واقع تلاشی است برای اضافه‌کردن اعتماد به همان طراحی ساده.

حمله‌های رایج روی DNS

برای درک ارزش DNS امن، باید حمله‌های رایج را بشناسید. پنج حمله‌ی اصلی:

۱. DNS Spoofing

مهاجم با پاسخ‌های جعلی، کاربر را به یک سرور تقلبی هدایت می‌کند. این سرور می‌تواند صفحات جعلی (مثلاً صفحه‌ی لاگین بانک یا سرویس شما) نمایش دهد و اطلاعات کاربر را بدزدد. DNS Spoofing برای سایت‌های بانکی، فروشگاهی و لاگین‌محور، خطرناک‌ترین تهدید است.

۲. DNS Cache Poisoning

مهاجم پاسخ‌های جعلی را در Cache یک Resolver تزریق می‌کند. نتیجه این است که همه‌ی کاربران آن Resolver، برای مدت TTL، پاسخ‌های نادرست می‌گیرند. همین حمله بود که در مقدمه‌ی مقاله به آن اشاره کردم. برای اینکه بفهمید چطور این حمله انجام می‌شود، می‌توانید صفحه‌ی DNS spoofing در ویکی‌پدیا را ببینید.

۳. DNS Hijacking

مهاجم با دسترسی به پنل ثبت‌کننده دامنه یا پنل DNS شما، رکوردها را دستی تغییر می‌دهد و ترافیک را به سرورهای خودش هدایت می‌کند. این حمله نیازمند نفوذ در حساب کاربری شماست، بنابراین مدیریت رمز عبور و 2FA اهمیت حیاتی دارد.

۴. Man-in-the-Middle روی DNS

مهاجم در مسیر ارتباط کاربر با Resolver قرار می‌گیرد و کوئری‌ها را می‌خواند یا تغییر می‌دهد. این حمله بیشتر در شبکه‌های عمومی (Wi-Fi) دیده می‌شود. برای درک کلی این دسته از حملات، حمله MITM چیست و چه خطراتی دارد را ببینید.

۵. DNS Amplification (DDoS)

در این حمله، مهاجم از سرورهای DNS باز به‌عنوان سلاح برای حمله DDoS استفاده می‌کند. اگر سرور DNS شما اجازه‌ی Query از هر منبعی را بدهد، ممکن است قربانی این حمله شود یا در آن دخیل باشد. برای اصول کلی امنیت وب، امنیت وب چیست و چه اصولی دارد را ببینید.

DNSSEC: امضای دیجیتال برای رکوردهای DNS

DNSSEC یک استاندارد امنیتی است که امضای دیجیتال به رکوردهای DNS اضافه می‌کند. وقتی یک Resolver کوئری می‌فرستد، پاسخ همراه با امضای دیجیتال می‌آید و Resolver می‌تواند اصالت آن را تأیید کند. اگر کسی پاسخ را دستکاری کند، امضا دیگر معتبر نخواهد بود و Resolver پاسخ را رد می‌کند.

رکوردهای اضافی DNSSEC

برای فعال‌سازی DNSSEC، Zone شما باید رکوردهای اضافی داشته باشد:

  • DNSKEY: کلید عمومی امضای رکوردها.
  • RRSIG: امضای دیجیتال هر رکورد.
  • DS: در Zone والد، برای اتصال کلید به والد.
  • NSEC یا NSEC3: برای احراز هویت عدم‌وجود یک رکورد.

نحوه‌ی فعال‌سازی

فعال‌سازی DNSSEC دو مرحله دارد: اول در سرویس DNS شما، و بعد در Registrar. اگر یکی از این دو مرحله انجام نشود، سایت شما کامل از دسترس خارج می‌شود. همین مسئله است که DNSSEC را در نگاه اول پیچیده به‌نظر می‌رساند. در سرویس‌های ابری مدرن، این فرآیند تا حد زیادی خودکار شده است. برای راهنمای دقیق، چگونه DNS دامنه را تنظیم کنیم را ببینید.

DoH و DoT: رمزنگاری کوئری‌های DNS

DNSSEC امضای پاسخ‌ها را تضمین می‌کند اما کوئری را رمزنگاری نمی‌کند. هر کسی در مسیر می‌تواند ببیند شما کدام دامنه را resolve می‌کنید. DoH و DoT این مشکل را حل می‌کنند:

DoH (DNS over HTTPS)

کوئری‌های DNS در قالب درخواست‌های HTTPS منتقل می‌شوند. یعنی همان لایه‌ی رمزنگاری که برای سایت‌ها استفاده می‌شود، برای DNS هم به‌کار می‌رود. مزیت اصلی DoH این است که در پورت ۴۴۳ اجرا می‌شود و از نظر فایروال‌ها، مشابه ترافیک وب معمولی به نظر می‌رسد. این یعنی در شبکه‌هایی که DNS را مسدود می‌کنند، DoH می‌تواند عبور کند.

DoT (DNS over TLS)

کوئری‌های DNS در پروتکل TLS منتقل می‌شوند، اما روی پورت اختصاصی ۸۵۳. مزیت DoT این است که به‌عنوان یک سرویس مستقل شناخته می‌شود و راحت‌تر می‌توان آن را مدیریت کرد. نقطه‌ی ضعفش این است که برخی شبکه‌ها پورت ۸۵۳ را مسدود می‌کنند.

انتخاب بین DoH و DoT

اگر می‌خواهید در برابر سانسور شبکه مقاوم باشید، DoH انتخاب بهتری است. اگر می‌خواهید کنترل شبکه‌ی سازمانی داشته باشید و بتوانید ترافیک DNS را جدا کنید، DoT مناسب‌تر است. در اکثر پروژه‌های شخصی و شرکتی، DoH انتخاب پیش‌فرض شده است.

مقایسه DNSSEC و DoH و DoT

این سه فناوری مکمل یکدیگرند، نه رقیب. جدول زیر تفاوت‌ها را نشان می‌دهد:

ویژگیDNSSECDoHDoT
هدف اصلیاصالت پاسخرمزنگاری کوئریرمزنگاری کوئری
جلوی Spoofing را می‌گیرد؟بلهتا حدیتا حدی
جلوی شنود را می‌گیرد؟نهبلهبله
پیچیدگی پیاده‌سازیبالاپایینپایین
پورت۵۳ (بدون تغییر)۴۴۳۸۵۳
مقاوم به سانسورنهبلهمتوسط
پشتیبانی عمومیگسترده اما کندگستردهگسترده

در پروژه‌های واقعی، معمولاً ترکیبی از این‌ها استفاده می‌شود: DNSSEC روی Zone خودتان، و DoH/DoT روی Resolverهای کاربران. اگر از سرویس‌های DNS ابری استفاده می‌کنید، این ترکیب به‌طور پیش‌فرض فعال است. برای درک بهتر چارچوب ابری، DNS ابری چیست و چه تفاوتی با DNS سنتی دارد را ببینید.

پیاده‌سازی DNS امن در پروژه‌های واقعی

اگر می‌خواهید در پروژه‌ی خودتان DNS امن را پیاده کنید، این مراحل را پیشنهاد می‌کنم:

  1. شروع با DNSSEC: اگر از سرویس DNS ابری استفاده می‌کنید، DNSSEC در چند کلیک فعال می‌شود. حتماً پس از فعال‌سازی، تست از چند نقطه انجام دهید و پایش مداوم داشته باشید. اگر مطمئن نیستید، ابتدا در یک دامنه‌ی تستی تمرین کنید.
  2. استفاده از Resolver امن در سرور: اگر Resolver داخلی دارید، آن را به DoH یا DoT مجهز کنید. سرویس‌هایی مثل Google DNS و Cloudflare، هم DoH و هم DoT را پشتیبانی می‌کنند.
  3. پایش مداوم: پس از فعال‌سازی، رفتار شبکه را پایش کنید. خطاهای DNSSEC باید سریع شناسایی شوند، چون در صورت خطا، سایت کامل از دسترس خارج می‌شود. برای عیب‌یابی، چگونه DNS را عیب‌یابی کنیم.
  4. مدیریت دسترسی ثبت‌کننده و DNS: رکوردهای DNS شما باید در برابر دسترسی غیرمجاز محافظت شوند. از 2FA در Registrar و سرویس DNS استفاده کنید. اصول کلی را در امنیت در فضای ابری چگونه تامین می‌شود ببینید.
  5. استفاده از CAA: رکورد CAA را تنظیم کنید تا فقط CAهای مجاز بتوانند برای دامنه‌ی شما گواهی صادر کنند. برای شناخت دقیق‌تر رکوردها، رکوردهای DNS کدامند.

مزایای عملی DNS امن برای سایت

پس از پیاده‌سازی DNS امن، این مزایا را در عمل می‌بینید:

  • کاهش ریسک حمله‌های هدایت‌شده: جلوی DNS Spoofing و Cache Poisoning گرفته می‌شود. برای سایت‌های مالی، این تفاوت بین امنیت و بحران است.
  • افزایش اعتماد کاربر: کاربرانی که آگاه‌اند، به سایت‌های با DNS امن بیشتر اعتماد می‌کنند. این اثر، در سایت‌های بانکی و فروشگاهی محسوس‌تر است.
  • حفاظت از داده‌ها در شبکه‌های عمومی: با DoH/DoT، کوئری‌های DNS کاربران در شبکه‌های Wi-Fi عمومی قابل خواندن نیستند.
  • کاهش سطح حمله: با CAA و DNSSEC، سطح حمله‌ی کلی کاهش می‌یابد و بعضی از حمله‌ها اصلاً انجام‌پذیر نیستند.
  • پایداری در طول زمان: زیرساخت امن، رشد و مقیاس‌پذیری را ساده‌تر می‌کند، چون لایه‌های بالاتر (مثل SSL و HTTPS) می‌توانند روی آن سوار شوند. برای درک ارتباط این دو، HTTPS چه تاثیری بر سئو و رتبه Google دارد و SSL چیست و چرا سایت به آن نیاز دارد را ببینید.
DNS امن، یک انتخاب لوکس نیست؛ یک لایه‌ی پایه است که روی آن، لایه‌های دیگر امنیت و سئو ساخته می‌شود. بدون آن، هر لایه‌ی بالاتر روی زمین لرزان ایستاده است.

اشتباهات رایج در پیاده‌سازی DNS امن

در پروژه‌ها، پنج اشتباه رایج در پیاده‌سازی DNS امن دیده‌ام:

  1. فعال‌سازی DNSSEC بدون آماده‌سازی: اگر DS Record در Registrar تنظیم نشود، سایت کامل از دسترس خارج می‌شود. این اتفاق در برخی پروژه‌ها رخ داده و چند ساعت downtime ساخته است.
  2. نادیده گرفتن رفتار DoH در سرویس‌های داخلی: اگر از سرویس‌های فیلترینگ داخلی استفاده می‌کنید، DoH ممکن است در محیط شما کار نکند یا کند باشد. پیش از پیاده‌سازی، تست کنید.
  3. نداشتن پایش پس از فعال‌سازی: بسیاری از مشکلات DNSSEC، بی‌سروصدا هستند. اگر پایش نداشته باشید، ممکن است چند روز بعد متوجه شوید بخشی از کاربران به سایت دسترسی ندارند.
  4. بی‌توجهی به مسائل مجوز CA: اگر CAA تنظیم شده باشد و یک CA جدید برای گواهی SSL استفاده کنید، ممکن است صدور گواهی رد شود. حتماً پیش از تغییر CA، رکورد CAA را به‌روز کنید.
  5. استفاده از سرویس‌های ناشناس DNS امن: برخی سرویس‌های DoH به‌طور ناشناس و بدون ثبت ترافیک کار می‌کنند. در محیط‌های سازمانی، این می‌تواند مشکل نظارتی ایجاد کند. سیاست سازمانی را قبل از انتخاب بررسی کنید.

در کنار این اشتباهات، اشتباهات رایج در تنظیم DNS فهرست جامع‌تری از خطاها را می‌دهد که برای درک لایه‌ی پایه‌ی تنظیمات DNS مفید است.

پرسش‌های پرتکرار درباره DNS امن

آیا DNSSEC برای همه‌ی سایت‌ها ضروری است؟ ضروری به‌معنای حداقلی، نه. اما برای سایت‌های حساس — بانکی، فروشگاهی، لاگین‌محور و سازمانی — ضروری است. برای سایت‌های کوچک محتوایی، اولویت پایین‌تری دارد اما فعال‌سازی آن به‌تدریج در حال تبدیل شدن به استاندارد است.

آیا DoH و DoT تفاوت معناداری دارند؟ از نظر امنیت، هر دو کوئری‌های DNS را رمزنگاری می‌کنند. تفاوت اصلی در پورت و مقاومت به سانسور است. DoH در پورت ۴۴۳ اجرا می‌شود و مشابه ترافیک وب است، بنابراین در شبکه‌های مسدودکننده بهتر عبور می‌کند. DoT در پورت ۸۵۳ اجرا می‌شود و راحت‌تر قابل مدیریت است.

آیا DNS امن روی سرعت سایت اثر منفی دارد؟ به‌طور کلی نه، اما بسته به پیاده‌سازی ممکن است تغییرات جزئی داشته باشد. DNSSEC با افزایش حجم پاسخ و پردازش امضا، می‌تواند زمان resolve را کمی افزایش دهد اما در عمل ناچیز است. DoH/DoT با افزایش یک لایه‌ی TLS، می‌تواند زمان resolve را کمی بیشتر کند، اما در مقایسه با سود امنیتی، ارزشش را دارد. برای بهبود سرعت، چگونه سرعت DNS را بهبود دهیم را ببینید.

آیا DNS امن روی سئو اثر دارد؟ مستقیم نه، اما از مسیر Uptime و امنیت، غیرمستقیم بله. سایتی که دچار DNS Hijacking شده، ممکن است مدت‌ها در موتور جستجو ناپایدار باشد. برای درک مسیر، سئو چیست و چگونه به رشد سایت کمک می‌کند را ببینید.

آیا DNS امن به‌تنهایی کافی است؟ نه. DNS امن، فقط یک لایه است. امنیت کامل، ترکیبی از DNS امن، HTTPS، امنیت سرور، و به‌روزرسانی مداوم است. برای اصول کلی، امنیت وب چیست و چه اصولی دارد را ببینید.

چطور بفهمم آیا سایت من DNS امن دارد؟ چند ابزار آنلاین وجود دارد که وضعیت DNSSEC دامنه‌ی شما را بررسی می‌کنند. برای DoH/DoT، معمولاً این تنظیمات روی Resolverهای کاربر اعمال می‌شود، نه روی Zone شما. اگر می‌خواهید وضعیت کامل DNS خود را بررسی کنید، چگونه DNS را عیب‌یابی کنیم راهنمای دقیقی است.

آیا DoH/DoT باعث می‌شود کنترل والدین یا فیلترینگ سازمانی بی‌اثر شود؟ بله، در برخی موارد. اگر سازمان می‌خواهد کنترل خود را حفظ کند، باید Resolver خودش را ارائه دهد و DoH/DoT را در آن مدیریت کند. به همین دلیل، سازمان‌ها معمولاً DoH را در سطح شبکه محدود می‌کنند.

آیا برای فعال‌سازی DNS امن، نیاز به تغییر Registrar دارم؟ بسته به سناریو. برای DNSSEC، باید Registrar از DNSSEC پشتیبانی کند و بتوانید DS Record را در آن تنظیم کنید. برای DoH/DoT، نیازی به تغییر Registrar نیست. اگر در حال انتخاب Registrar هستید، پشتیبانی DNSSEC را در فهرست معیارها بگنجانید. برای مسیر مرتبط با دامنه، دامنه چیست و چگونه ثبت می‌شود را ببینید.

آیا DNS امن روی پروپاگیشن اثر دارد؟ نه مستقیم، اما در صورت خطا در تنظیمات DNSSEC، می‌تواند پروپاگیشن را پیچیده‌تر کند. مفهوم پروپاگیشن را در پروپاگیشن DNS چیست و چقدر طول می‌کشد باز کرده‌ام.

پایه‌های امنیت لایه‌ی نام‌گذاری

اگر یک نکته از این مقاله با خود ببرید، بگذارید این باشد: امنیت DNS، پایه‌ای است که روی آن، امنیت لایه‌های بالاتر ساخته می‌شود. HTTPS، ایمیل، API و حتی احراز هویت، همه به DNS وابسته‌اند. اگر DNS امن نباشد، هیچ لایه‌ی دیگری نمی‌تواند امنیت کامل را تضمین کند.

سه گام عملی که پیشنهاد می‌کنم: اول، وضعیت فعلی DNS خود را با ابزارهای آنلاین بررسی کنید. دوم، DNSSEC را در سرویس DNS خود فعال کنید (اگر پشتیبانی می‌کند) و مطمئن شوید Registrar هم تنظیم شده است. سوم، پایش مداوم DNS را در تقویم تیم بگذارید تا هرگونه تغییر یا خطا سریع شناسایی شود.

در چارچوب کلی، این مقاله را در کنار DNS چیست و چگونه کار می‌کند، رکوردهای DNS کدامند و DNS ابری چیست و چه تفاوتی با DNS سنتی دارد بخوانید تا تصویر کاملی از این لایه داشته باشید. اگر در پروژه‌ای با یک حمله‌ی DNS روبه‌رو شده‌اید — مخصوصاً اگر DNS Spoofing یا Cache Poisoning را تجربه کرده‌اید — در دیدگاه بنویسید. جزئیات فنی همان حمله، برای تیم‌های دیگر که در حال ساخت زیرساخت امن هستند، بسیار ارزشمند است. 🛡️