پروتکل امن انتقال ابرمتن

تفاوت‌ها با HTTP

بر خلاف نشانی‌های وب HTTP که با «http://» آغاز می‌شوند و به صورت پیش‌فرض از درگاه شمارهٔ ۸۰ استفاده می‌کنند، آدرس‌های HTTPS با «https://» آغاز شده و به صورت پیش‌فرض از شماره درگاه ۴۴۳ استفاده می‌کنند.
HTTP امن نیست و می‌تواند هدف حمله‌های مرد میانی و شنود قرار بگیرد. این حملات به مهاجم اجازه می‌دهد به اطلاعات حساس مانند حساب‌های کاربر دسترسی پیدا کند. HTTPS با این هدف طراحی شده‌است که جلوی چنین حملاتی را بگیرد و از این جهت امن است. (به استثنای نسخه‌های کنارگذاشته‌شده و قدیمی‌تر آن)
سرعت پروتکل HTTPS، به ویژه در صفحاتی با محتوای زیاد، معمولاً از پروتکل غیر امن آن کمتر است. ارسال گواهی، تأیید گواهی توسط مرورگر و سربار رمزگذاری بر روی سیستم از مهم‌ترین دلایل این کندی هستند. یک اتصال امن در شروع حدوداً ۱۰٪ کندتر از یک اتصال غیر امن است. اما با استفاده از اتصال پایا این کندی در ادامهٔ ارتباط تقریباً از بین می‌رود.

لایه‌های شبکه

HTTP در بالاترین لایهٔ مدل TCP/IP یعنی لایهٔ کاربرد عمل می‌کند. نسخهٔ امن آن نیز به صورت زیرلایه‌ای در همین لایه فعال می‌شود. HTTPS قبل از رسیدن بستهٔ HTTP به لایهٔ پایینی (لایهٔ انتقال)، آن را رمزگذاری می‌کند (در هنگام دریافت پاسخ، رمزگشایی می‌کند). به صورت ساده، HTTPS پروتکل جدایی نیست، بلکه همان پروتکل HTTP است بر روی امنیت لایه انتقال.
در یک بستهٔ HTTPS همهٔ اطلاعات لایهٔ HTTP ازجمله نشانی وب، سرآیندها، کوکی‌ها و اطلاعات ارسالی رمزگذاری می‌شوند. یک حمله‌کننده پس از نفوذ می‌تواند متوجه آدرس آی‌پی مقصد، مدت زمان ارتباط و میزان اطلاعات ردوبدل‌شده شود. اما هیچ‌چیز از محتویات ارتباط برای او فاش نخواهد شد.

نصب بر روی سرور

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

تهیهٔ گواهی معتبر

تهیهٔ یک گواهی دیجیتال معتبر می‌تواند رایگان یا بین ۸ تا ۱‍۵۰۰ دلار در سال هزینه داشته باشد. البته باید توجه داشت که در بعضی موارد مراجع صدور گواهی رایگان مانند شرکت CACert در مرورگرهای مشهور (مانند فایرفاکس، گوگل کروم و اینترنت اکسپلورر) معتبر شناخته نمی‌شوند. با این حال شرکت‌هایی مانند StartSSL که گواهی‌های رایگان نیز ارائه می‌دهند، مورد تأیید بسیاری از مرورگرها هستند.
مؤسسات و شرکت‌های بزرگ، در صورتی که مسئول نصب و راه‌اندازی مرورگرها در محیط کار خود باشند، می‌توانند با نصب گواهی خودشان بر رور مرورگرها، آن‌ها را در محیط کار تأیید کنند (برای مثال یک وبگاه در شبکهٔ داخلی یک شرکت بزرگ یا دانشگاه). این مؤسسات می‌توانند به راحتی کپی گواهی خود را بر روی مراجع مورد تأیید مرورگرها نیز ثبت کنند.

لو رفتن گواهی (کلید خصوصی)

با به وجود آمدن سیاست Perfect Forward Secrecy در پروتکل HTTPS، لو رفتن و دزدیده شدن یک کلید خصوصی منجر به به‌دست آمدن کلیدهای جلسه‌ها و ارتباطات قبلی یا بعدی نمی‌شود. پروتکل تبادل کلید دیفی-هلمن و تبادل کلید خم بیضوی دیفی-هلمن تنها الگوریتم‌هایی هستند که تاکنون (سال ۲۰۱۳) از این سیاست پیروی می‌کنند. البته این الگوریتم‌ها سربار زیادی را به دلیل رمزنگاری پیچیده بر روی سرور و کلاینت خواهند گذاشت.
اما این سیاست هنوز گسترده نشده‌است. در حال حاضر تنها ۳۰٪ اتصالات مرورگرهای فایرفاکس، گوگل‌کروم و اپرا از این روش‌ها استفاده می‌کنند. این در حالی است که مرورگر سافاری و اینترنت اکسپلورر هیچ‌گاه از این الگوریتم‌ها استفاده نمی‌کنند. از میان یاهو، مایکروسافت، پی‌پال، اپل، اچ‌پی، دل، گوگل و تعداد بسیاری از شرکت‌های بزرگ اینترنتی، تنها شرکت گوگل از این سیاست برای امنیت وبگاه‌های خود استفاده می‌کند.
یک گواهی ممکن است قبل از این‌که منقضی شود، باطل گردد. دلایلی مانند لو رفتن کلید خصوصی یا دلایل امنیتی دیگر از جمله مواردی است که منجر به این موضوع می‌گردد. نسخه‌های جدید مرورگرهای مشهور مانند گوگل‌کروم، فایرفاکس، اینترنت‌اکسپلورر (از ویندوز ویستا به بعد) پروتکل برخط وضعیت گواهی را پیاده‌سازی کرده‌اند. به کمک این پروتکل مرورگرها می‌توانند باطل شدن گواهی‌های دیجیتال پیش از موعد را بررسی کنند. این عمل با ارسال شماره‌سریال گواهی به مرجع آن صورت می‌گیرد.

محدودیت‌ها و مشکلات

پروتکل HTTPS دو حالت مختلف را پشتیبانی می‌کند: حالت ساده و حالت متقابل یا دوطرفه.
حالت دوطرفه امنیت بیشتری دارد اما برای استفاده از آن علاوه بر سرور، کاربر نیز باید گواهی تهیه کرده و بر روی سیستمِ خود نصب نماید.
هر کدام از این دو حالت که استفاده شوند، امنیت ارتباط به شدت به پیاده‌سازی و الگوریتم رمزنگاری استفاده‌شده دارد. سیستم‌های مختلف بارها به دلیل مشکلاتی که در پیاده‌سازی آن‌ها وجود دارد، مورد حمله قرار گرفته‌اند.
استفاده از ارتباط امن جلوی خزنده‌های وب را نمی‌گیرد. این خزنده‌ها به راحتی صفحات امن را نیز فهرست می‌کنند. در بسیاری از موارد آدرس صفحات وبگاه تنها از روی حجم درخواست و پاسخ رمزنگاری شده، قابل افشا است.
این مسئله می‌تواند به یک مهاجم این امکان را بدهد که به متن رمز شده و رمز نشده دسترسی پیدا کند. این دسترسی می‌تواند امکان حمله متن رمز شده انتخابی را فراهم سازد.
از آنجایی که پروتکل HTTPS در لایهٔ زیرین HTTP فعالیت می‌کند، هیچ اطلاعی از عملکردِ لایه‌های بالاتر ندارد. هر سرور می‌تواند برای هر جفت آدرس IP و شماره درگاه خود یک گواهی به کاربر ارائه نماید.
به همین دلیل در بسیاری از موارد نمی‌توان در سرورهایی که میزبانی مجازی مبتنی بر نام ارائه می‌دهند، از پروتکل HTTPS استفاده نمود. با این حال راه‌حلی به نام تشخیص نام سرور وجود دارد که نام وبگاه را قبل از آغاز رمزگذاری ارسال می‌کند. این قابلیت در مرورگرهای قدیمی پشتیبانی نمی‌شود. مرورگر فایرفاکس از نسخهٔ ۲ به بالا، اپرا از نسخهٔ ۸ به بالا، سافاری از نسخهٔ ۲٫۱ به بالا، گوگل کروم از نسخهٔ ۶ به بالا و اینترنت اکسپلورر ۷ به بالا از این قابلیت پشتیبانی می‌کنند.

برهنه‌سازی

در کنفرانس کلاه‌سیاه در سال ۲۰۰۹ یک حملهٔ پیچیده به نام برهنه‌سازی گزارش شد. در این نوع حمله مهاجم با تغییر آدرس از پروتکل "https" به "http" کاربر را گمراه می‌کند. کاربر فکر می‌کند که ارتباط او امن است، در حالی که مهاجم به راحتی می‌تواند حملهٔ مرد میانی را ترتیب دهد.
در این نوع حمله از این نکته استفاده می‌شود که اکثر کاربران خودشان قسمت "https://" را در نوار آدرس تایپ نمی‌کنند و معمولاً با کلیک بر روی یک لینک به صفحهٔ امن منتقل می‌شوند.

حملهٔ کانال‌های جانبی

در ماه مه سال ۲۰۱۰ طبق تحقیقاتی که تیم تحقیقات مایکروسافت با همکاری دانشگاه هند انجام دادند، مشخص شد که بسیاری از اطلاعات حساسی که از طریق HTTPS منتقل می‌شوند، از طریق روش‌ها و کانال‌های جانبی مانند مشاهدهٔ حجم بسته، برای مهاجمین قابل دسترسی هستند. به‌طور مشخص‌تر، محققان نشان دادند که با شنود بر روی ارتباطات امن نرم‌افزارها و وبگاه‌های بیمارستان‌ها، بانک‌ها و جستجوهای وب می‌توانند میزان درآمد، بیماری و نوع آن، داروهای مورد استفاده، عمل‌های جراحی صورت گرفته بر روی فرد و افراد خانوادهٔ او را تشخیص دهند.

حملهٔ BEAST

در کنفرانس امنیتی اکوپارتی در سال ۲۰۱۱ که در کشور آرژانتین برگزار شد، دو نفر از محققین امنیتی به نام‌های جولیانو ریزو و ثای دونگ، که از توسعه‌دهندگان مرورگر گوگل‌کروم نیز می‌باشند، حملهٔ جدیدی را بر روی HTTPS گزارش دادند. این حمله که از طریق یک حفرهٔ امنیتی و به کمک تکه‌کد جاوااسکریپت صورت می‌گیرد، می‌تواند به مهاجم این امکان را می‌دهد که متن رمز شده را در یک زمان کوتاه به‌طور کامل رمزگشایی کند. این حمله BEAST نام گرفت که مخفف Browser Exploit Against SSL/TLS است. این حمله حتی در وبگاه‌هایی که از پروتکل امنیت انتقال سخت‌گیرانهٔ HTTP استفاده می‌کنند قابل اجراست.
این اشکال بر روی SSL نسخهٔ ۳ به پایین و TLS نسخهٔ ۱ که در زمان گزارش حمله در امنیت لایه انتقال پرکاربرد بودند، وجود دارد. در نسخه‌های بعدی TLS(نسخه‌های ۱٫۱ و ۲) این مشکل برطرف شد. امروزه مرورگرهای مشهور به صورت پیش‌فرض نسخه‌های قدیمی این پروتکل‌ها را غیرفعال می‌کنند تا از این حمله در امان باشند.

حملهٔ CRIME

این حمله که مخفف عبارت Compression Ratio Info-leak Made Easy است، در سپتامبر سال ۲۰۱۲ در کنفرانس اکوپارتی گزارش شد. در این حمله مهاجم می‌تواند به کوکی‌هایی که از طریق HTTPS و پروتکل اسپیدی منتقل می‌شوند، دسترسی پیدا کند. برای جلوگیری از این حمله، کاربران باید پروتکل اسپیدی را در مرورگر خود غیرفعال نمایند.
این حمله نیز توسط جولیانو ریزو و ثای دونگ گزارش شد.

حملهٔ BREACH

این حمله که آخرین حملهٔ گزارش شده تاکنون می‌باشد، در ماه اوت سال ۲۰۱۳، توسط کارشناسان امنیتی گزارش شده‌است. نام این نوع حمله از مخفف کردن عبارت Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext گرفته شده‌است. BREACH که به مهاجمین اجازهٔ رمزگشایی بسته‌های HTTPS را می‌دهد با عنوان «HTTPS در کمتر از ۳۰ ثانیه هک می‌شود» در رسانه‌ها بازتاب یافت. تمامی وبگاه‌هایی که از فشرده‌سازی HTTP استفاده می‌کنند، در برابر این نوع حمله آسیب‌پذیرند. همچنین اشکالی که از آن استفاده شده‌است در تمامی نسخه‌های SSL و TLS وجود دارد.
تا کنون هیچ راه‌حلی برای مقابله با این حمله ارائه نشده‌است.

در ایران

استفاده از پروتکل HTTPS در ایران گاهی دچار مشکل شده و با کاهش سرعت یا قطع دسترسی مواجه می‌شود.
بسیاری معتقدند که دلایل این اختلالات، مسائل سیاسی و امنیتی است. مسئولین معمولاً این ادعا را رد می‌کنند اما وزیر ارتباطات ایران در تیر ماه سال ۱۳۹۲ برای اولین بار اعلام کرد که دلیل افت سرعت اینترنت در زمان پیش از انتخابات، امنیتی و به دلیل انتخابات ریاست جمهوری ایران بوده‌است. وی این اقدام را راهکار و ابتکاری در جهت مقابله با ورود بیگانگان به فضای مجازی تعریف کرد.

جعل گواهی گوگل و سرویس‌های آن

در ماه اوت سال ۲۰۱۱ میلادی شرکت گوگل اعلام کرد که یکی از گواهی‌های دیجیتال این شرکت که در مرجع دی‌جی‌نوتار در کشور هلند ثبت شده‌بود، به سرقت رفته‌است. تحقیقات نشان داد که منبع این سرقت کشور ایران بوده‌است. با انجام این حمله، مهاجمین توانستند در مقیاس‌های بزرگ به ویژه در داخل ایران حمله‌های مرد میانی و فیشینگ ترتیب‌دهند. بسیاری ادعا کردند که آی‌اس‌پی‌های بزرگ در ایران مانند پارس‌آنلاین و خود دولت با استفاده از این گواهی‌های دزدیده شده، از اطلاعات کاربران سوءاستفاده کردند.
قابل ذکر است که گواهی دزدیده شده نه‌تنها مربوط به قسمت جستجوی وبگاه گوگل بود، بلکه در تمامی سرویس‌های گوگل از جمله جی‌میل، گوگل‌پلاس و غیره معتبر شناخته می‌شد. مرورگرهای مشهور با فاصله چند روز از انتشار این خبر، این مرجع را از لیست مراجع مورد تأیید خود حذف کردند. اما این گواهی ۴۰ روز قبل از انتشار این خبر دزدیده شده بود.
کمپانی دی‌جی‌نوتار بعد از این اتفاق تعطیل شد.

تاریخچه

کمپانی نت‌اسکیپ در سال ۱۹۹۴ میلادی HTTPS را بر پایهٔ اس‌اس‌ال در مرورگر خود(Netscape Navigator) به وجود آورد. ساختار پروتکل به‌وجود آمده (اس‌اس‌ال) به‌گونه‌ای بود که قابلیت قرار گرفتن هر نرم‌افزار و سرویسی بر روی آن وجود داشت
با گذشت زمان پروتکل اس‌اس‌ال تغییر کرده و جای خود را به امنیت لایه انتقال داد. در واقع نسخهٔ بعد از نسخهٔ ۳٫۰ پروتکل اس‌اس‌ال، امنیت لایه انتقال نامیده‌شد. به همین دلیل عده‌ای این پروتکل را اس‌اس‌ال نسخهٔ ۳٫۱ نیز می‌نامند. نسخه‌های بعدی پروتکل امنیت لایه انتقال با ایجاد تغییرات بزرگ، راه خود را از اس‌اس‌ال جدا کردند.
در نسخهٔ فعلی HTTPS که در ماه مه سال ۲۰۰۰ میلادی در RFC 2818 معرفی شده‌است، امنیت لایه انتقال به‌عنوان جایگزین پروتکل اس‌اس‌ال، در لایهٔ زیرین HTTPS قرار گرفته‌است.