پروتکل HTTP پروتکلی ذاتن ناامن است؛ به این معنا که دادهها بر بستر این پروتکل بهشکل متنی ساده و رمزنگاری نشده میان دو نقطه تبادل میشوند. پس یک شخص ثالث میان مبدا و مقصد یک ارتباط، میتواند به این دادههای تبادلی بهراحتی دست پیدا کند. برای حل این مشکل، HTTPS معرفی شد.
HTTPS با استفاده از پروتکل TLS اقدام به رمزنگاری و احراز هویت پیامهای تبادلی میان دو نقطه میکند. به این ترتیب در جریان یک ارتباط HTTPS، شخص ثالث نمیتواند به دادههای تبادلی میان دو نقطه دسترسی داشته باشد.
HTTPS ذاتن پروتکلی امن است اما مشکل زمانی پیش میآید که انتقال از HTTP به HTTPS انجام شود. برای نمونه مسوول سایت برای وبسرور مشخص میکند که با دریافت درخواست دسترسی به سایت بر پایهی HTTP، بیدرنگ در پاسخ، با ارسال کد 301 (redirect) و آدرس سایت به همراه https، از درخواستکننده، برقراری ارتباط بر پایهی HTTPS تقاضا شود. در حین این انتقال از HTTP به HTTPS اگر مهاجمی در حال شنود این ارتباط باشد، میتواند درخواست را برباید و از سرور جعلی خود به آن پاسخ دهد. به این حمله که یکی از انواع حملات Man-in-the-Middle است، SSL stripping attack گفته میشود. کشف این آسیبپذیری منجر به ایجاد مکانیزم HSTS شده اشت.
HSTS وبسایتها را قادر میسازد تا تنها از طریق ارتباطات HTTPS دردسترس باشند و از سوی دیگر کاربران نیز تنها با وبسایتهایی امن ارتباط برقرار کنند.
اگر وبسایت شما شروط زیر را دارا باشد، میتوانید از HSTS پشتیبانی کنید
داشتن یک Certificate معتبر
انتقال تمام ترافیکهای HTTP به HTTPS
دردسترس بودن تمام زیردامنهها تنها از طریق HTTPS
ارسال هدری درست برای کاربران بهمنظور تنظیمات
برای انجام تنظیمات مربوط به HSTS میتوانید راهنمای «بخش تنظیمات HTTPS پنل ابر آروان چیست؟» را بخوانید
HSTS برای الزام به برقراری ارتباط تنها بهوسیلهی HTTPS، از هدری مخصوص به خود با نام Strict-Transport-Security و همچنین فهرستی با نام Preload List استفاده میکند.
Web Server با ارسال HSTS header برای مرورگر پشتیبانیکننده از HSTS، برقراری ارتباط بر پایهی HTTPS در ارتباطات بعدی را مشخص میکند. در این هدر مدت زمانی به ثانیه تعیین میشود (مقدار فیلد max-age) که مشخصکنندهی طول مدت اعتبار سیاست HSTS است. به بیان بهتر در مدت زمان مشخص شده در این هدر، ارتباط میان مرورگر و وبسرور تنها باید بهوسیلهی HTTPS برقرار می شود.
از سوی دیگر Preload List بهمنظور اطمینان از این امر است که حتا در نخستین ارتباط با یک وبسرور یا پس از پایان مدت زمان مشخص شده در max-age، باز هم ارتباط میان مرورگر و وبسرور بر پایهی HTTPS خواهد بود. این فهرست، لیستی از اسامی دامنههایی است که از HSTS پشتیبانی میکند و ارتباط با آنها حتمن باید بر پایهی HTTPS باشد. این فهرست در مرورگرها hardcode و بهشکل دورهای بهروز میشود.
اگر در مرورگرهای پشتیبانیکننده از HSTS، یک دامنهی HSTS بدون https یا بدون ارجاعی قبلی وارد شود، بیدرنگ با آن سایت از طریق HTTPS ارتباط برقرار میشود.