حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟
حمله Replay یا حمله تکرار یکی از حملات رایج در امنیت شبکه است که در آن مهاجم یک پیام معتبر را شنود، ذخیره و دوباره برای سیستم هدف ارسال میکند تا بدون داشتن اعتبار واقعی، وارد سیستم شود یا عملیات مهمی را تکرار کند. سادگی اجرای این حمله و گستردگی سیستمهایی که در برابر آن آسیبپذیرند، باعث شده Replay به یکی از خطرناکترین روشهای دور زدن احراز هویت تبدیل شود.
حمله Replay چیست؟
حمله Replay زمانی رخ میدهد که مهاجم بتواند پیامهای معتبر یک کاربر یا سیستم را شنود و ضبط کند و در زمان دیگری همان پیامها را مجدداً ارسال کند. در این روش، مهاجم نیاز به دانستن رمز عبور یا کلید ندارد؛ کافی است پیام درست را در لحظه مناسب دوباره برای سرور بفرستد تا عملیات موردنظر تکرار شود. همین ویژگی باعث میشود این حمله برای دور زدن احراز هویت و جعل درخواستها بسیار خطرناک باشد.
این حمله در بسیاری از محیطها دیده میشود: ورود به سیستمهای آنلاین، تراکنشهای بانکی، RFID، کارتهای هوشمند، APIها و حتی شبکههای وایفای. ضعف اصلی این سیستمها آن است که پیامهای دریافتی را از پیامهای تکراری، قدیمی یا جعلی تشخیص نمیدهند. اگر یک درخواست بدون Nonce، Timestamp یا Token منحصربهفرد ارسال شود، مهاجم میتواند پس از ضبط آن، عملیات را بارها تکرار کند.

حمله 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 با MITM
حمله Replay و حمله Man-in-the-Middle (MITM) هر دو بر پایه شنود و سوءاستفاده از دادهها انجام میشوند، اما در ماهیت و هدف تفاوت اساسی دارند. در حمله Replay مهاجم صرفاً پیام معتبر را ضبط کرده و بدون نیاز به تغییر محتوا، دوباره آن را برای سیستم ارسال میکند. یعنی مهاجم لزوماً ارتباط زنده بین کاربر و سرور را کنترل نمیکند؛ فقط از یک پیام معتبر استفاده مجدد میکند تا عملیات حساس تکرار شود.
اما در حمله MITM مهاجم دقیقاً در مسیر ارتباط قرار میگیرد و میتواند پیامها را شنود، دستکاری و جایگزین کند. در MITM ارتباط کاربر و سرور عملاً زیر کنترل مهاجم قرار دارد و او میتواند کل جریان داده را تغییر دهد. بنابراین Replay یک حمله «ارسال دوباره» است؛ اما MITM یک حمله «کنترل کامل ارتباط» محسوب میشود.
حمله Replay |
حمله MITM |
|
|---|---|---|
|
ماهیت پیام |
فقط ارسال دوباره پیام ضبطشده |
دستکاری، شنود و بازنویسی پیامها |
|
موقعیت مهاجم |
نیاز به حضور در مسیر ارتباط ندارد |
باید بین کاربر و سرور قرار بگیرد |
|
تغییر پیام |
پیام تغییر نمیکند |
پیام قابل تغییر و دستکاری است |
|
هدف حمله |
تکرار عملیات معتبر |
کنترل و تغییر جریان داده |
|
پیچیدگی عملیاتی |
سادهتر و کمهزینهتر |
پیچیدهتر و نیازمند جایگذاری در شبکه |
|
روشهای جلوگیری |
اغلب با Nonce و Timestamp |
اغلب با TLS و Certificate Pinning |
|
تعامل با کاربر |
بدون تعامل کاربر انجام میشود |
گاهی نیازمند فریب یا تعامل کاربر |
|
دامنه حمله |
تمرکز بر احراز هویت و تراکنشهای حساس |
گسترده روی هر نوع تبادل داده |
|
نوع حمله |
حمله منفعل (Passive) |
حمله فعال (Active) |
ابزارهای رایج برای انجام حملات Replay
- Wireshark
- Scapy
- Ettercap
- Aircrack-ng
- Burp Suite
- MITMf
- Bettercap
- Tcpreplay
روشهای جلوگیری از حملات Replay
استفاده از Nonce یا عدد تصادفی منحصربهفرد
Nonce باعث میشود هر پیام یک شناسه یکتا داشته باشد و پیامهای تکراری توسط سرور رد شوند. اگر مهاجم پیام را دوباره ارسال کند، چون Nonce قبلاً مصرف شده، درخواست معتبر شناخته نمیشود. این روش یکی از استانداردترین راهکارهای ضد Replay است.
استفاده از Timestamp یا مهر زمانی
در این روش هر پیام دارای زمان ارسال معتبر است و فقط در یک بازه زمانی کوتاه قابل پذیرش است. پیامهای قدیمیتر حتی اگر کاملاً معتبر باشند، توسط سرور رد میشوند. این روش بهویژه در پروتکلهای بانکی و APIهای امنیتی استفاده میشود.
امضای دیجیتال یا HMAC
امضای دیجیتال یا HMAC تضمین میکند که پیام فقط توسط فرستنده اصلی تولید شده و نمیتوان آن را بدون کلید دوباره ساخت. حتی اگر مهاجم پیام را شنود کند، باز هم نمیتواند Replay انجام دهد، زیرا اکثر سیستمها امضا را همراه با Nonce یا Timestamp بررسی میکنند.

HMAC چیست و چگونه امنیت داده را تضمین میکند؟
Session Tokenهای یکبارمصرف
توکنهای موقت (One-Time Token) فقط برای یک عملیات معتبر هستند. اگر همان توکن دوباره استفاده شود، سیستم فوراً آن را رد میکند. این روش در ورودها، پرداختها، APIهای حساس و تراکنشهای مالی بسیار رایج است.
استفاده از TLS
TLS ارتباط را رمزنگاری کرده و جابهجایی، دستکاری یا ضبط مؤثر پیامها را سختتر میکند. البته TLS بهتنهایی ضد Replay نیست، اما همراه با مکانیزمهایی مثل Nonce و Session ID از حمله جلوگیری میکند.
ذخیره و بررسی شناسه پیامها در سرور
سرور میتواند ID هر درخواست را ثبت کند و اگر همان ID دوباره دریافت شد، آن را رد کند. این روش در سیستمهای تراکنشمحور (مثل بانکها یا سیستمهای ERP) کاربرد زیادی دارد.
محدود کردن زمان اعتبار درخواستها
در برخی سیستمها اجازه داده میشود درخواستها فقط در یک محدوده بسیار کوتاه مثل ۵ یا ۱۰ ثانیه معتبر باشند. پیامهای ذخیرهشده توسط مهاجم، هنگام ارسال مجدد خارج از بازه معتبر بوده و رد میشوند.
جمعبندی…
حمله Replay یکی از سادهترین اما خطرناکترین روشهای دور زدن احراز هویت است که با تکرار پیامهای معتبر میتواند موجب نفوذ، دسترسی غیرمجاز و انجام تراکنشهای حساس شود. شناخت نحوه کار این حمله، تفاوت آن با MITM و روشهای جلوگیری مانند استفاده از Nonce، HMAC و توکنهای یکبارمصرف، برای ایمنسازی سرویسها ضروری است. با بهکارگیری این اصول، سازمانها میتوانند بخش مهمی از حملات مبتنی بر تکرار پیام را خنثی کنند.
سوالات متداول
حمله Replay عملیاتی است که در آن مهاجم پیام معتبر کاربر را ضبط کرده و بدون تغییر دوباره به سرور ارسال میکند تا عملیات حساس تکرار شود.
معمولاً خیر. مهاجم فقط پیام معتبر را دوباره ارسال میکند و لازم نیست رمز عبور یا کلید را بشناسد.
در Replay پیام فقط تکرار میشود، اما در MITM مهاجم در مسیر ارتباط قرار گرفته و پیامها را شنود، دستکاری یا بازنویسی میکند.
رمزنگاری بهتنهایی کافی نیست؛ بسته رمزنگاریشده هم میتواند دوباره ارسال شود. باید از Nonce یا Timestamp هم استفاده شود.
خیر. TLS شنود را سخت میکند اما جایگزین مکانیزم ضدReplay نیست و نیاز به Nonce و Token دارد.
موارد اخیر
-
خزنده وب (Web Crawler) چیست و چه انواعی دارد؟ -
وب اسکرپینگ (Web Scraping) چیست و چگونه انجام میشود؟ -
حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟ -
HMAC چیست و چگونه امنیت داده را تضمین میکند؟ -
پردازش زبان طبیعی (NLP) چیست و چه تکنیکهایی دارد؟ -
جمعآوری داده (Data Collection) چیست و چگونه انجام میشود؟ -
سیستم توصیهگر (Recommendation Systems) چیست و چه انواع و کاربردی دارد؟ -
آپاچی اسپارک (Apache Spark) چیست و چگونه نصب میشود؟ -
Apache Hadoop (هدوپ) چیست و چه کاربردهایی دارد؟ + مقایسه با Apache Spark -
سیستمهای توزیعشده (Distributed System) چیستند و چه تفاوتی با سیستمهای متمرکز دارند؟
برترین ها
-
حمله Replay (حمله تکرار) چیست و چگونه از آن جلوگیری کنیم؟ -
سیستم توصیهگر (Recommendation Systems) چیست و چه انواع و کاربردی دارد؟ -
Out of Band Management (OOB) چیست و چرا برای امنیت شبکه حیاتی است؟ -
اوکتا (Okta) چیست و چه کاربردی در امنیت سازمانها دارد؟ -
چرخه عمر توسعه نرمافزار (SDLC) چیست و چرا در مهندسی نرمافزار اهمیت دارد؟
اشتراک گذاری این مطلب
دیدگاهتان را بنویسید
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *