برنامه نویسی

HTTPS چیست و چگونه کار می کند؟ – انجمن DEV

آیا تا به حال به این فکر کرده اید که چگونه وب سایت ها با یک مرورگر وب ارتباط برقرار می کنند و از سرور درخواست می کنند تا داده ها را به نمایش بگذارد؟ من هم این سوالات را می پرسیدم.

اگر شما هم مثل من هستید و در مورد نحوه کار اینترنت کنجکاو هستید، به جای درستی می آیید. در این مقاله بیایید در مورد نحوه عملکرد HTTPS و اهمیت نقش آن در شبکه جهانی وب بحث کنیم.

HTTP چیست؟

اولین قدم برای درک HTTPS، شناخت اجداد آن است: HTTP. پروتکل انتقال ابرمتن (HTTP) یک پروتکل رایج برای برقراری ارتباط بین وب سایت ها و مرورگرها در سراسر اینترنت است. با کمک HTTP، تمام اطلاعات و اتصال کل شبکه جهانی وب شکل می گیرد و دروغ نیست اگر بگوییم HTTP عامل اصلی ایجاد اینترنت است که امروزه از آن استفاده می کنیم.

درخواست ها و پاسخ های HTTP

HTTP یک پروتکل درخواست-پاسخ است که در آن درخواست های HTTP از کلاینت و سرور برای رسیدگی به آن درخواست ها و پاسخ به پاسخ های HTTP مشتری ارسال می شود. به طور معمول، یک پروتکل کنترل انتقال (یا TCP) برای ایجاد ارتباط بین سرویس گیرنده و سرور HTTP استفاده می شود.

درخواست HTTP

درخواست‌های HTTP از مرورگر ارسال می‌شوند تا اطلاعات خاصی را از سروری که باید برای دستگاه کاربر نمایش داده شود، بپرسند. هر درخواست HTTP حاوی اطلاعات مهم زیر است:

  • نسخه HTTP.
  • نام میزبان مشتری یا URL.
  • روش HTTP
  • هدر درخواست HTTP: شامل اطلاعاتی مانند نوع داده ای که مشتری می خواهد سرور به آن پاسخ دهد، نوع مرورگری که کاربر فعلی استفاده کرده است و غیره را شامل می شود.
  • بدنه HTTP: در صورتی که مشتری بخواهد داده ارسال کند، در غیر این صورت این اختیاری است.

پاسخ HTTP

هنگامی که سرور رسیدگی به درخواست مشتری را به پایان می رساند، با یک پاسخ HTTP که شامل اطلاعات زیر است پاسخ می دهد:

  • کد وضعیت HTTP
  • هدر پاسخ HTTP.
  • بدنه پاسخ HTTP.

HTTP چگونه کار می کند؟

یک ارتباط HTTP مشترک بین کلاینت ها و سرورها با مراحل زیر انجام می شود:

  1. کاربر نام دامنه مانند junedang.com را در مرورگر وارد می کند.
  2. مرورگر به عنوان مشتری عمل می کند و درخواست “GET” را به سروری که آدرس مشخص شده را میزبانی می کند ارسال می کند.
  3. سرور درخواست را دریافت کرده و پاسخ مورد نظر مشتری را تجزیه و تحلیل می کند. این می تواند انواع مختلفی از داده ها مانند رسانه، JSON، HTML، CSS و غیره را شامل شود.
  4. سرور پاسخ را به مشتری ارسال می کند.
  5. مشتری (مرورگر) پاسخ را از سرور دریافت می کند و بر اساس اطلاعات درخواستی اقدام به رندر یا اجرای محتوا می کند. این مراحل یک تصویر رایج برای درخواست GET HTTP را نشان می دهد. در واقع، HTTP از روش‌های بسیاری برای ارسال درخواست‌های مشتریان پشتیبانی می‌کند. هر کدام نوع خاصی از هدف را پشتیبانی می کنند. برخی از رایج ترین روش های HTTP عبارتند از:
  • GET: داده ها یا یک صفحه وب را از یک سرور بازیابی می کند.
  • POST: داده ها را برای پردازش ارسال کنید. معمولا در ارسال فرم استفاده می شود.
  • PUT: داده ها را برای ایجاد یا به روز رسانی یک منبع به سرور ارسال می کند.
  • PATCH: داده های جزئی را برای به روز رسانی یک منبع موجود ارسال می کند.
  • DELETE: از سرور می خواهد یک منبع مشخص شده را حذف کند.

مضرات HTTP – چرا باید درخواست های HTTP خود را ایمن کنیم

اگرچه HTTP اصلی برای اینترنت بسیار مهم است، اما به دلیل فقدان این توانایی ها: حفظ حریم خصوصی داده ها، یکپارچگی و شناسایی، همچنان از مشکلات امنیتی رنج می برد.

معایب HTTP

حریم خصوصی داده ها

ارتباطات HTTP رمزگذاری نشده است و به همین دلیل انتقال داده ها از طریق اینترنت توسط HTTP ایمن نیست و به راحتی توسط عوامل بد شنود می شود. این برای کاربران بسیار خطرناک است، به خصوص با اطلاعات حساس مانند اعتبار ورود، اطلاعات شخصی، یا جزئیات بانکی.

تمامیت

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

شناسایی

HTTP صرفاً در مورد انتقال داده ها و ارتباطات است اما نمی تواند هویت بین ارتباط دهنده ها را تأیید کند. این می‌تواند حملات بالقوه جعل هویت مانند مرد میانی را باز کند.

HTTPS چیست؟

برای خلاص شدن از شر HTTP، یک پروتکل HTTPS معرفی شده است که مخفف Hypertext Transfer Protocol Secure است. تمام ویژگی های HTTP قدیمی را با لایه امنیتی موثر با استفاده از امنیت لایه حمل و نقل (TLS) برای رمزگذاری داده ها گسترش می دهد.

قبل از HTTPS، داده های منتقل شده به نوعی به نظر می رسد:

GET /HTTP/1.1
Host: www.junedang.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اطلاعات همه از چشم مهاجم نشان داده می شود. اکنون با کمک رمزگذاری با استفاده از HTTPS، داده ها رمزگذاری می شوند و مانند شکل زیر هستند:

bG9sZWNoYXV0aDpteXNlY3JldHBhc3N3b3JkCg==
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این رویکرد، داده‌ها از استراق سمع یا ضبط در حین انتقال ایمن می‌شوند – اگر مهاجمان داده‌ها را ربوده باشند، تمام چیزی که دریافت می‌کنند فقط باینری‌های رمزگذاری‌شده هستند. علاوه بر این، HTTPS یک امضای دیجیتال دامنه را به پیام منتقل شده متصل کرد که می تواند هویت گیرنده مورد انتظار شما را تضمین کند.

HTTPS چگونه کار می کند؟

همانطور که در بالا ذکر شد، HTTPS دقیقاً مانند HTTP با یک لایه امنیتی اضافی به نام SSL کار می کند. SSL مبتنی بر فناوری به نام رمزنگاری کلید عمومی است: سرور کلید خصوصی را ذخیره می کند در حالی که کلید عمومی از طریق گواهی SSL با مشتریان به اشتراک گذاشته می شود. جریان نحوه عملکرد HTTPS را می توان با نمودار زیر نشان داد:

HTTPS چگونه کار می کند؟

  1. سرویس گیرنده (مرورگرهای وب یا دستگاه های تلفن همراه) با استفاده از https:// به جای http://، با سرور ارتباط HTTPS برقرار می کند.
  2. اتصال برقرار می شود و یک اتصال TCP بین مشتری و سرور ایجاد می شود.
  3. کلاینت و سرور اطلاعات SSL را از طریق یک دست دادن سه طرفه مبادله می کنند. اگر نسخه SSL توسط کلاینت و سرور پشتیبانی شود، سرور یک گواهینامه SSL را برای مشتری ارسال می کند که حاوی اطلاعات زیر است: کلید عمومی، نام میزبان، تاریخ انقضا و غیره.
  4. اگر گواهی توسط یک مرجع گواهی معتبر (CA) صادر شده باشد و منقضی نشده باشد یا باطل نشده باشد، کلاینت تأیید می کند.
  5. پس از تأیید موفقیت آمیز گواهی، مشتری یک کلید جلسه رمزگذاری شده با استفاده از کلید عمومی تولید می کند.
  6. سرور کلید جلسه رمزگذاری شده را دریافت می کند و سپس با استفاده از کلید خصوصی آن را رمزگشایی می کند.
  7. اکنون هم کلاینت و هم سرور کلید جلسه رمزگذاری شده یکسانی را به اشتراک می گذارند. پس از آن می توان یک اتصال امن ایجاد کرد.
  8. پیام های رمزگذاری شده در یک کانال امنیتی دو جهته منتقل می شوند. از طریق این فرآیند، HTTPS سه رکن امنیتی را که در پروتکل HTTP وجود نداشت تضمین می کند: حریم خصوصی داده ها، یکپارچگی و شناسایی.

نتیجه

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

برای غلبه بر این مشکلات، یک پروتکل HTTPS ایجاد می شود تا اطمینان حاصل شود که ارتباطات بین کلاینت ها و سرورها ایمن و ایمن است.


برای استفاده بیشتر از این مقاله، با خیال راحت این چالش ها را تکمیل کنید:

🐣حالت آسان:

  1. وب سایت سازمان فعلی خود را بررسی کنید تا ببینید آیا آنها از گواهی SSL استفاده می کنند یا خیر.
  2. اطلاعاتی که در گواهی SSL ذخیره می شود چیست؟

🔥حالت سخت:

  1. آیا می توانید گام به گام نحوه ایجاد گواهینامه SSL قابل اعتماد را فهرست کنید؟

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا