پروتکل DNSSEC نوعی تکنولوژی است که در برابر حملات از آن استفاده می شود. این تکنولوژی روی آدرس وب سایت ها قرار می گرد و سایت ها را از حملات مخرب در امان نگه میدارد.DNSSEC کوتاه شده عبارت Domain Name System Security Extensions است. این تکنولوژی به این دلیل ایجادشده است که درخواست هایی که از سیستم کاربر ارسال می شود را به مقصد صحیح هدایت کند.
هر سرور دارای یک آدرس منحصر به فرد به اسم آدرس IP در شبکه اینترنت میباشد. با این اوصاف برای مشاهده یک وبسایت باید آدرس IP آن را به خاطر بسپارید که کار نسبتا دشواری است. ضمن اینکه با این روش امکان نگهداری یک سایت بر روی هر سرور میباشد و یا باید به ازای هر سایت یک IP هم در نظر گرفت.
به همین دلیل استفاده از دامنهها برای آدرسدهی وبسایتها استفاده میشود. اما پس از ثبت دامنه برای این که یک دامین بداند باید به کدام سرور اشاره کند نیاز به سرویس واسطی میباشد که این سرویس که DNS نامیده میشود و وظیفه ترجمه نام دامنه به IP را دارد. DNSSEC نوعی خاص از DNS میباشد که به منظور افزایش ضریب امنیت استفاده از سرویس DNS ایجاد شده است که در ادامه به شرح آن خواهیم پرداخت.
چرا DNSSEC؟
هنگام طراحی سرویس DNS بحث امنیتی خاصی در این زمینه مطرح نبود. دلیلی هم وجود نداشت که کسی بخواهد با اطلاعات DNS کلاهبرداری انجام دهد. چرا که اکثر پاسخهای DNS به درخواستهای محلی (Local) انجام میشد. به همین خاطر به گونهای طراحی شده بود که در کمترین زمان ممکن و با دریافت اولین درخواست پاسخ به آن را ارسال کند. امروزه حملات هک و فیشینگ به عنوان یک خطر همیشگی در شبکه اینترنت وجود دارد و در زمینه سرویسهای DNS نیز حملات DNS Spoofing انجام میشود که درخواستهای ارسال شده از سمت کلاینت در خصوص یک دامنه را به سروری اشتباه که معمولا سرور هکر میباشد هدایت میکند و این امر میتواند خسارتهای جبرانناپذیری به کاربران وارد کند. DNSSEC که کوتاه شده عبارت Domain Name System Security Extensions میباشد برای این منظور طراحی شده است که درخواستهایی که از طریق کلاینت ارسال میشود در صورتی که به مقصد صحیح (سرور اصلی) رسیدند این مقصد را تایید کند و احتمال نفوذهای بین کلاینت و سرور را از بین ببرد. DNSSEC با استفاده از امضاهای دیجیتال (Digital signatures) و کلیدهای رمزنگاری (cryptographic keys) دیاناسهایی که معتبر هستند را اعتبار سنجی میکند. هنگامی که DNSSEC بر روی یک DNS zone فعال میشود، دو جفت کلید که key-pairs نامیده میشوند تولید میکند. این کلیدها اساس یک رمزنگاری میباشند. یک کلید عمومی (Public key) و دیگری کلید خصوصی (Private key) نامیده میشوند. کلید خصوصی به منظور رمزگذاری درخواستهای dns استفاده میشود که این رمزگذاری تنها توسط کلید عمومی قابل بازگشایی میباشد. کلیدهای عمومی در DNS zoneها و در رکوردی با عنوان DNSKEY لیست شده و کلیدهای خصوصی در نیمسرورهای معتبر (authoritative Nameserver) نگهداری میشوند. هنگامی که یک زون دیاناس آپدیت میشود، تمامی رکوردها (اعم از رکوردهای نوع A – MX و … ) توسط رکورد جدیدی به نام RRSIG که کوتاه شده عبارت Resource record signature میباشد امضای دیجیتالی میشوند. RRSIG بوسیله کدکردن رکوردهای منبع و به منظور کد کردن نتایج ایجاد میشود. سپس هنگامی که درخواستهای DNS ارسال میشوند، سرور DNS درخواستها و RRSIG را دریافت میکند و سپس موارد دریافتی به نیمسرور برای بازگشایی کلید خصوصی توسط کلید عمومی بازگردانی میشوند. اگر کلید عمومی امکان بازگشایی کلید خصوصی را داشته باشد، پس امضای دیجیتالی ارسال شده معتبر است و به dns zone درستی هدایت شدهایم. در وب رمز سرویس رایگان مدیریت رکوردهای DNS با خرید دامنه های بینالمللی و دامنههای ir (برای اولین بار) ارائه میدهیم که توسط آن میتوانید به صورت رایگان و بدون نیاز به خرید هاست بر روی دامنهتان رکوردهای DNS ایجاد نمایید. از قابلیتهای این سرویس میتوان به امکان فعالسازی DNSSEC به منظور افزایش ضریب امنیت درخواستها نام برد. جهت اطلاع از چگونگی استفاده از این سرویس به لینک زیر مراجعه نمایید. استفاده از اینترنت در هر دستگاهی تنها با کمک DNS امکان پذیر است. به این صورت که شما نام سایت را در مرورگر گوشی و یا رایانه خود وارد می کنید. مرورگر با دریافت نام سایت آن را در بانک اطلاعاتی موجود در اینترنت جست و جو می کند و IP متناظر با این نام را پیدا میکند و به سراغ IP می رود. در آنجا سایت مد نظر را شناسایی کرده و سایت را فراخوانی می کند. با فراخوانی سایت اطلاعات سایت روی مرورگر بارگذاری نمی شود و شما محتویات سایت را مشاهده می کنید. امروزه تقریباً تمامی دستگاه هایی که به اینترنت متصل می شوند از این فرایند برای باز کردن سایت ها استفاده می کنند اخیراً آسیب پذیری های زیبای در پروتکل DNS کشف شده است که نیاز به ارتقا و بهبود این پروتکل را الزامی کرده است. هکر ها و افراد خراب کردن با در اختیار گرفتن اطلاعاتی که در زمان ارسال درخواست ها برای DNS ها استفاده می شود، اطلاعات مهمی از سیستم و رایانه فرد مورد نظر پیدا می کنند فرایند های خرابکاری خود را از طریق این اطلاعات به دست آمده انجام می دهند. این آسیب پذیر باعث شده است که پروتکل DNSSEC به وجود بیاید. امروزه استفاده از این پروتکل رشد بسیار زیادی داشته است. پروتکل DNSSEC با قرار دادن یک امضای دیجیتال در اطلاعات ارسال شده در DNS امکان احراز هویت دامنه ها و در امان بودن آنها را در برابر حملات مختلف امکان پذیر می کند. امضاهای دیجیتال استفاده شده در پروتکل DNSSEC در سرور های DNS ذخیره می شوند. با بررسی امضا ها مشاهده شده در سرور ها، رکورد های مختلف DNS ها بررسی شده و هر کدام از آنها که دارای امضای مشابه و مورد تائید قرار می گیرد. با این کار اطلاعات و رکورد های ناشناس مورد تائید واقع نمی شوند. پروتکل DNSSEC برای انجام فرایند امنیتی خود عملکرد های جدید را تعریف می کند. از معروف ترین این فرایند ها می توان به موارد زیر اشاره کرد: اطلاعات و رکود هایی با نام، نوع و class یکسان که درون یک RRset قرار میگیرند. برای نمونه تمام رکوردهای NS موجود برای یک دامنه داخل یک RRset قرار میگیرند. دربردارندهی امضای دیجیتال یک RRset حاوی کلید عمومی مربوط به ZSK یا KSK مسوول امضای رکوردهای در تمامی فرآیند است البته رکوردهای DNSKEY مرتبط با یک zone در این عملکرد قرار نمی گیرند. مسئول امضای رکوردهای DNSKEY مرتبط با یک zone است. دربردارندهی hash رکورد DNSKEY حاوی public KSK است. از رکوردهای DS برای ایجاد زنجیرهای از اعتبارسنجی در ساختار سلسله مراتبی DNS استفاده میشود. فرایند شکل گیری و استفاده از پروتکل DNSSEC از سالها قبل مهندسان و تکنسین های موجود در مرکز مهندسی اینترنت یا همان IETF دریافته بودند که عدم احراز هویت در فرآیند DNS یک مشکل بسیار مهم است در آن زمان سایت های اینترنتی رشد آنچنانی پیدا کرده بودند. با این حال در سال های اخیر رشد سایت های اینترنت بسیار سریع بوده است و با همین رشد این مشکل خیلی سریع تر خودش را نشان داده است. با این حال از سال 1990 مهندسان این مرکز به دنبال یک راه حل بودند و نتیجه آن راه حل استفاده از پروتکل DNSSEC بوده است. پروتکل DNSSEC با استفاده از رمز نگاری و استفاده از کلید عمومی باعث تقویت فرایند احراز هویت در DNS ها می شود. در واقع با استفاده از پروتکل DNSSEC دیگر درخواست ها و اطلاعات ارائه شده از سمت کاربر رمز گذاری نمیشوند بلکه تمامی فرایند DNS توسط خود صاحب DNS رمزنگاری و امضا می شود. امروزه در دنیای اینترنت هر منطقه جغرافیای دارای یک DNS با یک جفت کلید عمومی / خصوصی منحصر به فرد است. استفاده از این کلید ها باعث میشود که ما با مشاهده آنها در DNS متوجه شویم که مربوط به کدام منطقه جغرافیایی است. با فراخوانی DNS کلید عمومی آن نیز فراخوانی می شود. با استفاده از این کلید عمومی شما می توانید برای صحت سنجی DNS استفاده کنید. حال استفاده از پروتکل DNSSEC باعث میشود که فرایند اعتبار سنجی سایت ها بهتر و کامل تر انجام شود. در نتیجه در این پروتکل از امضاها ی قانونی استفاده می شود. اگر امضای مشاهده شده روی DNS ها معتبر و قانونی نباشد این فرایند از نظر مرورگر و سرویس دهنده به عنوان یک فعالیت مخرب و حمله در نظر گرفته می شود. در این حالت داده ها کنار گذاشته می شوند و پیغام خطا برای کاربر ارسال می شود. این پیغام خطا روی مرورگر کاربر نمایش داده می شود. پروتکل DNSSEC دو ویژگی مهم را به فرایند DNS اضافه می کند. این دو ویژگی عبارتاند از: بر اساس اطلاعات اعلام شده در هر منطقه جغرافیایی از یک کلید عمومی استفاده می شود. در این حالت درخواست کننده می تواند یک فرایند بازگشتی برای دریافت اعتبار دادها در منطقه جغرافیای مورد نظر را اجرا کند؛ اما سؤال مهم این است که یک درخواست کننده چگونه می تواند از اعتبار یک کلید عمومی اطمینان حاصل کند؟ کلید عمومی مورد استفاده شده نیز مانند دیگر اطلاعات ارسال شده به صورت رمزنگاری است. با این حال کلید عمومی توسط یک کلید خصوصی در منطقه جغرافیای والد امضا می شود. به عنوان مثال در دامنه سایت ICANN.org کلید عمومی بخش.org را امضا می کند. این فرایند به عنوان یک کلید عمومی شناخته می شود در این منطقه جغرافیای والد مسئول انتشار لیست سرور های معتبر منطقه است. در نتیجه مسئول اعتبار کلید عمومی نیز است. کلید عمومی هر منطقه توسط منطقه جغرافیای والد خود مورد تائید قرار می گیرد. البته این فرایند در منطقه جغرافیای ریشه امکان پذیر نیست و در این منطقه هیچ والدی برای امضای کلید عمومی وجود ندارد. هنگامی که پروتکل DNSSEC روی یک DNS فعال می شود دو جفت کلید که key-pairs نامیده میشوند تولید می شود. این کلید ها اساس فرآیند رمزنگاری می باشند. یکی از این جفت کلید به صورت کلید عمومی مورد استفاده قرار می گیرد و کلید دیگر به عنوان کلید خصوصی مورد استفاده قرار می گیرد. کلید خصوصی به منظور رمزگذاری درخواست های DNS استفاده می شود. این فرایند رمزگذاری تنها توسط کلید عمومی قابل بازگشایی می باشد. چه کسی فرآیند استفاده از پروتکل DNSSEC را مدیریت می کند؟ فرایند مدیریت و استفاده از پروتکل DNSSEC بر عده موسسه ICANN است. این موسسه کلید ها را مدیریت می کند. با این حال گواهی نامه های جهت ایجاد کلید های خاص توسط گروه های دیگر نگهداری و ایجاد می شود. این موسسه راهکار های خاصی را برای نگهداری اعتبار ها توسط نهاد های گوناگون ارائه می دهد. در نهایت با استفاده از پروتکل DNSSEC سایت ها می توانند ضریب امنیتی خود را در برابر حملات انجام شده روی نام و دامنه سایت ها به شدت افزایش دهند. امروز با رشد استفاده از پروتکل DNSSEC می توان پایه و اساس پروتکل های بعدی در اینترنت را با استفاده از روش های نوین تغییر داد. پروتکل های جدید ایجاد شده می توانند هماهنگ با ساختار پروتکل DNSSEC بوده و تنها در مناطقی فعالیت کنند که امضاهای دیجیتال در آنجا اعتبار داشته باشند. در راستای همین فرایند در سال 2018 موسسه ICANN برخی بخش های اساسی و ریشه های پروتکل DNS را بر مبنای پروتکل DNSSEC تغییر داده است. با این کار اپراتور های ارائه دهنده خدمات اینترنت توانستند از ساز کار اعتبار سنجی بهتر و بهینه تر استفاده کنند. در سال های آینده موسسه ICANN امیدوار است که استفاده از پروتکل DNSSEC رشد بیشتری پیدا کند. این به این معنی است که دیگر با خیال راحت می توان آدرس سایت ها را تایپ کرد و مدیران سایت ها نیز از حملات احتمالی هکر ها و افراد خرابکار روی دامنه سایت ها در امان خواهند بود. سؤالات متداول: پروتکل DNSSEC با استفاده از رمزنگاری کلید عمومی، امضاهای دیجیتالی را در داده ها ارسال شده برای سایت ها را امن کرده و از آنها در برابر حملات مخرب محافظت میکند. در این فرایند داده های جعلی دیگر در DNS ها قرار نمی گیرند و کاربران راحت تر می توانند با تایپ آدرس سایت های خود به مقصد مورد نظر برسند. همچنین این کار باعث میشود که نام سایت ها در برابر حملات هکر ها محافظت شود. در این فرایند از یک جفت کلید استفاده می شود یک کلید به عنوان کلید عمومی است و یک کلید هم به عنوان کلید خصوصی اطلاعات سایت ها در کلید خصوصی قرار می گیرد و برای باز کردن قفل کلید خصوصی باید از کلید عمومی استفاده شود. کلید عمومی نیز طی یک فرایند پیچیده از طریق منبع رمز نگاری می شود و تنها با تائید منبع مبنی بر صحت اطلاعات می توان به کلید عمومی دسترسی پیدا کرد. پروتکل DNSSEC برای محافظت از کلاینت ها در اینترنت استفاده می شود. این پروتکل کلاینت ها را در برابر داده های جعلی ارسال شده از طرف DNS ها محافظت می کند. این پروتکل به عنوان یک پروتکل افزوده شده به ساختار DNS مورد استفاده قرار می گیرد. تائید اعتبار داده های ارسال شده از طریق منبع از مهمترین بخش های استفاده از پروتکل DNSSEC است. امروزه گوگل برای تائید اعتبار دامنه ها از پروتکل DNSSEC استفاده میکند. با این حال برای تائید صحت اطلاعات از لایه های پایین تر مانند UDP و TCP استفاده می کند. این فرایند یک روش سنتی برای تائید اعتبار دامنه است که توسط گوگل مورد استفاده قرار می گیرد. در این فرایند سنتی مشتری باید پروتکل DNSSEC را مداوم تکرار کند. در حال حاضر تعداد بسیار کمی از سرویس دهنده ها از پروتکل DNSSEC استفاده می کنند.DNSEC چگونه کار میکند؟
مدیریت DNS با قابلیت فعالسازی DNSSEC سرویسی رایگان از وب رمز
پروتکل DNSSEC چیست و چه کاربردی دارد؟
شرح DNSSEC و فرایند های معروف آن
فرآیند اعتماد به کلید های پروتکل DNSSEC