چرا HTTPS امنتر از HTTP است؟
HTTP
بهخودیخود هیچ مکانیزم امنیتی نداره.
یعنی وقتی مرورگر به یه وبسرور درخواست میفرسته، تمام دادهها مثل آدرس صفحات، کوکیها، نام کاربری، رمز عبور و هر اطلاعات دیگهای به صورت Plain Text روی شبکه منتقل میشن. اگر یه مهاجم به مسیر ارتباط دسترسی داشته باشه، مثلا روی یه شبکه Wi-Fi عمومی، روتر، ISP یا هر نقطهای از مسیر، میتونه ترافیک رو Sniff کنه، اطلاعات رو بخونه یا حتی تغییر بده و دوباره برای مقصد ارسال کنه. به این نوع حمله Man-in-the-Middle (MITM) میگن.
اما HTTPS در واقع همون HTTP هست که داخل یک تونل امن TLS (Transport Layer Security) اجرا میشه. قبل از اینکه حتی اولین درخواست HTTP ارسال بشه، بین مرورگر و سرور فرآیندی به اسم TLS Handshake انجام میشه. توی این مرحله، سرور گواهی دیجیتال (SSL/TLS Certificate) خودش رو ارائه میده، مرورگر اعتبار اون گواهی رو با استفاده از Certificate Authority (CA) بررسی میکنه و بعد با استفاده از الگوریتمهای رمزنگاری، روی یک Session Key مشترک توافق میکنن.
از اون لحظه به بعد، تمام ترافیک با رمزنگاری متقارن مثل AES رمز میشه؛ چون سرعتش برای تبادل حجم زیاد داده خیلی بالاست.
HTTPS
سه ویژگی امنیتی اصلی فراهم میکنه. اول Confidentiality (محرمانگی)؛ یعنی دادهها رمزنگاری میشن و اگر کسی ترافیک رو Capture کنه، فقط یه سری بایت رمزشده میبینه و بدون کلید جلسه عملاً قابل خوندن نیستن. دوم Integrity (یکپارچگی)؛ یعنی با استفاده از مکانیزمهایی مثل Message Authentication Code (MAC) یا Authenticated Encryption، اگر حتی یک بیت از داده در مسیر تغییر کنه، گیرنده متوجه دستکاری میشه و ارتباط نامعتبر شناخته میشه.
Authentication
(احراز هویت)؛ یعنی مرورگر مطمئن میشه که واقعاً به سرور اصلی متصل شده و نه به یک مهاجم که خودش رو جای اون سایت جا زده.
به همین خاطر HTTPS جلوی بسیاری از حملات مثل Packet Sniffing، Session Hijacking، Credential Theft و بخش بزرگی از حملات MITM رو میگیره. البته HTTPS تضمین نمیکنه که خود سایت امن یا قابل اعتماد باشه؛ فقط تضمین میکنه ارتباط بین کلاینت و سرور رمزنگاری شده، دستکاری نشده و هویت سرور تأیید شده است. به همین دلیل امروزه تقریباً تمام سرویسهای مدرن وب، از موتورهای جستجو گرفته تا بانکها، شبکههای اجتماعی و پنلهای مدیریتی، بهصورت پیشفرض از HTTPS استفاده میکنن و مرورگرها سایتهای HTTP رو بهعنوان «Not Secure» نمایش میدم.
@ITSecurityComputer
Post #31534
9.09K

- ❤ 26
- 👍 4
- 🔥 1