DNS چیست؟
سیستم نام دامنه(DNS) دفترچه تلفن اینترنت است. انسان ها از طریق نام های دامنه مانند Google.com یا espn.com به اطلاعات آنلاین دسترسی دارند. اما مرورگرهای وب از طریق آدرس های پروتکل اینترنت(IP) با یکدیگر تعامل دارند. DNS نام دامنه را به آدرس های IP ترجمه می کند تا مرورگرها بتوانند منابع اینترنتی را بارگیری کنند.
هر دستگاه متصل به اینترنت دارای یک آدرس IP منحصر به فرد است که سایر دستگاه ها برای تعامل با یکدیگر از آن استفاده می کنند. سرورهای DNS نیاز انسان به حفظ آدرس های IP مانند 192.168.1.1(در IPv4) یا آدرس های پیچیده جدیدتر مانند 2400:cb00:2048:1::c629:d7a2(در IPv6) را از بین می برند.
DNS چگونه کار می کند؟
فرایند DNS شامل تبدیل یک نام هاست به یک آدرس IP مناسب برای کامپیوتر است. یک آدرس IP به هر دستگاه در اینترنت اختصاص داده می شود که برای یافتن دستگاه متصل به اینترنت ضروری است. مانند آدرس خیابان برای یافتن یک خانه خاص.
هنگامی که کاربر می خواهد یک صفحه وب را بارگیری کند، باید آنچه را که کاربر در مرورگر وب خود تایپ می کند( مانند google.com) به آدرس ماشین پسند برای مکان یابی صفحه موردنظر ترجمه شود.
برای درک فرایندDNS، مهم است که در مورد اجزای سخت افزاری مختلفی که یک درخواست DNSباید از آنها عبور کند را یاد بگیرید. برای مرورگر وب، درخواست DNS در پشت صحنه انجام می شود و به غیر از درخواست اولیه نیازی به تعامل با کامپیوتر کاربر ندارد.
4 سرورDNS در بارگذاری یک صفحه وب نقش دارند:
Recursor DNS:
Recursor را می توان به عنوان یک کتابدار در نظر گرفت که از او خواسته می شود تا کتاب خاصی را در جایی از کتابخانه پیدا کند. Recursor DNS سروری است که برای دریافت درخواست از ماشین های سرویس گیرنده از طریق برنامه هایی مانند مرورگرهای وب، طراحی شده است. معمولاً Recursor پس از آن مسئول ایجاد درخواست های اضافی به منظور برآوردن درخواست DNSمشتری است.
Root nameserver
روت سرور یا سرور ریشه اولین گام در ترجمه(تحلیل) نام های هاست قابل خواندن توسط انسان به آدرس های IP است. می توان آن را مانند نمایهای در کتابخانه در نظر گرفت که به قفسه های مختلف کتاب اشاره می کند و معمولاً به عنوان مرجعی برای مکان های خاص دیگر عمل می کند.
TLD nameserver:
سرور نام دامنه سطح بالا یا top level domain (TLD) را می توان به عنوان یک قفسه خاص از کتاب ها در یک کتابخانه در نظر گرفت. این nameserver گام بعدی در درخواست یک IP خاص است که آخرین بخش از نام هاست را میزبانی می کند.(در google.com، سرور TLD- com است).
Authoritative nameserver:
این nameserver را می توان به عنوان یک فرهنگ لغت روی قفسهای از کتاب ها در نظر گرفت که در آن می توان یک نام خاص را به تعریف آن ترجمه کرد. Authoritative nameserver؛ آخرین ایستگاه در درخواست nameserver است. اگر Authoritative nameserver به سوابق درخواستی دسترسی داشته باشد، IP هاست درخواستی را به Recursor DNS که درخواست اولیه را انجام داده برمیگرداند.
چه تفاوتی بین authoritative DNS server و recursive DNS resolver وجود دارد؟
هر دو مورد به سرورهایی(گروهی از سرورها) اشاره دارند که به صورت یکپارچه در زیرساخت های DNS قرار دارند، اما هریک نقش متفاوتی را ایفا می کنند.
یکی دیگر از راه های فکر کردن به تفاوت آنها این است که recursive resolver در ابتدای درخواست DNSو authoritative nameserver در انتهای آن قرار دارد.
Recursive DNS resolver
recursive resolver، کامپیوتری است که به درخواست بازگشتی که از سوی کلاینت ارسال شده پاسخ می دهد. به این صورت که این کار را با ارسال یک سری درخواست تا زمانی که به authoritative nameserver DNS برای رکورد درخواستی برسد را انجام می دهد(یا در صورت یافت نشدن رکورد، زمان را تمام کند یا خطا را برگرداند).
خوشبختانه، recursive DNS resolvers همیشه نیازی به درخواست های متعدد برای ردیابی رکوردهای مورد نیاز برای پاسخگویی به یک کلاینت را ندارند. کش کردن یک فرایند تداوم داده است که به اتصال کوتاه درخواست های ضروری با ارائه رکورد منبع به درخواست DNSکمک می کند.
Authoritative DNS server:
به زبان ساده، Authoritative DNS server، سروری است که در واقع رکورد یا سوابق منابع DNS را نگه می دارد و مسئول آن نیز می باشد. این سرور در پایین زنجیره درخواست DNS قرار دارد که با رکورد منبع درخواست شده پاسخ می دهد و در نهایت به مرورگر وب اجازه می دهد تا به آدرس IP مورد نیاز برای دسترسی به وب سایت یا سایر منابع وب برسد. یک Authoritative DNS server می تواند درخواست ها را از داده های خود بدون نیاز به درخواست از منبع دیگری برآورده کند. زیرا منبع نهایی برای برخی از رکوردهای DNS است.
چرا امنیت DNS اهمیت دارد؟
درخواست های استاندارد DNS که تقریباً برای تمام ترافیک وب مورد نیاز است، فرصت هایی برای سوء استفاده های DNSمانند ربودن DNS و حملات در مسیر را ایجاد می کند. این حملات می توانند ترافیک ورودی یک وب سایت را به یک نسخه جعلی از سایت هدایت کنند، اطلاعات حساس کاربر را جمع آوری کرده و مشاغل را در معرض مسئولیت عمده قرار دهند. یکی از شناخته شده ترین راه های محافظت در برابر تهدیداتDNS، استفاده از پروتکل DNSSEC است.
DNSSEC چیست؟
مانند بسیاری از پروتکل های اینترنتی، سیستم DNS نیز با در نظر گرفتن امنیت طراحی نشده است و دارای چندین محدودیت در طراحی است. این محدودیت ها همراه با پیشرفت های فناوری، ربودن درخواست DNS برای اهداف مخرب توسط مهاجمان را تسهیل کرده است.
DNSSecurity Extensions (DNSSEC)، یک پروتکل امنیتی است که برای کاهش این مشکل ایجاد شده است. DNSSEC با امضای دیجیتالی از داده ها در برابر حملات محافظت می کند تا از اعتبار آن اطمینان حاصل شود. به منظور اطمینان از درخواست ایمن، امضا باید در هر سطحی از فرآیند درخواستDNS اتفاق بیفتد.\