پروتکل https
پروتکل https مانند پروتکل http پروتکلی ست برای استفاده از وب سایت ها اما تفاوت https با http در این است که https میان کلاینت کاربر و سرور وب اطلاعات را رمز نگاری می کند و این رمز نگاری توسط certificate است که آن سایت به شما می دهد…
پروتکل https مانند پروتکل http پروتکلی ست برای استفاده از وب سایت ها اما تفاوت https با http در این است که https میان کلاینت کاربر و سرور وب اطلاعات را رمز نگاری می کند و این رمز نگاری توسط certificate است که آن سایت به شما می دهد. اما در صورت استفاده از پروتکل http دیتای تبادل شده ی شما به سرور وب به صورت plain text تبادل شده و اگر شخصی میان کلاینت شما و به طور مثال مودم اینترنت شما ( می تواند isp و … باشد ) واقع شود و شروع به عملیات arp poisoning نماید (در این روش مهاجم آدرس مک gateway شما را جای مک آدرس کارت شبکه ی خودش جا میزند و به اصلاح شروع به sniff کردن میکند یعنی تمامی ترافیک ای که قرار است به سمت مودم اینترنت برود ابتدا به سمت این شخص مهاجم می رود و سپس پکت ها از سیستم هکر به سمت gateway واقعی روانه می شوند . به این نوع حمله man in the middle(mitm) attack می گویند) می تواند پکت های ارسالی شما به سرو وب را دیده و اگر این دیتا ها رمز نگاری نباشند خواندن محتوی آنها برای هکر کار بسیار بسیار راحتی می شود . برای همین امر است که اکثر وب سایت های مهم ( مانند سرویس دهنده گان ایمیل و یا اینترنت بانک ها و یا … ) حداقل هنگامی که به صفحه ی لاگین و ورود نام کاربر و رمز عبور می رسیم از پرتوکل https استفاده می کنند .
این نکته را اضافه می کنیم که به صادر کنند های ( certificate CA Certificate Authority) می گویند و هر شخصی که بخواهد در وب سایت خودش از certificate استفاده نماید بهتر است از ca های شناخته شده certificate بخرد و در وب سایت خودش قرار دهد . برخی از این ca های معروف عبارتند از godaddy و verisign و …
حال این سوال مطرح می شود که مگر نمی شود ما خودمان ca باشیم ؟! در پاسخ باید گفت که بله این امکان هست اما اگر certificate مورد استفاده ی ما توسط ca های متفرقه صادر شده باشد کلاینت هنگامی که می خواهد صفحه ی https ما را browse کند browser آن به او هشدار می دهد که certificate مورد استفاده در این وب سایت valid نیست ! پس این نکته را باید بدانیم که سیستم عامل ها و browser ها از قبل به تعداد مشخص و معینی ca اطمینان دارند و زمانی که صفحه ای که از certificate استفاده می کند ( ssl page ) را باز نماییم ممکن است که مشاهده کنیم درمحیط url بالای صفحه ی مرورگر به رنگ سبز رنگ در آید و این به معنی اطمینان داشتن سیستم ما به certificate مورد استفاده در آن سایت است و اگر محیط url مرورگر به رنگ قرمز درآمد این بدین معنی ست که سیستم ما به آن certificate مورد استفاده اطمینان ندارد پس می بینیم که اگر برای وب سایت امان که قرار است در محیطی عمومی publish شود از ca معتبری استفاده نکنیم کاربران هنگام ورود به صفحه ی امن سایت ما هشدار valid نبودن cerfitiface را می گیرند و احتمالا به آن trust نمیکنند ! اطلاعات مربوط به Cerfiticate را می تواند در همان url در قسمت cerfiticate information دید که صادر کنند ه ی این certificate کیست ؟ برای کجا صادر شده و در چه بازه ی زمانی ای valid است . این نکته را نیز اضافه میکنیم که ما میتوانیم certificate هر ca را روی سیستم خود در لیست trust ها قرار دهیم تا سیستم ما به آن certificate و صادر کننده ی اطمینان داشته باشد ( اما هنگام add کردن Certificate در trust های سیستم باید دقت داشته باشیم و ca مزبور را بشناسیم ).
در بالا اشاره کردیم که اگر هنگام باز کردن صفحه ی ssl محیط url مان به رنگ قرمز درامد یعنی که این Cerfiticate مورد اطمینان سیستم ما نیست . حال میخواهیم دلایل این مورد را بررسی نماییم :
۱- ممکن است تاریخ سیستم عامل ما تاریخ روز نباشد برای مثال ممکن است تاریخ سیستم ۳ سال اختلاف داشته باشد و certificate مورد استفاده در بازه ی زمانی ۲ ساله valid باشد .
۲-ممکن است صاحب سایت از certificate متفرقه ای استفاده کرده باشد ( که در بالا اشاره کردیم اگر آن سایت و ca آن را می شناختیم می توانیم آن را در لیست trust های خود add نماییم )
۳- ممکن است مورد حمله ی MITM واقع شده باشیم و شخصی دارد پکت های ما را sniff میکند و این بدین معنی ست که ممکن است شخص یک certificate جعلی را به ما بدهد تا بتواند پسورد و سایر اطلاعات مهم ما را بدست آورد . پس باید دقت کنیم که هر cerfiticate ای رو در trust های سیستم خود قرار ندهیم که چه بسا ممکن است آن Certificate مربوط به یک هکر ای باشد که میان ما و اینترنت واقع شده است !
از موارد بالا موارد ۳ و ۱ و ۲ به ترتیب می توانند بیشتر برای ما اتفاق رخ دهند پس خیلی خیلی باید به مورد ۳ دقت داشته باشیم ! و توصیه برای کاربران عادی این است که اگر در محیط url خود دیدند که certificate مورد اطمینان نیست ( به اصطلاح failed میشود ) در صورتی که از تاریخ سیستم خود اطمینان دارند که به روز است بدون این که پسورد و نام کاربر خود را وارد کنند آن صفحه را ببندند . و اگر به اشتباه لاگین کردند سریعا از آن محیط sign out کنند و از محیطی که این مشکل را ندارد مجددا لاگین کرده و تمامی پسورد ها و ایمیل های recovery و … را تعویض کنند .این نکته را اضافه می کنم که اگر هکر ای شبکه ی ما را sniff کند آن شبکه بسیار کند می شود . و در آخر این نکته را اضافه میکنیم که عملیات sniff کردن و arp poisoning جرم حساب می شود .