HTTPS چیست؟

HTTPS چیست؟
زمان تقریبی مطالعه : 5 دقیقه

پروتکل HTTPS یک نسخه امن از یک وب سایت HTTP است. این رمزگذاری با استفاده از پروتکل Secure Sockets Layer (SSL) فعال می شود، بدون HTTPS داده‌هایی که بین سرور و مرورگر رد و بدل می‌شوند، ناامن خواهند بود.

این رمزگذاری به شما کمک می کند تا از داده ها در مقابل سرقت اطلاعات از طریق روش Man-in-the-Middle-Attack (MITM) محافظت کنید. لایه امنیتی اضافه شده نیز به بهبود وضعیت وب سایت شما در موتورهای جستجو هم كمك می كند. گفته می شود ، HTTPS هنوز نقص هایی دارد که HSTS می تواند به رفع آن کمک کند.

HSTS چیست؟

HSTS یک هدر واکنشی است که به یک مرورگر اطلاع می دهد که وب سایت های فعال شده فقط از طریق HTTPS قابل دسترسی هستند. این  امر مرورگر شما را مجبور می کند تا فقط به نسخه HTTPS وب سایت و منابع موجود در آن دسترسی داشته باشد. توجه داشته باشید که ممکن است با اینکه شما ssl را برای سایت فعال نموده باشید و ریدایرکت 301 به https را نیز تنظیم نموده باشید باز هم سایت همچنان با نسخه http دردسترس باشد.

با فعال کردن HSTS ، حملات پروتکل SSL و ربودن کوکی ، دو آسیب پذیری که در وب سایت های دارای SSL ممکن است رخ دهد، متوقف می شود. علاوه بر ایمن تر کردن وب سایت ، HSTS باعث بارگذاری سریعتر سایت نیز می شود.

HSTS چگونه کار می کند؟

به طور معمول ، هنگامی که یک URL را در مرورگر وب وارد می کنید ، قسمت پروتکل را رد می کنید. به عنوان مثال ، شما www.iranserver.com  را تایپ می کنید ، نه http://www.iranserver.com. در چنین حالتی ، مرورگر فرض می کند که شما می خواهید از پروتکل HTTP استفاده کنید ، بنابراین یک درخواست HTTP را به www.iranserver.com ارسال می کند.

در این مرحله ، وب سرور با یک تغییر مسیر (کد پاسخ 301) که به سایت HTTPS اشاره می کند پاسخ می دهد. مرورگر اتصال HTTPS به www.iranserver.com ایجاد می کند. این زمانی است که حفاظت از خط مشی امنیتی HSTS با استفاده از یک هدر پاسخ HTTP شروع می شود:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

هدر Strict-Transport-Security دستورالعمل های خاصی به مرورگر می دهد. از زمان اضافه کردن این کدها ، هر اتصال به سایت و زیر دامنه های آن برای یک سال آینده (31536000 ثانیه) از لحظه دریافت این هدر باید یک اتصال HTTPS باشد. اتصالات HTTP به هیچ وجه مجاز نیست. اگر مرورگر درخواست بارگیری یک منبع را با استفاده از HTTP دریافت کند ، باید به جای آن درخواست HTTPS را امتحان کند. اگر HTTPS در دسترس نباشد ، اتصال باید خاتمه یابد.

علاوه بر این ، اگر گواهی معتبر نباشد ، از ایجاد ارتباط جلوگیری می شود. معمولاً اگر گواهی معتبر نباشد (منقضی شده ، self-signed باشد ، توسط یک CA ناشناخته امضا شده باشد و غیره) مرورگر هشداری را نشان می دهد که می توانید دور بزنید. اما اگر سایت دارای HSTS باشد ، مرورگر به هیچ وجه به شما اجازه نمی دهد هشدار را دور بزنید. برای دسترسی به سایت ، باید سایت را از لیست HSTS در داخل مرورگر حذف کنید.

هدر Strict-Transport-Security برای وب سایت مشخصی ارسال می شود و نام دامنه خاصی را در بر می گیرد. بنابراین ، اگر هدر HSTS برای www.iranserver.com را دارید ، این هدر فقط زیر دامنه www. را پوشش میدهد و آدرس iranserver.com  را پوشش نمی دهد. به همین دلیل ، برای محافظت کامل، وب سایت شما باید دامنه پایه (در این مورد ، iranserver.com) را در بر بگیرد و یک هدر Strict-Transport-Security برای آن دامنه با includeSubDomains دریافت کند.

بهبود SEO و افزایش سرعت سایت با استفاده از HSTS

علاوه بر افزودن یک لایه امنیتی بیشتر به سایت شما ، استفاده از HSTS ممکن است باعث افزایش SEO شود زیرا استفاده از HSTS باعث می شود صفحات وب شما حتی سریعتر بارگیری شود.

حتما بخوانید:  فعال سازی VNC در ماشین های مجازی ESXI) Vmware)

زمان بارگذاری اولیه در رتبه بندی جستجو  و هم از لحاظ افزایش رضایت بازدید کننده سایت شما بسیار موثر است . با افزایش استفاده از موبایل و ابتکار عمل گوگل سرعت بارگذاری اولیه صفحه از اهمیت بیشتری نیز برخوردار شد.

آیا HSTS کاملاً ایمن است؟

متأسفانه ، اولین باری که به وب سایت دسترسی پیدا می کنید ، با HSTS محافظت نمی شوید. اگر وب سایت یک هدر HSTS به اتصال HTTP اضافه کند ، آن هدر نادیده گرفته می شود. این امر به این دلیل است که یک مهاجم می تواند در حین حمله man-in-the-middle ، می تواند هدرها را حذف یا اضافه کند. به هدر HSTS قابل اعتماد نیست مگر اینکه از طریق HTTPS تحویل داده شود.

همچنین باید بدانید که هر بار مرورگر شما سرصفحه را بازخوانی می کند حداکثر سن HSTS ریست می شود و همچنین حداکثر مقدار آن دو سال است. این بدان معنی است که تا زمانی که بیش از دو سال از بازدیدهای شما نگذرد ، محافظت از آن دائمی است. اگر به مدت دو سال به وب سایت مراجعه نکنید ، با آن به عنوان یک سایت جدید برخورد می شود. در عین حال ، اگر شما از هدر HSTS با max-age  برابر با 0 استفاده کنید ، مرورگر در کانکشن  بعدی  سایت شما را به عنوان مورد جدید در نظر خواهد گرفت (که این کار می تواند برای آزمایش مفید باشد)

می توانید از یک روش محافظت اضافی به نام لیست پیش بارگذاری HSTS استفاده کنید. پروژه Chromium لیستی از وب سایت هایی که از HSTS استفاده می کنند را نگه می دارد و این لیست با مرورگرهای دیگر به اشتراک گذاشته می شود. اگر شما وب سایت خود را به لیست preload اضافه کنید ، ابتدا مرورگر لیست داخلی را بررسی می کند و بنابراین وب سایت شما  هرگز توسط HTTP در دسترس نخواهد بود ( حتی در اولین تلاش برای اتصال به HTTP ) این روش جزئی از استاندارد HSTS نیست ، اما توسط همه مرورگرهای اصلی (Chrome ، Firefox ، Safari ، Opera، IE11 و Edge) استفاده می شود.

تنها روشی که در حال حاضر شناخته شده است که می تواند برای دور زدن HSTS مورد استفاده قرار گیرد ، حمله NTP-based attack است  که تحت شرایطی، فقط یک بار می توان سایت را با http بارگذاری نمود.

آموزش فعال نمودن HSTS در دایرکت ادمین

چگونه دامنه ای را به لیست Preload HSTS اضافه کنیم؟

برای افزودن دامنه به لیست پیش بارگذاری HSTS ، سایتهای مربوط به آن دامنه باید چند پیش نیاز داشته باشیم. کارهایی که باید برای افزودن دامنه خود به لیست پیش بارگذاری hsts انجام دهید به شرح زیر می باشد:

  • مطمئن شوید که سایت شما دارای گواهینامه معتبر می باشد.
  • اگر سایت های شما از طریق HTTP در دسترس هستند ، کلیه درخواست ها را به HTTPS هدایت کنید.
  • اطمینان حاصل کنید که نقاط 1 و 2 فوق در مورد همه دامنه ها و زیر دامنه های شما (طبق سوابق DNS شما) اعمال شده باشد.
  • هدر Strict-Transport-Security را روی HTTPS برای دامنه اصلی خود و با max-age حداقل 31536000 (1 سال) ، بخشنامه includeSubDomains و بخشنامه preload اضافه نمایید.
  • به سایت org بروید و دامنه خود را با استفاده از فرم موجود ارسال کنید. در صورت رعایت شرایط ، دامنه شما برای افزوده شدن به preload وارد صف می شود.

برای این مورد باید مقادیر زیر را به هدر اضافه نماییم:

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"

در صورتیکه دایرکت ادمین داشته باشید باید مقدار زیر را در بخش اول custom httpd در دایرکت ادمین قرار می دهیم:

|*if SSL_TEMPLATE="1"|
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
|*endif|

درصورتیکه از کنترل پنل Cpanel استفاده می کنید جهت فعالسازی HSTS مقدار زیر را در فایل .htaccess سایت اضافه نمایید:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

بررسی فعال بودن HSTS

از طریق سایت hstspreload می توانید تست کنید hsts در سایت فعال است یا خیر.

در پایان توجه داشته باشید با استفاده از فعال نمودن HSTS هر وب سایت می تواند نه تنها از منظر سئو بلکه از دید مشتری نیز از یک لایه امنیتی اضافی بهره ببرد. اگر یک سایت تجارت الکترونیکی یا سایت معاملاتی دارید ، HSTS ضروری می باشد.
به این فکر کنید که امنیت اضافه شده و افزایش سرعت بارگذاری  برابر است با سئو و در نهایت تجربه بهتر کاربری.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *