حمله مرد میانی

**حملهٔ شخص میانی**  با کوته‌نوشت **MITM** و همچنین با عنوان **حملهٔ Bucket Brigade** یا گاهی با عنوان **حملهٔ ژانوس** شناخته می‌شود. در رمزنگاری و امنیت رایانه، حملهٔ شخص میانی، شیوه‌ای از شنود فعال است که حمله‌کننده، ارتباط مستقلی را با قربانی، برقرار می‌کند و پیام‌های بین آنها را بازپخش می‌کند. به گونه‌ای که آن‌ها را معتقد می‌کند که در یک ارتباط مستقیم و خصوصی با یکدیگر، صحبت می‌کنند؛ در حالی که همه گفتگوهای آنها توسط حمله‌کننده، کنترل می‌شود. حمله‌کننده باید توانایی شنود همه پیام‌های فرستاده شده بین دو قربانی و گذاشتن پیغام تازه را داشته باشد که در بسیاری از شرایط درست کار کنند. برای نمونه، حمله‌کننده‌ای با حوزهٔ دریافت یک پیام رمزنگاری نشده نقطه دسترسی بی‌سیم (آی‌تریپل‌ئی ۸۰۲٫۱۱)، می‌تواند خودش را به عنوان یک مرد میانی جا بزند.

یک حمله‌کنندهٔ مرد میانی در صورتی می‌تواند موفق شود که هر نقطهٔ انتهایی را با رضایت دیگری جعل هویت کند. این یک حمله (یا نبودِ) احراز هویت دو جانبه‌است. بیشتر پروتکل‌های رمزنگاری، شامل برخی از اشکال احراز هویت نقاط انتهایی، به ویژه برای جلوگیری از حملات مرد میانی هستند. برای نمونه، امنیت لایه انتقال (SSL) می‌تواند یک یا هر دو طرف را با استفاده از مجوز گواهی مورد اعتماد دو طرفه، احراز هویت کند.

## نیاز به استفاده از یک کانال امن
به استثنای پروتکل Interlock، همهٔ سامانه‌های رمزنگاری که ضد حملهٔ شخص میانی ایمن هستند نیاز به تبادل یا انتقال اطلاعات اضافی روی بسیاری از کانال‌های امن دارند. بسیاری از روش‌های تبادل کلید با نیازهای امنیتی گوناگون برای کانال‌های ایمن، گسترش داده شده‌است.

## نمونه‌ای از یک حمله
فرض کنید Alice می‌خواهد با Bob ارتباط برقرار کند. ضمناً، Mallory می‌خواهد که جلوی این مکالمه را با شنود و احتمالاً، رساندن پیغام غلط به Bob بگیرد.

بندانگشتی|Mallory شخص میان Bob و Alice است.

در آغاز، Alice کلید (رمزنگاری) عمومی خود را از Bob درخواست می‌کند. اگر Bob کلید عمومی خود را به Alice بدهد و Mallory توانایی شنود آن کلید را داشته باشد یک حمله شخص میانی آغاز می‌شود. Mallory یک پیام جعلی را که مدعی ارسال از طرف Bob است به Alice می‌فرستد اما به جای آن، کلید عمومی خودش را جایگزین آن می‌کند.

Alice با اعتقاد به اینکه کلید عمومی Bob را در اختیار دارد پیام خود را با کلید Mallory رمزنگاری می‌کند و پیام رمزنگاری شده را به Bob می‌فرستد. Mallory دوباره جلوی پیام را می‌گیرد و آن را با استفاده از کلید خصوصی خود رمزگشایی می‌کند و احتمالاً اگر بخواهد، آن را تغییر داده و دوباره با استفاده از کلید عمومی Bob رمزنگاری کرده و به Bob می‌فرستد. هنگامی که Bob پیام رمزنگاری شده تازه را دریافت می‌کند گمان می‌کند که پیام از طرف Alice آمده‌است.

در حقیقت Alice پیامی را که به Bob می‌فرستد Mallory شنود می‌کند.

 **Alice** *"Hi Bob, it's Alice. Give me your key"*--> **Mallory** **Bob**
Mallory دوباره این پیام را برای Bob مخابره می‌کند. Bob توانایی تشخیص پیام واقعی از سوی Alice را ندارد.
 **Alice** **Mallory** *"Hi Bob, it's Alice. Give me your key"*--> **Bob**
Bob با کلید رمزنگاری شده‌اش پاسخ می‌دهد.
 **Alice** **Mallory**  **Mallory** **Bob**
با این وجود به دلیل اینکه پیام با کلید Mallory رمزنگاری شده‌است Mallory می‌تواند آن را رمزگشایی، خوانده، و مدیریت کند (و در صورت مطلوب بودن)، دوباره آن را با کلید عمومی Bob رمزنگاری کرده و به سمت Bob هدایت کند.
 **Alice** **Mallory** *"Meet me at 22nd Ave!"[encrypted with Bob's key]*--> *'Bob*

Bob تصور می‌کند که این پیام، یک ارتباط ایمن از طرف Alice است.

این نمونه نیاز Alice و Bob را برای داشتن راهی به منظور اطمینان از این که آن‌ها به درستی از کلید عمومی یکدیگر به جای کلید عمومی مهاجم استفاده کنند نشان می‌دهد. در غیر این صورت، چنین حملاتی معمولاً ممکن و اصولاً در برابر هر پیامی هستند که با استفاده از فناوری کلید عمومی ارسال می‌شود. خوشبختانه روش‌های گوناگونی برای دفاع در برابر حمله شخص میانی وجود دارند.

## دفاع در برابر حمله

انواع روش‌های دفاع در برابر حمله شخص میانی، از روش‌های احراز هویت استفاده می‌کنند که بر پایهٔ موارد زیر است:
* زیرساخت کلید عمومی
** احراز هویت متقابل زیرساخت کلید عمومی. دفاع عمده، با انجام احراز هویت دوطرفه است. در این مورد، علاوه بر اینکه نرم‌افزار، کاربر را اعتبارسنجی می‌کند (در صورتی که برنامه گول‌زننده باشد استفادهٔ زیادی ندارد)، دستگاه‌های کاربران را نیز تأیید می‌کند. از این رو برنامه‌های گول زننده را از برنامه‌های اصلی تشخیص می‌دهد.
* احراز هویت دو طرفه قوی‌تر، همچون:
** کلیدهای محرمانه (معمولاً با رمزی حاوی بی‌نظمی زیاد اطلاعات و بنابراین، ایمنی بالا)
** گذرواژه‌ها (معمولاً با رمزی حاوی بی‌نظمی کم اطلاعات و بنابراین، دارای ایمنی کمتر است)
* آزمون تأخیر زمانی، از جمله محاسبات طولانی رمزنگاری تابع Hash، که ممکن است ده‌ها ثانیه طول بکشد. اگر ارتباط هر دو طرف به‌طور معمول ۲۰ ثانیه طول بکشد و محاسبات برای رسیدن پیام به هر یک از طرفین ۶۰ ثانیه طول بکشد این می‌تواند نشان دهندهٔ وجود شخص ثالث باشد.
* پد یک‌بار مصرف که با فرض امنیت و اطمینان به پد یک‌بار مصرف، نسبت به حمله شخص میانی مصون است.
* تصدیق Carry-forward
* آزمونی که با حذف گواهی‌های به خطر افتادهٔ صادره از مراجع صادرکنندهٔ گواهی برای رایانه‌های واقعی، انجام می‌شود و گواهی‌های به خطر افتاده، پیش از حذف، برای تحلیل، به ناحیهٔ جعبه شنی فرستاده می‌شوند.

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

برای طبقه‌بندی پروتکل‌هایی که با استفاده از شکل‌های گوناگون کلید و گذرواژه از حملات مرد میانی جلوگیری می‌کنند به پروتکل تبادل کلید نگاه کنید.

## تجزیه و تحلیل قانونی حمله شخص میانی
برای پی بردن به این موضوع که واقعاً حملهٔ شخص میانی رخ داده‌است یا خیر، می‌توان ترافیک شبکهٔ تصرف شده را با توجه به مواردی که مشکوک به حملهٔ شخص میانی هستند، تجزیه و تحلیل کرد. شواهد مهم برای تجزیه و تحلیل شبکه توسط افراد مظنون به حملهٔ شخص میانی در امنیت لایه انتقال (SSL) عبارتند از:
* آدرس IP سرور (رایانه)
* نام سامانه نام دامنه سرور
* استاندارد اکس۵۰۹ سرور
** آیا گواهی امضاء شده‌است؟
** آیا گواهی توسط یک CA مورد اعتماد امضاء شده‌است؟
** آیا گواهی باطل شده‌است؟
** آیا گواهی به تازگی تغییر کرده‌است؟
** آیا کاربران دیگر، در جای دیگر محیط اینترنت، گواهی مشابهی را اخذ کرده‌اند؟

## رمزنگاری کوانتومی
پروتکل‌های رمزنگاری کوانتومی به‌طور معمول همه یا بخشی از ارتباطات کلاسیک خود را با یک رویهٔ احراز هویت ایمن و بی‌قید و شرط، احراز هویت می‌کنند که نمونه آن احراز هویت Wegman-Carter است.

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

یک حملهٔ شخص میانی رمزنگاری نشدهٔ قابل توجه، توسط یکی از نسخه‌های رهیاب شبکهٔ بی‌سیم Belkin در سال ۲۰۰۳ (میلادی) انجام شد. به گونه‌ای که به صورت تناوبی، بر روی یک اتصال پروتکل انتقال ابرمتن (HTTP) که برای مسیریابی استفاده می‌شد تسلط می‌یافت. این حمله ترافیک به سمت مقصد، هدایت نمی‌کرد. در عوض، خودش به عنوان سرور منتخب پاسخ می‌داد. پاسخی که ارسال می‌شد در مکانی از صفحهٔ وب مورد درخواست کاربر، تبلیغ یکی دیگر از محصولات Belkin بود. پس از اعتراض کاربران دارای دانش فنی، این توانایی از نسخه‌های بعدی، سفت‌افزار رهیاب برداشته شد.

نمونهٔ دیگری از حملهٔ شخص میانی رمزنگاری نشده، «آزمون تورینگ کشتراز پورنو» است. برایان وارنر گفت این یک «حملهٔ امکان‌پذیر» است که ایجادکننده‌های اسپم می‌توانند از آن برای غلبه بر کپچاها استفاده کنند. ایجادکننده‌های اسپم‌ها یک وبگاه پورنوگرافیک راه‌اندازی می‌کنند که برای دسترسی به محتویات آن، کاربر می‌بایست کپچاهاهای مربوط به پرسش‌ها را حل کند. با اینحال جف اتوود خاطرنشان می‌کند که این حملات صرفاً تئوری هستند. تا سال ۲۰۰۶ شواهدی مبنی بر اینکه ایجادکنندگان اسپم‌ها یک کشتزار پورن Turing ساخته باشند وجود نداشت؛ اما آنگونه که در خبرهای اکتبر ۲۰۰۷ گزارش شد ایجادکننده‌های اسپم‌ها در واقع یک بازی تحت مایکروسافت ویندوز ساخته بودند که در آن کاربران، کپجاهای سرویس یاهو! میل را حل کرده و با نگاره‌های پورنو پاداش داده می‌شدند. این به ایجادکننده‌های اسپم‌ها اجازهٔ ایجاد حساب کاربری پست الکترونیک، به‌طور موقت و رایگان و با امکان ارسال اسپم را می‌داد.

## پیاده‌سازی‌ها
* dsniff- ابزاری برای حملات SSH و SSL حملهٔ شخص میانی
* Cain and Abel- ابزار GUI ویندوز که توانایی انجام حملهٔ شخص میانی را از طریق شنود الکترونیک شبکه و فریب‌کاری آرپ ARP (پروتکل تفکیک آدرس) دارد.
* Ettercap- ابزاری برای حمله شخص میانی مبتنی بر شبکه محلی
* Karma- ابزاری که از حملات 802.11 Evil Twin، در انجام حمله شخص میانی استفاده می‌کند.
*Sourceforge- بزاری که حمله شخص میانی مبتنی بر ۸۰۲٫۱۱ را نشان می‌دهد.
* SSLStrip- ابزاری برای حمله شخص میانی مبتنی بر SSL.
*Thoughtcrime- ابزاری برای حمله شخص میانی مبتنی بر SSL. در آغاز، به منظور بهره‌برداری از نقص در اینترنت اکسپلورر ساخته شد.
* Intercepter-NG- گذرواژهٔ شبکهٔ ویندوز با توانایی مسمومیت ARP. شامل SSLStrip برای حمله شخص میانی مبتنی بر SSL است.
* Mallory- پراکسی سرور MiTMing TCP و UDP شفاف. قابل تعمیم به MiTM SSL, SSH و بسیاری از پروتکل‌های دیگر.
* wsniff- ابزاری برای حمله شخص میانی مبتنی بر HTTP.
* کارت‌خوان‌های اضافی و روشی برای جدا کردن کلید فشار بر روی یک ماشین سخنگوی خودکار.

## جستارهای وابسته
* امنیت رایانه- طراحی سامانه‌های رایانه‌ای امن
* تحلیل رمز- هنر افشای پیام‌های رمزگذاری شده با دانش ناقص در مورد این که چگونه آنها رمزگذاری شده‌اند.
* امضای دیجیتال- رمزنگاری تضمین صحت متن، معمولاً فقط از نویسنده انتظار می‌رود که توانای انجام نتیجهٔ یک محاسبه باشد.

* مدیریت کلید- چگونه مراحل تولید، تبادل و ذخیره‌سازی کلیدهای رمزنگاری را مدیریت کنیم.

* توافق کلید تصدیق شده بر پایه رمزعبور- پروتکلی برای ایجاد یک کلید با استفاده از یک گذرواژه.
* رمزنگاری کوانتومی- استفاده از مکانیک کوانتوم برای فراهم کردن امنیت در رمزنگاری (در حالی که روش قبلی به تابع یک طرفه اعتماد می‌کند).
* کانال امن- راه برقراری ارتباط مقاوم در برابر رهگیری و دستکاری است.
* حمله جعل
* عملیات دسترسی درخور
* حمله شخص کناری

## پانویس

## منابع
* 

## پیوند به بیرون
* Non-cryptographic MITM attack involving nanny references

رده:امنیت اینترنت
رده:امنیت شبکه‌های رایانه‌ای
رده:امنیت لایه انتقال
رده:بدافزارها
رده:حمله‌های رمزنگاری
رده:رمزنگاری