اگر تاکنون سعی کرده اید از Wireshark برای نظارت بر ترافیک وب استفاده کنید ، احتمالاً با مشکل روبرو شده اید - بخش زیادی از آن رمزگذاری شده است. در حقیقت ، اکثر سایتها برای حفظ امنیت کاربران از رمزگذاری SSL یا TLS استفاده می کنند. اگر قصد خرید در آمازون را دارید رمزنگاری همه کاره چیز خوبی است ، اما هنگام تلاش برای اجرای یک شبکه ، این یک درد واقعی است. در اینجا نحوه رمزگشایی SSL با Wireshark آورده شده است.
Contents
Wireshark و SSL چیست؟?
Wireshark یک است آنالایزر ترافیک شبکه؛ این یک ابزار اصلی است که بسیاری از سرپرستها برای رفع مشکلات در شبکه های خود از آن استفاده می کنند. به طور خاص ، این قاب ها - بلوک های ساختمانی بسته ها را ضبط می کند و به شما امکان می دهد آنها را مرتب سازی و تجزیه و تحلیل کنید. با استفاده از Wireshark ، می توانید ترافیکی که در شبکه شما جریان دارد را بررسی کنید و آنرا جدا کنید و به داده های اولیه نگاهی بیندازید..
SSL پروتکل رمزگذاری است که در لایه Transport مدل OSI عمل می کند. از روشهای مختلف رمزگذاری برای ایمن سازی داده ها هنگام حرکت در شبکه ها استفاده می کند. توجه: در این راهنما ، من بیشتر به SSL به عنوان اصطلاح گیرنده برای SSL و TLS ، جانشین آن اشاره می کنم..
رمزگذاری SSL استفاده از Wireshark را چالش برانگیز تر می کند ، زیرا این امر باعث می شود مدیران از مشاهده داده هایی که هر بسته دارند ، جلوگیری کنند. هنگامی که Wireshark به درستی تنظیم شده است ، می تواند SSL را رمزگشایی کرده و توانایی شما در مشاهده داده های خام را بازیابی کند.
برای رمزگشایی SSL و TLS با استفاده از یک کلید مخفی پیش استاد
استفاده از کلید مخفی قبل از استاد برای رمزگشایی SSL در Wireshark روش پیشنهادی است. آ کلید مخفی پیش استاد توسط مشتری ایجاد می شود و توسط سرور برای بدست آوردن کلید اصلی که ترافیک جلسه را رمزگذاری می کند ، استفاده می شود. این استاندارد فعلی در رمزنگاری است و معمولاً از طریق دیفی هلمن اجرا می شود.
از مرورگر شما می توان برای ورود کلید مخفی قبل از استاد استفاده کرد که Wireshark برای رمزگشایی جلسات SSL و TLS استفاده می کند.
در اینجا مراحل رمزگشایی SSL و TLS با کلید مخفی از قبل استاد وجود دارد:
- متغیر محیط را تنظیم کنید
- مرورگر خود را راه اندازی کنید
- Wireshark را پیکربندی کنید
- جلسه را ضبط و رمزگشایی کنید
پس از اتمام کار ، بدون نیاز به دسترسی به سرور هدف ، می توانید جلسات SSL و TLS را در Wireshark رمزگشایی کنید.
یک متغیر محیط Windows تنظیم کنید
که در پنجره ها, شما باید با استفاده از متغیر محیط تنظیم کنید تنظیمات پیشرفته سیستم ابزار این متغیر ، به نام SSLKEYLOGFILE, شامل مسیری است که کلیدهای مخفی قبل از استاد در آن ذخیره می شوند.
با کلیک راست روی شروع کنید کامپیوتر من, و انتخاب کنید خصوصیات از منو سیستم منو باز خواهد شد.
بعد کلیک کنید تنظیمات پیشرفته سیستم در لیست سمت چپ خصوصیات سیستم پنجره باز خواهد شد.
در پیشرفته روی برگه کلیک کنید متغیرهای محیطی دکمه.
کلیک کنید بر روی جدید… دکمه زیر متغیرهای کاربر. همچنین می توانید متغیر زیر را ایجاد کنید متغیرهای سیستم اگر می خواهید کلیدهای SSL را برای هر کاربر روی سیستم وارد کنید ، اما من ترجیح می دهم که آن را به پروفایل من محدود نگه دارد.
زیر نام متغیر, موارد زیر را تایپ کنید:
SSLKEYLOGFILE
در مقدار متغیر فیلد ، یک مسیر را به پرونده log وارد کنید. همچنین می توانید روی کلیک کنید مرور پرونده ... را فشار داده و مسیر را با استفاده از انتخابگر پرونده مشخص کنید.
به عنوان یک یادداشت ، اگر این گزینه را به عنوان یک متغیر محیطی گسترده در سیستم ایجاد می کنید ، باید از کارتهای عادی مناسب استفاده کرده یا پرونده را در مکانی که در دسترس همه کاربران است ذخیره کنید. به عنوان مثال ، شما ممکن است را انتخاب کنید ٪ USERPROFILE٪ \ Data App \ ssl-keys.log یا C: \ ssl-keys.log.
پس از اتمام ، کلیک کنید خوب و به مراحل بعدی بروید.
متغیر محیط Linux یا Mac را تنظیم کنید
که در لینوکس و مک, باید تنظیم کنید SSLKEYLOGFILE متغیر محیط با استفاده از نانو. که در لینوکس, متغیر در ذخیره می شود ~ / .bashrc. در مک, متغیر را در پرونده ایجاد خواهید کرد ~ / .MacOSX / محیط.
یک ترمینال را باز کنید و از این دستور در لینوکس استفاده کنید:
nano ~ / .bashrc
باز کن راه انداز, کلیک دیگر, و راه اندازی یک ترمینال به این دستور را در Mac OSX اجرا کنید:
nano ~ / .bash_profile
مراحل زیر برای هر دو سیستم عامل یکسان است.
در پایان پرونده ، این خط را اضافه کنید:
صادرات SSLKEYLOGFILE = ~ / .ssl-key.log
مطبوعات Ctrl + X ، Y برای ذخیره تغییرات خود.
پنجره ترمینال را ببندید و دیگری را تنظیم کنید تا متغیر تنظیم شود ، سپس تأیید کنید که با موفقیت تنظیم شده است زیر را تایپ کنید:
تکرار $ SSLKEYLOGFILE
بعد از اجرای دستور ، باید خروجی شبیه به تصویر بالا را ببینید. /Users/comparitech/.ssl-key.log مسیر کامل ورود به سیستم کلید اصلی من پیش از SSL است. توجه: می خواهید یادداشت کنید که متفاوت است ، برای ورود به Wireshark.
اکنون که متغیر تنظیم شده است ، می توانید به مراحل بعدی بروید.
مرورگر خود را راه اندازی کنید و پرونده log را بررسی کنید
قبل از راه اندازی Wireshark و پیکربندی آن برای رمزگشایی SSL با استفاده از کلید پیش استاد ، باید مرورگر خود را شروع کرده و تأیید کنید که از پرونده log استفاده می شود.
برای پر کردن گزارش ، مهم است که از سایتی که SSL را فعال کرده است بازدید کنید. من از سرور آپاچی خودم برای آزمایش استفاده می کنم ، اما هر سایتی کار می کند. یكی از بزرگترین مزایای استفاده از كلید اشتراك پیش استاد است نیازی به دسترسی به سرور ندارید برای رمزگشایی SSL.
پس از بازدید از یک وب سایت با قابلیت SSL ، پرونده را برای اطلاعات بررسی کنید. که در پنجره ها, شما می توانید استفاده کنید دفترچه یادداشت. که در لینوکس یا مک, از دستور زیر استفاده کنید:
گربه ~ / .ssl-log.key
در هر سیستم عامل ، پرونده شما باید مانند موارد فوق باشد. بعد از اینکه تأیید کردید که مرورگر شما در محلی که انتخاب کرده اید کلیدهای پیش استاد را ثبت می کند ، می توانید Wireshark را تنظیم کنید تا از این کلیدها برای رمزگشایی SSL استفاده کند.
Wireshark را برای رمزگشایی SSL پیکربندی کنید
هنگامی که مرورگر شما کلیدهای پیش استاد را وارد می کند ، وقت آن است که Wireshark را پیکربندی کنید تا از این گزارش ها برای رمزگشایی SSL استفاده کند.
Wireshark را باز کنید و کلیک کنید ویرایش کنید, سپس اولویت ها. اولویت ها گفتگو باز خواهد شد ، و در سمت چپ ، لیستی از موارد را مشاهده خواهید کرد. بسط دادن پروتکل ها, حرکت به پایین ، و سپس کلیک کنید SSL.
در لیست گزینه های پروتکل SSL ، ورودی را مشاهده می کنید (قبل از) نام پرونده ورود به نام استاد-راز. در مرحله قبل به پرونده log که تنظیم کرده اید ، مرور کنید یا فقط مسیر را بچسبانید.
وقتی تنظیم را تمام کردید (قبل از) نام پرونده ورود به نام استاد-راز, کلیک خوب و به Wireshark برگردید. شما آماده حرکت هستید.
جلسه را ضبط کرده و SSL را رمزگشایی کنید
مرحله آخر گرفتن یک جلسه آزمون و اطمینان از رمزگشایی Wireshark با موفقیت SSL است.
- جلسه ضبط فیلتر نشده را شروع کنید ، آن را به حداقل برسانید و مرورگر خود را باز کنید.
- به منظور تولید داده به یک سایت ایمن مراجعه کنید ، و به صورت اختیاری فیلتر صفحه نمایش ssl را تنظیم کنید تا نویز جلسه به حداقل برسد.
- روی هر کادر حاوی داده های رمزگذاری شده کلیک کنید.
در مورد من ، من یکی از مواردی را انتخاب خواهم کرد که حاوی ترافیک HTTP با کدگذاری متن / HTML باشد ، زیرا می خواهم کد منبع را که سرور وب به مرورگر من ارسال می کند را ببینم. اما هرگونه ترافیکی رمزگذاری شده که از کلید پیش مخفی استفاده می کند با این روش کار خواهد کرد. این شامل کلیه داده هایی است که از رمزگذاری کامل برای جلو (PFE) از طریق Diffie-Hellman یا مبادلات کلیدی قابل مقایسه استفاده می کنند..
پس از انتخاب یک قاب رمزگذاری شده ، به آن نگاه کنید نمای بایت بسته, و به طور خاص زبانه ها در زیر نمای. باید یک مطلب برای مشاهده کنید رمزگذاری SSL داده ها ، در میان دیگران.
متوجه خواهید شد که جلسه من همچنان به نظر می رسد که پر از زباله است ، و هیچ HTML قابل مشاهده نیست. به این دلیل است که سرور وب من (و بیشتر سرورهای Apache) بطور پیش فرض از فشرده سازی GZIP استفاده می کنند.
هنگام کلیک روی بدن موجود فشرده نشده برگه ، که فقط در این حالت با فعال کردن رمزگشایی SSL نشان داده می شود ، می توانید کد منبع سایت را مشاهده کنید. به عنوان مثال ، در اینجا عنصر عنوان صفحه پیش فرض آپاچی به زبان ساده است.
استفاده از کلید RSA برای رمزگشایی SSL
شاید قبلاً متوجه شده اید که Wireshark دارای فیلدی است که به شما امکان می دهد کلیدهای RSA خود را بارگذاری کرده و از آنها برای رمزگشایی SSL استفاده کنید. در عمل, رمزگشایی کلید RSA مستهلک می شود.
دلیل رمزگشایی SSL با یک کلید RSA که معمولاً از آن استفاده نمی شود این است که Perfect Forward Encryption (PFE) آن را منسوخ کرده است. جلسات مذاکره شده با Diffie-Hellman مستقیماً از کلید RSA استفاده نمی کنند. در عوض ، آنها یک کلید یک بار را تولید می کنند ، که فقط در RAM ذخیره می شود ، که با استفاده از کلید روی دیسک رمزگذاری می شود.
اگر قبلاً از کلید RSA برای رمزگشایی ترافیک استفاده می کرده اید ، و این کار را متوقف کرده است ، می توانید با فعال کردن ورود به سیستم SSL ، از مبادلات Diffie-Hellman استفاده کنید..
برای روشن کردن ورود ، روی کلیک کنید ویرایش کنید از منوی نوار ابزار انتخاب کرده و را انتخاب کنید اولویت ها. گسترش پروتکل ها مورد در سمت چپ و به پایین حرکت کنید SSL. از اینجا ، می توانید روی کلیک کنید مرور کردن دکمه را تنظیم کرده و محل ورود SSL خود را تنظیم کنید.
پس از تنظیم مکان ، کلیه تعامل های SSL در پرونده مشخص شده وارد می شوند.
یک جلسه را با میزبان فعال SSL خود ضبط کنید ، سپس گزارش ها را بررسی کنید. به طور خاص ، شما باید حرکت کنید تا زمانی که قاب مورد نظر را برای دستیابی به TLS در مورد مذاکره پیدا کنید ، پیدا کنید. این احتمال وجود دارد که شما یک ورود داستانی DHE را در رشته رمزنگاری مشاهده کنید.
این بدان معناست که تبادل کلید Diffie-Hellman فعال شده است. در مورد من ، Apache به طور خاص از کلیدهای منحنی بیضوی Diffie-Hellman استفاده می کند ، که توسط رشته مشخص می شود ECDHE.
کمی جلوتر بروید و احتمالاً مشاهده خواهید کرد که راز اصلی پیدا نمی شود.
اگر گزارش های شما به این شکل است و نمی توانید با استفاده از یک کلید RSA رمز عبور را رمزگشایی کنید ، چاره ای جز تغییر روی روش مخفی پیش استاد در بالا ندارید.
از آنجا که PFE در حال تبدیل شدن به یک روش استاندارد است ، با احتمال زیاد TLSv1.3 مسئله را مجبور می کند ، رمزگشایی ساده کلید RSA از بین می رود و نباید از آن استفاده کرد.
Wireshark رمزگذاری رمز عبور SSL را آسان می کند
من واقعاً نحوه کار Wireshark را با رمزگشایی SSL دوست دارم. رمزنگاری پیچیده است ، و استانداردها به طور مداوم در حال تغییر هستند تا از امنیت بیشتری برخوردار شوند. اما هنگامی که Wireshark و محیط شما به درستی تنظیم شد ، تمام کاری که باید انجام دهید تغییر زبانه ها برای مشاهده داده های رمزگشایی است. آسانتر از این نمی شود.