درباره HTTPS:
پروتكل HTTPS يا Hypertext transfer protocol secure نسخه امن پروتكل HTTP است، كه پروتكل اصلي مورد استفاده براي ارسال داده بين مرورگر وب و وب سايت بوده و در لايه 7 مدل OSI (لايه Application) كار مي كند. پروتكل HTTPS به منظور افزايش امنيت انتقال داده ها رمزگذاري شده است.
اين امر به ويژه هنگامي مهم است كه كاربران داده هاي حساس را ارسال مي كنند مانند ورود به حساب بانكي، خدمات ايميل و از اين قبيل. از پروتكل SSL/TLS براي رمزگذاري و احراز هويت استفاده مي كند. HTTPS توسط RFC 2818 (در May 2000) مشخص شده است و به طور پيش فرض از پورت 443 به جاي پورت 80 HTTP استفاده مي كند.
هر وب سايتي، به ويژه آنهايي كه به اعتبار ورود نياز دارند، بايد از پروتكل HTTPS استفاده كنند. در مرورگرهاي وب مدرن مانند Chrome، وب سايت هايي كه از HTTPS استفاده نمي كنند متفاوت از ساير موارد هستند. در نوار URL به دنبال قفل سبز باشيد تا نشان دهد صفحه وب امن است. مرورگرهاي وب HTTPS را جدي مي گيرند. Google Chrome و مرورگرهاي ديگر همه وب سايت هاي غير HTTPS را بعنوان غير ايمن علامت گذاري مي كنند.
پروتكل HTTPS به كاربران وب سايت امكان مي دهد تا داده هاي حساس مانند شماره كارت اعتباري، اطلاعات بانكي و اطلاعات ورود به سيستم را به صورت ايمن از طريق اينترنت منتقل كنند. به همين دليل، پروتكل HTTPS براي تأمين امنيت فعاليت هاي آنلاين مانند خريد، بانكداري و دور كاري اهميت ويژه اي دارد. با اين حال، HTTPS به سرعت در حال تبديل شدن به پروتكل استاندارد براي همه وب سايت ها است، خواه آنها داده هاي حساس را با كاربران مبادله كنند يا نه.
HTTPS چگونه كار مي كند؟
HTTPS از پروتكل رمزگذاري براي ارتباطات استفاده مي كند. پروتكل رمزگذاري Transport Layer Security (TLS) يا Secure Sockets Layer (SSL) ناميده مي شود. پروتكل HTTPS با پيچاندن HTTP در داخل پروتكل SSL/TLS (به همين دليل است كه SSL را پروتكل تونل زني مي نامند) رمزگذاري را به پروتكل HTTP مي افزايد، به طوري كه همه پيام ها در دو جهت بين دو كامپيوتر شبكه (به عنوان مثال كلاينت و وب سرور) رمزگذاري مي شوند.
اين پروتكل با استفاده از آنچه كه به عنوان زيرساخت كليد عمومي نامتقارن شناخته مي شود، ارتباطات را ايمن مي كند. اين نوع سيستم امنيتي از دو كليد مختلف براي رمزگذاري ارتباطات بين دو طرف استفاده مي كند: كليد عمومي و كليد خصوصي:
- كليد خصوصي: اين كليد توسط صاحب يك وب سايت كنترل مي شود و همانطور كه خواننده احتمال داده است، آن را خصوصي نگه مي دارد. اين كليد روي يك وب سرور زندگي مي كند و براي رمزگشايي، اطلاعات رمزگذاري شده با كليد عمومي استفاده مي شود.
- كليد عمومي: اين كليد در دسترس همه كساني است كه مي خواهند با سرور به نحوي ارتباط امن برقرار كنند. اطلاعاتي كه توسط كليد عمومي رمزگذاري مي شوند، تنها با كليد خصوصي رمزگشايي مي شوند.
اگرچه يك استراق سمع كننده هنوز مي تواند به آدرس هاي IP، شماره پورت، نام دامنه، ميزان اطلاعات مبادله شده و مدت زمان يك ارتباط دسترسي داشته باشد، اما همه داده هاي واقعي مبادله شده توسط SSL/TLS به طور ايمن رمزگذاري مي شوند ، از جمله:
- URL درخواست (كدام صفحه وب توسط كلاينت درخواست شده است)
- محتواي وب سايت
- پارامترهاي پرس و جو
- هدر ها
- كوكي ها
پروتكل HTTPS همچنين از پروتكل SSL/TLS براي احراز هويت استفاده مي كند. SSL/TLS از اسناد ديجيتالي معروف به گواهي X.509 براي پيوند دادن جفت كليد رمزنگاري به هويت اشخاصي مانند وب سايت ها، افراد و شركت ها استفاده مي كند. هر جفت كليد شامل يك كليد خصوصي است كه ايمن نگه داشته مي شود و يك كليد عمومي كه مي تواند به طور گسترده توزيع شود. هر كسي كه كليد عمومي دارد مي تواند از آن براي موارد زير استفاده كند:
- پيامي ارسال كند كه فقط دارنده كليد خصوصي مي تواند رمزگشايي كند.
- تأييد كند كه يك پيام به صورت ديجيتالي با كليد خصوصي مربوطه امضا شده است.
اگر گواهي ارائه شده توسط يك وب سايت HTTPS توسط يك مقام گواهينامه معتبر عمومي (CA) مانند SSL.com امضا شده باشد، مي توان به كاربران اطمينان داد كه هويت وب سايت توسط شخص ثالث مورد اعتماد و با دقت حسابرسي شده است.
تفاوت HTTPS با HTTP چيست؟
از نظر فني، HTTPS يك پروتكل جداگانه از HTTP نيست. زيرا اين پروتكل رمزگذاري، احراز هويت و يكپارچگي را به پروتكل HTTP اضافه مي كند. پروتكل HTTPS بر اساس انتقال گواهينامه هاي TLS/SSL ايجاد مي شود، كه تأييد مي كند ارائه دهنده خاص همان است كه آنها مي گويند.
هنگامي كه كاربر به صفحه وب متصل مي شود، صفحه وب گواهي SSL خود را ارسال مي كند كه حاوي كليد عمومي لازم براي شروع ارتباط امن است. دو رايانه، كلاينت و سرور، فرآيندي به نام SSL/TLS handhake را طي مي كنند، كه مجموعه اي از ارتباطات رفت و برگشتي است كه براي ايجاد يك ارتباط امن استفاده مي شود.
از آنجا كه پروتكل HTTP در ابتدا به عنوان يك پروتكل clear text طراحي شده بود، در برابر شنود و حمله آسيب پذير است. با درج رمزگذاري SSL/TLS ، HTTPS از رهگيري و خواندن داده هاي ارسال شده از طريق اينترنت توسط شخص ثالث جلوگيري مي كند. از طريق رمزنگاري كليد عمومي، مي توان يك ارتباط رمزگذاري شده را به طور ايمن بين دو طرفي كه هرگز شخصاً ملاقات نكرده اند (به عنوان مثال وب سرور و مرورگر) از طريق ايجاد يك كليد خصوصي مشترك ايجاد كرد.
چرا HTTPS مهم است؟ اگر وب سايتي HTTPS نداشته باشد چه اتفاقي مي افتد؟
پروتكل HTTPS مانع از آن مي شود كه وب سايت ها اطلاعات خود را به گونه اي پخش كنند كه به راحتي توسط افرادي كه در شبكه جستجو مي كنند مشاهده شود. هنگامي كه اطلاعات از طريق HTTP معمولي ارسال مي شوند، اطلاعات به بسته هاي داده تقسيم مي شوند كه مي توان به راحتي آنها را با استفاده از نرم افزار ” sniffed” كرد.
اين امر باعث مي شود ارتباط از طريق يك رسانه ناامن، مانند Wi-Fi عمومي، در برابر رهگيري بسيار آسيب پذير باشد. در حقيقت، تمام ارتباطاتي كه از طريق HTTP رخ مي دهد به صورت clear text انجام مي شود و باعث مي شود براي هر كسي با ابزارهاي بسيار قابل دسترسي باشد و در برابر حملات در مسير آسيب پذير باشد.
با استفاده از پروتكل HTTPS، ترافيك به گونه اي رمزگذاري مي شود كه حتي اگر بسته ها شنيده شوند و يا به نحوي ديگر رهگيري شوند، به عنوان كلمات بي معني ظاهر مي شوند. بياييد به يك مثال نگاه كنيم:
قبل از رمزگذاري:
This is a string of text that is completely readable
پس از رمزگذاري:
ITM0IRyiEhVpa6VnKyExMiEgNveroyWBPlgGyfkflYjDaaFf/Kn3bo3OfghBPDWo6AfSHlNtL8N7ITEwIXc1gU5X73xMsJormzzXlwOyrCs+9XCkk+
در وب سايت هاي بدون HTTPS، ممكن است ارائه دهندگان خدمات اينترنتي (ISP) يا ساير واسطه ها محتوا را بدون تأييد صاحب وب سايت به صفحات وب تزريق كنند. اين معمولاً به شكل تبليغات صورت مي گيرد، جايي كه يك ISP كه به دنبال افزايش درآمد است تبليغات پولي را به صفحات وب مشتريان خود تزريق مي كند. جاي تعجب نيست كه وقتي اين اتفاق مي افتد، سود تبليغات و كنترل كيفيت تبليغات به هيچ وجه با صاحب وب سايت به اشتراك گذاشته نمي شود. HTTPS توانايي اشخاص ثالث بدون تعديل را براي تزريق تبليغات به محتواي وب حذف مي كند.
همچنين موتورهاي جستجو (از جمله گوگل) هنگام ايجاد نتايج جستجو از پروتكل HTTPS به عنوان يك سيگنال رتبه بندي استفاده مي كنند. بنابراين، صاحبان وب سايت مي توانند با پيكربندي سرورهاي وب خود با استفاده از HTTPS به جاي HTTP ، SEO را به راحتي افزايش دهند.
در سال 2020 ، وب سايت هايي كه از HTTPS استفاده نمي كنند يا محتواي مختلط را ارائه نمي دهند (ارائه منابع مانند ارائه تصاوير از طريق HTTP از صفحات HTTPS) مشمول هشدارها و خطاهاي امنيتي مرورگر مي شوند. علاوه بر اين اين وب سايت ها بدون ضرر، حريم خصوصي و امنيت كاربران خود را به خطر مي اندازند و توسط الگوريتم هاي موتور جستجو ترجيح داده نمي شوند. بنابراين وب سايت هاي HTTP و محتواي مختلط مي توانند انتظار هشدارها و خطاهاي بيشتر در مرورگر، اعتماد كاربران كمتر و SEO ضعيف تر از HTTPS فعال شده را داشته باشند.
وقتي درخواست بازكردن سايتي در مرورگر را مي كنيد، چگونه اين اتفاق مي افتد؟
براي درك اين موضوع، اجازه دهيد تصور كنيم كه يك سرور وجود دارد كه در جايي خدمت ارائه مي دهد و تمام درخواست هاي يك دامنه را ارائه مي دهد. اكنون، وقتي xyz.com را تايپ مي كنم، سروري است كه به آن متصل مي شوم، داده ها را از آن گرفته و در مرورگر ارائه مي شود.
براي درك اين موضوع، اجازه دهيد تصور كنيم كه يك سرور وجود دارد كه در جايي خدمت ارائه مي دهد و تمام درخواست هاي يك دامنه را ارائه مي دهد به عنوان مثال سرور گوگل، تصور كنيد يك سرور داريم كه نام دامنه ان google.com است. يك دستگاه در جايي متصل به اينترنت است و لحظه اي كه در مرورگر خود google.com را تايپ مي كند، به آن سرور متصل مي شود، داده ها را از آن سرور انتخاب كرده و در مرورگر نشان مي دهد.
اگر نتوانيم به سرور دسترسي پيدا كنيم، اين فرآيند تكميل نمي شود. براي اينكه اين اتفاق بيفتد، هر سيستم داراي يك آدرس IP است و هر دامنه داراي map IP است. لحظه اي كه نشاني اينترنتي google.com را وارد مي كنيد، DNS نام را به IP تبديل مي كند و به روتر مي فرستد تا به خط سرويس خاص مربوط به اين آدرس دسترسي پيدا كند. هنگامي كه به سرور مي رسد، درخواست مورد نياز را مطرح مي كند. در نتيج ، سرور طبق درخواست شما نتايج مورد نظر را در مرورگر ارائه مي دهد.
چگونه HTTPS را در وب سايت خود فعال كنيم؟
براي محافظت از يك وب سايت عمومي با پروتكل HTTPS، لازم است يك گواهي SSL/TLS با امضاي يك مرجع معتبر عمومي (CA) بر روي سرور وب خود نصب كنيد. بسياري از ارائه دهندگان هاست، وب سايت و ساير خدمات گواهي TLS/SSL را با پرداخت هزينه ارائه مي دهند. اين گواهينامه ها اغلب بين بسياري از مشتريان به اشتراك گذاشته مي شود. گواهينامه هاي گران تري در دسترس هستند كه مي توانند به صورت جداگانه در ويژگي هاي وب خاصي ثبت شوند.
منبع : https://mrshabake.com/https-protocol/