مقالات سایت نیوشا    

  منبع :   sakha ravesh.co
  گروه مقاله :     وب
  تاریخ ثبت در سایت :    يک شنبه ٢٢ شهريور ١٣٨٨
 
 

ايجاد يک ارتباط ايمن در برنامه های وب (بخش چهارم)

آنچه تاکنون گفته شده است :
- بخش اول : ضرورت وجود یک ارتباط ایمن بین سرویس گیرنده و سرویس دهنده
- بخش دوم : بررسی امضای دیجیتال و گواهینامه های دیجیتالی
- بخش سوم : بررسی پارامترهای لازم به منظور انتقال اطلاعات حساس در یک شبکه

در بخش چهارم  اين مقاله به بررسی پروتکل  SSL ، خواهيم پرداخت.
مبادله اطلاعات در اينترنت مبتنی بر پروتکل TCP/IP بوده که در آن از پروتکل های متعددی نظير HTTP (Hypertext Transfer Protocol )،  Telnet و( FTP(File Transfer Protocol ،  استفاده می گردد . پروتکل های فوق ، گزينه مناسبی برای ايجاد يک ارتباط ايمن نمی باشند ، چراکه مبادله اطلاعات به صورت Plaintext انجام می شود . اطلاعات محرمانه و يا حساسی که با استفاده از اينچنين پروتکل هائی منتقل می گردد ، بسادگی قابل ره گيری و خواندن بوده و در اين رابطه لازم است ،اطلاعات ارسالی با استفاده از روش های متفاوت رمزنگاری ، رمز گردند. سرويس گيرندگان  وب ، درخواست های خود را با استفاده از پروتکل HTTP برای سرويس دهندگان وب ارسال می نمايد . مبادله اطلاعات با استفاده از پروتکل فوق و با توجه به ماهيت آن ، چالش های امنيتی خاصی را برای سرويس دهندگان و سرويس گيرندگان به دنبال خواهد داشت . سرويس دهندگان  وبی که صرفا" از استاندارد HTTP به منظور ارتباط با سرويس گيرندگان استفاده می نمايند ، اهداف مناسبی برای حملاتی از نوع ( DoS (Denial-of-Service  و ساير حملاتی از اين نوع می باشند. علاوه براين ، سرويس دهندگانی اينچنين، اهداف مناسبی برای سرويس دهندگان وب تائيد نشده محسوب خواهند شد. . اين نوع سرويس دهندگان ، وب سايت هائی می باشند که خود را به عنوان يک سايت مثبت وانمود کرده و نرم افزارهائی شامل ويروس های کامپيوتری و يا اسکريپت های مخرب را بر روی سايت مستقر تا کاربران با دريافت و نصب آنان ، دچار مشکلات امنيتی گردند.
پروتکل های ارتباطی ايمن وب ، روشی به منظور تائيد سرويس گيرندگان و سرويس دهندگان بر روی وب وحفاظت لازم درخصوص محرمانگی ارتباط بين سرويس گيرندگان و سرويس دهندگان را ارائه می نمايند. تاکنون استانداردهای ارتباطی ايمن متعددی با استفاده از تکنولوژی رمزنگاری کليد عمومی ، پياده سازی شده است. پروتکل های Secure Hypertext Transfer ProtocolSHTTP  ، ( IP SecurityIPSec) و PPTP نمونه هائی در اين زمينه می باشند . پروتکل ( SSL (  Secure Socket Layer  ، پيشگام تمامی پروتکل های ايمن ارتباطی بوده که در ابعاد گسترده ای به منظور ارائه کانال ايمن ارتباطی و مبادله اطلاعات حساس و محرمانه بر روی وب ، استفاده می گردد .
در پروتکل SSL از مدل رمزنگاری کليد عمومی به عنوان زيرساخت اوليه و در جهت ارائه يک ارتباط ايمن در شبکه استفاده می شود.گواهينامه های سرويس دهنده ، که از آنان  با نام Server IDs نيز نام برده می شود،به سرويس دهندگان امکان استفاده از يک پروتکل ايمن ارتباطی نظير SSL را داده و همچنين ، امکان شناسائی سرويس دهنده و يا وب سايت مربوطه نيز برای کاربران و قبل از ارسال اطلاعات محرمانه ، فراهم می گردد . لازم است به اين موضوع مجددا" اشاره  گردد که وجود يک کانال ارتباطی ايمن يکی از مهمترين عوامل در ارتباط با گسترش تجارت الکترونيکی محسوب می گردد. حصول اطمينان از وجود يک ارتباط ايمن بين خريداران ( سرويس گيرندگان ) و  ارائه دهندگان کالا و يا خدمات  (سرويس دهندگان )  از مهمترين عوامل موفقيت در برپاسازی يک سايت  تجارت الکترونيکی است . نقش و جايگاه پروتکل SSL در اين نوع سايت ها بسيار حياتی و تعيين کننده است . در ادامه با اين پروتکل بيشتر آشنا می شويم .

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

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

  • SSL Encryption  ، گواهينامه های سرويس دهنده  يک کانال ايمن به منظور مبادله اطلاعات بين مرورگر کاربر و يک سرويس دهنده وب را با استفاده از ارسال نرم افزار و رمزگشائی توسط نرم افزار دريافت کننده و حفاظت اطلاعات خصوصی در مقابل ره گيری اطلاعات برروی اينترنت را ارائه می نمايند. علاوه بر اين ، تمامی داده ارسالی از طريق يک ارتباط رمز شده 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 به دو صورت 40 و 128 بيتی که به طول session key توليد شده بستگی دارد ، ارائه شده است . هر اندازه طول کليد بيشتر باشد ، امکان شکستن رمز مشکل تر خواهد بود . رمزنگاری SSL  از نوع 128 بيتی ، قويترين نوع رمزنگاری بوده که با استفاده از تکنولوژی های موجود به ميلياردها سال زمان برای شکستن رمز آن نياز خواهد بود. قدرت رمزنگاری 128 بيتی تقريبا"  26 10 * 3 مرتبه قويتر از رمزنگاری 40 بيتی SSL است. مرورگرهای IE و نت اسکيپ ، سطوح متفاوتی از رمزنگاری را بر اساس نوع گواهينامه سرويس دهنده SSL ارائه می نمايند (  گواهينامه های سرويس دهنده SSL از نوع 40 بيتی ، گواهينامه های سرويس دهنده SSL  از نوع 128 بيتی ) .
در رمان ايجاد يک مشخصه سرويس دهنده ( Server ID ) و به منظور استفاده از رمزنگاری 128 بيتی می بايست کليد خصوصی به درستی ايجاد گردد. در صورتی که کليد خصوصوصی 1024 بيتی انتخاب گردد ، امکان رمزنگاری 128 بيتی و در صورتيکه کليد خصوصی 512 بيتی در نظر گرفته شود، صرفا" امکان رمزنگاری 40 بيتی وجود خواهد داشت . نوع کليد خصوصی در زمان ايجاد يک  CSR) Certificate Signing Request ) به همراه سرويس دهنده وب ، مشخص می گردد .
در بخش پایانی اين مقاله به بررسی مراحل لازم به منظور استفاده از SSL دربرنامه های وب دات نت ، خواهيم پرداخت .