پروتکلهای متن ساده مانند HTTP میتوانند در برابر حملات شنود آسیبپذیر باشند، جایی که مهاجم قادر به خواندن محتوای ارسال شده است. خوشبختانه، امنیت لایه حمل و نقل (TLS) می تواند ترافیک را رمزگذاری کند و در صورت ضبط، استفاده از این داده ها را برای مهاجمان به طور قابل توجهی دشوارتر کند.
با این حال، این امکان برای مهاجمان وجود دارد که TLS را با وادار کردن اتصالات رمزگذاری شده به استفاده از HTTP متن ساده دور بزنند. برای رفع این مشکل، هدر پاسخ HTTP Strict Transport Security (HSTS) معرفی شد که مرورگر کاربر را مجبور میکند تا از یک وبسایت فقط با استفاده از TLS بازدید کند و به HTTP متن ساده (برای مدت زمان معین) برنگردد.
چگونه ممیزی فانوس دریایی شکست می خورد

ممیزی مسائل زیر را با هدر HSTS علامت گذاری می کند:
- اگر سرآیند HSTS اصلا پیدا نشد.
- اگر یکی از دستورالعمل های توصیه شده وجود نداشته باشد (
max-age،includedSubDomains،preload) - اگر مدت دستورالعمل
max-ageکمتر از یک سال (31536000 ثانیه) باشد. - اگر خطای نحوی هنگام تجزیه هدر وجود داشته باشد، مانند یک دستورالعمل ناشناخته.
یک خط مشی قوی HSTS را پیکربندی کنید
پیکربندی بهینه هدر HSTS به صورت زیر است:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- دستورالعمل
max-ageمدت زمانی را که مرورگر کاربر مجبور به بازدید از یک وب سایت تنها با استفاده از TLS (در ثانیه) می شود، مشخص می کند. پس از آن زمان، در صورتی که هدر HSTS توسط وبسایت ارائه نشده باشد (یا تغییر مسیرهای موقت از HTTP به HTTPS وجود داشته باشد، امکان دسترسی مجدد به سایت با استفاده از HTTP ساده وجود خواهد داشت). - تنظیم دستورالعمل
includeSubDomainsهدر را بر روی هر زیردامنه URL صفحه که در ابتدا هدر را ارسال می کند، اعمال می کند. به عنوان مثال، داشتن یک هدر HSTS ارسال شده توسط google.com که شامل دستورالعملincludeSubDomainsاست، سربرگ HSTS را در mail.google.com نیز اعمال می کند. - تنظیم دستورالعمل
preloadو ارسال دامنه به سرویس پیشبارگذاری HSTS، دامنه را در باینریهای مرورگر که از فهرست HSTS از پیش بارگذاریشده (نه فقط Google Chrome) استفاده میکنند، کامپایل میکند.
هنگام باز کردن هدر HSTS خطراتی وجود دارد. هر ویژگی که به اتصال HTTP رمزگذاری نشده نیاز دارد، عملاً برای مدت زمان تعیین شده در دستورالعمل max-age شکسته می شود. اگر دستورالعمل preload اعمال شود، حتی طولانی تر خواهد شد.
برای کاهش خطرات مرتبط با عرضه، یک رویکرد مرحلهای توصیه میشود:
با
max-ageکوچک شروع کنید و فقطincludeSubDomainsاضافه کنید (بدونpreload):max-age=3600; includeSubDomainsپس از مدتی استراحت (به عنوان مثال، یک هفته) بدون هیچ مشکلی گزارش شده،
max-ageرا افزایش دهید، برای مثال:max-age=604800; includeSubDomainsاگر این مرحله اولیه برای مدت طولانی (مثلاً سه ماه) موفقیت آمیز باشد، وب سایت و زیر دامنه های آن باید به لیست پیش بارگذاری HSTS اضافه شود و دستورالعمل
preloadباید اضافه شود.max-age=63072000; includeSubDomains; preload