تعریف پروتکل htps

در طراحی سایت، پروتکل htps مانند پروتکل http پروتکلی است برای استفاده از وب سایت ها اما تفاوت htps با http در این است که https میان کلاینت کاربر و سرور وب اطلاعات را رمز نگاری می کند و این رمز نگاری توسط certificate ای که آن سایت به شما می دهد اتفاق می افتد . اما در صورت استفاده از پروتکل http دیتای تبادل شده ی شما به سرور وب به صورت plain text تبادل شده و اگر شخصی میان کلاینت شما و به طور مثال مودم اینترنت شما می تواند isp و … باشد ) واقع شود و شروع به عملیات arp poisoning نماید ( در این روش مهاجم آدرس مک gateway شما رو جای مک آدرس کارت شبکه ی خودش جا میزند و به اصلاح شروع به sniff کردن میکند بعنی تمامی ترافیک ای که قرار است به سمت مودم اینترنت برود ابتدا به سمت این شخص مهاجم می رود و سپس پکت ها از سیستم هکر به سمت gateway واقعی روانه می شوند . به این نوع حمله man in themiddle( mitm ) attack
می گویند می تواند پکت های ارسالی شما به سرور وب را دیده و اگر این دیتا ها رمز نگاری نباشند خواندن محتوی آنها برای هکر کار بسیار بسیار راحتی می شود ، برای همین امر است که در طراحی اکثر وب سایت های مهم ( مانند سرویس دهنده گان ایمیل و با اینترنت بانک ها و یا … ) حداقل هنگامی که به صفحه ی لاگین و ورود نام کاربر و رمز عبور می رسیم از پروتکل https استفاده می کنند . این نکته را اضافه می کنیم که به صادر کنند های CA ) CertificateAuthority ) می گویند و هر شخصی که بخواهد در وب سایت خودش از certificate استفاده نماید بهتر است از ca های شناخته شده certificate بخرد و در وب سایت خودش قرار دهد.Related image

برخی از این ca های معروف

verisign- godaddy – … حال این سوال مطرح می شود که مگر نمی شود ما خودمان ca باشیم ؟! در پاسخ باید گفت که بله این امکان هست اما اگر certificate مورد استفاده ی ما توسط ca های متفرقه صادر شده باشد کلاینت هنگامی که می خواهد صفحه ی https ما را browse کند browser آن به او هشدار می دهد که certificate مورد استفاده در این وب سایت valid نیست! پس این نکته را باید بدانیم که سیستم عامل ها و browser ها از قبل به تعداد مشخص و معینی ca اطمینان دارند و زمانی که صفحه ای که از certificate استفاده می کند ( ssl page ) را باز نماییم ممکن است که مشاهده کنیم در محیط url بالای صفحه ی مرورگر به رنگ سبز رنگ در آید و این به معنی اطمینان داشتن سیستم ما به certificate مورد استفاده در آن سایت است و اگر محیط url مرورگر به رنگ قرمز درآمد این بدین معنی است که سیستم ما به آن certificate مورد استفاده اطمینان ندارد ( که دلایل آن را کاملا در ادامه شرح می دهیم ) پس می بینیم که اگر برای طراحی وب سایت مان که قرار است در محیطی عمومی publish شود از ca معتبری استفاده نکنیم کاربران هنگام ورود به صفحه ی این سایت ما هشدار valid نبودن cerfitiface را می گیرند و احتمالا به آن trust نمیکنند. اطلاعات مربوط به Certificate را می تواند در همان url در قسمت cerfiticate information دید که صادر کننده ی این certificate کیست ؟ برای کجا صادر شده و در چه بازه ی زمانی ای valid است . این نکته را نیز اضافه میکنیم که ما میتوانیم certificate هر cdl را روی سیستم خود در لیست trust ها قرار دهیم تا سیستم ما به آن certificate و صادر کننده ی اطمینان داشته باشد ( اما هنگام add کردن Certificate در trust های سیستم باید دقت داشته باشیم و ca مزبور را بشناسیم ). در بالا اشاره کردیم که اگر هنگام باز کردن صفحه ی ssl محیط url امان به رنگ قرمز درامد یعنی که این Cerfiticate مورد اطمینان سیستم ما نیست ، حال میخواهیم دلایل این مورد را بررسی نماییم :

  • ممکن است تاریخ سیستم عامل ما تاریخ روز نباشد برای مثال ممکن است تاریخ سیستم ۳ سال اختلاف داشته باشد و certificate مورد استفاده در بازه ی زمانی ۲ ساله valid باشد.
  • ممکن است صاحب سایت از certificate متفرقه ای استفاده کرده باشد ( که در بالا اشاره کردیم اگر آن سایت و ca آن را می شناختیم می توانیم آن را در لیست trust های خود add نماییم
  • ممکن است مورد حمله ی MITM واقع شده باشیم و شخصی دارد پکت های ما را sniff میکند و این بدین معنی است که ممکن است شخص یک certificate جعلی را به ما بدهد تا بتواند پسورد و سایر اطلاعات مهم ما را بدست آورد . پس باید دقت کنیم که هر certificate ای رو در trust های سیستم خود قرار ندهیم که چه بسا ممکن است آن Certificate مربوط به یک هکر ای باشد که میان ما و اینترنت واقع شده است.

از موارد بالا موارد ۳ و ۱ و ۲ به ترتیب می توانند بیشتر برای ما اتفاق رخ دهند پس خیلی خیلی باید به مورد ۳ دقت داشته باشیم ! و توصیه برای کاربران عادی این است که اگر در محیط url خود دیدند که certificate مورد اطمینان نیست ( به اصطلاح failed میشود و در صورتی که از تاریخ سیستم خود اطمینان دارند که به روز است بدون این که پسورد و نام کاربر خود را وارد کنند آن صفحه را ببندند . و اگر به اشتباه لاگین کردند سریعا از آن محیط sign out کنند و از محیطی که این مشکل را ندارد مجددا لاگین کرده و تمامی پسورد ها و ایمیل های recovery و … را تعویض کنند.