پروتکل https چیست؟

گروه نرم افزاری پیوست > پیوست بلاگ  > پروتکل https چیست؟
https چیست

پروتکل https چیست؟

پروتکل https مانند پروتکل http پروتکلی ست برای استفاده از وب سایت ها، اما تفاوت https با http در این است که https میان کلاینت کاربر و سرور وب، اطلاعات را  رمز نگاری می کند و این رمز نگاری توسط certificate ای که آن سایت به شما می دهد اتفاق می افتد . اما در صورت استفاده از پروتکل http دیتای تبادل شده شما به سرور وب به صورت plain text تبادل شده و اگر شخصی میان کلاینت شما و به طور مثال مودم اینترنت شما ( می تواند ISP و … باشد ) واقع شود و شروع به عملیات ARP poisoning نماید ( در این روش مهاجم آدرس مک gateway شما رو جای مک آدرس کارت شبکه خودش جا میزنه و به اصلاح شروع به sniff کردن میکنه یعنی تمامی ترافیکی که قرار است به سمت مودم اینترنت برود ابتدا به سمت این شخص مهاجم می رود و سپس  پکت ها از سیستم هکر به سمت gateway واقعی روانه می شوند . به این نوع حمله man in the middle(MITM) attack می گویند ) می تواند پکت های ارسالی شما به سرور وب را دیده و اگر این دیتاها رمز نگاری نباشند خواندن محتوی آنها برای هکر کار بسیار بسیار راحتی می شود . برای همین امر است که اکثر وب سایت های مهم ( مانند سرویس دهنده گان ایمیل و یا اینترنت بانک ها و یا … ) حداقل هنگامی که به صفحه لاگین و ورود نام کاربر و رمز عبور می رسیم از پرتوکل https استفاده می کنند .

این نکته را اضافه می کنیم که به صادر کننده های تاییدیه ها ، ( 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 نبودن certificate را می گیرند و احتمالا به آن trust نمیکنند. ! اطلاعات مربوط به Certificate را می توان در همان URL در قسمت certificate information دید که صادر کننده این certificate کیست ؟ برای کجا صادر شده و در چه بازه زمانی valid است . این نکته را نیز اضافه میکنیم که ما میتوانیم certificate هر CA را روی سیستم خود در لیست trust ها قرار دهیم تا سیستم ما به آن certificate و صادر کننده اطمینان داشته باشد ( اما هنگام add کردن Certificate در trust های سیستم باید دقت داشته باشیم و CA مزبور را بشناسیم ) .

پس می بینیم که اگر برای وب سایتمان که قرار است در محیطی عمومی publish شود از CA معتبری استفاده نکنیم کاربران هنگام ورود به صفحه امن سایت ما هشدار valid نبودن certificate را می گیرند و احتمالا به آن trust نمیکنند. ! اطلاعات مربوط به Certificate را می توان در همان URL در قسمت certificate information دید که صادر کننده این certificate کیست ؟ برای کجا صادر شده و در چه بازه زمانی valid است . این نکته را نیز اضافه میکنیم که ما میتوانیم certificate هر CA را روی سیستم خود در لیست trust ها قرار دهیم تا سیستم ما به آن certificate و صادر کننده اطمینان داشته باشد ( اما هنگام add کردن Certificate در trust های سیستم باید دقت داشته باشیم و CA مزبور را بشناسیم ) .

در بالا اشاره کردیم که اگر هنگام باز کردن صفحه SSL محیط URL  مان به رنگ قرمز درامد یعنی که این Certificate مورد اطمینان سیستم ما نیست . حال میخواهیم دلایل این مورد را بررسی نماییم :

۱- ممکن است تاریخ سیستم عامل ما تاریخ روز نباشد برای مثال ممکن است تاریخ سیستم ۳ سال اختلاف داشته باشد و certificate مورد استفاده در بازه زمانی ۲ ساله valid باشد .

۲-ممکن است صاحب سایت از certificate متفرقه ای استفاده کرده باشد ( که در بالا اشاره کردیم اگر آن سایت و CA آن را می شناختیم می توانیم آن را در لیست trust های خود add نماییم )

۳- ممکن است مورد حمله MITM واقع شده باشیم و شخصی دارد پکت های ما را sniff میکند و این بدین معنی ست که ممکن است شخص یک certificate جعلی را به ما بدهد تا بتواند پسورد و سایر اطلاعات مهم ما را بدست آورد . پس باید دقت کنیم که هر certificate ای رو در trust های سیستم خود قرار ندهیم که چه بسا ممکن است آن Certificate مربوط به یک هکری باشد که میان ما و اینترنت واقع شده است !

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

و در آخر این نکته را اضافه میکنیم که عملیات sniff کردن و ARP poisoning جرم حساب می شود .

در زمان استفاده از نرم افزار اتوماسیون اداری پیوست و یا نرم افزارهای منابع انسانی پیوست با هماهنگی با تیم استقرار و پیاده سازی ، حتما این نرم افزارهای تحت وب را در حالت HTTPS استفاده نمایید .

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

۱دیدگاه
  • احمد معینی
    پاسخ
    ارسال شده در۱۰:۴۰,۱۳۹۸-۰۲-۲۱

    بسیار عالی

ارسال دیدگاه

دیدگاه
نام
ایمیل
وبسایت