اخبار داخلی آرمان داده پویان

مقالات

HSTS چیست و چرا باید از آن استفاده کنیم؟ (قسمت اول)

HSTS چیست و چرا باید از آن استفاده کنیم؟

قسمت اول

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

در قسمت‌های قبلی ساختار پروتکل HTTP را به صورت مفصل بررسی کردیم. در آخرین قسمت به بررسی مکانیزم‌های امنیتی به کار گرفته شده در این پروتکل پرداختیم و به این جمع بندی رسیدیم که HTTP گزینه مناسبی برای رد و بدل کردن اطلاعات حساس میان کاربر و وب سرور نمی‌باشد. برای برطرف کردن آسیب‌پذیری‌های امنیتی HTTP، نسخه امن آن یعنی HTTPS معرفی شد. این پروتکل برای رمزگذاری داده‌ها از دو پروتکل SSL و TLS استفاده می‌کند. چرا بایستی از HTTPS استفاده کرد؟

  • با بررسی گواهی SSL سایت مربوطه می‌توان از واقعی بودن هویتش اطمینان حاصل کرد. در نتیجه  خطر حملات فیشینگ کاهش خواهد یافت.
  • با رمزنگاری داده‌های تبادل شده بین وب سرور و کاربر از حملات موفق Man In The Middle جلوگیری می‌شود.
  • از تمامیت داده‌ها با استفاده از HMAC می‌توان اطمینان حاصل کرد و مطمئن بود که داده‌ها دستکاری نشده‌اند.

بعد از گفتن این مقدمات می‌خواهیم دو سناریو مختلف را در ارتباط با امنیت HTTPS بررسی کنیم.

سناریو اول

برخی از وب سایت‌ها برای تمامی داده‌ها از HTTPS استفاده نمی‌کنند. به طور مثال تنها زمانی که کاربر می‌خواهد اطلاعات ورود (نام کاربری و گذرواژه) را وارد کند از HTTPS استفاده شده و بعد از آن به HTTP نزول پیدا می‌کند. اما این موضوع اطلاعات کاربر و حتی Session Cookie او را در معرض حملات Man In The Middle (MITM)  قرار می‌دهد. یک مهاجم اگر بتواند بعد از احراز هویت کاربر، Session Cookie او را سرقت نماید به راحتی به تمامی اطلاعاتی که در این نشست احراز هویت شده رد و بدل می‌گردد دسترسی یافته و تمامی کارهایی که این کاربر احراز هویت شده می‌تواند انجام دهد را انجام دهد. بنابراین استفاده از پروتکل HTTPS تنها برای داده‌های حساس کافی نمی‌باشد و اگر برای رد وبدل شدن تمامی ترافیک وب سایت از پروتکل HTTPS به جای HTTP استفاده شود، گام بزرگی در جهت ارتقای امنیت برداشته خواهد شد. اما این بدین معنا نیست که دیگر آسیب‌پذیری‌ای وجود نخواهد شد.

سناریو دوم

در نظر بگیرید می‌خواهید به سایت آرمان داده پویان با آدرس https://www.armandata.ir بروید.

  • در مرورگر خود www.armandata.com را تایپ می‌نمایید و قطعا زمانی را برای تایپ //:http صرف نمی‌کنید.
  • مرورگر هم به صورت پیش فرض //:http را به اول آن اضافه کرده و سپس درخواست را ارسال می‌نماید.
  • زمانی که وب سرور آرمان داده پویان این درخواست را دریافت می‌کند، در پاسخ ۳۰۱ redirect را به سمت کاربر ارسال کرده و مرورگر را متوجه می‌نماید که بایستی درخواستش را به صورت https ارسال کند.
  • مرورگر نیز این بار https را به اول درخواست اضافه کرده و می‌فرستد.

بعد از طی این مراحل سرآیند Strict-Transport security به پاسخ HTTP  اضافه شده و بدین صورت مقداردهی می‌گردد.

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

تفسیر این سرآیند با این مقادیر به صورت زیر می‌باشد:

از این زمان به بعد تا ۳۱۵۳۶۰۰۰ ثانیه دیگر، ارتباط با این سایت و تمامی زیر دامنه‌هایش بایستی به صورت https باشد. ارتباطات http پذیرفته نخواهد شد و حتی اگر مرورگر پاسخی را دریافت کرد که مطابق با آن برای دریافت منبعی از این وب سرور بایستی درخواستش را به صورت http ارسال نماید، مجاز به انجام این کار نمی‌باشد و بایستی دوباره درخواستش را به صورت https ارسال کند.

علاوه بر این اگر گواهی نامه‌ای که مرورگر از وب سرور دریافت می‌کند معتبر نباشد مرورگر بایستی صفحه هشدار را نمایش دهد و علاوه بر آن اجازه عبور از این صفحه و رفتن به وب سایت درخواستی را به کاربر ندهد. مگر آنکه به صورت دستی از فهرست HSTS مرورگر نام وب سایت خارج گردد.

آیا HSTS امن است؟

با توضیحاتی که در ارتباط با مکانیزم HSTS دادیم، مشخص است که استفاده از آن از حملات امنیتی ssl stripping و MITM جلوگیری می‌نماید. اما درخواست اول کاربر به صورت http ارسال شده و در همان مرحله نیز آسیب‌پذیری وجود دارد. برای رفع این آسیب‌پذیری مرورگر کروم فهرستی از وب سایت‌هایی که به HSTS مجهز هستند دارد و در هر بروزرسانی کروم نیز این فهرست اضافه خواهد شد. همچنین این فهرست به صورت دستی نیز قابل ویرایش می‌باشد. با رفتن به نشانی https://hstspreload.org نیز می‌توانید سایت مورد نظرتان را بررسی نمایید و ببینید آیا HSTS بر روی آن فعال است یا خیر.

آرمان داده پویان ارئه دهنده و تست نفوذ وب اپلیکیشن

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

تعداد بازدید: 232


تازه ترین ها