پروتکل HTTPS و خطرات شنود آن

aliva: اگه پیگیر اخبار اینترنت باشید می‌دونید که هفته پیش خبری مبنی بر جعل گواهی امنیتی گوگل منتشر شد که امنیت کاربران داخل ایران را به خطر انداخت. واسه همین تصمیم گرفتم توضیحاتی ساده در مورد پروتکل HTTPS و گواهی SSL بدم تا بفهمیم که استفاده از HTTPS آنقدرها هم که فکر می‌کنیم کاملاً امن نیست و احتمال نفوذ به اون وجود داره.

این HTTPS که می‌گن چجوری کار می‌کنه؟

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

حالا که مطمئن شدیم گواهی SSL صحیحه و واقعاً از همین سایته، مرورگر شما یک کد رندوم ایجاد می‌کنه (البته به مقادیری وابسته است و کاملاً رندوم نیست!). سپس ارسال و دریافت اطلاعات شروع می‌شه! اطلاعات در سرور اصلی با استفاده از اون کد ایجاد شده در مرورگر، رمز شده و دوباره به مرورگر فرستاده می‌شه، در آخر اطلاعات توسط مرورگر رمزگشایی شده و شما می‌تونید سایت رو ببینید.
این کد تقریبا مثل رمز فایل‌های فشرده عمل می‌کنه تا کسی رمز رو نداشته باشه نمی‌تونه از محتویاتش مطلع بشه و تنها کسی که این رمز رو داره مرورگر اینترنتی شماست.

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

بابا این که خیلی امنه! حرف درستیه، پروتکل HTTPS خیلی امنه ولی نه کاملاً امن! راه‌هایی برای شنود اون وجود داره که چندتاشو توضیح می‌دم.

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

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

– مردی در میانه (Man In The Middle): یک ارتباط کد شده رو مثل صحبت کردن فرض کنید. مثلاً وقتی ساسان با آرش صحبت می‌کنه به معنای یک ارتباط رمز شده موفق باشد. وقتی ساسان با آرش صحبت می‌کنه ناگهان علی (من) پدیدار می‌شه و در بین این دو نفر قرار می‌گیره و ساسان و آرش دیگه صدای هم رو نمی‌شنوند. حالا علی چه می‌کنه؟ علی با ساسان صحبت می‌کنه بعد پیش آرش می‌ره و دقیقاً حرف‌های ساسان رو منتقل می‌کنه.
مثل یک کانال ارتباطی هر دو طرف فکر می‌کنند یک ارتباط امن دارند ولی علی همه چیز رو شنود کرد. اتفاقی که برای گوگل افتاد دقیقاً همین بود. یک گواهی جعلی در بین راه قرار گرفته بود و کلیه اطلاعات رو بدون دستکاری منتقل می‌کرد. این گواهی جعلی ظاهرا معتبر نشان می‌داد برای همین مرورگر شما فکر می‌کرد ارتباط کاملاً امنه و گول می‌خورد.

آی‌اس‌پی چه اطلاعاتی رو می‌تونه شنود کنه؟

معمولاً آی‌اس‌پی‌ها پروتکل HTTPS رو به خاطر هزینه بالا شنود نمی‌کنند ولی بقیه اطلاعات به طور کامل قابل شنوده. اینکه به چه سایت‌هایی رفته‌اید و چه اطلاعاتی رد و بدل شده و حتی log کامل چت‌های شما.
دقت کنید در کافی نت‌ها این مورد بسیار معمول است. (این ابزارها در دسترس و نصب آن‌ها ساده است).

آیا Virtual Private Network مشکل رو حل می‌کنه؟

نحوه عملکرد شبکه خصوصی مجازی تقریبا مشابه HTTPS است با این تفاوت که با HTTPS رمزنگاری روی اطلاعات یک سایت اعمال می‌شه ولی در Virtual Private Network اطلاعات کل پهنای باند رمزنگاری خواهد شد. خطر شنود اطلاعات تماماً برای شبکه خصوصی مجازی نیز برقراره و کسی که به شما این خدمات رو ارائه می‌ده می‌تونه مثل یک ISP اطلاعات رو شنود کنه.

افزونه Certificate Patrol برای فایرفاکس

این افزونه پس از نصب اطلاعات گواهی SSL سایتهایی رو که از اونها بازدید می‌کنید جمع آوری می‌کنه و به رصد اونها می‌پردازه و هر وقت که اطلاعات گواهی سایتی دچار تغییر شد به شما اخطار می‌ده که مثلاً اطلاعات شرکت، تاریخ یا اثر انگشت (Fingerprint) این گواهی تغییر کرده و با اطلاعات قبلی اختلاف داره و اگر گواهی SSL دستکاری و جعل شده باشه شما متوجه اون خواهید شد.

10 فکر می‌کنند “پروتکل HTTPS و خطرات شنود آن

  1. senaps

    گزارش فاکس ای تی،واقعا عصابم رو بهم ریخت!! باورم نمیشه که چنین موسسه ای،سرور هاش ویندوزی بوده باشه،پسورد ساده بوده، درضمن ویندوزشون نه انتی ویروس داشته،نه اپدیت شده بوده!!!اخرین پست بلاگم،گزارششون رو ترجمه کردم و راجع بهش مقداری بحث کردم….. فقط متاسافم که وبلاگ های محبوب فارسی،در مورد این مسئله حرفی نزدن،چون فاکس ای تی میگه ۳۰۰ هزار کاربر الوده شدن،پر لایک ترین صفحات فیس بوق نشون میده که احتملا کل جمعیت ایرانی که دسترسی به سیستم های دور زدن دارن،هک شدن!!!

    پاسخ
  2. نوروزی

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

    پاسخ
    1. aliva

      مرورگر اطلاعات سایت‌های صادر کننده مورد تایید رو داره و گواهی ssl رو چک می‌کنه. (دقت کنید که چقدر سایت با ssl هست که هر روز هم اضافه می‌شه. اضافه کردن اطلاعات تمام سایت‌ها به مرورگر کار عجیبیه)

      این سوال رو توی IRC فایرفاکس پرسیدم که این لینک داده شد فکر می‌کنم توضیحات کافی باشد.
      http://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol

      پاسخ
  3. shams

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

    پاسخ
  4. hesam

    میشه راجع به قسمت” ابزارهای رمزگشا” توضیح بیشتری بدید؟!
    تا حالا جایی نخوندم که همچین امکانی حتی با سریعترین ابرکامپیوترها هم وجود داشته باشه از نظر زمانی.

    پاسخ
    1. aliva

      همونطور که گفتم این کار هزینه زیادی داره و کلا به صرفه نیست. همونظور که شما گفتید اصلا عملی نیست.
      ولی تونستم یه ابزار برای MITM پیدا کنم.
      اطلاعات دقیقی در مورد این ابزار ندارم (از گوگل پیدا کردم) ولی فکر می‌کنم توضیحات سایت اصلی کافی باشه.
      http://www.safenet-inc.com/Products/Detail.aspx?id=8589938488&terms=https

      پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *