HSTS چیست؟ آموزش فعال سازی HSTS

25 دسامبر 2019
HSTS

HSTS چیست؟ قبل از شروع باید بدانید که HTTPS چیست؟

 

آموزش فعال سازی HSTS

 

HTTPS چیست؟

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

 

HTTPS

 

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

 

HSTS چیست؟

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

 

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

 

کارکرد HSTS

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

 

در این مرحله ، وب سرور با یک تغییر مسیر (کد پاسخ 301) که به سایت HTTPS اشاره می کند پاسخ می دهد. مرورگر اتصال HTTPS به www.repgad.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.repgad.com را دارید ، این هدر فقط زیر دامنه www. را پوشش میدهد و آدرس repgad.com را پوشش نمی دهد. به همین دلیل ، برای محافظت کامل، وب سایت شما باید دامنه پایه (در این مورد ، repgad.com) را در بر بگیرد و یک هدر Strict-Transport-Security برای آن دامنه با includeSubDomains دریافت کند.

 

HSTS

 

تاثیر HSTS در SEO

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

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

 

آیا 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

 

آموزش فعال کردن 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|

آموزش بررسی فعال بودن HSTS

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

 


 

خرید هاست   خرید سرور مجازی   خرید هاست ایران

0
برچسب ها :
نویسنده مطلب امیر سلیمانژاد

دیدگاه شما

بدون دیدگاه