ایجاد ارتباط ایمن در برنامه های وب
پرداختن به مقوله امنيت در برنامه های وب با توجه به ماهيت اين نوع از برنامه ها و جايگاه آنان در ارائه سرويس ها و خدمات پيشرفته ای همچون تجارت الکترونيکی بسيار حايز اهميت است . زمانيکه در رابطه با امنيت برنامه های وب بحث می شود، می بايست بر روی دو محور اساسی متمرکز گرديد:
• با استفاده از چه مکانيزمهائی می توان دستيابی کاربران به يک برنامه را کنترل و پس از شناسائی آنان ، امکان استفاده از برنامه را برای کاربران تائيد شده و متناسب با سطح دستيابی فراهم نمود؟

• برخی از برنامه های وب ، اطلاعات حساس متعددی را از طريق محيط انتقال و زير ساخت ايجاد شده ، ارسال و يا دريافت می دارند . در اين رابطه از چه نوع مکانيزمهائی می بايست استفاده گردد تا اين اطمينان حاصل شود که اطلاعات حساس ارسالی (نظير اطلاعات مربوط به کارت های اعتباری ) ، توسط افراد غير مجاز قابل خواندن نبوده و امکان دستکاری آنان نيز وجود نداشته باشد.دريافت کننده اطلاعات، می بايست از صحت اطلاعات ارسالی،اطمينان حاصل نمايد . اين نوع از برنامه های وب ، نيازمند استفاده از يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده می باشند . وجود يک ارتباط ايمن بين سرويس گيرنده و

سرويس دهنده در برنامه ها ی وب تجاری و يا سايت هائی که بر روی آنان کالا و يا خدماتی عرضه می گردد ، بسيار حائز اهميت بوده و از موارد حياتی در موفقيت آنان محسوب می گردد .

 

ضرورت ايجاد يک ارتباط ايمن بين سرويس گيرنده و سرويس دهنده
مبادله اطلاعات در اينترنت مبتنی بر پروتکل TCP/IP بوده که در آن از پروتکل های متعددی نظير HTTP (Hypertext Transfer Protocol )، Telnet و( FTP(File Transfer Protocol ، استفاده می گردد . پروتکل های فوق ، گزينه مناسبی برای ايجاد يک ارتباط ايمن نمی باشند ، چراکه مبادله اطلاعات به صورت Plaintext انجام می شود . اطلاعات محرمانه و يا حساسی که با استفاده از اينچنين پروتکل هائی منتقل می گردد ، بسادگی قابل ره گيری و خواندن بوده و در اين رابطه

لازم است ،اطلاعات ارسالی با استفاده از روش های متفاوت رمزنگاری ، رمز گردند. سرويس گيرندگان وب ، درخواست های خود را با استفاده از پروتکل HTTP برای سرويس دهندگان وب ارسال می نمايد . مبادله اطلاعات با استفاده از پروتکل فوق و با توجه به ماهيت آن ، چالش های امنيتی خاصی را برای سرويس

دهندگان و سرويس گيرندگان به دنبال خواهد داشت . سرويس دهندگان وبی که صرفا” از استاندارد HTTP به منظور ارتباط با سرويس گيرندگان استفاده می نمايند ، اهداف مناسبی برای حملاتی از نوع ( DoS (Denial-of-Service و ساير حملاتی از اين نوع می باشند. علاوه براين ، سرويس دهندگانی اينچنين، اهداف مناسبی برای سرويس دهندگان وب تائيد نشده محسوب خواهند شد. . اين نوع سرويس دهندگان ، وب سايت هائی می باشند که خود را به عنوان يک سايت مثبت وانمود کرده و نرم افزارهائی شامل ويروس های کامپيوتری و يا اسکريپت های مخرب را بر روی سايت مستقر تا کاربران با دريافت و نصب آنان ، دچار مشکلات امنيتی گردند.

پروتکل های ارتباطی ايمن وب ، روشی به منظور تائيد سرويس گيرندگان و سرويس دهندگان بر روی وب وحفاظت لازم درخصوص محرمانگی ارتباط بين سرويس گيرندگان و سرويس دهندگان را ارائه می نمايند. تاکنون استانداردهای ارتباطی ايمن متعددی با استفاده از تکنولوژی رمزنگاری کليد عمومی ، پياده سازی شده است. پروتکل های Secure Hypertext Transfer Protocol ) SHTTP ، ( IP Security) IPSec) و PPTP نمونه هائی در اين زمينه می باشند . پروتکل ( SSL ( Secure Socket Layer ، پيشگام تمامی پروتکل های ايمن ارتباطی بوده که در ابعاد گسترده ای به منظور ارائه کانال ايمن ارتباطی و مبادله اطلاعات حساس و محرمانه بر روی وب ، استفاده می گردد .

در پروتکل SSL از مدل رمزنگاری کليد عمومی به عنوان زيرساخت اوليه و در جهت ارائه يک ارتباط ايمن در شبکه استفاده می شود.گواهينامه های سرويس دهنده ، که از آنان با نام Server IDs نيز نام برده می شود،به سرويس دهندگان امکان استفاده از يک پروتکل ايمن ارتباطی نظير SSL را داده و همچنين ، امکان شناسائی سرويس دهنده و يا وب سايت مربوطه نيز برای کاربران و قبل از ارسال اطلاعات محرمانه ، فراهم می گردد . لازم است به اين موضوع مجددا” اشاره گردد که وجود يک کانال ارتباطی ايمن يکی از مهمترين عوامل در ارتباط با گسترش تجارت الکترونيکی محسوب می گردد. حصول اطمينان از وجود يک ارتباط ايمن بين خريداران ( سرويس گيرندگان ) و ارائه دهندگان کالا و يا خدمات (سرويس دهندگان ) از مهمترين عوامل موفقيت در برپاسازی يک سايت تجارت الکترونيکی است . نقش و جايگاه پروتکل SSL در اين نوع سايت ها بسيار حياتی و تعيين کننده است . در ادامه با اين پروتکل بيشتر آشنا می شويم .

رمزنگاری اطلاعات
گسترش و رشد بی سابقه اینترنت باعث ایجاد تغییرات گسترده در نحوه زندگی و فعالیت شغلی افراد ، سازمانها و موسسات شده است . امنیت اطلاعات یکی از مسائل مشترک شخصیت های حقوقی وحقیقی است . کاربران اینترنت در زمان استفاده از شبکه، اطلاعات حساس و مهمی را بدفعات ارسال و یا دریافت می دارند. اطمینان از عدم دستیابی افراد غیر مجاز به اطلاعات حساس از مهمترین چالش های امنیتی در رابطه با توزیع اطلاعات در اینترنت است . اطلاعات حساس که ما تمایلی به مشاهده آنان توسط دیگران نداریم ، موارد متعددی را شامل می شود. برخی از اینگونه اطلاعات بشرح زیر می باشند :

اطلاعات کارت اعتباری

شماره های عضویت در انحمن ها

اطلاعات خصوصی

جزئیات اطلاعات شخصی

اطلاعات حساس در یک سازمان

اطلاعات مربوط به حساب های بانکی

تاکنون برای امنیت اطلاعات بر روی کامپیوتر و یا اینترنت از روش های متعددی استفاده شده است . ساده ترین روش حفاظت از اطلاعات نگهداری اطلاعات حساس بر روی محیط های ذخیره سازی قابل انتقال نظیر فلاپی دیسک ها است . متداولترین روش حفاظت اطلاعات ، رمز نمودن آنها است . دستیابی به اطلاعات رمز شده برای افراد غیر مجاز امکان پذیر نبوده و صرفا” افرادیکه دارای کلید رمز می باشند ، قادر به باز نمودن رمز و استفاده از اطلاعات می باشند.

رمز نمودن اطلاعات کامپیوتر مبتنی بر علوم رمز نگاری است .استفاده از علم رمز نگاری دارای یک سابقه طولانی و تاریخی است . قبل از عصر اطلاعات ، بیشترین کاربران رمزنگاری اطلاعات ، دولت ها و مخصوصا” در موارد نظامی بوده است . سابقه رمز نمودن اطلاعات به دوران امپراطوری روم بر می گردد. امروزه اغلب روش ها و مدل های رمزنگاری اطلاعات در رابطه با کامپیوتر بخدمت گرفته می شود. کشف و تشخیص اطلاعاتی که بصورت معمولی در کامپیوتر ذخیره و فاقد هر گونه روش علمی رمزنگاری باشند ، براحتی و بدون نیاز به تخصصی خاص انجام خواهد یافت .

رمزنگاری کلید خصوصی(Private key)
منداولترين نوع رمزنگاری مبتنی بر کليد ، رمزنگاری “کليد خصوصی” است . به اين نوع رمزنگاری ، متقارن ، سنتی ، رمز مشترک ، کليد رمز ، نيز گفته می شود . در اين نوع رمزنگاری ، فرستنده و گيرنده از کليد استفاده شده به منظور رمزنگاری اطلاعات ، آگاهی دارند. رمزنگاری کليدخصوصی ، گزينه ای مناسب به منظور مبادله اطلاعات بر روی اينترنت و يا ذخيره سازی اطلاعات حساس در يک بانک اطلاعاتی ، ريجستری و يا يک فايل می باشد . از روش فوق ، به

منظورايمن سازی ارسال اطلاعات در شبکه های عمومی استفاده می گردد ( از گذشته تا کنون ) . ايده اوليه و اساسی در چنين سيستم هائی ، “اشتراک يک رمز” بوده و دو گروه شرکت کننده در مبادله اطلاعات ، بر روی يک “کليد رمزمشترک ” ، با يکديگر توافق می نمايند. بدين ترتيب امکان رمزنگاری و رمزگشائی پيام ها برای هر يک از آنان با توجه به آگاهی از “کليد رمز ” ، فراهم می گردد . شکل زير نحوه عملکرد رمزنگاری کليد خصوصی را نشان می دهد .

رمزنگاری متقارن و يا کليد خصوصی دارای چندين نقطه ضعف می باشد. مبادله کليدهای رمز در شبکه های بزرگ امری دشوار و مشکل است .علاوه بر اين ، اشتراک کليدهای رمز ، مستلزم اين واقعيت است که فرستندگان و گيرندگان می بايست معتبر بوده و قبل از برقراری ارتباط ، آشنائی لازم را نسبت به يکديگر داشته باشند( با تمام افراديکه قصد ارتباط ايمن با آنان وجود داشته باشد ) . همچنين ، اين نوع سيستم های رمزنگاری ، نيازمند استفاده از يک کانال ايمن به منظور توزيع کليدهای ” رمز” می باشند . در صورتيکه چنين کانال ايمنی وجود داشته باشد ، چرا از آن به منظور ارسال تمامی پيام رمز استفاده نشود ؟

درسيستم های مبتنی بر وب که دارای تعاملات گذرا و کاربران متعددی می باشند، به امکانات قدرتمندتری در ارتباط با رمزنگاری نياز خواهد بود.بنابراين ، رمزنگاری مبتنی بر کليد، عملا” به منظورايجاد يک ارتباط ايمن به تنهائی کافی نخواهد بود. توزيع و عرضه کليد ( يکی از مسائل مهم در ارتباط با مديريت کليد ) ، از جمله مسائل مهم و درعين حال موثر به منظور شناخت سيستم های رمزنگاری جديد می باشد. رمزنگاری کليد خصوصی دارای نقشی مهم در پروتکل SSL است( به همراه رمزنگاری کليد عمومی نامتقارن ) .

 

رمزنگاری کلید عمومی(public key)
رمزنگاری کليد عمومی و سيستم زيربنائی SSL از جمله ملزومات مورد نياز برای هر زيرساخت مطمئن در تجارت الکترونيکی می باشند. رمزنگاری ، فرآيندی است که در آن اطلاعات بگونه ای تبديل می گردند که برای تمامی افراد ( به غير از گيرندگان تائيد شده )، نامفهوم و عملا” غيرقابل استفاده باشند . در فرآيند فوق ، از فرمول های رياضی (الگوريتم های رمزنگاری ) و اعداد ( کليد ) ، به منظور رمزنگاری و رمزگشائی اطلاعات استفاده می گردد .

رمزنگاری کليد عمومی که از آن با نام رمزنگاری نامتقارن نيز ياد می گردد ، دارای يک تفاوت مهم با رمزنگاری کليد خصوصی است . رمزنگاری کليد عمومی از دو کليد متفاوت استفاده می نمايد : يک کليد برای رمزنگاری و کليدی ديگر برای رمزگشائی . در رمزنگاری کليد خصوصی ، فرض بر اين است که فرستنده و گيرنده دارای آگاهی لازم دررابطه با کليد استفاده شده در فرآيند رمزنگاری می باشند . در رمزنگاری کليد عمومی ، با استفاده از يک روش کاملا” ايمن يک کليد برای

ارسال کننده اطلاعات ايجاد و وی با استفاده از کليد فوق ، اقدام به رمزنگاری و ارسال پيام رمز شده برای گيرنده می نمايد . امکان رمزگشائی پيام رمز شده صرفا” توسط دريافت کننده ، امکان پذير خواهد بود. در رمزنگاری کليد عمومی ، سيستم يک زوج کليد خصوصی و عمومی ايجاد می نمايد . کليد عمومی برای شخصی که از آن به منظور رمزنگاری يک پيام استفاده می نمايد ، ارسال می گردد. وی پس از رمزنگاری پيام با استفاده از کليد عمومی که دراختيار دارد ، پيام رمز شده را ارسال می نمايد . دريافت کننده با استفاده از کليد خصوصی ، اقدام به رمزگشائی پيام می نمايد .( ماهيت کليد خصوصی استفاده شده در

رمزنگاری کليد عمومی ، مشابه کليد خصوصی استفاده شده در رمزنگاری کليد خصوصی نمی باشد ) .حتی اگر يک فرد مزاحم ، به کليد عمومی دستيابی پيدا نمايد وی نمی تواند با استفاده از آن اقدام به رمزگشائی پيام رمز شده نمايد ، چراکه رمزگشائی پيام ، صرفا” با استفاده از کليد خصوصی امکان پذير می باشد . برخلاف رمزنگاری کليد خصوصی ، کليد های استفاده شده در رمزنگاری کليد عمومی چيزی بمراتب بيشتر از رشته های ساده می باشند . کليد در اين نوع رمزنگاری دارای يک ساختار خاص با هشت فيلد اطلاعاتی است : از دو فيلد آن به منظور رمزنگاری با استفاده از کليد عمومی استفاده می گردد و شش فيلد ديگر به منظور رمزگشائی پيام با استفاده از کليد خصوصی مورد استفاده قرار می گيرد. در سيستم رمزنگاری کليد عمومی با توجه به عدم ضرورت مبادله رمز مشترک ، اولين مسئله در مديريت کليد برطرف می گردد. رمزنگاری کليد عمومی ، شامل مراحل زير است :

مرحله اول : وب سايت مورد نظر ، يک زوج کليد عمومی و خصوصی را ايجاد می نمايد .
مرحله دوم : وب سايت موردنظر ، کليد عمومی را برای کاربر ارسال می نمايد .
مرحله سوم : کاربر از کليد عمومی به منظور رمزنگاری داده مورد نظر خود استفاده می نمايد ( مثلا” شماره کارت اعتباری)

مرحله چهارم : کاربر پيام رمز شده ( در اين مثال عدد رمز شده ) را برای سرويس دهنده ارسال می نمايد .
مرحله پنجم : سرويس دهنده با استفاده از کليد خصوصی ، پيام رمز شده دريافتی را رمزگشائی می نمايد .

سيستم های مدرن رمزنگاری : يک رويکرد ترکيبی
در سيستم های جديد رمزنگاری از ترکيب رمرنگاری مبتنی بر کليد عمومی و کليد خصوصی ، استفاده می گردد. هر يک از روش های فوق دارای مزايای خاص خود بوده که با استفاده و ترکيب مزايای موجود در هر يک می توان يک مدل جديد رمزنگاری را ايجاد نمود. حجم عمليات محاسباتی در مدل رمزنگاری کليد عمومی بالا می باشد ( در مقايسه با مدل رمزنگاری کليد خصوصی ) . با توجه به سرعت مناسب مدل رمزنگاری کليد خصوصی ( متقارن ) در رابطه با حجم گسترده ای از اطلاعات ، در سيستم های رمزنگاری پيشرفته ، عموما” از مدل رمزنگاری کليد عمومی به منظور عرضه کليد استفاده شده و در ادامه از مدل رمزنگاری خصوصی به منظور رمزنگاری حجم بالائی از اطلاعات استفاده می گردد . از سيستم های پيشرفته رمزنگاری در پروتکل SSL و به منظور ايمن سازی تراکنش های وب و يا ايمن سازی مدل نامه های الکترونيکی نظير S/MIME که در محصولاتی نظير مرورگر نت اسکيپ و IE پيش بينی شده است ، استفاده می گردد .

 

مسئله مديريت کليد
در هر سيستم رمزنگاری ،مجموعه ای از مسائل عملی و سوالات مختلف در رابطه با وجود امنيت لازم ، ميزان اعتماد پذيری سيستم و رعايت حريم اطلاعات خصوصی ، مطرح می گردد. روش های رمزنگاری کليد عمومی و خصوصی که به آنان اشاره گرديد، دارای امکانات لازم به منظور پاسخگوئی وارائه اطمينان لازم در خصوص امنيت اطلاعات می باشند . مثلا” مرورگرهای وب از کليد عمومی يک وب سايت به منظور ارسال شماره کارت اعتباری برروی وب استفاده می نمايند . با روشی مشابه ، شخصی که به فايل ها و يا اطلاعات حفاظت شده و رمز شده دستيابی پيدا می نمايد ، می تواند با استفاده از يک کليد خصوصی ، اقدام به رمزگشائی آنان نمايد . در عمل ، هر يک از مسائل فوق ، نيازمند استفاده از يک کليد عمومی تضمين شده بوده که با استفاده از آن صحت عمليات رمزنگاری بين دو طرف درگير در فرآيند رمزنگاری تضمين و امکان دخالت افراد غير مجاز نيز سلب گردد . رويکرد فوق ، سوالات متنوع ديگری را ذهن ايجاد می نمايد :
• چگونه می توان اطمينان حاصل نمود که کليد عمومی استفاده شده توسط مرورگر به منظور ارسال اطلاعات کارت اعتباری ، همان کليد عمومی مورد نظر وب سايت دريافت کننده اطلاعات کارت اعتباری می باشد؟ ( کليد عمومی تقلبی نباشد ) .

• چگونه می توان با اطمينان اقدام به مبادله کليدهای عمومی خود برای متقاضيان نمود تا آنان با استفاده از آن اقدام به رمزنگاری و ارسال اطلاعات نمايند ؟
به منظور پاسخگوئی به اين نوع از سوالات و رفع نگرانی های موجود ، می بايست فرآيند نسبت دهی يک کليد عمومی ( يک ارتباط ايمن با يک کليد عمومی ، آغاز می گردد) به يک entity ( يک شی دلخواه که در يک تراکنش فعاليت دارد ) بصورت ايمن و مطمئن انجام شود ( Secure Binding ) .

تاریخچه SSL
Sslنخستین بار به ابتکار نت اسکیپ بوجود آمد.ssl توسط IETF برای پروتکل امنیت لایه انتقال پذیرفته شد.جامعه WAP پروتکل WTLS را برای تولید تجهیزات بیسیم پذیرفت.اگرچه اختلافاتی اندک میان این پروتکل ها وجود دارد،اما در اصل همه آنها یک سرویس امنیتی را فراهم می آورند و آن ایجاد یک کانال ارتباطی ایمن میان سرویس دهنده و کاربر است.دست آورد پروتکل SSL/TLS/WTLS این است که به سادگی پروتکل های ارتبای دیگر مانند http را نیز بکار میگیرد.

نخستین نسخه عمومی SSL (نگارش ۲) دارای عیب ها و کاستی های امنیتی بودکه در نگارش ۳ برطرف گردید.از آنجا که امروزه مرورگرها هنوز ازنگارش ۲ پشتیبانی می کنند،در این بخش به کوتاهی مشکلات امنیتی آن برشمرده میشود.SSL برای رمزگذاری و رمزگشایی کلیدهای امنیتی همانندی را بکار می برد،این بدان معناست که در حالت خروجی از امنیت MAC کاسته می شود.نگارش ۲ یک ساختار MAC ضعیف دارد و سراسر متکی به توابع رمزکننده MD است.نگارش دوم SSL هیچگونه حفاظتی برای “توافق” ندارد،بنابراین ممکن است داده ارسالی مورد هجوم و دستبرد قرار گیرد و ارسال داده قطع گردد.سرانجام روشن نیست که آیا داده بطور کامل ارسال شده است یا نه؟

گروه کاری”IETF TLS”نگارش SSL 3 را که برای بالا بردن امنیت تغییراتی اندک را در نگارش ۲ داده پذیرفته است.
WTLS کاربرد رمزنگار بیضی شکل (پردازش و حافظه محدود) را بطور پیش فرض در بر دارد.WTLS همچنین بر لایه بالایی روندنمای اتصال بر لایه مخابراتی (قابل مقایسه با UDP وTCP در اینترنت) کار می کند.وسرانجام پروتکل WTLS فرمت گواهینامه خود را از نظر اندازه – در پهنای باند محدود – تعریف و بهینه میسازد،اما گواهینامه رایج X.509 را نیز پشتیبانی میکند.

SSL چیست؟
Secure socket layer, یا همان SSL یک تکنولوژی استاندارد و به ثبت رسیده برای تامین ارتباطی امن مابین یک وب سرور و یک مرورگر اینترنت است . این ارتباط امن از تمامی اطلاعاتی که ما بین وب سرور و مرورگر اینترنت ( کاربر) انتقال میابد , محافظت میکند تا در این انتقال به صورت محرمانه و دست نخورده باقی بماند . SSL یک استاندارد صنعتی است و توسط ملیونها وب سایت در سراسر جهان برای برقراری امنتیت انتقال اطلاعات استفاده میشود . برای اینکه یک وب سایت بتواند ارتباطی امن از نوع SSL را داشته باشد نیاز به یک گواهینامه SSL دارد .

زمانیکه شما میخواهید SSL را بر روی سرور خود فعال کنید سؤالات متعددی در مورد هویت سایت شما ( مانند آدرس سایت ) و همین طور هویت شرکت شما ( مانند نام شرکت و محل آن) از شما پرسیده میشود . آنگاه سرور دو کلید رمز را برای شما تولید میکند , یک کلید خصوصی (private key) و یک کلید عمومی (public key) . کلید خصوصی به این خاطر , این نام را گرفته است , چون بایستی کاملا محرمانه و دور از دسترس دیگران قرارگیرد . اما در مقابل نیازی به حفاظت از کلید عمومی نیست و این کلید در قالب یک فایل درخواست گواهینامه یا certificate signing request که به اختصار آنرا csr مینامیم قرارداده میشود که حاوی مشخصات سرور و شرکت شما بصورت رمز است . آنگاه شما باسیتی که این کد csr را برای صادرکننده گواهینامه ارسال کنید . در طول مراحل سفارش یک SSL مرکز صدور گواهینامه درستی اطلاعات وارد شده توسط شما را بررسی و تایید میکند و سپس یک گواهینامه SSL برای شما تولید کرده و ارسال میکند .
وب سرور شما گواهینامه SSL صادر شده را با کلید خصوصیتان در سرور و بدور از دسترس سایرین مطابقت میدهد . سرور شما آنگاه امکان برقراری ارتباط امن را با کاربران خود در هر نقطه دارد .

نمایش قفل امنیت SSL
پیچیده گیهای یک پروتکل SSL برای کاربران شما پوشیده است لیکن مرورگر اینترنت آنها در صورت برقراری ارتباط امن , وجود این ارتباط را توسط نمایش یک قفل کوچک در پایین صفحه متذکر میشود .

و در هنگامی که شما روی قفل کوچک زرد رنگی که در پایین صفحه IE نمایش داده میشود دوبار کلیک میکنید باعث نمایش گواهینامه شما به همراه سایر جزئیات می شود .

گواهینامه های SSL تنها برای شرکتها و اشخاص حقیقی معتبر صادر میشوند . به طور مثال یک گواهینامه SSL شامل اطلاعاتی در مورد دامین , شرکت , آدرس , شهر , استان , کشور و تاریخ ابطال گواهینامه و همینطور اطلاعاتی در مورد مرکز صدور گواهینامه که مسؤول صدور گواهینامه میباشد .
زمانیکه یک مرورگر اینترنت به یک سایت از طریق ارتباط امن متصل میشود , علاوه بر دریافت گواهینامه SSL ( کلید عمومی) , پارامترهایی را نظیر تاریخ ابطال گواهینامه , معتبر بودن صادرکننده گواهینامه و مجاز بودن سایت به استفاده از این گواهینامه نیز بررسی میکند و هرکدام از موارد که مورد تایید نباشد به صورت یک پیغام اخطار به کاربر اعلام میدارد .

 

چند نمونه از پروتکل های رمزنگاری انتقال
پروتکلهای رمزنگاری انتقال با ترکیب تواناییها برای تایید هویت توسط رمزنگاری متقارن و نامتقارن برای ممکن ساختن ارتباطات تاییدشده و رمزشده، این پروتکلها پایههای امنیت را فراهم میکنند. تقربیاً تمام پروتکلها نیازهای جامعیت را پشتیبانی میکنند به طوری که محتویات ارتباطات نمیتوانند تغییر یابند، اما بیشتر آنها از Non-Repudiation پشتیبانی نمیکنند و به این ترتیب امکان ایجاد رکوردهای پایداری را که هویت منبع را به محتوای پیام پیوند میدهند، ندارند.
به این چند پروتکل به طور مختصر اشاره میشود:
SSL
تکنولوژی SSL (Secure Socket Layer) اساس World Wide Web امن را تشکیل میدهد. SSL که در مرورگرهای وب کاملاً جاافتاده است، توسط بسیاری از سازمانها برای رمزنگاری تراکنشهای وبی خود و انتقال فایل استفاده میشود. بعلاوه SSL بصورت روزافزون بعنوان یک مکانیسم امنیت در تلاقی با پروتکلهای پرشمار دیگر استفاده میشود و بهمین ترتیب ابزاری برای ارتباط سروربهسرور امن است. SSL ارتباطات رمزشده و بشکل آغازین خود تایید هویت سرور از طریق استفاده از گواهی را (در حالت کلاینتبهسرور) پشتیبانی میکند. کاربران اغلب برای استفاده از برنامهها از طریق کلمه عبور تایید هویت میشوند، و با پیشرفت SSL استاندارد (مثلا SSL V.3.0) تایید هویت کلاینت از طریق گواهی به این پروتکل اضافه شده است.

*برای FT (انتقال فایل): ابزار FT اغلب از SSL برای انتقال فایل در یکی از دو حالت استفاده میکنند. اولی، مد کلاینتبهسرور است که کاربر را قادر میسازد، در حالیکه در حال استفاده از یک مرورگر وب استاندارد است مستندات را از یک سرور دریافت یا آنها را به سرور منتقل کند. که این قابلیت نیاز به نرمافزار مختص انتقال در کلاینت را برطرف میسازد و بسیار راحت است، اما اغلب فاقد بعضی ویژگیهای پیشرفته مانند نقاط آغاز مجدد و انتقالهای زمانبندیشده است که سازمانها نیاز دارند. SSL همچنین میتواند برای اتصالات سروربهسرور امن – برای مثال، در اتصال با FTP و سایر پروتکلها – مورد استفاده قرار گیرد.
TLS
TLS (Transport Layer Security)، جانشین SSL، برپایه SSL3.0 بنا شده است، اما به کاربران یک انتخاب کلید عمومی و الگوریتمهای Hashing میدهد. (الگوریتمهای Hashing فانکشنهای یکطرفهای برای حفظ جامعیت پیامها هستند و توسط بیشتر پروتکلها استفاده میشوند.) اگرچه TLS و SSL تعامل ندارند، اما چنانچه یکی از طرفین ارتباط TLS را پشتیبانی نکند، ارتباط با پروتکل SSL3.0 برقرار خواهد شد. بیشتر مزایا و معایب SSL به TLS هم منتقل میشود، و معمولا وجه تمایز خاصی وجود ندارد، و از همه نسخهها به عنوان SSL یاد میشود.

S/MIME

S/MIME ( Secure Multipurpose Internet Mail Extention) که اختصاصاً برای پیامرسانی ذخیره-و-ارسال طراحی شده است، بعنوان استاندارد امنیت ایمیل برتر شناخته شده است. مانند بیشتر پروتکلهای رمزنگاری (مثلا SSL ، TLS و IPSec)، S/MIME با رمزنگاری تنها سروکار ندارد. بهرحال، علاوه بر تصدیق هویت کاربران و ایمنسازی جامعیت پیامها (برای مثال مانند آنچه SSL انجام میدهد)، S/MIME توسط امضای دیجیتال، رکوردهای پایداری از صحت پیامها ایجاد میکند (ضمانت هویت فرستنده چنانچه به محتوای پیام مشخصی مرتبط شده). این عمل باعث میشود فرستنده پیام نتواند ارسال آنرا انکار کند.

*برای FT :
سیستمهای ایمیل رمزشده (با استفاده از S/MIME) میتوانند برای ارسال فایلهای کوچک استفاده شوند (محدودیت حجم فایل بخاطر داشتن محدودیت حجم فایل در بیشتر سرورهای ایمیل است)، ولی S/MIME کلاً میتواند برای انتقال فایلهای بزرگتر توسط پروتکلهای انتقال فایل استفاده شود.

SSH
SSH (Secure Shell) هم یک برنامه و یک پروتکل شبکه بمنظور وارد شدن و اجرای فرمانهایی در یک کامپیوتر دیگر است. به این منظور ایجاد شد تا یک جایگزین رمزشده امن برای دسترسیهای ناامن به کامپیوترهای دیگر مثلا rlogin یا telnet باشد. نسخه بعدی این پروتکل تحت نام SSH2 با قابلیتهایی برای انتقال فایل رمزشده از طریق لینکهای SSH منتشر شد.
*برای FT :

SSH می تواند برای پشتیبانی انتقال فایل رمزشده (به شکل SFTP) استفاده شود اما طبیعت خط فرمان بودن آن به این معنی است که بیشتر توسط مدیران سیستمها برای ارسال درون سازمان استفاده میشود تا برای انتقال فایل تجاری. بعلاوه استفاده از SSH نیاز به نرمافزار یا سیستم عاملهای سازگار با SSH در دو طرف اتصال دارد، که به این ترتیب SSH برای سروربهسرور انجام میگیرد.

پروتکل SSL
پروتکل SSL ، توسط نت اسکيپ و با هدف مبادله ايمن اطلاعات بر روی اينترنت پياده سازی گرديده است . پس از گذشت مدت زمانی اندک ، پروتکل SSL به عنوان استانداردی در جهت تائيد وب سايت ها برای کاربران و سرويس دهندگان وب و به منظور مبادله اطلاعات رمز شده بين آنان ، مطرح گرديد . گواهينامه های سرويس دهنده از طريق مراکز صدور گواهينامه ها ( CA ) برای سازمان ها ، افراد و وب سايت ها ، صادر می گردد . مراکزصدور گواهينامه ها ، از روش های متفاوتی به منظور بررسی و حصول اطمينان از معتبر بودن گواهينامه کاربران ، استفاده می نمايند . گواهينامه ديجيتال SSL مربوط به مراکز معتبر صدور

گواهينامه ، در تمامی مرورگرها ( نظير مرورگر وب مايکروسافت و مرورگر نت اسکيپ ) و سرويس دهندگان وب اصلی ، پيش بينی شده است. بدين ترتيب ، با نصب يک گواهينامه ديجيتال بر روی يک سرويس دهنده وب ، امکان استفاده از قابليت های SSL در زمان مبادله اطلاعات با مرورگرهای وب ، فراهم می گردد.گواهينامه های سرويس دهنده SSL به منظور برقراری يک ارتباط ايمن دو عمليات اساسی زير را انجام می دهند :

• SSL server Authentication ، گواهينامه های سرويس دهنده امکان شناسائی يک سرويس دهنده وب را برای کاربران فراهم می نمايند. مرورگرهای وب به صورت اتوماتيک ، بررسی لازم در خصوص اعتبار يک گواهينامه سرويس دهنده ، شناسه عمومی و صدور آن توسط يک مرکز صدور گواهينامه (CA ) معتبر را انجام می دهند.تائيد سرويس دهنده SSL ، امری حياتی برای ايمن سازی تراکنش های تجارت الکترونيکی بوده که در آن هر يک از کاربران شماره کارت اعتباری خود را بر روی وب ارسال و تمايل دارند در ابتدا بررسی لازم در خصوص هويت سرويس دهنده دريافت کننده را انجام دهند .

• Encryption SSL، گواهينامه های سرويس دهنده يک کانال ايمن به منظور مبادله اطلاعات بين مرورگر کاربر و يک سرويس دهنده وب را با استفاده از ارسال نرم افزار و رمزگشائی توسط نرم افزار دريافت کننده و حفاظت اطلاعات خصوصی در مقابل ره گيری اطلاعات برروی اينترنت را ارائه می نمايند. علاوه بر اين ، تمامی داده ارسالی از طريق يک ارتباط رمز شده SSL با استفاده از مکانيزم های لازم به منظور عدم دستکاری اطلاعات ، حفاظت می گردد. بدين ترتيب ، کاربران اطمينان لازم به منظور ارسال اطلاعات خصوصی و محرمانه خود را برای يک وب سايت پيدا می نمايند.

 

نحوه عملکرد گواهینامه های سرویس دهنده SSL
شناسه های سرويس دهنده (Server IDs) ، از مزايای SSL به منظور ارائه يک ارتباط ايمن بين وب سايت ها و مرورگرهای وب کاربران استفاده می نمايند. پروتکل SSL از ترکيب مدل رمزنگاری کليد عمومی و رمزنگاری سريع متقارن، استفاده می نمايد .فرآيند ايجاد يک ارتباط ايمن با برقراری يک SSL Handshake ، آغاز می گردد.در اين راستا ، سرويس دهنده خود را برای مرورگر کاربر تائيد نموده و در ادامه به سرويس دهنده و سرويس گيرنده اجازه داده می شود که با همکاری يکديگر کليدهای خصوصی لازم به منظور استفاده در رمزنگاری ، رمزگشائی و تشخيص عدم دستکاری داده را ايجاد نمايند .

• سرويس گيرنده با يک سايت و به منظور دستيابی به يک URL ايمن ( يک URL که با https در مقابل http شروع شده است) ، ارتباط برقرار می نمايد . صفحه ايمن درخواستی ، می تواند يک فرم خريد Online باشد که در آن اطلاعات خصوصی کاربران، نظير : آدرس ، شماره تلفن و شماره کارت اعتباری اخذ می گردد.
• مرورگر سرويس گيرنده بصورت اتوماتيک شماره نسخه SSL مرورگر ، تنظيمات رمز، داده توليد شده بصورت تصادفی و ساير اطلاعات مورد نياز به منظور برقراری يک ارتباط ايمن را برای سرويس دهنده ارسال می نمايد.

• سرويس دهنده بصورت اتوماتيک پاسخ لازم را در اين رابطه داده و گواهيينامه ديجيتال ، شماره نسخه SSL سرويس دهنده ، تنظيمات رمز و ساير موارد مورد نياز را برای مرورگر سرويس گيرنده ،ارسال می نمايد .
• مرورگر سرويس گيرنده بررسی لازم در خصوص اطلاعات موجود در گواهينامه سرويس دهنده را انجام می دهد :
– آيا گواهينامه سرويس دهنده و تاريخ آن معتبر می باشند ؟
– آيا مرکزی که گواهينامه را صادر نموده است ، يکی از مراکز صدورمعتبری است که گواهينامه آنان به همراه مرورگر ارائه شده است ؟
– آيا کليد عمومی مرکز صادرکننده گواهينامه ( ايجاد شده درون مرورگر ) ، معتبر بودن امضای ديجيتالی صادر کننده را تائيد می نمايد ؟
– آيا نام Domain مشخص شده توسط گواهينامه ديجيتال با نام واقعی Domain سرويس دهنده ، مطابقت می نمايد ؟
در صورتی که ، سرويس دهنده تائيد نگردد به کاربر اعلام می گردد که امکان برقراری يک ارتباط رمزشده و مطمئن وجود ندارد .
• در صورتی که سرويس دهنده بصورت موفقيت آميز تائيد گردد ، مرورگر سرويس دهنده يک “session key ” منحصربفرد را به منظور رمزنگاری تمامی اطلاعات مبادله شده با سرويس دهنده با استفاده از مدل رمزنگاری کليد عمومی ، ايجاد می نمايد .
• مرورگر سرويس گيرنده ، session key را با استفاده از کليد عمومی سرويس دهنده ( وب سايت مورد نظر ) ، رمز و آن را برای سرويس دهنده ارسال می نمايد. بدين ترتيب ، صرفا” سرويس دهنده قادر به خواندن session key ، خواهد بود .
• سرويس دهنده با استفاده از کليد خصوصی مربوط به خود ، اقدام به رمزگشائی session key می نمايد .
• مرورگر سرويس گيرنده در ادامه پيامی را برای سرويس دهنده ارسال و به وی اعلام می نمايد که پيام های آتی خود را با استفاده از session key رمز و ارسال می نمايد .
• سرويس دهنده در ادامه ، پيامی را برای سرويس گيرنده ارسال و به وی اعلام می نمايد که پيام های آتی خود را با استفاده از session key رمز و ارسال می نمايد .
• با اتمام مراحل فوق ، يک ارتباط ايمن مبتنی بر SSL بين سرويس گيرنده و سرويس دهنده برقرار می گردد . در ادامه پروتکل SSL به منظور رمزنگاری و رمزگشائی پيام ها از مدل رمزنگاری متقارن که بمراتب سريعتر نسبت به رمزنگاری کليد عمومی می باشد ، استفاده می نمايد .
• پس از اتمام ارتباط بين سرويس دهنده و سرويس گيرنده ، session key حذف می گردد .
مراحل فوق در زمان بسيار کوتاهی ( چندين ثانيه ) انجام و کاربران در اين رابطه ضرورتی به انجام عملياتی خاص نخواهند داشت . مرورگرهای نت اسکيپ و IE ، دارای مکانيزم های امنيتی از قبل تعبيه شده ای به منظوريشگيری در خصوص ارسال ناخواسته اطلاعات شخصی می باشند. در صورتی که کاربری قصد ارسال اطلاعات برای يک سايت غيرايمن ( سايتی که دارای يک گواهينامه سرويس دهنده SSL نمی باشد ) را داشته باشد ، مرورگر يک پيام هشداردهنده را نمايش خواهند داد .

در صورتی که ، کاربران شماره کارت اعتباری و ساير اطلاعات خود را برای سايتی ارسال نمايند که دارای يک گواهينامه سرويس دهنده معتبر و يک ارتباط SSL می باشد ، پيام نمايش داده نمی شود . عليرغم اعتبار ارتباط ايمن ايجاد شده ، کاربران می توانند با توجه به نکات زير اطمينان لازم در خصوص ايمن بودن ارتباط برقرار شده با يک وب سايت را پيدا نمايند:
• URL مشخص شده در پنجره مرورگر با https در مقابل http آغاز می گردد .
• درمرورگر IE ، يک آيکون Podlock ، در قسمت پائين پنجره نمايش داده میشود.

انواع SSL ( چهل بيتی و يکصدوبيست و هشت بيتی )
پروتکل SSL به دو صورت ۴۰ و ۱۲۸ بيتی که به طولKey session توليد شده بستگی دارد ، ارائه شده است . هر اندازه طول کليد بيشتر باشد ، امکان شکستن رمز مشکل تر خواهد بود . رمزنگاری SSL از نوع ۱۲۸ بيتی ، قويترين نوع رمزنگاری بوده که با استفاده از تکنولوژی های موجود به ميلياردها سال زمان برای شکستن رمز آن نياز خواهد بود. قدرت رمزنگاری ۱۲۸ بيتی تقريبا” ۲۶ ۱۰ * ۳ مرتبه قويتر از رمزنگاری ۴۰ بيتی SSL است. مرورگرهای IE و نت اسکيپ ، سطوح متفاوتی از رمزنگاری را بر اساس نوع گواهينامه سرويس دهنده SSL ارائه می نمايند ( گواهينامه های سرويس دهنده SSL از نوع ۴۰ بيتی ، گواهينامه های سرويس دهنده SSL از نوع ۱۲۸ بيتی ) .

در رمان ايجاد يک مشخصه سرويس دهنده ( Server ID ) و به منظور استفاده از رمزنگاری ۱۲۸ بيتی می بايست کليد خصوصی به درستی ايجاد گردد. در صورتی که کليد خصوصوصی ۱۰۲۴ بيتی انتخاب گردد ، امکان رمزنگاری ۱۲۸ بيتی و در صورتيکه کليد خصوصی ۵۱۲ بيتی در نظر گرفته شود، صرفا” امکان رمزنگاری ۴۰ بيتی وجود خواهد داشت . نوع کليد خصوصی در زمان ايجاد يک Certificate Signing request CRc) ) به همراه سرويس دهنده وب ، مشخص می گردد .

 

مراحل لازم به منظور استفاده از SSL در برنامه های وب
به منظور استفاده از SSL در برنامه های وب ، می بايست مراحل زير را دنبال نمود :
• ايجاد يک درخواست گواهينامه از طريق IIS
• درخواست يک گواهينامه از يک مرکز صدور گواهينامه ( CA )

• نصب گواهينامه بر روی سرويس دهنده با استفاده از IIS
• نصب گواهينامه بر روی مرورگر در صورتيکه از يک گواهينامه تستی استفاده می گردد.
• استفاده از پروتکل ايمن https ، در زمان دستيابی به صفحات ايمن در برنامه وب
در ادامه به تشريح هر يک از مراحل فوق ، خواهيم پرداخت .

ايجاد يک درخواست گواهينامه ( ( Certificate Signing Request (CSR)
به منظور درخواست گواهينامه از يک مرکز صدور گواهينامه، می بايست در ابتدا درخواست يک گواهينامه توسط IIS ، ايجاد گردد . درخواست فوق ، شامل اطلاعات رمزشده در رابطه با سرويس دهنده مورد نظر شما بوده که مرکز صدور گواهينامه از آن به منظور تشخيص هويت وشناسائی سرويس دهنده بر روی اينترنت استفاده می نمايد . برای ايجاد يک درخواست گواهينامه مراحل زير را در IIS ، دنبال می نمائيم :
• مرحله اول : انتخاب وب سايت پيش فرص در IIS و گزينه Properties از طريق منوی Action . در ادامه IIS ، جعبه محاوره ای سايت پيش فرض را نمايش خواهد داد .

• مرحله دوم : انتخاب ( کليک ) Directory Security Tab و فعال نمودن گزينه Server Certificates . ويزارد مربوطه در ادامه توسط IIS فعال می گردد.

• مرحله سوم : پس از دنبال نمودن ويزارد و اتمام مراحل مربوطه ، IIS يک فايل Text رمزشده با انشعاب cer . را ايجاد می نمايد . فايل فوق ، درخواست مربوط به يک گواهنيامه بوده که می بايست به مرکز صدور گواهينامه ارسال گردد.
در ابتدا می بايست گواهينامه در ريشه سرويس دهنده ايجاد گردد.( قبل از اين که IIS ، قادر به برقراری يک ارتباط ايمن گردد) . پس از نصب يک گواهينامه سرويس دهنده در سطح ريشه ، می توان پردازش فوق را برای سايت های زيرمجموعه تکرار نمود( در صورتی که لازم است برای هر يک از سايت ها از يک گواهينامه جداگانه ، استفاده گردد ) .

درخواست يک گواهينامه
فرآيند درخواست يک گواهينامه سرويس دهنده از يک مرکز صدور گواهينامه با توجه به مرکز انتخاب شده ، متفاوت می باشد .برای درخواست يک گواهينامه ، مراحل زير را دنبال می نمائيم :
• مرحله اول : ملاقات وب سايت مرکز صدور گواهينامه و درخواست يک گواهينامه سرويس دهنده برای SSL . ( در اين رابطه گزينه ها ی متعددی بر اساس سطح امنيت وجود دارد ) .

• مرحله دوم : انتخاب نوع گواهينامه سرويس دهنده مورد نظر و تکميل فرم اطلاعاتی مربوطه .
• مرحله سوم : کپی و يا ارسال درخواست گواهينامه ايجاد شده در مرحله “ايجاد يک درخواست گواهينامه” توسط نامه الکترونيکی
پس از انجام عمليات فوق ، می بايست در انتظار تائيد اطلاعات ارسالی و صدور گواهينامه توسط مرکز صدور گواهينامه ماند . پس از تائيد ، مرکز صدور گواهنيامه اقدام به ارسال گواهينامه سرويس دهنده می نمايد. ( معمولا” از طريق يک نامه الکترونيکی ) . گواهينامه صادر شده را در يک فايل متنی و با انشعاب cer. ، ذخيره می نمائيم ( استفاده از عمليات Copy&Paste در ويرايشگر notpad )

نصب گواهينامه
پس از ذخيره گواهينامه سرويس دهنده ، می توان در ادامه آن را در IIS نصب تا امکان استفاده از پروتکل SSL در برنامه ها ی وب ، فراهم گردد . به منظور نصب يک گواهينامه سرويس دهنده ، مراحل زير را دنبال می نمائيم :
• مرحله اول : انتخاب وب سايت پيش فرص در IIS و گزينه Properties از طريق منوی Action . در ادامه IIS ، جعبه محاوره ای سايت پيش فرض را نمايش خواهد داد .

• مرحله دوم : انتخاب ( کليک ) Directory Security Tab و فعال نمودن گزينه Server Certificates . ويزارد مربوطه در ادامه توسط IIS فعال می گردد.
• مرحله سوم : دکمه Next را فعال و گزينه … Prosecc The Pending Request And را انتخاب می نمائيم .
• مرحله چهارم : دکمه Next را فعال نموده و در ادامه نام فايل حاوی گواهينامه را وارد می نمائيم ( فايل فوق ، فايلی است که در مرحله ” درخواست يک گواهينامه ” ايجاد شده است )
• مرحله پنجم : با فعال نمودن دکمه Next

و در ادامه Finish ، عمليات نصب گواهينامه به اتمام می رسد .
استفاده از ارتباط ايمن
پس از نصب گواهينامه سرويس دهنده ، ارتباط ايمن فعال ومی توان با استفاده از پروتکل https ، درخواست يک صفحه ايمن را نمود.
ارتباط ايمن تا زمان معرفی يک سايت غيرايمن ، همچنان وجود خواهد داشت . به منظور اتمام ارتباط ايمن ، می بايست از پروتکل http ، در URL مربوطه استفاده نمود .

با استفاده از IIS می توان ارتباط ايمن را برای فولدرها و يا فايل ها

ی خاصی در يک برنامه وب ،ايجاد نمود. به منظور ايجاد يک ارتباط ايمن برای يک صفحه خاص با استفاده از IIS ، مراحل زير را دنبال می نمائيم .
• مرحله اول : انتخاب فولدر و يا فايل مورد نظری که نيازمند استفاده از يک ارتباط ايمن می باشد .با انتخاب گزينه Properties از طريق منوی Action ، جعبه محاوره ای Properties نمايش داده می شود.
• مرحله دوم : انتخاب ( کليک ) Directory Security Tab و فعال نمودن گزينه Secure Communication . در ادامه IIS ، جعبه محاوره ای Secure Communication را نمايش خواهد داد.

• مرحله سوم : گزينه Require Secure Channel ( (SSL را انتخاب و در ادامه دکمه OK را فعال می نمائيم .
زمانی که نحوه دستيابی به يک صفحه توسط يک ارتباط ايمن مشخص می گردد، امکان مشاهده صفحه فوق با استفاده از پروتکل http وجود نخواهد داشت .

یک گواهینامه چیست؟
گواهینامه دیجیتال ،رکوردی منحصربفرد مشتمل بر اطلاعاتی ضروری به منظور بررسی هویت یک فرد و یا یک سازمان می باشد . گواهینامه های دیجیتال از فرمت استاندارد X.509 تبعیت می نمایند . استاندارد فوق ، برخی از ملزومات موردنیاز گواهینامه را تشریح می نماید : فرمت نسخه استفاده شده توسط گواهینامه ، شماره سریال گواهینامه ، شناسه الگوریتم استفاده شده به منظور تائید گواهینامه ،مرکز صادرکننده گواهینامه ، تاریخ صدور و سررسید اعتبار گواهینامه ، مشخصات صاحب گواهینامه ، کلید عمومی صاحب گواهینامه ، امضای دیجیتال مرکز صادر کننده گواهینامه .