« October 2006 | Main

April 21, 2007

فرق بین پروتکل HTTP و HTTPS

دوستی در پیام گیر وبلاگ خُسن آقا در باره پروتکل HTTPS سوال کرده بودند، این مطلب را در این رابطه می‌نویسم:
هنگامی که کاربران بر روی اینترنت اطلاعات رد و بدل می‌کنند. این اطلاعات به صورت پروتکل‌های مختلف رد و بدل می‌شود که بستگی به نیاز کاربر و سرور مربوطه این پروتکل انتخاب می‌شود.
وقتی کاربر بخواهد به یک وب سایت معمولی یا یک وبلاگ برود، در قسمت آدرس نت براوزر خود (Internet explorer) یا هر نت براوزر دیگری که استفاده می‌کنیم، قبل از درج آدرس مربوطه اول پروتکل مورد نیاز را می‌نویسیم و بعد آدرس سایت را.
مثال : http://blog.hasanagha.net
به آدرس بالا نگاه کنید، این آدرس از دو بخش تشکیل شده بخش اول (//:http) پروتکل مورد استفاده است و بخش دوم (blog.hasanagha.net) آدرس وبلاگ خُسن آقا است.

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

به همین خاطر هم هست که هرگاه بخواهیم سایتی را با این مشخصات باز کنیم نت براوزر با نمایش Certificate (گواهینامه) سایت مربوطه از ما سوال می‌کند که آیا به این گواهینامه اعتماد داریم یا نه.
شما می توانید برای بررسی گواهینامه سایت مربوطه، با تقه زدن روی دکمه View Certificate مشخصات گواهینامه را مشاهده کنید. تصویر مشخصات را اینجا ببینید.

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

در شرایط دیگری هم ممکن است نیاز به رد و بدل کردن اطلاعات بصورت رمز گذاری شده باشد، مثل شرایط فیلترینگ ایران که برای جلوگیری از دسترسی عوامل رژیم ایران به اطلاعات رد و بدل شده، کاربران می‌توانند از پروتکل (HTTPS) استفاده کنند.
انتقال اطلاعات از طریق (HTTPS) هم پیرو شرایطی است که باید به آن توجه داشت. اولین نکته‌ای که در این زمینه باید در نظر داشت این است که آیا اطلاعاتی که می‌خواهد رد و بدل شود حساس است یا نه. مثلا اگر شما عضو یک حزب یا سازمان سیاسی باشید که برای رد و بدل کردن اطلاعات نیاز به روش امنی باشد، یقینا در این باره باید سیستم ایمنی فراهم کرد. ولی اگر شما تنها می‌خواهید یک سایت سیاسی را بخوانید و نمی‌خواهید که رژیم بداند که شما چه مطالبی را مطالعه می‌کنید نیاز به ایمنی چنان پیچیده‌ای نباشد. در هر صورت این مساله را کاربران خود باید تصمیم بگیرند و حد و اندازه ایمنی را خود مشخص و بر اساس آن عمل کنند.
برای استفاده صحیح از پروتکل (HTTPS) نیاز به یک Certificate (گواهینامه) هست. این گواهینامه‌ها را سایت‌ها با پرداخت پول به شرکت‌های شناخته شده و معتبر تهیه می‌کنند و در نتیجه شرکتی که این گواهینامه را صادر کرده باید شناخته شده باشد در غیر این صورت نمی‌توان به گواهینامه آن اعتماد کرد.
نمونه‌هایی از این گونه شرکت‌های صادر کننده گواهینامه:
http://www.verisign.com
http://www.globalsign.net/digital_certificate/index.cfm
http://certs.ipsca.com/?gclid=CIzWgOS204sCFSYSQgodrC_5aw

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

https://blog.hasanagha.net
در شرایطی که یک گواهینامه معتبر در دسترس نباشد، می‌توان با استفاده از گواهینامه‌های خود ساخته یک شرایط حداقلی را فراهم کرد. مثلا وبلاگ خُسن آقا را با آدرس بالا می‌توانید با استفاده از همین روش بخوانید و مطمئن باشید که کسی نمی‌تواند به اطلاعات رد و بدل شده به دست کس دیگری برسد. ممکن است دوستان بپرسند که خوب این چه خاصیتی دارد، وقتی که نمی‌توان به گواهینامه اعتماد کرد!؟ در پاسخ باید گفت که اطلاعاتی که از این طریق رد و بدل می‌شود با اینکه معتبر نیست، ولی حداقل رمزگذاری شده و اگر خواننده به وبلاگ خُسن آقا و نویسنده آن اعتماد دارد می‌تواند به گواهینامه‌ای هم که خُسن آقا استفاده می‌کند اعتماد کند و با استفاده از این روش حداقل از دسترسی رژیم به این اطلاعات جلوگیری کند.

سخن آخر اینکه: اگر شما بجای استفاده از آدرس http://blog.hasanagha.net از آدرس https://blog.hasanagha.net که با پروتکل HTTPS رد و بدل می شود استفاده کنید مطمئن هستید که مطالبی را که از این طریق مطالعه می‌کنید کسی نمی‌تواند در بین راه مطلب را دست کاری یا مطالعه کند در نتیجه وقتی نتواند مطالب را در بین راه بخواند، نمی‌تواند آنرا نیز بر اساس محتویات آن سانسور یا دستکاری کند. این روش خصوصا برای وضع سانسور در ایران مفید است، زیرا بعضی از سایت‌ها به علت محتوای آن سانسور می‌شود در نتیجه وقتی از این روش استفاده شود دیگر رژیم نمی‌تواند محتویات رد و بدل شده را بخواند و در نتیجه نمی‌تواند بصورت اتوماتیک آنرا سانسور کند.