بهینه سازی پروتکل SSL در مقابل حملات مختلف با OPNET
در این بخش پروژه شبیه سازی بهینه سازی پروتکل SSL در مقابل حملات مختلف با نرم افزار OPNET را به همراه داکیومنت و فیلم نحوه اجرا و خروجی آماده کرده ایم که در ادامه به توضیحاتی در زمینه موضوع پروژه و معرفی سناریو پروژه پرداخته و فیلم و تصاویر خروجی قرار داده شده است.
مکانیزم های امنیتی در شبکه اینترنت
امروزه با توجه به اینکه استفاده از اینترنت و تجارت الکترونیک روز به روز در حال افزایش است، در صورت بدست آوردن اطلاعات انتقالی در این سیستم ها توسط مهاجمین می تواند زمینه ساز سوء استفاده های زیادی گردد، از این رو ایجاد مکانیزم های امنیتی در شبکه و بهبود این مکانیزم ها باعث می شود که کاربران و سرویس گیرندگان بتوانند به راحتی و بدون داشتن دغدغه های امنیتی به تجارت در این محیط بپردازند. در این پروژه نیز با تمرکز بر روی ویژگی های امنیتی پروتکل SSL/TLS و بهبود آن، تلاش شده که کاربران را در استفاده از این پروتکل های امنیتی سوق دهیم. با وجود برتری ها و قوی بودن پروتکل SSL/TLS باز در هنگام حملات مهاجمان، نقصان هایی وجود دارد. در این پروژه شبیه سازی با آپنت هدف این است که با ایجاد حملات متعدد به این پروتکل، آن را تجزیه و تحلیل کرده و نقاط ضعف آن را پیدا کنیم و سپس با برطرف کردن نقاط ضعف، عملکرد این پروتکل را بهبود دهیم.
الگوریتم های رمزنگاری در سیستم های امنیتی
امروزه استفاده از الگوریتم های رمزنگاری قوی در سیستم های امنیتی یک ضرورت انکار ناپذیر است. البته برای استفاده از الگوریتم های رمزنگاری می توان از پروتکل های امنیتی مبتنی بر آنها استفاده نمود تا در عین حفظ محرمانگی، بتوان از دیگر مزایای الگوریتم ها در یک قالب استاندارد نیز بهره برد. رمزنگاری مبتنی بر کلید به یکی از دو شکل متقارن و نامتقارن (کلید عمومی) انجام می شود. در رمزنگاری متقارن به دلیل اینکه از یک کلید مشترک برای رمزنگاری و رمزگشایی استفاده می شود و اینکه طول این کلید نسبت به کلیدهای نامتقارن کوچکتر است سرعت انجام عملیات رمزنگاری بسیار زیاد می باشد اما در مقابل، امنیت ایجاد شده ضعیف می باشد. در حالی که در الگوریتم های رمزنگاری نامتقارن از یک زوج کلید برای رمزنگاری و رمز گشایی استفاده می شود و در بیشتر موارد طول این کلید بزرگ می باشد، بنابراین در این حالت سرعت عملیات رمزنگاری کاهش یافته اما امنیت ایجاد شده افزایش می یابد.
در پیاده سازی یک پروتکل امنیتی می بایست با توجه به سیاست های در نظر گرفته شده از یکی از الگوریتم های رمزنگاری متقارن، نامتقارن و یا هر دو استفاده کرد. در حال حاضر بیشتر پروتکل های موجود از هر دوی این الگوریتم ها استفاده می کنند تا به یک کارایی مطلوب دست پیدا کنند، به طوری که در عین داشتن امنیت قابل قبول از یک سرعت لازم نیز برخوردار باشند.
معرفی پروتکل SSL
یکی از پروتکل های امنیتی که خاصیت های رمزنگاری و رمزگشایی مبتنی بر کلید استفاده می کند پروتکل SSL/TLS می باشد. پروتکل SSL/TLS ، یک پروتکل ارتباطی امن است که سه سرویس امنیتی محرمانگی، احراز اصالت و جامعیت داده را دارا می باشد، از سرعت قابل قبولی برخوردار است و همچنین استفاده از آن ساده است. به همین دلیل، هم اکنون این پروتکل به عنوان رایج ترین پروتکل ارتباطی امن مورد استفاده گسترده اکثر کاربران شبکه های کامپیوتری قرار گرفته است.
پروتکل امنیتی (SSL) یکی از پروتکل های استاندارد برای انتقال داده ها بین سرویس دهنده (Server) و سرویس گیرنده (Client) به صورت رمزنگاری شده می باشد. کلمه SSL مخفف عبارت Secure Socket Layer به معنی لایه امن پروتکل می باشد.
مهم ترین حملات به پروتکل SSL/TLS
در اینترنت و شبکه های کامپیوتری حملات بسیاری برای تخریب یا جاسوسی وجود دارد که بعضی از این حملات مربوط به پروتکل های مختلف موجود در شبکه می باشد. یکی از این پروتکل ها پروتکل امنیتی SSL/TLS می باشد که حملات مختلفی آن را تهدید می کند که در ادامه نام برده شده اند. اگرچه ابزاهای زیادی برای بررسی نقاط ضعف این پروتکل ابداع شده ولی هنوز مشخص نیست که آیا این شیوه امنیتی بهترین شیوه برای انتقال اطلاعات در حال حاضر می باشد یا خیر.
در این پروژه هدف اول بررسی نقاط ضعف این پروتکل در مقابل پنج حمله می باشد که عبارتند از:
- حمله خونریزی قلبی (Heartbleed attack)
- حمله سگ پشمالو و باهوش (POODLE attack)
- حمله تزریق CCS یا CCS injection attack
- حمله فریک (FREAK attack)
- حمله رمزگشایی RSA با رمزگذاری منسوخ و ضعیف شده (DROWN attack)
معرفی پروژه و سناریوهای شبیه سازی
ایجاد حملات ترکیبی به پروتکل SSL/TLS با آنالیز چند متغیره
تحلیل چند متغیره (Multivariate statistics) شاخه ای از آمار ریاضی می باشد که به تحلیل داده هایی می پردازد که از مشاهده چند متغیر تصادفی جمع آوری شده است. یکی از اهداف آمار چند متغیره، بررسی وابستگی ها در بین متغیرهای مشاهده شده می باشد. در این تحلیل به بررسی توزیع های احتمال چند متغیره پرداخته می شود تا بشود آنهایی که برای مدل سازی داده و استنباط آمار ریاضی مناسب می باشند را تشخیص داد. یکی از مواردی که می باست در طراحی حملات به پروتکل SSL/TLS مدنظر باشد، این است که اکثر حملات به این پروتکل در ورژن های جدید تشخیص داده می شود، به همین منظور از آنالیز چند متغییره به منظور ترکیب حملات مختلف و اعمال آن به طور همزمان بر روی پروتکل SSL/TLS و آنالیز داده های خروجی و سپس یافتن نقاط ضعف استفاده می کنیم.
در ادامه نتایج حاصل از این آنالیز را بررسی نموده و با اعمال آن بر روی پروتکل SSL/TLS و اصلاح بعضی از پارامترهای مربوط به این پروتکل با استفاده از خروجی این آنالیز، این پروتکل را بهبود داده و عملیات حمله به پروتکل را برای بررسی نتایج و بهبود این پروتکل دوباره تکرار می کنیم.
بهبود پروتکل SSL/TLS
یکی از مهمترین اهداف پیاده سازی این الگوریتم بهبود بخش دست دادن (Handshaking) در پروتکل SSL/TLS می باشد. برای این کار ابتدا شرح مختصری از این بخش ارائه می دهیم و سپس به بررسی متغییر هایی که برای بهبود این پروتکل مدنظر است پرداخته خواهد شد. پروتکل SSL/TLS دارای بخش های مختلف می باشد. یکی از مهمترین بخش های آن بخش دست دادن یا Handshaking می باشد. این عمل به منظور احراز اصالت دو طرف و توافق روی الگوریتم ها و کلیدهای رمزگذاری است و به لایه دوم مربوط است و قبل از هر انتقال داده بین دو طرف این پروتکل صورت می گیرد. این پروتکل پیچیده ترین پروتکل SSL است که یکسری پیام دارد که بین دو طرف ارتباط مبادله می شود. هر پیام شامل نوع پیام، طول پیام به بایت و محتوای پیام است.
مراحل کاری پروتکل SSL/TLS
- مرحله برقرای قابلیت های امنیتی : این مرحله به منظور آغاز یک اتصال منطقی برای معین کردن قابلیت های امنیتی مربوط به آن اتصال است.
- مرحله احراز اصالت و تبادل کلید سرور : در این مرحله حداکثر ۴ پیام از طرف سرور به کلاینت ارسال می شود که ۳ تا از آنها اختیاری است. پیام اول شامل گواهی سرور است. پیام دوم مربوط به تبادل کلید از طرف سرور است. پیام سوم در صورتی که سرور مخفی نباشد ممکن است از سرور به کلاینت ارسال می شود. پیام چهارم که حتما باید ارسال شود پارامتری ندارد و بیان کننده پایان ارسال پیام مرحله دوم است.
- مرحله احرا اصالت و تبادل کلید کلاینت : در این مرحله ۳ پیام از کلاینت به سرور ارسال می شود که فقط یکی از آنها اجباری است.
- پایان : در این مرحله طرفین با ارسال مشخصات رمز کننده وضعیت جدید رمز خود را اطلاع می دهند و سپس با ارسال پیام پایانی، پروتکل دست دادن را پایان می دهند.
با توجه به موارد ذکر شده پارامترهای مدت زمان اتصال، طول پیام، تعداد پیام، نوع پیام و الگوریتم رمزنگاری به عنوان پارامترهای اصلی این پروتکل می باشد. هدف این است با تغییرات روی مدت زمان اتصال، طول پیام، نوع پیام و تعداد پیام به صورت همزمان و چند متغییره اقدام به بهینه سازی پروتکل فوق با استفاده از روش پیشنهادی به بهبود در عملکرد SSL/TLS با توجه به حملات صورت گرفته کمک کند. به عبارت دیگر هدف ما استفاده از حملات مختلف جهت بهینه سازی پروتکل SSL/TLS با استفاده از آنالیز اطلاعات مربوط به پارامتر های اشاره شده می باشد.
سناریو اول – پیاده سازی پروتکل SSL
در این قسمت به بررسی شبیه سازی پروتکل SSL در حالت نرمال پرداخته شده است. همانطوری که در شکل زیر مشاهد می شود، یک سرور و یک کلاینت به یکدیگر متصل هستند و با استفاده از پروتکل استاندارد در حال نقل و انتقال هستند که در ادامه به تشریح قسمت های مختلف پرداخته خواهد شد.
شکل مدل کلاینت و سرور پیاده سازی برای پروتکل استاندارد SSL
در ادامه ساختار پیاده سازی این پروتکل در نرم افزار شبیه ساز OPNET 17.5 و خروجی آن مشاهد می شود. در شکل زیر اجزای اصلی که برای پروتکل پیاده سازی شده، مشاهده می شود.
شکل اجزای پیاده سازی شده پروتکل SSL
با توجه به اینکه این پروتکل دارای پارامترهای مختلف می باشد، در شکل زیر نمودار این پارامترها نشان داده شده است. این نمودارها به این خاطر با جزئیات مورد تجزیه تحلیل قرار گرفته که بعدا بتوان مقایسه ای بین این نمودار ها و مدل پیشنهادی ارائه داد.
نمودار زمان پاسخ در بخش دست دادن در پروتکل SSL استاندارد
نمودار تاخیر در بخش دست دادن در پروتکل SSL استاندارد
حمله خونریزی قلبی (Heartbleed attack) – با توجه به اینکه این حمله به طور خلاصه توابع رمزنگاری را مورد حمله قرار می دهد، در شکل زیر طراحی حمله فرق مشاهده می شود.
شکل اجزای تشکیل دهنده حمله خونریزی قلبی (Heartbleed attack)
حمله سگ پشمالو و باهوش (POODLE attack) – این حمله بخش دست دادن پروتکل را به طور خلاصه مورد حمله قرار می دهد.
شکل اجزای تشکیل دهنده حمله سگ پشمالو و باهوش (POODLE attack)
حمله تزریق CCS یا CCS injection attack – این حمله نیز مانند حمله قبلی بخش دست دادن پروتکل را مورد حمله قرار می دهد.
شکل اجزای تشکیل دهنده حمله تزریق CCS یا CCS injection attack
حمله فریک (FREAK attack) – این حمله نیز کلید های رمزنگاری و بخش رمزنگاری را مورد حمله قرار می دهد.
شکل اجزای تشکیل دهنده حمله فریک (FREAK attack)
حمله رمزگشایی RSA با رمزگذاری منسوخ و ضعیف شده (DROWN attack) – این نوع حمله نیز کلیدهای رمزنگاری و بخش رمزنگاری را مورد حمله قرار می دهد.
شکل اجزای تشکیل دهنده حمله رمزگشایی RSA با رمزگذاری منسوخ و ضعیف شده (DROWN attack)
سناریو دوم – بررسی پارامترهای پروتکل استاندار SSL با توجه حملات
در این قسمت به بررسی پروتکل استاندار SSL با توجه به حملات نام برده شده در قسمت قبل پرداخته خواهد شد.
شکل پروتکل استاندارد SSL همراه با حملات تعریف شده قبل
شکل اجزای پیاده سازی شده شکل پروتکل استاندارد SSL همراه با حملات تعریف شده قبل
نمودار زمان پاسخ در بخش دست دادن در پروتکل SSL استاندارد تحت حمله فریک (FREAK attack)
این سناریو نیز ماند سناریو قبلی دارای پارامترهای زیادی می باشد که برای نمونه چند شکل در ادامه مشاهد می شود که از مهمترین آنها می توان به زمان پاسخ شبکه و تاخیر در شبکه و همچنین تحویل ابتدا به انتهای کلاینت به سرور اشاره کرد. همانطور که در شکل زیز مشاهده می شود، زمان پاسخی برای شبکه جود ندارد و این امر به این دلیل است که به دلیل حملات مختلف به صورت همزمان، ارتباط بین کلاینت و سرور قطع شده است.
شکل زمان پاسخ شبکه در پروتکل استاندارد SSL به صورت کلی زمانی که حملات صورت گرفته اند
سناریو سوم – بررسی پارامترهای پروتکل پیشنهادی SSL با توجه حملات
با جمع بندی آنالیز چند متغیره حملات با توجه به موارد اشاره شده در انواع حملات در شبکه می توان به این نتیجه رسید که ضعف اساسی پروتکل SSL در بخش دست دادن (Handshaking) و پروتکل رمزنگاری می باشد. از این رو ما با تغییر در ساختار پروتکل SSL در بخش دست دادن و الگوریتم رمزنگاری مدل پیشنهادی را ارائه دادیم. که به صورت ذیل می باشد.
شکل پروتکل بهبود یافته SSL همراه با حملات تعرفی شده قبل
با توجه به شکل زیر، ساختار شبکه در بخش server hello و certificate با ادغام این دو بخش در یک بخش باعث بالا بردن سرعت پروتکل شده تا حملات قادر نباشند در این بخش نفوذ کنند. در بخش رمزنگاری که حملات باعث شکستن رمز اطلاعات می شد، با افزایش طول کلید رمزنگاری این ضعف نیز بر طرف شد، گرچه در این مرحله با افزایش کلید، سرعت کاهش پیدا می کند ولی چون در بخش قبل الگوریتم باعث افزایش سرعت الگوریتم می شد، در مجموع هم سرعت الگوریتم هم امنیت الگوریتم در مقابل حملات بهبود پیدا کرده است که در نمودار ها نمایان است. در مجموع دو شکل زیر، بخش بهبود یافته الگوریتم می باشد. نتایج شبیه سازی در محیط نرم افزار OPNET نشان می دهد که پروتکل فوق به طور نسبی بهبود پیدا کرده که در ادامه خروجی و مدل مشاهد می شود.
شکل بخش بهبود یافته ssl_handshak
شکل بخش بهبود یافته ssl_clinet_autuntaction
نمودار بهبود یافته زمان پاسخ شبکه تحت حمله FREAK
نمودار بهبود یافته دریافت بسته های اطلاعاتی
نمودار بهبود یافته ارسال بسته های اطلاعاتی
نمودار بهبود یافته بسته های ارسالی در واحد ثانیه
نتیجه گیری
در این پروژه ما ابتدا به معرفی پروتکل SSL/TLS و کاربرد های آن در اینترنت پرداخته و سپس اجزای اصلی این پروتکل را تشریح کرده و در بخش شبیه سازی پروتکل را در دو بخش کلی SSL _ Handshake و SSL _ Clinet _ autuntaction پیاده سازی کرده و نام این بخش را پروتکل استاندار SSL نامگذاری کردیم، و اقدام به شبیه سازی در قالب مدل کلاینت سروی پیاده سازی شده و سپس پارامتر های اصلی شبیه سازی را در قالب نمودار های مختلف به عنوان معیار در نظر گرفتیم.
در مراحل بعدی انواع حملات در شبکه تعریف شده که حدود پنج نوع حمله مختلف می باشد. این حملات را بر روی پروتکل استاندارد اعمال کردیم و با مقایسه این پارامتر ها در قالب مدل آنالیز چند متغییره، متوجه شدیم که بیشترین ضعف پروتکل فوق در بخش دست داد پروتکل (Handshaking) و قسمت کلید رمزنگاری (Cryptographic key) می باشد و سپس با تغییر ساختار مدل دست داد و افزایش کلید رمزنگاری مجددا پروتکل پیشنهادی را شبیه سازی کرده و در نهایت پنج حمله فوق را روی پروتکل پیشنهادی اعمال کردیم. پارمتر های مختلف حاکی از آن است که پروتکل پیشنهادی بهبود یافته و این بهبود در نمودار های مختلف مشاهد می شود. همچنین برای انجام کار خود سه سناريو مختلف برای مقایسه در نظر گرفتیم تا بتوانیم مقایسه ای بین روش استاندارد پروتکل و مدل پیشنهادی انجام دهیم.
هیچ نظری ثبت نشده است