حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟
حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟

حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟

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

حمله Replay چیست؟

حمله Replay زمانی رخ می‌دهد که مهاجم بتواند پیام‌های معتبر یک کاربر یا سیستم را شنود و ضبط کند و در زمان دیگری همان پیام‌ها را مجدداً ارسال کند. در این روش، مهاجم نیاز به دانستن رمز عبور یا کلید ندارد؛ کافی است پیام درست را در لحظه مناسب دوباره برای سرور بفرستد تا عملیات‌ موردنظر تکرار شود. همین ویژگی باعث می‌شود این حمله برای دور زدن احراز هویت و جعل درخواست‌ها بسیار خطرناک باشد.

این حمله در بسیاری از محیط‌ها دیده می‌شود: ورود به سیستم‌های آنلاین، تراکنش‌های بانکی، RFID، کارت‌های هوشمند، APIها و حتی شبکه‌های وای‌فای. ضعف اصلی این سیستم‌ها آن است که پیام‌های دریافتی را از پیام‌های تکراری، قدیمی یا جعلی تشخیص نمی‌دهند. اگر یک درخواست بدون Nonce، Timestamp یا Token منحصربه‌فرد ارسال شود، مهاجم می‌تواند پس از ضبط آن، عملیات را بارها تکرار کند.

حمله Replay چیست؟

حمله Replay چگونه کار می‌کند؟

۱. شنود یا ضبط پیام

در مرحله اول مهاجم یک پیام معتبر را هنگام انتقال بین کاربر و سرور شنود و ضبط می‌کند. این پیام معمولاً شامل اطلاعات احراز هویت یا درخواست حساس است. ابزارهایی مثل Wireshark، Scapy یا ابزارهای شنود وای‌فای برای این مرحله استفاده می‌شوند.

۲. ذخیره‌سازی پیام برای استفاده بعدی

پس از ضبط مهاجم پیام را ذخیره می‌کند تا در زمان مناسب از آن استفاده کند. این پیام‌ها معمولاً بدون رمزگذاری یا بدون اطلاعات زمان‌دار هستند، بنابراین مهاجم می‌تواند بارها آن‌ها را نگه دارد و مجدداً ارسال کند.

۳. ارسال دوباره پیام (Replay)

در این مرحله پیام قبلاً شنود‌شده، بدون تغییر یا با تغییرات جزئی، دوباره به سمت سرور ارسال می‌شود. از نظر سرور، پیام معتبر و از طرف کاربر اصلی است، چون حاوی داده واقعی و صحیح است؛ بنابراین اگر مکانیزم ضد Replay وجود نداشته باشد، سیستم فریب می‌خورد.

۴. دور زدن اعتبارسنجی و انجام عملیات جعلی

در نهایت سرور پیام را معتبر تلقی می‌کند و عملیاتی مانند ورود کاربر، انتقال وجه، ثبت سفارش یا دسترسی به یک سرویس را انجام می‌دهد. این همان نقطه‌ای است که مهاجم از سیستم سوءاستفاده می‌کند و حمله Replay کامل می‌شود.

دور زدن اعتبارسنجی و انجام عملیات جعلی

انواع حملات Replay

Replay در شبکه‌های سنتی (Traditional Networks)

در شبکه‌های قدیمی که احراز هویت ساده و بدون Nonce یا Timestamp انجام می‌شد، مهاجم می‌توانست درخواست‌های ورود، بسته‌های احراز هویت یا پیام‌های حساس را شنود و همان بسته را دوباره برای سرور ارسال کند. این مدل در پروتکل‌های بدون مکانیزم ضدتکرار، مانند برخی نسخه‌های قدیمی TCP یا سیستم‌های داخلی سازمان‌ها، بسیار رایج بود.

Replay در وای‌فای و پروتکل‌های 802.11

در شبکه‌های وای‌فای نیز مهاجم می‌تواند بسته‌های رمزنگاری‌شده را ضبط کرده و با ارسال دوباره همان بسته، عملیات مدنظر را تکرار کند. این حمله خصوصاً در WPA/WPA2 هنگام دست‌دادن چهارمرحله‌ای (4‑Way Handshake) اهمیت دارد، زیرا مهاجم می‌تواند از بسته‌های قدیمی برای دسترسی یا ایجاد اختلال استفاده کند، اگرچه رمزنگاری وجود دارد.

Replay در API و سرویس‌های وب

در APIهایی که از Nonce، Token زمان‌دار یا HMAC استفاده نمی‌کنند، مهاجم می‌تواند یک درخواست معتبر مثل ایجاد سفارش، برداشت وجه یا تغییر اطلاعات کاربری را ضبط و در زمان دیگری دوباره ارسال کند. این حمله در APIهای قدیمی REST یا سیستم‌هایی که فقط روی HTTPS تکیه دارند و اعتبارسنجی درخواست را انجام نمی‌دهند، بسیار رایج است.

Replay در سیستم‌های مالی و بانکی

در سیستم‌های بانکی، مهاجم می‌تواند با ضبط یک تراکنش معتبر مانند انتقال پول یا تأیید پرداخت، همان تراکنش را تکرار کند و باعث انجام عملیاتی تکراری شود. این مشکل در سیستم‌هایی رخ می‌دهد که پیام تراکنش دارای شناسه یکتا یا زمان معتبر نیست و سرور نمی‌تواند درخواست جدید را از درخواست تکراری تشخیص دهد.

Replay در RFID و کارت‌های هوشمند

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

Replay در RFID و کارت‌های هوشمند

تفاوت حمله Replay با MITM

حمله Replay و حمله Man-in-the-Middle (MITM) هر دو بر پایه شنود و سوءاستفاده از داده‌ها انجام می‌شوند، اما در ماهیت و هدف تفاوت اساسی دارند. در حمله Replay مهاجم صرفاً پیام معتبر را ضبط کرده و بدون نیاز به تغییر محتوا، دوباره آن را برای سیستم ارسال می‌کند. یعنی مهاجم لزوماً ارتباط زنده بین کاربر و سرور را کنترل نمی‌کند؛ فقط از یک پیام معتبر استفاده مجدد می‌کند تا عملیات حساس تکرار شود.

اما در حمله MITM مهاجم دقیقاً در مسیر ارتباط قرار می‌گیرد و می‌تواند پیام‌ها را شنود، دستکاری و جایگزین کند. در MITM ارتباط کاربر و سرور عملاً زیر کنترل مهاجم قرار دارد و او می‌تواند کل جریان داده را تغییر دهد. بنابراین Replay یک حمله «ارسال دوباره» است؛ اما MITM یک حمله «کنترل کامل ارتباط» محسوب می‌شود.

حمله Replay
حمله MITM

ماهیت پیام

فقط ارسال دوباره پیام ضبط‌شده

دستکاری، شنود و بازنویسی پیام‌ها

موقعیت مهاجم

نیاز به حضور در مسیر ارتباط ندارد

باید بین کاربر و سرور قرار بگیرد

تغییر پیام

پیام تغییر نمی‌کند

پیام قابل تغییر و دستکاری است

هدف حمله

تکرار عملیات معتبر

کنترل و تغییر جریان داده

پیچیدگی عملیاتی

ساده‌تر و کم‌هزینه‌تر

پیچیده‌تر و نیازمند جای‌گذاری در شبکه

روش‌های جلوگیری

اغلب با Nonce و Timestamp

اغلب با TLS و Certificate Pinning

تعامل با کاربر

بدون تعامل کاربر انجام می‌شود

گاهی نیازمند فریب یا تعامل کاربر

دامنه حمله

تمرکز بر احراز هویت و تراکنش‌های حساس

گسترده روی هر نوع تبادل داده

نوع حمله

حمله منفعل (Passive)

حمله فعال (Active)

ابزارهای رایج برای انجام حملات Replay

روش‌های جلوگیری از حملات Replay

استفاده از Nonce یا عدد تصادفی منحصربه‌فرد

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

استفاده از Timestamp یا مهر زمانی

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

امضای دیجیتال یا HMAC

امضای دیجیتال یا HMAC تضمین می‌کند که پیام فقط توسط فرستنده اصلی تولید شده و نمی‌توان آن را بدون کلید دوباره ساخت. حتی اگر مهاجم پیام را شنود کند، باز هم نمی‌تواند Replay انجام دهد، زیرا اکثر سیستم‌ها امضا را همراه با Nonce یا Timestamp بررسی می‌کنند.

امضای دیجیتال یا HMAC

HMAC چیست و چگونه امنیت داده را تضمین می‌کند؟

Session Tokenهای یک‌بارمصرف

توکن‌های موقت (One-Time Token) فقط برای یک عملیات معتبر هستند. اگر همان توکن دوباره استفاده شود، سیستم فوراً آن را رد می‌کند. این روش در ورودها، پرداخت‌ها، APIهای حساس و تراکنش‌های مالی بسیار رایج است.

استفاده از TLS

TLS ارتباط را رمزنگاری کرده و جابه‌جایی، دستکاری یا ضبط مؤثر پیام‌ها را سخت‌تر می‌کند. البته TLS به‌تنهایی ضد Replay نیست، اما همراه با مکانیزم‌هایی مثل Nonce و Session ID از حمله جلوگیری می‌کند.

ذخیره و بررسی شناسه پیام‌ها در سرور

سرور می‌تواند ID هر درخواست را ثبت کند و اگر همان ID دوباره دریافت شد، آن را رد کند. این روش در سیستم‌های تراکنش‌محور (مثل بانک‌ها یا سیستم‌های ERP) کاربرد زیادی دارد.

محدود کردن زمان اعتبار درخواست‌ها

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

جمع‌بندی…

حمله Replay یکی از ساده‌ترین اما خطرناک‌ترین روش‌های دور زدن احراز هویت است که با تکرار پیام‌های معتبر می‌تواند موجب نفوذ، دسترسی غیرمجاز و انجام تراکنش‌های حساس شود. شناخت نحوه‌ کار این حمله، تفاوت آن با MITM و روش‌های جلوگیری مانند استفاده از Nonce، HMAC و توکن‌های یک‌بارمصرف، برای ایمن‌سازی سرویس‌ها ضروری است. با به‌کارگیری این اصول، سازمان‌ها می‌توانند بخش مهمی از حملات مبتنی بر تکرار پیام را خنثی کنند.

سوالات متداول

۱. حمله Replay چیست؟

حمله Replay عملیاتی است که در آن مهاجم پیام معتبر کاربر را ضبط کرده و بدون تغییر دوباره به سرور ارسال می‌کند تا عملیات حساس تکرار شود.

۲. آیا برای حمله Replay نیاز به دانستن رمز عبور است؟

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

۳. تفاوت Replay با MITM چیست؟

در Replay پیام فقط تکرار می‌شود، اما در MITM مهاجم در مسیر ارتباط قرار گرفته و پیام‌ها را شنود، دستکاری یا بازنویسی می‌کند.

4. آیا رمزنگاری می‌تواند از حمله Replay جلوگیری کند؟

رمزنگاری به‌تنهایی کافی نیست؛ بسته رمزنگاری‌شده هم می‌تواند دوباره ارسال شود. باید از Nonce یا Timestamp هم استفاده شود.

5. آیا TLS حمله Replay را کاملاً متوقف می‌کند؟

خیر. TLS شنود را سخت می‌کند اما جایگزین مکانیزم ضدReplay نیست و نیاز به Nonce و Token دارد.

موارد اخیر

برترین ها

دیدگاهتان را بنویسید

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

دیدگاه