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

مقالات

سرآیند امنیتی HSTS

۲۵ بهمن ۱۳۹۶

HSTS

سیاستی برای امن ساختن لایه‌ی انتقال

معرفی

(HTTP Strict Transport Security) HSTS یک مکانیزم امنیتی است. زمانی که HSTS راهاندازی گردد، وب سرور میتواند User Agent را مجبور نماید تا از TLS استفاده نماید. HSTS به میزان قابل توجهی حملات مرد میانی را کاهش میدهد.

به طور مثال SSLstrip ابزاری برای راهاندازی حملات مرد میانی میباشد. SSLstrip  میان سرور و کاربر قرار میگیرد. با سرور ارتباط HTTPS برقرار میکند و با کاربر ارتباط HTTP. در این حالت سرور راضی است چون گمان میکند ارتباطش با کاربر HTTPS است اما در واقع ارتباطش با SSLstrip از نوع HTTPS است نه با کاربر. میتوان با اجبار ناوشگر به استفاده از HTTPS از حملات مرد میانی جلوگیری کرد و دقیقا این اجبار کردن کاری است که HSTS انجام میدهد.

 

 

راه‌اندازی HSTS

وب سرور به User Agent اعلام می‌کند که از سیاست HSTS پیروی می‌کند و اگر بخواهد با او در ارتباط باشد بایستی از آن تبعیت کند. به طور مثال سرآیند `Strict-Transport-Security: max-age=31536000` برای کاربر ارسال میشود . دستورالعمل ‘max-age’ مشخص مینماید برای چه مدت زمانی میزبان از سیاست HSTS پیروی میکند و HSTS معتبر است. سرآیند پاسخ HSTS تنها بر روی HTTPS ارسال میگردد، در نتیجه اگر UA این سرآیند را بر روی HTTP دریافت کند بایستی آن را نادیده بگیرد. این کار باعث میشود تا اگر مهاجمی اقدام به حملهی مرد میانی کرد نتواند موفق شود.

برای روشن شدن این موضوع مثالی میزنیم. فرض کنید یک کاربر میخواهد با Twitter ارتباط برقرار کند. ابتدا با سرور Twitter بایستی تعامل نماید پس در یک بازهی زمانی بسیار کوتاه که هنوز خبری از وجود HSTS بر روی سرور ندارد و مهاجم فرصت دارد تا حملهی مرد میانی موفقی راهاندازی نماید. این مورد در حملات هدفمند مشاهده میشود و مهاجم از اندک زمانی که در اختیار دارد به خوبی استفاده میکند. به غیر از این مورد مهاجم میتواند با تحت نظر گرفتن قربانی منتظر زمانی شود که سیاست HSTS منقضی میشود و بعد از آن حمله خود را انجام دهد.

زمانی که میخواهید برای فردی پیغام بفرستید نگرانیهای امنیتی شما چیست؟

  • شخص سومی در میان راه موفق به باز کردن این پیغام و خواندن آن نشود
  • مطمئن باشید که واقعا شخص مورد نظر این پیغام را دریافت میکند و شخص دیگری خود را به جای او جا نمیزند.

پروتکل HTTPS با استفاده از رمزگذاری پیغام، نگرانی اول را برطرف کرده است اما چطور میتوان مطمئن شد طرف مقابل رمزگذاری را پشتیبانی مینماید. پس یک مشکل دیگر به وجود آمد که سرآیند HSTS این مشکل را حل نموده است.

حمله sslstrip در صورتی که موفقیتآمیز باشد میتواند رمزگذاری را از بین ببرد. در ظاهر به نظر میآید که ارتباط به صورت HTTPS در جریان است در صورتی که بدین صورت نیست. برای مقابله با این موضوع سرآیند  Strict-Transport-Security به کار میآید. در نتیجه ناوشگر کاربر متوجه میشود که همواره باید ترافیک را رمز شده بفرستد و دریافت نماید و اگر خلاف این موضوع اتفاق بیفتد تا زمانی که سرآیند HSTS هنوز منقضی نشده است پیغام خطا میدهد.

 

آیا بایستی از HSTS استفاده کرد؟

بله برنامه کاربردی شما بایستی تنها بر روی HTTPS قابل دسترسی باشد. تنها یک نکتهی منفی در استفاده از HSTS وجود دارد. یک مهاجم باهوش میتواند یک سری supercookie برای خود بسازد. این supercookie ها میتوانند از ناوشگر کاربر انگشتنگاری کنند. به عنوان دارندهی یک وبسایت میتوانید کاربران خود را به روشهای متنوعی رصد کنید. اما سعی کنید از HSTS تنها برای افزایش امنیت استفاده کنید نه ساختن supercookieها.

HSTS  اولین بار در سال ۲۰۱۲ منتشر شد. در شکل رو‌‌به‌رو میتوانید سرآیند HSTS فیسبوک و توییتر را مشاهد نمایید. نکتهی جالب این است که هنوز بسیاری از وبسایتهای معتبر مانند  HSBC، Halifax و Nationwide از HSTS استفاده نکردهاند.

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

ادامه دارد

آرمان داده پویان تامین کننده برترین تجهیزات و راه‌کار های امنیتی

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


تازه ترین ها