SSL، مدعى تامين امنيت ارتباطات
نام نویسنده: فرشاد فكرى نجات
مجله وب – SSL مخفف Secure Socket Layer و يكى از پروتوكل هاى مهم در ايجاد امنيت ارتباطات راه دور از طريق اينترنت ميباشد. بيشتر سايتهاى كه در زمينه تجارت الكترونيكى فعاليت دارند و يا بانكهاى اينترنتى كه پولها را بواسطه كارتهاى اعتبارى به سراسر اينترنت انتقال ميدهند از اين پروتوكل استفاده ميكنند. در دهه اخير و مخصوصا از سال 1998 به بعد، دنيا با رشد روز افزون تجارت الكترونيكى روبرو بوده و اين سرويس Online نيازمند سيستم امنيتى مناسبى ميباشد. زيرا شخصى كه با استفاده از شماره كارت اعتبارى خود اقدام به خريد Online مينمايد، بايد از سيستم خريد اطمينان كامل داشته باشد.
اين سيستم در محيط وب توسط پروتكلى با نام SSL فراهم ميگردد. در واقع مسئولين IT و مخصوصا ICT كه در زمينه تجارت الكترونيكى فعاليت ميكنند، ميبايست با طرز كار اين پروتكل آشنايى خوبى داشته باشند. اين پروتوكل توسط شركت Netscape ساخته شده و هم اكنون نسخه 3 (آخرين نسخه) آن در دسترس ميباشد. با استفاده از اين پروتوكل، اطلاعاتى كه از طرف كاربر بصورت رمزگذارى شده ارسال ميشود و بعد از دريافت از طريق سرور ، رمزگشايى شده و اطلاعات اصلى بازيابى ميشود.
در ضمن SSL با سيستم امنيتى ماسب خود، تضمين ميكند كه فقط شركت يا سايتى كه كاربران از آن خريد ميكنند از اطلاعات كارت اعتبارى آنها باخبر هستند. به عنوان مثال شخصى كه قصد خريد Online با استفاده از Credit Card را دارد، ميبايست از طريق HTTP (پورت 80) و پروتوكل TCP/IP بواسطه مرورگر وب عمل نمايد. در واقع TCP/IP قادر به انتقال اطلاعات در سراسر جهان ميباشد كه پروتكلهاى HTTP ، IMAP ، LDAP و غيره ، زير مجموعه TCP/IP ميباشند و از قوانين مربوط به آن استفاده ميكنند. ولى پروتوكل TCP/IP به تنهايى قادر به مخفى كردن داده ها بين كاربر و سرور نيست و از طرفى پورت 80 مربوط به ارتباطات معمولى (غير ايمن) ميباشد و يك هكر با استفاده از Packet Sniffing قادر به بررسى و مشاهده محتواى Packet هاى پروتوكل است.
از اين رو براى ارتباطات ايمن، SSL از طريق پورت 443 ولى با پشتيبانى از پروتوكل TCP/IP اقدام به ارسال و دريافت بسته هاى اين پروتوكل مينمايد. از اين رو SSL بين يك پروتوكل سطح بالا مانند HTTP يا SMTP و يك پروتوكل سطح پايين مانند TCP قرار ميگيرد و ارتباط ايمن را برقرار مينمايد. اين پروتوكل جديد در استاندارد TLS (Transport Layer Security) نيز بكار ميرود كه از معروفترين اجزاى اين استاندار امنيتى، ميتوان به WTLS كه در براى امنيت WAP و ارتباطات بى سيم بكار برده ميشود اشاره كرد.
مشكلات تجارت الكترونيكى در ايران :
اولين نكته اينكه هيچگاه به همه سايتها عتماد نكنيد و شماره اعتبارى خود را در اختيارشان قرار ندهيد. بعضى سايتها به بهانه Adult Check و بهانه هايى از اين قبيل، شماره كارت اعتبارى شما را گرفته و از آن سوء استفاده ميكنند. حتى بعضى سايتها گواهينامه هاى ديجيتالى صحيح و تثبيت شده اى به شما نشان ميدهند ولى امكان بروز مشكل همچنان وجود دارد. هميشه از سايتهاى معتبر كه سيستم هاى تست شده اى را ارائه ميدهند و مورد استفاده عموم قرار گرفته اند استفاده كنيد.
در اين بين، امكان كلاهبردارى از كاربران ايرانى در اينترنت چند برابر ميباشد. زيرا قوانينى براى حمايت از كشورهايى كه در اقتصاد جهانى داراى محدوديت هستند وجود ندارد نظارتى به روى اين معاملات انجام نميگيرد. همچنين خيلى از اجناس خريدارى شده به ايران ارسال نميگردد، ولى در كشورهاى خارجى در صورتى كه كالايى بعد از خريد Online به مقصد نرسد بلافاصله توسط مراجع قانونى مورد پيگيرى بين المللى قرار خواهد گرفت. يكى از مشكلات مهم ديگر عدم دسترسى به كارتهاى اعتبارى بين المللى است، اگرچه گامهاى موثر و مثبتى در جهت رفع اين مشكل توسط سازمانهاى خصوصى و واسطه اى انجام گرفته و حتى در بعضى معاملات از كارتهاى اعتبارى داخلى استفاده ميشود ولى تجارت الكترونيكى در ايران نيازمند حمايت بيشترى از طرف مسئولين امر ميباشد.
تشخيص هويت :
يكى از مباحث مهم و اصولى در ارتباطات ايمن، تشخيص هويت متقابل از هر دو طرف Client و Server ميباشد.
در يك ارتباط، ميبايست هويت اصلى سرور براى كاربر و برعكس مشخص شود زيرا در غير اين صورت هر سرورى قادر به ايجاد اعتماد در كاربران خواهد بود. هر سرور بايد داراى گواهينامه ديجيتالى باشد كه اين گواهينامه، نشاندهنده هويت اصلى آن است و توسط شركتهايى مانند VeriSign و Thawte ارائه ميگردد. در اين گواهينامه الكترونيكى اطلاعاتى از قبيل : كليد عمومى (براى مخفى سازى اطلاعات) ، شماره سريال ، نام دامنه ، امضاى ديجيتالى و تاريخ شروع و انقضاى اعتبار گواهينامه درج ميشود.
كاربر به راحتى ميتواند مشخصات گواهنامه سرور را بررسى نمايد. به عنوان مثال فرض كنيد كه براى خريد يك كالا به صورت On-Line به يكى از سايتهاى مربوطه متصل شده ايد، در ابتدا پيغامى مبنى بر ايجاد يك ارتباط با استفاده از SSL را ملاحظه ميكنيد، كه بعد از تاييد آن، اگر به پايين پنجره مرورگر خود از سمت راست (درStatus Bar) دقت نماييد، آيكونى (به شكل يك قفل) را مبنى بر يك ارتباط ايمن مشاهده خواهيد كرد كه با دوبار كليك كردن بر روى آن ميتوانيد اطلاعاتى گواهينامه سرور را بطور كامل مشاهده نماييد. البته بايد توجه داشته باشيد كه حتما مرورگر وب شما قابليت پشتيبانى از SSL را داشته باشد و يا آن را غير فعال نكرده باشيد.
براى اطمينان از فعال بودن اين پروتوكل، در Internet Explorer از منوهاى بالا به منوى Tools > Internet Options رفته و از پنجره ظاهر شده، Tab مربوط به Advanced را انتخاب كرده و از انتخاب گزينه اى با عنوان Use SSL 3.0 اطمينان حاصل كنيد. پيشنهاد ميكنم كه حتما قبل از استفاده از Credit Card خود در اينترنت، گواهينامه سرور را از نظر تاريخ انقضا و نام دامنه مورد بررسى قرار دهيد.
تكنيكهاى امنيت در SSL :
استاندارد SSL از تكنيكهاى زيادى براى رمزگذارى و رمزگشايى بسته هاى پروتوكل TCP/IP استفاده ميكند. اين تكنيكها در نسخه هاى مختلف SSL متفاوت است و روز به روز در حال پيشرفت و بهينه شدن ميباشد. دو تكنيك رمزگذارى كه اغلب در اين پرتوكل انجام ميگيرد روشهاى متقارن و نامتقارن است.
1- روش متقارن :
در اين روش SSL هر دو طرف ميبايست فقط از طريق يك كليد، داده ها را رمزگذارى و يا رمزگشايى نمايند. اين روش از سرعت مناسبى برخوردار است البته اگر هكر بتواند كليد اصلى را بدست آورد امكان بروز مشكلاتى در امنيت داده ها وجود دارد. روش متقارن در الگوريتمهاى RC4 و DES (Data Encryption Standard) نيز مورد استفاده قرار گرفته است.
2- روش نامتقارن :
در اين روش كه از سرعت كمترى نسب به روش متقارن برخوردار است، بجاى يك كليد، داراى دو كليد خصوصى و عمومى (1 كليد خصوصى و 1 كليد عمومى) ميباشد كه كليد عمومى در اختيار تمام SSL هايى كه اقدام به ارسال داده ها ميكنند قرار ميگيرد ولى كليد خصوصى فقط در اختيار پروتوكلى است كه اقدام به دريافت داده ها ميكند. اين روش در الگوريتمهاى مختلفى از جمله RSA و MD4 مورد استفاده قرار ميگيرد.
در ضمن پروتوكل SSL از دو زير پروتوكل به نامهاى SSL Record و SSL Handshake تشكيل شده است كه مسئوليت Handshake SSL برقرارى ارتباط اوليه بين كاربر و سرور ميباشد و SSL Record اطلاعات مربوطه را در بسته هاى 16 كيلوبايتى به مقصد ارسال ميكند. در اين بسته ها اطلاعاتى از جمله الگوريتم كدگذارى ، پيغام خطا مبنى بر مشكلى در شناسايى Packet و همچنين خود داده هاى اصلى قرار دارد.
چگونگى ايجاد يك ارتباط ايمن :
همانطور كه اشاره شد، يك ارتباط ايمن در پروتوكل SSL توسط SSL Handshake برقرار ميشود و مراحلى براى ايجاد يك ارتباط كامل و مطمئن از هر دو طرف (كاربر و سرور) انجام ميگيرد. شايد مراحل SSL Handshake كمى پيچيده به نظر آيد ولى با كمى تمركز و دقت به ارتباط دقيق و بى نقص دو طرف، پى خواهيد برد. مراحل مذكور عبارتند از :
1- در مرحله اول كامپيوتر كاربر اقدام به ارسال اطلاعاتى در مورد نسخه SSL ، تنظيمات تكنيك مخفى سازى و فشرده سازى داده ها ، ID جلسه (Session) و اطلاعات ساعت و تاريخ به كامپيوتر سرور ميكند. اگر كاربر براى اولين بار از سرور مورد نظر استفاده كند، ID جلسه، صفر خواهد بود.
2- بعد از ارسال اطلاعت از طرف كاربر ، سرور نيز اطلاعاتى از جمله نسخه SSL و تنظيمات مخفى سازى و غيره .. را به ماشين كاربر ارسال ميكند. در اين مرحله، گواهينامه سرور براى تشخص هويت نيز به كاربر ارسال ميشود.
3- در اين مرحله ، ماشين كاربر اقدام به تشخص هويت سرور ميكند كه در صورت وجود مشكلاتى در گواهينامه سرور، ارتباط برقرار نخواهد شد.
4- در صورتى كه مرحله قبل با موفقيت انجام گيرد و كاربر و سرور يكديگر را تاييد نمايند. در اين مرحله توسط ماشين كاربر، يك كليد Premaster Secret براى جلسه تهيه ميگردد، لازم به ذكر است كه Premaster Secret با استفاده از كليد عمومى كه در مرحله دوم توسط گواهينامه سرور به ماشين كاربر ارسال شده بود، رمزگذارى (Encrypt) ميشود، در ضمن اين كليد 48 بايتى به صورت تصادفى ايجاد ميشود. در اين مرحله مشخصات ماشين كاربر نيز براى تشخيص هويت به همراه Premaster Secret به ماشين سرور انتقال داده ميشود.
5- در اين مرحله در صورتى كه هويت كاربر براى سرور مشخص گرديد، ماشين سرور با استفاده از كليد خصوصى كه در اختيار دارد اقدام كه رمز گشايى Premaster Secret مينمايد كه در نهايت كليد Master Secret ايجاد ميشود. اين رمزگشايى را ماشين كاربر نيز انجام ميدهد. در اين مرحله هر دو طرف ارتباط داراى كليد Master Secret ميباشند. اگر توجه كرده باشيد تا اين مرحله هر دو طرف كليد Master Secret را بدون اينكه به روى خط براى يكديگر ارسال كنند در اختيار دارند، در واقع تمام اين مراحل براى امنيت بالاتر و عدم ارسال كليد اصلى به روى خط ارتباطى بود.
بعد از انجام تمام مراحل فوق ارتباط SSL Handshake بطور كامل برقرار ميگردد و هر دو طرف با استفاده از كليدهاى جلسه، اقدام به رمزگذارى و رمزگشايى بسته هاى ارسالى و دريافتى مينمايند.
مشكل امنيتى در SSL :
با وجود اينكه اين پروتوكل امروزه در سايتهاى تجارت الكترونيكى مورد استفاده گسترده قرار ميگيرد ولى نميتوان منكر معايب و نواقص آن شد. همانطور كه ميدانيد كليد اصلى مربوط به ارتباطات SSL بصورت تصادفى ايجاد ميشود، متاسفانه طراحى سيستم ايجاد كنند كليد جلسه (Session Key) اين پروتوكل كه توسط شركت NetScape ايجاد شده، ضعيف ميباشد، و يك هكر ماهر به راحتى قادر به پيدا كردن اين كليد خواهد بود. نسخه هاى قبلى SSL از كليدهاى 40 بيتى استفاده ميكردند و نسخه 3 اين پروتوكل از كليد 128 بيتى استفاده ميكند، لازم به ذكر است كه تمامى نسخه ها اين پروتوكل به غير نسخه 3 ، توسط مهاجمان، Crack شده و ناامن است، البته هنوز نسخه 3 كرك نشده ، ولى كارشناسان احتمال وقوع اين امر را در آينده اى نزديك ميدهند كه در اين صورت ميبايست تحولات بنيادى در زيربناى اين پروتوكل ايجاد شود.