محاسبات انگلی

محاسبات انگلی (به انگلیسی: ) تکنیکی است که در آن یک برنامه، طی تعاملات عادی و مجاز با برنامه‌ای دیگر، موفق می‌شود آن را به انجام محاسبات پیچیده وادار کند؛ بدون اینکه از آسیب‌پذیری‌ها برای اجرای کدهای مخرب یا تحت کنترل مهاجم استفاده نماید. این روش، در یک معنا، نوعی اکسپلویت (سوءاستفاده امنیتی) محسوب می‌شود؛ زیرا برنامه‌ای که محاسبات انگلی را اجرا می‌کند، هیچ مجوزی برای مصرف منابعی که در اختیار برنامه دیگر قرار گرفته است، ندارد.

 تاریخچه و سازوکار 
این ایده برای اولین بار در سال ۲۰۰۱ توسط آلبرت-لازلو باراباشی، وینسنت دابلیو. فری، هاوونگ جونگ و جی بی. براکمن از دانشگاه نوتردام در ایندیانای آمریکا مطرح شد."Parasitic Computing". Archived from the original on 3 October 2001. 

مثالی که در مقاله اصلی ارائه شد، دو رایانه را توصیف می‌کرد که از طریق اینترنت و در قالب یک نشست ارتباطی (Session) استاندارد با هم در ارتباط هستند. رایانه اول در تلاش است تا یک مسئله بزرگ و بسیار دشوار ۳-SAT را حل کند؛ به همین منظور، مسئله اصلی را به تعداد قابل توجهی از مسائل کوچکتر تجزیه کرده است. سپس، هر یک از این مسائل کوچکتر به شکل یک رابطه بین یک «مجموع‌کنترلی» (Checksum) و یک بسته داده (Packet) رمزگذاری می‌شود؛ به طوری که درست یا نادرست بودن این مجموع‌کنترلی، در واقع پاسخ همان مسئله کوچک است.

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

 سوءاستفاده از پروتکل TCP 
این مثال بر پایه سوءاستفاده از پروتکل کنترل انتقال (TCP) که برای اتصالات اینترنتی استفاده می‌شود، بنا شده است. بنابراین در نهایت، رایانه‌های هدف کاملاً بی‌خبرند که محاسباتی را به نفع رایانه دیگری انجام داده‌اند و تصور می‌کنند صرفاً یک ارتباط عادی TCP/IP داشته‌اند.

 کارایی و چشم‌انداز 
بدیهی است که این «اثبات مفهوم» (Proof-of-concept) به شدت ناکارآمد است؛ چرا که حجم محاسبات لازم برای ارسال خودِ بسته‌ها، به راحتی از میزان محاسباتی که از برنامه دیگر اصطلاحاً دزدیده شده بیشتر می‌شود. در واقع، اگر مسئله ۳-SAT به صورت محلی بررسی می‌شد، بسیار سریع‌تر به جواب می‌رسید. علاوه بر این، در عمل و هنگام بروز خطاهای واقعی در مجموع‌کنترلی یا مشکلات شبکه، احتمالاً نیاز به ارسال مجدد و گهگاهِ بسته‌ها خواهد بود.

با این حال، محاسبات انگلی در سطح مجموع‌کنترلی تنها برای اثبات این مفهوم است. نویسندگان مقاله پیشنهاد می‌کنند که با حرکت به سمت لایه‌های بالاترِ «پشته برنامه‌های کاربردی»، ممکن است به نقطه‌ای برسیم که یک دستاورد محاسباتیِ خالص برای انگل وجود داشته باشد – برای مثال، شاید بتوان مسائل جذاب را به درخواست‌هایی از پروتکل‌های پیچیده رمزنگاری که از کلیدهای عمومی استفاده می‌کنند، تجزیه کرد. اگر چنین دستاورد خالصی وجود داشته باشد، از نظر تئوری می‌توان از چند گره کنترلی استفاده کرد تا میزبان‌های متعددی در اینترنت، بدون اینکه کوچکترین اطلاعی داشته باشند، یک شبکه رایانش توزیع‌شده را تشکیل دهند. 

در سال ۲۰۰۲، دانشجویان دانشگاه علوم کاربردی برن در سوئیس، این مفهوم را گسترش داده و آن را به یک ماشین مجازی قابل برنامه‌ریزی تبدیل کردند."Diploma thesis on Parasitic Computing". Archived from the original on 2013-11-24. Retrieved 2014-11-17.

 جستارهای وابسته 
 حمله منع سرویس (DoS) – سرازیر کردن سیلی از درخواست‌ها به سمت یک سرور با هدف مختل کردن خدمات آن. برخلاف محاسبات انگلی، در این حملات از قدرت محاسباتیِ «سرقت‌شده» برای انجام محاسبات مفید استفاده نمی‌شود.

 منابع 

رده:معماری رایانش توزیع‌شده
رده:مدل‌های محاسباتی
رده:مهندسی امنیت سایبری