حملهی DoS و الگوریتم اثبات کار
در دهه نود میلادی اینترنت متولد شد و شروع به تکامل کرد و در سالهای پایانی این دهه با رشد حیرتآوری در میان اقشار مختلف جامعه گسترش یافت. اما مدتی پسازاین اختراع بزرگ، یک پدیده ی خطرناک باعث ایجاد مزاحمت برای کاربران این شبکه شده بود.
برخی از کاربران با سوءاستفاده از بستر اینترنت، میخواستند آن را غرق در ایمیلهای تبلیغاتی یا همان ایمیلهای اسپم کنند. در این سال تمامی نرمافزارهای ایمیل متوجه شدند که اسپمها در حال پیروز شدن هستند.
چرا ایمیل اسپم توسط افراد ارسال میشود؟
بیشتر اسپمها تلاش میکنند که چیزی به کاربران دریافتکننده ایمیل بفروشند یا از طریق فریب کاربران، به اطلاعات حساس آنها مانند اطلاعات حساب بانکی یا پروندههای شخصی دسترسی پیدا کنند. بدینصورت که وقتی کاربر ایمیل خود را باز میکرد، به سایت دیگری هدایت میشد یا یک بدافزار روی کامپیوتر او نصب میشد که به ارسالکننده اجازه میداد انجام عملیات نفوذ را انجام دهد. ازآنجا که ارسال ایمیلهای اسپم بسیار آسان بود و هزینهای برای ارسالکننده در بر نداشت، کاربران میتوانستند به هر تعداد ایمیل اسپم ارسال کنند. توجه داشته باشید که هر ایمیل بهتنهایی یک فایل کوچک است که قابلیت بازتولید شدن و پخش در لحظه به میلیونها نفر را دارد که تقریباً فاقد هزینه است و این انتشار بیرویه باعث ازکارافتادن خدمات آن سرور میشود که اصطلاحاً حمله ی DoS نام دارد.
ارزان بودن ایمیل دو دلیل دارد:
۱. بستر رسانه ایمیل که همان اینترنت است، عملاً بدون هزینه و برای هرکسی آزاد است.
۲. برای ارسال ایمیل نیازی به منابع نرمافزاری یا سختافزاری قابلتوجهی نداریم.
پس با این دو دلیل، عملاً اقدام پیشگیرانهای نمیتوانست انجام شود.
راهحل: اثبات کار
اگر پروتکلهای ارسال ایمیل، نیاز به کمی محاسبات برای ارسال داشته باشند، چه اتفاقی میافتد؟
در این صورت ارسال ایمیل برای به یک گیرنده، پردازش زیادی احتیاج ندارد و شاید در یک ثانیه یا بیشتر انجام شود، اما ارسال ایمیل به میلیونها نفر به هزینه و پردازش بسیار زیادی نیاز دارد و به همین دلیل مکانیزم اثبات کار مطرح شد تا مشکل ارسال بیرویه اسپم برطرف شود و از حملهی DoS جلوگیری به عمل آید.
در مکانیزم اثبات کار، یک کامپیوتر نیاز داریم تا یک مسئله محاسباتی که سطح پیچیدگی آن از قبل مشخصشده باشد را قبل از ارسال درخواست، حل کند. زمانی که کامپیوتر مسئله را حل میکند، پاسخ مسئله را بهعنوان مدرکی برای اثبات تلاش خود میان دیگر کامپیوترها به اشتراک میگذارد. کامپیوترهای دیگر میتوانند این اثبات یا مدرک را بهسرعت تأیید کنند و پس انجام فرآیند تأیید، خدمات سرور در اختیار آن کاربر قرار میگیرد.
در مسئله محدود کردن ایمیلهای اسپم، سرورها فقط ایمیلهایی را مورد تأیید قرار میدادند که از سمت یک شخص تحت پردازشی خاص، دارای اثبات باشد. این اثبات کار یا تلاش میتواند پردازشی به شکل یک عملیات ریاضی باشد که اصطلاحاً به آن به دست آوردن هش یک فایل میگویند. هش هر فایل، یک رشته منحصربهفرد از اعداد و علامتها است که حتی با تغییر یک کاراکتر در آن فایل، رشتهی هش بهصورت کلی دگرگون میشود. مثلاً، هش یک عبارت مانند «سلام چطوری؟» با «سلام چطوری!» بسیار متفاوت است.
کاربر پیش از ارسال ایمیل میبایست یک رشتهی از اعداد تصادفی را به انتهای آن ایمیل اضافه میکرد و سپس هش آن ایمیل را به دست میاورد که هش آن معمولاً اعدادی درهمریخته بود. لازم بود کاربر آنقدر افزودن اعداد تصادفی مختلف را بیازماید تا هش به شکلی خاص تولید شود. مثلاً سه رقم ابتدایی هش با صفر شروع شود. این مسئله برای یک کامپیوتر بسیار زمانگیر است و ارائه یک هش که با سه صفر شروعشده باشد نشان میدهد که یک کامپیوتر این پیام را پردازش کرده و کار آن موردقبول سایر سرورها نیز هست.
نکتهای که در بالا هم به آن اشاره شد این است که کامپیوترهای دیگر میتوانند با داشتن آن رشته اعداد تصادفی که به انتهای ایمیل اضافه شد، خروجی هش خود را با هش تولیدشده توسط کامپیوتر اول بررسی کنند و اثبات کار کامپیوتر اول را تأیید کنند.
اثبات کار در زنجیرهبلوک
در فناوری زنجیرهبلوک نیز برای جلوگیری از اینکه یک سرور تأییدکننده (استخراجکننده) بلوکهای اشتباه به شبکه ارسال کند از این مکانیزم استفاده میشود. در این فناوری سرورها همزمان باهم برای حل یک بلوک مسابقه میدهند و هر سروری که توانست رشته اعداد تصادفی بیابد که هش یک بلوک با تعداد مشخصی صفر شروع شود، برندهی مسابقه است. اولین سروری که بتواند مسئله بلوک را حل کند، کارمزد تراکنشهای ثبتشده در آن بلوک و جایزه بلوک را دریافت میکند و سایر سرورها با چک کردن آن بلوک میتوانند از صحت عملکرد سرور اولیه اطمینان حاصل کنند. وقتی بیش از ۵۰% از سرورهای شبکه آن بلوک را تأیید کردند، میتوانیم بگوییم که روی آن بلوک اجماع حاصلشده و بهصورت قطعی داخل زنجیرهبلوک ثبت گردیده است.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.