HTTPS HTTP درون SSL است. SSL یک پروتکل تونل است: آن را بر روی یک جریان دو طرفه موجود برای داده ها کار می کند ، و یک جریان دو طرفه برای داده ها فراهم می کند. دو طرف درگیر در SSL عبارتند از: مشتری و سرور ، که در پروتکل SSL دو نقش هستند. لازم نیست که این نقشها به مفاهیم "مشتری" و "سرور" پروتکل حمل و نقل زیر بنایی تبدیل شوند.

به عنوان مثال ، می توان یک تنظیم تصور کرد که در آن سیستم مشتری (C) اتصال TCP را به سرور (S) ، و سپس سرور شروع به لرزش SSL می کند ، به عنوان مشتری SSL (به عنوان مثال ارسال پیام ClientHello ، به جای اینکه منتظر دریافت ورودی ClientHello باشد. ). این وظیفه هر دو ماشین را برعکس می کند ، و همچنین ضمانت نامه های امنیتی: دستگاه S ایده خوبی از هویت مشتری متصل C خواهد داشت ، اما مشتری C مطمئن نخواهد بود که با چه سرور S صحبت می کند (یک مهاجم می توانست ارتباطات را رهگیری و هدایت کند). بسته به متن ، ممکن است این مناسب باشد یا نباشد.

با این وجود ، این از HTTPS عزیمت می کند ، که در آن مشتری TCP نیز مشتری SSL است ، و مشتری انتظار دارد سرور یک گواهی را نشان دهد ، که مشتری آن را تأیید می کند. در برابر CA شناخته شده ، قابل اعتماد و حاوی نام سرور مورد انتظار (همانطور که از URL استخراج شده است ، به بخش 3.1 مراجعه کنید). به همین ترتیب ، مشتری های موجود (مرورگر وب) از واژگونی نقش SSL پشتیبانی نمی کنند. اگر وضعیت شما خواستار استفاده از مرورگرها است ، پس باید فقط از عملکردهای موجود در مرورگرها استفاده کنید.


SSL از چند مجموعه رمزگذاری شده دارای گواهی نامه پشتیبانی نمی کند. مجموعه های رمزنگاری "DH_anon" ضعیف تلقی می شوند ، زیرا به هیچ وجه تأیید اعتبار نمی کنند (بنابراین ، حملات Man-in-the Middle میسر هستند). مجموعه های رمزگذاری PSK دلالت بر تأیید هویت متقابل مشتری و سرور در رابطه با راز مشترک دارند. هنگامی که راز مشترک آنتروپی کم باشد (مثلاً رمزعبور است ) ، مجموعه های رمزنگاری SRP بهتر هستند.

در آنجا ، این مجموعه های رمزنگاری هنوز در مرورگرهای اصلی موجود نیستند (اگرچه برخی مردم روی آن کار می کنند) آنها به یک راز مشترک (کلید یا گذرواژه) احتیاج دارند ، شرایطی که ممکن است در متن خاص شما به راحتی حاصل شود.


اگر آگاهی از هویت سرور مهم نیست ، می توانید گواهی خود امضا شده به سرور بدهید. همراه با راهنمایی برای مشتری در مورد نحوه پذیرش مرورگرشان گواهی سرور را بدون فریاد زدن زیاد با صدای بلند (این سوال را به عنوان نقطه شروع ببینید). این نقشه به "SSL معمولی" می رسد ، که دو مزیت دارد:

  • مرورگرهای موجود از آن پشتیبانی می کنند.
  • هنگامی که سرور یک گواهی ، هرچند جعلی ارائه می دهد ، اجازه می دهد تا در عوض ، درخواست گواهینامه مشتری ، نوع احراز هویت مورد نظر خود را ارائه می دهد. و مرورگرهای وب گواهی های مشتری را برای SSL پشتیبانی می کنند.

توجه داشته باشید که گواهی خود امضا شده دارای کلید عمومی سرور است. اگرچه این کلید عمومی اعتبار نخواهد یافت ، اما از آن برای استفاده در مبادله کلید استفاده می شود ، بنابراین باید از یک نوع و طول مناسب کلید استفاده کنید (مثلاً RSA 2048). روش دیگر ، از یکی از مجموعه های رمزنگاری "DHE" استفاده کنید ، در این حالت از کلید عمومی سرور فقط برای امضاها استفاده می شود ، نه برای محافظت از داده ها ، بنابراین ( در مورد خاص شما ) اندازه و پنهان کاری آن. بی اهمیت می شود.