پروتکل DNSSEC چیست و چه کاربردی دارد؟

زمان مورد نیاز برای مطالعه: ۴ دقیقه

7 شهریور 1401

مهسا باقری

پروتکل DNSSEC چیست ؟ امنیت DNS را باید بخشی ضروری از هرگونه برنامه‌ریزی برای امنیت کسب‌وکار دانست. سرویس‌های Name Resolution (که نام دامنه‌ی میزبان را به آدرس IP تبدیل می‌کنند) تقریباً توسط همه‌ی برنامه‌ها و سرویس‌های موجود در یک شبکه استفاده می‌شوند. در ادامه این مقاله از سیف دیزاین با ما همراه باشید.

 

DNSSEC چیست؟

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

DNSSEC که کوتاه شده عبارت Domain Name System Security Extensions می‌باشد برای این منظور طراحی شده است که درخواست‌هایی که از طریق کلاینت ارسال می‌شود در صورتی که به مقصد صحیح (سرور اصلی) رسیدند این مقصد را تایید کند و احتمال نفوذهای بین کلاینت و سرور را از بین ببرد.

 

DNSEC چگونه کار می‌کند؟

DNSSEC با استفاده از امضاهای دیجیتال (Digital signatures) و کلیدهای رمزنگاری (cryptographic keys) دی‌ان‌اس‌هایی که معتبر هستند را اعتبار سنجی می‌کند.

هنگامی که DNSSEC بر روی یک DNS zone فعال می‌شود، دو جفت کلید که key-pairs نامیده می‌شوند تولید می‌کند. این کلیدها اساس یک رمزنگاری می‌باشند.

یک کلید عمومی (Public key) و دیگری کلید خصوصی (Private key) نامیده می‌شوند. کلید خصوصی به منظور رمزگذاری درخواست‌های dns استفاده می‌شود که این رمزگذاری تنها توسط کلید عمومی قابل بازگشایی می‌باشد.

کلیدهای عمومی در DNS zoneها و در رکوردی با عنوان DNSKEY لیست شده و کلیدهای خصوصی در نیم‌سرورهای معتبر (authoritative Nameserver) نگهداری می‌شوند.

 

DNSEC چگونه کار می‌کند؟

 

هنگامی که یک زون دی‌ان‌اس آپدیت می‌شود، تمامی رکوردها (اعم از رکوردهای نوع A – MX و … ) توسط رکورد جدیدی به نام RRSIG که کوتاه شده عبارت Resource record signature می‌باشد امضای دیجیتالی می‌شوند. RRSIG بوسیله کدکردن رکوردهای منبع و به منظور کد کردن نتایج ایجاد می‌شود.

سپس هنگامی که درخواست‌های DNS ارسال می‌شوند، سرور DNS درخواست‌ها و RRSIG را دریافت می‌کند و سپس موارد دریافتی به نیم‌سرور برای بازگشایی کلید خصوصی توسط کلید عمومی بازگردانی می‌شوند. اگر کلید عمومی امکان بازگشایی کلید خصوصی را داشته باشد، پس امضای دیجیتالی ارسال شده معتبر است و به dns zone درستی هدایت شده‌ایم.

 

اصطلاحات و مفاهیم پایه‌ DNSSEC

پروتکل DNSSEC چیست ؟ DNSSEC  با امضای دیجیتال رکوردهای DNS یک دامنه، امکان احراز هویت این رکوردها و در امان بودن آن دامنه از حمله‌ی DNS spoofing را فراهم می‌کند. این امضاهای دیجیتال یا در اصطلاح digital signatureها مانند سایر انواع رکوردهای DNS (هم‌چون A،  AAAA یا CNAME) در سرورهای DNS ذخیره می‌شوند.

با بررسی امضای اختصاص یافته به یک رکورد می‌توان مطمین شد که رکورد DNS دریافت شده از یک DNS سرور مجاز است، یا رکوردی جعلی است که به‌وسیله‌ی یک حمله‌ی man-in-the-middle تزریق شده است.

 

DNSSEC برای انجام عملکرد خود، RRهای جدیدی را تعریف می‌کند که مهم‌ترین آن‌ها عبارت‌اند از:

 

RRset

رکوردهایی با نام، نوع و class یک‌سان درون یک RRset قرار می‌گیرند. برای نمونه تمام رکوردهای NS موجود برای یک دامنه داخل یک RRset قرار می‌گیرند.

 

RRSIG

دربردارنده‌ی امضای دیجیتال یک  RRset

 

DNSKEY

حاوی کلید عمومی مربوط بهZSK یا KSK

اصطلاحات و مفاهیم پایه‌ DNSSEC

 

 

ZSK

مسوول امضای رکوردهایی جز رکوردهای DNSKEY مرتبط با یک zone

 

KSK

مسوول امضای رکوردهای DNSKEY مرتبط با یک zone

 

DS

دربردارنده‌ی hash رکورد DNSKEY حاوی public KSK است. از رکوردهای DS برای ایجاد زنجیره‌ای از اعتبارسنجی در ساختار سلسله مراتبی DNS استفاده می‌شود.

 

رمزنگاری (Cryptography)

در دنیای اینترنت، برای رمزگذاری داده‌های مختلف از Cryptography استفاده می‌شود. شاید باورتان نشود، اما رمزگذاری همیشه برای مخفی کردن پیام‌ها استفاده نمی‌شود و می‌توان از آن برای تائید درستی – یا نادرستی – داده‌ها هم استفاده کرد.

در سیستم  DNSSEC چیست هم، Cryptography وظیفه احراز هویت رکوردها را بر عهده دارد. خیلی ساده و خودمانی درمورد رمزنگاری بگوییم که این کار به ‌روش‌های گوناگونی انجام می‌شود. رمزنگاری مدنظر ما در موضوع DNSSEC، رمزنگاری کلید عمومی (Public Key Cryptography) است.

در این روش اطلاعات توسط یک جفت کلید رمزگذاری می‌شوند. اصطلاحاً این کلیدها به کلید عمومی و کلید خصوصی معروف هستند. برای رمزگشایی پیامی که با کلید خصوصی رمزنگاری شده است، باید از کلید عمومی استفاده کنید و برعکس!

 

 

انوع حمله‌های DNS

 

Cache Poisoning/DNS Spoofing: سواستفاده از آسیب‌پذیری یک سیستم با هدف کنترل Cache، جهت هدایت کاربران به مقصدی متفاوت از مقصد اصلی مورد نظر کاربر.

 

DNS Hijacking:

هدایت ترافیک معمولی DNS به سوی یک سرور DNS متفاوت به‌وسیله‌ی تغییر رجیستر دامنه.

 

NXDOMAIN:

انجام حمله‌ی DDoS به DNS authoritative server با ارسال درخواست‌های جعلی دامنه، با هدف مجبورکردن سرور به ارسال یک پاسخ‌.

 

Phantom Domain:

ایجاد وضعیتی که DNS resolver را مجبور کند منتظر پاسخی از سوی دامنه‌هایی شود که وجود خارجی ندارند، که این امر باعث می‌شود کارایی آن به شدت پایین بیاید.

 

پروتکل DNSSEC چیست و چه کاربردی دارد؟

 

Random Subdomain:

مجموعه‌ای از میزبان‌های آلوده‌شده و بات‌نت‌هایی که در اصل در حال حمله‌ی DoS به یک دامنه‌ی معتبر هستند، ولی تمرکز حمله را روی زیردامنه‌های ساختگی قرار می‌دهند تا سرویس را مجبور به DNS Record Lookup کرده و از این طریق آن را مختل کنند.

 

Botnet-Based CPE:

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

 

مزایای استفاده از DNSSEC

DNSSEC چیست ؟ DNSSEC از تغییر مسیر و انتقال کربران به وب سایت های جعلی و فیینگ جلوگیری می‌کند و از این طریق اعتماد کاربر به صفحه موردنظر را افزایش می‌دهد. در نتیجه‌ی این عمل است که فعالیت‌های مخربی مانند cache poisoning یا  pharming و man in the middle attacks متوقف می‌شوند.

DNSSEC برای اطمینان از اعتبار پاسخ‌های ارائه شده توسط DNS Server ، آدرس ‌IP را با امضای رمزنگاری شده تکثیر می‌نماید. کاربران در صورتی اطمینان حاصل می‌یابند که به یک سایت ایمن منتقل شده‌اند که DNSSEC به درستی برای نام دامنه آن سایت فعال شده باشد.

مزایای استفاده از DNSSEC

 

 

نحوه کار  DNSSEC

 

هدف اصلی DNSSEC محافظت از سرویس گیرندگان اینترنت در برابر داده های جعلی DNS با تأیید امضاهای دیجیتالی جاسازی شده در داده ها است. وقتی بازدید کننده نام دامنه را در مرورگر وارد می کند ، Resolver امضای دیجیتال را تأیید می کند. اگر امضاهای دیجیتالی موجود در داده ها با آنچه در سرورهای اصلی DNS ذخیره شده مطابقت داشته باشد، داده ها برای دسترسی به کاربر درخواست کننده مجاز می شود.

 

توجه:

توجه داشته باشید که DNSSEC محرمانه بودن دیتا را ارائه نمی دهد زیرا شامل الگوریتم های رمزگذاری نیست و تنها کلیدهای مورد نیاز برای تأیید اعتبار داده های DNS را به عنوان اصل یا واقعی در اختیار دارد. همچنین ، DNSSEC از حملات DDoS محافظت نمی کند.

 

تفاوت امنیت DNS و DNSSEC

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

به عبارت دیگر، با وجود DNSSEC می‌توانید مطمئن باشید که پاسخ کوئری DNS دستکاری نشده و از منبع اصلی و معتبر ارسال شده، ولی هر مهاجم یا فرد کنجکاوی می‌تواند نتایج را حین مخابره‌شدن به شما مشاهده کند.