http://www.ictnews.ir/
http://ictnews.ir
آرشیوی
نگاهی از نوع نقد به پروتکل SSL
نگاهی از نوع نقد به پروتکل SSL

تبادل ‌اطلاعات همواره از اهمیت زیادی برخوردار بوده؛ چراکه کاربران در فضای مجازی خواه‌ناخواه قسمتی از وقت خود را برای تبادل اطلاعات صرف می‌کنند.

این تبادل می‌تواند انواع مختلفی داشته باشد و به روش‌های گوناگونی انجام شود.
اما برای تبادل ایمن اطلاعات باید از روش‌ها و پروتکل‌هايي استفاده کرد تا هنگام تبادل اطلاعات در صورت حمله، سرقت اطلاعات صورت نگیرد؛ به این صورت که اطلاعات تبادل‌شده ميان کاربران یا سرور به‌صورت رمزنگاری‌شده صورت می‌پذیرد. حال اینکه پیچیدگی الگوریتم چه میزان باشد، بسته به نوع خدمات متفاوت خواهد بود.
SSL چیست؟
SSL یا Secure Socket Layer راه‌حلی براي برقراری ارتباطات ایمن میان یك سرویس‌دهنده و یك سرویس‌گیرنده است كه به‌وسيله شركت Netscape ارایه شده است. در واقع SSL پروتكلی است كه پایین‌تر از لایه كاربرد (لایه چهارم از مدل TCP/IP) و بالاتر از لایه انتقال (لایه سوم از مدل TCP/IP) قرار می‌گیرد. مزیت استفاده از این پروتكل، بهره‌گیری از موارد امنیتی تعبیه‌شده آن برای امن كردن پروتكل‌های غیرامن لایه كاربردی نظیر HTTP، LDAP، IMAP و... است كه بر اساس آن الگوریتم‌های رمزنگاری روی داده‌های خام (plain text) كه قرار است از یك كانال ارتباطی غیرامن مانند اینترنت عبور كنند، اعمال می‌شود و محرمانه‌ماندن داده‌ها را در طول كانال انتقال تضمین می‌كند.
به بیان دیگر، شركتی كه صلاحیت صدور و اعطای گواهی‌های دیجیتال SSL را دارد، برای هر كدام از دو طرفی كه قرار است ارتباطات میان‌شبكه‌ای امن داشته باشند، گواهی‌های مخصوص سرویس‌دهنده و سرویس‌گیرنده را صادر و با مكانیزم‌های احراز هویت خاص خود هویت هر كدام از طرفین را برای طرف مقابل تایید می‌كند. البته این كار بايد تضمین كند كه اگر اطلاعات حین انتقال مورد سرقت قرار گرفت، برای رباینده قابل درك و استفاده نباشد كه این كار را با كمك الگوریتم‌های رمزنگاری و كلیدهای رمزنگاری نامتقارن و متقارن انجام می‌دهد.
ملزومات یك ارتباط مبتنی بر پروتكل امنیتی SSL
برای داشتن ارتباطات امن مبتنی بر SSL عموما به دو نوع گواهی دیجیتال SSL، یكی برای سرویس‌دهنده و دیگری برای سرویس‌گیرنده و یك مركز صدور و اعطای گواهینامه دیجیتال یا CA نیاز داريم. وظیفه CA این است كه هویت طرفین ارتباط، نشانی‌ها، حساب‌های بانكی و تاریخ انقضای گواهینامه را بداند و بر اساس آنها هویت‌ها را تعیین كند.
مكانیزم‌های تشكیل‌دهنده SSL
1) تایید هویت سرویس‌‌دهنده
با استفاده از این ویژگی در SSL، یك كاربر از صحت هویت یك سرویس‌دهنده مطمئن می‌شود. نرم‌افزارهای مبتنی بر SSL سمت سرویس‌گیرنده، براي مثال یك مرورگر وب نظیر Internet Explorer از تكنیك‌های استاندارد رمزنگاری
مبتنی بر كلید عمومی و مقایسه با كلیدهای عمومی یك سرویس‌دهنده (براي مثال، یك برنامه سرویس‌دهنده وب نظیر IIS ) می‌تواند از هویت او مطلع شود و پس از اطمینان كامل، كاربر می‌تواند نسبت به وارد كردن اطلاعات خود مانند شماره كارت‌های اعتباری یا گذرواژه‌ها اقدام كند.
2) تایید هویت سرویس‌گیرنده
برعكس حالت قبلی در اینجا سرویس‌دهنده است كه بايد از صحت هویت سرویس‌گیرنده اطمینان یابد. طی این مكانیزم، نرم‌افزار مبتنی بر SSL سمت سرویس‌دهنده پس از مقایسه نام سرویس‌گیرنده با نام‌های مجاز موجود در فهرست سرویس‌گیرنده‌های مجاز، در صورت مطابقت اجازه استفاده از سرویس‌های مجاز را به او می‌دهد.
3) ارتباطات رمزشده
تمامي اطلاعات مبادله‌شده میان سرویس‌دهنده و گیرنده بايد به‌وسيله نرم‌افزارهای موجود در سمت سرویس‌دهنده و سرویس‌گیرنده رمزنگاری (Encrypt) شده و در طرف مقابل رمزگشایی (Decrypt) شوند تا حداكثر محرمانگی (Confidentiality) در این‌گونه سیستم‌ها لحاظ شود.
اجزای پروتكل SSL
پروتكل SSL دارای دو زیرپروتكل با عناوین زیر است:
1) SSL Rocord Protocol كه نوع قالب‌بندی داده‌های ارسالی را تعیین می‌كند.
2) SSL Handshake Protocol كه براساس قالب تعیین‌شده در پروتكل قبلی، مقدمات ارسال داده‌ها میان سرویس‌دهنده‌ها و سرویس‌گیرنده‌های مبتنی بر SSL را تهیه می‌كند.
بخش‌بندی پروتكل SSL به دو زیرپروتكل دارای مزایای چندی است، از جمله:
اول: در ابتدای كار و طی مراحل اولیه ارتباط (Handshake) هویت سرویس‌دهنده برای سرویس‌گیرنده مشخص می‌شود.
دوم: در همان ابتدای شروع مبادلات، سرویس‌دهنده و گیرنده بر سر نوع الگوریتم رمزنگاری تبادلی توافق می‌كنند.
سوم: در صورت لزوم، هویت سرویس‌گیرنده نیز برای سرویس‌دهنده احراز می‌شود.
چهارم: در صورت استفاده از تكنیك‌های رمزنگاری مبتنی بر كلید عمومی، می‌توانند كلیدهای اشتراكی مخفی را ایجاد كنند.
پنجم: ارتباطات بر مبنای SSL رمزنگاری می‌شود.
الگوریتم‌های رمزنگاری پشتیبانی‌شده در SSL
در استاندارد SSL، از اغلب الگوریتم‌های عمومی رمزنگاری و مبادلات كلید (Key Exchcenge Algorithm) نظیرRSA, RC4, RC4,MD5, KEA, DSA, DES و RSA Key Exchauge، SHA-1،Skipjack و DES3 پشتیبانی می‌شود و بسته به اینكه نرم‌افزارهای سمت سرویس‌دهنده و سرویس‌دهنده نیز از موارد مذكور پشتیبانی كنند، ارتباطات SSL می‌تواند براساس هر كدام از این الگوریتم‌ها صورت پذیرد. البته بسته به طول كلید مورد استفاده در الگوریتم و قدرت ذاتی الگوریتم می‌توان آنها را در رده‌های مختلفی قرار داد كه توصیه می‌شود با توجه به سناریوهای موردنظر، از الگوریتم‌های قوی‌تر نظیر DES3 با طول كلید ۱۶۸ بیت برای رمزنگاری داده‌ها و همچنین الگوریتم SHA-1 برای مكانیزم‌های تایید پیغام MD5 استفاده شود یا اینكه اگر امنیت در این حد مورد نیاز نبود، می‌توان در مواردی خاص از الگوریتم رمزنگاری RC4 با طول كلید ۴۰ بیت و الگوریتم تایید پیغام MD5 استفاده كرد.
نقدی بر SSL
با توجه به نسخه‌های متعدد این پروتکل حملات و آسیب‌های متفاوتی می‌تواند به‌وجود بیاید؛ چراکه نسخه قدیمی این پروتکل قدیمی و دارای باگ است و آخرین نسخه حملات برای آن انجام مي‌شود. این پروتکل تا حد مناسبی ایمن است، اما نکته اساسی‌ این است که اغلب سایت‌ها از نسخه جدید استفاده نکرده و همچنان نسخه‌های قدیمی را به كار مي‌گيرند.
استفاده از این پروتکل‌ها تضمین‌دهنده‌‌ این است که یک نفوذگر نباید بتواند اطلاعات رمزشده را در طول مسیر رمز‌گشایی (تغییر و ...) کند. SSL یک پروتکل قدیمی است و نسخه‌ سوم آن مربوط به ۱۵ سال پیش است، اما همچنان در مرورگرها از آن پشتیبانی می‌شود. بیشتر سایت‌ها از نسخه‌های TLS استفاده می‌کنند، اما در صورت پشتیبانی نكردن مرورگر کاربر از TLS سعی می‌کنند از نسخه‌های قدیمی‌تر‌ مانند SSLv3 برای برقراری ارتباط استفاده کنند. تا اینجا عملکرد این پروتکل توضیح داده شد، اما نکته اساسی این است که این پروتکل رمزنگاری تبادل اطلاعات تا چه اندازه قابل اطمینان و ایمن است؛ چراکه از طرفی برای تبادل امن اطلاعات استفاده می‌شود و از طرفی خود نیز باید ایمن باشد که متاسفانه باید گفت طی سال‌های اخیر عملکرد مناسبی از خود نشان نداده و حملات موفقیت‌آمیز متعددی نسبت به آن انجام شده است. مانند ضعف امنیتی هارت بلید که موجب لو رفتن اطلاعات رمزنگاری‌شده کاربران و سرور بود و در آن زمان این باگ نمایان شد. باگ يادشده موجب رخنه شدید اطلاعاتی در فضای مجازی شد و آسیب‌های جدی بر پیکره سایت‌های استفاده کننده از این پروتکل وارد کرد.
Poodle
این باگ به‌تازگي بر اساس مطلبی که در پایگاه سایت بیان ارایه شده برای این پروتکل شناسایی شده است:
در هنگام اولین اتصال به سرویس‌دهنده (وب سرور)، سرویس‌گیرنده (مرورگر کاربر) سعی می‌کند از طریق بالاترین نسخه‌ای که پشتیبانی می‌کند (براي مثال TLS 1.2) ارتباط را ایجاد کند. اگر وب‌سرور نیز قابلیت پشتیبانی از این نسخه را داشته باشد، ارتباط برقرار می‌شود؛ در غیر این صورت اگر براي مثال وب سرور از نسخه‌ TLS 1.0 استفاده کند، مرورگر کاربر نیز به نسخه‌ پایین‌تر یعنی TLS 1.0 سوییچ می‌کند. به این رویکرد downgrade گفته می‌شود که می‌تواند به‌وسيله یک نفوذگر داخل شبکه‌ کاربر نیز اتفاق بیفتد. نفوذگر مرورگر کاربر را وادار می‌کند از طریق SSLv3 اتصال را برقرار كند. در SSLv3 برای رمزنگاری از روش‌های RC4 یا یک روش رمز بلوکی در حالت CBC استفاده می‌شود. در ساختار رمز بلوکی در حالت CBC این پروتکل مشکلی وجود دارد که موجب می‌شود نفوذگر بتواند با آزمون و خطا، با تعداد درخواست‌های اندکی، قسمتی از درخواست رمزشده ميان مرورگر و وب‌سرور را حدس بزند. این داده‌ حدس زده‌شده می‌تواند کوکی کاربر باشد که نفوذگر با استفاده از آن می‌تواند وارد حساب کاربر شود. اصل مبنای تئوری این آسیب‌پذیری از سوي Serge Vaudenay در سال ۲۰۰۱ مطرح شده بود، اما او فکر می‌کرده است که امکان استفاده عملی از این آسیب‌پذیری وجود ندارد و در نهايت این آسیب‌پذیری از سوي مهندسان گوگل اعلام شد و Poodle نام گرفت.
چه کسی تحت تاثیر این آسیب‌پذیری قرار می‌گیرد؟
کاربران هر سایتی (سرویس‌دهنده) که از SSLv3 پشتیبانی کند (در تنظیمات وب‌سرور غیرفعال نکرده باشد)، آسیب‌پذیرند. در‌ واقع حتی اگر سایت از نسخه‌های TLS استفاده کند به‌دلیل قابلیت downgrade (بازگشت به نسخه‌ قبلی) آسیب‌پذیر است؛ زیرا نفوذگر داخل شبکه می‌تواند مرورگر کاربر را وادار کند تا از طریق SSLv3 اتصال برقرار کند.
کاربر چگونه تحت تاثیر این آسیب‌پذیری قرار می‌گیرد؟
نفوذگر (داخل شبکه‌ کاربر) با بهره‌برداری از این آسیب‌پذیری می‌تواند اطلاعات حساس کاربر مانند (کوکی که هویت کاربر است) را برباید و در نهایت وارد حساب کاربر شود. در پایان باید قاطعانه بیان کرد که استفاده از این پروتکل ناپایدار برای سایت‌های مهم توصیه نمی‌شود یا حداقل استفاده از آخرین نسخه این پروتکل توصیه می‌شود. البته باید گفت روش‌های جایگزین این پروتکل هنوز به‌صورت همه‌گیر استفاده نشده و باید دید در آینده چه اتفاقی خواهد افتاد.


مطالب مرتبط
نظرات کاربران

ارسال نظر در مورد این مطلب:
نام شما : *
آدرس ایمیل : *
متن نظر : *
کد امنیتی :
Refresh Code

لطفا عبارت درج شده در تصویر بالا را در کادر زیر بنویسید

*
 


کليه حقوق اين سایت متعلق به ICTNEWS است.
انتشار مطالب با ذکر منبع و لینک به سایت مجاز است.
تماس با ما: 88946450  فرم تماس با ما
این پرتال قدرت گرفته از :
سیستم مدیریت پرتال و خبرگزاری دیاسافت
ارتباط با ما : 1000030200