CDN ابری

آشنایی با صفر تا صد DNSSEC

shahin شاهین نوعی
22 بازدید | 0 دیدگاه | 24 تیر 1401
/storage/post-images/1654284229_2022-06-03_blog_post_13-8.png
سرفصل های مهم
آشنایی با صفر تا صد DNSSEC

دفترچه تلفن اینترنت یا DNS ذاتاً امن نیست؛ اما راهکاری به نام DNSSEC برای ایمن سازی آن وجود داشته و در بیش از 90% از دامنه های سطح بالا (TLDs) موجود بوده  و یا به عبارت دیگر فعال است. ممکن است پیکربندی و همگام سازی این تکنولوژی به نظرتان غیر ضروری رسد،  به همین دلیل است که در سال 2021 اعتبارسنجی DNSSEC همچنان زیر 50% در جهان مورد استفاده قرار گرفته است. اما آیا همه باید ااز DNSSEC استفاده کنیم؟

همانند تمامی مسائل تنکنولوژیکی دیگر، پاسخ این سوال نیز این است: " بستگی دارد".

برای اینکه بتوانید تصمیم درستی در این خصوص بگیرید، در این پست ماهیت و نحوه عملکرد DNSSEC را بررسی کرده و مزایای آن را تشریح می کنیم.

DNSSEC چیست؟

DNSSEC مجموعه ای از افزونه ها یا Extensions است که ایمنی DNS را تامین می کند.

با اینکه دفترچه تلفن اینترنت "DNS" یکی از اعضای جدایی ناپذیر اینترنت است، اما به عنوان یک پروتکل قدیمی از ابتدا با امنیت بالا طراحی نشده بود. به همین دلیل، روش های زیادی برای حمله به یک DNS وجود داشته و تا به حال مورد استفاده هکرها قرار گرفته اند.

برای رفع چنین چالش هایی، مهندسین IETF (Internet Engineering Task Force)  تکنولوژی DNSSEC را طراحی کردند.

به کمک DNSSEC از امضاهایی  رمزنگاری شده برای راستی آزمایی و اعتبارسنجی رکوردهای DNS استفاده می شود.

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

فرض کنید می خواهید از کامپیوتر خود به سایتی مثل example.com متصل شوید،؛ در حالت عادی، با چنین پروسه ای مواجه هستیم:

  1. ابتدا example.com را در مرورگر خود تایپ می کنید.
  2. اگر ورودی example.com کش نشده باشد، تفسیرکننده DNS شما برای کشف آدرس IP سایت مورد نظر، نیم سرورهای موجود در اینترنت را فراخوانی می کند.
  3. سپس تفسیرکننده شما با پاسخی مثل 203.0.113.11 به عتوان آدرس IP سایت example.com بر می گردد.
  4. پس تفسیرکننده به کامپیوتر شما اعلام می کند که example.com همان 203.0.113.11 است.
  5. صفحه ای از سروری با آدرس 203.0.113.11 در مرورگر شما بارگذاری می شود.

 

در اغلب اوقات، تمام این فرآیندها به شکل سالم و طبیعی عمل می کنند؛ اما اگر یک هکر یا مهاجم یکی از نیم سرورهای شما یا کش DNS را دستکاری کند چه؟

در چنین شرایطی، یعنی عملکرد DNS به صورت بالا، ممکن است بجای مشاهده سایت مورد نظر، به سمت سرور مهاجم هدایت و با صفحه دیگری مواجه شوید.

 

اسامی گوناگونی برای این نوع حملات تعیین شده، مثل DNS spoofing، DNS cache poisoning، و یا DNS hijacking.

اما همه اینها به این دلیل رخ می دهند که هیچ اعتبارسنجی مناسبی برای پاسخ های DNS انجام نمی شود.

خب DNSSEC جه کمکی می کند؟

به کمک DNSSEC تقسیرکننده یا resolver بجای پذیرش کورکورانه یک پاسخ، از امضاهایی رمزنگاری شده برای اعتبارسنجی آن استفاده می کند.

اگر اعتبارسنجی با موفقیت تایید نشود، دیگر کاربر به سمت سایت مخرب هدایت نخواهد شد.

 

یک مثال از DNS Spoofing

DNSSEC می تواند به سازمان ها کمک کند تا از داده ای حساس و اطلاعات سری خود که در DNS server نگهداری می شوند، محافظت کنند؛ تعدادی از داده هایی که در این dns server ها نگهداری می شوند عبارتند از:

  • آدرس های IP
  • جزئیات سرور تبادل ایمیل
  • اطلاعات هاست، مثل CPU و ورژن سیستم عامل

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

مشکلاتی که با DNSSEC قابل حل نیستند.

قبل از اینکه بخواهیم بحث را ادامه دهیم، بهتر است در مورد کارهایی که DNSSEC انجام نمی دهد نیز صحبت کنیم.

در مثال بالا، متوجه شدیم که DNSSEC پاسخ های DNS را واکاوی کرده و اعتبار آنها را بررسی می کند. این موضوع به این دلیل حائز اهمیت است که از دستکاری های غیر یا Man in the middle جلوگیری می کند.

با این حال، DNSSEC هیچگونه حریم خصوصی خاصی ایجاد نمی کند؛ یعنی ترافیک DNS رمزنگاری نشده و DNSSEC نیز به آن رمزی اضافه نمی کند؛ بنابراین اگر به دنبال حل چنین مشکلی هستید، DNSSEC به تنهایی کمکی به شما نخواهد کرد. نگران نباشید برای DNS privacy نیز راه حل هایی در ادامه خواهیم گفت.

DNSSEC چطور عمل می کند؟

خب تا الان متوجه شدیم که DNSSEC مشکلاتی نظیر DNS spoofing را با امضاهای رمزنگاری شده حل می کند.

اما چطور؟

برای درک بهتر این موضوع باید با DNS zone ها و زنجیره اعتماد سازی DNSSEC آشنا شویم.

با نگاهی به اصول DNS، می دانیم که همه چیز به دامنه اصلی بر می گردد. پس ما یک TLD مثل .com ، .net و امثالهم داریم و یک دامنه هایی مثل example.com یا mizbancloud.com. هر کدام از این نام ها یک DNS zone به شمار می آید.

 

همانطور که این zone ها می توانند داده های DNS را برای کشف آدرس IP منتشر کنند، می توانند داده های DNSSEC رمزنگاری و امضا شده را با استفاده از جفت های public key و private key منتشر کنند.

تفسیر کننده های DNS ی که از DNSSEC پشتیبانی کنند، می توانند در ادامه از این داده ها برای اعتبار سنجی درخواست های DNS استفاده کنند.

اما از کجا بدانیم که این داده ها قابل اعتماد هستند؟

 جواب اینجاست؛ با چک کردن zone بالاسری یا "parent" . به کمک DNSSEC یک zone بالاسری به صورت رمزنگاری شده zone زیردستی (فرزند) خود را تایید می کند.

برای مثال، برای اعتبارسنجی رکوردهای example.com ، ما به داده های مربوط به .com zone نگاه می کنیم. سپس برای اعتبارستجی رکوردهای ,com به داده های مربوط به اولیای آن یا root zone نگاه می کنیم.

اما چطور رکوردهای خود root zone راستی آزمایی می شوند؟

خب، فرض ما بر این است که با توجه به اینکه root zone توسط سازمان اینترنت برای نام ها و شماره های ثبت شده (ICANN) مرتباً بررسی شده و تحت نظر آنها هستند، به آن اعتماد می کنیم.

بر مبنای اعتمادی که به آن امضای قابل اتکا از root zone کسب می کنیم، تمام zone های فرزند یا زیردستی قابل اعتماد می شوند. در نتیجه، حال ما زنجیره ای از اعتماد در دست داریم که resolver یا تفسیر کننده ای که از DNSSEC پشتیبانی می کند، می تواند رکوردهای IP address دریافت شده را تایید کند.

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

Resource Record Signature (RRSIG)

یک رکورد RRSIG برای دسته ای از رکوردها، یک امضای رمزنگاری شده دارد. داده هایی نظیر رکوردهایی که امضا به آن اشاره دارد، الگوریتم های رمزنگاری استفاده شده، مقدارهای TTL، و تاریخ انقضا. یک امضای RRSIG را می توان با DNSKEY اعتبار سنجی کرد.

DNSKEY

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

DS

گزینش dns به فرآیند تقسیم بندی نام های DNS به یک یا چند zone اطلاق دارد. یک رکورد امضا کننده گزینشی یا DS، اثرانگشت هش شده (hashed) از DNSKEY عمومی است که در parent zone نگهداری می شود.

زمانی که یک تفسیر کننده سعی دارد تا به رکوردهای یک zone زیردستی یا فرزند دسترسی پیدا کند، ابتدا DNSKEY عمومی نگهداری شده در آن را شناسایی می کند؛ برای اینکار،  DNSKEY را هش کرده و آن را با نتایج هش شده ی رکوردهای DS موجود در parent zone مقایسه می کند. اگر تناسبی وجود داشته باشد، تفسیر کننده می تواند به تمام رکوردهای فرزند اعتماد کند.

NSEC

یک رکورد NSEC بر اساس ترتیب DNSSEC ، رکورد معتبر بعدی (next valid record) را بر می گرداند؛ که به تفسیر کننده این اجازه را می دهد تا ثابت کند که یک رکورد DNS وجود ندارد. بدون رکوردهای NSEC، سرور DNS یک پاسخ خالی برای رکوردهای ناموجود بر می گرداند، بنابراین تایید اعتبار اینکه آیا رکورد موجود است یا نه، غیر ممکن خواهد شد.

چطور می توانیم از DNSSEC استفاده کنیم؟

 

از سمت کاربر، برای فعال سازی DNSSEC بر روی تفسیر نام های خود، تنها کافیست از resolver یا تفسیر کننده ای استفاده کنید که از DNSSEC پشتیبانی کند. که امروزه تعداد این تفسیر کننده ها بسیار زیاد هستند.

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

پیشنهاد ویژه ما به شما استفاده از DNS ابری میزبان کلود است. که از معماری DNSSEC نیز پشتیبانی می کند.

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

با توجه به مواردی که در مورد نحوه عملکرد DNSSEC گفته شد، پیش بینی مزایای آن کار سختی نیست؛ می توان به این موارد اشاره کرد:

  • DNSSEC در کل احتمال حملات MITM یا دستکاری سایرین را کاهش می دهد.
  • DNSSEC می تواند دستوراتی مانند DANE را ممکن سازد که می تواند برای ارتقا سطوح امنیتی مورد استفاده قرار گیرد.
  • پیاده سازی DNSSEC کار دشواری نبوده و با DNS سازگاری کامل دارد.

DNSSEC و حملات DDoS

DNSSEC برای جلوگیری از ریسک هایی چون DNS spoofing بسیار مفید است، چراکه به اعتبار سنجی درخواست های dns کمک می کند. اما با این حال، توانایی مقابله با حملات DDoS عمل آمده به کمک سرورهای DNS را ندارد. حتی این مشکل نیز وجود دارد که در زمان های حمله، پاسخ هایی که برای کوئری های DNS ارسال شده در DNSSEC بزرگ تر خواهند شد؛ چراکه فیلدها و اطلاعات رمزنگاری شده بیشتری برای اعتبارسنجی مورد استفاده قرار می گیرند.

این موضوع می تواند به یک مهاجم کمک کند تا 70 برابر از حالت عادی، با همان پهنای باند، حمله خود را گسترش دهد.

پس راه حل چیست؟

در چنین شرایطی بهترین کار استفاده از سیستم های امنیتی است. سیستم هایی چون DDoS protection یا WAF و حتی Rare  limiting که می توانند در سطوج مختلف حملات را در لحظه دفع کرده و  امنیت شبکه، DNS، و سطوح اپلیکیشن سرویس شما را تامین کنند.

برای استفاده از چنین راهکارهایی پیشنهاد می کنیم از سرویس CDN ابری میزبان کلود استفاده کنید که از تمامی این سیستم های امنیتی پشتیبانی کرده و راهکارهای امنیتی بی نظیری برای وب اپلیکیشن های شما در نظر گرفته است. کافیست به صفحات CDN ابری میزبان کلود و یا سرویس های امنیت ابری مراجعه کرده و با قابلیت ها و ویژگی های هر کدام بیشتر آشنا شوید.

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

جمع بندی

مسلماً استفاده از معماری DNSSEC می تواند به تحمل و ریسک پذیری شما در مقابل مسائل امنیتی بستگی داشته باشد؛ مطمئناً سازمان ها و کسب و کارهای بزرگ از چنین ریسک هایی حذر کرده و جلوی حملات این لایه را به کمک این تکنولوژی می گیرند. بنابراین اگر شما هم می توانید به سادگی آن را پیاده کنید، ارزشش را دارد؛ البته میزبان کلود این کار را برای شما بسیار ساده کرده و در سرویس DNS ابری خود از این معماری پشتیبانی کامل می کند.




پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
برچسب ها :
نویسنده مطلب شاهین نوعی

Hi everyone, my name is Shahin Noei; I'm so glad to be sharing with you my latest knowledge of IT infrastructure and I warmly invite you to ask any of your questions in my linkedin page. I've been working in digital marketing field for the last 5 years and I've been in touch with some IT businesses long enough to get the most out of the newest technologies in this modern era.

آشنایی با صفر تا صد DNSSEC 0 دیدگاه

مطالب را قبل از دیگران مطالعه کنید

دریافت جدیدترین مطالب در ایمیل شما

ایمیل شما به صورت کاملا محرمانه نزد ما محفوظ است
ما برای شما هرزنامه ارسال نمی کنیم